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

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 +4 -0
  2. package/package.json +12 -13
  3. package/patternfly-docs/generated/components/about-modal/react.js +149 -0
  4. package/patternfly-docs/generated/components/accordion/react.js +262 -0
  5. package/patternfly-docs/generated/components/action-list/react.js +144 -0
  6. package/patternfly-docs/generated/components/alert/react-demos.js +56 -0
  7. package/patternfly-docs/generated/components/alert/react.js +1433 -0
  8. package/patternfly-docs/generated/components/avatar/react.js +166 -0
  9. package/patternfly-docs/generated/components/back-to-top/react-demos.js +60 -0
  10. package/patternfly-docs/generated/components/back-to-top/react.js +77 -0
  11. package/patternfly-docs/generated/components/backdrop/react.js +64 -0
  12. package/patternfly-docs/generated/components/background-image/react.js +62 -0
  13. package/patternfly-docs/generated/components/badge/react.js +97 -0
  14. package/patternfly-docs/generated/components/banner/react-demos.js +57 -0
  15. package/patternfly-docs/generated/components/banner/react.js +148 -0
  16. package/patternfly-docs/generated/components/brand/react.js +142 -0
  17. package/patternfly-docs/generated/components/breadcrumb/react.js +206 -0
  18. package/patternfly-docs/generated/components/button/react-demos.js +57 -0
  19. package/patternfly-docs/generated/components/button/react.js +826 -0
  20. package/patternfly-docs/generated/components/card/react-demos.js +201 -0
  21. package/patternfly-docs/generated/components/card/react.js +1015 -0
  22. package/patternfly-docs/generated/components/charts/area-chart/-Victory.js +1350 -0
  23. package/patternfly-docs/generated/components/charts/bar-chart/-Victory.js +1334 -0
  24. package/patternfly-docs/generated/components/charts/box-plot-chart/-Victory.js +1282 -0
  25. package/patternfly-docs/generated/components/charts/bullet-chart/-Victory.js +848 -0
  26. package/patternfly-docs/generated/components/charts/colors-for-charts/-Victory.js +192 -0
  27. package/patternfly-docs/generated/components/charts/donut-chart/-Victory.js +426 -0
  28. package/patternfly-docs/generated/components/charts/donut-utilization-chart/-Victory.js +804 -0
  29. package/patternfly-docs/generated/components/charts/legends/-Victory.js +3230 -0
  30. package/patternfly-docs/generated/components/charts/line-chart/-Victory.js +1178 -0
  31. package/patternfly-docs/generated/components/charts/line-chart/ECharts.js +525 -0
  32. package/patternfly-docs/generated/components/charts/patterns/-Victory.js +3382 -0
  33. package/patternfly-docs/generated/components/charts/pie-chart/-Victory.js +377 -0
  34. package/patternfly-docs/generated/components/charts/resize-observer/-Victory.js +2475 -0
  35. package/patternfly-docs/generated/components/charts/sankey-chart/ECharts.js +538 -0
  36. package/patternfly-docs/generated/components/charts/scatter-chart/-Victory.js +1551 -0
  37. package/patternfly-docs/generated/components/charts/skeletons/-Victory.js +4115 -0
  38. package/patternfly-docs/generated/components/charts/sparkline-chart/-Victory.js +955 -0
  39. package/patternfly-docs/generated/components/charts/stack-chart/-Victory.js +1173 -0
  40. package/patternfly-docs/generated/components/charts/threshold-chart/-Victory.js +1166 -0
  41. package/patternfly-docs/generated/components/charts/tooltips/-Victory.js +413 -0
  42. package/patternfly-docs/generated/components/chip/react-deprecated.js +323 -0
  43. package/patternfly-docs/generated/components/clipboard-copy/react.js +373 -0
  44. package/patternfly-docs/generated/components/code-block/react.js +148 -0
  45. package/patternfly-docs/generated/components/code-editor/react.js +659 -0
  46. package/patternfly-docs/generated/components/compass/react-demos.js +147 -0
  47. package/patternfly-docs/generated/components/compass/react.js +440 -0
  48. package/patternfly-docs/generated/components/content/react.js +248 -0
  49. package/patternfly-docs/generated/components/data-list/react-demos.js +90 -0
  50. package/patternfly-docs/generated/components/data-list/react.js +709 -0
  51. package/patternfly-docs/generated/components/date-and-time/calendar-month/react.js +283 -0
  52. package/patternfly-docs/generated/components/date-and-time/date-and-time-picker/react-demos.js +64 -0
  53. package/patternfly-docs/generated/components/date-and-time/date-picker/react-demos.js +83 -0
  54. package/patternfly-docs/generated/components/date-and-time/date-picker/react.js +395 -0
  55. package/patternfly-docs/generated/components/date-and-time/time-picker/react.js +241 -0
  56. package/patternfly-docs/generated/components/description-list/react-demos.js +58 -0
  57. package/patternfly-docs/generated/components/description-list/react.js +743 -0
  58. package/patternfly-docs/generated/components/divider/react.js +126 -0
  59. package/patternfly-docs/generated/components/drag-and-drop/react-demos.js +351 -0
  60. package/patternfly-docs/generated/components/drag-and-drop/react-deprecated.js +184 -0
  61. package/patternfly-docs/generated/components/drag-and-drop/react.js +137 -0
  62. package/patternfly-docs/generated/components/drawer/react.js +598 -0
  63. package/patternfly-docs/generated/components/dual-list-selector/react-deprecated.js +772 -0
  64. package/patternfly-docs/generated/components/dual-list-selector/react.js +594 -0
  65. package/patternfly-docs/generated/components/empty-state/react.js +199 -0
  66. package/patternfly-docs/generated/components/expandable-section/react-demos.js +65 -0
  67. package/patternfly-docs/generated/components/expandable-section/react.js +408 -0
  68. package/patternfly-docs/generated/components/file-upload/multiple-file-upload/react-demos.js +52 -0
  69. package/patternfly-docs/generated/components/file-upload/multiple-file-upload/react.js +398 -0
  70. package/patternfly-docs/generated/components/file-upload/simple-file-upload/react.js +749 -0
  71. package/patternfly-docs/generated/components/forms/checkbox/react.js +222 -0
  72. package/patternfly-docs/generated/components/forms/form/react.js +1106 -0
  73. package/patternfly-docs/generated/components/forms/form-select/react.js +208 -0
  74. package/patternfly-docs/generated/components/forms/radio/react.js +212 -0
  75. package/patternfly-docs/generated/components/forms/text-area/react.js +160 -0
  76. package/patternfly-docs/generated/components/forms/text-input/react.js +216 -0
  77. package/patternfly-docs/generated/components/helper-text/react-demos.js +180 -0
  78. package/patternfly-docs/generated/components/helper-text/react.js +164 -0
  79. package/patternfly-docs/generated/components/hero/react.js +88 -0
  80. package/patternfly-docs/generated/components/hint/react.js +169 -0
  81. package/patternfly-docs/generated/components/icon/react.js +215 -0
  82. package/patternfly-docs/generated/components/input-group/react.js +182 -0
  83. package/patternfly-docs/generated/components/jump-links/react-demos.js +154 -0
  84. package/patternfly-docs/generated/components/jump-links/react.js +212 -0
  85. package/patternfly-docs/generated/components/label/react-demos.js +57 -0
  86. package/patternfly-docs/generated/components/label/react.js +417 -0
  87. package/patternfly-docs/generated/components/list/react.js +175 -0
  88. package/patternfly-docs/generated/components/login-page/react.js +587 -0
  89. package/patternfly-docs/generated/components/masthead/react-demos.js +79 -0
  90. package/patternfly-docs/generated/components/masthead/react.js +291 -0
  91. package/patternfly-docs/generated/components/menus/application-launcher/react-demos.js +769 -0
  92. package/patternfly-docs/generated/components/menus/context-selector/react-demos.js +665 -0
  93. package/patternfly-docs/generated/components/menus/custom-menus/react-demos.js +187 -0
  94. package/patternfly-docs/generated/components/menus/dropdown/react-templates.js +163 -0
  95. package/patternfly-docs/generated/components/menus/dropdown/react.js +998 -0
  96. package/patternfly-docs/generated/components/menus/menu/react.js +1540 -0
  97. package/patternfly-docs/generated/components/menus/menu-toggle/react.js +747 -0
  98. package/patternfly-docs/generated/components/menus/options-menu/react-demos.js +508 -0
  99. package/patternfly-docs/generated/components/menus/select/react-templates.js +257 -0
  100. package/patternfly-docs/generated/components/menus/select/react.js +998 -0
  101. package/patternfly-docs/generated/components/modal/react-deprecated.js +554 -0
  102. package/patternfly-docs/generated/components/modal/react.js +597 -0
  103. package/patternfly-docs/generated/components/navigation/react-demos.js +356 -0
  104. package/patternfly-docs/generated/components/navigation/react.js +409 -0
  105. package/patternfly-docs/generated/components/notification-badge/react.js +196 -0
  106. package/patternfly-docs/generated/components/notification-drawer/react-demos.js +107 -0
  107. package/patternfly-docs/generated/components/notification-drawer/react.js +394 -0
  108. package/patternfly-docs/generated/components/number-input/react.js +210 -0
  109. package/patternfly-docs/generated/components/overflow-menu/react.js +274 -0
  110. package/patternfly-docs/generated/components/page/react-demos.js +149 -0
  111. package/patternfly-docs/generated/components/page/react.js +1352 -0
  112. package/patternfly-docs/generated/components/pagination/react.js +492 -0
  113. package/patternfly-docs/generated/components/panel/react.js +236 -0
  114. package/patternfly-docs/generated/components/popover/react.js +390 -0
  115. package/patternfly-docs/generated/components/progress/react-demos.js +59 -0
  116. package/patternfly-docs/generated/components/progress/react.js +283 -0
  117. package/patternfly-docs/generated/components/progress-stepper/react-demos.js +45 -0
  118. package/patternfly-docs/generated/components/progress-stepper/react.js +219 -0
  119. package/patternfly-docs/generated/components/search-input/react-demos.js +113 -0
  120. package/patternfly-docs/generated/components/search-input/react.js +263 -0
  121. package/patternfly-docs/generated/components/sidebar/react.js +236 -0
  122. package/patternfly-docs/generated/components/simple-list/react.js +200 -0
  123. package/patternfly-docs/generated/components/skeleton/react-demos.js +44 -0
  124. package/patternfly-docs/generated/components/skeleton/react.js +122 -0
  125. package/patternfly-docs/generated/components/skip-to-content/react.js +73 -0
  126. package/patternfly-docs/generated/components/slider/react.js +309 -0
  127. package/patternfly-docs/generated/components/spinner/react.js +111 -0
  128. package/patternfly-docs/generated/components/switch/react.js +163 -0
  129. package/patternfly-docs/generated/components/table/react-demos.js +355 -0
  130. package/patternfly-docs/generated/components/table/react-deprecated.js +1350 -0
  131. package/patternfly-docs/generated/components/table/react.js +3241 -0
  132. package/patternfly-docs/generated/components/tabs/react-demos.js +108 -0
  133. package/patternfly-docs/generated/components/tabs/react.js +1359 -0
  134. package/patternfly-docs/generated/components/text-input-group/react-demos.js +152 -0
  135. package/patternfly-docs/generated/components/text-input-group/react.js +278 -0
  136. package/patternfly-docs/generated/components/tile/react-deprecated.js +242 -0
  137. package/patternfly-docs/generated/components/timestamp/react.js +283 -0
  138. package/patternfly-docs/generated/components/title/react.js +94 -0
  139. package/patternfly-docs/generated/components/toggle-group/react.js +299 -0
  140. package/patternfly-docs/generated/components/toolbar/react-demos.js +66 -0
  141. package/patternfly-docs/generated/components/toolbar/react.js +932 -0
  142. package/patternfly-docs/generated/components/tooltip/react.js +241 -0
  143. package/patternfly-docs/generated/components/tree-view/react.js +429 -0
  144. package/patternfly-docs/generated/components/truncate/react.js +211 -0
  145. package/patternfly-docs/generated/components/wizard/react-demos.js +87 -0
  146. package/patternfly-docs/generated/components/wizard/react-deprecated.js +788 -0
  147. package/patternfly-docs/generated/components/wizard/react.js +986 -0
  148. package/patternfly-docs/generated/developer-guides/open-ui-automation/react.js +285 -0
  149. package/patternfly-docs/generated/foundations-and-styles/layouts/bullseye/react.js +70 -0
  150. package/patternfly-docs/generated/foundations-and-styles/layouts/flex/react.js +506 -0
  151. package/patternfly-docs/generated/foundations-and-styles/layouts/gallery/react.js +94 -0
  152. package/patternfly-docs/generated/foundations-and-styles/layouts/grid/react.js +272 -0
  153. package/patternfly-docs/generated/foundations-and-styles/layouts/level/react.js +87 -0
  154. package/patternfly-docs/generated/foundations-and-styles/layouts/split/react.js +124 -0
  155. package/patternfly-docs/generated/foundations-and-styles/layouts/stack/react.js +112 -0
  156. package/patternfly-docs/generated/index.js +1769 -0
  157. package/patternfly-docs/generated/patterns/card-view/react-demos.js +78 -0
  158. package/patternfly-docs/generated/patterns/filters/react-demos.js +141 -0
  159. package/patternfly-docs/generated/patterns/password-generator/react-demos.js +51 -0
  160. package/patternfly-docs/generated/patterns/password-strength/react-demos.js +61 -0
  161. package/patternfly-docs/generated/patterns/primary-detail/react-demos.js +124 -0
  162. package/patternfly-docs/generated/patterns/right-to-left/react-demos.js +81 -0
  163. package/LICENSE +0 -21
