@itwin/itwinui-react 1.20.0 → 1.21.0
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 +7 -0
- package/cjs/core/Alert/Alert.d.ts +1 -1
- package/cjs/core/Alert/Alert.js +3 -4
- package/cjs/core/Badge/Badge.d.ts +1 -2
- package/cjs/core/Badge/Badge.js +4 -5
- package/cjs/core/Breadcrumbs/Breadcrumbs.d.ts +1 -1
- package/cjs/core/Breadcrumbs/Breadcrumbs.js +4 -6
- package/cjs/core/ButtonGroup/ButtonGroup.d.ts +1 -1
- package/cjs/core/ButtonGroup/ButtonGroup.js +3 -4
- package/cjs/core/Buttons/Button/Button.js +2 -2
- package/cjs/core/Buttons/DropdownButton/DropdownButton.js +3 -4
- package/cjs/core/Buttons/IconButton/IconButton.js +2 -2
- package/cjs/core/Buttons/IdeasButton/IdeasButton.js +2 -2
- package/cjs/core/Buttons/SplitButton/SplitButton.js +2 -2
- package/cjs/core/Checkbox/Checkbox.js +3 -4
- package/cjs/core/ComboBox/ComboBox.d.ts +51 -0
- package/cjs/core/ComboBox/ComboBox.js +268 -0
- package/cjs/core/ComboBox/index.d.ts +4 -0
- package/cjs/core/ComboBox/index.js +10 -0
- package/cjs/core/DatePicker/DatePicker.js +2 -2
- package/cjs/core/DropdownMenu/DropdownMenu.d.ts +1 -2
- package/cjs/core/DropdownMenu/DropdownMenu.js +4 -6
- package/cjs/core/ErrorPage/ErrorPage.js +2 -2
- package/cjs/core/ExpandableBlock/ExpandableBlock.d.ts +1 -1
- package/cjs/core/ExpandableBlock/ExpandableBlock.js +3 -4
- package/cjs/core/Fieldset/Fieldset.js +2 -2
- package/cjs/core/FileUpload/FileUpload.d.ts +2 -2
- package/cjs/core/FileUpload/FileUpload.js +3 -4
- package/cjs/core/FileUpload/FileUploadTemplate.js +2 -2
- package/cjs/core/Footer/Footer.d.ts +1 -1
- package/cjs/core/Footer/Footer.js +2 -2
- package/cjs/core/Header/Header.d.ts +1 -1
- package/cjs/core/Header/Header.js +2 -2
- package/cjs/core/Header/HeaderBreadcrumbs.js +2 -2
- package/cjs/core/Header/HeaderButton.js +2 -2
- package/cjs/core/Header/HeaderLogo.d.ts +1 -1
- package/cjs/core/Header/HeaderLogo.js +2 -2
- package/cjs/core/Input/Input.js +3 -4
- package/cjs/core/InputGroup/InputGroup.d.ts +1 -1
- package/cjs/core/InputGroup/InputGroup.js +4 -6
- package/cjs/core/LabeledInput/LabeledInput.js +4 -6
- package/cjs/core/LabeledSelect/LabeledSelect.js +4 -6
- package/cjs/core/LabeledTextarea/LabeledTextarea.js +4 -6
- package/cjs/core/Menu/Menu.d.ts +11 -1
- package/cjs/core/Menu/Menu.js +11 -11
- package/cjs/core/Menu/MenuDivider.js +2 -2
- package/cjs/core/Menu/MenuItem.d.ts +2 -2
- package/cjs/core/Menu/MenuItem.js +5 -7
- package/cjs/core/Modal/Modal.d.ts +1 -1
- package/cjs/core/Modal/Modal.js +5 -7
- package/cjs/core/Modal/ModalButtonBar.js +2 -2
- package/cjs/core/ProgressIndicators/ProgressLinear/ProgressLinear.d.ts +1 -1
- package/cjs/core/ProgressIndicators/ProgressLinear/ProgressLinear.js +2 -2
- package/cjs/core/ProgressIndicators/ProgressRadial/ProgressRadial.d.ts +1 -1
- package/cjs/core/ProgressIndicators/ProgressRadial/ProgressRadial.js +2 -2
- package/cjs/core/Radio/Radio.js +3 -4
- package/cjs/core/RadioTiles/RadioTile.js +3 -4
- package/cjs/core/RadioTiles/RadioTileGroup.js +2 -2
- package/cjs/core/Select/Select.d.ts +1 -2
- package/cjs/core/Select/Select.js +4 -4
- package/cjs/core/SideNavigation/SideNavigation.d.ts +1 -1
- package/cjs/core/SideNavigation/SideNavigation.js +2 -2
- package/cjs/core/SideNavigation/SidenavButton.js +2 -2
- package/cjs/core/Slider/Slider.d.ts +1 -1
- package/cjs/core/Slider/Slider.js +7 -9
- package/cjs/core/Table/Table.d.ts +1 -1
- package/cjs/core/Table/Table.js +4 -4
- package/cjs/core/Table/TableRowMemoized.js +3 -4
- package/cjs/core/Table/filters/BaseFilter.d.ts +1 -1
- package/cjs/core/Table/filters/BaseFilter.js +2 -2
- package/cjs/core/Table/filters/DateRangeFilter/DatePickerInput.js +2 -2
- package/cjs/core/Table/filters/DateRangeFilter/DateRangeFilter.js +2 -2
- package/cjs/core/Table/filters/FilterButtonBar.d.ts +1 -1
- package/cjs/core/Table/filters/FilterButtonBar.js +2 -2
- package/cjs/core/Table/filters/FilterToggle.d.ts +1 -1
- package/cjs/core/Table/filters/FilterToggle.js +4 -6
- package/cjs/core/Table/filters/NumberRangeFilter/NumberRangeFilter.js +2 -2
- package/cjs/core/Table/filters/TextFilter/TextFilter.js +2 -2
- package/cjs/core/Tabs/Tab.js +2 -2
- package/cjs/core/Tabs/Tabs.js +6 -9
- package/cjs/core/Tag/Tag.d.ts +1 -1
- package/cjs/core/Tag/Tag.js +2 -2
- package/cjs/core/Tag/TagContainer.d.ts +1 -1
- package/cjs/core/Tag/TagContainer.js +2 -2
- package/cjs/core/Textarea/Textarea.js +3 -4
- package/cjs/core/ThemeProvider/ThemeProvider.d.ts +1 -1
- package/cjs/core/ThemeProvider/ThemeProvider.js +2 -2
- package/cjs/core/Tile/Tile.d.ts +2 -2
- package/cjs/core/Tile/Tile.js +4 -4
- package/cjs/core/TimePicker/TimePicker.d.ts +1 -1
- package/cjs/core/TimePicker/TimePicker.js +2 -2
- package/cjs/core/Toast/Toast.d.ts +1 -1
- package/cjs/core/Toast/Toast.js +5 -6
- package/cjs/core/Toast/Toaster.js +2 -2
- package/cjs/core/ToggleSwitch/ToggleSwitch.d.ts +1 -1
- package/cjs/core/ToggleSwitch/ToggleSwitch.js +3 -4
- package/cjs/core/Tooltip/Tooltip.d.ts +1 -2
- package/cjs/core/Tooltip/Tooltip.js +3 -4
- package/cjs/core/Typography/Blockquote/Blockquote.js +2 -2
- package/cjs/core/Typography/Body/Body.js +2 -2
- package/cjs/core/Typography/Code/Code.d.ts +1 -1
- package/cjs/core/Typography/Code/Code.js +2 -2
- package/cjs/core/Typography/Headline/Headline.js +2 -2
- package/cjs/core/Typography/Kbd/Kbd.d.ts +1 -1
- package/cjs/core/Typography/Kbd/Kbd.js +2 -2
- package/cjs/core/Typography/Leading/Leading.js +2 -2
- package/cjs/core/Typography/Small/Small.js +2 -2
- package/cjs/core/Typography/Subheading/Subheading.js +2 -2
- package/cjs/core/Typography/Text/Text.d.ts +1 -1
- package/cjs/core/Typography/Text/Text.js +2 -2
- package/cjs/core/Typography/Title/Title.js +2 -2
- package/cjs/core/UserIcon/UserIcon.d.ts +1 -1
- package/cjs/core/UserIcon/UserIcon.js +2 -2
- package/cjs/core/UserIconGroup/UserIconGroup.d.ts +1 -1
- package/cjs/core/UserIconGroup/UserIconGroup.js +2 -2
- package/cjs/core/Wizard/Step.d.ts +1 -1
- package/cjs/core/Wizard/Wizard.js +2 -2
- package/cjs/core/index.d.ts +4 -3
- package/cjs/core/index.js +7 -6
- package/cjs/core/utils/{FocusTrap.d.ts → components/FocusTrap.d.ts} +0 -0
- package/cjs/core/utils/{FocusTrap.js → components/FocusTrap.js} +3 -3
- package/cjs/core/utils/{InputContainer.d.ts → components/InputContainer.d.ts} +0 -0
- package/cjs/core/utils/{InputContainer.js → components/InputContainer.js} +25 -3
- package/cjs/core/utils/{Popover.d.ts → components/Popover.d.ts} +1 -1
- package/cjs/core/utils/{Popover.js → components/Popover.js} +1 -1
- package/cjs/core/utils/components/icons.d.ts +8 -0
- package/cjs/core/utils/components/icons.js +32 -0
- package/cjs/core/utils/components/index.d.ts +4 -0
- package/cjs/core/utils/components/index.js +20 -0
- package/cjs/core/utils/functions/colors.d.ts +20 -0
- package/cjs/core/utils/functions/colors.js +52 -0
- package/cjs/core/utils/functions/dom.d.ts +18 -0
- package/cjs/core/utils/functions/dom.js +42 -0
- package/cjs/core/utils/functions/focusable.d.ts +8 -0
- package/cjs/core/utils/functions/focusable.js +34 -0
- package/cjs/core/utils/functions/index.d.ts +4 -0
- package/cjs/core/utils/functions/index.js +20 -0
- package/cjs/core/utils/functions/numbers.d.ts +8 -0
- package/cjs/core/utils/functions/numbers.js +27 -0
- package/cjs/core/utils/hooks/index.d.ts +6 -0
- package/cjs/core/utils/hooks/index.js +22 -0
- package/cjs/core/utils/hooks/useIntersection.js +2 -2
- package/cjs/core/utils/hooks/useResizeObserver.js +2 -2
- package/cjs/core/utils/hooks/useTheme.js +3 -3
- package/cjs/core/utils/index.d.ts +4 -0
- package/cjs/core/utils/index.js +20 -0
- package/esm/core/Alert/Alert.d.ts +1 -1
- package/esm/core/Alert/Alert.js +1 -2
- package/esm/core/Badge/Badge.d.ts +1 -2
- package/esm/core/Badge/Badge.js +1 -2
- package/esm/core/Breadcrumbs/Breadcrumbs.d.ts +1 -1
- package/esm/core/Breadcrumbs/Breadcrumbs.js +1 -3
- package/esm/core/ButtonGroup/ButtonGroup.d.ts +1 -1
- package/esm/core/ButtonGroup/ButtonGroup.js +1 -2
- package/esm/core/Buttons/Button/Button.js +1 -1
- package/esm/core/Buttons/DropdownButton/DropdownButton.js +1 -2
- package/esm/core/Buttons/IconButton/IconButton.js +1 -1
- package/esm/core/Buttons/IdeasButton/IdeasButton.js +1 -1
- package/esm/core/Buttons/SplitButton/SplitButton.js +1 -1
- package/esm/core/Checkbox/Checkbox.js +1 -2
- package/esm/core/ComboBox/ComboBox.d.ts +51 -0
- package/esm/core/ComboBox/ComboBox.js +261 -0
- package/esm/core/ComboBox/index.d.ts +4 -0
- package/esm/core/ComboBox/index.js +6 -0
- package/esm/core/DatePicker/DatePicker.js +1 -1
- package/esm/core/DropdownMenu/DropdownMenu.d.ts +1 -2
- package/esm/core/DropdownMenu/DropdownMenu.js +1 -3
- package/esm/core/ErrorPage/ErrorPage.js +1 -1
- package/esm/core/ExpandableBlock/ExpandableBlock.d.ts +1 -1
- package/esm/core/ExpandableBlock/ExpandableBlock.js +1 -2
- package/esm/core/Fieldset/Fieldset.js +1 -1
- package/esm/core/FileUpload/FileUpload.d.ts +2 -2
- package/esm/core/FileUpload/FileUpload.js +1 -2
- package/esm/core/FileUpload/FileUploadTemplate.js +1 -1
- package/esm/core/Footer/Footer.d.ts +1 -1
- package/esm/core/Footer/Footer.js +1 -1
- package/esm/core/Header/Header.d.ts +1 -1
- package/esm/core/Header/Header.js +1 -1
- package/esm/core/Header/HeaderBreadcrumbs.js +1 -1
- package/esm/core/Header/HeaderButton.js +1 -1
- package/esm/core/Header/HeaderLogo.d.ts +1 -1
- package/esm/core/Header/HeaderLogo.js +1 -1
- package/esm/core/Input/Input.js +1 -2
- package/esm/core/InputGroup/InputGroup.d.ts +1 -1
- package/esm/core/InputGroup/InputGroup.js +1 -3
- package/esm/core/LabeledInput/LabeledInput.js +1 -3
- package/esm/core/LabeledSelect/LabeledSelect.js +1 -3
- package/esm/core/LabeledTextarea/LabeledTextarea.js +1 -3
- package/esm/core/Menu/Menu.d.ts +11 -1
- package/esm/core/Menu/Menu.js +7 -7
- package/esm/core/Menu/MenuDivider.js +1 -1
- package/esm/core/Menu/MenuItem.d.ts +2 -2
- package/esm/core/Menu/MenuItem.js +2 -4
- package/esm/core/Modal/Modal.d.ts +1 -1
- package/esm/core/Modal/Modal.js +1 -3
- package/esm/core/Modal/ModalButtonBar.js +1 -1
- package/esm/core/ProgressIndicators/ProgressLinear/ProgressLinear.d.ts +1 -1
- package/esm/core/ProgressIndicators/ProgressLinear/ProgressLinear.js +1 -1
- package/esm/core/ProgressIndicators/ProgressRadial/ProgressRadial.d.ts +1 -1
- package/esm/core/ProgressIndicators/ProgressRadial/ProgressRadial.js +1 -1
- package/esm/core/Radio/Radio.js +1 -2
- package/esm/core/RadioTiles/RadioTile.js +1 -2
- package/esm/core/RadioTiles/RadioTileGroup.js +1 -1
- package/esm/core/Select/Select.d.ts +1 -2
- package/esm/core/Select/Select.js +2 -2
- package/esm/core/SideNavigation/SideNavigation.d.ts +1 -1
- package/esm/core/SideNavigation/SideNavigation.js +1 -1
- package/esm/core/SideNavigation/SidenavButton.js +1 -1
- package/esm/core/Slider/Slider.d.ts +1 -1
- package/esm/core/Slider/Slider.js +1 -3
- package/esm/core/Table/Table.d.ts +1 -1
- package/esm/core/Table/Table.js +1 -1
- package/esm/core/Table/TableRowMemoized.js +1 -2
- package/esm/core/Table/filters/BaseFilter.d.ts +1 -1
- package/esm/core/Table/filters/BaseFilter.js +1 -1
- package/esm/core/Table/filters/DateRangeFilter/DatePickerInput.js +1 -1
- package/esm/core/Table/filters/DateRangeFilter/DateRangeFilter.js +1 -1
- package/esm/core/Table/filters/FilterButtonBar.d.ts +1 -1
- package/esm/core/Table/filters/FilterButtonBar.js +1 -1
- package/esm/core/Table/filters/FilterToggle.d.ts +1 -1
- package/esm/core/Table/filters/FilterToggle.js +1 -3
- package/esm/core/Table/filters/NumberRangeFilter/NumberRangeFilter.js +1 -1
- package/esm/core/Table/filters/TextFilter/TextFilter.js +1 -1
- package/esm/core/Tabs/Tab.js +1 -1
- package/esm/core/Tabs/Tabs.js +1 -4
- package/esm/core/Tag/Tag.d.ts +1 -1
- package/esm/core/Tag/Tag.js +1 -1
- package/esm/core/Tag/TagContainer.d.ts +1 -1
- package/esm/core/Tag/TagContainer.js +1 -1
- package/esm/core/Textarea/Textarea.js +1 -2
- package/esm/core/ThemeProvider/ThemeProvider.d.ts +1 -1
- package/esm/core/ThemeProvider/ThemeProvider.js +1 -1
- package/esm/core/Tile/Tile.d.ts +2 -2
- package/esm/core/Tile/Tile.js +3 -3
- package/esm/core/TimePicker/TimePicker.d.ts +1 -1
- package/esm/core/TimePicker/TimePicker.js +1 -1
- package/esm/core/Toast/Toast.d.ts +1 -1
- package/esm/core/Toast/Toast.js +1 -2
- package/esm/core/Toast/Toaster.js +1 -1
- package/esm/core/ToggleSwitch/ToggleSwitch.d.ts +1 -1
- package/esm/core/ToggleSwitch/ToggleSwitch.js +1 -2
- package/esm/core/Tooltip/Tooltip.d.ts +1 -2
- package/esm/core/Tooltip/Tooltip.js +1 -2
- package/esm/core/Typography/Blockquote/Blockquote.js +1 -1
- package/esm/core/Typography/Body/Body.js +1 -1
- package/esm/core/Typography/Code/Code.d.ts +1 -1
- package/esm/core/Typography/Code/Code.js +1 -1
- package/esm/core/Typography/Headline/Headline.js +1 -1
- package/esm/core/Typography/Kbd/Kbd.d.ts +1 -1
- package/esm/core/Typography/Kbd/Kbd.js +1 -1
- package/esm/core/Typography/Leading/Leading.js +1 -1
- package/esm/core/Typography/Small/Small.js +1 -1
- package/esm/core/Typography/Subheading/Subheading.js +1 -1
- package/esm/core/Typography/Text/Text.d.ts +1 -1
- package/esm/core/Typography/Text/Text.js +1 -1
- package/esm/core/Typography/Title/Title.js +1 -1
- package/esm/core/UserIcon/UserIcon.d.ts +1 -1
- package/esm/core/UserIcon/UserIcon.js +1 -1
- package/esm/core/UserIconGroup/UserIconGroup.d.ts +1 -1
- package/esm/core/UserIconGroup/UserIconGroup.js +1 -1
- package/esm/core/Wizard/Step.d.ts +1 -1
- package/esm/core/Wizard/Wizard.js +1 -1
- package/esm/core/index.d.ts +4 -3
- package/esm/core/index.js +2 -2
- package/esm/core/utils/{FocusTrap.d.ts → components/FocusTrap.d.ts} +0 -0
- package/esm/core/utils/{FocusTrap.js → components/FocusTrap.js} +2 -2
- package/esm/core/utils/{InputContainer.d.ts → components/InputContainer.d.ts} +0 -0
- package/esm/core/utils/{InputContainer.js → components/InputContainer.js} +25 -3
- package/esm/core/utils/{Popover.d.ts → components/Popover.d.ts} +1 -1
- package/esm/core/utils/{Popover.js → components/Popover.js} +1 -1
- package/esm/core/utils/components/icons.d.ts +8 -0
- package/esm/core/utils/components/icons.js +26 -0
- package/esm/core/utils/components/index.d.ts +4 -0
- package/esm/core/utils/components/index.js +8 -0
- package/esm/core/utils/functions/colors.d.ts +20 -0
- package/esm/core/utils/functions/colors.js +47 -0
- package/esm/core/utils/functions/dom.d.ts +18 -0
- package/esm/core/utils/functions/dom.js +36 -0
- package/esm/core/utils/functions/focusable.d.ts +8 -0
- package/esm/core/utils/functions/focusable.js +29 -0
- package/esm/core/utils/functions/index.d.ts +4 -0
- package/esm/core/utils/functions/index.js +8 -0
- package/esm/core/utils/functions/numbers.d.ts +8 -0
- package/esm/core/utils/functions/numbers.js +22 -0
- package/esm/core/utils/hooks/index.d.ts +6 -0
- package/esm/core/utils/hooks/index.js +10 -0
- package/esm/core/utils/hooks/useIntersection.js +1 -1
- package/esm/core/utils/hooks/useResizeObserver.js +1 -1
- package/esm/core/utils/hooks/useTheme.js +1 -1
- package/esm/core/utils/index.d.ts +4 -0
- package/esm/core/utils/index.js +8 -0
- package/package.json +5 -3
- package/cjs/core/utils/common.d.ts +0 -58
- package/cjs/core/utils/common.js +0 -146
- package/esm/core/utils/common.d.ts +0 -58
- package/esm/core/utils/common.js +0 -132
|
@@ -1,6 +1,5 @@
|
|
|
1
1
|
import React from 'react';
|
|
2
|
-
import { CommonProps } from '../utils
|
|
3
|
-
import { PopoverProps } from '../utils/Popover';
|
|
2
|
+
import { CommonProps, PopoverProps } from '../utils';
|
|
4
3
|
export declare type DropdownMenuProps = {
|
|
5
4
|
/**
|
|
6
5
|
* List of menu items. Recommended to use MenuItem component.
|
|
@@ -31,10 +31,8 @@ exports.DropdownMenu = void 0;
|
|
|
31
31
|
* See LICENSE.md in the project root for license terms and full copyright notice.
|
|
32
32
|
*--------------------------------------------------------------------------------------------*/
|
|
33
33
|
var react_1 = __importDefault(require("react"));
|
|
34
|
-
var
|
|
34
|
+
var utils_1 = require("../utils");
|
|
35
35
|
var Menu_1 = require("../Menu");
|
|
36
|
-
var Popover_1 = require("../utils/Popover");
|
|
37
|
-
var useMergedRefs_1 = require("../utils/hooks/useMergedRefs");
|
|
38
36
|
/**
|
|
39
37
|
* Dropdown menu component.
|
|
40
38
|
* Uses the {@link Popover} component, which is a wrapper around [tippy.js](https://atomiks.github.io/tippyjs).
|
|
@@ -73,9 +71,9 @@ var DropdownMenu = function (props) {
|
|
|
73
71
|
(_a = targetRef.current) === null || _a === void 0 ? void 0 : _a.focus();
|
|
74
72
|
onHide === null || onHide === void 0 ? void 0 : onHide(instance);
|
|
75
73
|
}, [onHide]);
|
|
76
|
-
(0,
|
|
77
|
-
return (react_1.default.createElement(
|
|
78
|
-
ref: (0,
|
|
74
|
+
(0, utils_1.useTheme)();
|
|
75
|
+
return (react_1.default.createElement(utils_1.Popover, __assign({ content: react_1.default.createElement(Menu_1.Menu, { className: className, style: style, role: role, id: id }, react_1.default.useMemo(function () { return menuItems(close); }, [menuItems, close])), visible: trigger === undefined ? isVisible : undefined, onClickOutside: close, placement: placement, onShow: onShowHandler, onHide: onHideHandler, trigger: visible === undefined ? trigger : undefined }, rest), react_1.default.cloneElement(children, {
|
|
76
|
+
ref: (0, utils_1.mergeRefs)(targetRef, props.children.ref),
|
|
79
77
|
onClick: function (args) {
|
|
80
78
|
var _a, _b;
|
|
81
79
|
trigger === undefined && (isVisible ? close() : open());
|
|
@@ -39,7 +39,7 @@ var _503_1 = __importDefault(require("@itwin/itwinui-illustrations-react/cjs/ill
|
|
|
39
39
|
var Error_1 = __importDefault(require("@itwin/itwinui-illustrations-react/cjs/illustrations/Error"));
|
|
40
40
|
var react_1 = __importDefault(require("react"));
|
|
41
41
|
var Button_1 = require("../Buttons/Button");
|
|
42
|
-
var
|
|
42
|
+
var utils_1 = require("../utils");
|
|
43
43
|
require("@itwin/itwinui-css/css/non-ideal-state.css");
|
|
44
44
|
/**
|
|
45
45
|
* A stylized display to communicate common http errors.
|
|
@@ -48,7 +48,7 @@ require("@itwin/itwinui-css/css/non-ideal-state.css");
|
|
|
48
48
|
*/
|
|
49
49
|
var ErrorPage = function (props) {
|
|
50
50
|
var errorType = props.errorType, errorName = props.errorName, errorMessage = props.errorMessage, primaryButtonHandle = props.primaryButtonHandle, primaryButtonLabel = props.primaryButtonLabel, secondaryButtonHandle = props.secondaryButtonHandle, secondaryButtonLabel = props.secondaryButtonLabel, translatedErrorMessages = props.translatedErrorMessages, rest = __rest(props, ["errorType", "errorName", "errorMessage", "primaryButtonHandle", "primaryButtonLabel", "secondaryButtonHandle", "secondaryButtonLabel", "translatedErrorMessages"]);
|
|
51
|
-
(0,
|
|
51
|
+
(0, utils_1.useTheme)();
|
|
52
52
|
var defaultErrorMessages = __assign({ badGateway: 'Bad gateway', error: 'Error', forbidden: 'Forbidden', internalServerError: 'Internal server error', pageNotFound: 'Page not found', serviceUnavailable: 'Service unavailable', unauthorized: 'Unauthorized' }, translatedErrorMessages);
|
|
53
53
|
function getErrorIcon() {
|
|
54
54
|
switch (errorType) {
|
|
@@ -34,9 +34,8 @@ var ChevronRight_1 = __importDefault(require("@itwin/itwinui-icons-react/cjs/ico
|
|
|
34
34
|
var classnames_1 = __importDefault(require("classnames"));
|
|
35
35
|
var react_1 = __importDefault(require("react"));
|
|
36
36
|
var react_transition_group_1 = require("react-transition-group");
|
|
37
|
-
var
|
|
37
|
+
var utils_1 = require("../utils");
|
|
38
38
|
require("@itwin/itwinui-css/css/expandable-block.css");
|
|
39
|
-
var common_1 = require("../utils/common");
|
|
40
39
|
/**
|
|
41
40
|
* Container that allows content to be hidden behind a brief title and a caption.
|
|
42
41
|
* @example
|
|
@@ -49,8 +48,8 @@ var common_1 = require("../utils/common");
|
|
|
49
48
|
var ExpandableBlock = function (props) {
|
|
50
49
|
var _a;
|
|
51
50
|
var caption = props.caption, children = props.children, className = props.className, title = props.title, onToggle = props.onToggle, style = props.style, _b = props.isExpanded, isExpanded = _b === void 0 ? false : _b, endIcon = props.endIcon, status = props.status, rest = __rest(props, ["caption", "children", "className", "title", "onToggle", "style", "isExpanded", "endIcon", "status"]);
|
|
52
|
-
(0,
|
|
53
|
-
var icon = endIcon !== null && endIcon !== void 0 ? endIcon : (status &&
|
|
51
|
+
(0, utils_1.useTheme)();
|
|
52
|
+
var icon = endIcon !== null && endIcon !== void 0 ? endIcon : (status && utils_1.StatusIconMap[status]());
|
|
54
53
|
var _c = react_1.default.useState(isExpanded), expanded = _c[0], setExpanded = _c[1];
|
|
55
54
|
react_1.default.useEffect(function () {
|
|
56
55
|
setExpanded(isExpanded);
|
|
@@ -31,7 +31,7 @@ exports.Fieldset = void 0;
|
|
|
31
31
|
* See LICENSE.md in the project root for license terms and full copyright notice.
|
|
32
32
|
*--------------------------------------------------------------------------------------------*/
|
|
33
33
|
var react_1 = __importDefault(require("react"));
|
|
34
|
-
var
|
|
34
|
+
var utils_1 = require("../utils");
|
|
35
35
|
var classnames_1 = __importDefault(require("classnames"));
|
|
36
36
|
require("@itwin/itwinui-css/css/fieldset.css");
|
|
37
37
|
/**
|
|
@@ -47,7 +47,7 @@ require("@itwin/itwinui-css/css/fieldset.css");
|
|
|
47
47
|
*/
|
|
48
48
|
var Fieldset = function (props) {
|
|
49
49
|
var children = props.children, className = props.className, disabled = props.disabled, legend = props.legend, rest = __rest(props, ["children", "className", "disabled", "legend"]);
|
|
50
|
-
(0,
|
|
50
|
+
(0, utils_1.useTheme)();
|
|
51
51
|
return (react_1.default.createElement("fieldset", __assign({ className: (0, classnames_1.default)('iui-fieldset', className), disabled: disabled }, rest),
|
|
52
52
|
legend && react_1.default.createElement("legend", null, legend),
|
|
53
53
|
disabled
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import React from 'react';
|
|
2
|
-
import { CommonProps } from '../utils
|
|
2
|
+
import { CommonProps } from '../utils';
|
|
3
3
|
import '@itwin/itwinui-css/css/file-upload.css';
|
|
4
4
|
export declare type FileUploadProps = {
|
|
5
5
|
/**
|
|
@@ -46,5 +46,5 @@ export declare const FileUpload: React.ForwardRefExoticComponent<{
|
|
|
46
46
|
id?: string | undefined;
|
|
47
47
|
} & {
|
|
48
48
|
style?: React.CSSProperties | undefined;
|
|
49
|
-
} & import("../utils
|
|
49
|
+
} & import("../utils").ClassNameProps & React.RefAttributes<HTMLDivElement>>;
|
|
50
50
|
export default FileUpload;
|
|
@@ -32,8 +32,7 @@ exports.FileUpload = void 0;
|
|
|
32
32
|
*--------------------------------------------------------------------------------------------*/
|
|
33
33
|
var react_1 = __importDefault(require("react"));
|
|
34
34
|
var classnames_1 = __importDefault(require("classnames"));
|
|
35
|
-
var
|
|
36
|
-
var useMergedRefs_1 = require("../utils/hooks/useMergedRefs");
|
|
35
|
+
var utils_1 = require("../utils");
|
|
37
36
|
require("@itwin/itwinui-css/css/file-upload.css");
|
|
38
37
|
/**
|
|
39
38
|
* File upload component to be wrapped around `FileUploadTemplate` or any arbitrary component.
|
|
@@ -44,10 +43,10 @@ require("@itwin/itwinui-css/css/file-upload.css");
|
|
|
44
43
|
*/
|
|
45
44
|
exports.FileUpload = react_1.default.forwardRef(function (props, ref) {
|
|
46
45
|
var dragContent = props.dragContent, children = props.children, onFileDropped = props.onFileDropped, className = props.className, rest = __rest(props, ["dragContent", "children", "onFileDropped", "className"]);
|
|
47
|
-
(0,
|
|
46
|
+
(0, utils_1.useTheme)();
|
|
48
47
|
var _a = react_1.default.useState(false), isDragActive = _a[0], setIsDragActive = _a[1];
|
|
49
48
|
var fileUploadRef = react_1.default.useRef(null);
|
|
50
|
-
var refs = (0,
|
|
49
|
+
var refs = (0, utils_1.useMergedRefs)(fileUploadRef, ref);
|
|
51
50
|
var onDragOverHandler = function (e) {
|
|
52
51
|
e.preventDefault();
|
|
53
52
|
e.stopPropagation();
|
|
@@ -9,7 +9,7 @@ exports.FileUploadTemplate = void 0;
|
|
|
9
9
|
* See LICENSE.md in the project root for license terms and full copyright notice.
|
|
10
10
|
*--------------------------------------------------------------------------------------------*/
|
|
11
11
|
var react_1 = __importDefault(require("react"));
|
|
12
|
-
var
|
|
12
|
+
var utils_1 = require("../utils");
|
|
13
13
|
require("@itwin/itwinui-css/css/file-upload.css");
|
|
14
14
|
var Upload_1 = __importDefault(require("@itwin/itwinui-icons-react/cjs/icons/Upload"));
|
|
15
15
|
/**
|
|
@@ -20,7 +20,7 @@ var Upload_1 = __importDefault(require("@itwin/itwinui-icons-react/cjs/icons/Upl
|
|
|
20
20
|
*/
|
|
21
21
|
var FileUploadTemplate = function (props) {
|
|
22
22
|
var onChange = props.onChange, _a = props.acceptMultiple, acceptMultiple = _a === void 0 ? true : _a, acceptType = props.acceptType, _b = props.label, label = _b === void 0 ? 'Choose a file' : _b, _c = props.subtitle, subtitle = _c === void 0 ? 'or drag & drop it here.' : _c, children = props.children;
|
|
23
|
-
(0,
|
|
23
|
+
(0, utils_1.useTheme)();
|
|
24
24
|
return (react_1.default.createElement(react_1.default.Fragment, null,
|
|
25
25
|
react_1.default.createElement(Upload_1.default, { className: 'iui-icon', "aria-hidden": true }),
|
|
26
26
|
react_1.default.createElement("div", { className: 'iui-template-text' },
|
|
@@ -41,7 +41,7 @@ exports.Footer = void 0;
|
|
|
41
41
|
*--------------------------------------------------------------------------------------------*/
|
|
42
42
|
var react_1 = __importDefault(require("react"));
|
|
43
43
|
var classnames_1 = __importDefault(require("classnames"));
|
|
44
|
-
var
|
|
44
|
+
var utils_1 = require("../utils");
|
|
45
45
|
require("@itwin/itwinui-css/css/footer.css");
|
|
46
46
|
var footerTranslations = {
|
|
47
47
|
cookies: 'Cookies',
|
|
@@ -59,7 +59,7 @@ var footerTranslations = {
|
|
|
59
59
|
*/
|
|
60
60
|
var Footer = function (props) {
|
|
61
61
|
var customElements = props.customElements, translatedTitles = props.translatedTitles, className = props.className, rest = __rest(props, ["customElements", "translatedTitles", "className"]);
|
|
62
|
-
(0,
|
|
62
|
+
(0, utils_1.useTheme)();
|
|
63
63
|
var today = new Date();
|
|
64
64
|
var titles = __assign(__assign({}, footerTranslations), translatedTitles);
|
|
65
65
|
var defaultElements = [
|
|
@@ -34,7 +34,7 @@ var MoreVertical_1 = __importDefault(require("@itwin/itwinui-icons-react/cjs/ico
|
|
|
34
34
|
var classnames_1 = __importDefault(require("classnames"));
|
|
35
35
|
var react_1 = __importDefault(require("react"));
|
|
36
36
|
var Buttons_1 = require("../Buttons");
|
|
37
|
-
var
|
|
37
|
+
var utils_1 = require("../utils");
|
|
38
38
|
require("@itwin/itwinui-css/css/header.css");
|
|
39
39
|
var DropdownMenu_1 = require("../DropdownMenu");
|
|
40
40
|
var defaultTranslations = {
|
|
@@ -71,7 +71,7 @@ var defaultTranslations = {
|
|
|
71
71
|
*/
|
|
72
72
|
var Header = function (props) {
|
|
73
73
|
var appLogo = props.appLogo, breadcrumbs = props.breadcrumbs, _a = props.isSlim, isSlim = _a === void 0 ? false : _a, actions = props.actions, userIcon = props.userIcon, menuItems = props.menuItems, translatedStrings = props.translatedStrings, className = props.className, children = props.children, rest = __rest(props, ["appLogo", "breadcrumbs", "isSlim", "actions", "userIcon", "menuItems", "translatedStrings", "className", "children"]);
|
|
74
|
-
(0,
|
|
74
|
+
(0, utils_1.useTheme)();
|
|
75
75
|
var headerTranslations = __assign(__assign({}, defaultTranslations), translatedStrings);
|
|
76
76
|
return (react_1.default.createElement("header", __assign({ className: (0, classnames_1.default)('iui-page-header', { 'iui-slim': isSlim }, className) }, rest),
|
|
77
77
|
react_1.default.createElement("div", { className: 'iui-left' },
|
|
@@ -41,7 +41,7 @@ exports.HeaderBreadcrumbs = void 0;
|
|
|
41
41
|
*--------------------------------------------------------------------------------------------*/
|
|
42
42
|
var ChevronRight_1 = __importDefault(require("@itwin/itwinui-icons-react/cjs/icons/ChevronRight"));
|
|
43
43
|
var react_1 = __importDefault(require("react"));
|
|
44
|
-
var
|
|
44
|
+
var utils_1 = require("../utils");
|
|
45
45
|
require("@itwin/itwinui-css/css/header.css");
|
|
46
46
|
/**
|
|
47
47
|
* Header breadcrumbs, adds chevron between each provided items.
|
|
@@ -55,7 +55,7 @@ require("@itwin/itwinui-css/css/header.css");
|
|
|
55
55
|
*/
|
|
56
56
|
var HeaderBreadcrumbs = function (props) {
|
|
57
57
|
var items = props.items, rest = __rest(props, ["items"]);
|
|
58
|
-
(0,
|
|
58
|
+
(0, utils_1.useTheme)();
|
|
59
59
|
return (react_1.default.createElement("nav", __assign({ "aria-label": 'breadcrumbs' }, rest), items.reduce(function (previous, current, index) { return __spreadArray(__spreadArray([], previous, true), [
|
|
60
60
|
current,
|
|
61
61
|
index !== items.length - 1 && (react_1.default.createElement(ChevronRight_1.default, { key: "chevron" + index, "aria-hidden": true, className: 'iui-chevron' })),
|
|
@@ -33,7 +33,7 @@ exports.HeaderButton = void 0;
|
|
|
33
33
|
var classnames_1 = __importDefault(require("classnames"));
|
|
34
34
|
var react_1 = __importDefault(require("react"));
|
|
35
35
|
var Buttons_1 = require("../Buttons");
|
|
36
|
-
var
|
|
36
|
+
var utils_1 = require("../utils");
|
|
37
37
|
require("@itwin/itwinui-css/css/header.css");
|
|
38
38
|
var isSplitButton = function (props) {
|
|
39
39
|
return !!props.menuItems && !!props.onClick;
|
|
@@ -53,7 +53,7 @@ var isDropdownButton = function (props) {
|
|
|
53
53
|
*/
|
|
54
54
|
var HeaderButton = function (props) {
|
|
55
55
|
var name = props.name, description = props.description, _a = props.isActive, isActive = _a === void 0 ? false : _a, className = props.className, startIcon = props.startIcon, menuItems = props.menuItems, rest = __rest(props, ["name", "description", "isActive", "className", "startIcon", "menuItems"]);
|
|
56
|
-
(0,
|
|
56
|
+
(0, utils_1.useTheme)();
|
|
57
57
|
var buttonProps = __assign(__assign({ startIcon: react_1.default.isValidElement(startIcon)
|
|
58
58
|
? react_1.default.cloneElement(startIcon, {
|
|
59
59
|
className: (0, classnames_1.default)('iui-header-button-icon', startIcon.props.className),
|
|
@@ -32,7 +32,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
32
32
|
exports.HeaderLogo = void 0;
|
|
33
33
|
var classnames_1 = __importDefault(require("classnames"));
|
|
34
34
|
var react_1 = __importDefault(require("react"));
|
|
35
|
-
var
|
|
35
|
+
var utils_1 = require("../utils");
|
|
36
36
|
require("@itwin/itwinui-css/css/header.css");
|
|
37
37
|
/**
|
|
38
38
|
* Header Title section
|
|
@@ -51,7 +51,7 @@ var HeaderLogo = function (props) {
|
|
|
51
51
|
onClick();
|
|
52
52
|
}
|
|
53
53
|
};
|
|
54
|
-
(0,
|
|
54
|
+
(0, utils_1.useTheme)();
|
|
55
55
|
return (react_1.default.createElement("div", __assign({ className: (0, classnames_1.default)('iui-header-logo', className), role: onClick && 'button', tabIndex: onClick && 0, onKeyDown: keyDownHandler, onClick: onClick }, rest),
|
|
56
56
|
react_1.default.isValidElement(logo)
|
|
57
57
|
? react_1.default.cloneElement(logo, {
|
package/cjs/core/Input/Input.js
CHANGED
|
@@ -32,8 +32,7 @@ exports.Input = void 0;
|
|
|
32
32
|
*--------------------------------------------------------------------------------------------*/
|
|
33
33
|
var classnames_1 = __importDefault(require("classnames"));
|
|
34
34
|
var react_1 = __importDefault(require("react"));
|
|
35
|
-
var
|
|
36
|
-
var useTheme_1 = require("../utils/hooks/useTheme");
|
|
35
|
+
var utils_1 = require("../utils");
|
|
37
36
|
require("@itwin/itwinui-css/css/inputs.css");
|
|
38
37
|
/**
|
|
39
38
|
* Basic input component
|
|
@@ -45,9 +44,9 @@ require("@itwin/itwinui-css/css/inputs.css");
|
|
|
45
44
|
exports.Input = react_1.default.forwardRef(function (props, ref) {
|
|
46
45
|
var _a;
|
|
47
46
|
var _b = props.setFocus, setFocus = _b === void 0 ? false : _b, size = props.size, className = props.className, rest = __rest(props, ["setFocus", "size", "className"]);
|
|
48
|
-
(0,
|
|
47
|
+
(0, utils_1.useTheme)();
|
|
49
48
|
var inputRef = react_1.default.useRef(null);
|
|
50
|
-
var refs = (0,
|
|
49
|
+
var refs = (0, utils_1.useMergedRefs)(inputRef, ref);
|
|
51
50
|
react_1.default.useEffect(function () {
|
|
52
51
|
if (inputRef.current && setFocus) {
|
|
53
52
|
inputRef.current.focus();
|
|
@@ -31,9 +31,7 @@ exports.InputGroup = void 0;
|
|
|
31
31
|
* See LICENSE.md in the project root for license terms and full copyright notice.
|
|
32
32
|
*--------------------------------------------------------------------------------------------*/
|
|
33
33
|
var react_1 = __importDefault(require("react"));
|
|
34
|
-
var
|
|
35
|
-
var useTheme_1 = require("../utils/hooks/useTheme");
|
|
36
|
-
var InputContainer_1 = require("../utils/InputContainer");
|
|
34
|
+
var utils_1 = require("../utils");
|
|
37
35
|
require("@itwin/itwinui-css/css/inputs.css");
|
|
38
36
|
/**
|
|
39
37
|
* Group Checkbox/Radio components together
|
|
@@ -52,9 +50,9 @@ require("@itwin/itwinui-css/css/inputs.css");
|
|
|
52
50
|
*/
|
|
53
51
|
var InputGroup = function (props) {
|
|
54
52
|
var children = props.children, _a = props.disabled, disabled = _a === void 0 ? false : _a, _b = props.displayStyle, displayStyle = _b === void 0 ? 'default' : _b, label = props.label, message = props.message, status = props.status, svgIcon = props.svgIcon, className = props.className, style = props.style, _c = props.required, required = _c === void 0 ? false : _c, rest = __rest(props, ["children", "disabled", "displayStyle", "label", "message", "status", "svgIcon", "className", "style", "required"]);
|
|
55
|
-
(0,
|
|
56
|
-
var icon = svgIcon !== null && svgIcon !== void 0 ? svgIcon : (status &&
|
|
57
|
-
return (react_1.default.createElement(
|
|
53
|
+
(0, utils_1.useTheme)();
|
|
54
|
+
var icon = svgIcon !== null && svgIcon !== void 0 ? svgIcon : (status && utils_1.StatusIconMap[status]());
|
|
55
|
+
return (react_1.default.createElement(utils_1.InputContainer, __assign({ label: label, disabled: disabled, required: required, status: status, message: message, icon: icon ? react_1.default.cloneElement(icon, { 'aria-hidden': true }) : undefined, isLabelInline: displayStyle === 'inline', className: className, style: style }, rest),
|
|
58
56
|
react_1.default.createElement("div", { className: 'iui-input-group' }, children)));
|
|
59
57
|
};
|
|
60
58
|
exports.InputGroup = InputGroup;
|
|
@@ -32,9 +32,7 @@ exports.LabeledInput = void 0;
|
|
|
32
32
|
*--------------------------------------------------------------------------------------------*/
|
|
33
33
|
var react_1 = __importDefault(require("react"));
|
|
34
34
|
var Input_1 = require("../Input/Input");
|
|
35
|
-
var
|
|
36
|
-
var useTheme_1 = require("../utils/hooks/useTheme");
|
|
37
|
-
var InputContainer_1 = require("../utils/InputContainer");
|
|
35
|
+
var utils_1 = require("../utils");
|
|
38
36
|
require("@itwin/itwinui-css/css/inputs.css");
|
|
39
37
|
/**
|
|
40
38
|
* Basic labeled input component
|
|
@@ -46,9 +44,9 @@ require("@itwin/itwinui-css/css/inputs.css");
|
|
|
46
44
|
*/
|
|
47
45
|
exports.LabeledInput = react_1.default.forwardRef(function (props, ref) {
|
|
48
46
|
var className = props.className, _a = props.disabled, disabled = _a === void 0 ? false : _a, label = props.label, message = props.message, status = props.status, svgIcon = props.svgIcon, style = props.style, inputClassName = props.inputClassName, inputStyle = props.inputStyle, _b = props.displayStyle, displayStyle = _b === void 0 ? 'default' : _b, _c = props.iconDisplayStyle, iconDisplayStyle = _c === void 0 ? displayStyle === 'default' ? 'block' : 'inline' : _c, _d = props.required, required = _d === void 0 ? false : _d, rest = __rest(props, ["className", "disabled", "label", "message", "status", "svgIcon", "style", "inputClassName", "inputStyle", "displayStyle", "iconDisplayStyle", "required"]);
|
|
49
|
-
(0,
|
|
50
|
-
var icon = svgIcon !== null && svgIcon !== void 0 ? svgIcon : (status &&
|
|
51
|
-
return (react_1.default.createElement(
|
|
47
|
+
(0, utils_1.useTheme)();
|
|
48
|
+
var icon = svgIcon !== null && svgIcon !== void 0 ? svgIcon : (status && utils_1.StatusIconMap[status]());
|
|
49
|
+
return (react_1.default.createElement(utils_1.InputContainer, { as: 'label', label: label, disabled: disabled, required: required, status: status, message: message, icon: icon, isLabelInline: displayStyle === 'inline', isIconInline: iconDisplayStyle === 'inline', className: className, style: style },
|
|
52
50
|
react_1.default.createElement(Input_1.Input, __assign({ disabled: disabled, className: inputClassName, style: inputStyle, required: required, ref: ref }, rest))));
|
|
53
51
|
});
|
|
54
52
|
exports.default = exports.LabeledInput;
|
|
@@ -32,9 +32,7 @@ exports.LabeledSelect = void 0;
|
|
|
32
32
|
*--------------------------------------------------------------------------------------------*/
|
|
33
33
|
var react_1 = __importDefault(require("react"));
|
|
34
34
|
var Select_1 = require("../Select");
|
|
35
|
-
var
|
|
36
|
-
var useTheme_1 = require("../utils/hooks/useTheme");
|
|
37
|
-
var InputContainer_1 = require("../utils/InputContainer");
|
|
35
|
+
var utils_1 = require("../utils");
|
|
38
36
|
require("@itwin/itwinui-css/css/inputs.css");
|
|
39
37
|
/**
|
|
40
38
|
* Labeled select component to select value from options.
|
|
@@ -71,9 +69,9 @@ require("@itwin/itwinui-css/css/inputs.css");
|
|
|
71
69
|
*/
|
|
72
70
|
var LabeledSelect = function (props) {
|
|
73
71
|
var className = props.className, _a = props.disabled, disabled = _a === void 0 ? false : _a, label = props.label, message = props.message, status = props.status, svgIcon = props.svgIcon, _b = props.displayStyle, displayStyle = _b === void 0 ? 'default' : _b, style = props.style, selectClassName = props.selectClassName, selectStyle = props.selectStyle, _c = props.required, required = _c === void 0 ? false : _c, rest = __rest(props, ["className", "disabled", "label", "message", "status", "svgIcon", "displayStyle", "style", "selectClassName", "selectStyle", "required"]);
|
|
74
|
-
(0,
|
|
75
|
-
var icon = svgIcon !== null && svgIcon !== void 0 ? svgIcon : (status &&
|
|
76
|
-
return (react_1.default.createElement(
|
|
72
|
+
(0, utils_1.useTheme)();
|
|
73
|
+
var icon = svgIcon !== null && svgIcon !== void 0 ? svgIcon : (status && utils_1.StatusIconMap[status]());
|
|
74
|
+
return (react_1.default.createElement(utils_1.InputContainer, { label: label, disabled: disabled, required: required, status: status, message: message, icon: displayStyle === 'default' && icon
|
|
77
75
|
? react_1.default.cloneElement(icon, { 'aria-hidden': true })
|
|
78
76
|
: undefined, isLabelInline: displayStyle === 'inline', className: className, style: style },
|
|
79
77
|
react_1.default.createElement(Select_1.Select, __assign({ disabled: disabled, className: selectClassName, style: selectStyle }, rest))));
|
|
@@ -31,10 +31,8 @@ exports.LabeledTextarea = void 0;
|
|
|
31
31
|
* See LICENSE.md in the project root for license terms and full copyright notice.
|
|
32
32
|
*--------------------------------------------------------------------------------------------*/
|
|
33
33
|
var react_1 = __importDefault(require("react"));
|
|
34
|
-
var
|
|
34
|
+
var utils_1 = require("../utils");
|
|
35
35
|
var Textarea_1 = require("../Textarea");
|
|
36
|
-
var useTheme_1 = require("../utils/hooks/useTheme");
|
|
37
|
-
var InputContainer_1 = require("../utils/InputContainer");
|
|
38
36
|
require("@itwin/itwinui-css/css/inputs.css");
|
|
39
37
|
/**
|
|
40
38
|
* Textarea wrapper that allows for additional styling and labelling
|
|
@@ -59,9 +57,9 @@ require("@itwin/itwinui-css/css/inputs.css");
|
|
|
59
57
|
*/
|
|
60
58
|
exports.LabeledTextarea = react_1.default.forwardRef(function (props, ref) {
|
|
61
59
|
var className = props.className, style = props.style, _a = props.disabled, disabled = _a === void 0 ? false : _a, label = props.label, message = props.message, status = props.status, textareaClassName = props.textareaClassName, textareaStyle = props.textareaStyle, _b = props.displayStyle, displayStyle = _b === void 0 ? 'default' : _b, _c = props.iconDisplayStyle, iconDisplayStyle = _c === void 0 ? displayStyle === 'default' ? 'block' : 'inline' : _c, svgIcon = props.svgIcon, _d = props.required, required = _d === void 0 ? false : _d, textareaProps = __rest(props, ["className", "style", "disabled", "label", "message", "status", "textareaClassName", "textareaStyle", "displayStyle", "iconDisplayStyle", "svgIcon", "required"]);
|
|
62
|
-
(0,
|
|
63
|
-
var icon = svgIcon !== null && svgIcon !== void 0 ? svgIcon : (status &&
|
|
64
|
-
return (react_1.default.createElement(
|
|
60
|
+
(0, utils_1.useTheme)();
|
|
61
|
+
var icon = svgIcon !== null && svgIcon !== void 0 ? svgIcon : (status && utils_1.StatusIconMap[status]());
|
|
62
|
+
return (react_1.default.createElement(utils_1.InputContainer, { as: 'label', label: label, disabled: disabled, required: required, status: status, message: message, icon: icon, isLabelInline: displayStyle === 'inline', isIconInline: iconDisplayStyle === 'inline', className: className, style: style },
|
|
65
63
|
react_1.default.createElement(Textarea_1.Textarea, __assign({ disabled: disabled, className: textareaClassName, style: textareaStyle, required: required }, textareaProps, { ref: ref }))));
|
|
66
64
|
});
|
|
67
65
|
exports.default = exports.LabeledTextarea;
|
package/cjs/core/Menu/Menu.d.ts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import React from 'react';
|
|
2
|
-
import { CommonProps } from '../utils
|
|
2
|
+
import { CommonProps } from '../utils';
|
|
3
3
|
import '@itwin/itwinui-css/css/menu.css';
|
|
4
4
|
export declare type MenuProps = {
|
|
5
5
|
/**
|
|
@@ -14,6 +14,11 @@ export declare type MenuProps = {
|
|
|
14
14
|
* and selected item should have `aria-selected={true}`.
|
|
15
15
|
*/
|
|
16
16
|
children: React.ReactNode;
|
|
17
|
+
/**
|
|
18
|
+
* If true, the first selected or enabled menu item will be focused automatically.
|
|
19
|
+
* @default true
|
|
20
|
+
*/
|
|
21
|
+
setFocus?: boolean;
|
|
17
22
|
} & Omit<CommonProps, 'title'>;
|
|
18
23
|
/**
|
|
19
24
|
* Basic menu component. Can be used for select or dropdown components.
|
|
@@ -31,5 +36,10 @@ export declare const Menu: React.ForwardRefExoticComponent<{
|
|
|
31
36
|
* and selected item should have `aria-selected={true}`.
|
|
32
37
|
*/
|
|
33
38
|
children: React.ReactNode;
|
|
39
|
+
/**
|
|
40
|
+
* If true, the first selected or enabled menu item will be focused automatically.
|
|
41
|
+
* @default true
|
|
42
|
+
*/
|
|
43
|
+
setFocus?: boolean | undefined;
|
|
34
44
|
} & Omit<CommonProps, "title"> & React.RefAttributes<HTMLUListElement>>;
|
|
35
45
|
export default Menu;
|
package/cjs/core/Menu/Menu.js
CHANGED
|
@@ -32,34 +32,34 @@ exports.Menu = void 0;
|
|
|
32
32
|
*--------------------------------------------------------------------------------------------*/
|
|
33
33
|
var react_1 = __importDefault(require("react"));
|
|
34
34
|
var classnames_1 = __importDefault(require("classnames"));
|
|
35
|
-
var
|
|
35
|
+
var utils_1 = require("../utils");
|
|
36
36
|
require("@itwin/itwinui-css/css/menu.css");
|
|
37
|
-
var useMergedRefs_1 = require("../utils/hooks/useMergedRefs");
|
|
38
|
-
var common_1 = require("../utils/common");
|
|
39
37
|
/**
|
|
40
38
|
* Basic menu component. Can be used for select or dropdown components.
|
|
41
39
|
*/
|
|
42
40
|
exports.Menu = react_1.default.forwardRef(function (props, ref) {
|
|
43
|
-
var children = props.children, _a = props.role, role = _a === void 0 ? 'menu' : _a, className = props.className, style = props.style, rest = __rest(props, ["children", "role", "className", "style"]);
|
|
44
|
-
(0,
|
|
45
|
-
var
|
|
41
|
+
var children = props.children, _a = props.role, role = _a === void 0 ? 'menu' : _a, _b = props.setFocus, setFocus = _b === void 0 ? true : _b, className = props.className, style = props.style, rest = __rest(props, ["children", "role", "setFocus", "className", "style"]);
|
|
42
|
+
(0, utils_1.useTheme)();
|
|
43
|
+
var _c = react_1.default.useState(), focusedIndex = _c[0], setFocusedIndex = _c[1];
|
|
46
44
|
var menuRef = react_1.default.useRef(null);
|
|
47
|
-
var refs = (0,
|
|
45
|
+
var refs = (0, utils_1.useMergedRefs)(menuRef, ref);
|
|
48
46
|
react_1.default.useEffect(function () {
|
|
49
47
|
var _a;
|
|
50
|
-
var items = (0,
|
|
48
|
+
var items = (0, utils_1.getFocusableElements)(menuRef.current);
|
|
51
49
|
if (focusedIndex != null) {
|
|
52
50
|
(_a = items === null || items === void 0 ? void 0 : items[focusedIndex]) === null || _a === void 0 ? void 0 : _a.focus();
|
|
53
51
|
return;
|
|
54
52
|
}
|
|
55
53
|
var selectedIndex = items.findIndex(function (el) { return el.getAttribute('aria-selected') === 'true'; });
|
|
56
|
-
|
|
57
|
-
|
|
54
|
+
if (setFocus) {
|
|
55
|
+
setFocusedIndex(selectedIndex > -1 ? selectedIndex : 0);
|
|
56
|
+
}
|
|
57
|
+
}, [setFocus, focusedIndex]);
|
|
58
58
|
react_1.default.useEffect(function () {
|
|
59
59
|
setFocusedIndex(null);
|
|
60
60
|
}, [children]);
|
|
61
61
|
var onKeyDown = function (event) {
|
|
62
|
-
var items = (0,
|
|
62
|
+
var items = (0, utils_1.getFocusableElements)(menuRef.current);
|
|
63
63
|
if (!(items === null || items === void 0 ? void 0 : items.length)) {
|
|
64
64
|
return;
|
|
65
65
|
}
|
|
@@ -9,10 +9,10 @@ exports.MenuDivider = void 0;
|
|
|
9
9
|
* See LICENSE.md in the project root for license terms and full copyright notice.
|
|
10
10
|
*--------------------------------------------------------------------------------------------*/
|
|
11
11
|
var react_1 = __importDefault(require("react"));
|
|
12
|
-
var
|
|
12
|
+
var utils_1 = require("../utils");
|
|
13
13
|
require("@itwin/itwinui-css/css/menu.css");
|
|
14
14
|
var MenuDivider = function () {
|
|
15
|
-
(0,
|
|
15
|
+
(0, utils_1.useTheme)();
|
|
16
16
|
return react_1.default.createElement("li", { role: 'separator', className: 'iui-menu-divider' });
|
|
17
17
|
};
|
|
18
18
|
exports.MenuDivider = MenuDivider;
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import React from 'react';
|
|
2
|
-
import { CommonProps } from '../utils
|
|
2
|
+
import { CommonProps } from '../utils';
|
|
3
3
|
import '@itwin/itwinui-css/css/menu.css';
|
|
4
4
|
export declare type MenuItemProps = {
|
|
5
5
|
/**
|
|
@@ -108,5 +108,5 @@ export declare const MenuItem: React.ForwardRefExoticComponent<{
|
|
|
108
108
|
id?: string | undefined;
|
|
109
109
|
} & {
|
|
110
110
|
style?: React.CSSProperties | undefined;
|
|
111
|
-
} & import("../utils
|
|
111
|
+
} & import("../utils").ClassNameProps & React.RefAttributes<HTMLLIElement>>;
|
|
112
112
|
export default MenuItem;
|
|
@@ -32,12 +32,10 @@ exports.MenuItem = void 0;
|
|
|
32
32
|
*--------------------------------------------------------------------------------------------*/
|
|
33
33
|
var react_1 = __importDefault(require("react"));
|
|
34
34
|
var classnames_1 = __importDefault(require("classnames"));
|
|
35
|
-
var
|
|
35
|
+
var utils_1 = require("../utils");
|
|
36
36
|
require("@itwin/itwinui-css/css/menu.css");
|
|
37
37
|
var CaretRightSmall_1 = __importDefault(require("@itwin/itwinui-icons-react/cjs/icons/CaretRightSmall"));
|
|
38
|
-
var Popover_1 = require("../utils/Popover");
|
|
39
38
|
var Menu_1 = require("./Menu");
|
|
40
|
-
var useMergedRefs_1 = require("../utils/hooks/useMergedRefs");
|
|
41
39
|
/**
|
|
42
40
|
* Context used to provide menu item ref to sub-menu items.
|
|
43
41
|
*/
|
|
@@ -47,9 +45,9 @@ var MenuItemContext = react_1.default.createContext({ ref: undefined });
|
|
|
47
45
|
*/
|
|
48
46
|
exports.MenuItem = react_1.default.forwardRef(function (props, ref) {
|
|
49
47
|
var children = props.children, isSelected = props.isSelected, disabled = props.disabled, value = props.value, onClick = props.onClick, sublabel = props.sublabel, _a = props.size, size = _a === void 0 ? !!sublabel ? 'large' : 'default' : _a, icon = props.icon, badge = props.badge, className = props.className, style = props.style, _b = props.role, role = _b === void 0 ? 'menuitem' : _b, _c = props.subMenuItems, subMenuItems = _c === void 0 ? [] : _c, rest = __rest(props, ["children", "isSelected", "disabled", "value", "onClick", "sublabel", "size", "icon", "badge", "className", "style", "role", "subMenuItems"]);
|
|
50
|
-
(0,
|
|
48
|
+
(0, utils_1.useTheme)();
|
|
51
49
|
var menuItemRef = react_1.default.useRef(null);
|
|
52
|
-
var refs = (0,
|
|
50
|
+
var refs = (0, utils_1.useMergedRefs)(menuItemRef, ref);
|
|
53
51
|
var parentMenuItemRef = react_1.default.useContext(MenuItemContext).ref;
|
|
54
52
|
var subMenuRef = react_1.default.useRef(null);
|
|
55
53
|
var _d = react_1.default.useState(false), isSubmenuVisible = _d[0], setIsSubmenuVisible = _d[1];
|
|
@@ -88,7 +86,7 @@ exports.MenuItem = react_1.default.forwardRef(function (props, ref) {
|
|
|
88
86
|
'iui-large': size === 'large',
|
|
89
87
|
'iui-active': isSelected,
|
|
90
88
|
'iui-disabled': disabled,
|
|
91
|
-
}, className), onClick: function () { return !disabled && (onClick === null || onClick === void 0 ? void 0 : onClick(value)); }, ref: refs, style: style, role: role, tabIndex: disabled ? undefined : -1, "aria-selected": isSelected, "aria-haspopup": subMenuItems.length > 0, "aria-disabled": disabled, onKeyDown: onKeyDown, onMouseEnter: function () { return setIsSubmenuVisible(true); }, onMouseLeave: function (e) {
|
|
89
|
+
}, className), onClick: function () { return !disabled && (onClick === null || onClick === void 0 ? void 0 : onClick(value)); }, ref: refs, style: style, role: role, tabIndex: disabled || role === 'presentation' ? undefined : -1, "aria-selected": isSelected, "aria-haspopup": subMenuItems.length > 0, "aria-disabled": disabled, onKeyDown: onKeyDown, onMouseEnter: function () { return setIsSubmenuVisible(true); }, onMouseLeave: function (e) {
|
|
92
90
|
var _a;
|
|
93
91
|
if (!(e.relatedTarget instanceof Node) ||
|
|
94
92
|
!((_a = subMenuRef.current) === null || _a === void 0 ? void 0 : _a.contains(e.relatedTarget))) {
|
|
@@ -108,7 +106,7 @@ exports.MenuItem = react_1.default.forwardRef(function (props, ref) {
|
|
|
108
106
|
className: (0, classnames_1.default)(badge.props.className, 'iui-icon'),
|
|
109
107
|
})));
|
|
110
108
|
return subMenuItems.length === 0 ? (listItem) : (react_1.default.createElement(MenuItemContext.Provider, { value: { ref: menuItemRef } },
|
|
111
|
-
react_1.default.createElement(
|
|
109
|
+
react_1.default.createElement(utils_1.Popover, { placement: 'right-start', visible: isSubmenuVisible, content: react_1.default.createElement("div", { onMouseLeave: function () { return setIsSubmenuVisible(false); }, onBlur: function (e) {
|
|
112
110
|
var _a, _b;
|
|
113
111
|
!!(e.relatedTarget instanceof Node) &&
|
|
114
112
|
!((_a = subMenuRef.current) === null || _a === void 0 ? void 0 : _a.contains(e.relatedTarget)) &&
|