@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,409 +0,0 @@
1
- import React from 'react';
2
- import { AutoLinkHeader, Example, Link as PatternflyThemeLink } from '@patternfly/documentation-framework/components';
3
- import { useState } from 'react';
4
- import '../../../../../react-core/src/components/Nav/examples/./nav.css';
5
- import RhMicronsCaretRightIcon from '@patternfly/react-icons/dist/esm/icons/rh-microns-caret-right-icon';
6
- import CubeIcon from '@patternfly/react-icons/dist/esm/icons/cube-icon';
7
- import FolderIcon from '@patternfly/react-icons/dist/esm/icons/folder-icon';
8
- import FolderOpenIcon from '@patternfly/react-icons/dist/esm/icons/folder-open-icon';
9
- import CloudIcon from '@patternfly/react-icons/dist/esm/icons/cloud-icon';
10
- import RhUiLinkIcon from '@patternfly/react-icons/dist/esm/icons/rh-ui-link-icon';
11
- const pageData = {
12
- "id": "Navigation",
13
- "section": "components",
14
- "subsection": "",
15
- "deprecated": false,
16
- "template": false,
17
- "beta": false,
18
- "demo": false,
19
- "newImplementationLink": false,
20
- "source": "react",
21
- "tabName": null,
22
- "slug": "/components/navigation/react",
23
- "sourceLink": "https://github.com/patternfly/patternfly-react/blob/main/packages/react-core/src/components/Nav/examples/Nav.md",
24
- "relPath": "packages/react-core/src/components/Nav/examples/Nav.md",
25
- "propComponents": [
26
- {
27
- "name": "Nav",
28
- "description": "",
29
- "props": [
30
- {
31
- "name": "aria-label",
32
- "type": "string",
33
- "description": "Accessible label for the nav when there are multiple navs on the page"
34
- },
35
- {
36
- "name": "children",
37
- "type": "React.ReactNode",
38
- "description": "Anything that can be rendered inside of the nav"
39
- },
40
- {
41
- "name": "className",
42
- "type": "string",
43
- "description": "Additional classes added to the container"
44
- },
45
- {
46
- "name": "isTextExpanded",
47
- "type": "boolean",
48
- "description": "Flag indicating the docked nav should display text. Only applies when variant is docked.",
49
- "beta": true
50
- },
51
- {
52
- "name": "onSelect",
53
- "type": "(\n event: React.FormEvent<HTMLInputElement>,\n selectedItem: {\n groupId: number | string;\n itemId: number | string;\n to: string;\n }\n) => void",
54
- "description": "Callback for updating when item selection changes",
55
- "defaultValue": "() => undefined"
56
- },
57
- {
58
- "name": "onToggle",
59
- "type": "(\n event: React.MouseEvent<HTMLButtonElement>,\n toggledItem: {\n groupId: number | string;\n isExpanded: boolean;\n }\n) => void",
60
- "description": "Callback for when a list is expanded or collapsed",
61
- "defaultValue": "() => undefined"
62
- },
63
- {
64
- "name": "ouiaId",
65
- "type": "number | string",
66
- "description": "Value to overwrite the randomly generated data-ouia-component-id."
67
- },
68
- {
69
- "name": "ouiaSafe",
70
- "type": "boolean",
71
- "description": "Set the value of data-ouia-safe. Only set to true when the component is in a static state, i.e. no animations are occurring. At all other times, this value must be false.",
72
- "defaultValue": "true"
73
- },
74
- {
75
- "name": "variant",
76
- "type": "'default' | 'horizontal' | 'horizontal-subnav' | 'docked'",
77
- "description": "The nav variant to use. Docked is in beta."
78
- }
79
- ]
80
- },
81
- {
82
- "name": "NavList",
83
- "description": "",
84
- "props": [
85
- {
86
- "name": "backScrollAriaLabel",
87
- "type": "string",
88
- "description": "Aria-label for the back scroll button",
89
- "defaultValue": "'Scroll back'"
90
- },
91
- {
92
- "name": "children",
93
- "type": "React.ReactNode",
94
- "description": "Children nodes"
95
- },
96
- {
97
- "name": "className",
98
- "type": "string",
99
- "description": "Additional classes added to the list"
100
- },
101
- {
102
- "name": "forwardScrollAriaLabel",
103
- "type": "string",
104
- "description": "Aria-label for the forward scroll button",
105
- "defaultValue": "'Scroll foward'"
106
- }
107
- ]
108
- },
109
- {
110
- "name": "NavGroup",
111
- "description": "",
112
- "props": [
113
- {
114
- "name": "children",
115
- "type": "React.ReactNode",
116
- "description": "Anything that can be rendered inside of the group",
117
- "defaultValue": "null"
118
- },
119
- {
120
- "name": "className",
121
- "type": "string",
122
- "description": "Additional classes added to the container",
123
- "defaultValue": "''"
124
- },
125
- {
126
- "name": "id",
127
- "type": "string",
128
- "description": "Identifier to use for the section aria label"
129
- },
130
- {
131
- "name": "title",
132
- "type": "string",
133
- "description": "Title shown for the group"
134
- }
135
- ]
136
- },
137
- {
138
- "name": "NavItem",
139
- "description": "",
140
- "props": []
141
- },
142
- {
143
- "name": "NavItemSeparator",
144
- "description": "",
145
- "props": [
146
- {
147
- "name": "className",
148
- "type": "string",
149
- "description": "Additional classes added to the divider"
150
- },
151
- {
152
- "name": "component",
153
- "type": "'hr' | 'li' | 'div'",
154
- "description": "The component type to use",
155
- "defaultValue": "'li'"
156
- },
157
- {
158
- "name": "inset",
159
- "type": "{\n default?: 'insetNone' | 'insetXs' | 'insetSm' | 'insetMd' | 'insetLg' | 'insetXl' | 'inset2xl' | 'inset3xl';\n sm?: 'insetNone' | 'insetXs' | 'insetSm' | 'insetMd' | 'insetLg' | 'insetXl' | 'inset2xl' | 'inset3xl';\n md?: 'insetNone' | 'insetXs' | 'insetSm' | 'insetMd' | 'insetLg' | 'insetXl' | 'inset2xl' | 'inset3xl';\n lg?: 'insetNone' | 'insetXs' | 'insetSm' | 'insetMd' | 'insetLg' | 'insetXl' | 'inset2xl' | 'inset3xl';\n xl?: 'insetNone' | 'insetXs' | 'insetSm' | 'insetMd' | 'insetLg' | 'insetXl' | 'inset2xl' | 'inset3xl';\n '2xl'?: 'insetNone' | 'insetXs' | 'insetSm' | 'insetMd' | 'insetLg' | 'insetXl' | 'inset2xl' | 'inset3xl';\n}",
160
- "description": "Insets at various breakpoints."
161
- },
162
- {
163
- "name": "orientation",
164
- "type": "{\n default?: 'vertical' | 'horizontal';\n sm?: 'vertical' | 'horizontal';\n md?: 'vertical' | 'horizontal';\n lg?: 'vertical' | 'horizontal';\n xl?: 'vertical' | 'horizontal';\n '2xl'?: 'vertical' | 'horizontal';\n}",
165
- "description": "Indicates how the divider will display at various breakpoints. Vertical divider must be in a flex layout."
166
- },
167
- {
168
- "name": "role",
169
- "type": "'separator' | 'presentation'",
170
- "description": "The ARIA role of the divider when the component property has a value other than \"hr\".",
171
- "defaultValue": "'presentation'"
172
- }
173
- ]
174
- },
175
- {
176
- "name": "NavExpandable",
177
- "description": "",
178
- "props": [
179
- {
180
- "name": "buttonProps",
181
- "type": "any",
182
- "description": "Additional props added to the NavExpandable <button>"
183
- },
184
- {
185
- "name": "children",
186
- "type": "React.ReactNode",
187
- "description": "Anything that can be rendered inside of the expandable list",
188
- "defaultValue": "''"
189
- },
190
- {
191
- "name": "className",
192
- "type": "string",
193
- "description": "Additional classes added to the container",
194
- "defaultValue": "''"
195
- },
196
- {
197
- "name": "groupId",
198
- "type": "string | number",
199
- "description": "Group identifier, will be returned with the onToggle and onSelect callback passed to the Nav component",
200
- "defaultValue": "null"
201
- },
202
- {
203
- "name": "icon",
204
- "type": "React.ReactNode",
205
- "description": "Icon added before the nav item children."
206
- },
207
- {
208
- "name": "id",
209
- "type": "string",
210
- "description": "Identifier to use for the section aria label",
211
- "defaultValue": "''"
212
- },
213
- {
214
- "name": "isActive",
215
- "type": "boolean",
216
- "description": "If true makes the expandable list title active",
217
- "defaultValue": "false"
218
- },
219
- {
220
- "name": "isExpanded",
221
- "type": "boolean",
222
- "description": "Boolean to pragmatically expand or collapse section",
223
- "defaultValue": "false"
224
- },
225
- {
226
- "name": "onExpand",
227
- "type": "(event: React.MouseEvent<HTMLButtonElement, MouseEvent>, val: boolean) => void",
228
- "description": "allow consumer to optionally override this callback and manage expand state externally. if passed will not call Nav's onToggle."
229
- },
230
- {
231
- "name": "ouiaId",
232
- "type": "number | string",
233
- "description": "Value to overwrite the randomly generated data-ouia-component-id."
234
- },
235
- {
236
- "name": "ouiaSafe",
237
- "type": "boolean",
238
- "description": ""
239
- },
240
- {
241
- "name": "srText",
242
- "type": "string",
243
- "description": "If defined, screen readers will read this text instead of the list title",
244
- "defaultValue": "''"
245
- },
246
- {
247
- "name": "title",
248
- "type": "React.ReactNode",
249
- "description": "Title content shown for the expandable list",
250
- "required": true
251
- }
252
- ]
253
- }
254
- ],
255
- "cssPrefix": [
256
- "pf-v6-c-nav"
257
- ],
258
- "examples": [
259
- "Default",
260
- "Grouped",
261
- "Expandable",
262
- "Expandable third level",
263
- "Mixed",
264
- "Horizontal navigation",
265
- "Horizontal subnav",
266
- "Flyout",
267
- "Drilldown",
268
- "With icons"
269
- ]
270
- };
271
- pageData.liveContext = {
272
- useState,
273
- RhMicronsCaretRightIcon,
274
- CubeIcon,
275
- FolderIcon,
276
- FolderOpenIcon,
277
- CloudIcon,
278
- RhUiLinkIcon
279
- };
280
- pageData.relativeImports = "import 'react-core/src/components/Nav/examples/./nav.css';"
281
- pageData.examples = {
282
- 'Default': props =>
283
- <Example {...pageData} {...props} {...{"code":"import { useState } from 'react';\nimport { Nav, NavItem, NavList } from '@patternfly/react-core';\n\nexport const NavDefault: React.FunctionComponent = () => {\n const [activeItem, setActiveItem] = useState(0);\n\n const onSelect = (_event: React.FormEvent<HTMLInputElement>, result: { itemId: number | string }) => {\n setActiveItem(result.itemId as number);\n };\n\n return (\n <Nav onSelect={onSelect} aria-label=\"Default global\" ouiaId=\"DefaultNav\">\n <NavList>\n <NavItem preventDefault id=\"nav-default-link1\" to=\"#nav-default-link1\" itemId={0} isActive={activeItem === 0}>\n Default Link 1\n </NavItem>\n <NavItem preventDefault id=\"nav-default-link2\" to=\"#nav-default-link2\" itemId={1} isActive={activeItem === 1}>\n Default Link 2\n </NavItem>\n <NavItem preventDefault id=\"nav-default-link3\" to=\"#nav-default-link3\" itemId={2} isActive={activeItem === 2}>\n Default Link 3\n </NavItem>\n <NavItem preventDefault id=\"nav-default-link4\" to=\"#nav-default-link4\" itemId={3} isActive={activeItem === 3}>\n Default Link 4\n </NavItem>\n </NavList>\n </Nav>\n );\n};\n","title":"Default","lang":"ts","className":""}}>
284
-
285
- </Example>,
286
- 'Grouped': props =>
287
- <Example {...pageData} {...props} {...{"code":"import { useState } from 'react';\nimport { Nav, NavItem, NavGroup } from '@patternfly/react-core';\n\nexport const NavGrouped: React.FunctionComponent = () => {\n const [activeItem, setActiveItem] = useState('group-1_item-1');\n\n const onSelect = (_event: React.FormEvent<HTMLInputElement>, result: { itemId: number | string }) => {\n setActiveItem(result.itemId as string);\n };\n\n return (\n <Nav onSelect={onSelect} aria-label=\"Grouped global\">\n <NavGroup title=\"Section title 1\">\n <NavItem\n preventDefault\n to=\"#nav-group1-item1\"\n itemId=\"group-1_item-1\"\n isActive={activeItem === 'group-1_item-1'}\n >\n Group 1 Link 1\n </NavItem>\n <NavItem\n preventDefault\n to=\"#nav-group1-item2\"\n itemId=\"group-1_item-2\"\n isActive={activeItem === 'group-1_item-2'}\n >\n Group 1 Link 2\n </NavItem>\n <NavItem\n preventDefault\n to=\"#nav-group1-item3\"\n itemId=\"group-1_item-3\"\n isActive={activeItem === 'group-1_item-3'}\n >\n Group 1 Link 3\n </NavItem>\n </NavGroup>\n <NavGroup title=\"Section title 2\">\n <NavItem\n preventDefault\n to=\"#nav-group2-item1\"\n itemId=\"group-2_item-1\"\n isActive={activeItem === 'group-2_item-1'}\n >\n Group 2 Link 1\n </NavItem>\n <NavItem\n preventDefault\n to=\"#nav-group2-item2\"\n itemId=\"group-2_item-2\"\n isActive={activeItem === 'group-2_item-2'}\n >\n Group 2 Link 2\n </NavItem>\n <NavItem\n preventDefault\n to=\"#nav-group2-item3\"\n itemId=\"group-2_item-3\"\n isActive={activeItem === 'group-2_item-3'}\n >\n Group 2 Link 3\n </NavItem>\n </NavGroup>\n </Nav>\n );\n};\n","title":"Grouped","lang":"ts","className":""}}>
288
-
289
- <p {...{"className":"pf-v6-c-content--p pf-m-editorial ws-p "}}>
290
- {`The following example shows two navigation groups, each with a `}
291
-
292
- <code {...{"className":"ws-code "}}>
293
- {`title`}
294
- </code>
295
- {` prop passed into the nav group component. To keep nav groups accessible an `}
296
-
297
- <code {...{"className":"ws-code "}}>
298
- {`aria-label`}
299
- </code>
300
- {` must be passed in if the `}
301
-
302
- <code {...{"className":"ws-code "}}>
303
- {`title`}
304
- </code>
305
- {` prop is not passed in.`}
306
- </p>
307
- </Example>,
308
- 'Expandable': props =>
309
- <Example {...pageData} {...props} {...{"code":"import { useState } from 'react';\nimport { Nav, NavExpandable, NavItem, NavList } from '@patternfly/react-core';\n\nexport const NavExpandableExample: React.FunctionComponent = () => {\n const [activeGroup, setActiveGroup] = useState('nav-expandable-group-1');\n const [activeItem, setActiveItem] = useState('nav-expandable-group-1_item-1');\n\n const onSelect = (\n _event: React.FormEvent<HTMLInputElement>,\n result: { itemId: number | string; groupId: number | string }\n ) => {\n setActiveGroup(result.groupId as string);\n setActiveItem(result.itemId as string);\n };\n\n const onToggle = (\n _event: React.MouseEvent<HTMLButtonElement>,\n result: { groupId: number | string; isExpanded: boolean }\n ) => {\n // eslint-disable-next-line no-console\n console.log(`Group ${result.groupId} expanded? ${result.isExpanded}`);\n };\n\n const onItemClick = (\n _event: React.FormEvent<HTMLInputElement>,\n itemId: number | string,\n _groupId: number | string\n ) => {\n // eslint-disable-next-line no-console\n console.log(`Custom click handler on ${itemId}`);\n };\n\n return (\n <Nav onSelect={onSelect} onToggle={onToggle} aria-label=\"Expandable global\">\n <NavList>\n <NavExpandable\n title=\"Expandable Group 1\"\n groupId=\"nav-expandable-group-1\"\n isActive={activeGroup === 'nav-expandable-group-1'}\n isExpanded\n >\n <NavItem\n preventDefault\n id=\"expandable-1\"\n to=\"#expandable-1\"\n groupId=\"nav-expandable-group-1\"\n itemId=\"nav-expandable-group-1_item-1\"\n isActive={activeItem === 'nav-expandable-group-1_item-1'}\n >\n Subnav 1 Link 1\n </NavItem>\n <NavItem\n preventDefault\n id=\"expandable-2\"\n to=\"#expandable-2\"\n groupId=\"nav-expandable-group-1\"\n itemId=\"nav-expandable-group-1_item-2\"\n isActive={activeItem === 'nav-expandable-group-1_item-2'}\n >\n Subnav 1 Link 2\n </NavItem>\n <NavItem\n preventDefault\n id=\"expandable-3\"\n to=\"#expandable-3\"\n groupId=\"nav-expandable-group-1\"\n itemId=\"nav-expandable-group-1_item-3\"\n isActive={activeItem === 'nav-expandable-group-1_item-3'}\n >\n Subnav 1 Link 3\n </NavItem>\n </NavExpandable>\n <NavExpandable\n title=\"Expandable Group 2\"\n groupId=\"nav-expandable-group-2\"\n isActive={activeGroup === 'nav-expandable-group-2'}\n isExpanded\n >\n <NavItem\n preventDefault\n onClick={onItemClick}\n id=\"expandable-custom-click\"\n to=\"#expandable-custom-click\"\n groupId=\"nav-expandable-group-2\"\n itemId=\"nav-expandable-group-2_custom-click\"\n isActive={activeItem === 'nav-expandable-group-2_custom-click'}\n >\n Custom onClick Link\n </NavItem>\n <NavItem\n preventDefault\n id=\"expandable-4\"\n to=\"#expandable-4\"\n groupId=\"nav-expandable-group-2\"\n itemId=\"nav-expandable-group-2_item-1\"\n isActive={activeItem === 'nav-expandable-group-2_item-1'}\n >\n Subnav 2 Link 1\n </NavItem>\n <NavItem\n preventDefault\n id=\"expandable-5\"\n to=\"#expandable-5\"\n groupId=\"nav-expandable-group-2\"\n itemId=\"nav-expandable-group-2_item-2\"\n isActive={activeItem === 'nav-expandable-group-2_item-2'}\n >\n Subnav 2 Link 2\n </NavItem>\n <NavItem\n preventDefault\n id=\"expandable-6\"\n to=\"#expandable-6\"\n groupId=\"nav-expandable-group-2\"\n itemId=\"nav-expandable-group-2_item-3\"\n isActive={activeItem === 'nav-expandable-group-2_item-3'}\n >\n Subnav 2 Link 3\n </NavItem>\n </NavExpandable>\n </NavList>\n </Nav>\n );\n};\n","title":"Expandable","lang":"ts","className":""}}>
310
-
311
- </Example>,
312
- 'Expandable third level': props =>
313
- <Example {...pageData} {...props} {...{"code":"import { useState } from 'react';\nimport { Nav, NavExpandable, NavItem, NavList } from '@patternfly/react-core';\n\nexport const NavExpandableThirdLevel: React.FunctionComponent = () => {\n const [activeGroup, setActiveGroup] = useState('nav-expand3rd-group-1');\n const [activeItem, setActiveItem] = useState('nav-expand3rd-group-1_item-1');\n\n const onSelect = (\n _event: React.FormEvent<HTMLInputElement>,\n result: { itemId: number | string; groupId: number | string }\n ) => {\n setActiveGroup(result.groupId as string);\n setActiveItem(result.itemId as string);\n };\n\n const onToggle = (\n _event: React.MouseEvent<HTMLButtonElement>,\n result: { groupId: number | string; isExpanded: boolean }\n ) => {\n // eslint-disable-next-line no-console\n console.log(`Group ${result.groupId} expanded? ${result.isExpanded}`);\n };\n\n return (\n <Nav onSelect={onSelect} onToggle={onToggle} aria-label=\"Expandable third level global\">\n <NavList>\n <NavExpandable\n title=\"Expandable section title 1\"\n groupId=\"nav-expand3rd-group-1\"\n isActive={activeGroup === 'nav-expand3rd-group-1'}\n isExpanded\n >\n <NavItem\n preventDefault\n id=\"expandable3rd-1\"\n to=\"#expandable3rd-1\"\n groupId=\"nav-expand3rd-group-1\"\n itemId=\"nav-expand3rd-group-1_item-1\"\n isActive={activeItem === 'nav-expand3rd-group-1_item-1'}\n >\n With 3rd 1 Link 1\n </NavItem>\n <NavItem\n preventDefault\n id=\"expandable3rd-2\"\n to=\"#expandable3rd-2\"\n groupId=\"nav-expand3rd-group-1\"\n itemId=\"nav-expand3rd-group-1_item-2\"\n isActive={activeItem === 'nav-expand3rd-group-1_item-2'}\n >\n With 3rd 1 Link 2\n </NavItem>\n <NavItem\n preventDefault\n id=\"expandable3rd-3\"\n to=\"#expandable3rd-3\"\n groupId=\"nav-expand3rd-group-1\"\n itemId=\"nav-expand3rd-group-1_item-3\"\n isActive={activeItem === 'nav-expand3rd-group-1_item-3'}\n >\n With 3rd 1 Link 3\n </NavItem>\n </NavExpandable>\n <NavExpandable\n title={'Expandable section title 2'}\n groupId=\"nav-expand3rd-group-2\"\n isActive={activeGroup === 'nav-expand3rd-group-2'}\n isExpanded\n >\n <NavItem\n preventDefault\n id=\"expandable3rd-4\"\n to=\"#expandable3rd-4\"\n groupId=\"nav-expand3rd-group-2\"\n itemId=\"nav-expand3rd-group-2_item-1\"\n isActive={activeItem === 'nav-expand3rd-group-2_item-1'}\n >\n With 3rd 2 Link 1\n </NavItem>\n <NavExpandable\n title=\"Expandable third level\"\n groupId=\"nav-expand3rd-group-3\"\n isActive={activeGroup === 'nav-expand3rd-group-3'}\n isExpanded\n >\n <NavItem\n preventDefault\n id=\"expandable3rd-5\"\n to=\"#expandable3rd-5\"\n groupId=\"nav-expand3rd-group-3\"\n itemId=\"nav-expand3rd-group-3_item-1\"\n isActive={activeItem === 'nav-expand3rd-group-3_item-1'}\n >\n Third Level Link 1\n </NavItem>\n <NavItem\n preventDefault\n id=\"expandable3rd-6\"\n to=\"#expandable3rd-6\"\n groupId=\"nav-expand3rd-group-3\"\n itemId=\"nav-expand3rd-group-3_item-3\"\n isActive={activeItem === 'nav-expand3rd-group-3_item-2'}\n >\n Third Level Link 2\n </NavItem>\n </NavExpandable>\n <NavItem\n preventDefault\n id=\"expandable3rd-7\"\n to=\"#expandable3rd-7\"\n groupId=\"nav-expand3rd-group-2\"\n itemId=\"nav-expand3rd-group-2_item-2\"\n isActive={activeItem === 'nav-expand3rd-group-2_item-2'}\n >\n With 3rd 2 Link 2\n </NavItem>\n </NavExpandable>\n </NavList>\n </Nav>\n );\n};\n","title":"Expandable third level","lang":"ts","className":""}}>
314
-
315
- </Example>,
316
- 'Mixed': props =>
317
- <Example {...pageData} {...props} {...{"code":"import { useState } from 'react';\nimport { Nav, NavExpandable, NavItem, NavItemSeparator, NavList } from '@patternfly/react-core';\n\nexport const NavMixed: React.FunctionComponent = () => {\n const [activeGroup, setActiveGroup] = useState('');\n const [activeItem, setActiveItem] = useState('ungrouped_item-1');\n\n const onSelect = (\n _event: React.FormEvent<HTMLInputElement>,\n result: { itemId: number | string; groupId: number | string | null }\n ) => {\n setActiveGroup(result.groupId as string);\n setActiveItem(result.itemId as string);\n };\n\n return (\n <Nav onSelect={onSelect} aria-label=\"Mixed global\">\n <NavList>\n <NavItem\n preventDefault\n id=\"mixed-1\"\n to=\"#mixed-1\"\n itemId=\"ungrouped_item-1\"\n isActive={activeItem === 'ungrouped_item-1'}\n >\n Link 1 (not expandable)\n </NavItem>\n <NavExpandable\n title=\"Expandable section title 1\"\n groupId=\"nav-mixed-group-1\"\n isActive={activeGroup === 'nav-mixed-group-1'}\n >\n <NavItem\n preventDefault\n id=\"mixed-2\"\n to=\"#mixed-2\"\n groupId=\"nav-mixed-group-1\"\n itemId=\"nav-mixed-group-1_item-1\"\n isActive={activeItem === 'nav-mixed-group-1_item-1'}\n >\n Mixed Link 1\n </NavItem>\n <NavItemSeparator />\n <NavItem\n preventDefault\n id=\"mixed-3\"\n to=\"#mixed-3\"\n groupId=\"nav-mixed-group-1\"\n itemId=\"nav-mixed-group-1_item-2\"\n isActive={activeItem === 'nav-mixed-group-1_item-2'}\n >\n Mixed Link 2\n </NavItem>\n <NavItem\n preventDefault\n id=\"mixed-4\"\n to=\"#mixed-4\"\n groupId=\"nav-mixed-group-1\"\n itemId=\"nav-mixed-group-1_item-3\"\n isActive={activeItem === 'nav-mixed-group-1_item-3'}\n >\n Mixed Link 3\n </NavItem>\n </NavExpandable>\n <NavExpandable\n title=\"Expandable section title 2\"\n groupId=\"nav-mixed-group-2\"\n isActive={activeGroup === 'nav-mixed-group-2'}\n >\n <NavItem\n preventDefault\n id=\"mixed-5\"\n to=\"#mixed-5\"\n groupId=\"nav-mixed-group-2\"\n itemId=\"nav-mixed-group-2_item-1\"\n isActive={activeItem === 'nav-mixed-group-2_item-1'}\n >\n Mixed 2 Link 1\n </NavItem>\n <NavItem\n preventDefault\n id=\"mixed-6\"\n to=\"#mixed-6\"\n groupId=\"nav-mixed-group-2\"\n itemId=\"nav-mixed-group-2_item-2\"\n isActive={activeItem === 'nav-mixed-group-2_item-2'}\n >\n Mixed 2 Link 2\n </NavItem>\n <NavItem\n preventDefault\n id=\"mixed-7\"\n to=\"#mixed-7\"\n groupId=\"nav-mixed-group-2\"\n itemId=\"nav-mixed-group-2_item-3\"\n isActive={activeItem === 'nav-mixed-group-2_item-3'}\n >\n Mixed 2 Link 3\n </NavItem>\n </NavExpandable>\n </NavList>\n </Nav>\n );\n};\n","title":"Mixed","lang":"ts","className":""}}>
318
-
319
- </Example>,
320
- 'Horizontal navigation': props =>
321
- <Example {...pageData} {...props} {...{"code":"import { useState } from 'react';\nimport { Nav, NavItem, NavList } from '@patternfly/react-core';\n\nexport const NavHorizontalNav: React.FunctionComponent = () => {\n const [activeItem, setActiveItem] = useState(0);\n\n const onSelect = (_event: React.FormEvent<HTMLInputElement>, result: { itemId: number | string }) => {\n setActiveItem(result.itemId as number);\n };\n\n return (\n <Nav onSelect={onSelect} variant=\"horizontal\" aria-label=\"Horizontal nav local\">\n <NavList>\n {Array.from({ length: 10 }).map((_value, index) => {\n const num = index + 1;\n return (\n <NavItem\n preventDefault\n key={num}\n itemId={num}\n isActive={activeItem === num}\n id={`horizontal-nav-${num}`}\n to={`#horizontal-nav-${num}`}\n >\n Horizontal navigation item {num}\n </NavItem>\n );\n })}\n </NavList>\n </Nav>\n );\n};\n","title":"Horizontal navigation","lang":"ts","className":""}}>
322
-
323
- </Example>,
324
- 'Horizontal subnav': props =>
325
- <Example {...pageData} {...props} {...{"code":"import { useState } from 'react';\nimport { Nav, NavItem, NavList } from '@patternfly/react-core';\n\nexport const NavHorizontalSubNav: React.FunctionComponent = () => {\n const [activeItem, setActiveItem] = useState(0);\n\n const onSelect = (_event: React.FormEvent<HTMLInputElement>, result: { itemId: number | string }) => {\n setActiveItem(result.itemId as number);\n };\n\n return (\n <Nav onSelect={onSelect} variant=\"horizontal-subnav\" aria-label=\"Horizontal subnav local\">\n <NavList>\n {Array.from({ length: 10 }).map((_value, index) => {\n const num = index + 1;\n return (\n <NavItem\n preventDefault\n key={num}\n itemId={num}\n isActive={activeItem === num}\n id={`horizontal-subnav-${num}`}\n to={`#horizontal-subnav-${num}`}\n >\n Horizontal subnav item {num}\n </NavItem>\n );\n })}\n </NavList>\n </Nav>\n );\n};\n","title":"Horizontal subnav","lang":"ts","className":""}}>
326
-
327
- </Example>,
328
- 'Flyout': props =>
329
- <Example {...pageData} {...props} {...{"code":"import { useState } from 'react';\nimport { Nav, NavItem, NavList, Menu, MenuContent, MenuList, MenuItem } from '@patternfly/react-core';\n\nexport const NavFlyout: React.FunctionComponent = () => {\n const [activeItem, setActiveItem] = useState('nav-flyout-default-link-1');\n\n const onSelect = (event: React.FormEvent<HTMLInputElement>, result: { itemId: number | string }) => {\n setActiveItem(result.itemId as string);\n };\n\n const onMenuSelect = (_event: any, itemId: string | number | undefined) => setActiveItem(itemId as string);\n\n const onMenuItemClick = (event: any) => {\n event.preventDefault();\n };\n\n const numFlyouts = 5;\n const FlyoutMenu = ({ depth, children }) => (\n <Menu key={depth} containsFlyout isNavFlyout id={`nav-flyout-menu-${depth}`} onSelect={onMenuSelect}>\n <MenuContent>\n <MenuList>\n <MenuItem onClick={onMenuItemClick} flyoutMenu={children} itemId={`nav-flyout-next-menu-${depth}`}>\n Next menu\n </MenuItem>\n {Array.from({ length: numFlyouts - depth }).map((_value, index) => (\n <MenuItem\n onClick={onMenuItemClick}\n key={`${depth}-${index}`}\n itemId={`nav-flyout-${depth}-${index}`}\n to={`#menu-link-${depth}-${index}`}\n isActive={activeItem === `nav-flyout-${depth}-${index}`}\n >\n Menu {depth} item {index}\n </MenuItem>\n ))}\n <MenuItem onClick={onMenuItemClick} flyoutMenu={children} itemId={`nav-flyout-next-menu-2-${depth}`}>\n Next menu\n </MenuItem>\n </MenuList>\n </MenuContent>\n </Menu>\n );\n\n let curFlyout = <FlyoutMenu depth={1}>{null}</FlyoutMenu>;\n for (let i = 2; i < numFlyouts - 1; i++) {\n curFlyout = <FlyoutMenu depth={i}>{curFlyout}</FlyoutMenu>;\n }\n\n return (\n <Nav onSelect={onSelect} aria-label=\"Flyout global\">\n <NavList>\n <NavItem\n preventDefault\n id=\"nav-flyout-default-link-1\"\n to=\"#nav-flyout-default-link-1\"\n itemId=\"nav-flyout-default-link-1\"\n isActive={activeItem === 'nav-flyout-default-link-1'}\n >\n Flyout Link 1\n </NavItem>\n <NavItem\n preventDefault\n id=\"nav-flyout-default-link-2\"\n to=\"#nav-flyout-default-link-2\"\n itemId=\"nav-flyout-default-link-2\"\n isActive={activeItem === 'nav-flyout-default-link-2'}\n >\n Flyout Link 2\n </NavItem>\n <NavItem\n preventDefault\n flyout={curFlyout}\n id=\"nav-flyout-default-link-3\"\n itemId=\"nav-flyout-default-link-3\"\n isActive={activeItem === 'nav-flyout-default-link-3'}\n >\n Flyout Link 3\n </NavItem>\n <NavItem\n preventDefault\n id=\"nav-flyout-default-link4\"\n to=\"#nav-flyout-default-link4\"\n itemId=\"nav-flyout-default-link-4\"\n isActive={activeItem === 'nav-flyout-default-link-4'}\n >\n Flyout Link 4\n </NavItem>\n </NavList>\n </Nav>\n );\n};\n","title":"Flyout","lang":"ts","className":""}}>
330
-
331
- <p {...{"className":"pf-v6-c-content--p pf-m-editorial ws-p "}}>
332
- {`A flyout should be a `}
333
-
334
- <code {...{"className":"ws-code "}}>
335
- {`Menu`}
336
- </code>
337
- {` component. Press `}
338
-
339
- <code {...{"className":"ws-code "}}>
340
- {`space`}
341
- </code>
342
- {` or `}
343
-
344
- <code {...{"className":"ws-code "}}>
345
- {`right arrow`}
346
- </code>
347
- {` to open a flyout using the keyboard, use the arrow keys to navigate between flyout items, and press `}
348
-
349
- <code {...{"className":"ws-code "}}>
350
- {`escape`}
351
- </code>
352
- {` or `}
353
-
354
- <code {...{"className":"ws-code "}}>
355
- {`left arrow`}
356
- </code>
357
- {` to close a flyout.`}
358
- </p>
359
- </Example>,
360
- 'Drilldown': props =>
361
- <Example {...pageData} {...props} {...{"code":"import { Nav, MenuContent, MenuItem, MenuList, DrilldownMenu, Menu } from '@patternfly/react-core';\n\ninterface MenuHeights {\n [menuId: string]: number;\n}\n\nconst subMenuTwo: React.JSX.Element = (\n <DrilldownMenu id=\"nav-drilldown-subMenu-2\">\n <MenuItem itemId=\"nav-drilldown-subMenu-2-breadcrumb\" direction=\"up\">\n SubMenu 1 - Item 1\n </MenuItem>\n <MenuItem itemId=\"nav-drilldown-subMenu-2_item-1\" to=\"#subMenu-2_item-1\">\n SubMenu 2 - Item 1\n </MenuItem>\n <MenuItem itemId=\"nav-drilldown-subMenu-2_item-2\" to=\"#subMenu-2_item-2\">\n SubMenu 2 - Item 2\n </MenuItem>\n <MenuItem itemId=\"nav-drilldown-subMenu-2_item-3\" to=\"#subMenu-2_item-3\">\n SubMenu 2 - Item 3\n </MenuItem>\n </DrilldownMenu>\n);\n\nconst subMenuOne: React.JSX.Element = (\n <DrilldownMenu id=\"nav-drilldown-subMenu-1\">\n <MenuItem itemId=\"nav-drilldown-subMenu-1-breadcrumb\" direction=\"up\">\n Item 1\n </MenuItem>\n <MenuItem\n itemId=\"nav-drilldown-subMenu-1_item-1\"\n description=\"SubMenu 2\"\n direction=\"down\"\n drilldownMenu={subMenuTwo}\n >\n SubMenu 1 - Item 1\n </MenuItem>\n <MenuItem itemId=\"nav-drilldown-subMenu-1_item-2\" to=\"#subMenu-1_item-2\">\n SubMenu 1 - Item 2\n </MenuItem>\n <MenuItem itemId=\"nav-drilldown-subMenu-1_item-3\" to=\"#subMenu-1_item-3\">\n SubMenu 1 - Item 3\n </MenuItem>\n </DrilldownMenu>\n);\n\nexport const NavigationDrilldown: React.FunctionComponent = () => {\n const [menuDrilledIn, setMenuDrilledIn] = useState<string[]>([]);\n const [drilldownPath, setDrilldownPath] = useState<string[]>([]);\n const [menuHeights, setMenuHeights] = useState<MenuHeights>({});\n const [activeMenu, setActiveMenu] = useState('nav-drilldown-rootMenu');\n\n const onDrillIn = (\n _event: React.KeyboardEvent | React.MouseEvent,\n fromItemId: string,\n toItemId: string,\n itemId: string\n ) => {\n setMenuDrilledIn((prevMenuDrilledIn) => [...prevMenuDrilledIn, fromItemId]);\n setDrilldownPath((prevDrilldownPath) => [...prevDrilldownPath, itemId]);\n setActiveMenu(toItemId);\n };\n\n const onDrillOut = (_event: React.KeyboardEvent | React.MouseEvent, toItemId: string, _itemId: string) => {\n setMenuDrilledIn((prevMenuDrilledIn) => prevMenuDrilledIn.slice(0, prevMenuDrilledIn.length - 1));\n setDrilldownPath((prevDrilldownPath) => prevDrilldownPath.slice(0, prevDrilldownPath.length - 1));\n setActiveMenu(toItemId);\n };\n\n const onGetMenuHeight = (menuId: string, height: number) => {\n if (\n (menuHeights[menuId] !== height && menuId !== 'nav-drilldown-rootMenu') ||\n (!menuHeights[menuId] && menuId === 'nav-drilldown-rootMenu')\n ) {\n setMenuHeights((prevMenuHeights) => ({ ...prevMenuHeights, [menuId]: height }));\n }\n };\n\n return (\n <Nav aria-label=\"Drilldown global\">\n <Menu\n id=\"nav-drilldown-rootMenu\"\n containsDrilldown\n drilldownItemPath={drilldownPath}\n drilledInMenus={menuDrilledIn}\n activeMenu={activeMenu}\n onDrillIn={onDrillIn}\n onDrillOut={onDrillOut}\n onGetMenuHeight={onGetMenuHeight}\n >\n <MenuContent menuHeight={menuHeights[activeMenu] ? `${menuHeights[activeMenu]}px` : undefined}>\n <MenuList>\n <MenuItem itemId=\"nav-drilldown-item-1\" direction=\"down\" description=\"SubMenu 1\" drilldownMenu={subMenuOne}>\n Item 1\n </MenuItem>\n <MenuItem itemId=\"nav-drilldown-item-2\" to=\"#item-2\">\n Item 2\n </MenuItem>\n <MenuItem itemId=\"nav-drilldown-item-3\" to=\"#item-3\">\n Item 3\n </MenuItem>\n </MenuList>\n </MenuContent>\n </Menu>\n </Nav>\n );\n};\n","title":"Drilldown","lang":"ts","className":""}}>
362
-
363
- </Example>,
364
- 'With icons': props =>
365
- <Example {...pageData} {...props} {...{"code":"import { useState } from 'react';\nimport { Nav, NavExpandable, NavItem, NavList } from '@patternfly/react-core';\nimport CubeIcon from '@patternfly/react-icons/dist/esm/icons/cube-icon';\nimport FolderIcon from '@patternfly/react-icons/dist/esm/icons/folder-icon';\nimport CloudIcon from '@patternfly/react-icons/dist/esm/icons/cloud-icon';\nimport FolderOpenIcon from '@patternfly/react-icons/dist/esm/icons/folder-open-icon';\nimport RhUiLinkIcon from '@patternfly/react-icons/dist/esm/icons/rh-ui-link-icon';\n\nexport const NavIcons: React.FunctionComponent = () => {\n const [activeItem, setActiveItem] = useState(0);\n\n const onSelect = (_event: React.FormEvent<HTMLInputElement>, result: { itemId: number | string }) => {\n setActiveItem(result.itemId as number);\n };\n\n return (\n <Nav onSelect={onSelect} aria-label=\"Icon global\" ouiaId=\"IconNav\">\n <NavList>\n <NavItem\n preventDefault\n id=\"nav-icon-link1\"\n to=\"#nav-icon-link1\"\n itemId={0}\n isActive={activeItem === 0}\n icon={<CubeIcon />}\n >\n Link 1\n </NavItem>\n <NavItem\n preventDefault\n id=\"nav-icon-link2\"\n to=\"#nav-icon-link2\"\n itemId={1}\n isActive={activeItem === 1}\n icon={<FolderIcon />}\n >\n Link 2\n </NavItem>\n <NavItem\n preventDefault\n id=\"nav-icon-link3\"\n to=\"#nav-icon-link3\"\n itemId={2}\n isActive={activeItem === 2}\n icon={<CloudIcon />}\n >\n Link 3\n </NavItem>\n <NavItem\n preventDefault\n id=\"nav-icon-link4\"\n to=\"#nav-icon-link4\"\n itemId={3}\n isActive={activeItem === 3}\n icon={<RhUiLinkIcon />}\n >\n Link 4\n </NavItem>\n <NavExpandable title=\"Expandable\" icon={<FolderOpenIcon />} groupId=\"nav-icon-expandable\">\n <NavItem\n preventDefault\n id=\"nav-icon-expandable-link1\"\n to=\"#nav-icon-expandable-link1\"\n itemId={4}\n isActive={activeItem === 4}\n >\n Subnav link 1\n </NavItem>\n <NavItem\n preventDefault\n id=\"nav-icon-expandable-link2\"\n to=\"#nav-icon-expandable-link2\"\n itemId={5}\n isActive={activeItem === 5}\n >\n Subnav link 2\n </NavItem>\n </NavExpandable>\n </NavList>\n </Nav>\n );\n};\n","title":"With icons","lang":"ts","className":""}}>
366
-
367
- </Example>
368
- };
369
-
370
- const Component = () => (
371
- <React.Fragment>
372
- <AutoLinkHeader {...{"id":"examples","headingLevel":"h2","className":"ws-title ws-h2"}}>
373
- {`Examples`}
374
- </AutoLinkHeader>
375
- {React.createElement(pageData.examples["Default"])}
376
- {React.createElement(pageData.examples["Grouped"])}
377
- {React.createElement(pageData.examples["Expandable"])}
378
- {React.createElement(pageData.examples["Expandable third level"])}
379
- {React.createElement(pageData.examples["Mixed"])}
380
- {React.createElement(pageData.examples["Horizontal navigation"])}
381
- {React.createElement(pageData.examples["Horizontal subnav"])}
382
- {React.createElement(pageData.examples["Flyout"])}
383
- {React.createElement(pageData.examples["Drilldown"])}
384
- {React.createElement(pageData.examples["With icons"])}
385
- <AutoLinkHeader {...{"id":"types","headingLevel":"h2","className":"ws-title ws-h2"}}>
386
- {`Types`}
387
- </AutoLinkHeader>
388
- <AutoLinkHeader {...{"id":"navselectclickhandler","headingLevel":"h3","className":"ws-title ws-h3"}}>
389
- {`NavSelectClickHandler`}
390
- </AutoLinkHeader>
391
- <p {...{"className":"pf-v6-c-content--p pf-m-editorial ws-p "}}>
392
- {`The NavItem `}
393
- <code {...{"className":"ws-code "}}>
394
- {`onClick`}
395
- </code>
396
- {` prop accepts the `}
397
- <code {...{"className":"ws-code "}}>
398
- {`NavSelectClickHandler`}
399
- </code>
400
- {` type, which is made up of the following argument and return types:`}
401
- </p>
402
- <Example {...{"code":"(\n event: React.FormEvent<HTMLInputElement>,\n itemId: number | string,\n groupId: number | string,\n to: string\n) => void;","lang":"noLive","className":""}}>
403
- </Example>
404
- </React.Fragment>
405
- );
406
- Component.displayName = 'ComponentsNavigationReactDocs';
407
- Component.pageData = pageData;
408
-
409
- export default Component;