@@ -0,0 +1,587 @@
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 brandImg from '../../../../../react-core/src/components/LoginPage/examples/../../assets/PF-IconLogo.svg';
5
+ import RhUiErrorFillIcon from '@patternfly/react-icons/dist/esm/icons/rh-ui-error-fill-icon';
6
+ import GoogleIcon from '@patternfly/react-icons/dist/esm/icons/google-icon';
7
+ import GithubIcon from '@patternfly/react-icons/dist/esm/icons/github-icon';
8
+ import DropboxIcon from '@patternfly/react-icons/dist/esm/icons/dropbox-icon';
9
+ import FacebookSquareIcon from '@patternfly/react-icons/dist/esm/icons/facebook-square-icon';
10
+ import GitlabIcon from '@patternfly/react-icons/dist/esm/icons/gitlab-icon';
11
+ import srcImportbasic from './react/basic.png';
12
+ import srcImportshowhidepassword from './react/showhide-password.png';
13
+ import srcImportwithheaderutilities from './react/with-header-utilities.png';
14
+ const pageData = {
15
+ "id": "Login page",
16
+ "section": "components",
17
+ "subsection": "",
18
+ "deprecated": false,
19
+ "template": false,
20
+ "beta": false,
21
+ "demo": false,
22
+ "newImplementationLink": false,
23
+ "source": "react",
24
+ "tabName": null,
25
+ "slug": "/components/login-page/react",
26
+ "sourceLink": "https://github.com/patternfly/patternfly-react/blob/main/packages/react-core/src/components/LoginPage/examples/LoginPage.md",
27
+ "relPath": "packages/react-core/src/components/LoginPage/examples/LoginPage.md",
28
+ "propComponents": [
29
+ {
30
+ "name": "LoginPage",
31
+ "description": "",
32
+ "props": [
33
+ {
34
+ "name": "backgroundImgSrc",
35
+ "type": "string",
36
+ "description": "Attribute that specifies the URL of the background image for the login page",
37
+ "defaultValue": "''"
38
+ },
39
+ {
40
+ "name": "brandImgAlt",
41
+ "type": "string",
42
+ "description": "Attribute that specifies the alt text of the brand image for the login page",
43
+ "defaultValue": "''"
44
+ },
45
+ {
46
+ "name": "brandImgProps",
47
+ "type": "BrandProps",
48
+ "description": "Additional props for the brand image for the login page"
49
+ },
50
+ {
51
+ "name": "brandImgSrc",
52
+ "type": "string",
53
+ "description": "Attribute that specifies the URL of the brand image for the login page",
54
+ "defaultValue": "''"
55
+ },
56
+ {
57
+ "name": "children",
58
+ "type": "React.ReactNode",
59
+ "description": "Anything that can be rendered inside of the login page (e.g. <LoginPageForm>)",
60
+ "defaultValue": "null"
61
+ },
62
+ {
63
+ "name": "className",
64
+ "type": "string",
65
+ "description": "Additional classes added to the login page",
66
+ "defaultValue": "''"
67
+ },
68
+ {
69
+ "name": "footerListItems",
70
+ "type": "React.ReactNode",
71
+ "description": "Items rendered inside of the footer list component of the login page",
72
+ "defaultValue": "null"
73
+ },
74
+ {
75
+ "name": "footerListVariants",
76
+ "type": "ListVariant.inline",
77
+ "description": "Adds list variant styles for the footer list component of the login page. The only current value is'inline'"
78
+ },
79
+ {
80
+ "name": "forgotCredentials",
81
+ "type": "React.ReactNode",
82
+ "description": "Content rendered inside of login main footer band to display a forgot credentials link.",
83
+ "defaultValue": "null"
84
+ },
85
+ {
86
+ "name": "headerUtilities",
87
+ "type": "React.ReactNode",
88
+ "description": "Header utilities for the login main body header of the login page"
89
+ },
90
+ {
91
+ "name": "loginSubtitle",
92
+ "type": "string",
93
+ "description": "Subtitle for the login main body header of the login page"
94
+ },
95
+ {
96
+ "name": "loginTitle",
97
+ "type": "string",
98
+ "description": "Title for the login main body header of the login page",
99
+ "required": true
100
+ },
101
+ {
102
+ "name": "signUpForAccountMessage",
103
+ "type": "React.ReactNode",
104
+ "description": "Content rendered inside of login main footer band to display a sign up for account message",
105
+ "defaultValue": "null"
106
+ },
107
+ {
108
+ "name": "socialMediaLoginAriaLabel",
109
+ "type": "string",
110
+ "description": "Adds an accessible name to the social media login list."
111
+ },
112
+ {
113
+ "name": "socialMediaLoginContent",
114
+ "type": "React.ReactNode",
115
+ "description": "Content rendered inside of social media login footer section",
116
+ "defaultValue": "null"
117
+ },
118
+ {
119
+ "name": "textContent",
120
+ "type": "string",
121
+ "description": "Content rendered inside of the text component of the login page",
122
+ "defaultValue": "''"
123
+ }
124
+ ]
125
+ },
126
+ {
127
+ "name": "Login",
128
+ "description": "",
129
+ "props": [
130
+ {
131
+ "name": "children",
132
+ "type": "React.ReactNode",
133
+ "description": "Content rendered inside the main section of the login layout",
134
+ "defaultValue": "null"
135
+ },
136
+ {
137
+ "name": "className",
138
+ "type": "string",
139
+ "description": "Additional classes added to the login layout",
140
+ "defaultValue": "''"
141
+ },
142
+ {
143
+ "name": "footer",
144
+ "type": "React.ReactNode",
145
+ "description": "Footer component (e.g. <LoginFooter />)",
146
+ "defaultValue": "null"
147
+ },
148
+ {
149
+ "name": "header",
150
+ "type": "React.ReactNode",
151
+ "description": "Header component (e.g. <LoginHeader />)",
152
+ "defaultValue": "null"
153
+ }
154
+ ]
155
+ },
156
+ {
157
+ "name": "LoginForm",
158
+ "description": "",
159
+ "props": [
160
+ {
161
+ "name": "className",
162
+ "type": "string",
163
+ "description": "Additional classes added to the login main body's form",
164
+ "defaultValue": "''"
165
+ },
166
+ {
167
+ "name": "helperText",
168
+ "type": "React.ReactNode",
169
+ "description": "Content displayed in the helper text component *",
170
+ "defaultValue": "null"
171
+ },
172
+ {
173
+ "name": "helperTextIcon",
174
+ "type": "React.ReactNode",
175
+ "description": "Icon displayed to the left in the helper text",
176
+ "defaultValue": "null"
177
+ },
178
+ {
179
+ "name": "hidePasswordAriaLabel",
180
+ "type": "string",
181
+ "description": "Accessible label for the hide password button",
182
+ "defaultValue": "'Hide password'"
183
+ },
184
+ {
185
+ "name": "isLoginButtonDisabled",
186
+ "type": "boolean",
187
+ "description": "Flag indicating if the login button is disabled",
188
+ "defaultValue": "false"
189
+ },
190
+ {
191
+ "name": "isPasswordRequired",
192
+ "type": "boolean",
193
+ "description": "Flag indicating if password is required",
194
+ "defaultValue": "true"
195
+ },
196
+ {
197
+ "name": "isRememberMeChecked",
198
+ "type": "boolean",
199
+ "description": "Flag indicating if the remember me checkbox is checked.",
200
+ "defaultValue": "false"
201
+ },
202
+ {
203
+ "name": "isShowPasswordEnabled",
204
+ "type": "boolean",
205
+ "description": "Flag indicating if the user can toggle hiding the password",
206
+ "defaultValue": "false"
207
+ },
208
+ {
209
+ "name": "isValidPassword",
210
+ "type": "boolean",
211
+ "description": "Flag indicating if the password is valid",
212
+ "defaultValue": "true"
213
+ },
214
+ {
215
+ "name": "isValidUsername",
216
+ "type": "boolean",
217
+ "description": "Flag indicating if the username is valid",
218
+ "defaultValue": "true"
219
+ },
220
+ {
221
+ "name": "loginButtonLabel",
222
+ "type": "string",
223
+ "description": "Label for the log in button input",
224
+ "defaultValue": "'Log In'"
225
+ },
226
+ {
227
+ "name": "noAutoFocus",
228
+ "type": "boolean",
229
+ "description": "Flag to indicate if the first dropdown item should not gain initial focus",
230
+ "defaultValue": "false"
231
+ },
232
+ {
233
+ "name": "onChangePassword",
234
+ "type": "(event: React.FormEvent<HTMLInputElement>, value: string) => void",
235
+ "description": "Function that handles the onChange event for the password",
236
+ "defaultValue": "() => undefined as any"
237
+ },
238
+ {
239
+ "name": "onChangeRememberMe",
240
+ "type": "(event: React.FormEvent<HTMLInputElement>, checked: boolean) => void",
241
+ "description": "Function that handles the onChange event for the remember me checkbox",
242
+ "defaultValue": "() => undefined as any"
243
+ },
244
+ {
245
+ "name": "onChangeUsername",
246
+ "type": "(event: React.FormEvent<HTMLInputElement>, value: string) => void",
247
+ "description": "Function that handles the onChange event for the username",
248
+ "defaultValue": "() => undefined as any"
249
+ },
250
+ {
251
+ "name": "onLoginButtonClick",
252
+ "type": "(event: React.MouseEvent<HTMLButtonElement, MouseEvent>) => void",
253
+ "description": "Function that is called when the login button is clicked",
254
+ "defaultValue": "() => undefined as any"
255
+ },
256
+ {
257
+ "name": "passwordLabel",
258
+ "type": "string",
259
+ "description": "Label for the password input field",
260
+ "defaultValue": "'Password'"
261
+ },
262
+ {
263
+ "name": "passwordValue",
264
+ "type": "string",
265
+ "description": "Value for the password",
266
+ "defaultValue": "''"
267
+ },
268
+ {
269
+ "name": "rememberMeLabel",
270
+ "type": "string",
271
+ "description": "Label for the remember me checkbox that indicates the user should be kept logged in. If the label is not provided, the checkbox will not show.",
272
+ "defaultValue": "''"
273
+ },
274
+ {
275
+ "name": "showHelperText",
276
+ "type": "boolean",
277
+ "description": "Flag indicating the helper text is visible *",
278
+ "defaultValue": "false"
279
+ },
280
+ {
281
+ "name": "showPasswordAriaLabel",
282
+ "type": "string",
283
+ "description": "Accessible label for the show password button",
284
+ "defaultValue": "'Show password'"
285
+ },
286
+ {
287
+ "name": "usernameLabel",
288
+ "type": "string",
289
+ "description": "Label for the username input field",
290
+ "defaultValue": "'Username'"
291
+ },
292
+ {
293
+ "name": "usernameValue",
294
+ "type": "string",
295
+ "description": "Value for the username",
296
+ "defaultValue": "''"
297
+ }
298
+ ]
299
+ },
300
+ {
301
+ "name": "LoginMainBody",
302
+ "description": "",
303
+ "props": [
304
+ {
305
+ "name": "children",
306
+ "type": "React.ReactNode",
307
+ "description": "Content rendered inside the login main body",
308
+ "defaultValue": "null"
309
+ },
310
+ {
311
+ "name": "className",
312
+ "type": "string",
313
+ "description": "Additional classes added to the login main body",
314
+ "defaultValue": "''"
315
+ }
316
+ ]
317
+ },
318
+ {
319
+ "name": "LoginMainHeader",
320
+ "description": "",
321
+ "props": [
322
+ {
323
+ "name": "children",
324
+ "type": "React.ReactNode",
325
+ "description": "Content rendered inside the login main header",
326
+ "defaultValue": "null"
327
+ },
328
+ {
329
+ "name": "className",
330
+ "type": "string",
331
+ "description": "Additional classes added to the login main header",
332
+ "defaultValue": "''"
333
+ },
334
+ {
335
+ "name": "headerUtilities",
336
+ "type": "React.ReactNode",
337
+ "description": "Actions that render for the login main header",
338
+ "defaultValue": "null"
339
+ },
340
+ {
341
+ "name": "subtitle",
342
+ "type": "string",
343
+ "description": "Subtitle that contains the text, URL, and URL text for the login main header",
344
+ "defaultValue": "''"
345
+ },
346
+ {
347
+ "name": "title",
348
+ "type": "string",
349
+ "description": "Title for the login main header",
350
+ "defaultValue": "''"
351
+ }
352
+ ]
353
+ },
354
+ {
355
+ "name": "LoginHeader",
356
+ "description": "",
357
+ "props": [
358
+ {
359
+ "name": "children",
360
+ "type": "React.ReactNode",
361
+ "description": "Content rendered inside the header of the login layout",
362
+ "defaultValue": "null"
363
+ },
364
+ {
365
+ "name": "className",
366
+ "type": "string",
367
+ "description": "Additional classes added to the login header",
368
+ "defaultValue": "''"
369
+ },
370
+ {
371
+ "name": "headerBrand",
372
+ "type": "React.ReactNode",
373
+ "description": "Header brand component (e.g. <LoginHeader />)",
374
+ "defaultValue": "null"
375
+ }
376
+ ]
377
+ },
378
+ {
379
+ "name": "LoginFooter",
380
+ "description": "",
381
+ "props": [
382
+ {
383
+ "name": "children",
384
+ "type": "React.ReactNode",
385
+ "description": "Content rendered inside the footer of the login layout",
386
+ "defaultValue": "null"
387
+ },
388
+ {
389
+ "name": "className",
390
+ "type": "string",
391
+ "description": "Additional props are spread to the container <footer>",
392
+ "defaultValue": "''"
393
+ }
394
+ ]
395
+ },
396
+ {
397
+ "name": "LoginMainFooter",
398
+ "description": "",
399
+ "props": [
400
+ {
401
+ "name": "children",
402
+ "type": "React.ReactNode",
403
+ "description": "Content rendered inside the login main footer",
404
+ "defaultValue": "null"
405
+ },
406
+ {
407
+ "name": "className",
408
+ "type": "string",
409
+ "description": "Additional classes added to the login main footer",
410
+ "defaultValue": "''"
411
+ },
412
+ {
413
+ "name": "forgotCredentials",
414
+ "type": "React.ReactNode",
415
+ "description": "Content rendered inside of login main footer band do display a forgot credentials link*",
416
+ "defaultValue": "null"
417
+ },
418
+ {
419
+ "name": "signUpForAccountMessage",
420
+ "type": "React.ReactNode",
421
+ "description": "Content rendered inside of login main footer band to display a sign up for account message",
422
+ "defaultValue": "null"
423
+ },
424
+ {
425
+ "name": "socialMediaLoginAriaLabel",
426
+ "type": "string",
427
+ "description": "Adds an accessible name to the social media login list."
428
+ },
429
+ {
430
+ "name": "socialMediaLoginContent",
431
+ "type": "React.ReactNode",
432
+ "description": "Content rendered inside the login main footer as social media links",
433
+ "defaultValue": "null"
434
+ }
435
+ ]
436
+ },
437
+ {
438
+ "name": "LoginFooterItem",
439
+ "description": "",
440
+ "props": [
441
+ {
442
+ "name": "children",
443
+ "type": "React.ReactNode",
444
+ "description": "Content rendered inside the footer link item",
445
+ "defaultValue": "null"
446
+ },
447
+ {
448
+ "name": "className",
449
+ "type": "string",
450
+ "description": "Additional classes added to the footer link item"
451
+ },
452
+ {
453
+ "name": "href",
454
+ "type": "string",
455
+ "description": "The URL of the footer link item",
456
+ "defaultValue": "'#'"
457
+ },
458
+ {
459
+ "name": "target",
460
+ "type": "string",
461
+ "description": "Specifies where to open the linked document",
462
+ "defaultValue": "'_blank'"
463
+ }
464
+ ]
465
+ },
466
+ {
467
+ "name": "LoginMainFooterBandItem",
468
+ "description": "",
469
+ "props": [
470
+ {
471
+ "name": "children",
472
+ "type": "React.ReactNode",
473
+ "description": "Content rendered inside the footer link item",
474
+ "defaultValue": "null"
475
+ },
476
+ {
477
+ "name": "className",
478
+ "type": "string",
479
+ "description": "Additional classes added to the footer link item",
480
+ "defaultValue": "''"
481
+ }
482
+ ]
483
+ },
484
+ {
485
+ "name": "LoginMainFooterLinksItem",
486
+ "description": "",
487
+ "props": [
488
+ {
489
+ "name": "children",
490
+ "type": "React.ReactNode",
491
+ "description": "Content rendered inside the footer link item",
492
+ "defaultValue": "null"
493
+ },
494
+ {
495
+ "name": "className",
496
+ "type": "string",
497
+ "description": "Additional classes added to the footer link item",
498
+ "defaultValue": "''"
499
+ }
500
+ ]
501
+ }
502
+ ],
503
+ "cssPrefix": [
504
+ "pf-v6-c-login"
505
+ ],
506
+ "fullscreenExamples": [
507
+ "Basic",
508
+ "Show/hide password",
509
+ "With header utilities"
510
+ ]
511
+ };
512
+ pageData.liveContext = {
513
+ Fragment,
514
+ useState,
515
+ brandImg,
516
+ RhUiErrorFillIcon,
517
+ GoogleIcon,
518
+ GithubIcon,
519
+ DropboxIcon,
520
+ FacebookSquareIcon,
521
+ GitlabIcon
522
+ };
523
+ pageData.examples = {
524
+ 'Basic': props =>
525
+ <Example {...pageData} {...props} thumbnail={srcImportbasic} {...{"code":"import { Fragment, useState } from 'react';\nimport brandImg from '../../assets/PF-IconLogo.svg';\nimport {\n LoginFooterItem,\n LoginForm,\n LoginMainFooterBandItem,\n LoginMainFooterLinksItem,\n LoginPage,\n ListItem,\n ListVariant,\n Button\n} from '@patternfly/react-core';\nimport RhUiErrorFillIcon from '@patternfly/react-icons/dist/esm/icons/rh-ui-error-fill-icon';\nimport GoogleIcon from '@patternfly/react-icons/dist/esm/icons/google-icon';\nimport GithubIcon from '@patternfly/react-icons/dist/esm/icons/github-icon';\nimport DropboxIcon from '@patternfly/react-icons/dist/esm/icons/dropbox-icon';\nimport FacebookSquareIcon from '@patternfly/react-icons/dist/esm/icons/facebook-square-icon';\nimport GitlabIcon from '@patternfly/react-icons/dist/esm/icons/gitlab-icon';\n\nexport const SimpleLoginPage: React.FunctionComponent = () => {\n const [showHelperText, setShowHelperText] = useState(false);\n const [username, setUsername] = useState('');\n const [isValidUsername, setIsValidUsername] = useState(true);\n const [password, setPassword] = useState('');\n const [isValidPassword, setIsValidPassword] = useState(true);\n const [isRememberMeChecked, setIsRememberMeChecked] = useState(false);\n\n const handleUsernameChange = (_event: React.FormEvent<HTMLInputElement>, value: string) => {\n setUsername(value);\n };\n\n const handlePasswordChange = (_event: React.FormEvent<HTMLInputElement>, value: string) => {\n setPassword(value);\n };\n\n const onRememberMeClick = () => {\n setIsRememberMeChecked(!isRememberMeChecked);\n };\n\n const onLoginButtonClick = (event: React.MouseEvent<HTMLButtonElement, MouseEvent>) => {\n event.preventDefault();\n setIsValidUsername(!!username);\n setIsValidPassword(!!password);\n setShowHelperText(!username || !password);\n };\n\n const socialMediaLoginContent = (\n <Fragment>\n <LoginMainFooterLinksItem>\n <Button variant=\"plain\" aria-label=\"Login with Google\" icon={<GoogleIcon />} />\n </LoginMainFooterLinksItem>\n <LoginMainFooterLinksItem>\n <Button variant=\"plain\" aria-label=\"Login with Github\" icon={<GithubIcon />} />\n </LoginMainFooterLinksItem>\n <LoginMainFooterLinksItem>\n <Button variant=\"plain\" aria-label=\"Login with Dropbox\" icon={<DropboxIcon />} />\n </LoginMainFooterLinksItem>\n <LoginMainFooterLinksItem>\n <Button variant=\"plain\" aria-label=\"Login with Facebook\" icon={<FacebookSquareIcon />} />\n </LoginMainFooterLinksItem>\n <LoginMainFooterLinksItem>\n <Button variant=\"plain\" aria-label=\"Login with Gitlab\" icon={<GitlabIcon />} />\n </LoginMainFooterLinksItem>\n </Fragment>\n );\n\n const signUpForAccountMessage = (\n <LoginMainFooterBandItem>\n Need an account? <a href=\"https://www.patternfly.org/\">Sign up.</a>\n </LoginMainFooterBandItem>\n );\n\n const forgotCredentials = (\n <LoginMainFooterBandItem>\n <a href=\"https://www.patternfly.org/\">Forgot username or password?</a>\n </LoginMainFooterBandItem>\n );\n\n const listItem = (\n <Fragment>\n <ListItem>\n <LoginFooterItem href=\"https://www.patternfly.org/\">Terms of Use </LoginFooterItem>\n </ListItem>\n <ListItem>\n <LoginFooterItem href=\"https://www.patternfly.org/\">Help</LoginFooterItem>\n </ListItem>\n <ListItem>\n <LoginFooterItem href=\"https://www.patternfly.org/\">Privacy Policy</LoginFooterItem>\n </ListItem>\n </Fragment>\n );\n\n const loginForm = (\n <LoginForm\n showHelperText={showHelperText}\n helperText=\"Invalid login credentials.\"\n helperTextIcon={<RhUiErrorFillIcon />}\n usernameLabel=\"Username\"\n usernameValue={username}\n onChangeUsername={handleUsernameChange}\n isValidUsername={isValidUsername}\n passwordLabel=\"Password\"\n passwordValue={password}\n onChangePassword={handlePasswordChange}\n isValidPassword={isValidPassword}\n rememberMeLabel=\"Keep me logged in for 30 days.\"\n isRememberMeChecked={isRememberMeChecked}\n onChangeRememberMe={onRememberMeClick}\n onLoginButtonClick={onLoginButtonClick}\n loginButtonLabel=\"Log in\"\n />\n );\n\n return (\n <LoginPage\n footerListVariants={ListVariant.inline}\n brandImgProps={{ src: brandImg, alt: 'PatternFly logo' }}\n backgroundImgSrc=\"/assets/images/pf-background.svg\"\n footerListItems={listItem}\n textContent=\"This is placeholder text only. Use this area to place any information or introductory message about your application that may be relevant to users.\"\n loginTitle=\"Log in to your account\"\n loginSubtitle=\"Enter your single sign-on LDAP credentials.\"\n socialMediaLoginContent={socialMediaLoginContent}\n socialMediaLoginAriaLabel=\"Log in with social media\"\n signUpForAccountMessage={signUpForAccountMessage}\n forgotCredentials={forgotCredentials}\n >\n {loginForm}\n </LoginPage>\n );\n};\n","title":"Basic","lang":"ts","isFullscreen":true,"className":""}}>
526
+
527
+ <p {...{"className":"pf-v6-c-content--p pf-m-editorial ws-p "}}>
528
+ {`By default, a login page requires users to enter both a username and a password into their respective fields. The username must always be a required field, but you can make the password optional by passing the `}
529
+
530
+ <code {...{"className":"ws-code "}}>
531
+ {`isPasswordRequired`}
532
+ </code>
533
+ {` property to the `}
534
+
535
+ <code {...{"className":"ws-code "}}>
536
+ {`<LoginForm>`}
537
+ </code>
538
+ {`.`}
539
+ </p>
540
+
541
+ <p {...{"className":"pf-v6-c-content--p pf-m-editorial ws-p "}}>
542
+ {`This example uses `}
543
+
544
+ <code {...{"className":"ws-code "}}>
545
+ {`brandImgProps`}
546
+ </code>
547
+ {` to pass the brand image source, alt text, and an extra class, which will be preferred over `}
548
+
549
+ <code {...{"className":"ws-code "}}>
550
+ {`brandImgSrc`}
551
+ </code>
552
+ {` when both are provided.`}
553
+ </p>
554
+ </Example>,
555
+ 'Show/hide password': props =>
556
+ <Example {...pageData} {...props} thumbnail={srcImportshowhidepassword} {...{"code":"import { Fragment, useState } from 'react';\nimport brandImg from '../../assets/PF-IconLogo.svg';\nimport {\n LoginFooterItem,\n LoginForm,\n LoginMainFooterBandItem,\n LoginMainFooterLinksItem,\n LoginPage,\n ListItem,\n ListVariant,\n Button\n} from '@patternfly/react-core';\nimport RhUiErrorFillIcon from '@patternfly/react-icons/dist/esm/icons/rh-ui-error-fill-icon';\nimport GoogleIcon from '@patternfly/react-icons/dist/esm/icons/google-icon';\nimport GithubIcon from '@patternfly/react-icons/dist/esm/icons/github-icon';\nimport DropboxIcon from '@patternfly/react-icons/dist/esm/icons/dropbox-icon';\nimport FacebookSquareIcon from '@patternfly/react-icons/dist/esm/icons/facebook-square-icon';\nimport GitlabIcon from '@patternfly/react-icons/dist/esm/icons/gitlab-icon';\n\nexport const LoginPageHideShowPassword: React.FunctionComponent = () => {\n const [showHelperText, setShowHelperText] = useState(false);\n const [username, setUsername] = useState('');\n const [isValidUsername, setIsValidUsername] = useState(true);\n const [password, setPassword] = useState('');\n const [isValidPassword, setIsValidPassword] = useState(true);\n const [isRememberMeChecked, setIsRememberMeChecked] = useState(false);\n\n const handleUsernameChange = (_event: React.FormEvent<HTMLInputElement>, value: string) => {\n setUsername(value);\n };\n\n const handlePasswordChange = (_event: React.FormEvent<HTMLInputElement>, value: string) => {\n setPassword(value);\n };\n\n const onRememberMeClick = () => {\n setIsRememberMeChecked(!isRememberMeChecked);\n };\n\n const onLoginButtonClick = (event: React.MouseEvent<HTMLButtonElement, MouseEvent>) => {\n event.preventDefault();\n setIsValidUsername(!!username);\n setIsValidPassword(!!password);\n setShowHelperText(!username || !password);\n };\n\n const socialMediaLoginContent = (\n <Fragment>\n <LoginMainFooterLinksItem>\n <Button variant=\"plain\" aria-label=\"Login with Google\" icon={<GoogleIcon />} />\n </LoginMainFooterLinksItem>\n <LoginMainFooterLinksItem>\n <Button variant=\"plain\" aria-label=\"Login with Github\" icon={<GithubIcon />} />\n </LoginMainFooterLinksItem>\n <LoginMainFooterLinksItem>\n <Button variant=\"plain\" aria-label=\"Login with Dropbox\" icon={<DropboxIcon />} />\n </LoginMainFooterLinksItem>\n <LoginMainFooterLinksItem>\n <Button variant=\"plain\" aria-label=\"Login with Facebook\" icon={<FacebookSquareIcon />} />\n </LoginMainFooterLinksItem>\n <LoginMainFooterLinksItem>\n <Button variant=\"plain\" aria-label=\"Login with Gitlab\" icon={<GitlabIcon />} />\n </LoginMainFooterLinksItem>\n </Fragment>\n );\n\n const signUpForAccountMessage = (\n <LoginMainFooterBandItem>\n Need an account? <a href=\"https://www.patternfly.org/\">Sign up.</a>\n </LoginMainFooterBandItem>\n );\n\n const forgotCredentials = (\n <LoginMainFooterBandItem>\n <a href=\"https://www.patternfly.org/\">Forgot username or password?</a>\n </LoginMainFooterBandItem>\n );\n\n const listItem = (\n <Fragment>\n <ListItem>\n <LoginFooterItem href=\"https://www.patternfly.org/\">Terms of Use </LoginFooterItem>\n </ListItem>\n <ListItem>\n <LoginFooterItem href=\"https://www.patternfly.org/\">Help</LoginFooterItem>\n </ListItem>\n <ListItem>\n <LoginFooterItem href=\"https://www.patternfly.org/\">Privacy Policy</LoginFooterItem>\n </ListItem>\n </Fragment>\n );\n\n const loginForm = (\n <LoginForm\n showHelperText={showHelperText}\n helperText=\"Invalid login credentials.\"\n helperTextIcon={<RhUiErrorFillIcon />}\n usernameLabel=\"Username\"\n usernameValue={username}\n onChangeUsername={handleUsernameChange}\n isValidUsername={isValidUsername}\n passwordLabel=\"Password\"\n passwordValue={password}\n isShowPasswordEnabled\n onChangePassword={handlePasswordChange}\n isValidPassword={isValidPassword}\n rememberMeLabel=\"Keep me logged in for 30 days.\"\n isRememberMeChecked={isRememberMeChecked}\n onChangeRememberMe={onRememberMeClick}\n onLoginButtonClick={onLoginButtonClick}\n loginButtonLabel=\"Log in\"\n />\n );\n\n return (\n <LoginPage\n footerListVariants={ListVariant.inline}\n brandImgSrc={brandImg}\n brandImgAlt=\"PatternFly logo\"\n backgroundImgSrc=\"/assets/images/pf-background.svg\"\n footerListItems={listItem}\n textContent=\"This is placeholder text only. Use this area to place any information or introductory message about your application that may be relevant to users.\"\n loginTitle=\"Log in to your account\"\n loginSubtitle=\"Enter your single sign-on LDAP credentials.\"\n socialMediaLoginContent={socialMediaLoginContent}\n socialMediaLoginAriaLabel=\"Log in with social media\"\n signUpForAccountMessage={signUpForAccountMessage}\n forgotCredentials={forgotCredentials}\n >\n {loginForm}\n </LoginPage>\n );\n};\n","title":"Show/hide password","lang":"ts","isFullscreen":true,"className":""}}>
557
+
558
+ </Example>,
559
+ 'With header utilities': props =>
560
+ <Example {...pageData} {...props} thumbnail={srcImportwithheaderutilities} {...{"code":"import { Fragment, useState } from 'react';\nimport brandImg from '../../assets/PF-IconLogo.svg';\nimport {\n LoginFooterItem,\n LoginForm,\n LoginMainFooterBandItem,\n LoginMainFooterLinksItem,\n LoginPage,\n ListItem,\n ListVariant,\n MenuToggle,\n MenuToggleElement,\n Select,\n SelectList,\n SelectOption,\n Button\n} from '@patternfly/react-core';\nimport RhUiErrorFillIcon from '@patternfly/react-icons/dist/esm/icons/rh-ui-error-fill-icon';\nimport GoogleIcon from '@patternfly/react-icons/dist/esm/icons/google-icon';\nimport GithubIcon from '@patternfly/react-icons/dist/esm/icons/github-icon';\nimport DropboxIcon from '@patternfly/react-icons/dist/esm/icons/dropbox-icon';\nimport FacebookSquareIcon from '@patternfly/react-icons/dist/esm/icons/facebook-square-icon';\nimport GitlabIcon from '@patternfly/react-icons/dist/esm/icons/gitlab-icon';\n\nexport const LoginPageLanguageSelect: React.FunctionComponent = () => {\n const [showHelperText, setShowHelperText] = useState(false);\n const [username, setUsername] = useState('');\n const [isValidUsername, setIsValidUsername] = useState(true);\n const [password, setPassword] = useState('');\n const [isValidPassword, setIsValidPassword] = useState(true);\n const [isRememberMeChecked, setIsRememberMeChecked] = useState(false);\n const [isHeaderUtilsOpen, setIsHeaderUtilsOpen] = useState(false);\n const [selectedHeaderUtils, setSelectedHeaderUtils] = useState('English');\n\n /** i18n object is used to simulate i18n integration of native language translation */\n const i18n = {\n English: 'English',\n Mandarin: '普通话',\n Hindi: 'हिन्दी',\n Spanish: 'Español',\n Portuguese: 'Português',\n Arabic: 'عربى',\n Bengali: 'বাংলা'\n };\n\n const headerUtilsOptions = (\n <SelectList>\n <SelectOption key={0} value={i18n.English}>\n {i18n.English}\n </SelectOption>\n <SelectOption key={1} value={i18n.Mandarin}>\n {i18n.Mandarin}\n </SelectOption>\n <SelectOption key={2} value={i18n.Hindi}>\n {i18n.Hindi}\n </SelectOption>\n <SelectOption key={3} value={i18n.Spanish}>\n {i18n.Spanish}\n </SelectOption>\n <SelectOption key={4} value={i18n.Portuguese}>\n {i18n.Portuguese}\n </SelectOption>\n <SelectOption key={5} value={i18n.Arabic}>\n {i18n.Arabic}\n </SelectOption>\n <SelectOption key={6} value={i18n.Bengali}>\n {i18n.Bengali}\n </SelectOption>\n </SelectList>\n );\n\n const onHeaderUtilsSelect = (\n _event: React.MouseEvent<Element, MouseEvent> | React.ChangeEvent<Element>,\n value: string\n ) => {\n setSelectedHeaderUtils(value);\n setIsHeaderUtilsOpen(false);\n };\n\n const headerUtils = (\n <Select\n aria-label=\"Select Language\"\n toggle={(toggleRef: React.Ref<MenuToggleElement>) => (\n <MenuToggle\n ref={toggleRef}\n onClick={() => setIsHeaderUtilsOpen(!isHeaderUtilsOpen)}\n isExpanded={isHeaderUtilsOpen}\n >\n {selectedHeaderUtils}\n </MenuToggle>\n )}\n onSelect={onHeaderUtilsSelect}\n onOpenChange={(isOpen) => setIsHeaderUtilsOpen(isOpen)}\n selected={selectedHeaderUtils}\n isOpen={isHeaderUtilsOpen}\n >\n {headerUtilsOptions}\n </Select>\n );\n\n const handleUsernameChange = (_event: React.FormEvent<HTMLInputElement>, value: string) => {\n setUsername(value);\n };\n\n const handlePasswordChange = (_event: React.FormEvent<HTMLInputElement>, value: string) => {\n setPassword(value);\n };\n\n const onRememberMeClick = () => {\n setIsRememberMeChecked(!isRememberMeChecked);\n };\n\n const onLoginButtonClick = (event: React.MouseEvent<HTMLButtonElement, MouseEvent>) => {\n event.preventDefault();\n setIsValidUsername(!!username);\n setIsValidPassword(!!password);\n setShowHelperText(!username || !password);\n };\n\n const socialMediaLoginContent = (\n <Fragment>\n <LoginMainFooterLinksItem>\n <Button variant=\"plain\" aria-label=\"Login with Google\" icon={<GoogleIcon />} />\n </LoginMainFooterLinksItem>\n <LoginMainFooterLinksItem>\n <Button variant=\"plain\" aria-label=\"Login with Github\" icon={<GithubIcon />} />\n </LoginMainFooterLinksItem>\n <LoginMainFooterLinksItem>\n <Button variant=\"plain\" aria-label=\"Login with Dropbox\" icon={<DropboxIcon />} />\n </LoginMainFooterLinksItem>\n <LoginMainFooterLinksItem>\n <Button variant=\"plain\" aria-label=\"Login with Facebook\" icon={<FacebookSquareIcon />} />\n </LoginMainFooterLinksItem>\n <LoginMainFooterLinksItem>\n <Button variant=\"plain\" aria-label=\"Login with Gitlab\" icon={<GitlabIcon />} />\n </LoginMainFooterLinksItem>\n </Fragment>\n );\n\n const signUpForAccountMessage = (\n <LoginMainFooterBandItem>\n Need an account? <a href=\"https://www.patternfly.org/\">Sign up.</a>\n </LoginMainFooterBandItem>\n );\n\n const forgotCredentials = (\n <LoginMainFooterBandItem>\n <a href=\"https://www.patternfly.org/\">Forgot username or password?</a>\n </LoginMainFooterBandItem>\n );\n\n const listItem = (\n <Fragment>\n <ListItem>\n <LoginFooterItem href=\"https://www.patternfly.org/\">Terms of Use </LoginFooterItem>\n </ListItem>\n <ListItem>\n <LoginFooterItem href=\"https://www.patternfly.org/\">Help</LoginFooterItem>\n </ListItem>\n <ListItem>\n <LoginFooterItem href=\"https://www.patternfly.org/\">Privacy Policy</LoginFooterItem>\n </ListItem>\n </Fragment>\n );\n\n const loginForm = (\n <LoginForm\n showHelperText={showHelperText}\n helperText=\"Invalid login credentials.\"\n helperTextIcon={<RhUiErrorFillIcon />}\n usernameLabel=\"Username\"\n usernameValue={username}\n onChangeUsername={handleUsernameChange}\n isValidUsername={isValidUsername}\n passwordLabel=\"Password\"\n passwordValue={password}\n onChangePassword={handlePasswordChange}\n isValidPassword={isValidPassword}\n rememberMeLabel=\"Keep me logged in for 30 days.\"\n isRememberMeChecked={isRememberMeChecked}\n onChangeRememberMe={onRememberMeClick}\n onLoginButtonClick={onLoginButtonClick}\n loginButtonLabel=\"Log in\"\n />\n );\n\n return (\n <LoginPage\n footerListVariants={ListVariant.inline}\n brandImgSrc={brandImg}\n brandImgAlt=\"PatternFly logo\"\n backgroundImgSrc=\"/assets/images/pf-background.svg\"\n footerListItems={listItem}\n textContent=\"This is placeholder text only. Use this area to place any information or introductory message about your application that may be relevant to users.\"\n loginTitle=\"Log in to your account\"\n loginSubtitle=\"Enter your single sign-on LDAP credentials.\"\n headerUtilities={headerUtils}\n socialMediaLoginContent={socialMediaLoginContent}\n socialMediaLoginAriaLabel=\"Log in with social media\"\n signUpForAccountMessage={signUpForAccountMessage}\n forgotCredentials={forgotCredentials}\n >\n {loginForm}\n </LoginPage>\n );\n};\n","title":"With header utilities","lang":"ts","isFullscreen":true,"className":""}}>
561
+
562
+ </Example>
563
+ };
564
+
565
+ const Component = () => (
566
+ <React.Fragment>
567
+ <AutoLinkHeader {...{"id":"examples","headingLevel":"h2","className":"ws-title ws-h2"}}>
568
+ {`Examples`}
569
+ </AutoLinkHeader>
570
+ {React.createElement(pageData.examples["Basic"])}
571
+ {React.createElement(pageData.examples["Show/hide password"])}
572
+ <AutoLinkHeader {...{"id":"customizing-the-header-utilities","headingLevel":"h3","className":"ws-title ws-h3"}}>
573
+ {`Customizing the header utilities`}
574
+ </AutoLinkHeader>
575
+ <p {...{"className":"pf-v6-c-content--p pf-m-editorial ws-p "}}>
576
+ <code {...{"className":"ws-code "}}>
577
+ {`headerUtilities`}
578
+ </code>
579
+ {` is a prop that can be customized to allow components to be placed into the header of the login page, likely for the user to take an action. The following example demonstrates the use of a Select component to display a list a languages.`}
580
+ </p>
581
+ {React.createElement(pageData.examples["With header utilities"])}
582
+ </React.Fragment>
583
+ );
584
+ Component.displayName = 'ComponentsLoginPageReactDocs';
585
+ Component.pageData = pageData;
586
+
587
+ export default Component;