@dxc-technology/halstack-react 0.0.0-d3554d7 → 0.0.0-d3ac293
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/BackgroundColorContext.d.ts +2 -2
- package/BackgroundColorContext.js +1 -1
- package/HalstackContext.d.ts +1336 -0
- package/HalstackContext.js +335 -0
- package/accordion/Accordion.d.ts +1 -1
- package/accordion/Accordion.js +118 -126
- package/accordion/Accordion.stories.tsx +115 -27
- package/accordion/Accordion.test.js +26 -12
- package/accordion/types.d.ts +9 -4
- package/accordion-group/AccordionGroup.d.ts +1 -1
- package/accordion-group/AccordionGroup.js +17 -38
- package/accordion-group/AccordionGroup.stories.tsx +28 -2
- package/accordion-group/AccordionGroup.test.js +31 -38
- package/accordion-group/types.d.ts +14 -3
- package/alert/Alert.js +7 -4
- package/alert/Alert.stories.tsx +28 -0
- package/alert/Alert.test.js +1 -1
- package/badge/Badge.d.ts +1 -1
- package/badge/Badge.js +5 -3
- package/badge/types.d.ts +1 -0
- package/bleed/Bleed.js +1 -34
- package/bleed/Bleed.stories.tsx +94 -95
- package/bleed/types.d.ts +25 -1
- package/box/Box.js +25 -37
- package/box/Box.stories.tsx +15 -0
- package/box/Box.test.js +1 -1
- package/box/types.d.ts +1 -0
- package/bulleted-list/BulletedList.d.ts +7 -0
- package/bulleted-list/BulletedList.js +123 -0
- package/bulleted-list/BulletedList.stories.tsx +200 -0
- package/bulleted-list/types.d.ts +11 -0
- package/button/Button.js +52 -69
- package/button/Button.stories.tsx +159 -8
- package/button/Button.test.js +1 -1
- package/button/types.d.ts +7 -7
- package/card/Card.js +25 -28
- package/card/Card.test.js +1 -1
- package/card/types.d.ts +1 -0
- package/checkbox/Checkbox.d.ts +2 -2
- package/checkbox/Checkbox.js +107 -110
- package/checkbox/Checkbox.stories.tsx +198 -130
- package/checkbox/Checkbox.test.js +101 -11
- package/checkbox/types.d.ts +13 -5
- package/chip/Chip.js +18 -24
- package/chip/Chip.stories.tsx +96 -9
- package/chip/Chip.test.js +3 -5
- package/chip/types.d.ts +1 -1
- package/common/utils.d.ts +1 -0
- package/common/utils.js +4 -4
- package/common/variables.d.ts +1625 -0
- package/common/variables.js +483 -352
- package/date-input/Calendar.d.ts +4 -0
- package/date-input/Calendar.js +258 -0
- package/date-input/DateInput.js +169 -258
- package/date-input/DateInput.stories.tsx +199 -33
- package/date-input/DateInput.test.js +521 -155
- package/date-input/DatePicker.d.ts +4 -0
- package/date-input/DatePicker.js +146 -0
- package/date-input/Icons.d.ts +6 -0
- package/date-input/Icons.js +75 -0
- package/date-input/YearPicker.d.ts +4 -0
- package/date-input/YearPicker.js +126 -0
- package/date-input/types.d.ts +67 -9
- package/dialog/Dialog.js +76 -93
- package/dialog/Dialog.stories.tsx +230 -123
- package/dialog/Dialog.test.js +334 -5
- package/dialog/types.d.ts +3 -2
- package/dropdown/Dropdown.d.ts +1 -1
- package/dropdown/Dropdown.js +246 -253
- package/dropdown/Dropdown.stories.tsx +245 -56
- package/dropdown/Dropdown.test.js +507 -110
- package/dropdown/DropdownMenu.d.ts +4 -0
- package/dropdown/DropdownMenu.js +70 -0
- package/dropdown/DropdownMenuItem.d.ts +4 -0
- package/dropdown/DropdownMenuItem.js +81 -0
- package/dropdown/types.d.ts +25 -5
- package/file-input/FileInput.d.ts +2 -2
- package/file-input/FileInput.js +181 -223
- package/file-input/FileInput.stories.tsx +122 -11
- package/file-input/FileInput.test.js +14 -14
- package/file-input/FileItem.d.ts +4 -14
- package/file-input/FileItem.js +44 -66
- package/file-input/types.d.ts +17 -0
- package/flex/Flex.d.ts +4 -0
- package/flex/Flex.js +69 -0
- package/flex/Flex.stories.tsx +103 -0
- package/flex/types.d.ts +32 -0
- package/footer/Footer.js +16 -89
- package/footer/Footer.stories.tsx +99 -1
- package/footer/Footer.test.js +14 -26
- package/footer/Icons.js +1 -1
- package/footer/types.d.ts +2 -1
- package/header/Header.js +108 -129
- package/header/Header.stories.tsx +189 -36
- package/header/Header.test.js +20 -4
- package/header/Icons.js +2 -2
- package/header/types.d.ts +3 -2
- package/heading/Heading.js +1 -1
- package/heading/Heading.test.js +1 -1
- package/inset/Inset.js +1 -34
- package/inset/Inset.stories.tsx +36 -36
- package/inset/types.d.ts +25 -1
- package/layout/ApplicationLayout.d.ts +16 -6
- package/layout/ApplicationLayout.js +72 -132
- package/layout/ApplicationLayout.stories.tsx +84 -93
- package/layout/Icons.d.ts +5 -0
- package/layout/Icons.js +13 -2
- package/layout/SidenavContext.d.ts +5 -0
- package/layout/SidenavContext.js +19 -0
- package/layout/types.d.ts +18 -33
- package/link/Link.d.ts +3 -2
- package/link/Link.js +59 -76
- package/link/Link.stories.tsx +155 -53
- package/link/Link.test.js +9 -19
- package/link/types.d.ts +7 -23
- package/main.d.ts +8 -10
- package/main.js +46 -56
- package/nav-tabs/NavTabs.d.ts +8 -0
- package/nav-tabs/NavTabs.js +125 -0
- package/nav-tabs/NavTabs.stories.tsx +260 -0
- package/nav-tabs/NavTabs.test.js +82 -0
- package/nav-tabs/Tab.d.ts +4 -0
- package/nav-tabs/Tab.js +150 -0
- package/nav-tabs/types.d.ts +53 -0
- package/number-input/NumberInput.js +11 -18
- package/number-input/NumberInput.stories.tsx +5 -5
- package/number-input/NumberInput.test.js +46 -12
- package/number-input/types.d.ts +17 -10
- package/package.json +20 -23
- package/paginator/Icons.d.ts +5 -0
- package/paginator/Icons.js +16 -28
- package/paginator/Paginator.js +19 -46
- package/paginator/Paginator.stories.tsx +24 -0
- package/paginator/Paginator.test.js +78 -39
- package/paragraph/Paragraph.d.ts +6 -0
- package/paragraph/Paragraph.js +38 -0
- package/paragraph/Paragraph.stories.tsx +44 -0
- package/password-input/PasswordInput.js +7 -4
- package/password-input/PasswordInput.test.js +17 -19
- package/password-input/types.d.ts +14 -11
- package/progress-bar/ProgressBar.d.ts +2 -2
- package/progress-bar/ProgressBar.js +61 -55
- package/progress-bar/ProgressBar.stories.jsx +47 -12
- package/progress-bar/ProgressBar.test.js +68 -23
- package/progress-bar/types.d.ts +3 -4
- package/quick-nav/QuickNav.d.ts +4 -0
- package/quick-nav/QuickNav.js +117 -0
- package/quick-nav/QuickNav.stories.tsx +356 -0
- package/quick-nav/types.d.ts +21 -0
- package/radio-group/Radio.d.ts +1 -1
- package/radio-group/Radio.js +43 -28
- package/radio-group/RadioGroup.js +32 -28
- package/radio-group/RadioGroup.stories.tsx +135 -17
- package/radio-group/RadioGroup.test.js +145 -117
- package/radio-group/types.d.ts +79 -2
- package/resultsetTable/Icons.d.ts +7 -0
- package/resultsetTable/Icons.js +51 -0
- package/resultsetTable/ResultsetTable.js +49 -108
- package/resultsetTable/ResultsetTable.stories.tsx +50 -25
- package/resultsetTable/ResultsetTable.test.js +61 -42
- package/resultsetTable/types.d.ts +2 -2
- package/select/Icons.d.ts +10 -0
- package/select/Icons.js +93 -0
- package/select/Listbox.d.ts +4 -0
- package/select/Listbox.js +169 -0
- package/select/Option.d.ts +4 -0
- package/select/Option.js +97 -0
- package/select/Select.js +179 -384
- package/select/Select.stories.tsx +531 -142
- package/select/Select.test.js +652 -324
- package/select/types.d.ts +53 -13
- package/sidenav/Sidenav.d.ts +6 -5
- package/sidenav/Sidenav.js +183 -53
- package/sidenav/Sidenav.stories.tsx +249 -149
- package/sidenav/Sidenav.test.js +25 -37
- package/sidenav/types.d.ts +50 -27
- package/slider/Slider.d.ts +2 -2
- package/slider/Slider.js +124 -98
- package/slider/Slider.stories.tsx +72 -9
- package/slider/Slider.test.js +143 -22
- package/slider/types.d.ts +10 -2
- package/spinner/Spinner.js +4 -4
- package/spinner/Spinner.stories.jsx +27 -1
- package/spinner/Spinner.test.js +1 -1
- package/switch/Switch.d.ts +2 -2
- package/switch/Switch.js +152 -69
- package/switch/Switch.stories.tsx +53 -42
- package/switch/Switch.test.js +156 -4
- package/switch/types.d.ts +12 -4
- package/table/Table.js +3 -3
- package/table/Table.stories.jsx +80 -1
- package/table/Table.test.js +2 -2
- package/tabs/Tab.d.ts +4 -0
- package/tabs/Tab.js +133 -0
- package/tabs/Tabs.d.ts +1 -1
- package/tabs/Tabs.js +363 -109
- package/tabs/Tabs.stories.tsx +119 -13
- package/tabs/Tabs.test.js +241 -14
- package/tabs/types.d.ts +19 -5
- package/tag/Tag.js +17 -22
- package/tag/Tag.stories.tsx +25 -8
- package/tag/Tag.test.js +1 -1
- package/tag/types.d.ts +1 -1
- package/text-input/Icons.d.ts +8 -0
- package/text-input/Icons.js +60 -0
- package/text-input/Suggestion.d.ts +4 -0
- package/text-input/Suggestion.js +84 -0
- package/text-input/Suggestions.d.ts +4 -0
- package/text-input/Suggestions.js +134 -0
- package/text-input/TextInput.js +221 -344
- package/text-input/TextInput.stories.tsx +290 -195
- package/text-input/TextInput.test.js +763 -731
- package/text-input/types.d.ts +50 -12
- package/textarea/Textarea.js +17 -26
- package/textarea/Textarea.stories.jsx +65 -6
- package/textarea/Textarea.test.js +38 -37
- package/textarea/types.d.ts +18 -11
- package/toggle-group/ToggleGroup.d.ts +1 -1
- package/toggle-group/ToggleGroup.js +6 -5
- package/toggle-group/ToggleGroup.stories.tsx +46 -4
- package/toggle-group/ToggleGroup.test.js +36 -5
- package/toggle-group/types.d.ts +9 -1
- package/typography/Typography.d.ts +4 -0
- package/typography/Typography.js +32 -0
- package/typography/Typography.stories.tsx +198 -0
- package/typography/types.d.ts +18 -0
- package/typography/types.js +5 -0
- package/useTheme.d.ts +1234 -1
- package/useTheme.js +3 -3
- package/useTranslatedLabels.d.ts +85 -0
- package/useTranslatedLabels.js +20 -0
- package/utils/BaseTypography.d.ts +21 -0
- package/utils/BaseTypography.js +108 -0
- package/utils/FocusLock.d.ts +13 -0
- package/utils/FocusLock.js +139 -0
- package/wizard/Wizard.d.ts +1 -1
- package/wizard/Wizard.js +59 -55
- package/wizard/Wizard.stories.tsx +48 -19
- package/wizard/Wizard.test.js +37 -24
- package/wizard/types.d.ts +10 -5
- package/ThemeContext.d.ts +0 -10
- package/ThemeContext.js +0 -243
- package/common/RequiredComponent.js +0 -32
- package/list/List.d.ts +0 -4
- package/list/List.js +0 -47
- package/list/List.stories.tsx +0 -95
- package/list/types.d.ts +0 -7
- package/radio/Radio.d.ts +0 -4
- package/radio/Radio.js +0 -174
- package/radio/Radio.stories.tsx +0 -192
- package/radio/Radio.test.js +0 -71
- package/radio/types.d.ts +0 -54
- package/row/Row.d.ts +0 -3
- package/row/Row.js +0 -127
- package/row/Row.stories.tsx +0 -237
- package/row/types.d.ts +0 -10
- package/stack/Stack.d.ts +0 -3
- package/stack/Stack.js +0 -97
- package/stack/Stack.stories.tsx +0 -164
- package/stack/types.d.ts +0 -9
- package/text/Text.d.ts +0 -7
- package/text/Text.js +0 -30
- package/text/Text.stories.tsx +0 -19
- /package/{list → bulleted-list}/types.js +0 -0
- /package/{radio → flex}/types.js +0 -0
- /package/{row → nav-tabs}/types.js +0 -0
- /package/{stack → quick-nav}/types.js +0 -0
package/main.js
CHANGED
|
@@ -55,6 +55,12 @@ Object.defineProperty(exports, "DxcBox", {
|
|
|
55
55
|
return _Box["default"];
|
|
56
56
|
}
|
|
57
57
|
});
|
|
58
|
+
Object.defineProperty(exports, "DxcBulletedList", {
|
|
59
|
+
enumerable: true,
|
|
60
|
+
get: function get() {
|
|
61
|
+
return _BulletedList["default"];
|
|
62
|
+
}
|
|
63
|
+
});
|
|
58
64
|
Object.defineProperty(exports, "DxcButton", {
|
|
59
65
|
enumerable: true,
|
|
60
66
|
get: function get() {
|
|
@@ -103,16 +109,10 @@ Object.defineProperty(exports, "DxcFileInput", {
|
|
|
103
109
|
return _FileInput["default"];
|
|
104
110
|
}
|
|
105
111
|
});
|
|
106
|
-
Object.defineProperty(exports, "
|
|
107
|
-
enumerable: true,
|
|
108
|
-
get: function get() {
|
|
109
|
-
return _Footer["default"];
|
|
110
|
-
}
|
|
111
|
-
});
|
|
112
|
-
Object.defineProperty(exports, "DxcHeader", {
|
|
112
|
+
Object.defineProperty(exports, "DxcFlex", {
|
|
113
113
|
enumerable: true,
|
|
114
114
|
get: function get() {
|
|
115
|
-
return
|
|
115
|
+
return _Flex["default"];
|
|
116
116
|
}
|
|
117
117
|
});
|
|
118
118
|
Object.defineProperty(exports, "DxcHeading", {
|
|
@@ -133,10 +133,10 @@ Object.defineProperty(exports, "DxcLink", {
|
|
|
133
133
|
return _Link["default"];
|
|
134
134
|
}
|
|
135
135
|
});
|
|
136
|
-
Object.defineProperty(exports, "
|
|
136
|
+
Object.defineProperty(exports, "DxcNavTabs", {
|
|
137
137
|
enumerable: true,
|
|
138
138
|
get: function get() {
|
|
139
|
-
return
|
|
139
|
+
return _NavTabs["default"];
|
|
140
140
|
}
|
|
141
141
|
});
|
|
142
142
|
Object.defineProperty(exports, "DxcNumberInput", {
|
|
@@ -151,6 +151,12 @@ Object.defineProperty(exports, "DxcPaginator", {
|
|
|
151
151
|
return _Paginator["default"];
|
|
152
152
|
}
|
|
153
153
|
});
|
|
154
|
+
Object.defineProperty(exports, "DxcParagraph", {
|
|
155
|
+
enumerable: true,
|
|
156
|
+
get: function get() {
|
|
157
|
+
return _Paragraph["default"];
|
|
158
|
+
}
|
|
159
|
+
});
|
|
154
160
|
Object.defineProperty(exports, "DxcPasswordInput", {
|
|
155
161
|
enumerable: true,
|
|
156
162
|
get: function get() {
|
|
@@ -163,10 +169,10 @@ Object.defineProperty(exports, "DxcProgressBar", {
|
|
|
163
169
|
return _ProgressBar["default"];
|
|
164
170
|
}
|
|
165
171
|
});
|
|
166
|
-
Object.defineProperty(exports, "
|
|
172
|
+
Object.defineProperty(exports, "DxcQuickNav", {
|
|
167
173
|
enumerable: true,
|
|
168
174
|
get: function get() {
|
|
169
|
-
return
|
|
175
|
+
return _QuickNav["default"];
|
|
170
176
|
}
|
|
171
177
|
});
|
|
172
178
|
Object.defineProperty(exports, "DxcRadioGroup", {
|
|
@@ -181,24 +187,12 @@ Object.defineProperty(exports, "DxcResultsetTable", {
|
|
|
181
187
|
return _ResultsetTable["default"];
|
|
182
188
|
}
|
|
183
189
|
});
|
|
184
|
-
Object.defineProperty(exports, "DxcRow", {
|
|
185
|
-
enumerable: true,
|
|
186
|
-
get: function get() {
|
|
187
|
-
return _Row["default"];
|
|
188
|
-
}
|
|
189
|
-
});
|
|
190
190
|
Object.defineProperty(exports, "DxcSelect", {
|
|
191
191
|
enumerable: true,
|
|
192
192
|
get: function get() {
|
|
193
193
|
return _Select["default"];
|
|
194
194
|
}
|
|
195
195
|
});
|
|
196
|
-
Object.defineProperty(exports, "DxcSidenav", {
|
|
197
|
-
enumerable: true,
|
|
198
|
-
get: function get() {
|
|
199
|
-
return _Sidenav["default"];
|
|
200
|
-
}
|
|
201
|
-
});
|
|
202
196
|
Object.defineProperty(exports, "DxcSlider", {
|
|
203
197
|
enumerable: true,
|
|
204
198
|
get: function get() {
|
|
@@ -211,12 +205,6 @@ Object.defineProperty(exports, "DxcSpinner", {
|
|
|
211
205
|
return _Spinner["default"];
|
|
212
206
|
}
|
|
213
207
|
});
|
|
214
|
-
Object.defineProperty(exports, "DxcStack", {
|
|
215
|
-
enumerable: true,
|
|
216
|
-
get: function get() {
|
|
217
|
-
return _Stack["default"];
|
|
218
|
-
}
|
|
219
|
-
});
|
|
220
208
|
Object.defineProperty(exports, "DxcSwitch", {
|
|
221
209
|
enumerable: true,
|
|
222
210
|
get: function get() {
|
|
@@ -241,12 +229,6 @@ Object.defineProperty(exports, "DxcTag", {
|
|
|
241
229
|
return _Tag["default"];
|
|
242
230
|
}
|
|
243
231
|
});
|
|
244
|
-
Object.defineProperty(exports, "DxcText", {
|
|
245
|
-
enumerable: true,
|
|
246
|
-
get: function get() {
|
|
247
|
-
return _Text["default"];
|
|
248
|
-
}
|
|
249
|
-
});
|
|
250
232
|
Object.defineProperty(exports, "DxcTextInput", {
|
|
251
233
|
enumerable: true,
|
|
252
234
|
get: function get() {
|
|
@@ -265,22 +247,34 @@ Object.defineProperty(exports, "DxcToggleGroup", {
|
|
|
265
247
|
return _ToggleGroup["default"];
|
|
266
248
|
}
|
|
267
249
|
});
|
|
250
|
+
Object.defineProperty(exports, "DxcTypography", {
|
|
251
|
+
enumerable: true,
|
|
252
|
+
get: function get() {
|
|
253
|
+
return _Typography["default"];
|
|
254
|
+
}
|
|
255
|
+
});
|
|
268
256
|
Object.defineProperty(exports, "DxcWizard", {
|
|
269
257
|
enumerable: true,
|
|
270
258
|
get: function get() {
|
|
271
259
|
return _Wizard["default"];
|
|
272
260
|
}
|
|
273
261
|
});
|
|
274
|
-
Object.defineProperty(exports, "
|
|
262
|
+
Object.defineProperty(exports, "HalstackContext", {
|
|
263
|
+
enumerable: true,
|
|
264
|
+
get: function get() {
|
|
265
|
+
return _HalstackContext["default"];
|
|
266
|
+
}
|
|
267
|
+
});
|
|
268
|
+
Object.defineProperty(exports, "HalstackLanguageContext", {
|
|
275
269
|
enumerable: true,
|
|
276
270
|
get: function get() {
|
|
277
|
-
return
|
|
271
|
+
return _HalstackContext.HalstackLanguageContext;
|
|
278
272
|
}
|
|
279
273
|
});
|
|
280
|
-
Object.defineProperty(exports, "
|
|
274
|
+
Object.defineProperty(exports, "HalstackProvider", {
|
|
281
275
|
enumerable: true,
|
|
282
276
|
get: function get() {
|
|
283
|
-
return
|
|
277
|
+
return _HalstackContext.HalstackProvider;
|
|
284
278
|
}
|
|
285
279
|
});
|
|
286
280
|
|
|
@@ -298,12 +292,6 @@ var _Dialog = _interopRequireDefault(require("./dialog/Dialog"));
|
|
|
298
292
|
|
|
299
293
|
var _Dropdown = _interopRequireDefault(require("./dropdown/Dropdown"));
|
|
300
294
|
|
|
301
|
-
var _Footer = _interopRequireDefault(require("./footer/Footer"));
|
|
302
|
-
|
|
303
|
-
var _Header = _interopRequireDefault(require("./header/Header"));
|
|
304
|
-
|
|
305
|
-
var _Radio = _interopRequireDefault(require("./radio/Radio"));
|
|
306
|
-
|
|
307
295
|
var _Slider = _interopRequireDefault(require("./slider/Slider"));
|
|
308
296
|
|
|
309
297
|
var _Switch = _interopRequireDefault(require("./switch/Switch"));
|
|
@@ -322,8 +310,6 @@ var _Tag = _interopRequireDefault(require("./tag/Tag"));
|
|
|
322
310
|
|
|
323
311
|
var _Paginator = _interopRequireDefault(require("./paginator/Paginator"));
|
|
324
312
|
|
|
325
|
-
var _Sidenav = _interopRequireDefault(require("./sidenav/Sidenav"));
|
|
326
|
-
|
|
327
313
|
var _Wizard = _interopRequireDefault(require("./wizard/Wizard"));
|
|
328
314
|
|
|
329
315
|
var _Link = _interopRequireDefault(require("./link/Link"));
|
|
@@ -356,21 +342,25 @@ var _Select = _interopRequireDefault(require("./select/Select"));
|
|
|
356
342
|
|
|
357
343
|
var _FileInput = _interopRequireDefault(require("./file-input/FileInput"));
|
|
358
344
|
|
|
359
|
-
var
|
|
345
|
+
var _RadioGroup = _interopRequireDefault(require("./radio-group/RadioGroup"));
|
|
346
|
+
|
|
347
|
+
var _Bleed = _interopRequireDefault(require("./bleed/Bleed"));
|
|
360
348
|
|
|
361
|
-
var
|
|
349
|
+
var _Inset = _interopRequireDefault(require("./inset/Inset"));
|
|
362
350
|
|
|
363
|
-
var
|
|
351
|
+
var _QuickNav = _interopRequireDefault(require("./quick-nav/QuickNav"));
|
|
364
352
|
|
|
365
|
-
var
|
|
353
|
+
var _NavTabs = _interopRequireDefault(require("./nav-tabs/NavTabs"));
|
|
366
354
|
|
|
367
|
-
var
|
|
355
|
+
var _Flex = _interopRequireDefault(require("./flex/Flex"));
|
|
368
356
|
|
|
369
|
-
var
|
|
357
|
+
var _Typography = _interopRequireDefault(require("./typography/Typography"));
|
|
370
358
|
|
|
371
|
-
var
|
|
359
|
+
var _Paragraph = _interopRequireDefault(require("./paragraph/Paragraph"));
|
|
360
|
+
|
|
361
|
+
var _BulletedList = _interopRequireDefault(require("./bulleted-list/BulletedList"));
|
|
372
362
|
|
|
373
|
-
var
|
|
363
|
+
var _HalstackContext = _interopRequireWildcard(require("./HalstackContext"));
|
|
374
364
|
|
|
375
365
|
var _BackgroundColorContext = require("./BackgroundColorContext");
|
|
376
366
|
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import React from "react";
|
|
2
|
+
import { NavTabsContextProps, NavTabsProps } from "./types";
|
|
3
|
+
export declare const NavTabsContext: React.Context<NavTabsContextProps>;
|
|
4
|
+
declare const DxcNavTabs: {
|
|
5
|
+
({ iconPosition, tabIndex, children }: NavTabsProps): JSX.Element;
|
|
6
|
+
Tab: React.ForwardRefExoticComponent<import("./types").TabProps & React.RefAttributes<HTMLAnchorElement>>;
|
|
7
|
+
};
|
|
8
|
+
export default DxcNavTabs;
|
|
@@ -0,0 +1,125 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
4
|
+
|
|
5
|
+
var _typeof = require("@babel/runtime/helpers/typeof");
|
|
6
|
+
|
|
7
|
+
Object.defineProperty(exports, "__esModule", {
|
|
8
|
+
value: true
|
|
9
|
+
});
|
|
10
|
+
exports["default"] = exports.NavTabsContext = void 0;
|
|
11
|
+
|
|
12
|
+
var _taggedTemplateLiteral2 = _interopRequireDefault(require("@babel/runtime/helpers/taggedTemplateLiteral"));
|
|
13
|
+
|
|
14
|
+
var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));
|
|
15
|
+
|
|
16
|
+
var _react = _interopRequireWildcard(require("react"));
|
|
17
|
+
|
|
18
|
+
var _styledComponents = _interopRequireWildcard(require("styled-components"));
|
|
19
|
+
|
|
20
|
+
var _useTheme = _interopRequireDefault(require("../useTheme"));
|
|
21
|
+
|
|
22
|
+
var _Tab = _interopRequireDefault(require("./Tab"));
|
|
23
|
+
|
|
24
|
+
var _templateObject;
|
|
25
|
+
|
|
26
|
+
function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
|
|
27
|
+
|
|
28
|
+
function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== "object" && typeof obj !== "function") { return { "default": obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj["default"] = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
|
|
29
|
+
|
|
30
|
+
var NavTabsContext = /*#__PURE__*/(0, _react.createContext)(null);
|
|
31
|
+
exports.NavTabsContext = NavTabsContext;
|
|
32
|
+
|
|
33
|
+
var getPropInChild = function getPropInChild(child, propName) {
|
|
34
|
+
return child.props ? child.props[propName] ? child.props[propName] : child.props.children ? getPropInChild(child.props.children, propName) : undefined : undefined;
|
|
35
|
+
};
|
|
36
|
+
|
|
37
|
+
var getLabelFromTab = function getLabelFromTab(child) {
|
|
38
|
+
if (typeof child === "string") {
|
|
39
|
+
return child.toString();
|
|
40
|
+
} else if (child.props.children) {
|
|
41
|
+
return Array.isArray(child.props.children) ? getLabelFromTab(child.props.children[0]) : getLabelFromTab(child.props.children);
|
|
42
|
+
}
|
|
43
|
+
};
|
|
44
|
+
|
|
45
|
+
var getPreviousTabIndex = function getPreviousTabIndex(array, initialIndex) {
|
|
46
|
+
var index = initialIndex === 0 ? array.length - 1 : initialIndex - 1;
|
|
47
|
+
|
|
48
|
+
while (getPropInChild(array[index], "disabled")) {
|
|
49
|
+
index = index === 0 ? array.length - 1 : index - 1;
|
|
50
|
+
}
|
|
51
|
+
|
|
52
|
+
return index;
|
|
53
|
+
};
|
|
54
|
+
|
|
55
|
+
var getNextTabIndex = function getNextTabIndex(array, initialIndex) {
|
|
56
|
+
var index = initialIndex === array.length - 1 ? 0 : initialIndex + 1;
|
|
57
|
+
|
|
58
|
+
while (getPropInChild(array[index], "disabled")) {
|
|
59
|
+
index = index === array.length - 1 ? 0 : index + 1;
|
|
60
|
+
}
|
|
61
|
+
|
|
62
|
+
return index;
|
|
63
|
+
};
|
|
64
|
+
|
|
65
|
+
var DxcNavTabs = function DxcNavTabs(_ref) {
|
|
66
|
+
var _ref$iconPosition = _ref.iconPosition,
|
|
67
|
+
iconPosition = _ref$iconPosition === void 0 ? "top" : _ref$iconPosition,
|
|
68
|
+
_ref$tabIndex = _ref.tabIndex,
|
|
69
|
+
tabIndex = _ref$tabIndex === void 0 ? 0 : _ref$tabIndex,
|
|
70
|
+
children = _ref.children;
|
|
71
|
+
var colorsTheme = (0, _useTheme["default"])();
|
|
72
|
+
|
|
73
|
+
var _useState = (0, _react.useState)(null),
|
|
74
|
+
_useState2 = (0, _slicedToArray2["default"])(_useState, 2),
|
|
75
|
+
innerFocus = _useState2[0],
|
|
76
|
+
setInnerFocus = _useState2[1];
|
|
77
|
+
|
|
78
|
+
var contextValue = (0, _react.useMemo)(function () {
|
|
79
|
+
return {
|
|
80
|
+
iconPosition: iconPosition,
|
|
81
|
+
tabIndex: tabIndex,
|
|
82
|
+
hasIcons: _react["default"].Children.toArray(children).some(function (child) {
|
|
83
|
+
return getPropInChild(child, "icon");
|
|
84
|
+
}),
|
|
85
|
+
focusedLabel: innerFocus === null ? undefined : getLabelFromTab(children[innerFocus])
|
|
86
|
+
};
|
|
87
|
+
}, [iconPosition, tabIndex, innerFocus]);
|
|
88
|
+
|
|
89
|
+
var handleOnKeyDown = function handleOnKeyDown(event) {
|
|
90
|
+
var activeTab = _react["default"].Children.toArray(children).findIndex(function (child) {
|
|
91
|
+
return getPropInChild(child, "active");
|
|
92
|
+
});
|
|
93
|
+
|
|
94
|
+
switch (event.key) {
|
|
95
|
+
case "Left":
|
|
96
|
+
case "ArrowLeft":
|
|
97
|
+
event.preventDefault();
|
|
98
|
+
setInnerFocus(getPreviousTabIndex(children, innerFocus === null ? activeTab : innerFocus));
|
|
99
|
+
break;
|
|
100
|
+
|
|
101
|
+
case "Right":
|
|
102
|
+
case "ArrowRight":
|
|
103
|
+
event.preventDefault();
|
|
104
|
+
setInnerFocus(getNextTabIndex(children, innerFocus === null ? activeTab : innerFocus));
|
|
105
|
+
break;
|
|
106
|
+
}
|
|
107
|
+
};
|
|
108
|
+
|
|
109
|
+
return /*#__PURE__*/_react["default"].createElement(_styledComponents.ThemeProvider, {
|
|
110
|
+
theme: colorsTheme.navTabs
|
|
111
|
+
}, /*#__PURE__*/_react["default"].createElement(NavTabsContainer, {
|
|
112
|
+
onKeyDown: handleOnKeyDown,
|
|
113
|
+
role: "tablist",
|
|
114
|
+
"aria-label": "Navigation tabs"
|
|
115
|
+
}, /*#__PURE__*/_react["default"].createElement(NavTabsContext.Provider, {
|
|
116
|
+
value: contextValue
|
|
117
|
+
}, children)));
|
|
118
|
+
};
|
|
119
|
+
|
|
120
|
+
DxcNavTabs.Tab = _Tab["default"];
|
|
121
|
+
|
|
122
|
+
var NavTabsContainer = _styledComponents["default"].div(_templateObject || (_templateObject = (0, _taggedTemplateLiteral2["default"])(["\n display: flex;\n"])));
|
|
123
|
+
|
|
124
|
+
var _default = DxcNavTabs;
|
|
125
|
+
exports["default"] = _default;
|
|
@@ -0,0 +1,260 @@
|
|
|
1
|
+
import React from "react";
|
|
2
|
+
import DxcNavTabs from "./NavTabs";
|
|
3
|
+
import Title from "../../.storybook/components/Title";
|
|
4
|
+
import ExampleContainer from "../../.storybook/components/ExampleContainer";
|
|
5
|
+
import { HalstackProvider } from "../HalstackContext";
|
|
6
|
+
|
|
7
|
+
export default {
|
|
8
|
+
title: "NavTabs",
|
|
9
|
+
component: DxcNavTabs,
|
|
10
|
+
};
|
|
11
|
+
|
|
12
|
+
const iconSVG = (
|
|
13
|
+
<svg viewBox="0 0 24 24" fill="currentColor">
|
|
14
|
+
<path d="M0 0h24v24H0z" fill="none" />
|
|
15
|
+
<path d="M12 21.35l-1.45-1.32C5.4 15.36 2 12.28 2 8.5 2 5.42 4.42 3 7.5 3c1.74 0 3.41.81 4.5 2.09C13.09 3.81 14.76 3 16.5 3 19.58 3 22 5.42 22 8.5c0 3.78-3.4 6.86-8.55 11.54L12 21.35z" />
|
|
16
|
+
</svg>
|
|
17
|
+
);
|
|
18
|
+
|
|
19
|
+
const largeIcon = "https://www.iconpacks.net/icons/1/free-pin-icon-48-thumb.png";
|
|
20
|
+
|
|
21
|
+
const opinionatedTheme = {
|
|
22
|
+
navTabs: {
|
|
23
|
+
baseColor: "#666666",
|
|
24
|
+
accentColor: "#5f249f",
|
|
25
|
+
},
|
|
26
|
+
};
|
|
27
|
+
|
|
28
|
+
export const Chromatic = () => (
|
|
29
|
+
<>
|
|
30
|
+
<ExampleContainer>
|
|
31
|
+
<Title title="Only label" theme="light" level={4} />
|
|
32
|
+
<DxcNavTabs>
|
|
33
|
+
<DxcNavTabs.Tab href="#" active>
|
|
34
|
+
Tab 1
|
|
35
|
+
</DxcNavTabs.Tab>
|
|
36
|
+
<DxcNavTabs.Tab href="#" disabled>
|
|
37
|
+
Tab 2
|
|
38
|
+
</DxcNavTabs.Tab>
|
|
39
|
+
<DxcNavTabs.Tab href="#">Tab 3</DxcNavTabs.Tab>
|
|
40
|
+
<DxcNavTabs.Tab href="#">Tab 4</DxcNavTabs.Tab>
|
|
41
|
+
</DxcNavTabs>
|
|
42
|
+
</ExampleContainer>
|
|
43
|
+
<ExampleContainer pseudoState="pseudo-hover">
|
|
44
|
+
<Title title="Hovered tabs" theme="light" level={4} />
|
|
45
|
+
<DxcNavTabs>
|
|
46
|
+
<DxcNavTabs.Tab href="#" active>
|
|
47
|
+
Tab 1
|
|
48
|
+
</DxcNavTabs.Tab>
|
|
49
|
+
<DxcNavTabs.Tab href="#" disabled>
|
|
50
|
+
Tab 2
|
|
51
|
+
</DxcNavTabs.Tab>
|
|
52
|
+
<DxcNavTabs.Tab href="#">Tab 3</DxcNavTabs.Tab>
|
|
53
|
+
<DxcNavTabs.Tab href="#">Tab 4</DxcNavTabs.Tab>
|
|
54
|
+
</DxcNavTabs>
|
|
55
|
+
</ExampleContainer>
|
|
56
|
+
<ExampleContainer pseudoState="pseudo-focus">
|
|
57
|
+
<Title title="Focused tabs" theme="light" level={4} />
|
|
58
|
+
<DxcNavTabs>
|
|
59
|
+
<DxcNavTabs.Tab href="#" active>
|
|
60
|
+
Tab 1
|
|
61
|
+
</DxcNavTabs.Tab>
|
|
62
|
+
<DxcNavTabs.Tab href="#" disabled>
|
|
63
|
+
Tab 2
|
|
64
|
+
</DxcNavTabs.Tab>
|
|
65
|
+
<DxcNavTabs.Tab href="#">Tab 3</DxcNavTabs.Tab>
|
|
66
|
+
<DxcNavTabs.Tab href="#">Tab 4</DxcNavTabs.Tab>
|
|
67
|
+
</DxcNavTabs>
|
|
68
|
+
</ExampleContainer>
|
|
69
|
+
<ExampleContainer pseudoState="pseudo-active">
|
|
70
|
+
<Title title="Actived tabs" theme="light" level={4} />
|
|
71
|
+
<DxcNavTabs>
|
|
72
|
+
<DxcNavTabs.Tab href="#" active>
|
|
73
|
+
Tab 1
|
|
74
|
+
</DxcNavTabs.Tab>
|
|
75
|
+
<DxcNavTabs.Tab href="#" disabled>
|
|
76
|
+
Tab 2
|
|
77
|
+
</DxcNavTabs.Tab>
|
|
78
|
+
<DxcNavTabs.Tab href="#">Tab 3</DxcNavTabs.Tab>
|
|
79
|
+
<DxcNavTabs.Tab href="#">Tab 4</DxcNavTabs.Tab>
|
|
80
|
+
</DxcNavTabs>
|
|
81
|
+
</ExampleContainer>
|
|
82
|
+
<ExampleContainer>
|
|
83
|
+
<Title title="With notification number" theme="light" level={4} />
|
|
84
|
+
<DxcNavTabs>
|
|
85
|
+
<DxcNavTabs.Tab href="#" active notificationNumber>
|
|
86
|
+
Tab 1
|
|
87
|
+
</DxcNavTabs.Tab>
|
|
88
|
+
<DxcNavTabs.Tab href="#" disabled notificationNumber={5}>
|
|
89
|
+
Tab 2
|
|
90
|
+
</DxcNavTabs.Tab>
|
|
91
|
+
<DxcNavTabs.Tab href="#" notificationNumber={120}>
|
|
92
|
+
Tab 3
|
|
93
|
+
</DxcNavTabs.Tab>
|
|
94
|
+
<DxcNavTabs.Tab href="#">Tab 4</DxcNavTabs.Tab>
|
|
95
|
+
</DxcNavTabs>
|
|
96
|
+
</ExampleContainer>
|
|
97
|
+
<ExampleContainer>
|
|
98
|
+
<Title title="With icon position top" theme="light" level={4} />
|
|
99
|
+
<DxcNavTabs>
|
|
100
|
+
<DxcNavTabs.Tab href="#" active icon={iconSVG}>
|
|
101
|
+
Tab 1
|
|
102
|
+
</DxcNavTabs.Tab>
|
|
103
|
+
<DxcNavTabs.Tab href="#" disabled icon={iconSVG}>
|
|
104
|
+
Tab 2
|
|
105
|
+
</DxcNavTabs.Tab>
|
|
106
|
+
<DxcNavTabs.Tab href="#" icon={largeIcon}>
|
|
107
|
+
Tab 3
|
|
108
|
+
</DxcNavTabs.Tab>
|
|
109
|
+
<DxcNavTabs.Tab href="#" icon={largeIcon}>
|
|
110
|
+
Tab 4
|
|
111
|
+
</DxcNavTabs.Tab>
|
|
112
|
+
</DxcNavTabs>
|
|
113
|
+
</ExampleContainer>
|
|
114
|
+
<ExampleContainer>
|
|
115
|
+
<Title title="With icon position left" theme="light" level={4} />
|
|
116
|
+
<DxcNavTabs iconPosition="left">
|
|
117
|
+
<DxcNavTabs.Tab href="#" active icon={largeIcon}>
|
|
118
|
+
Tab 1
|
|
119
|
+
</DxcNavTabs.Tab>
|
|
120
|
+
<DxcNavTabs.Tab href="#" disabled icon={iconSVG}>
|
|
121
|
+
Tab 2
|
|
122
|
+
</DxcNavTabs.Tab>
|
|
123
|
+
<DxcNavTabs.Tab href="#" icon={iconSVG}>
|
|
124
|
+
Tab 3
|
|
125
|
+
</DxcNavTabs.Tab>
|
|
126
|
+
<DxcNavTabs.Tab href="#" icon={iconSVG}>
|
|
127
|
+
Tab 4
|
|
128
|
+
</DxcNavTabs.Tab>
|
|
129
|
+
</DxcNavTabs>
|
|
130
|
+
</ExampleContainer>
|
|
131
|
+
<ExampleContainer>
|
|
132
|
+
<Title title="With icon and notification number" theme="light" level={4} />
|
|
133
|
+
<DxcNavTabs>
|
|
134
|
+
<DxcNavTabs.Tab href="#" active icon={largeIcon} notificationNumber>
|
|
135
|
+
Tab 1
|
|
136
|
+
</DxcNavTabs.Tab>
|
|
137
|
+
<DxcNavTabs.Tab href="#" disabled icon={iconSVG} notificationNumber={5}>
|
|
138
|
+
Tab 2
|
|
139
|
+
</DxcNavTabs.Tab>
|
|
140
|
+
<DxcNavTabs.Tab href="#" icon={iconSVG} notificationNumber={120}>
|
|
141
|
+
Tab 3
|
|
142
|
+
</DxcNavTabs.Tab>
|
|
143
|
+
<DxcNavTabs.Tab href="#" icon={largeIcon}>
|
|
144
|
+
Tab 4
|
|
145
|
+
</DxcNavTabs.Tab>
|
|
146
|
+
</DxcNavTabs>
|
|
147
|
+
</ExampleContainer>
|
|
148
|
+
<ExampleContainer>
|
|
149
|
+
<Title title="With icon on the left and notification number" theme="light" level={4} />
|
|
150
|
+
<DxcNavTabs iconPosition="left">
|
|
151
|
+
<DxcNavTabs.Tab href="#" active icon={iconSVG} notificationNumber>
|
|
152
|
+
Tab 1
|
|
153
|
+
</DxcNavTabs.Tab>
|
|
154
|
+
<DxcNavTabs.Tab href="#" disabled icon={iconSVG} notificationNumber={5}>
|
|
155
|
+
Tab 2
|
|
156
|
+
</DxcNavTabs.Tab>
|
|
157
|
+
<DxcNavTabs.Tab href="#" icon={largeIcon} notificationNumber={120}>
|
|
158
|
+
Tab 3
|
|
159
|
+
</DxcNavTabs.Tab>
|
|
160
|
+
<DxcNavTabs.Tab href="#" icon={iconSVG}>
|
|
161
|
+
Tab 4
|
|
162
|
+
</DxcNavTabs.Tab>
|
|
163
|
+
</DxcNavTabs>
|
|
164
|
+
</ExampleContainer>
|
|
165
|
+
<ExampleContainer>
|
|
166
|
+
<Title title="With long label" theme="light" level={4} />
|
|
167
|
+
<DxcNavTabs>
|
|
168
|
+
<DxcNavTabs.Tab href="#" active>
|
|
169
|
+
Lorem ipsum dolor sit amet, consectetur adipiscing elit
|
|
170
|
+
</DxcNavTabs.Tab>
|
|
171
|
+
<DxcNavTabs.Tab href="#" icon={iconSVG} disabled notificationNumber={3}>
|
|
172
|
+
Tab 2
|
|
173
|
+
</DxcNavTabs.Tab>
|
|
174
|
+
<DxcNavTabs.Tab href="#" icon={iconSVG}>
|
|
175
|
+
Tab 3
|
|
176
|
+
</DxcNavTabs.Tab>
|
|
177
|
+
</DxcNavTabs>
|
|
178
|
+
</ExampleContainer>
|
|
179
|
+
<Title title="Opinionated theme" theme="light" level={2} />
|
|
180
|
+
<ExampleContainer>
|
|
181
|
+
<Title title="Only label" theme="light" level={4} />
|
|
182
|
+
<HalstackProvider theme={opinionatedTheme}>
|
|
183
|
+
<DxcNavTabs>
|
|
184
|
+
<DxcNavTabs.Tab href="#" active>
|
|
185
|
+
Tab 1
|
|
186
|
+
</DxcNavTabs.Tab>
|
|
187
|
+
<DxcNavTabs.Tab href="#" disabled>
|
|
188
|
+
Tab 2
|
|
189
|
+
</DxcNavTabs.Tab>
|
|
190
|
+
<DxcNavTabs.Tab href="#">Tab 3</DxcNavTabs.Tab>
|
|
191
|
+
<DxcNavTabs.Tab href="#">Tab 4</DxcNavTabs.Tab>
|
|
192
|
+
</DxcNavTabs>
|
|
193
|
+
</HalstackProvider>
|
|
194
|
+
</ExampleContainer>
|
|
195
|
+
<ExampleContainer pseudoState="pseudo-hover">
|
|
196
|
+
<Title title="Hovered tabs" theme="light" level={4} />
|
|
197
|
+
<HalstackProvider theme={opinionatedTheme}>
|
|
198
|
+
<DxcNavTabs>
|
|
199
|
+
<DxcNavTabs.Tab href="#" active>
|
|
200
|
+
Tab 1
|
|
201
|
+
</DxcNavTabs.Tab>
|
|
202
|
+
<DxcNavTabs.Tab href="#" disabled>
|
|
203
|
+
Tab 2
|
|
204
|
+
</DxcNavTabs.Tab>
|
|
205
|
+
<DxcNavTabs.Tab href="#">Tab 3</DxcNavTabs.Tab>
|
|
206
|
+
<DxcNavTabs.Tab href="#">Tab 4</DxcNavTabs.Tab>
|
|
207
|
+
</DxcNavTabs>
|
|
208
|
+
</HalstackProvider>
|
|
209
|
+
</ExampleContainer>
|
|
210
|
+
<ExampleContainer pseudoState="pseudo-focus">
|
|
211
|
+
<Title title="Focused tabs" theme="light" level={4} />
|
|
212
|
+
<HalstackProvider theme={opinionatedTheme}>
|
|
213
|
+
<DxcNavTabs>
|
|
214
|
+
<DxcNavTabs.Tab href="#" active>
|
|
215
|
+
Tab 1
|
|
216
|
+
</DxcNavTabs.Tab>
|
|
217
|
+
<DxcNavTabs.Tab href="#" disabled>
|
|
218
|
+
Tab 2
|
|
219
|
+
</DxcNavTabs.Tab>
|
|
220
|
+
<DxcNavTabs.Tab href="#">Tab 3</DxcNavTabs.Tab>
|
|
221
|
+
<DxcNavTabs.Tab href="#">Tab 4</DxcNavTabs.Tab>
|
|
222
|
+
</DxcNavTabs>
|
|
223
|
+
</HalstackProvider>
|
|
224
|
+
</ExampleContainer>
|
|
225
|
+
<ExampleContainer pseudoState="pseudo-active">
|
|
226
|
+
<Title title="Actived tabs" theme="light" level={4} />
|
|
227
|
+
<HalstackProvider theme={opinionatedTheme}>
|
|
228
|
+
<DxcNavTabs>
|
|
229
|
+
<DxcNavTabs.Tab href="#" active>
|
|
230
|
+
Tab 1
|
|
231
|
+
</DxcNavTabs.Tab>
|
|
232
|
+
<DxcNavTabs.Tab href="#" disabled>
|
|
233
|
+
Tab 2
|
|
234
|
+
</DxcNavTabs.Tab>
|
|
235
|
+
<DxcNavTabs.Tab href="#">Tab 3</DxcNavTabs.Tab>
|
|
236
|
+
<DxcNavTabs.Tab href="#">Tab 4</DxcNavTabs.Tab>
|
|
237
|
+
</DxcNavTabs>
|
|
238
|
+
</HalstackProvider>
|
|
239
|
+
</ExampleContainer>
|
|
240
|
+
<ExampleContainer>
|
|
241
|
+
<Title title="With icon and notification number" theme="light" level={4} />
|
|
242
|
+
<HalstackProvider theme={opinionatedTheme}>
|
|
243
|
+
<DxcNavTabs>
|
|
244
|
+
<DxcNavTabs.Tab href="#" active icon={iconSVG} notificationNumber>
|
|
245
|
+
Tab 1
|
|
246
|
+
</DxcNavTabs.Tab>
|
|
247
|
+
<DxcNavTabs.Tab href="#" disabled icon={iconSVG} notificationNumber={5}>
|
|
248
|
+
Tab 2
|
|
249
|
+
</DxcNavTabs.Tab>
|
|
250
|
+
<DxcNavTabs.Tab href="#" icon={iconSVG} notificationNumber={120}>
|
|
251
|
+
Tab 3
|
|
252
|
+
</DxcNavTabs.Tab>
|
|
253
|
+
<DxcNavTabs.Tab href="#" icon={iconSVG}>
|
|
254
|
+
Tab 4
|
|
255
|
+
</DxcNavTabs.Tab>
|
|
256
|
+
</DxcNavTabs>
|
|
257
|
+
</HalstackProvider>
|
|
258
|
+
</ExampleContainer>
|
|
259
|
+
</>
|
|
260
|
+
);
|