@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.
- package/CHANGELOG.md +4 -0
- package/package.json +12 -13
- package/patternfly-docs/generated/components/about-modal/react.js +149 -0
- package/patternfly-docs/generated/components/accordion/react.js +262 -0
- package/patternfly-docs/generated/components/action-list/react.js +144 -0
- package/patternfly-docs/generated/components/alert/react-demos.js +56 -0
- package/patternfly-docs/generated/components/alert/react.js +1433 -0
- package/patternfly-docs/generated/components/avatar/react.js +166 -0
- package/patternfly-docs/generated/components/back-to-top/react-demos.js +60 -0
- package/patternfly-docs/generated/components/back-to-top/react.js +77 -0
- package/patternfly-docs/generated/components/backdrop/react.js +64 -0
- package/patternfly-docs/generated/components/background-image/react.js +62 -0
- package/patternfly-docs/generated/components/badge/react.js +97 -0
- package/patternfly-docs/generated/components/banner/react-demos.js +57 -0
- package/patternfly-docs/generated/components/banner/react.js +148 -0
- package/patternfly-docs/generated/components/brand/react.js +142 -0
- package/patternfly-docs/generated/components/breadcrumb/react.js +206 -0
- package/patternfly-docs/generated/components/button/react-demos.js +57 -0
- package/patternfly-docs/generated/components/button/react.js +826 -0
- package/patternfly-docs/generated/components/card/react-demos.js +201 -0
- package/patternfly-docs/generated/components/card/react.js +1015 -0
- package/patternfly-docs/generated/components/charts/area-chart/-Victory.js +1350 -0
- package/patternfly-docs/generated/components/charts/bar-chart/-Victory.js +1334 -0
- package/patternfly-docs/generated/components/charts/box-plot-chart/-Victory.js +1282 -0
- package/patternfly-docs/generated/components/charts/bullet-chart/-Victory.js +848 -0
- package/patternfly-docs/generated/components/charts/colors-for-charts/-Victory.js +192 -0
- package/patternfly-docs/generated/components/charts/donut-chart/-Victory.js +426 -0
- package/patternfly-docs/generated/components/charts/donut-utilization-chart/-Victory.js +804 -0
- package/patternfly-docs/generated/components/charts/legends/-Victory.js +3230 -0
- package/patternfly-docs/generated/components/charts/line-chart/-Victory.js +1178 -0
- package/patternfly-docs/generated/components/charts/line-chart/ECharts.js +525 -0
- package/patternfly-docs/generated/components/charts/patterns/-Victory.js +3382 -0
- package/patternfly-docs/generated/components/charts/pie-chart/-Victory.js +377 -0
- package/patternfly-docs/generated/components/charts/resize-observer/-Victory.js +2475 -0
- package/patternfly-docs/generated/components/charts/sankey-chart/ECharts.js +538 -0
- package/patternfly-docs/generated/components/charts/scatter-chart/-Victory.js +1551 -0
- package/patternfly-docs/generated/components/charts/skeletons/-Victory.js +4115 -0
- package/patternfly-docs/generated/components/charts/sparkline-chart/-Victory.js +955 -0
- package/patternfly-docs/generated/components/charts/stack-chart/-Victory.js +1173 -0
- package/patternfly-docs/generated/components/charts/threshold-chart/-Victory.js +1166 -0
- package/patternfly-docs/generated/components/charts/tooltips/-Victory.js +413 -0
- package/patternfly-docs/generated/components/chip/react-deprecated.js +323 -0
- package/patternfly-docs/generated/components/clipboard-copy/react.js +373 -0
- package/patternfly-docs/generated/components/code-block/react.js +148 -0
- package/patternfly-docs/generated/components/code-editor/react.js +659 -0
- package/patternfly-docs/generated/components/compass/react-demos.js +147 -0
- package/patternfly-docs/generated/components/compass/react.js +440 -0
- package/patternfly-docs/generated/components/content/react.js +248 -0
- package/patternfly-docs/generated/components/data-list/react-demos.js +90 -0
- package/patternfly-docs/generated/components/data-list/react.js +709 -0
- package/patternfly-docs/generated/components/date-and-time/calendar-month/react.js +283 -0
- package/patternfly-docs/generated/components/date-and-time/date-and-time-picker/react-demos.js +64 -0
- package/patternfly-docs/generated/components/date-and-time/date-picker/react-demos.js +83 -0
- package/patternfly-docs/generated/components/date-and-time/date-picker/react.js +395 -0
- package/patternfly-docs/generated/components/date-and-time/time-picker/react.js +241 -0
- package/patternfly-docs/generated/components/description-list/react-demos.js +58 -0
- package/patternfly-docs/generated/components/description-list/react.js +743 -0
- package/patternfly-docs/generated/components/divider/react.js +126 -0
- package/patternfly-docs/generated/components/drag-and-drop/react-demos.js +351 -0
- package/patternfly-docs/generated/components/drag-and-drop/react-deprecated.js +184 -0
- package/patternfly-docs/generated/components/drag-and-drop/react.js +137 -0
- package/patternfly-docs/generated/components/drawer/react.js +598 -0
- package/patternfly-docs/generated/components/dual-list-selector/react-deprecated.js +772 -0
- package/patternfly-docs/generated/components/dual-list-selector/react.js +594 -0
- package/patternfly-docs/generated/components/empty-state/react.js +199 -0
- package/patternfly-docs/generated/components/expandable-section/react-demos.js +65 -0
- package/patternfly-docs/generated/components/expandable-section/react.js +408 -0
- package/patternfly-docs/generated/components/file-upload/multiple-file-upload/react-demos.js +52 -0
- package/patternfly-docs/generated/components/file-upload/multiple-file-upload/react.js +398 -0
- package/patternfly-docs/generated/components/file-upload/simple-file-upload/react.js +749 -0
- package/patternfly-docs/generated/components/forms/checkbox/react.js +222 -0
- package/patternfly-docs/generated/components/forms/form/react.js +1106 -0
- package/patternfly-docs/generated/components/forms/form-select/react.js +208 -0
- package/patternfly-docs/generated/components/forms/radio/react.js +212 -0
- package/patternfly-docs/generated/components/forms/text-area/react.js +160 -0
- package/patternfly-docs/generated/components/forms/text-input/react.js +216 -0
- package/patternfly-docs/generated/components/helper-text/react-demos.js +180 -0
- package/patternfly-docs/generated/components/helper-text/react.js +164 -0
- package/patternfly-docs/generated/components/hero/react.js +88 -0
- package/patternfly-docs/generated/components/hint/react.js +169 -0
- package/patternfly-docs/generated/components/icon/react.js +215 -0
- package/patternfly-docs/generated/components/input-group/react.js +182 -0
- package/patternfly-docs/generated/components/jump-links/react-demos.js +154 -0
- package/patternfly-docs/generated/components/jump-links/react.js +212 -0
- package/patternfly-docs/generated/components/label/react-demos.js +57 -0
- package/patternfly-docs/generated/components/label/react.js +417 -0
- package/patternfly-docs/generated/components/list/react.js +175 -0
- package/patternfly-docs/generated/components/login-page/react.js +587 -0
- package/patternfly-docs/generated/components/masthead/react-demos.js +79 -0
- package/patternfly-docs/generated/components/masthead/react.js +291 -0
- package/patternfly-docs/generated/components/menus/application-launcher/react-demos.js +769 -0
- package/patternfly-docs/generated/components/menus/context-selector/react-demos.js +665 -0
- package/patternfly-docs/generated/components/menus/custom-menus/react-demos.js +187 -0
- package/patternfly-docs/generated/components/menus/dropdown/react-templates.js +163 -0
- package/patternfly-docs/generated/components/menus/dropdown/react.js +998 -0
- package/patternfly-docs/generated/components/menus/menu/react.js +1540 -0
- package/patternfly-docs/generated/components/menus/menu-toggle/react.js +747 -0
- package/patternfly-docs/generated/components/menus/options-menu/react-demos.js +508 -0
- package/patternfly-docs/generated/components/menus/select/react-templates.js +257 -0
- package/patternfly-docs/generated/components/menus/select/react.js +998 -0
- package/patternfly-docs/generated/components/modal/react-deprecated.js +554 -0
- package/patternfly-docs/generated/components/modal/react.js +597 -0
- package/patternfly-docs/generated/components/navigation/react-demos.js +356 -0
- package/patternfly-docs/generated/components/navigation/react.js +409 -0
- package/patternfly-docs/generated/components/notification-badge/react.js +196 -0
- package/patternfly-docs/generated/components/notification-drawer/react-demos.js +107 -0
- package/patternfly-docs/generated/components/notification-drawer/react.js +394 -0
- package/patternfly-docs/generated/components/number-input/react.js +210 -0
- package/patternfly-docs/generated/components/overflow-menu/react.js +274 -0
- package/patternfly-docs/generated/components/page/react-demos.js +149 -0
- package/patternfly-docs/generated/components/page/react.js +1352 -0
- package/patternfly-docs/generated/components/pagination/react.js +492 -0
- package/patternfly-docs/generated/components/panel/react.js +236 -0
- package/patternfly-docs/generated/components/popover/react.js +390 -0
- package/patternfly-docs/generated/components/progress/react-demos.js +59 -0
- package/patternfly-docs/generated/components/progress/react.js +283 -0
- package/patternfly-docs/generated/components/progress-stepper/react-demos.js +45 -0
- package/patternfly-docs/generated/components/progress-stepper/react.js +219 -0
- package/patternfly-docs/generated/components/search-input/react-demos.js +113 -0
- package/patternfly-docs/generated/components/search-input/react.js +263 -0
- package/patternfly-docs/generated/components/sidebar/react.js +236 -0
- package/patternfly-docs/generated/components/simple-list/react.js +200 -0
- package/patternfly-docs/generated/components/skeleton/react-demos.js +44 -0
- package/patternfly-docs/generated/components/skeleton/react.js +122 -0
- package/patternfly-docs/generated/components/skip-to-content/react.js +73 -0
- package/patternfly-docs/generated/components/slider/react.js +309 -0
- package/patternfly-docs/generated/components/spinner/react.js +111 -0
- package/patternfly-docs/generated/components/switch/react.js +163 -0
- package/patternfly-docs/generated/components/table/react-demos.js +355 -0
- package/patternfly-docs/generated/components/table/react-deprecated.js +1350 -0
- package/patternfly-docs/generated/components/table/react.js +3241 -0
- package/patternfly-docs/generated/components/tabs/react-demos.js +108 -0
- package/patternfly-docs/generated/components/tabs/react.js +1359 -0
- package/patternfly-docs/generated/components/text-input-group/react-demos.js +152 -0
- package/patternfly-docs/generated/components/text-input-group/react.js +278 -0
- package/patternfly-docs/generated/components/tile/react-deprecated.js +242 -0
- package/patternfly-docs/generated/components/timestamp/react.js +283 -0
- package/patternfly-docs/generated/components/title/react.js +94 -0
- package/patternfly-docs/generated/components/toggle-group/react.js +299 -0
- package/patternfly-docs/generated/components/toolbar/react-demos.js +66 -0
- package/patternfly-docs/generated/components/toolbar/react.js +932 -0
- package/patternfly-docs/generated/components/tooltip/react.js +241 -0
- package/patternfly-docs/generated/components/tree-view/react.js +429 -0
- package/patternfly-docs/generated/components/truncate/react.js +211 -0
- package/patternfly-docs/generated/components/wizard/react-demos.js +87 -0
- package/patternfly-docs/generated/components/wizard/react-deprecated.js +788 -0
- package/patternfly-docs/generated/components/wizard/react.js +986 -0
- package/patternfly-docs/generated/developer-guides/open-ui-automation/react.js +285 -0
- package/patternfly-docs/generated/foundations-and-styles/layouts/bullseye/react.js +70 -0
- package/patternfly-docs/generated/foundations-and-styles/layouts/flex/react.js +506 -0
- package/patternfly-docs/generated/foundations-and-styles/layouts/gallery/react.js +94 -0
- package/patternfly-docs/generated/foundations-and-styles/layouts/grid/react.js +272 -0
- package/patternfly-docs/generated/foundations-and-styles/layouts/level/react.js +87 -0
- package/patternfly-docs/generated/foundations-and-styles/layouts/split/react.js +124 -0
- package/patternfly-docs/generated/foundations-and-styles/layouts/stack/react.js +112 -0
- package/patternfly-docs/generated/index.js +1769 -0
- package/patternfly-docs/generated/patterns/card-view/react-demos.js +78 -0
- package/patternfly-docs/generated/patterns/filters/react-demos.js +141 -0
- package/patternfly-docs/generated/patterns/password-generator/react-demos.js +51 -0
- package/patternfly-docs/generated/patterns/password-strength/react-demos.js +61 -0
- package/patternfly-docs/generated/patterns/primary-detail/react-demos.js +124 -0
- package/patternfly-docs/generated/patterns/right-to-left/react-demos.js +81 -0
- package/LICENSE +0 -21
|
@@ -0,0 +1,210 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
import { AutoLinkHeader, Example, Link as PatternflyThemeLink } from '@patternfly/documentation-framework/components';
|
|
3
|
+
import { Fragment, useReducer, useState } from 'react';
|
|
4
|
+
const pageData = {
|
|
5
|
+
"id": "Number input",
|
|
6
|
+
"section": "components",
|
|
7
|
+
"subsection": "",
|
|
8
|
+
"deprecated": false,
|
|
9
|
+
"template": false,
|
|
10
|
+
"beta": false,
|
|
11
|
+
"demo": false,
|
|
12
|
+
"newImplementationLink": false,
|
|
13
|
+
"source": "react",
|
|
14
|
+
"tabName": null,
|
|
15
|
+
"slug": "/components/number-input/react",
|
|
16
|
+
"sourceLink": "https://github.com/patternfly/patternfly-react/blob/main/packages/react-core/src/components/NumberInput/examples/NumberInput.md",
|
|
17
|
+
"relPath": "packages/react-core/src/components/NumberInput/examples/NumberInput.md",
|
|
18
|
+
"propComponents": [
|
|
19
|
+
{
|
|
20
|
+
"name": "NumberInput",
|
|
21
|
+
"description": "",
|
|
22
|
+
"props": [
|
|
23
|
+
{
|
|
24
|
+
"name": "className",
|
|
25
|
+
"type": "string",
|
|
26
|
+
"description": "Additional classes added to the number input"
|
|
27
|
+
},
|
|
28
|
+
{
|
|
29
|
+
"name": "inputAriaLabel",
|
|
30
|
+
"type": "string",
|
|
31
|
+
"description": "Aria label of the input",
|
|
32
|
+
"defaultValue": "'Input'"
|
|
33
|
+
},
|
|
34
|
+
{
|
|
35
|
+
"name": "inputName",
|
|
36
|
+
"type": "string",
|
|
37
|
+
"description": "Name of the input"
|
|
38
|
+
},
|
|
39
|
+
{
|
|
40
|
+
"name": "inputProps",
|
|
41
|
+
"type": "any",
|
|
42
|
+
"description": "Additional properties added to the text input"
|
|
43
|
+
},
|
|
44
|
+
{
|
|
45
|
+
"name": "isDisabled",
|
|
46
|
+
"type": "boolean",
|
|
47
|
+
"description": "Indicates the whole number input should be disabled",
|
|
48
|
+
"defaultValue": "false"
|
|
49
|
+
},
|
|
50
|
+
{
|
|
51
|
+
"name": "max",
|
|
52
|
+
"type": "number",
|
|
53
|
+
"description": "Maximum value of the number input, disabling the plus button when reached"
|
|
54
|
+
},
|
|
55
|
+
{
|
|
56
|
+
"name": "min",
|
|
57
|
+
"type": "number",
|
|
58
|
+
"description": "Minimum value of the number input, disabling the minus button when reached"
|
|
59
|
+
},
|
|
60
|
+
{
|
|
61
|
+
"name": "minusBtnAriaLabel",
|
|
62
|
+
"type": "string",
|
|
63
|
+
"description": "Aria label of the minus button",
|
|
64
|
+
"defaultValue": "'Minus'"
|
|
65
|
+
},
|
|
66
|
+
{
|
|
67
|
+
"name": "minusBtnProps",
|
|
68
|
+
"type": "ButtonProps",
|
|
69
|
+
"description": "Additional properties added to the minus button"
|
|
70
|
+
},
|
|
71
|
+
{
|
|
72
|
+
"name": "onBlur",
|
|
73
|
+
"type": "(event?: any) => void",
|
|
74
|
+
"description": "Callback function when text input is blurred (focus leaves)"
|
|
75
|
+
},
|
|
76
|
+
{
|
|
77
|
+
"name": "onChange",
|
|
78
|
+
"type": "(event: React.FormEvent<HTMLInputElement>) => void",
|
|
79
|
+
"description": "Callback for the text input changing"
|
|
80
|
+
},
|
|
81
|
+
{
|
|
82
|
+
"name": "onMinus",
|
|
83
|
+
"type": "(event: React.MouseEvent, name?: string) => void",
|
|
84
|
+
"description": "Callback for the minus button",
|
|
85
|
+
"defaultValue": "() => {}"
|
|
86
|
+
},
|
|
87
|
+
{
|
|
88
|
+
"name": "onPlus",
|
|
89
|
+
"type": "(event: React.MouseEvent, name?: string) => void",
|
|
90
|
+
"description": "Callback for the plus button",
|
|
91
|
+
"defaultValue": "() => {}"
|
|
92
|
+
},
|
|
93
|
+
{
|
|
94
|
+
"name": "plusBtnAriaLabel",
|
|
95
|
+
"type": "string",
|
|
96
|
+
"description": "Aria label of the plus button",
|
|
97
|
+
"defaultValue": "'Plus'"
|
|
98
|
+
},
|
|
99
|
+
{
|
|
100
|
+
"name": "plusBtnProps",
|
|
101
|
+
"type": "ButtonProps",
|
|
102
|
+
"description": "Additional properties added to the plus button"
|
|
103
|
+
},
|
|
104
|
+
{
|
|
105
|
+
"name": "unit",
|
|
106
|
+
"type": "React.ReactNode",
|
|
107
|
+
"description": "Adds the given unit to the number input"
|
|
108
|
+
},
|
|
109
|
+
{
|
|
110
|
+
"name": "unitPosition",
|
|
111
|
+
"type": "'before' | 'after'",
|
|
112
|
+
"description": "Position of the number input unit in relation to the number input",
|
|
113
|
+
"defaultValue": "'after'"
|
|
114
|
+
},
|
|
115
|
+
{
|
|
116
|
+
"name": "validated",
|
|
117
|
+
"type": "'default' | 'error' | 'warning' | 'success' | ValidatedOptions",
|
|
118
|
+
"description": "Value to indicate if the input is modified to show that validation state",
|
|
119
|
+
"defaultValue": "ValidatedOptions.default"
|
|
120
|
+
},
|
|
121
|
+
{
|
|
122
|
+
"name": "value",
|
|
123
|
+
"type": "number | ''",
|
|
124
|
+
"description": "Value of the number input",
|
|
125
|
+
"defaultValue": "0"
|
|
126
|
+
},
|
|
127
|
+
{
|
|
128
|
+
"name": "widthChars",
|
|
129
|
+
"type": "number",
|
|
130
|
+
"description": "Sets the width of the number input to a number of characters"
|
|
131
|
+
}
|
|
132
|
+
]
|
|
133
|
+
}
|
|
134
|
+
],
|
|
135
|
+
"cssPrefix": [
|
|
136
|
+
"pf-v6-c-number-input"
|
|
137
|
+
],
|
|
138
|
+
"examples": [
|
|
139
|
+
"Default",
|
|
140
|
+
"With unit",
|
|
141
|
+
"With unit and thresholds",
|
|
142
|
+
"Disabled",
|
|
143
|
+
"With status",
|
|
144
|
+
"Varying sizes",
|
|
145
|
+
"Custom increment/decrement",
|
|
146
|
+
"Custom increment/decrement and thresholds"
|
|
147
|
+
]
|
|
148
|
+
};
|
|
149
|
+
pageData.liveContext = {
|
|
150
|
+
Fragment,
|
|
151
|
+
useReducer,
|
|
152
|
+
useState
|
|
153
|
+
};
|
|
154
|
+
pageData.examples = {
|
|
155
|
+
'Default': props =>
|
|
156
|
+
<Example {...pageData} {...props} {...{"code":"import { useState } from 'react';\nimport { NumberInput } from '@patternfly/react-core';\n\nexport const NumberInputDefault: React.FunctionComponent = () => {\n const [value, setValue] = useState<number | ''>(90);\n\n const onMinus = () => {\n const newValue = (value || 0) - 1;\n setValue(newValue);\n };\n\n const onChange = (event: React.FormEvent<HTMLInputElement>) => {\n const value = (event.target as HTMLInputElement).value;\n setValue(value === '' ? value : +value);\n };\n\n const onPlus = () => {\n const newValue = (value || 0) + 1;\n setValue(newValue);\n };\n\n return (\n <NumberInput\n value={value}\n onMinus={onMinus}\n onChange={onChange}\n onPlus={onPlus}\n inputName=\"input\"\n inputAriaLabel=\"number input\"\n minusBtnAriaLabel=\"minus\"\n plusBtnAriaLabel=\"plus\"\n />\n );\n};\n","title":"Default","lang":"ts","className":""}}>
|
|
157
|
+
|
|
158
|
+
</Example>,
|
|
159
|
+
'With unit': props =>
|
|
160
|
+
<Example {...pageData} {...props} {...{"code":"import { Fragment, useState } from 'react';\nimport { NumberInput } from '@patternfly/react-core';\n\nexport const NumberInputUnit: React.FunctionComponent = () => {\n const [value1, setValue1] = useState<number | ''>(90);\n const [value2, setValue2] = useState<number | ''>(Number((1.0).toFixed(2)));\n\n const onMinus1 = () => setValue1((value1 || 0) - 1);\n const onChange1 = (event: React.FormEvent<HTMLInputElement>) => {\n const value = (event.target as HTMLInputElement).value;\n setValue1(value === '' ? value : +value);\n };\n const onPlus1 = () => setValue1((value1 || 0) + 1);\n\n const onMinus2 = () => {\n const newValue = Number(((value2 || 0) - 0.01).toFixed(2));\n setValue2(newValue);\n };\n const onChange2 = (event: React.FormEvent<HTMLInputElement>) => {\n const value = (event.target as HTMLInputElement).value;\n setValue2(value === '' ? value : +value);\n };\n const onPlus2 = () => {\n const newValue = Number(((value2 || 0) + 0.01).toFixed(2));\n setValue2(newValue);\n };\n\n return (\n <Fragment>\n <NumberInput\n value={value1}\n onMinus={onMinus1}\n onChange={onChange1}\n onPlus={onPlus1}\n inputName=\"input 1\"\n inputAriaLabel=\"number input 1\"\n minusBtnAriaLabel=\"minus 1\"\n plusBtnAriaLabel=\"plus 1\"\n unit=\"%\"\n />\n <br />\n <br />\n <NumberInput\n value={value2}\n onMinus={onMinus2}\n onChange={onChange2}\n onPlus={onPlus2}\n inputName=\"input 2\"\n inputAriaLabel=\"number input 2\"\n minusBtnAriaLabel=\"minus 0.01\"\n plusBtnAriaLabel=\"plus 0.01\"\n unit=\"$\"\n unitPosition=\"before\"\n />\n </Fragment>\n );\n};\n","title":"With unit","lang":"ts","className":""}}>
|
|
161
|
+
|
|
162
|
+
</Example>,
|
|
163
|
+
'With unit and thresholds': props =>
|
|
164
|
+
<Example {...pageData} {...props} {...{"code":"import { Fragment, useState } from 'react';\nimport { NumberInput } from '@patternfly/react-core';\n\nexport const NumberInputUnitThreshold: React.FunctionComponent = () => {\n const [value, setValue] = useState<number | ''>(0);\n const minValue = 0;\n const maxValue = 10;\n\n const normalizeBetween = (value, min, max) => {\n if (min !== undefined && max !== undefined) {\n return Math.max(Math.min(value, max), min);\n } else if (value <= min) {\n return min;\n } else if (value >= max) {\n return max;\n }\n return value;\n };\n\n const onMinus = () => {\n const newValue = normalizeBetween((value as number) - 1, minValue, maxValue);\n setValue(newValue);\n };\n\n const onChange = (event: React.FormEvent<HTMLInputElement>) => {\n const value = (event.target as HTMLInputElement).value;\n setValue(value === '' ? value : +value);\n };\n\n const onBlur = (event: React.FocusEvent<HTMLInputElement>) => {\n const blurVal = +event.target.value;\n\n if (blurVal < minValue) {\n setValue(minValue);\n } else if (blurVal > maxValue) {\n setValue(maxValue);\n }\n };\n\n const onPlus = () => {\n const newValue = normalizeBetween((value as number) + 1, minValue, maxValue);\n setValue(newValue);\n };\n\n return (\n <Fragment>\n With a minimum value of 0 and maximum value of 10\n <br />\n <NumberInput\n value={value}\n min={minValue}\n max={maxValue}\n onMinus={onMinus}\n onChange={onChange}\n onBlur={onBlur}\n onPlus={onPlus}\n inputName=\"input\"\n inputAriaLabel=\"number input\"\n minusBtnAriaLabel=\"minus\"\n plusBtnAriaLabel=\"plus\"\n unit=\"%\"\n />\n </Fragment>\n );\n};\n","title":"With unit and thresholds","lang":"ts","className":""}}>
|
|
165
|
+
|
|
166
|
+
<p {...{"className":"pf-v6-c-content--p pf-m-editorial ws-p "}}>
|
|
167
|
+
{`To enable a user entered value to snap to the nearest threshold if the entered input is out of bounds, define the blur event handler.`}
|
|
168
|
+
</p>
|
|
169
|
+
</Example>,
|
|
170
|
+
'Disabled': props =>
|
|
171
|
+
<Example {...pageData} {...props} {...{"code":"import { useState } from 'react';\nimport { NumberInput } from '@patternfly/react-core';\n\nexport const NumberInputDisabled: React.FunctionComponent = () => {\n const [value, setValue] = useState<number | ''>(100);\n const minValue = 0;\n const maxValue = 100;\n\n const onMinus = () => {\n const newValue = (value || 0) - 1;\n setValue(newValue);\n };\n\n const onChange = (event: React.FormEvent<HTMLInputElement>) => {\n const value = (event.target as HTMLInputElement).value;\n setValue(value === '' ? value : +value);\n };\n\n const onPlus = () => {\n const newValue = (value || 0) + 1;\n setValue(newValue);\n };\n\n return (\n <NumberInput\n value={value}\n min={minValue}\n max={maxValue}\n onMinus={onMinus}\n onChange={onChange}\n onPlus={onPlus}\n inputName=\"input\"\n inputAriaLabel=\"number input\"\n minusBtnAriaLabel=\"minus\"\n plusBtnAriaLabel=\"plus\"\n unit=\"%\"\n isDisabled\n />\n );\n};\n","title":"Disabled","lang":"ts","className":""}}>
|
|
172
|
+
|
|
173
|
+
</Example>,
|
|
174
|
+
'With status': props =>
|
|
175
|
+
<Example {...pageData} {...props} {...{"code":"import { useReducer, useState } from 'react';\nimport { NumberInput, ValidatedOptions } from '@patternfly/react-core';\n\nexport const NumberInputWithStatus: React.FunctionComponent = () => {\n const max = 10;\n const min = 0;\n\n const [validated, setValidated] = useState<ValidatedOptions>(ValidatedOptions.success);\n const [value, setValue] = useReducer((state, newVal) => Math.max(min, Math.min(max, Number(newVal))), 5);\n\n const onPlus = () => {\n const newVal = (value || 0) + 1;\n setValue(newVal);\n validate(newVal);\n };\n\n const onMinus = () => {\n const newVal = (value || 0) - 1;\n setValue(newVal);\n validate(newVal);\n };\n\n const onChange = (event: React.FormEvent<HTMLInputElement>) => {\n const value = (event.target as HTMLInputElement).value;\n setValue(value === '' ? value : +value);\n validate(value);\n };\n\n const validate = (newVal) => {\n const diff = Math.abs(5 - newVal);\n if (diff > 3) {\n setValidated(ValidatedOptions.error);\n } else if (diff > 1) {\n setValidated(ValidatedOptions.warning);\n } else {\n setValidated(ValidatedOptions.success);\n }\n };\n return (\n <>\n In the following example, the validated status will update based on the value of the number input and how far from\n the number 5 it is.\n <br />\n <NumberInput\n validated={validated}\n value={value}\n min={0}\n max={10}\n onMinus={onMinus}\n onPlus={onPlus}\n onChange={onChange}\n inputName=\"input\"\n inputAriaLabel=\"number input\"\n minusBtnAriaLabel=\"minus\"\n plusBtnAriaLabel=\"plus\"\n />\n </>\n );\n};\n","title":"With status","lang":"ts","className":""}}>
|
|
176
|
+
|
|
177
|
+
</Example>,
|
|
178
|
+
'Varying sizes': props =>
|
|
179
|
+
<Example {...pageData} {...props} {...{"code":"import { Fragment, useState } from 'react';\nimport { NumberInput } from '@patternfly/react-core';\n\nexport const NumberInputVaryingSizes: React.FunctionComponent = () => {\n const [input1Value, setInput1Value] = useState<number | ''>(1);\n const [input2Value, setInput2Value] = useState<number | ''>(1234567890);\n const [input3Value, setInput3Value] = useState<number | ''>(5);\n const [input4Value, setInput4Value] = useState<number | ''>(12345);\n\n const onChange = (\n event: React.FormEvent<HTMLInputElement>,\n updateFunction: React.Dispatch<React.SetStateAction<number | ''>>\n ) => {\n const value = (event.target as HTMLInputElement).value;\n updateFunction(value === '' ? value : +value);\n };\n\n const onMinus = (value: number | '', updateFunction: React.Dispatch<React.SetStateAction<number | ''>>) => {\n updateFunction((value || 0) - 1);\n };\n\n const onPlus = (value: number | '', updateFunction: React.Dispatch<React.SetStateAction<number | ''>>) => {\n updateFunction((value || 0) + 1);\n };\n\n return (\n <Fragment>\n <NumberInput\n value={input1Value}\n onMinus={() => onMinus(input1Value, setInput1Value)}\n onChange={(event) => onChange(event, setInput1Value)}\n onPlus={() => onPlus(input1Value, setInput1Value)}\n inputName=\"input1\"\n inputAriaLabel=\"number input 1\"\n minusBtnAriaLabel=\"input 2 minus\"\n plusBtnAriaLabel=\"input 2 plus\"\n widthChars={1}\n />\n <br />\n <br />\n <NumberInput\n value={input2Value}\n onMinus={() => onMinus(input2Value, setInput2Value)}\n onChange={(event) => onChange(event, setInput2Value)}\n onPlus={() => onPlus(input2Value, setInput2Value)}\n inputName=\"input2\"\n inputAriaLabel=\"number input 2\"\n minusBtnAriaLabel=\"input 2 minus\"\n plusBtnAriaLabel=\"input 2 plus\"\n widthChars={10}\n />\n <br />\n <br />\n <NumberInput\n value={input3Value}\n onMinus={() => onMinus(input3Value, setInput3Value)}\n onChange={(event) => onChange(event, setInput3Value)}\n onPlus={() => onPlus(input3Value, setInput3Value)}\n inputName=\"input3\"\n inputAriaLabel=\"number input 3\"\n minusBtnAriaLabel=\"input 3 minus\"\n plusBtnAriaLabel=\"input 3 plus\"\n widthChars={5}\n />\n <br />\n <br />\n <NumberInput\n value={input4Value}\n onMinus={() => onMinus(input4Value, setInput4Value)}\n onChange={(event) => onChange(event, setInput4Value)}\n onPlus={() => onPlus(input4Value, setInput4Value)}\n inputName=\"input4\"\n inputAriaLabel=\"number input 4\"\n minusBtnAriaLabel=\"input 4 minus\"\n plusBtnAriaLabel=\"input 4 plus\"\n widthChars={5}\n />\n </Fragment>\n );\n};\n","title":"Varying sizes","lang":"ts","className":""}}>
|
|
180
|
+
|
|
181
|
+
</Example>,
|
|
182
|
+
'Custom increment/decrement': props =>
|
|
183
|
+
<Example {...pageData} {...props} {...{"code":"import { useState } from 'react';\nimport { NumberInput } from '@patternfly/react-core';\n\nexport const NumberInputCustomStep: React.FunctionComponent = () => {\n const [value, setValue] = useState<number | ''>(90);\n const step = 3;\n\n const stepper = (stepValue: number) => {\n setValue((value || 0) + stepValue);\n };\n\n const onChange = (event: React.FormEvent<HTMLInputElement>) => {\n const value = (event.target as HTMLInputElement).value;\n setValue(value === '' ? value : +value);\n };\n\n return (\n <NumberInput\n value={value}\n onMinus={() => stepper(-step)}\n onChange={onChange}\n onPlus={() => stepper(step)}\n inputName=\"input\"\n inputAriaLabel=\"number input\"\n minusBtnAriaLabel=\"minus\"\n plusBtnAriaLabel=\"plus\"\n />\n );\n};\n","title":"Custom increment/decrement","lang":"ts","className":""}}>
|
|
184
|
+
|
|
185
|
+
</Example>,
|
|
186
|
+
'Custom increment/decrement and thresholds': props =>
|
|
187
|
+
<Example {...pageData} {...props} {...{"code":"import { useState } from 'react';\nimport { NumberInput } from '@patternfly/react-core';\n\nexport const NumberInputCustomStepAndThreshold: React.FunctionComponent = () => {\n const [value, setValue] = useState<number | ''>(90);\n const minValue = 90;\n const maxValue = 100;\n const step = 3;\n\n const normalizeBetween = (value, min, max) => {\n if (min !== undefined && max !== undefined) {\n return Math.max(Math.min(value, max), min);\n } else if (value <= min) {\n return min;\n } else if (value >= max) {\n return max;\n }\n return value;\n };\n\n const stepper = (stepValue: number) => {\n setValue((value || 0) + stepValue);\n };\n\n const onChange = (event: React.FormEvent<HTMLInputElement>) => {\n const value = (event.target as HTMLInputElement).value;\n setValue(value === '' ? value : +value);\n };\n\n const onBlur = (event: React.FormEvent<HTMLInputElement>) => {\n const target = event.target as HTMLInputElement;\n const newValue = normalizeBetween(isNaN(+target.value) ? 0 : Number(target.value), minValue, maxValue);\n setValue(newValue);\n };\n\n return (\n <NumberInput\n value={value}\n min={minValue}\n max={maxValue}\n onMinus={() => stepper(-step)}\n onChange={onChange}\n onBlur={onBlur}\n onPlus={() => stepper(step)}\n inputName=\"input\"\n inputAriaLabel=\"number input\"\n minusBtnAriaLabel=\"minus\"\n plusBtnAriaLabel=\"plus\"\n />\n );\n};\n","title":"Custom increment/decrement and thresholds","lang":"ts","className":""}}>
|
|
188
|
+
|
|
189
|
+
</Example>
|
|
190
|
+
};
|
|
191
|
+
|
|
192
|
+
const Component = () => (
|
|
193
|
+
<React.Fragment>
|
|
194
|
+
<AutoLinkHeader {...{"id":"examples","headingLevel":"h2","className":"ws-title ws-h2"}}>
|
|
195
|
+
{`Examples`}
|
|
196
|
+
</AutoLinkHeader>
|
|
197
|
+
{React.createElement(pageData.examples["Default"])}
|
|
198
|
+
{React.createElement(pageData.examples["With unit"])}
|
|
199
|
+
{React.createElement(pageData.examples["With unit and thresholds"])}
|
|
200
|
+
{React.createElement(pageData.examples["Disabled"])}
|
|
201
|
+
{React.createElement(pageData.examples["With status"])}
|
|
202
|
+
{React.createElement(pageData.examples["Varying sizes"])}
|
|
203
|
+
{React.createElement(pageData.examples["Custom increment/decrement"])}
|
|
204
|
+
{React.createElement(pageData.examples["Custom increment/decrement and thresholds"])}
|
|
205
|
+
</React.Fragment>
|
|
206
|
+
);
|
|
207
|
+
Component.displayName = 'ComponentsNumberInputReactDocs';
|
|
208
|
+
Component.pageData = pageData;
|
|
209
|
+
|
|
210
|
+
export default Component;
|
|
@@ -0,0 +1,274 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
import { AutoLinkHeader, Example, Link as PatternflyThemeLink } from '@patternfly/documentation-framework/components';
|
|
3
|
+
import { useRef, useState } from 'react';
|
|
4
|
+
import AlignLeftIcon from '@patternfly/react-icons/dist/esm/icons/align-left-icon';
|
|
5
|
+
import AlignCenterIcon from '@patternfly/react-icons/dist/esm/icons/align-center-icon';
|
|
6
|
+
import AlignRightIcon from '@patternfly/react-icons/dist/esm/icons/align-right-icon';
|
|
7
|
+
import RhUiEllipsisVerticalFillIcon from '@patternfly/react-icons/dist/esm/icons/rh-ui-ellipsis-vertical-fill-icon';
|
|
8
|
+
const pageData = {
|
|
9
|
+
"id": "Overflow menu",
|
|
10
|
+
"section": "components",
|
|
11
|
+
"subsection": "",
|
|
12
|
+
"deprecated": false,
|
|
13
|
+
"template": false,
|
|
14
|
+
"beta": false,
|
|
15
|
+
"demo": false,
|
|
16
|
+
"newImplementationLink": false,
|
|
17
|
+
"source": "react",
|
|
18
|
+
"tabName": null,
|
|
19
|
+
"slug": "/components/overflow-menu/react",
|
|
20
|
+
"sourceLink": "https://github.com/patternfly/patternfly-react/blob/main/packages/react-core/src/components/OverflowMenu/examples/OverflowMenu.md",
|
|
21
|
+
"relPath": "packages/react-core/src/components/OverflowMenu/examples/OverflowMenu.md",
|
|
22
|
+
"propComponents": [
|
|
23
|
+
{
|
|
24
|
+
"name": "OverflowMenu",
|
|
25
|
+
"description": "",
|
|
26
|
+
"props": [
|
|
27
|
+
{
|
|
28
|
+
"name": "breakpoint",
|
|
29
|
+
"type": "'sm' | 'md' | 'lg' | 'xl' | '2xl'",
|
|
30
|
+
"description": "Indicates breakpoint at which to switch between expanded and collapsed states. The \"sm\" breakpoint does not apply to vertical overflow menus.",
|
|
31
|
+
"required": true
|
|
32
|
+
},
|
|
33
|
+
{
|
|
34
|
+
"name": "breakpointReference",
|
|
35
|
+
"type": "HTMLElement | (() => HTMLElement) | React.RefObject<any>",
|
|
36
|
+
"description": "A container reference to base the specified breakpoint on instead of the viewport width."
|
|
37
|
+
},
|
|
38
|
+
{
|
|
39
|
+
"name": "children",
|
|
40
|
+
"type": "any",
|
|
41
|
+
"description": "Any elements that can be rendered in the menu"
|
|
42
|
+
},
|
|
43
|
+
{
|
|
44
|
+
"name": "className",
|
|
45
|
+
"type": "string",
|
|
46
|
+
"description": "Additional classes added to the OverflowMenu."
|
|
47
|
+
},
|
|
48
|
+
{
|
|
49
|
+
"name": "isVertical",
|
|
50
|
+
"type": "boolean",
|
|
51
|
+
"description": "Indicates the overflow menu orientation is vertical and should respond to height changes instead of width.",
|
|
52
|
+
"defaultValue": "false"
|
|
53
|
+
}
|
|
54
|
+
]
|
|
55
|
+
},
|
|
56
|
+
{
|
|
57
|
+
"name": "OverflowMenuContent",
|
|
58
|
+
"description": "",
|
|
59
|
+
"props": [
|
|
60
|
+
{
|
|
61
|
+
"name": "children",
|
|
62
|
+
"type": "any",
|
|
63
|
+
"description": "Any elements that can be rendered in the menu"
|
|
64
|
+
},
|
|
65
|
+
{
|
|
66
|
+
"name": "className",
|
|
67
|
+
"type": "string",
|
|
68
|
+
"description": "Additional classes added to the OverflowMenuContent"
|
|
69
|
+
},
|
|
70
|
+
{
|
|
71
|
+
"name": "isPersistent",
|
|
72
|
+
"type": "boolean",
|
|
73
|
+
"description": "Modifies the overflow menu content visibility"
|
|
74
|
+
}
|
|
75
|
+
]
|
|
76
|
+
},
|
|
77
|
+
{
|
|
78
|
+
"name": "OverflowMenuControl",
|
|
79
|
+
"description": "",
|
|
80
|
+
"props": [
|
|
81
|
+
{
|
|
82
|
+
"name": "children",
|
|
83
|
+
"type": "any",
|
|
84
|
+
"description": "Any elements that can be rendered in the menu"
|
|
85
|
+
},
|
|
86
|
+
{
|
|
87
|
+
"name": "className",
|
|
88
|
+
"type": "string",
|
|
89
|
+
"description": "Additional classes added to the OverflowMenuControl"
|
|
90
|
+
},
|
|
91
|
+
{
|
|
92
|
+
"name": "hasAdditionalOptions",
|
|
93
|
+
"type": "boolean",
|
|
94
|
+
"description": "Triggers the overflow dropdown to persist at all viewport sizes"
|
|
95
|
+
}
|
|
96
|
+
]
|
|
97
|
+
},
|
|
98
|
+
{
|
|
99
|
+
"name": "OverflowMenuDropdownItem",
|
|
100
|
+
"description": "",
|
|
101
|
+
"props": [
|
|
102
|
+
{
|
|
103
|
+
"name": "isShared",
|
|
104
|
+
"type": "boolean",
|
|
105
|
+
"description": "Indicates when a dropdown item shows and hides the corresponding list item",
|
|
106
|
+
"defaultValue": "false"
|
|
107
|
+
},
|
|
108
|
+
{
|
|
109
|
+
"name": "itemId",
|
|
110
|
+
"type": "string | number",
|
|
111
|
+
"description": "Identifies the component in the dropdown onSelect callback"
|
|
112
|
+
}
|
|
113
|
+
]
|
|
114
|
+
},
|
|
115
|
+
{
|
|
116
|
+
"name": "OverflowMenuGroup",
|
|
117
|
+
"description": "",
|
|
118
|
+
"props": [
|
|
119
|
+
{
|
|
120
|
+
"name": "children",
|
|
121
|
+
"type": "any",
|
|
122
|
+
"description": "Any elements that can be rendered in the menu"
|
|
123
|
+
},
|
|
124
|
+
{
|
|
125
|
+
"name": "className",
|
|
126
|
+
"type": "string",
|
|
127
|
+
"description": "Additional classes added to the OverflowMenuGroup"
|
|
128
|
+
},
|
|
129
|
+
{
|
|
130
|
+
"name": "groupType",
|
|
131
|
+
"type": "'button' | 'icon'",
|
|
132
|
+
"description": "Indicates a button or icon group"
|
|
133
|
+
},
|
|
134
|
+
{
|
|
135
|
+
"name": "isPersistent",
|
|
136
|
+
"type": "boolean",
|
|
137
|
+
"description": "Modifies the overflow menu group visibility",
|
|
138
|
+
"defaultValue": "false"
|
|
139
|
+
}
|
|
140
|
+
]
|
|
141
|
+
},
|
|
142
|
+
{
|
|
143
|
+
"name": "OverflowMenuItem",
|
|
144
|
+
"description": "",
|
|
145
|
+
"props": [
|
|
146
|
+
{
|
|
147
|
+
"name": "children",
|
|
148
|
+
"type": "any",
|
|
149
|
+
"description": "Any elements that can be rendered in the menu"
|
|
150
|
+
},
|
|
151
|
+
{
|
|
152
|
+
"name": "className",
|
|
153
|
+
"type": "string",
|
|
154
|
+
"description": "Additional classes added to the OverflowMenuItem"
|
|
155
|
+
},
|
|
156
|
+
{
|
|
157
|
+
"name": "isPersistent",
|
|
158
|
+
"type": "boolean",
|
|
159
|
+
"description": "Modifies the overflow menu item visibility",
|
|
160
|
+
"defaultValue": "false"
|
|
161
|
+
}
|
|
162
|
+
]
|
|
163
|
+
}
|
|
164
|
+
],
|
|
165
|
+
"cssPrefix": [
|
|
166
|
+
"pf-v6-c-overflow-menu"
|
|
167
|
+
],
|
|
168
|
+
"examples": [
|
|
169
|
+
"Simple (responsive)",
|
|
170
|
+
"Vertical",
|
|
171
|
+
"Group types",
|
|
172
|
+
"Multiple groups",
|
|
173
|
+
"Persistent",
|
|
174
|
+
"Breakpoint on container width"
|
|
175
|
+
],
|
|
176
|
+
"fullscreenExamples": [
|
|
177
|
+
"Breakpoint on container height"
|
|
178
|
+
]
|
|
179
|
+
};
|
|
180
|
+
pageData.liveContext = {
|
|
181
|
+
useRef,
|
|
182
|
+
useState,
|
|
183
|
+
AlignLeftIcon,
|
|
184
|
+
AlignCenterIcon,
|
|
185
|
+
AlignRightIcon,
|
|
186
|
+
RhUiEllipsisVerticalFillIcon
|
|
187
|
+
};
|
|
188
|
+
pageData.examples = {
|
|
189
|
+
'Simple (responsive)': props =>
|
|
190
|
+
<Example {...pageData} {...props} {...{"code":"import { useState } from 'react';\nimport {\n OverflowMenu,\n OverflowMenuControl,\n OverflowMenuContent,\n OverflowMenuGroup,\n OverflowMenuItem,\n OverflowMenuDropdownItem,\n MenuToggle,\n Dropdown,\n DropdownList\n} from '@patternfly/react-core';\nimport RhUiEllipsisVerticalFillIcon from '@patternfly/react-icons/dist/esm/icons/rh-ui-ellipsis-vertical-fill-icon';\n\nexport const OverflowMenuBreakpointOnContainer: React.FunctionComponent = () => {\n const [isOpen, setIsOpen] = useState(false);\n\n const onToggle = () => {\n setIsOpen(!isOpen);\n };\n\n const onSelect = () => {\n setIsOpen(!isOpen);\n };\n\n const dropdownItems = [\n <OverflowMenuDropdownItem itemId={0} key=\"item1\" isShared>\n Item 1\n </OverflowMenuDropdownItem>,\n <OverflowMenuDropdownItem itemId={1} key=\"item2\" isShared>\n Item 2\n </OverflowMenuDropdownItem>,\n <OverflowMenuDropdownItem itemId={2} key=\"item3\" isShared>\n Item 3\n </OverflowMenuDropdownItem>,\n <OverflowMenuDropdownItem itemId={3} key=\"item4\" isShared>\n Item 4\n </OverflowMenuDropdownItem>,\n <OverflowMenuDropdownItem itemId={5} key=\"item5\" isShared>\n Item 5\n </OverflowMenuDropdownItem>\n ];\n\n return (\n <OverflowMenu breakpoint=\"lg\">\n <OverflowMenuContent>\n <OverflowMenuItem>Item</OverflowMenuItem>\n <OverflowMenuItem>Item</OverflowMenuItem>\n <OverflowMenuGroup>\n <OverflowMenuItem>Item</OverflowMenuItem>\n <OverflowMenuItem>Item</OverflowMenuItem>\n <OverflowMenuItem>Item</OverflowMenuItem>\n </OverflowMenuGroup>\n </OverflowMenuContent>\n <OverflowMenuControl>\n <Dropdown\n onSelect={onSelect}\n toggle={(toggleRef) => (\n <MenuToggle\n ref={toggleRef}\n aria-label=\"Simple example overflow menu\"\n variant=\"plain\"\n onClick={onToggle}\n isExpanded={isOpen}\n icon={<RhUiEllipsisVerticalFillIcon />}\n />\n )}\n isOpen={isOpen}\n onOpenChange={(isOpen) => setIsOpen(isOpen)}\n >\n <DropdownList>{dropdownItems}</DropdownList>\n </Dropdown>\n </OverflowMenuControl>\n </OverflowMenu>\n );\n};\n","title":"Simple (responsive)","lang":"ts","className":""}}>
|
|
191
|
+
|
|
192
|
+
</Example>,
|
|
193
|
+
'Vertical': props =>
|
|
194
|
+
<Example {...pageData} {...props} {...{"code":"import { useState } from 'react';\nimport {\n OverflowMenu,\n OverflowMenuControl,\n OverflowMenuContent,\n OverflowMenuGroup,\n OverflowMenuItem,\n OverflowMenuDropdownItem,\n MenuToggle,\n Dropdown,\n DropdownList\n} from '@patternfly/react-core';\nimport RhUiEllipsisVerticalFillIcon from '@patternfly/react-icons/dist/esm/icons/rh-ui-ellipsis-vertical-fill-icon';\n\nexport const OverflowMenuSimpleVertical: React.FunctionComponent = () => {\n const [isOpen, setIsOpen] = useState(false);\n\n const onToggle = () => {\n setIsOpen(!isOpen);\n };\n\n const onSelect = () => {\n setIsOpen(!isOpen);\n };\n\n const dropdownItems = [\n <OverflowMenuDropdownItem itemId={0} key=\"item1\" isShared>\n Item 1\n </OverflowMenuDropdownItem>,\n <OverflowMenuDropdownItem itemId={1} key=\"item2\" isShared>\n Item 2\n </OverflowMenuDropdownItem>,\n <OverflowMenuDropdownItem itemId={2} key=\"item3\" isShared>\n Item 3\n </OverflowMenuDropdownItem>,\n <OverflowMenuDropdownItem itemId={3} key=\"item4\" isShared>\n Item 4\n </OverflowMenuDropdownItem>,\n <OverflowMenuDropdownItem itemId={4} key=\"item5\" isShared>\n Item 5\n </OverflowMenuDropdownItem>\n ];\n\n return (\n <OverflowMenu breakpoint=\"md\" isVertical>\n <OverflowMenuContent>\n <OverflowMenuItem>Item</OverflowMenuItem>\n <OverflowMenuItem>Item</OverflowMenuItem>\n <OverflowMenuGroup>\n <OverflowMenuItem>Item</OverflowMenuItem>\n <OverflowMenuItem>Item</OverflowMenuItem>\n <OverflowMenuItem>Item</OverflowMenuItem>\n </OverflowMenuGroup>\n </OverflowMenuContent>\n <OverflowMenuControl>\n <Dropdown\n onSelect={onSelect}\n toggle={(toggleRef) => (\n <MenuToggle\n ref={toggleRef}\n aria-label=\"Simple example overflow menu\"\n variant=\"plain\"\n onClick={onToggle}\n isExpanded={isOpen}\n icon={<RhUiEllipsisVerticalFillIcon />}\n />\n )}\n isOpen={isOpen}\n onOpenChange={(isOpen) => setIsOpen(isOpen)}\n >\n <DropdownList>{dropdownItems}</DropdownList>\n </Dropdown>\n </OverflowMenuControl>\n </OverflowMenu>\n );\n};\n","title":"Vertical","lang":"ts","className":""}}>
|
|
195
|
+
|
|
196
|
+
<p {...{"className":"pf-v6-c-content--p pf-m-editorial ws-p "}}>
|
|
197
|
+
{`Passing `}
|
|
198
|
+
|
|
199
|
+
<code {...{"className":"ws-code "}}>
|
|
200
|
+
{`isVertical`}
|
|
201
|
+
</code>
|
|
202
|
+
{` to `}
|
|
203
|
+
|
|
204
|
+
<code {...{"className":"ws-code "}}>
|
|
205
|
+
{`OverflowMenu`}
|
|
206
|
+
</code>
|
|
207
|
+
{` will change its behavior to respond to breakpoints based on window height instead of width.`}
|
|
208
|
+
</p>
|
|
209
|
+
</Example>,
|
|
210
|
+
'Group types': props =>
|
|
211
|
+
<Example {...pageData} {...props} {...{"code":"import { useState } from 'react';\nimport {\n OverflowMenu,\n OverflowMenuControl,\n OverflowMenuContent,\n OverflowMenuGroup,\n OverflowMenuItem,\n OverflowMenuDropdownItem,\n MenuToggle,\n Button,\n ButtonVariant,\n Dropdown,\n DropdownList\n} from '@patternfly/react-core';\nimport RhUiEllipsisVerticalFillIcon from '@patternfly/react-icons/dist/esm/icons/rh-ui-ellipsis-vertical-fill-icon';\nimport AlignLeftIcon from '@patternfly/react-icons/dist/esm/icons/align-left-icon';\nimport AlignCenterIcon from '@patternfly/react-icons/dist/esm/icons/align-center-icon';\nimport AlignRightIcon from '@patternfly/react-icons/dist/esm/icons/align-right-icon';\n\nexport const OverflowMenuGroupTypes: React.FunctionComponent = () => {\n const [isOpen, setIsOpen] = useState(false);\n\n const onToggle = () => {\n setIsOpen(!isOpen);\n };\n\n const onSelect = () => {\n setIsOpen(!isOpen);\n };\n\n const dropdownItems = [\n <OverflowMenuDropdownItem itemId={0} key=\"item1\" isShared>\n Item 1\n </OverflowMenuDropdownItem>,\n <OverflowMenuDropdownItem itemId={1} key=\"item2\" isShared>\n Item 2\n </OverflowMenuDropdownItem>,\n <OverflowMenuDropdownItem itemId={2} key=\"item3\" isShared>\n Item 3\n </OverflowMenuDropdownItem>,\n <OverflowMenuDropdownItem itemId={3} key=\"primary\" isShared>\n Primary\n </OverflowMenuDropdownItem>,\n <OverflowMenuDropdownItem itemId={4} key=\"secondary\" isShared>\n Secondary\n </OverflowMenuDropdownItem>,\n <OverflowMenuDropdownItem itemId={5} key=\"tertiary\" isShared>\n Tertiary\n </OverflowMenuDropdownItem>,\n <OverflowMenuDropdownItem itemId={6} key=\"action1\" isShared>\n Action 1\n </OverflowMenuDropdownItem>,\n <OverflowMenuDropdownItem itemId={7} key=\"action2\" isShared>\n Action 2\n </OverflowMenuDropdownItem>,\n <OverflowMenuDropdownItem itemId={8} key=\"action3\" isShared>\n Action 3\n </OverflowMenuDropdownItem>\n ];\n\n return (\n <OverflowMenu breakpoint=\"lg\">\n <OverflowMenuContent>\n <OverflowMenuGroup>\n <OverflowMenuItem>Item</OverflowMenuItem>\n <OverflowMenuItem>Item</OverflowMenuItem>\n <OverflowMenuItem>Item</OverflowMenuItem>\n </OverflowMenuGroup>\n <OverflowMenuGroup groupType=\"button\">\n <OverflowMenuItem>\n <Button variant={ButtonVariant.primary}>Primary</Button>\n </OverflowMenuItem>\n <OverflowMenuItem>\n <Button variant={ButtonVariant.secondary}>Secondary</Button>\n </OverflowMenuItem>\n <OverflowMenuItem>\n <Button variant={ButtonVariant.tertiary}>Tertiary</Button>\n </OverflowMenuItem>\n </OverflowMenuGroup>\n <OverflowMenuGroup groupType=\"icon\">\n <OverflowMenuItem>\n <Button variant={ButtonVariant.plain} aria-label=\"Align left\" icon={<AlignLeftIcon />} />\n </OverflowMenuItem>\n <OverflowMenuItem>\n <Button variant={ButtonVariant.plain} aria-label=\"Align center\" icon={<AlignCenterIcon />} />\n </OverflowMenuItem>\n <OverflowMenuItem>\n <Button variant={ButtonVariant.plain} aria-label=\"Align right\" icon={<AlignRightIcon />} />\n </OverflowMenuItem>\n </OverflowMenuGroup>\n </OverflowMenuContent>\n <OverflowMenuControl>\n <Dropdown\n onSelect={onSelect}\n toggle={(toggleRef) => (\n <MenuToggle\n ref={toggleRef}\n aria-label=\"Group example overflow menu\"\n variant=\"plain\"\n onClick={onToggle}\n isExpanded={isOpen}\n icon={<RhUiEllipsisVerticalFillIcon />}\n />\n )}\n isOpen={isOpen}\n onOpenChange={(isOpen) => setIsOpen(isOpen)}\n >\n <DropdownList>{dropdownItems}</DropdownList>\n </Dropdown>\n </OverflowMenuControl>\n </OverflowMenu>\n );\n};\n","title":"Group types","lang":"ts","className":""}}>
|
|
212
|
+
|
|
213
|
+
</Example>,
|
|
214
|
+
'Multiple groups': props =>
|
|
215
|
+
<Example {...pageData} {...props} {...{"code":"import { useState } from 'react';\nimport {\n OverflowMenu,\n OverflowMenuControl,\n OverflowMenuContent,\n OverflowMenuGroup,\n OverflowMenuItem,\n OverflowMenuDropdownItem,\n MenuToggle,\n Button,\n ButtonVariant,\n Dropdown,\n DropdownList\n} from '@patternfly/react-core';\nimport RhUiEllipsisVerticalFillIcon from '@patternfly/react-icons/dist/esm/icons/rh-ui-ellipsis-vertical-fill-icon';\nimport AlignLeftIcon from '@patternfly/react-icons/dist/esm/icons/align-left-icon';\nimport AlignCenterIcon from '@patternfly/react-icons/dist/esm/icons/align-center-icon';\nimport AlignRightIcon from '@patternfly/react-icons/dist/esm/icons/align-right-icon';\n\nexport const OverflowMenuMultiGroup: React.FunctionComponent = () => {\n const [isOpen, setIsOpen] = useState(false);\n\n const onToggle = () => {\n setIsOpen(!isOpen);\n };\n\n const onSelect = () => {\n setIsOpen(!isOpen);\n };\n\n const dropdownItems = [\n <OverflowMenuDropdownItem itemId={0} key=\"1\" isShared>\n Primary\n </OverflowMenuDropdownItem>,\n <OverflowMenuDropdownItem itemId={1} key=\"2\" isShared>\n Secondary\n </OverflowMenuDropdownItem>,\n <OverflowMenuDropdownItem itemId={2} key=\"3\" isShared>\n Tertiary\n </OverflowMenuDropdownItem>,\n <OverflowMenuDropdownItem itemId={3} key=\"4\" isShared>\n Action 4\n </OverflowMenuDropdownItem>,\n <OverflowMenuDropdownItem itemId={4} key=\"5\" isShared>\n Action 5\n </OverflowMenuDropdownItem>,\n <OverflowMenuDropdownItem itemId={5} key=\"6\" isShared>\n Action 6\n </OverflowMenuDropdownItem>,\n <OverflowMenuDropdownItem itemId={6} key=\"7\">\n Action 7\n </OverflowMenuDropdownItem>\n ];\n\n return (\n <OverflowMenu breakpoint=\"lg\">\n <OverflowMenuContent>\n <OverflowMenuGroup groupType=\"button\">\n <OverflowMenuItem>\n <Button variant={ButtonVariant.primary}>Primary</Button>\n </OverflowMenuItem>\n <OverflowMenuItem>\n <Button variant={ButtonVariant.secondary}>Secondary</Button>\n </OverflowMenuItem>\n <OverflowMenuItem>\n <Button variant={ButtonVariant.tertiary}>Tertiary</Button>\n </OverflowMenuItem>\n </OverflowMenuGroup>\n <OverflowMenuGroup groupType=\"icon\">\n <OverflowMenuItem>\n <Button variant={ButtonVariant.plain} aria-label=\"Align left\" icon={<AlignLeftIcon />} />\n </OverflowMenuItem>\n <OverflowMenuItem>\n <Button variant={ButtonVariant.plain} aria-label=\"Align center\" icon={<AlignCenterIcon />} />\n </OverflowMenuItem>\n <OverflowMenuItem>\n <Button variant={ButtonVariant.plain} aria-label=\"Align right\" icon={<AlignRightIcon />} />\n </OverflowMenuItem>\n </OverflowMenuGroup>\n </OverflowMenuContent>\n <OverflowMenuControl hasAdditionalOptions>\n <Dropdown\n onSelect={onSelect}\n toggle={(toggleRef) => (\n <MenuToggle\n ref={toggleRef}\n aria-label=\"Multiple group example overflow menu\"\n variant=\"plain\"\n onClick={onToggle}\n isExpanded={isOpen}\n icon={<RhUiEllipsisVerticalFillIcon />}\n />\n )}\n isOpen={isOpen}\n onOpenChange={(isOpen) => setIsOpen(isOpen)}\n >\n <DropdownList>{dropdownItems}</DropdownList>\n </Dropdown>\n </OverflowMenuControl>\n </OverflowMenu>\n );\n};\n","title":"Multiple groups","lang":"ts","className":""}}>
|
|
216
|
+
|
|
217
|
+
</Example>,
|
|
218
|
+
'Persistent': props =>
|
|
219
|
+
<Example {...pageData} {...props} {...{"code":"import { useState } from 'react';\nimport {\n OverflowMenu,\n OverflowMenuControl,\n OverflowMenuContent,\n OverflowMenuGroup,\n OverflowMenuItem,\n OverflowMenuDropdownItem,\n MenuToggle,\n Button,\n ButtonVariant,\n Dropdown,\n DropdownList\n} from '@patternfly/react-core';\nimport RhUiEllipsisVerticalFillIcon from '@patternfly/react-icons/dist/esm/icons/rh-ui-ellipsis-vertical-fill-icon';\n\nexport const OverflowMenuPersistent: React.FunctionComponent = () => {\n const [isOpen, setIsOpen] = useState(false);\n\n const onToggle = () => {\n setIsOpen(!isOpen);\n };\n\n const onSelect = () => {\n setIsOpen(!isOpen);\n };\n\n const dropdownItems = [\n <OverflowMenuDropdownItem itemId={0} key=\"secondary\" isShared>\n Secondary\n </OverflowMenuDropdownItem>,\n <OverflowMenuDropdownItem itemId={1} key=\"tertiary\" isShared>\n Tertiary\n </OverflowMenuDropdownItem>,\n <OverflowMenuDropdownItem itemId={2} key=\"action\">\n Action 4\n </OverflowMenuDropdownItem>\n ];\n\n return (\n <OverflowMenu breakpoint=\"lg\">\n <OverflowMenuContent isPersistent>\n <OverflowMenuGroup groupType=\"button\" isPersistent>\n <OverflowMenuItem isPersistent>\n <Button variant={ButtonVariant.primary}>Primary</Button>\n </OverflowMenuItem>\n <OverflowMenuItem>\n <Button variant={ButtonVariant.secondary}>Secondary</Button>\n </OverflowMenuItem>\n <OverflowMenuItem>\n <Button variant={ButtonVariant.tertiary}>Tertiary</Button>\n </OverflowMenuItem>\n </OverflowMenuGroup>\n </OverflowMenuContent>\n <OverflowMenuControl hasAdditionalOptions>\n <Dropdown\n onSelect={onSelect}\n toggle={(toggleRef) => (\n <MenuToggle\n ref={toggleRef}\n aria-label=\"Persistent example overflow menu\"\n variant=\"plain\"\n onClick={onToggle}\n isExpanded={isOpen}\n icon={<RhUiEllipsisVerticalFillIcon />}\n />\n )}\n isOpen={isOpen}\n onOpenChange={(isOpen) => setIsOpen(isOpen)}\n >\n <DropdownList>{dropdownItems}</DropdownList>\n </Dropdown>\n </OverflowMenuControl>\n </OverflowMenu>\n );\n};\n","title":"Persistent","lang":"ts","className":""}}>
|
|
220
|
+
|
|
221
|
+
</Example>,
|
|
222
|
+
'Breakpoint on container width': props =>
|
|
223
|
+
<Example {...pageData} {...props} {...{"code":"import { useRef, useState } from 'react';\nimport {\n OverflowMenu,\n OverflowMenuControl,\n OverflowMenuContent,\n OverflowMenuGroup,\n OverflowMenuItem,\n OverflowMenuDropdownItem,\n MenuToggle,\n Slider,\n SliderOnChangeEvent,\n Dropdown,\n DropdownList\n} from '@patternfly/react-core';\nimport RhUiEllipsisVerticalFillIcon from '@patternfly/react-icons/dist/esm/icons/rh-ui-ellipsis-vertical-fill-icon';\n\nexport const OverflowMenuBreakpointOnContainer: React.FunctionComponent = () => {\n const [isOpen, setIsOpen] = useState(false);\n const [containerWidth, setContainerWidth] = useState(100);\n const containerRef = useRef<HTMLDivElement>(null);\n\n const onToggle = () => {\n setIsOpen(!isOpen);\n };\n\n const onSelect = () => {\n setIsOpen(!isOpen);\n };\n\n const onChange = (_event: SliderOnChangeEvent, value: number) => {\n setContainerWidth(value);\n };\n\n const containerStyles = {\n width: `${containerWidth}%`,\n padding: '1rem',\n borderWidth: '2px',\n borderStyle: 'dashed'\n };\n\n const dropdownItems = [\n <OverflowMenuDropdownItem itemId={0} key=\"item1\" isShared>\n Item 1\n </OverflowMenuDropdownItem>,\n <OverflowMenuDropdownItem itemId={1} key=\"item2\" isShared>\n Item 2\n </OverflowMenuDropdownItem>,\n <OverflowMenuDropdownItem itemId={2} key=\"item3\" isShared>\n Item 3\n </OverflowMenuDropdownItem>,\n <OverflowMenuDropdownItem itemId={3} key=\"item4\" isShared>\n Item 4\n </OverflowMenuDropdownItem>,\n <OverflowMenuDropdownItem itemId={4} key=\"item5\" isShared>\n Item 5\n </OverflowMenuDropdownItem>\n ];\n\n return (\n <>\n <div style={{ width: '100%', maxWidth: '400px' }}>\n <div>\n <span id=\"overflowMenu-hasBreakpointOnContainer-slider-label\">Current container width</span>: {containerWidth}\n %\n </div>\n <Slider\n value={containerWidth}\n onChange={onChange}\n max={100}\n min={20}\n step={20}\n showTicks\n showBoundaries={false}\n aria-labelledby=\"overflowMenu-hasBreakpointOnContainer-slider-label\"\n />\n </div>\n <div ref={containerRef} id=\"breakpoint-reference-container\" style={containerStyles}>\n <OverflowMenu breakpointReference={containerRef} breakpoint=\"sm\">\n <OverflowMenuContent>\n <OverflowMenuItem>Item 1</OverflowMenuItem>\n <OverflowMenuItem>Item 2</OverflowMenuItem>\n <OverflowMenuGroup>\n <OverflowMenuItem>Item 3</OverflowMenuItem>\n <OverflowMenuItem>Item 4</OverflowMenuItem>\n <OverflowMenuItem>Item 5</OverflowMenuItem>\n </OverflowMenuGroup>\n </OverflowMenuContent>\n <OverflowMenuControl>\n <Dropdown\n onSelect={onSelect}\n toggle={(toggleRef) => (\n <MenuToggle\n ref={toggleRef}\n aria-label=\"Breakpoint on container example overflow menu\"\n variant=\"plain\"\n onClick={onToggle}\n isExpanded={isOpen}\n icon={<RhUiEllipsisVerticalFillIcon />}\n />\n )}\n isOpen={isOpen}\n onOpenChange={(isOpen) => setIsOpen(isOpen)}\n >\n <DropdownList>{dropdownItems}</DropdownList>\n </Dropdown>\n </OverflowMenuControl>\n </OverflowMenu>\n </div>\n </>\n );\n};\n","title":"Breakpoint on container width","lang":"ts","className":""}}>
|
|
224
|
+
|
|
225
|
+
<p {...{"className":"pf-v6-c-content--p pf-m-editorial ws-p "}}>
|
|
226
|
+
{`By passing in the `}
|
|
227
|
+
|
|
228
|
+
<code {...{"className":"ws-code "}}>
|
|
229
|
+
{`breakpointReference`}
|
|
230
|
+
</code>
|
|
231
|
+
{` property, the overflow menu's breakpoint will be relative to the width of the reference container rather than the viewport width.`}
|
|
232
|
+
</p>
|
|
233
|
+
|
|
234
|
+
<p {...{"className":"pf-v6-c-content--p pf-m-editorial ws-p "}}>
|
|
235
|
+
{`You can change the container width in this example by adjusting the slider. As the container width changes, the overflow menu will change between a horizontal menu and a vertical dropdown despite the viewport width not changing.`}
|
|
236
|
+
</p>
|
|
237
|
+
</Example>,
|
|
238
|
+
'Breakpoint on container height': props =>
|
|
239
|
+
<Example {...pageData} {...props} {...{"code":"import { useRef, useState } from 'react';\nimport {\n OverflowMenu,\n OverflowMenuControl,\n OverflowMenuContent,\n OverflowMenuGroup,\n OverflowMenuItem,\n OverflowMenuDropdownItem,\n MenuToggle,\n Slider,\n SliderOnChangeEvent,\n Dropdown,\n DropdownList\n} from '@patternfly/react-core';\nimport RhUiEllipsisVerticalFillIcon from '@patternfly/react-icons/dist/esm/icons/rh-ui-ellipsis-vertical-fill-icon';\n\nexport const OverflowMenuBreakpointOnContainerHeight: React.FunctionComponent = () => {\n const [isOpen, setIsOpen] = useState(false);\n const [containerHeight, setContainerHeight] = useState(100);\n const containerRef = useRef<HTMLDivElement>(null);\n\n const onToggle = () => {\n setIsOpen(!isOpen);\n };\n\n const onSelect = () => {\n setIsOpen(!isOpen);\n };\n\n const onChange = (_event: SliderOnChangeEvent, value: number) => {\n setContainerHeight(value);\n };\n\n const containerStyles = {\n height: `${containerHeight}%`,\n padding: '1rem',\n borderWidth: '2px',\n borderStyle: 'dashed'\n };\n\n const dropdownItems = [\n <OverflowMenuDropdownItem itemId={0} key=\"item1\" isShared>\n Item 1\n </OverflowMenuDropdownItem>,\n <OverflowMenuDropdownItem itemId={1} key=\"item2\" isShared>\n Item 2\n </OverflowMenuDropdownItem>,\n <OverflowMenuDropdownItem itemId={2} key=\"item3\" isShared>\n Item 3\n </OverflowMenuDropdownItem>,\n <OverflowMenuDropdownItem itemId={3} key=\"item4\" isShared>\n Item 4\n </OverflowMenuDropdownItem>,\n <OverflowMenuDropdownItem itemId={4} key=\"item5\" isShared>\n Item 5\n </OverflowMenuDropdownItem>\n ];\n\n return (\n <>\n <span id=\"overflowMenu-hasBreakpointOnContainer-height-slider-label\">Current container height</span>:{' '}\n {containerHeight}%\n <Slider\n value={containerHeight}\n onChange={onChange}\n max={100}\n min={20}\n step={20}\n showTicks\n showBoundaries={false}\n aria-labelledby=\"overflowMenu-hasBreakpointOnContainer-height-slider-label\"\n />\n <div style={{ height: '100%' }}>\n <div ref={containerRef} id=\"height-breakpoint-reference-container\" style={containerStyles}>\n <OverflowMenu breakpointReference={containerRef} breakpoint=\"md\" isVertical>\n <OverflowMenuContent>\n <OverflowMenuItem>Item 1</OverflowMenuItem>\n <OverflowMenuItem>Item 2</OverflowMenuItem>\n <OverflowMenuGroup>\n <OverflowMenuItem>Item 3</OverflowMenuItem>\n <OverflowMenuItem>Item 4</OverflowMenuItem>\n <OverflowMenuItem>Item 5</OverflowMenuItem>\n </OverflowMenuGroup>\n </OverflowMenuContent>\n <OverflowMenuControl>\n <Dropdown\n onSelect={onSelect}\n toggle={(toggleRef) => (\n <MenuToggle\n ref={toggleRef}\n aria-label=\"Height breakpoint on container example overflow menu\"\n variant=\"plain\"\n onClick={onToggle}\n isExpanded={isOpen}\n icon={<RhUiEllipsisVerticalFillIcon />}\n />\n )}\n isOpen={isOpen}\n onOpenChange={(isOpen) => setIsOpen(isOpen)}\n >\n <DropdownList>{dropdownItems}</DropdownList>\n </Dropdown>\n </OverflowMenuControl>\n </OverflowMenu>\n </div>\n </div>\n </>\n );\n};\n","title":"Breakpoint on container height","lang":"ts","isFullscreen":true,"className":""}}>
|
|
240
|
+
|
|
241
|
+
<p {...{"className":"pf-v6-c-content--p pf-m-editorial ws-p "}}>
|
|
242
|
+
{`By passing in the `}
|
|
243
|
+
|
|
244
|
+
<code {...{"className":"ws-code "}}>
|
|
245
|
+
{`breakpointReference`}
|
|
246
|
+
</code>
|
|
247
|
+
{` and `}
|
|
248
|
+
|
|
249
|
+
<code {...{"className":"ws-code "}}>
|
|
250
|
+
{`isVertical`}
|
|
251
|
+
</code>
|
|
252
|
+
{` properties, the overflow menu's breakpoint will be determined relative to the height of the reference container rather than the window height.`}
|
|
253
|
+
</p>
|
|
254
|
+
</Example>
|
|
255
|
+
};
|
|
256
|
+
|
|
257
|
+
const Component = () => (
|
|
258
|
+
<React.Fragment>
|
|
259
|
+
<AutoLinkHeader {...{"id":"examples","headingLevel":"h2","className":"ws-title ws-h2"}}>
|
|
260
|
+
{`Examples`}
|
|
261
|
+
</AutoLinkHeader>
|
|
262
|
+
{React.createElement(pageData.examples["Simple (responsive)"])}
|
|
263
|
+
{React.createElement(pageData.examples["Vertical"])}
|
|
264
|
+
{React.createElement(pageData.examples["Group types"])}
|
|
265
|
+
{React.createElement(pageData.examples["Multiple groups"])}
|
|
266
|
+
{React.createElement(pageData.examples["Persistent"])}
|
|
267
|
+
{React.createElement(pageData.examples["Breakpoint on container width"])}
|
|
268
|
+
{React.createElement(pageData.examples["Breakpoint on container height"])}
|
|
269
|
+
</React.Fragment>
|
|
270
|
+
);
|
|
271
|
+
Component.displayName = 'ComponentsOverflowMenuReactDocs';
|
|
272
|
+
Component.pageData = pageData;
|
|
273
|
+
|
|
274
|
+
export default Component;
|