@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,826 +0,0 @@
1
- import React from 'react';
2
- import { AutoLinkHeader, Example, Link as PatternflyThemeLink } from '@patternfly/documentation-framework/components';
3
- import { Fragment, useState } from 'react';
4
- import RhMicronsCloseIcon from '@patternfly/react-icons/dist/esm/icons/rh-microns-close-icon';
5
- import RhUiExternalLinkFillIcon from '@patternfly/react-icons/dist/esm/icons/rh-ui-external-link-fill-icon';
6
- import RhUiAddCircleFillIcon from '@patternfly/react-icons/dist/esm/icons/rh-ui-add-circle-fill-icon';
7
- import RhUiCopyFillIcon from '@patternfly/react-icons/dist/esm/icons/rh-ui-copy-fill-icon';
8
- import RhMicronsCaretRightIcon from '@patternfly/react-icons/dist/esm/icons/rh-microns-caret-right-icon';
9
- import UploadIcon from '@patternfly/react-icons/dist/esm/icons/upload-icon';
10
- import RhUiNotificationFillIcon from '@patternfly/react-icons/dist/esm/icons/rh-ui-notification-fill-icon';
11
- import RhUiQuestionMarkCircleFillIcon from '@patternfly/react-icons/dist/esm/icons/rh-ui-question-mark-circle-fill-icon';
12
- const pageData = {
13
- "id": "Button",
14
- "section": "components",
15
- "subsection": "",
16
- "deprecated": false,
17
- "template": false,
18
- "beta": false,
19
- "demo": false,
20
- "newImplementationLink": false,
21
- "source": "react",
22
- "tabName": null,
23
- "slug": "/components/button/react",
24
- "sourceLink": "https://github.com/patternfly/patternfly-react/blob/main/packages/react-core/src/components/Button/examples/Button.md",
25
- "relPath": "packages/react-core/src/components/Button/examples/Button.md",
26
- "propComponents": [
27
- {
28
- "name": "Button",
29
- "description": "",
30
- "props": [
31
- {
32
- "name": "aria-label",
33
- "type": "string",
34
- "description": "Adds accessible text to the button."
35
- },
36
- {
37
- "name": "children",
38
- "type": "React.ReactNode",
39
- "description": "Content rendered inside the button"
40
- },
41
- {
42
- "name": "className",
43
- "type": "string",
44
- "description": "Additional classes added to the button"
45
- },
46
- {
47
- "name": "component",
48
- "type": "React.ElementType<any> | React.ComponentType<any>",
49
- "description": "Sets the base component to render. defaults to button"
50
- },
51
- {
52
- "name": "countOptions",
53
- "type": "BadgeCountObject",
54
- "description": "Adds count number to button"
55
- },
56
- {
57
- "name": "hamburgerVariant",
58
- "type": "'expand' | 'collapse'",
59
- "description": "Adjusts and animates the hamburger icon to indicate what will happen upon clicking the button."
60
- },
61
- {
62
- "name": "hasNoPadding",
63
- "type": "boolean",
64
- "description": "Applies no padding on a plain button variant. Use when plain button is placed inline with text"
65
- },
66
- {
67
- "name": "icon",
68
- "type": "React.ReactNode | null",
69
- "description": "Icon for the button."
70
- },
71
- {
72
- "name": "iconPosition",
73
- "type": "'start' | 'end' | 'left' | 'right'",
74
- "description": "Sets position of the icon. Note: \"left\" and \"right\" are deprecated. Use \"start\" and \"end\" instead"
75
- },
76
- {
77
- "name": "inoperableEvents",
78
- "type": "string[]",
79
- "description": "Events to prevent when the button is in an aria-disabled state"
80
- },
81
- {
82
- "name": "isAriaDisabled",
83
- "type": "boolean",
84
- "description": "Adds disabled styling and communicates that the button is disabled using the aria-disabled html attribute"
85
- },
86
- {
87
- "name": "isBlock",
88
- "type": "boolean",
89
- "description": "Adds block styling to button"
90
- },
91
- {
92
- "name": "isCircle",
93
- "type": "boolean",
94
- "description": "Flag indicating the button is a circle button. Intended for buttons that only contain an icon..",
95
- "beta": true
96
- },
97
- {
98
- "name": "isClicked",
99
- "type": "boolean",
100
- "description": "Adds clicked styling to button."
101
- },
102
- {
103
- "name": "isDanger",
104
- "type": "boolean",
105
- "description": "Adds danger styling to secondary or link button variants"
106
- },
107
- {
108
- "name": "isDisabled",
109
- "type": "boolean",
110
- "description": "Adds disabled styling and disables the button using the disabled html attribute"
111
- },
112
- {
113
- "name": "isDocked",
114
- "type": "boolean",
115
- "description": "Flag indicating the button is a docked variant button. For use in docked navigation.",
116
- "beta": true
117
- },
118
- {
119
- "name": "isExpanded",
120
- "type": "boolean",
121
- "description": "Flag indicating whether content the button controls is expanded or not. Required when isHamburger is true."
122
- },
123
- {
124
- "name": "isFavorite",
125
- "type": "boolean",
126
- "description": "Adds favorite styling to a button"
127
- },
128
- {
129
- "name": "isFavorited",
130
- "type": "boolean",
131
- "description": "Flag indicating whether the button is favorited or not, only when isFavorite is true."
132
- },
133
- {
134
- "name": "isHamburger",
135
- "type": "boolean",
136
- "description": "Flag indicating the button is a hamburger button. This will override the icon property."
137
- },
138
- {
139
- "name": "isInline",
140
- "type": "boolean",
141
- "description": "Adds inline styling to a link button"
142
- },
143
- {
144
- "name": "isLoading",
145
- "type": "boolean",
146
- "description": "Adds progress styling to button"
147
- },
148
- {
149
- "name": "isSettings",
150
- "type": "boolean",
151
- "description": "Flag indicating the button is a settings button. This will override the icon property."
152
- },
153
- {
154
- "name": "isTextExpanded",
155
- "type": "boolean",
156
- "description": "Flag indicating the docked button should display text. Only applies when isDocked is true.",
157
- "beta": true
158
- },
159
- {
160
- "name": "ouiaId",
161
- "type": "number | string",
162
- "description": "Value to overwrite the randomly generated data-ouia-component-id."
163
- },
164
- {
165
- "name": "ouiaSafe",
166
- "type": "boolean",
167
- "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."
168
- },
169
- {
170
- "name": "size",
171
- "type": "'default' | 'sm' | 'lg'",
172
- "description": "Adds styling which affects the size of the button"
173
- },
174
- {
175
- "name": "spinnerAriaLabel",
176
- "type": "string",
177
- "description": "Accessible label for the spinner to describe what is loading"
178
- },
179
- {
180
- "name": "spinnerAriaLabelledBy",
181
- "type": "string",
182
- "description": "Id of element which describes what is being loaded"
183
- },
184
- {
185
- "name": "spinnerAriaValueText",
186
- "type": "string",
187
- "description": "Text describing that current loading status or progress"
188
- },
189
- {
190
- "name": "state",
191
- "type": "'read' | 'unread' | 'attention'",
192
- "description": "Sets state of the stateful button variant. Default is \"unread\""
193
- },
194
- {
195
- "name": "tabIndex",
196
- "type": "number",
197
- "description": "Sets the button tabindex."
198
- },
199
- {
200
- "name": "type",
201
- "type": "'button' | 'submit' | 'reset'",
202
- "description": "Sets button type"
203
- },
204
- {
205
- "name": "variant",
206
- "type": "'primary' | 'secondary' | 'tertiary' | 'danger' | 'warning' | 'link' | 'plain' | 'control' | 'stateful'",
207
- "description": "Adds button variant styles"
208
- }
209
- ]
210
- },
211
- {
212
- "name": "BadgeCountObject",
213
- "description": "",
214
- "props": [
215
- {
216
- "name": "className",
217
- "type": "string",
218
- "description": "Additional classes added to the badge count"
219
- },
220
- {
221
- "name": "count",
222
- "type": "number",
223
- "description": "Adds count number right of button"
224
- },
225
- {
226
- "name": "isRead",
227
- "type": "boolean",
228
- "description": "Adds styling to the badge to indicate it has been read"
229
- }
230
- ]
231
- }
232
- ],
233
- "cssPrefix": [
234
- "pf-v6-c-button"
235
- ],
236
- "examples": [
237
- "Variant examples",
238
- "Disabled buttons",
239
- "Small buttons",
240
- "Call to action (CTA) buttons",
241
- "Block level buttons",
242
- "Progress indicators",
243
- "Links as buttons",
244
- "Inline link as span",
245
- "Custom component",
246
- "Aria-disabled examples",
247
- "Button with count",
248
- "Plain with no padding",
249
- "Stateful",
250
- "Circle buttons",
251
- "Favorite",
252
- "Settings",
253
- "Hamburger"
254
- ]
255
- };
256
- pageData.liveContext = {
257
- Fragment,
258
- useState,
259
- RhMicronsCloseIcon,
260
- RhUiExternalLinkFillIcon,
261
- RhUiAddCircleFillIcon,
262
- RhUiCopyFillIcon,
263
- RhMicronsCaretRightIcon,
264
- UploadIcon,
265
- RhUiNotificationFillIcon,
266
- RhUiQuestionMarkCircleFillIcon
267
- };
268
- pageData.examples = {
269
- 'Variant examples': props =>
270
- <Example {...pageData} {...props} {...{"code":"import { Button, Flex } from '@patternfly/react-core';\nimport RhMicronsCloseIcon from '@patternfly/react-icons/dist/esm/icons/rh-microns-close-icon';\nimport RhUiExternalLinkFillIcon from '@patternfly/react-icons/dist/esm/icons/rh-ui-external-link-fill-icon';\nimport RhUiAddCircleFillIcon from '@patternfly/react-icons/dist/esm/icons/rh-ui-add-circle-fill-icon';\nimport RhUiCopyFillIcon from '@patternfly/react-icons/dist/esm/icons/rh-ui-copy-fill-icon';\nimport RhUiNotificationFillIcon from '@patternfly/react-icons/dist/esm/icons/rh-ui-notification-fill-icon';\n\nexport const ButtonVariations: React.FunctionComponent = () => (\n <>\n <Flex columnGap={{ default: 'columnGapSm' }}>\n <Button variant=\"primary\" ouiaId=\"Primary\">\n Primary\n </Button>\n <Button variant=\"secondary\" ouiaId=\"Secondary\">\n Secondary\n </Button>\n <Button variant=\"secondary\" ouiaId=\"DangerSecondary\" isDanger>\n Danger Secondary\n </Button>\n <Button variant=\"tertiary\" ouiaId=\"Tertiary\">\n Tertiary\n </Button>\n <Button variant=\"danger\" ouiaId=\"Danger\">\n Danger\n </Button>\n <Button variant=\"warning\" ouiaId=\"Warning\">\n Warning\n </Button>\n </Flex>\n <br />\n <Flex columnGap={{ default: 'columnGapSm' }}>\n <Button variant=\"link\" icon={<RhUiAddCircleFillIcon />}>\n Link\n </Button>\n <Button variant=\"link\" icon={<RhUiExternalLinkFillIcon />} iconPosition=\"end\">\n Link\n </Button>\n <Button variant=\"link\" isInline>\n Inline link\n </Button>\n <Button variant=\"link\" isDanger>\n Danger link\n </Button>\n <Button variant=\"plain\" aria-label=\"Action\" icon={<RhMicronsCloseIcon />} />\n </Flex>\n <br />\n <Flex columnGap={{ default: 'columnGapSm' }}>\n <Button variant=\"control\">Control</Button>\n <Button variant=\"control\" aria-label=\"Copy\" icon={<RhUiCopyFillIcon />} />\n </Flex>\n <br />\n <Flex columnGap={{ default: 'columnGapSm' }}>\n <Button variant=\"stateful\" icon={<RhUiNotificationFillIcon />} state=\"read\">\n Stateful read\n </Button>\n <Button variant=\"stateful\" icon={<RhUiNotificationFillIcon />} state=\"unread\">\n Stateful unread\n </Button>\n <Button variant=\"stateful\" icon={<RhUiNotificationFillIcon />} state=\"attention\">\n Stateful attention\n </Button>\n </Flex>\n </>\n);\n","title":"Variant examples","lang":"ts","className":""}}>
271
-
272
- <p {...{"className":"pf-v6-c-content--p pf-m-editorial ws-p "}}>
273
- {`PatternFly supports several button styling variants to be used in different scenarios as needed. The following button variants can be assigned using the `}
274
-
275
- <code {...{"className":"ws-code "}}>
276
- {`variant`}
277
- </code>
278
- {` property.`}
279
- </p>
280
- </Example>,
281
- 'Disabled buttons': props =>
282
- <Example {...pageData} {...props} {...{"code":"import { Button, Flex } from '@patternfly/react-core';\nimport RhMicronsCloseIcon from '@patternfly/react-icons/dist/esm/icons/rh-microns-close-icon';\nimport RhUiAddCircleFillIcon from '@patternfly/react-icons/dist/esm/icons/rh-ui-add-circle-fill-icon';\nimport RhUiCopyFillIcon from '@patternfly/react-icons/dist/esm/icons/rh-ui-copy-fill-icon';\n\nexport const ButtonDisabled: React.FunctionComponent = () => (\n <>\n <Flex columnGap={{ default: 'columnGapSm' }}>\n <Button isDisabled>Primary</Button>\n <Button variant=\"secondary\" isDisabled>\n Secondary\n </Button>\n <Button variant=\"secondary\" isDanger isDisabled>\n Danger secondary\n </Button>\n <Button isDisabled variant=\"tertiary\">\n Tertiary\n </Button>\n <Button isDisabled variant=\"danger\">\n Danger\n </Button>\n <Button isDisabled variant=\"warning\">\n Warning\n </Button>\n </Flex>\n <br />\n <Flex columnGap={{ default: 'columnGapSm' }}>\n <Button isDisabled variant=\"link\" icon={<RhUiAddCircleFillIcon />}>\n Link\n </Button>\n <Button isDisabled variant=\"link\" isInline>\n Inline link\n </Button>\n <Button variant=\"link\" isDanger isDisabled>\n Danger link\n </Button>\n <Button isDisabled variant=\"plain\" aria-label=\"Action\" icon={<RhMicronsCloseIcon />} />\n </Flex>\n <br />\n <Flex columnGap={{ default: 'columnGapSm' }}>\n <Button isDisabled variant=\"control\">\n Control\n </Button>\n <Button isDisabled variant=\"control\" aria-label=\"Copy\" icon={<RhUiCopyFillIcon />} />\n </Flex>\n </>\n);\n","title":"Disabled buttons","lang":"ts","className":""}}>
283
-
284
- <p {...{"className":"pf-v6-c-content--p pf-m-editorial ws-p "}}>
285
- {`To indicate that an action is currently unavailable, all button variations can be disabled using the `}
286
-
287
- <code {...{"className":"ws-code "}}>
288
- {`isDisabled`}
289
- </code>
290
- {` property.`}
291
- </p>
292
- </Example>,
293
- 'Small buttons': props =>
294
- <Example {...pageData} {...props} {...{"code":"import { Button, Flex } from '@patternfly/react-core';\n\nexport const ButtonSmall: React.FunctionComponent = () => (\n <Flex columnGap={{ default: 'columnGapSm' }}>\n <Button variant=\"primary\" size=\"sm\">\n Primary\n </Button>\n <Button variant=\"secondary\" size=\"sm\">\n Secondary\n </Button>\n <Button variant=\"tertiary\" size=\"sm\">\n Tertiary\n </Button>\n <Button variant=\"danger\" size=\"sm\">\n Danger\n </Button>\n <Button variant=\"warning\" size=\"sm\">\n Warning\n </Button>\n </Flex>\n);\n","title":"Small buttons","lang":"ts","className":""}}>
295
-
296
- <p {...{"className":"pf-v6-c-content--p pf-m-editorial ws-p "}}>
297
- {`To fit into tight spaces, primary, secondary, tertiary, danger, and warning button variations can be made smaller using the `}
298
-
299
- <code {...{"className":"ws-code "}}>
300
- {`"sm"`}
301
- </code>
302
- {` value for the `}
303
-
304
- <code {...{"className":"ws-code "}}>
305
- {`size`}
306
- </code>
307
- {` property.`}
308
- </p>
309
- </Example>,
310
- 'Call to action (CTA) buttons': props =>
311
- <Example {...pageData} {...props} {...{"code":"import { Button, Flex } from '@patternfly/react-core';\nimport RhMicronsCaretRightIcon from '@patternfly/react-icons/dist/esm/icons/rh-microns-caret-right-icon';\n\nexport const ButtonCallToAction: React.FunctionComponent = () => (\n <Flex columnGap={{ default: 'columnGapSm' }}>\n <Button variant=\"primary\" size=\"lg\">\n Call to action\n </Button>\n <Button variant=\"secondary\" size=\"lg\">\n Call to action\n </Button>\n <Button variant=\"tertiary\" size=\"lg\">\n Call to action\n </Button>\n <Button variant=\"link\" size=\"lg\" icon={<RhMicronsCaretRightIcon />} iconPosition=\"end\">\n Call to action\n </Button>\n </Flex>\n);\n","title":"Call to action (CTA) buttons","lang":"ts","className":""}}>
312
-
313
- <p {...{"className":"pf-v6-c-content--p pf-m-editorial ws-p "}}>
314
- {`CTA buttons and links direct users to complete an action. Primary, secondary, tertiary, and link button variants can be styled as CTAs using the `}
315
-
316
- <code {...{"className":"ws-code "}}>
317
- {`"lg"`}
318
- </code>
319
- {` value for the `}
320
-
321
- <code {...{"className":"ws-code "}}>
322
- {`size`}
323
- </code>
324
- {` property.`}
325
- </p>
326
- </Example>,
327
- 'Block level buttons': props =>
328
- <Example {...pageData} {...props} {...{"code":"import { Button } from '@patternfly/react-core';\n\nexport const ButtonBlock: React.FunctionComponent = () => <Button isBlock>Block level button</Button>;\n","title":"Block level buttons","lang":"ts","className":""}}>
329
-
330
- <p {...{"className":"pf-v6-c-content--p pf-m-editorial ws-p "}}>
331
- {`Block level buttons span the full width of the parent element and can be enabled using the `}
332
-
333
- <code {...{"className":"ws-code "}}>
334
- {`isBlock`}
335
- </code>
336
- {` property.`}
337
- </p>
338
- </Example>,
339
- 'Progress indicators': props =>
340
- <Example {...pageData} {...props} {...{"code":"import { useState } from 'react';\nimport { Button, Flex } from '@patternfly/react-core';\nimport UploadIcon from '@patternfly/react-icons/dist/esm/icons/upload-icon';\n\ninterface LoadingPropsType {\n spinnerAriaValueText: string;\n spinnerAriaLabelledBy?: string;\n spinnerAriaLabel?: string;\n isLoading: boolean;\n}\n\nexport const ButtonProgress: React.FunctionComponent = () => {\n const [isPrimaryLoading, setIsPrimaryLoading] = useState<boolean>(true);\n const [isSecondaryLoading, setIsSecondaryLoading] = useState<boolean>(true);\n const [isInlineLoading, setIsInlineLoading] = useState<boolean>(true);\n const [isUploading, setIsUploading] = useState<boolean>(false);\n\n const primaryLoadingProps = {} as LoadingPropsType;\n primaryLoadingProps.spinnerAriaValueText = 'Loading';\n primaryLoadingProps.spinnerAriaLabelledBy = 'primary-loading-button';\n primaryLoadingProps.isLoading = isPrimaryLoading;\n\n const secondaryLoadingProps = {} as LoadingPropsType;\n secondaryLoadingProps.spinnerAriaValueText = 'Loading';\n secondaryLoadingProps.spinnerAriaLabel = 'Content being loaded';\n secondaryLoadingProps.isLoading = isSecondaryLoading;\n\n const inlineLoadingProps = {} as LoadingPropsType;\n inlineLoadingProps.spinnerAriaValueText = 'Loading';\n inlineLoadingProps.spinnerAriaLabel = 'Content being loaded';\n inlineLoadingProps.isLoading = isInlineLoading;\n\n const uploadingProps = {} as LoadingPropsType;\n uploadingProps.spinnerAriaValueText = 'Loading';\n uploadingProps.spinnerAriaLabel = 'Uploading data';\n uploadingProps.isLoading = isUploading;\n\n return (\n <>\n <Flex columnGap={{ default: 'columnGapSm' }}>\n <Button\n variant=\"primary\"\n id=\"primary-loading-button\"\n onClick={() => setIsPrimaryLoading(!isPrimaryLoading)}\n {...primaryLoadingProps}\n >\n {isPrimaryLoading ? 'Click to stop loading' : 'Click to start loading'}\n </Button>\n <Button\n variant=\"secondary\"\n onClick={() => setIsSecondaryLoading(!isSecondaryLoading)}\n {...secondaryLoadingProps}\n >\n {isSecondaryLoading ? 'Click to stop loading' : 'Click to start loading'}\n </Button>\n </Flex>\n <br />\n <Button\n variant=\"plain\"\n {...(!isUploading && { 'aria-label': 'Upload' })}\n onClick={() => setIsUploading(!isUploading)}\n icon={<UploadIcon />}\n {...uploadingProps}\n />\n <br />\n <br />\n <Button variant=\"link\" isInline onClick={() => setIsInlineLoading(!isInlineLoading)} {...inlineLoadingProps}>\n {isInlineLoading ? 'Pause loading logs' : 'Resume loading logs'}\n </Button>\n </>\n );\n};\n","title":"Progress indicators","lang":"ts","className":""}}>
341
-
342
- <p {...{"className":"pf-v6-c-content--p pf-m-editorial ws-p "}}>
343
- {`Progress indicators can be added to buttons to identify that an action is in progress after a click.`}
344
- </p>
345
- </Example>,
346
- 'Links as buttons': props =>
347
- <Example {...pageData} {...props} {...{"code":"import { Button, Flex } from '@patternfly/react-core';\n\nexport const ButtonLinks: React.FunctionComponent = () => (\n <Flex>\n <Button component=\"a\" href=\"https://www.patternfly.org/\" target=\"_blank\" variant=\"primary\">\n Link to PatternFly home\n </Button>\n <Button component=\"a\" href=\"https://www.patternfly.org/\" target=\"_blank\" variant=\"secondary\">\n Secondary link to PatternFly home\n </Button>\n <Button isDisabled component=\"a\" href=\"https://www.patternfly.org/\" target=\"_blank\" variant=\"tertiary\">\n Tertiary link to PatternFly home\n </Button>\n <Button component=\"a\" href=\"https://www.patternfly.org/\" variant=\"link\">\n Jump to PatternFly home\n </Button>\n </Flex>\n);\n","title":"Links as buttons","lang":"ts","className":""}}>
348
-
349
- <p {...{"className":"pf-v6-c-content--p pf-m-editorial ws-p "}}>
350
- {`Buttons that link to another resource may take the form of primary, secondary, tertiary, or link variants. Use `}
351
-
352
- <code {...{"className":"ws-code "}}>
353
- {`component="a"`}
354
- </code>
355
- {` and an `}
356
-
357
- <code {...{"className":"ws-code "}}>
358
- {`href`}
359
- </code>
360
- {` property to designate the button's target link.`}
361
- </p>
362
- </Example>,
363
- 'Inline link as span': props =>
364
- <Example {...pageData} {...props} {...{"code":"import { Fragment } from 'react';\nimport { Button, KeyTypes } from '@patternfly/react-core';\n\nconst handleKeydown = (event: React.KeyboardEvent<HTMLButtonElement>) => {\n const { key } = event;\n const isEnterKey: boolean = key === KeyTypes.Enter;\n const isEnterOrSpaceKey: boolean = isEnterKey || key === KeyTypes.Space;\n\n if (isEnterOrSpaceKey) {\n event.preventDefault();\n alert(`${isEnterKey ? 'Enter' : 'Space'} key default behavior stopped by onKeyDown`);\n }\n};\n\nexport const ButtonInlineSpanLink: React.FunctionComponent = () => (\n <Fragment>\n <p>\n Lorem ipsum dolor sit amet, consectetur adipiscing elit.\n <Button variant=\"link\" isInline component=\"span\">\n This is long button text that needs to be a span so that it will wrap inline with the text around it.\n </Button>\n Sed hendrerit nisi in cursus maximus. Ut malesuada nisi turpis, in condimentum velit elementum non.\n </p>\n\n <br />\n\n <p>\n Note that using a <b>span</b> as a button does not fire the <b>onclick</b> event for Enter or Space keys.\n <Button variant=\"link\" isInline component=\"span\" onKeyDown={handleKeydown}>\n An <b>onKeyDown</b> event listener is needed for Enter and Space key presses to prevent their default behavior\n and trigger your code.\n </Button>\n Pressing the Enter or Space keys on the inline link as span above demonstrates this by triggering an alert.\n </p>\n </Fragment>\n);\n","title":"Inline link as span","lang":"ts","className":""}}>
365
-
366
- <p {...{"className":"pf-v6-c-content--p pf-m-editorial ws-p "}}>
367
- {`Inline links should use `}
368
-
369
- <code {...{"className":"ws-code "}}>
370
- {`component="span"`}
371
- </code>
372
- {` and the `}
373
-
374
- <code {...{"className":"ws-code "}}>
375
- {`isInline`}
376
- </code>
377
- {` property to wrap inline with surrounding text.`}
378
- </p>
379
- </Example>,
380
- 'Custom component': props =>
381
- <Example {...pageData} {...props} {...{"code":"import { Button } from '@patternfly/react-core';\n\nexport const ButtonCustomComponent: React.FunctionComponent = () => (\n <Button variant=\"link\" component={(props: any) => <a {...props} href=\"#\" />}>\n Router link\n </Button>\n);\n","title":"Custom component","lang":"ts","className":""}}>
382
-
383
- <p {...{"className":"pf-v6-c-content--p pf-m-editorial ws-p "}}>
384
- {`In addition to being able to pass a string to the `}
385
-
386
- <code {...{"className":"ws-code "}}>
387
- {`component`}
388
- </code>
389
- {` property, you can provide more fine-tuned customization by passing a callback that returns a component.`}
390
- </p>
391
- </Example>,
392
- 'Aria-disabled examples': props =>
393
- <Example {...pageData} {...props} {...{"code":"import { Button, Flex, Tooltip } from '@patternfly/react-core';\nimport RhUiAddCircleFillIcon from '@patternfly/react-icons/dist/esm/icons/rh-ui-add-circle-fill-icon';\n\nexport const ButtonAriaDisabled: React.FunctionComponent = () => (\n <>\n <Flex columnGap={{ default: 'columnGapSm' }}>\n <Button isAriaDisabled>Primary aria disabled</Button>\n <Button isAriaDisabled variant=\"link\" icon={<RhUiAddCircleFillIcon />}>\n Link aria disabled\n </Button>\n <Button isAriaDisabled variant=\"link\" isInline>\n Inline link aria disabled\n </Button>\n </Flex>\n <br />\n <Flex columnGap={{ default: 'columnGapSm' }}>\n <Tooltip content=\"Aria-disabled buttons are like disabled buttons, but focusable. Allows for tooltip support.\">\n <Button isAriaDisabled>Primary button with tooltip</Button>\n </Tooltip>\n <Tooltip content=\"Aria-disabled link as button with tooltip\">\n <Button component=\"a\" isAriaDisabled href=\"https://www.patternfly.org/\" target=\"_blank\" variant=\"secondary\">\n Secondary link as button to PatternFly home\n </Button>\n </Tooltip>\n </Flex>\n </>\n);\n","title":"Aria-disabled examples","lang":"ts","className":""}}>
394
-
395
- <p {...{"className":"pf-v6-c-content--p pf-m-editorial ws-p "}}>
396
-
397
- <PatternflyThemeLink {...{"to":"https://www.w3.org/WAI/standards-guidelines/aria/","className":""}}>
398
- {`Accessible Rich Internet Applications (ARIA)`}
399
- </PatternflyThemeLink>
400
- {` is a set of roles and attributes specified by the World Wide Web Consortium. ARIA defines ways to make web content and web applications more accessible to people with disabilities.`}
401
- </p>
402
-
403
- <p {...{"className":"pf-v6-c-content--p pf-m-editorial ws-p "}}>
404
- {`Buttons that are aria-disabled are similar to normal disabled buttons, except they can receive focus. Every button variant can be aria-disabled using the `}
405
-
406
- <code {...{"className":"ws-code "}}>
407
- {`isAriaDisabled`}
408
- </code>
409
- {` property.`}
410
- </p>
411
-
412
- <p {...{"className":"pf-v6-c-content--p pf-m-editorial ws-p "}}>
413
- {`Unlike normal disabled buttons, aria-disabled buttons can support tooltips. Furthermore, aria-disabled buttons can operate as links, which also support tooltips.`}
414
- </p>
415
- </Example>,
416
- 'Button with count': props =>
417
- <Example {...pageData} {...props} {...{"code":"import { BadgeCountObject, Button, Flex } from '@patternfly/react-core';\n\nexport const ButtonWithCount: React.FunctionComponent = () => {\n const badgeCountObjectNotRead: BadgeCountObject = {\n isRead: false,\n count: 7,\n className: 'custom-badge-unread'\n };\n\n const badgeCountObjectRead: BadgeCountObject = {\n isRead: true,\n count: 10,\n className: 'custom-badge-read'\n };\n\n return (\n <>\n <div>Unread:</div>\n <Flex columnGap={{ default: 'columnGapSm' }}>\n <Button variant=\"primary\" countOptions={badgeCountObjectNotRead}>\n Issues\n </Button>\n <Button variant=\"secondary\" countOptions={badgeCountObjectNotRead}>\n Issues\n </Button>\n <Button variant=\"tertiary\" countOptions={badgeCountObjectNotRead}>\n Issues\n </Button>\n <Button variant=\"control\" countOptions={badgeCountObjectNotRead}>\n Issues\n </Button>\n <Button variant=\"link\" countOptions={badgeCountObjectNotRead}>\n Issues\n </Button>\n </Flex>\n <br />\n <div>Unread disabled:</div>\n <Flex columnGap={{ default: 'columnGapSm' }}>\n <Button variant=\"primary\" isDisabled countOptions={badgeCountObjectNotRead}>\n Issues\n </Button>\n <Button variant=\"secondary\" isDisabled countOptions={badgeCountObjectNotRead}>\n Issues\n </Button>\n <Button variant=\"tertiary\" isDisabled countOptions={badgeCountObjectNotRead}>\n Issues\n </Button>\n <Button variant=\"control\" isDisabled countOptions={badgeCountObjectNotRead}>\n Issues\n </Button>\n <Button variant=\"link\" isDisabled countOptions={badgeCountObjectNotRead}>\n Issues\n </Button>\n </Flex>\n <br />\n <div>Read:</div>\n <Flex columnGap={{ default: 'columnGapSm' }}>\n <Button variant=\"primary\" countOptions={badgeCountObjectRead}>\n Issues\n </Button>\n <Button variant=\"secondary\" countOptions={badgeCountObjectRead}>\n Issues\n </Button>\n <Button variant=\"tertiary\" countOptions={badgeCountObjectRead}>\n Issues\n </Button>\n <Button variant=\"control\" countOptions={badgeCountObjectRead}>\n Issues\n </Button>\n <Button variant=\"link\" countOptions={badgeCountObjectRead}>\n Issues\n </Button>\n </Flex>\n <br />\n <div>Read disabled:</div>\n <Flex columnGap={{ default: 'columnGapSm' }}>\n <Button variant=\"primary\" isDisabled countOptions={badgeCountObjectRead}>\n Issues\n </Button>\n <Button variant=\"secondary\" isDisabled countOptions={badgeCountObjectRead}>\n Issues\n </Button>\n <Button variant=\"tertiary\" isDisabled countOptions={badgeCountObjectRead}>\n Issues\n </Button>\n <Button variant=\"control\" isDisabled countOptions={badgeCountObjectRead}>\n Issues\n </Button>\n <Button variant=\"link\" isDisabled countOptions={badgeCountObjectRead}>\n Issues\n </Button>\n </Flex>\n </>\n );\n};\n","title":"Button with count","lang":"ts","className":""}}>
418
-
419
- <p {...{"className":"pf-v6-c-content--p pf-m-editorial ws-p "}}>
420
- {`Buttons can display a `}
421
-
422
- <code {...{"className":"ws-code "}}>
423
- {`count`}
424
- </code>
425
- {` in the form of a badge to indicate some value or number by passing in the `}
426
-
427
- <code {...{"className":"ws-code "}}>
428
- {`countOptions`}
429
- </code>
430
- {` prop as a `}
431
-
432
- <code {...{"className":"ws-code "}}>
433
- {`BadgeCountObject`}
434
- </code>
435
- {` object. The `}
436
-
437
- <code {...{"className":"ws-code "}}>
438
- {`BadgeCountObject`}
439
- </code>
440
- {` object will handle `}
441
-
442
- <code {...{"className":"ws-code "}}>
443
- {`count`}
444
- </code>
445
- {`, `}
446
-
447
- <code {...{"className":"ws-code "}}>
448
- {`isRead`}
449
- </code>
450
- {`, and `}
451
-
452
- <code {...{"className":"ws-code "}}>
453
- {`className`}
454
- </code>
455
- {` props for the badge count.`}
456
- </p>
457
- </Example>,
458
- 'Plain with no padding': props =>
459
- <Example {...pageData} {...props} {...{"code":"import { Button } from '@patternfly/react-core';\nimport RhUiQuestionMarkCircleFillIcon from '@patternfly/react-icons/dist/esm/icons/rh-ui-question-mark-circle-fill-icon';\n\nexport const ButtonPlainHasNoPadding: React.FunctionComponent = () => (\n <p>\n This is an example of a button\n <Button variant=\"plain\" hasNoPadding aria-label=\"More info\" icon={<RhUiQuestionMarkCircleFillIcon />} />\n which is placed inline with text\n </p>\n);\n","title":"Plain with no padding","lang":"ts","className":""}}>
460
-
461
- <p {...{"className":"pf-v6-c-content--p pf-m-editorial ws-p "}}>
462
- {`To display a plain/icon button inline with text, use `}
463
-
464
- <code {...{"className":"ws-code "}}>
465
- {`noPadding`}
466
- </code>
467
- {` prop in addition to `}
468
-
469
- <code {...{"className":"ws-code "}}>
470
- {`variant="plain"`}
471
- </code>
472
- {`.`}
473
- </p>
474
- </Example>,
475
- 'Stateful': props =>
476
- <Example {...pageData} {...props} {...{"code":"import { Button, Flex } from '@patternfly/react-core';\nimport RhUiNotificationFillIcon from '@patternfly/react-icons/dist/esm/icons/rh-ui-notification-fill-icon';\n\nexport const ButtonStateful: React.FunctionComponent = () => (\n <Flex>\n <div>\n <div>\n <strong>Read</strong>\n </div>\n <Button variant=\"stateful\" state=\"read\" icon={<RhUiNotificationFillIcon />}>\n 10 <span className=\"pf-v6-screen-reader\">items</span>\n </Button>\n </div>\n <div>\n <div>\n <strong>Unread</strong>\n </div>\n <Button variant=\"stateful\" state=\"unread\" icon={<RhUiNotificationFillIcon />}>\n 10 <span className=\"pf-v6-screen-reader\">unread items</span>\n </Button>\n </div>\n <div>\n <div>\n <strong>Attention</strong>\n </div>\n <Button variant=\"stateful\" state=\"attention\" icon={<RhUiNotificationFillIcon />}>\n 10 <span className=\"pf-v6-screen-reader\">unread items, needs attention</span>\n </Button>\n </div>\n </Flex>\n);\n","title":"Stateful","lang":"ts","className":""}}>
477
-
478
- <p {...{"className":"pf-v6-c-content--p pf-m-editorial ws-p "}}>
479
- {`Stateful buttons are ideal for displaying the state of notifications. Use `}
480
-
481
- <code {...{"className":"ws-code "}}>
482
- {`variant="stateful"`}
483
- </code>
484
- {` alongside with the `}
485
-
486
- <code {...{"className":"ws-code "}}>
487
- {`state`}
488
- </code>
489
- {` property, which can have these 3 values: `}
490
-
491
- <code {...{"className":"ws-code "}}>
492
- {`read`}
493
- </code>
494
- {`, `}
495
-
496
- <code {...{"className":"ws-code "}}>
497
- {`unread`}
498
- </code>
499
- {` (used as default) and `}
500
-
501
- <code {...{"className":"ws-code "}}>
502
- {`attention`}
503
- </code>
504
- {` (which means unread and requires attention).`}
505
- </p>
506
- </Example>,
507
- 'Circle buttons': props =>
508
- <Example {...pageData} {...props} {...{"code":"import { Button, Flex } from '@patternfly/react-core';\nimport RhMicronsCloseIcon from '@patternfly/react-icons/dist/esm/icons/rh-microns-close-icon';\nimport RhUiAddCircleFillIcon from '@patternfly/react-icons/dist/esm/icons/rh-ui-add-circle-fill-icon';\nimport RhUiCopyFillIcon from '@patternfly/react-icons/dist/esm/icons/rh-ui-copy-fill-icon';\nimport RhUiNotificationFillIcon from '@patternfly/react-icons/dist/esm/icons/rh-ui-notification-fill-icon';\nimport UploadIcon from '@patternfly/react-icons/dist/esm/icons/upload-icon';\n\ninterface LoadingPropsType {\n spinnerAriaValueText: string;\n spinnerAriaLabelledBy?: string;\n spinnerAriaLabel?: string;\n isLoading: boolean;\n}\n\nexport const ButtonCircle: React.FunctionComponent = () => {\n const [isUploading, setIsUploading] = useState<boolean>(false);\n\n const uploadingProps = {} as LoadingPropsType;\n uploadingProps.spinnerAriaValueText = 'Loading circle variant example';\n uploadingProps.spinnerAriaLabel = 'Uploading circle variant example data';\n uploadingProps.isLoading = isUploading;\n\n return (\n <Flex columnGap={{ default: 'columnGapSm' }}>\n <Button isCircle icon={<RhUiAddCircleFillIcon />} aria-label=\"Add primary circle variant example\" />\n <Button\n variant=\"secondary\"\n isCircle\n icon={<RhUiAddCircleFillIcon />}\n aria-label=\"Add secondary circle variant example\"\n />\n <Button\n variant=\"tertiary\"\n isCircle\n icon={<RhUiAddCircleFillIcon />}\n aria-label=\"Add tertiary circle variant example\"\n />\n <Button\n variant=\"danger\"\n isCircle\n icon={<RhUiAddCircleFillIcon />}\n aria-label=\"Add danger circle variant example\"\n />\n <Button\n variant=\"warning\"\n isCircle\n icon={<RhUiAddCircleFillIcon />}\n aria-label=\"Add warning circle variant example\"\n />\n <Button variant=\"link\" isCircle icon={<RhUiAddCircleFillIcon />} aria-label=\"Add link circle variant example\" />\n <Button variant=\"control\" isCircle icon={<RhUiCopyFillIcon />} aria-label=\"Copy control circle variant example\" />\n <Button variant=\"plain\" isCircle icon={<RhMicronsCloseIcon />} aria-label=\"Remove plain circle variant example\" />\n <Button\n variant=\"stateful\"\n isCircle\n icon={<RhUiNotificationFillIcon />}\n aria-label=\"Stateful unread circle variant example\"\n />\n <Button\n variant=\"stateful\"\n state=\"read\"\n isCircle\n icon={<RhUiNotificationFillIcon />}\n aria-label=\"Stateful read circle variant example\"\n />\n <Button\n variant=\"stateful\"\n state=\"attention\"\n isCircle\n icon={<RhUiNotificationFillIcon />}\n aria-label=\"Stateful attention circle variant example\"\n />\n <Button\n variant=\"plain\"\n isCircle\n {...(!isUploading && { 'aria-label': 'Upload circle variant example' })}\n onClick={() => setIsUploading(!isUploading)}\n icon={<UploadIcon />}\n {...uploadingProps}\n />\n </Flex>\n );\n};\n","title":"Circle buttons","lang":"ts","className":""}}>
509
-
510
- <p {...{"className":"pf-v6-c-content--p pf-m-editorial ws-p "}}>
511
- {`Pass `}
512
-
513
- <code {...{"className":"ws-code "}}>
514
- {`isCircle`}
515
- </code>
516
- {` to a button to modify its styling from simply rounded corners to complete circles. Circle buttons are intended for buttons that only contain an icon and adequate accessible naming.`}
517
- </p>
518
- </Example>,
519
- 'Favorite': props =>
520
- <Example {...pageData} {...props} {...{"code":"import { useState } from 'react';\nimport { Button } from '@patternfly/react-core';\n\nexport const ButtonFavorite: React.FunctionComponent = () => {\n const [isFavorited, setIsFavorited] = useState(false);\n const toggleFavorite = () => {\n setIsFavorited(!isFavorited);\n };\n return (\n <Button\n variant=\"plain\"\n aria-label={isFavorited ? 'Favorite example favorited' : 'Favorite example not favorited'}\n isFavorite\n isFavorited={isFavorited}\n onClick={toggleFavorite}\n />\n );\n};\n","title":"Favorite","lang":"ts","className":""}}>
521
-
522
- <p {...{"className":"pf-v6-c-content--p pf-m-editorial ws-p "}}>
523
- {`You can pass both the `}
524
-
525
- <code {...{"className":"ws-code "}}>
526
- {`isFavorite`}
527
- </code>
528
- {` and `}
529
-
530
- <code {...{"className":"ws-code "}}>
531
- {`variant="plain"`}
532
- </code>
533
- {` properties into the `}
534
-
535
- <code {...{"className":"ws-code "}}>
536
- {`<Button>`}
537
- </code>
538
- {` to create a favorite button. Passing the `}
539
-
540
- <code {...{"className":"ws-code "}}>
541
- {`isFavorited`}
542
- </code>
543
- {` property will determine the current favorited state and update styling accordingly.`}
544
- </p>
545
- </Example>,
546
- 'Settings': props =>
547
- <Example {...pageData} {...props} {...{"code":"import { Button, Flex } from '@patternfly/react-core';\n\nexport const ButtonSettings: React.FunctionComponent = () => (\n <Flex>\n <Button isSettings variant=\"plain\" aria-label=\"Settings\" />\n <Button isSettings variant=\"control\">\n Settings\n </Button>\n </Flex>\n);\n","title":"Settings","lang":"ts","className":""}}>
548
-
549
- <p {...{"className":"pf-v6-c-content--p pf-m-editorial ws-p "}}>
550
- {`For a "settings" button with animations on hover and focus, you can pass the `}
551
-
552
- <code {...{"className":"ws-code "}}>
553
- {`isSettings`}
554
- </code>
555
- {` property into either a `}
556
-
557
- <code {...{"className":"ws-code "}}>
558
- {`variant="plain"`}
559
- </code>
560
- {` or `}
561
-
562
- <code {...{"className":"ws-code "}}>
563
- {`variant="control"`}
564
- </code>
565
- {` button.`}
566
- </p>
567
- </Example>,
568
- 'Hamburger': props =>
569
- <Example {...pageData} {...props} {...{"code":"import { Button, Flex } from '@patternfly/react-core';\n\nexport const ButtonHamburger: React.FunctionComponent = () => (\n <Flex>\n <Button variant=\"plain\" isExpanded={false} aria-label=\"Hamburger example\" isHamburger />\n <Button variant=\"plain\" isExpanded={false} aria-label=\"Hamburger example\" isHamburger hamburgerVariant=\"expand\" />\n <Button variant=\"plain\" isExpanded={true} aria-label=\"Hamburger example\" isHamburger hamburgerVariant=\"collapse\" />\n </Flex>\n);\n","title":"Hamburger","lang":"ts","className":""}}>
570
-
571
- <p {...{"className":"pf-v6-c-content--p pf-m-editorial ws-p "}}>
572
- {`For a "hamburger" button (`}
573
-
574
- <code {...{"className":"ws-code "}}>
575
- {`fa-bars`}
576
- </code>
577
- {`) that will animate based on the `}
578
-
579
- <code {...{"className":"ws-code "}}>
580
- {`hamburgerVariant`}
581
- </code>
582
- {` property, you can pass the `}
583
-
584
- <code {...{"className":"ws-code "}}>
585
- {`isHamburger`}
586
- </code>
587
- {` property. This will render the default icon for a hamburger button, and updating the `}
588
-
589
- <code {...{"className":"ws-code "}}>
590
- {`hamburgerVariant`}
591
- </code>
592
- {` property with a value of either "expand" or "collapse" will change the icon accordingly with an animation on hover and focus.`}
593
- </p>
594
-
595
- <p {...{"className":"pf-v6-c-content--p pf-m-editorial ws-p "}}>
596
- {`When used within a PatternFly `}
597
-
598
- <code {...{"className":"ws-code "}}>
599
- {`<Masthead>`}
600
- </code>
601
- {`, the animations and icon updates will occur automatically. See one of our `}
602
-
603
- <PatternflyThemeLink {...{"to":"/components/page/react-demos","className":""}}>
604
- {`full screen page demos`}
605
- </PatternflyThemeLink>
606
- {` to see this in action.`}
607
- </p>
608
- </Example>
609
- };
610
-
611
- const Component = () => (
612
- <React.Fragment>
613
- <AutoLinkHeader {...{"id":"examples","headingLevel":"h2","className":"ws-title ws-h2"}}>
614
- {`Examples`}
615
- </AutoLinkHeader>
616
- {React.createElement(pageData.examples["Variant examples"])}
617
- <table {...{"className":"ws-table pf-v6-c-table pf-m-grid-lg pf-m-compact","role":"grid"}}>
618
- <thead {...{"className":"pf-v6-c-table__thead"}}>
619
- <tr {...{"role":"row","className":"pf-v6-c-table__tr"}}>
620
- <th {...{"className":"undefined pf-v6-c-table__th pf-m-wrap","role":"columnheader","scope":"col"}}>
621
- <div {...{"className":""}}>
622
- {`Variant`}
623
- </div>
624
- </th>
625
- <th {...{"className":"undefined pf-v6-c-table__th pf-m-wrap","role":"columnheader","scope":"col"}}>
626
- <div {...{"className":""}}>
627
- {`Description`}
628
- </div>
629
- </th>
630
- </tr>
631
- </thead>
632
- <tbody {...{"role":"rowgroup","className":"pf-v6-c-table__tbody"}}>
633
- <tr {...{"role":"row","className":"pf-v6-c-table__tr"}}>
634
- <td {...{"role":"cell","className":"pf-v6-c-table__td","data-label":"Variant"}}>
635
- <div {...{"className":""}}>
636
- {`Primary`}
637
- </div>
638
- </td>
639
- <td {...{"role":"cell","className":"pf-v6-c-table__td","data-label":"Description"}}>
640
- <div {...{"className":""}}>
641
- {`Primary buttons are the most visually prominent variant. Use for the most important call to action.`}
642
- </div>
643
- </td>
644
- </tr>
645
- <tr {...{"role":"row","className":"pf-v6-c-table__tr"}}>
646
- <td {...{"role":"cell","className":"pf-v6-c-table__td","data-label":"Variant"}}>
647
- <div {...{"className":""}}>
648
- {`Secondary`}
649
- </div>
650
- </td>
651
- <td {...{"role":"cell","className":"pf-v6-c-table__td","data-label":"Description"}}>
652
- <div {...{"className":""}}>
653
- {`Secondary buttons are less visually prominant than primary buttons. Use for general actions on a page that require less emphasis than primary buttons.`}
654
- </div>
655
- </td>
656
- </tr>
657
- <tr {...{"role":"row","className":"pf-v6-c-table__tr"}}>
658
- <td {...{"role":"cell","className":"pf-v6-c-table__td","data-label":"Variant"}}>
659
- <div {...{"className":""}}>
660
- {`Tertiary`}
661
- </div>
662
- </td>
663
- <td {...{"role":"cell","className":"pf-v6-c-table__td","data-label":"Description"}}>
664
- <div {...{"className":""}}>
665
- {`Tertiary buttons are the least visually prominent variant. Use to retain a classic button format with less emphasis than primary or secondary buttons.`}
666
- </div>
667
- </td>
668
- </tr>
669
- <tr {...{"role":"row","className":"pf-v6-c-table__tr"}}>
670
- <td {...{"role":"cell","className":"pf-v6-c-table__td","data-label":"Variant"}}>
671
- <div {...{"className":""}}>
672
- {`Danger`}
673
- </div>
674
- </td>
675
- <td {...{"role":"cell","className":"pf-v6-c-table__td","data-label":"Description"}}>
676
- <div {...{"className":""}}>
677
- {`Danger buttons may be used for actions that are potentially destructive or difficult/impossible to undo. Danger is an independent variant, but all button variants may use the the `}
678
- <code {...{"className":"ws-code "}}>
679
- {`isDanger`}
680
- </code>
681
- {` property to apply similar styling.`}
682
- </div>
683
- </td>
684
- </tr>
685
- <tr {...{"role":"row","className":"pf-v6-c-table__tr"}}>
686
- <td {...{"role":"cell","className":"pf-v6-c-table__td","data-label":"Variant"}}>
687
- <div {...{"className":""}}>
688
- {`Warning`}
689
- </div>
690
- </td>
691
- <td {...{"role":"cell","className":"pf-v6-c-table__td","data-label":"Description"}}>
692
- <div {...{"className":""}}>
693
- {`Warning buttons may be used for actions that change an important setting or behavior, but not in a destructive or irreversible way.`}
694
- </div>
695
- </td>
696
- </tr>
697
- <tr {...{"role":"row","className":"pf-v6-c-table__tr"}}>
698
- <td {...{"role":"cell","className":"pf-v6-c-table__td","data-label":"Variant"}}>
699
- <div {...{"className":""}}>
700
- {`Link`}
701
- </div>
702
- </td>
703
- <td {...{"role":"cell","className":"pf-v6-c-table__td","data-label":"Description"}}>
704
- <div {...{"className":""}}>
705
- {`Links are labeled, but have no background or border. Use for actions that require less emphasis, actions that navigate users to another page within the same window, and/or actions that navigate to external pages in a new window. Links may be placed inline with text using the `}
706
- <code {...{"className":"ws-code "}}>
707
- {`isInline`}
708
- </code>
709
- {` property.`}
710
- </div>
711
- </td>
712
- </tr>
713
- <tr {...{"role":"row","className":"pf-v6-c-table__tr"}}>
714
- <td {...{"role":"cell","className":"pf-v6-c-table__td","data-label":"Variant"}}>
715
- <div {...{"className":""}}>
716
- {`Plain`}
717
- </div>
718
- </td>
719
- <td {...{"role":"cell","className":"pf-v6-c-table__td","data-label":"Description"}}>
720
- <div {...{"className":""}}>
721
- {`Plain buttons have no styling and are intended to be labeled with icons.`}
722
- </div>
723
- </td>
724
- </tr>
725
- <tr {...{"role":"row","className":"pf-v6-c-table__tr"}}>
726
- <td {...{"role":"cell","className":"pf-v6-c-table__td","data-label":"Variant"}}>
727
- <div {...{"className":""}}>
728
- {`Control`}
729
- </div>
730
- </td>
731
- <td {...{"role":"cell","className":"pf-v6-c-table__td","data-label":"Description"}}>
732
- <div {...{"className":""}}>
733
- {`Control buttons can be labeled with text or icons. Primarily intended to be paired with other controls in an `}
734
- <PatternflyThemeLink {...{"to":"/components/input-group","className":""}}>
735
- {`input group`}
736
- </PatternflyThemeLink>
737
- {`.`}
738
- </div>
739
- </td>
740
- </tr>
741
- <tr {...{"role":"row","className":"pf-v6-c-table__tr"}}>
742
- <td {...{"role":"cell","className":"pf-v6-c-table__td","data-label":"Variant"}}>
743
- <div {...{"className":""}}>
744
- {`Stateful`}
745
- </div>
746
- </td>
747
- <td {...{"role":"cell","className":"pf-v6-c-table__td","data-label":"Description"}}>
748
- <div {...{"className":""}}>
749
- {`Stateful buttons are ideal for displaying the state of notifications. They have 3 states: `}
750
- <code {...{"className":"ws-code "}}>
751
- {`read`}
752
- </code>
753
- {`, `}
754
- <code {...{"className":"ws-code "}}>
755
- {`unread`}
756
- </code>
757
- {` and `}
758
- <code {...{"className":"ws-code "}}>
759
- {`attention`}
760
- </code>
761
- {`.`}
762
- </div>
763
- </td>
764
- </tr>
765
- </tbody>
766
- </table>
767
- {React.createElement(pageData.examples["Disabled buttons"])}
768
- {React.createElement(pageData.examples["Small buttons"])}
769
- {React.createElement(pageData.examples["Call to action (CTA) buttons"])}
770
- {React.createElement(pageData.examples["Block level buttons"])}
771
- {React.createElement(pageData.examples["Progress indicators"])}
772
- {React.createElement(pageData.examples["Links as buttons"])}
773
- {React.createElement(pageData.examples["Inline link as span"])}
774
- {React.createElement(pageData.examples["Custom component"])}
775
- {React.createElement(pageData.examples["Aria-disabled examples"])}
776
- {React.createElement(pageData.examples["Button with count"])}
777
- {React.createElement(pageData.examples["Plain with no padding"])}
778
- {React.createElement(pageData.examples["Stateful"])}
779
- {React.createElement(pageData.examples["Circle buttons"])}
780
- <AutoLinkHeader {...{"id":"animated-examples","headingLevel":"h2","className":"ws-title ws-h2"}}>
781
- {`Animated examples`}
782
- </AutoLinkHeader>
783
- <p {...{"className":"pf-v6-c-content--p pf-m-editorial ws-p "}}>
784
- {`The following `}
785
- <code {...{"className":"ws-code "}}>
786
- {`<Button>`}
787
- </code>
788
- {` implementations have animations built into them. When using one of the following implementations, the `}
789
- <code {...{"className":"ws-code "}}>
790
- {`icon`}
791
- </code>
792
- {` property will be overridden due to the animations needing specific icons internally.`}
793
- </p>
794
- {React.createElement(pageData.examples["Favorite"])}
795
- {React.createElement(pageData.examples["Settings"])}
796
- {React.createElement(pageData.examples["Hamburger"])}
797
- <AutoLinkHeader {...{"id":"using-router-links","headingLevel":"h2","className":"ws-title ws-h2"}}>
798
- {`Using router links`}
799
- </AutoLinkHeader>
800
- <p {...{"className":"pf-v6-c-content--p pf-m-editorial ws-p "}}>
801
- {`Router links can be used for in-app linking in React environments to prevent page reloading. To use a `}
802
- <code {...{"className":"ws-code "}}>
803
- {`Link`}
804
- </code>
805
- {` component from a router package, you can follow our `}
806
- <PatternflyThemeLink {...{"to":"#custom-component","className":""}}>
807
- {`custom component example`}
808
- </PatternflyThemeLink>
809
- {` and pass a callback to the `}
810
- <code {...{"className":"ws-code "}}>
811
- {`component`}
812
- </code>
813
- {` property of the `}
814
- <code {...{"className":"ws-code "}}>
815
- {`Button`}
816
- </code>
817
- {`:`}
818
- </p>
819
- <Example {...{"code":"<Button variant=\"link\" component={(props: any) => <Link {...props} to=\"#\" />}>\n Router link\n</Button>","lang":"nolive","className":""}}>
820
- </Example>
821
- </React.Fragment>
822
- );
823
- Component.displayName = 'ComponentsButtonReactDocs';
824
- Component.pageData = pageData;
825
-
826
- export default Component;