@dxc-technology/halstack-react 0.0.0-c293b72 → 0.0.0-c2b6ec9
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.js +1 -1
- package/HalstackContext.d.ts +2 -5
- package/HalstackContext.js +6 -6
- package/accordion/Accordion.accessibility.test.d.ts +1 -0
- package/accordion/Accordion.accessibility.test.js +4 -4
- package/accordion/Accordion.js +9 -10
- package/accordion/Accordion.stories.tsx +4 -14
- package/accordion/Accordion.test.d.ts +1 -0
- package/accordion/Accordion.test.js +3 -3
- package/accordion-group/AccordionGroup.accessibility.test.d.ts +1 -0
- package/accordion-group/AccordionGroup.accessibility.test.js +11 -17
- package/accordion-group/AccordionGroup.js +1 -1
- package/accordion-group/AccordionGroup.stories.tsx +23 -23
- package/accordion-group/AccordionGroup.test.d.ts +1 -0
- package/accordion-group/AccordionGroup.test.js +5 -9
- package/accordion-group/AccordionGroupAccordion.js +1 -1
- package/action-icon/ActionIcon.accessibility.test.d.ts +1 -0
- package/action-icon/ActionIcon.accessibility.test.js +4 -4
- package/action-icon/ActionIcon.test.d.ts +1 -0
- package/action-icon/ActionIcon.test.js +1 -1
- package/alert/Alert.accessibility.test.d.ts +1 -0
- package/alert/Alert.accessibility.test.js +6 -6
- package/alert/Alert.js +6 -3
- package/alert/Alert.test.d.ts +1 -0
- package/alert/Alert.test.js +1 -1
- package/badge/Badge.accessibility.test.d.ts +1 -0
- package/badge/Badge.accessibility.test.js +5 -5
- package/badge/Badge.test.d.ts +1 -0
- package/badge/Badge.test.js +2 -2
- package/box/Box.accessibility.test.d.ts +1 -0
- package/box/Box.accessibility.test.js +3 -3
- package/box/Box.js +1 -1
- package/box/Box.test.d.ts +1 -0
- package/box/Box.test.js +1 -1
- package/breadcrumbs/Breadcrumbs.accessibility.test.d.ts +1 -0
- package/breadcrumbs/Breadcrumbs.accessibility.test.js +96 -0
- package/breadcrumbs/Breadcrumbs.d.ts +4 -0
- package/breadcrumbs/Breadcrumbs.js +79 -0
- package/breadcrumbs/Breadcrumbs.stories.tsx +194 -0
- package/breadcrumbs/Breadcrumbs.test.d.ts +1 -0
- package/breadcrumbs/Breadcrumbs.test.js +168 -0
- package/breadcrumbs/Item.d.ts +4 -0
- package/breadcrumbs/Item.js +52 -0
- package/breadcrumbs/dropdownTheme.d.ts +53 -0
- package/breadcrumbs/dropdownTheme.js +62 -0
- package/breadcrumbs/types.d.ts +16 -0
- package/breadcrumbs/types.js +5 -0
- package/bulleted-list/BulletedList.accessibility.test.d.ts +1 -0
- package/bulleted-list/BulletedList.accessibility.test.js +18 -6
- package/bulleted-list/BulletedList.js +2 -2
- package/button/Button.accessibility.test.d.ts +1 -0
- package/button/Button.accessibility.test.js +6 -6
- package/button/Button.js +1 -1
- package/button/Button.stories.tsx +3 -3
- package/button/Button.test.d.ts +1 -0
- package/button/Button.test.js +1 -1
- package/card/Card.accessibility.test.d.ts +1 -0
- package/card/Card.accessibility.test.js +3 -3
- package/card/Card.js +3 -2
- package/card/Card.stories.tsx +1 -1
- package/card/Card.test.d.ts +1 -0
- package/card/Card.test.js +1 -1
- package/checkbox/Checkbox.accessibility.test.d.ts +1 -0
- package/checkbox/Checkbox.accessibility.test.js +5 -5
- package/checkbox/Checkbox.js +10 -13
- package/checkbox/Checkbox.test.d.ts +1 -0
- package/checkbox/Checkbox.test.js +1 -1
- package/chip/Chip.accessibility.test.d.ts +1 -0
- package/chip/Chip.accessibility.test.js +4 -4
- package/chip/Chip.js +3 -1
- package/chip/Chip.stories.tsx +1 -1
- package/chip/Chip.test.d.ts +1 -0
- package/chip/Chip.test.js +1 -1
- package/common/coreTokens.js +3 -3
- package/common/variables.d.ts +2 -5
- package/common/variables.js +68 -71
- package/container/Container.stories.tsx +3 -3
- package/contextual-menu/ContextualMenu.accessibility.test.d.ts +1 -0
- package/contextual-menu/ContextualMenu.accessibility.test.js +15 -3
- package/contextual-menu/ContextualMenu.d.ts +3 -5
- package/contextual-menu/ContextualMenu.js +89 -52
- package/contextual-menu/ContextualMenu.stories.tsx +115 -74
- package/contextual-menu/ContextualMenu.test.d.ts +1 -0
- package/contextual-menu/ContextualMenu.test.js +200 -24
- package/contextual-menu/GroupItem.d.ts +4 -0
- package/contextual-menu/GroupItem.js +67 -0
- package/contextual-menu/ItemAction.d.ts +4 -0
- package/contextual-menu/ItemAction.js +50 -0
- package/contextual-menu/MenuItem.d.ts +4 -0
- package/contextual-menu/MenuItem.js +29 -0
- package/contextual-menu/SingleItem.d.ts +4 -0
- package/contextual-menu/SingleItem.js +38 -0
- package/contextual-menu/types.d.ts +50 -11
- package/date-input/Calendar.js +47 -31
- package/date-input/DateInput.accessibility.test.d.ts +1 -0
- package/date-input/DateInput.accessibility.test.js +24 -11
- package/date-input/DateInput.js +27 -21
- package/date-input/DateInput.stories.tsx +18 -12
- package/date-input/DateInput.test.d.ts +1 -0
- package/date-input/DateInput.test.js +39 -39
- package/date-input/DatePicker.js +1 -1
- package/date-input/YearPicker.js +10 -5
- package/dialog/Dialog.accessibility.test.d.ts +1 -0
- package/dialog/Dialog.accessibility.test.js +5 -5
- package/dialog/Dialog.js +9 -20
- package/dialog/Dialog.stories.tsx +8 -4
- package/dialog/Dialog.test.d.ts +1 -0
- package/dialog/Dialog.test.js +111 -48
- package/divider/Divider.accessibility.test.d.ts +1 -0
- package/divider/Divider.accessibility.test.js +2 -2
- package/divider/Divider.test.d.ts +1 -0
- package/dropdown/Dropdown.accessibility.test.d.ts +1 -0
- package/dropdown/Dropdown.accessibility.test.js +12 -9
- package/dropdown/Dropdown.js +16 -15
- package/dropdown/Dropdown.stories.tsx +11 -11
- package/dropdown/Dropdown.test.d.ts +1 -0
- package/dropdown/Dropdown.test.js +101 -72
- package/dropdown/DropdownMenu.js +4 -4
- package/dropdown/DropdownMenuItem.js +2 -1
- package/file-input/FileInput.accessibility.test.d.ts +1 -0
- package/file-input/FileInput.accessibility.test.js +30 -23
- package/file-input/FileInput.js +3 -8
- package/file-input/FileInput.test.d.ts +1 -0
- package/file-input/FileInput.test.js +44 -22
- package/file-input/FileItem.js +6 -2
- package/file-input/types.d.ts +0 -4
- package/footer/Footer.accessibility.test.d.ts +1 -0
- package/footer/Footer.accessibility.test.js +13 -5
- package/footer/Footer.js +1 -1
- package/footer/Footer.stories.tsx +12 -0
- package/footer/Footer.test.d.ts +1 -0
- package/footer/Footer.test.js +1 -1
- package/footer/Icons.js +2 -30
- package/grid/Grid.stories.tsx +3 -1
- package/header/Header.accessibility.test.d.ts +1 -0
- package/header/Header.accessibility.test.js +16 -6
- package/header/Header.js +3 -2
- package/header/Header.stories.tsx +17 -1
- package/header/Header.test.d.ts +1 -0
- package/header/Header.test.js +1 -1
- package/header/Icons.js +1 -6
- package/heading/Heading.accessibility.test.d.ts +1 -0
- package/heading/Heading.accessibility.test.js +3 -3
- package/heading/Heading.js +1 -1
- package/heading/Heading.test.d.ts +1 -0
- package/heading/Heading.test.js +1 -14
- package/icon/Icon.accessibility.test.d.ts +1 -0
- package/icon/Icon.accessibility.test.js +2 -2
- package/icon/Icon.js +1 -1
- package/image/Image.accessibility.test.d.ts +1 -0
- package/image/Image.accessibility.test.js +3 -3
- package/image/Image.js +1 -1
- package/layout/ApplicationLayout.js +9 -6
- package/layout/Icons.d.ts +0 -1
- package/layout/Icons.js +1 -9
- package/link/Link.accessibility.test.d.ts +1 -0
- package/link/Link.accessibility.test.js +8 -12
- package/link/Link.js +1 -1
- package/link/Link.stories.tsx +2 -2
- package/link/Link.test.d.ts +1 -0
- package/link/Link.test.js +1 -1
- package/main.d.ts +2 -1
- package/main.js +8 -1
- package/nav-tabs/NavTabs.accessibility.test.d.ts +1 -0
- package/nav-tabs/NavTabs.accessibility.test.js +3 -3
- package/nav-tabs/NavTabs.js +19 -4
- package/nav-tabs/NavTabs.stories.tsx +18 -3
- package/nav-tabs/NavTabs.test.d.ts +1 -0
- package/nav-tabs/NavTabs.test.js +9 -7
- package/nav-tabs/Tab.js +7 -7
- package/number-input/NumberInput.accessibility.test.d.ts +1 -0
- package/number-input/NumberInput.accessibility.test.js +9 -10
- package/number-input/NumberInput.js +6 -3
- package/number-input/NumberInput.stories.tsx +11 -16
- package/number-input/NumberInput.test.d.ts +1 -0
- package/number-input/NumberInput.test.js +6 -7
- package/package.json +25 -20
- package/paginator/Paginator.accessibility.test.d.ts +1 -0
- package/paginator/Paginator.accessibility.test.js +4 -5
- package/paginator/Paginator.js +13 -10
- package/paginator/Paginator.test.d.ts +1 -0
- package/paginator/Paginator.test.js +2 -3
- package/paragraph/Paragraph.accessibility.test.d.ts +1 -0
- package/paragraph/Paragraph.accessibility.test.js +2 -2
- package/password-input/PasswordInput.accessibility.test.d.ts +1 -0
- package/password-input/PasswordInput.accessibility.test.js +7 -8
- package/password-input/PasswordInput.js +11 -7
- package/password-input/PasswordInput.stories.tsx +10 -1
- package/password-input/PasswordInput.test.d.ts +1 -0
- package/password-input/PasswordInput.test.js +6 -7
- package/progress-bar/ProgressBar.accessibility.test.d.ts +1 -0
- package/progress-bar/ProgressBar.accessibility.test.js +3 -3
- package/progress-bar/ProgressBar.js +6 -4
- package/progress-bar/ProgressBar.test.d.ts +1 -0
- package/progress-bar/ProgressBar.test.js +1 -1
- package/quick-nav/QuickNav.accessibility.test.d.ts +1 -0
- package/quick-nav/QuickNav.accessibility.test.js +2 -2
- package/quick-nav/QuickNav.js +1 -1
- package/radio-group/Radio.js +6 -9
- package/radio-group/RadioGroup.accessibility.test.d.ts +1 -0
- package/radio-group/RadioGroup.accessibility.test.js +4 -4
- package/radio-group/RadioGroup.js +14 -16
- package/radio-group/RadioGroup.test.d.ts +1 -0
- package/radio-group/RadioGroup.test.js +3 -5
- package/resultset-table/ResultsetTable.accessibility.test.d.ts +1 -0
- package/resultset-table/ResultsetTable.accessibility.test.js +16 -6
- package/resultset-table/ResultsetTable.js +3 -2
- package/resultset-table/ResultsetTable.stories.tsx +13 -1
- package/resultset-table/ResultsetTable.test.d.ts +1 -0
- package/resultset-table/ResultsetTable.test.js +2 -4
- package/select/Listbox.js +19 -13
- package/select/Option.js +2 -1
- package/select/Select.accessibility.test.d.ts +1 -0
- package/select/Select.accessibility.test.js +18 -8
- package/select/Select.js +25 -21
- package/select/Select.stories.tsx +36 -15
- package/select/Select.test.d.ts +1 -0
- package/select/Select.test.js +42 -51
- package/sidenav/Sidenav.accessibility.test.d.ts +1 -0
- package/sidenav/Sidenav.accessibility.test.js +3 -3
- package/sidenav/Sidenav.js +1 -1
- package/sidenav/Sidenav.stories.tsx +1 -1
- package/sidenav/Sidenav.test.d.ts +1 -0
- package/sidenav/Sidenav.test.js +1 -1
- package/slider/Slider.accessibility.test.d.ts +1 -0
- package/slider/Slider.accessibility.test.js +5 -6
- package/slider/Slider.js +11 -13
- package/slider/Slider.stories.tsx +180 -0
- package/slider/Slider.test.d.ts +1 -0
- package/slider/Slider.test.js +13 -11
- package/spinner/Spinner.accessibility.test.d.ts +1 -0
- package/spinner/Spinner.accessibility.test.js +6 -6
- package/spinner/Spinner.js +6 -2
- package/spinner/Spinner.test.d.ts +1 -0
- package/spinner/Spinner.test.js +1 -1
- package/status-light/StatusLight.accessibility.test.d.ts +1 -0
- package/status-light/StatusLight.accessibility.test.js +8 -8
- package/status-light/StatusLight.test.d.ts +1 -0
- package/status-light/StatusLight.test.js +1 -1
- package/switch/Switch.accessibility.test.d.ts +1 -0
- package/switch/Switch.accessibility.test.js +14 -5
- package/switch/Switch.js +6 -9
- package/switch/Switch.stories.tsx +12 -0
- package/switch/Switch.test.d.ts +1 -0
- package/switch/Switch.test.js +1 -1
- package/table/Table.accessibility.test.d.ts +1 -0
- package/table/Table.accessibility.test.js +16 -6
- package/table/Table.js +1 -1
- package/table/Table.stories.tsx +13 -1
- package/table/Table.test.d.ts +1 -0
- package/table/Table.test.js +2 -4
- package/tabs/Tab.js +1 -1
- package/tabs/Tabs.accessibility.test.d.ts +1 -0
- package/tabs/Tabs.accessibility.test.js +3 -3
- package/tabs/Tabs.js +1 -1
- package/tabs/Tabs.stories.tsx +7 -1
- package/tabs/Tabs.test.d.ts +1 -0
- package/tabs/Tabs.test.js +1 -1
- package/tag/Tag.accessibility.test.d.ts +1 -0
- package/tag/Tag.accessibility.test.js +4 -4
- package/tag/Tag.js +1 -1
- package/tag/Tag.stories.tsx +1 -1
- package/tag/Tag.test.d.ts +1 -0
- package/tag/Tag.test.js +1 -1
- package/text-input/Suggestion.js +1 -1
- package/text-input/Suggestions.js +14 -6
- package/text-input/TextInput.accessibility.test.d.ts +1 -0
- package/text-input/TextInput.accessibility.test.js +11 -12
- package/text-input/TextInput.js +29 -25
- package/text-input/TextInput.stories.tsx +19 -7
- package/text-input/TextInput.test.d.ts +1 -0
- package/text-input/TextInput.test.js +2 -3
- package/textarea/Textarea.accessibility.test.d.ts +1 -0
- package/textarea/Textarea.accessibility.test.js +7 -7
- package/textarea/Textarea.js +14 -13
- package/textarea/Textarea.test.d.ts +1 -0
- package/textarea/Textarea.test.js +1 -1
- package/toggle-group/ToggleGroup.accessibility.test.d.ts +1 -0
- package/toggle-group/ToggleGroup.accessibility.test.js +5 -5
- package/toggle-group/ToggleGroup.js +6 -9
- package/toggle-group/ToggleGroup.stories.tsx +1 -1
- package/toggle-group/ToggleGroup.test.d.ts +1 -0
- package/toggle-group/ToggleGroup.test.js +1 -1
- package/tooltip/Tooltip.accessibility.test.d.ts +1 -0
- package/tooltip/Tooltip.accessibility.test.js +144 -0
- package/tooltip/Tooltip.d.ts +4 -0
- package/tooltip/Tooltip.js +50 -0
- package/tooltip/Tooltip.stories.tsx +111 -0
- package/tooltip/Tooltip.test.d.ts +1 -0
- package/tooltip/Tooltip.test.js +112 -0
- package/tooltip/types.d.ts +16 -0
- package/tooltip/types.js +5 -0
- package/typography/Typography.accessibility.test.d.ts +1 -0
- package/typography/Typography.accessibility.test.js +12 -12
- package/typography/Typography.stories.tsx +1 -3
- package/useTheme.d.ts +2 -5
- package/utils/BaseTypography.js +1 -1
- package/utils/FocusLock.js +3 -2
- package/wizard/Wizard.accessibility.test.d.ts +1 -0
- package/wizard/Wizard.accessibility.test.js +3 -3
- package/wizard/Wizard.js +1 -9
- package/wizard/Wizard.stories.tsx +1 -1
- package/wizard/Wizard.test.d.ts +1 -0
- package/wizard/Wizard.test.js +1 -1
- package/contextual-menu/MenuItemAction.d.ts +0 -4
- package/contextual-menu/MenuItemAction.js +0 -46
- package/paginator/Icons.d.ts +0 -5
- package/paginator/Icons.js +0 -40
|
@@ -1,7 +1,5 @@
|
|
|
1
1
|
import React from "react";
|
|
2
|
-
import
|
|
3
|
-
declare const
|
|
4
|
-
|
|
5
|
-
Badge(props: BadgePropsType): React.JSX.Element;
|
|
6
|
-
};
|
|
2
|
+
import ContextualMenuPropsType, { ContextualMenuContextProps } from "./types";
|
|
3
|
+
export declare const ContextualMenuContext: React.Context<ContextualMenuContextProps>;
|
|
4
|
+
declare const DxcContextualMenu: ({ items }: ContextualMenuPropsType) => React.JSX.Element;
|
|
7
5
|
export default DxcContextualMenu;
|
|
@@ -5,67 +5,104 @@ var _typeof = require("@babel/runtime/helpers/typeof");
|
|
|
5
5
|
Object.defineProperty(exports, "__esModule", {
|
|
6
6
|
value: true
|
|
7
7
|
});
|
|
8
|
-
exports["default"] = void 0;
|
|
8
|
+
exports["default"] = exports.ContextualMenuContext = void 0;
|
|
9
9
|
var _taggedTemplateLiteral2 = _interopRequireDefault(require("@babel/runtime/helpers/taggedTemplateLiteral"));
|
|
10
|
-
var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
|
|
11
10
|
var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));
|
|
11
|
+
var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
|
|
12
12
|
var _react = _interopRequireWildcard(require("react"));
|
|
13
13
|
var _styledComponents = _interopRequireDefault(require("styled-components"));
|
|
14
14
|
var _coreTokens = _interopRequireDefault(require("../common/coreTokens"));
|
|
15
|
-
var
|
|
16
|
-
var
|
|
17
|
-
var
|
|
15
|
+
var _Divider = _interopRequireDefault(require("../divider/Divider"));
|
|
16
|
+
var _Inset = _interopRequireDefault(require("../inset/Inset"));
|
|
17
|
+
var _MenuItem = _interopRequireDefault(require("./MenuItem"));
|
|
18
|
+
var _templateObject, _templateObject2, _templateObject3;
|
|
18
19
|
function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(e) { return e ? t : r; })(e); }
|
|
19
|
-
function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != _typeof(e) && "function" != typeof e) return { "default": e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u &&
|
|
20
|
+
function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != _typeof(e) && "function" != typeof e) return { "default": e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && {}.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n["default"] = e, t && t.set(e, n), n; }
|
|
21
|
+
function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
|
|
22
|
+
function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { (0, _defineProperty2["default"])(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
|
|
23
|
+
var ContextualMenuContext = exports.ContextualMenuContext = /*#__PURE__*/(0, _react.createContext)(null);
|
|
24
|
+
var isGroupItem = function isGroupItem(item) {
|
|
25
|
+
return "items" in item;
|
|
26
|
+
};
|
|
27
|
+
var isSection = function isSection(item) {
|
|
28
|
+
return "items" in item && !("label" in item);
|
|
29
|
+
};
|
|
30
|
+
var addIdToItems = function addIdToItems(items) {
|
|
31
|
+
var accId = 0;
|
|
32
|
+
var innerAddIdToItems = function innerAddIdToItems(items) {
|
|
33
|
+
return items.map(function (item) {
|
|
34
|
+
return isSection(item) ? _objectSpread(_objectSpread({}, item), {}, {
|
|
35
|
+
items: innerAddIdToItems(item.items)
|
|
36
|
+
}) : isGroupItem(item) ? _objectSpread(_objectSpread({}, item), {}, {
|
|
37
|
+
items: innerAddIdToItems(item.items)
|
|
38
|
+
}) : _objectSpread(_objectSpread({}, item), {}, {
|
|
39
|
+
id: accId++
|
|
40
|
+
});
|
|
41
|
+
});
|
|
42
|
+
};
|
|
43
|
+
return innerAddIdToItems(items);
|
|
44
|
+
};
|
|
20
45
|
var DxcContextualMenu = function DxcContextualMenu(_ref) {
|
|
21
|
-
var items = _ref.items
|
|
22
|
-
|
|
23
|
-
defaultSelectedItemIndex = _ref$defaultSelectedI === void 0 ? -1 : _ref$defaultSelectedI;
|
|
24
|
-
var _useState = (0, _react.useState)(defaultSelectedItemIndex),
|
|
46
|
+
var items = _ref.items;
|
|
47
|
+
var _useState = (0, _react.useState)(-1),
|
|
25
48
|
_useState2 = (0, _slicedToArray2["default"])(_useState, 2),
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
var
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
selected: selectedItemIndex === index,
|
|
34
|
-
onSelect: function onSelect() {
|
|
35
|
-
var _item$onSelect;
|
|
36
|
-
setSelectedItemIndex(index);
|
|
37
|
-
(_item$onSelect = item.onSelect) === null || _item$onSelect === void 0 ? void 0 : _item$onSelect.call(item);
|
|
38
|
-
}
|
|
39
|
-
})));
|
|
40
|
-
};
|
|
41
|
-
var accLength = 0;
|
|
42
|
-
var renderSection = function renderSection(section, currentSectionIndex, items) {
|
|
43
|
-
var startingIndex = accLength;
|
|
44
|
-
accLength += section.items.length;
|
|
49
|
+
selectedItemId = _useState2[0],
|
|
50
|
+
setSelectedItemId = _useState2[1];
|
|
51
|
+
var contextualMenuRef = (0, _react.useRef)(null);
|
|
52
|
+
var itemsWithId = (0, _react.useMemo)(function () {
|
|
53
|
+
return addIdToItems(items);
|
|
54
|
+
}, [items]);
|
|
55
|
+
var renderSection = function renderSection(section, currentSectionIndex, length) {
|
|
45
56
|
return /*#__PURE__*/_react["default"].createElement(_react.Fragment, {
|
|
46
|
-
key: "
|
|
47
|
-
}, /*#__PURE__*/_react["default"].createElement(
|
|
48
|
-
role: "group"
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
57
|
+
key: "section-".concat(currentSectionIndex)
|
|
58
|
+
}, /*#__PURE__*/_react["default"].createElement("li", {
|
|
59
|
+
role: "group",
|
|
60
|
+
"aria-labelledby": section.title
|
|
61
|
+
}, section.title != null && /*#__PURE__*/_react["default"].createElement(Title, {
|
|
62
|
+
id: section.title
|
|
63
|
+
}, section.title), /*#__PURE__*/_react["default"].createElement(SectionList, null, section.items.map(function (item, index) {
|
|
64
|
+
return /*#__PURE__*/_react["default"].createElement(_MenuItem["default"], {
|
|
65
|
+
item: item,
|
|
66
|
+
key: "".concat(item.label, "-").concat(index)
|
|
67
|
+
});
|
|
68
|
+
}))), currentSectionIndex !== length - 1 && /*#__PURE__*/_react["default"].createElement(_Inset["default"], {
|
|
69
|
+
top: "0.25rem",
|
|
70
|
+
bottom: "0.25rem"
|
|
71
|
+
}, /*#__PURE__*/_react["default"].createElement(_Divider["default"], {
|
|
72
|
+
color: "lightGrey"
|
|
73
|
+
})));
|
|
54
74
|
};
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
var
|
|
62
|
-
var
|
|
63
|
-
var
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
})
|
|
75
|
+
var _useState3 = (0, _react.useState)(true),
|
|
76
|
+
_useState4 = (0, _slicedToArray2["default"])(_useState3, 2),
|
|
77
|
+
firstUpdate = _useState4[0],
|
|
78
|
+
setFirstUpdate = _useState4[1];
|
|
79
|
+
(0, _react.useLayoutEffect)(function () {
|
|
80
|
+
if (selectedItemId !== -1 && firstUpdate) {
|
|
81
|
+
var _contextualMenuEl$scr;
|
|
82
|
+
var contextualMenuEl = contextualMenuRef === null || contextualMenuRef === void 0 ? void 0 : contextualMenuRef.current;
|
|
83
|
+
var selectedItemEl = contextualMenuEl === null || contextualMenuEl === void 0 ? void 0 : contextualMenuEl.querySelector("[aria-selected='true']");
|
|
84
|
+
contextualMenuEl === null || contextualMenuEl === void 0 ? void 0 : (_contextualMenuEl$scr = contextualMenuEl.scrollTo) === null || _contextualMenuEl$scr === void 0 ? void 0 : _contextualMenuEl$scr.call(contextualMenuEl, {
|
|
85
|
+
top: (selectedItemEl === null || selectedItemEl === void 0 ? void 0 : selectedItemEl.offsetTop) - (contextualMenuEl === null || contextualMenuEl === void 0 ? void 0 : contextualMenuEl.clientHeight) / 2
|
|
86
|
+
});
|
|
87
|
+
setFirstUpdate(false);
|
|
88
|
+
}
|
|
89
|
+
}, [firstUpdate, selectedItemId]);
|
|
90
|
+
return /*#__PURE__*/_react["default"].createElement(ContextualMenu, {
|
|
91
|
+
role: "menu",
|
|
92
|
+
ref: contextualMenuRef
|
|
93
|
+
}, /*#__PURE__*/_react["default"].createElement(ContextualMenuContext.Provider, {
|
|
94
|
+
value: {
|
|
95
|
+
selectedItemId: selectedItemId,
|
|
96
|
+
setSelectedItemId: setSelectedItemId
|
|
97
|
+
}
|
|
98
|
+
}, itemsWithId.map(function (item, index) {
|
|
99
|
+
return "items" in item && !("label" in item) ? renderSection(item, index, itemsWithId.length) : /*#__PURE__*/_react["default"].createElement(_MenuItem["default"], {
|
|
100
|
+
item: item,
|
|
101
|
+
key: "".concat(item.label, "-").concat(index)
|
|
102
|
+
});
|
|
103
|
+
})));
|
|
70
104
|
};
|
|
105
|
+
var ContextualMenu = _styledComponents["default"].ul(_templateObject || (_templateObject = (0, _taggedTemplateLiteral2["default"])(["\n box-sizing: border-box;\n margin: 0;\n border: 1px solid ", ";\n border-radius: 0.25rem;\n padding: ", " ", ";\n display: grid;\n gap: ", ";\n min-width: 248px;\n max-height: 100%;\n background-color: ", ";\n overflow-y: auto;\n &::-webkit-scrollbar {\n width: 8px;\n height: 8px;\n }\n &::-webkit-scrollbar-thumb {\n background-color: ", ";\n border-radius: 0.25rem;\n }\n &::-webkit-scrollbar-track {\n background-color: ", ";\n border-radius: 0.25rem;\n }\n"])), _coreTokens["default"].color_grey_200, _coreTokens["default"].spacing_16, _coreTokens["default"].spacing_8, _coreTokens["default"].spacing_4, _coreTokens["default"].color_white, _coreTokens["default"].color_grey_700, _coreTokens["default"].color_grey_300);
|
|
106
|
+
var SectionList = _styledComponents["default"].ul(_templateObject2 || (_templateObject2 = (0, _taggedTemplateLiteral2["default"])(["\n list-style: none;\n margin: 0;\n padding: 0;\n display: grid;\n gap: ", ";\n"])), _coreTokens["default"].spacing_4);
|
|
107
|
+
var Title = _styledComponents["default"].h2(_templateObject3 || (_templateObject3 = (0, _taggedTemplateLiteral2["default"])(["\n margin: 0 0 ", " 0;\n padding: ", ";\n color: ", ";\n font-family: ", ";\n font-size: ", ";\n font-weight: ", ";\n line-height: 24px;\n"])), _coreTokens["default"].spacing_4, _coreTokens["default"].spacing_4, _coreTokens["default"].color_grey_900, _coreTokens["default"].type_sans, _coreTokens["default"].type_scale_03, _coreTokens["default"].type_semibold);
|
|
71
108
|
var _default = exports["default"] = DxcContextualMenu;
|
|
@@ -1,32 +1,34 @@
|
|
|
1
1
|
import React from "react";
|
|
2
2
|
import Title from "../../.storybook/components/Title";
|
|
3
|
-
import DxcContextualMenu from "./ContextualMenu";
|
|
3
|
+
import DxcContextualMenu, { ContextualMenuContext } from "./ContextualMenu";
|
|
4
4
|
import DxcContainer from "../container/Container";
|
|
5
|
-
import
|
|
5
|
+
import SingleItem from "./SingleItem";
|
|
6
6
|
import ExampleContainer from "../../.storybook/components/ExampleContainer";
|
|
7
|
+
import DxcBadge from "../badge/Badge";
|
|
8
|
+
import { disabledRules } from "../../test/accessibility/rules/specific/contextual-menu/disabledRules";
|
|
9
|
+
import preview from "../../.storybook/preview";
|
|
7
10
|
|
|
8
11
|
export default {
|
|
9
12
|
title: "Contextual Menu",
|
|
10
13
|
component: DxcContextualMenu,
|
|
14
|
+
parameters: {
|
|
15
|
+
// TODO: REMOVE
|
|
16
|
+
a11y: {
|
|
17
|
+
config: {
|
|
18
|
+
rules: [
|
|
19
|
+
...disabledRules.map((ruleId) => ({ id: ruleId, reviewOnFail: true })),
|
|
20
|
+
...preview?.parameters?.a11y?.config?.rules,
|
|
21
|
+
],
|
|
22
|
+
},
|
|
23
|
+
},
|
|
24
|
+
},
|
|
11
25
|
};
|
|
12
26
|
|
|
13
|
-
const key_icon = (
|
|
14
|
-
<svg xmlns="http://www.w3.org/2000/svg" height="24" viewBox="0 -960 960 960" width="24" fill="currentColor">
|
|
15
|
-
<path d="M280-400q-33 0-56.5-23.5T200-480q0-33 23.5-56.5T280-560q33 0 56.5 23.5T360-480q0 33-23.5 56.5T280-400Zm0 160q-100 0-170-70T40-480q0-100 70-170t170-70q67 0 121.5 33t86.5 87h352l120 120-180 180-80-60-80 60-85-60h-47q-32 54-86.5 87T280-240Zm0-80q56 0 98.5-34t56.5-86h125l58 41 82-61 71 55 75-75-40-40H435q-14-52-56.5-86T280-640q-66 0-113 47t-47 113q0 66 47 113t113 47Z" />
|
|
16
|
-
</svg>
|
|
17
|
-
);
|
|
18
|
-
|
|
19
|
-
const fav_icon = (
|
|
20
|
-
<svg xmlns="http://www.w3.org/2000/svg" height="24" viewBox="0 -960 960 960" width="24" fill="currentColor">
|
|
21
|
-
<path d="m480-120-58-52q-101-91-167-157T150-447.5Q111-500 95.5-544T80-634q0-94 63-157t157-63q52 0 99 22t81 62q34-40 81-62t99-22q94 0 157 63t63 157q0 46-15.5 90T810-447.5Q771-395 705-329T538-172l-58 52Zm0-108q96-86 158-147.5t98-107q36-45.5 50-81t14-70.5q0-60-40-100t-100-40q-47 0-87 26.5T518-680h-76q-15-41-55-67.5T300-774q-60 0-100 40t-40 100q0 35 14 70.5t50 81q36 45.5 98 107T480-228Zm0-273Z" />
|
|
22
|
-
</svg>
|
|
23
|
-
);
|
|
24
|
-
|
|
25
27
|
const items = [{ label: "Item 1" }, { label: "Item 2" }, { label: "Item 3" }, { label: "Item 4" }];
|
|
26
28
|
|
|
27
29
|
const sections = [
|
|
28
30
|
{
|
|
29
|
-
title: "
|
|
31
|
+
title: "Section title",
|
|
30
32
|
items: [{ label: "Approved locations" }, { label: "Approved locations" }, { label: "Approved locations" }],
|
|
31
33
|
},
|
|
32
34
|
{
|
|
@@ -34,32 +36,65 @@ const sections = [
|
|
|
34
36
|
},
|
|
35
37
|
];
|
|
36
38
|
|
|
39
|
+
const groupItems = [
|
|
40
|
+
{
|
|
41
|
+
title: "Section 1",
|
|
42
|
+
items: [
|
|
43
|
+
{
|
|
44
|
+
label: "Grouped Item 1",
|
|
45
|
+
icon: "favorite",
|
|
46
|
+
items: [
|
|
47
|
+
{ label: "Item 1" },
|
|
48
|
+
{
|
|
49
|
+
label: "Grouped Item 2",
|
|
50
|
+
items: [
|
|
51
|
+
{
|
|
52
|
+
label: "Item 2",
|
|
53
|
+
icon: "bookmark",
|
|
54
|
+
badge: <DxcBadge color="purple" label="Experimental" />,
|
|
55
|
+
},
|
|
56
|
+
{ label: "Selected Item 3", selectedByDefault: true },
|
|
57
|
+
],
|
|
58
|
+
},
|
|
59
|
+
],
|
|
60
|
+
badge: <DxcBadge color="green" label="New" />,
|
|
61
|
+
},
|
|
62
|
+
{ label: "Item 4", icon: "key" },
|
|
63
|
+
],
|
|
64
|
+
},
|
|
65
|
+
{
|
|
66
|
+
title: "Section 2",
|
|
67
|
+
items: [
|
|
68
|
+
{ label: "Item 5" },
|
|
69
|
+
{ label: "Grouped Item 6", items: [{ label: "Item 7" }, { label: "Item 8" }] },
|
|
70
|
+
{ label: "Item 9" },
|
|
71
|
+
],
|
|
72
|
+
},
|
|
73
|
+
];
|
|
74
|
+
|
|
37
75
|
const itemsWithIcon = [
|
|
38
76
|
{
|
|
39
77
|
label: "Item 1",
|
|
40
|
-
icon:
|
|
78
|
+
icon: (
|
|
79
|
+
<svg xmlns="http://www.w3.org/2000/svg" height="24" viewBox="0 -960 960 960" width="24">
|
|
80
|
+
<path d="M200-120v-640q0-33 23.5-56.5T280-840h400q33 0 56.5 23.5T760-760v640L480-240 200-120Zm80-122 200-86 200 86v-518H280v518Zm0-518h400-400Z" />
|
|
81
|
+
</svg>
|
|
82
|
+
),
|
|
41
83
|
},
|
|
42
84
|
{
|
|
43
85
|
label: "Item 2",
|
|
44
|
-
icon:
|
|
86
|
+
icon: "star",
|
|
45
87
|
},
|
|
46
88
|
];
|
|
47
89
|
|
|
48
|
-
const
|
|
90
|
+
const itemsWithBadge = [
|
|
49
91
|
{
|
|
50
92
|
label: "Item 1",
|
|
51
|
-
|
|
93
|
+
badge: <DxcBadge color="green" label="New" />,
|
|
52
94
|
},
|
|
53
95
|
{
|
|
54
96
|
label: "Item 2",
|
|
55
|
-
|
|
56
|
-
<svg width="12" height="12" viewBox="0 0 12 12" fill="currentColor" xmlns="http://www.w3.org/2000/svg">
|
|
57
|
-
<path
|
|
58
|
-
d="M10.6667 10.6667H1.33333V1.33333H6V0H1.33333C0.593333 0 0 0.6 0 1.33333V10.6667C0 11.4 0.593333 12 1.33333 12H10.6667C11.4 12 12 11.4 12 10.6667V6H10.6667V10.6667ZM7.33333 0V1.33333H9.72667L3.17333 7.88667L4.11333 8.82667L10.6667 2.27333V4.66667H12V0H7.33333Z"
|
|
59
|
-
fill="#323232"
|
|
60
|
-
/>
|
|
61
|
-
</svg>
|
|
62
|
-
),
|
|
97
|
+
badge: <DxcBadge color="purple" label="Experimental" />,
|
|
63
98
|
},
|
|
64
99
|
];
|
|
65
100
|
|
|
@@ -78,7 +113,7 @@ const sectionsWithScroll = [
|
|
|
78
113
|
{ label: "Approved locations" },
|
|
79
114
|
{ label: "Approved locations" },
|
|
80
115
|
{ label: "Approved locations" },
|
|
81
|
-
{ label: "Approved locations" },
|
|
116
|
+
{ label: "Approved locations", selectedByDefault: true },
|
|
82
117
|
],
|
|
83
118
|
},
|
|
84
119
|
];
|
|
@@ -86,20 +121,16 @@ const sectionsWithScroll = [
|
|
|
86
121
|
const itemsWithTruncatedText = [
|
|
87
122
|
{
|
|
88
123
|
label: "Item with a very long label that should be truncated",
|
|
89
|
-
|
|
90
|
-
icon:
|
|
124
|
+
badge: <DxcBadge color="green" label="New" />,
|
|
125
|
+
icon: (
|
|
126
|
+
<svg xmlns="http://www.w3.org/2000/svg" height="24" viewBox="0 -960 960 960" width="24">
|
|
127
|
+
<path d="M200-120v-640q0-33 23.5-56.5T280-840h400q33 0 56.5 23.5T760-760v640L480-240 200-120Zm80-122 200-86 200 86v-518H280v518Zm0-518h400-400Z" />
|
|
128
|
+
</svg>
|
|
129
|
+
),
|
|
91
130
|
},
|
|
92
131
|
{
|
|
93
132
|
label: "Item 2",
|
|
94
|
-
|
|
95
|
-
<svg width="12" height="12" viewBox="0 0 12 12" fill="currentColor" xmlns="http://www.w3.org/2000/svg">
|
|
96
|
-
<path
|
|
97
|
-
d="M10.6667 10.6667H1.33333V1.33333H6V0H1.33333C0.593333 0 0 0.6 0 1.33333V10.6667C0 11.4 0.593333 12 1.33333 12H10.6667C11.4 12 12 11.4 12 10.6667V6H10.6667V10.6667ZM7.33333 0V1.33333H9.72667L3.17333 7.88667L4.11333 8.82667L10.6667 2.27333V4.66667H12V0H7.33333Z"
|
|
98
|
-
fill="#323232"
|
|
99
|
-
/>
|
|
100
|
-
</svg>
|
|
101
|
-
),
|
|
102
|
-
icon: fav_icon,
|
|
133
|
+
icon: "favorite",
|
|
103
134
|
},
|
|
104
135
|
];
|
|
105
136
|
|
|
@@ -115,16 +146,22 @@ export const Chromatic = () => (
|
|
|
115
146
|
<DxcContextualMenu items={sections} />
|
|
116
147
|
</DxcContainer>
|
|
117
148
|
</ExampleContainer>
|
|
149
|
+
<Title title="With group items" theme="light" level={3} />
|
|
150
|
+
<ExampleContainer>
|
|
151
|
+
<DxcContainer width="300px">
|
|
152
|
+
<DxcContextualMenu items={groupItems} />
|
|
153
|
+
</DxcContainer>
|
|
154
|
+
</ExampleContainer>
|
|
118
155
|
<Title title="With icons" theme="light" level={3} />
|
|
119
156
|
<ExampleContainer>
|
|
120
157
|
<DxcContainer width="300px">
|
|
121
|
-
<DxcContextualMenu items={itemsWithIcon}
|
|
158
|
+
<DxcContextualMenu items={itemsWithIcon} />
|
|
122
159
|
</DxcContainer>
|
|
123
160
|
</ExampleContainer>
|
|
124
|
-
<Title title="With
|
|
161
|
+
<Title title="With badge" theme="light" level={3} />
|
|
125
162
|
<ExampleContainer>
|
|
126
163
|
<DxcContainer width="300px">
|
|
127
|
-
<DxcContextualMenu items={
|
|
164
|
+
<DxcContextualMenu items={itemsWithBadge} />
|
|
128
165
|
</DxcContainer>
|
|
129
166
|
</ExampleContainer>
|
|
130
167
|
<Title title="With label truncated" theme="light" level={3} />
|
|
@@ -133,7 +170,7 @@ export const Chromatic = () => (
|
|
|
133
170
|
<DxcContextualMenu items={itemsWithTruncatedText} />
|
|
134
171
|
</DxcContainer>
|
|
135
172
|
</ExampleContainer>
|
|
136
|
-
<Title title="With scroll" theme="light" level={3} />
|
|
173
|
+
<Title title="With auto-scroll" theme="light" level={3} />
|
|
137
174
|
<ExampleContainer>
|
|
138
175
|
<DxcContainer height="300px" width="300px">
|
|
139
176
|
<DxcContextualMenu items={sectionsWithScroll} />
|
|
@@ -148,35 +185,39 @@ export const Chromatic = () => (
|
|
|
148
185
|
</>
|
|
149
186
|
);
|
|
150
187
|
|
|
151
|
-
export const
|
|
152
|
-
|
|
153
|
-
<
|
|
154
|
-
|
|
155
|
-
<
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
<
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
<
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
<
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
|
|
172
|
-
|
|
173
|
-
|
|
174
|
-
|
|
175
|
-
|
|
176
|
-
|
|
177
|
-
|
|
178
|
-
|
|
179
|
-
|
|
180
|
-
|
|
181
|
-
|
|
188
|
+
export const SingleItemStates = () => (
|
|
189
|
+
<DxcContainer width="300px">
|
|
190
|
+
<ContextualMenuContext.Provider value={{ selectedItemId: -1, setSelectedItemId: () => {} }}>
|
|
191
|
+
<Title title="Default" theme="light" level={3} />
|
|
192
|
+
<ExampleContainer>
|
|
193
|
+
<SingleItem {...items[0]} id={0} depthLevel={0} />
|
|
194
|
+
</ExampleContainer>
|
|
195
|
+
<Title title="Focus" theme="light" level={3} />
|
|
196
|
+
<ExampleContainer pseudoState="pseudo-focus">
|
|
197
|
+
<SingleItem {...items[0]} id={0} depthLevel={0} />
|
|
198
|
+
</ExampleContainer>
|
|
199
|
+
<Title title="Hover" theme="light" level={3} />
|
|
200
|
+
<ExampleContainer pseudoState="pseudo-hover">
|
|
201
|
+
<SingleItem {...items[0]} id={0} depthLevel={0} />
|
|
202
|
+
</ExampleContainer>
|
|
203
|
+
<Title title="Active" theme="light" level={3} />
|
|
204
|
+
<ExampleContainer pseudoState="pseudo-active">
|
|
205
|
+
<SingleItem {...items[0]} id={0} depthLevel={0} />
|
|
206
|
+
</ExampleContainer>
|
|
207
|
+
</ContextualMenuContext.Provider>
|
|
208
|
+
<ContextualMenuContext.Provider value={{ selectedItemId: 0, setSelectedItemId: () => {} }}>
|
|
209
|
+
<Title title="Selected" theme="light" level={3} />
|
|
210
|
+
<ExampleContainer>
|
|
211
|
+
<SingleItem {...items[0]} id={0} depthLevel={0} />
|
|
212
|
+
</ExampleContainer>
|
|
213
|
+
<Title title="Selected hover" theme="light" level={3} />
|
|
214
|
+
<ExampleContainer pseudoState="pseudo-hover">
|
|
215
|
+
<SingleItem {...items[0]} id={0} depthLevel={0} />
|
|
216
|
+
</ExampleContainer>
|
|
217
|
+
<Title title="Selected active" theme="light" level={3} />
|
|
218
|
+
<ExampleContainer pseudoState="pseudo-active">
|
|
219
|
+
<SingleItem {...items[0]} id={0} depthLevel={0} />
|
|
220
|
+
</ExampleContainer>
|
|
221
|
+
</ContextualMenuContext.Provider>
|
|
222
|
+
</DxcContainer>
|
|
182
223
|
);
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|