@jobber/components 2.86.0 → 2.86.2
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 +16 -0
- package/dist/Autocomplete/Autocomplete.d.ts +47 -47
- package/dist/Autocomplete/Menu.d.ts +9 -9
- package/dist/Autocomplete/Option.d.ts +15 -15
- package/dist/Autocomplete/index.d.ts +2 -2
- package/dist/Autocomplete/index.js +215 -211
- package/dist/Avatar/Avatar.d.ts +37 -37
- package/dist/Avatar/index.d.ts +1 -1
- package/dist/Avatar/index.js +7 -74
- package/dist/Avatar/utilities.d.ts +1 -1
- package/dist/Avatar-cfd04e86.js +82 -0
- package/dist/Banner/Banner.d.ts +19 -19
- package/dist/Banner/index.d.ts +1 -1
- package/dist/Banner/index.js +67 -65
- package/dist/Button/Button.d.ts +64 -64
- package/dist/Button/index.d.ts +1 -1
- package/dist/Button/index.js +9 -53
- package/dist/Button-5b2f1636.js +60 -0
- package/dist/ButtonDismiss/ButtonDismiss.d.ts +7 -7
- package/dist/ButtonDismiss/index.d.ts +1 -1
- package/dist/ButtonDismiss/index.js +10 -15
- package/dist/ButtonDismiss-4cde8f7c.js +15 -0
- package/dist/Card/Card.d.ts +31 -31
- package/dist/Card/CardClickable.d.ts +12 -12
- package/dist/Card/index.d.ts +1 -1
- package/dist/Card/index.js +7 -61
- package/dist/Card-368e01a3.js +68 -0
- package/dist/Checkbox/Checkbox.d.ts +52 -52
- package/dist/Checkbox/index.d.ts +1 -1
- package/dist/Checkbox/index.js +34 -32
- package/dist/Chips/Chip.d.ts +8 -8
- package/dist/Chips/ChipDismissible.d.ts +7 -7
- package/dist/Chips/ChipTypes.d.ts +59 -59
- package/dist/Chips/Chips.d.ts +2 -2
- package/dist/Chips/ChipsTypes.d.ts +82 -82
- package/dist/Chips/InternalChip.d.ts +2 -2
- package/dist/Chips/InternalChipAffix.d.ts +10 -10
- package/dist/Chips/InternalChipButton.d.ts +10 -10
- package/dist/Chips/InternalChipDismissible/InternalChipDismissible.d.ts +2 -2
- package/dist/Chips/InternalChipDismissible/InternalChipDismissibleInput.d.ts +2 -2
- package/dist/Chips/InternalChipDismissible/InternalChipDismissibleTypes.d.ts +13 -13
- package/dist/Chips/InternalChipDismissible/hooks/index.d.ts +5 -5
- package/dist/Chips/InternalChipDismissible/hooks/useInView.d.ts +5 -5
- package/dist/Chips/InternalChipDismissible/hooks/useInternalChipDismissible.d.ts +15 -15
- package/dist/Chips/InternalChipDismissible/hooks/useInternalChipDismissibleInput.d.ts +28 -28
- package/dist/Chips/InternalChipDismissible/hooks/useRepositionMenu.d.ts +16 -16
- package/dist/Chips/InternalChipDismissible/hooks/useScrollToActive.d.ts +2 -2
- package/dist/Chips/InternalChipDismissible/index.d.ts +1 -1
- package/dist/Chips/InternalChipMultiSelect.d.ts +4 -4
- package/dist/Chips/InternalChipSingleSelect.d.ts +4 -4
- package/dist/Chips/index.d.ts +3 -3
- package/dist/Chips/index.js +493 -491
- package/dist/Chips/utils/mdxUtils.d.ts +9 -9
- package/dist/ConfirmationModal/ConfirmationModal.d.ts +62 -62
- package/dist/ConfirmationModal/index.d.ts +1 -1
- package/dist/ConfirmationModal/index.js +20 -109
- package/dist/ConfirmationModal-b7ef110f.js +103 -0
- package/dist/Content/Content.d.ts +13 -13
- package/dist/Content/index.d.ts +1 -1
- package/dist/Content/index.js +5 -19
- package/dist/Content-18de5fbb.js +26 -0
- package/dist/Countdown/Countdown.d.ts +31 -31
- package/dist/Countdown/computeTimeUnit.d.ts +3 -3
- package/dist/Countdown/index.d.ts +1 -1
- package/dist/Countdown/index.js +63 -61
- package/dist/DataDump/DataDump.d.ts +20 -20
- package/dist/DataDump/index.d.ts +1 -1
- package/dist/DataDump/index.js +18 -17
- package/dist/DatePicker/DatePicker.d.ts +50 -50
- package/dist/DatePicker/DatePickerActivator.d.ts +12 -12
- package/dist/DatePicker/DatePickerCustomHeader.d.ts +2 -2
- package/dist/DatePicker/index.d.ts +1 -1
- package/dist/DatePicker/index.js +13 -97
- package/dist/DatePicker/useFocusOnSelectedDate.d.ts +5 -5
- package/dist/DatePicker-ad6f8630.js +103 -0
- package/dist/DescriptionList/DescriptionList.d.ts +10 -10
- package/dist/DescriptionList/index.d.ts +1 -1
- package/dist/DescriptionList/index.js +16 -15
- package/dist/Disclosure/Disclosure.d.ts +20 -20
- package/dist/Disclosure/index.d.ts +1 -1
- package/dist/Disclosure/index.js +32 -31
- package/dist/Divider/Divider.d.ts +16 -16
- package/dist/Divider/index.d.ts +1 -1
- package/dist/Divider/index.js +19 -17
- package/dist/Drawer/Drawer.d.ts +13 -13
- package/dist/Drawer/DrawerGrid.d.ts +6 -6
- package/dist/Drawer/index.d.ts +2 -2
- package/dist/Drawer/index.js +39 -37
- package/dist/Emphasis/Emphasis.d.ts +11 -11
- package/dist/Emphasis/index.d.ts +1 -1
- package/dist/Emphasis/index.js +7 -17
- package/dist/Emphasis-fd845639.js +21 -0
- package/dist/FeatureSwitch/FeatureSwitch.d.ts +51 -51
- package/dist/FeatureSwitch/index.d.ts +1 -1
- package/dist/FeatureSwitch/index.js +57 -55
- package/dist/Form/Form.d.ts +18 -18
- package/dist/Form/index.d.ts +1 -1
- package/dist/Form/index.js +58 -57
- package/dist/FormField/FormField.d.ts +2 -2
- package/dist/FormField/FormFieldAffix.d.ts +13 -13
- package/dist/FormField/FormFieldDescription.d.ts +6 -6
- package/dist/FormField/FormFieldPostFix.d.ts +5 -5
- package/dist/FormField/FormFieldTypes.d.ts +160 -160
- package/dist/FormField/FormFieldWrapper.d.ts +9 -9
- package/dist/FormField/index.d.ts +2 -2
- package/dist/FormField/index.js +15 -208
- package/dist/FormField-a92c7bac.js +213 -0
- package/dist/FormatDate/FormatDate.d.ts +12 -12
- package/dist/FormatDate/index.d.ts +1 -1
- package/dist/FormatDate/index.js +24 -23
- package/dist/FormatEmail/FormatEmail.d.ts +8 -8
- package/dist/FormatEmail/index.d.ts +1 -1
- package/dist/FormatEmail/index.js +12 -10
- package/dist/FormatFile/FormatFile.d.ts +30 -30
- package/dist/FormatFile/FormatFileDeleteButton.d.ts +6 -6
- package/dist/FormatFile/InternalThumbnail.d.ts +9 -9
- package/dist/FormatFile/index.d.ts +1 -1
- package/dist/FormatFile/index.js +21 -112
- package/dist/FormatFile-5391d4cf.js +112 -0
- package/dist/FormatRelativeDateTime/FormatRelativeDateTime.d.ts +11 -11
- package/dist/FormatRelativeDateTime/index.d.ts +1 -1
- package/dist/FormatRelativeDateTime/index.js +64 -63
- package/dist/FormatTime/FormatTime.d.ts +15 -15
- package/dist/FormatTime/index.d.ts +1 -1
- package/dist/FormatTime/index.js +28 -27
- package/dist/Gallery/Gallery.d.ts +2 -2
- package/dist/Gallery/GalleryTypes.d.ts +31 -31
- package/dist/Gallery/index.d.ts +1 -1
- package/dist/Gallery/index.js +82 -80
- package/dist/Heading/Heading.d.ts +14 -14
- package/dist/Heading/index.d.ts +1 -1
- package/dist/Heading/index.js +7 -53
- package/dist/Heading-56750113.js +57 -0
- package/dist/Icon/Icon.d.ts +22 -22
- package/dist/Icon/index.d.ts +1 -1
- package/dist/Icon/index.js +4 -35
- package/dist/Icon-d5ad1a6d.js +41 -0
- package/dist/InlineLabel/InlineLabel.d.ts +17 -17
- package/dist/InlineLabel/index.d.ts +1 -1
- package/dist/InlineLabel/index.js +20 -18
- package/dist/InputAvatar/InputAvatar.d.ts +22 -22
- package/dist/InputAvatar/index.d.ts +1 -1
- package/dist/InputAvatar/index.js +57 -56
- package/dist/InputDate/InputDate.d.ts +19 -19
- package/dist/InputDate/index.d.ts +1 -1
- package/dist/InputDate/index.js +34 -33
- package/dist/InputEmail/InputEmail.d.ts +5 -5
- package/dist/InputEmail/index.d.ts +1 -1
- package/dist/InputEmail/index.js +29 -28
- package/dist/InputFile/InputFile.d.ts +121 -121
- package/dist/InputFile/index.d.ts +1 -1
- package/dist/InputFile/index.js +15 -168
- package/dist/InputFile-b5cf90c3.js +174 -0
- package/dist/InputGroup/InputGroup.d.ts +11 -11
- package/dist/InputGroup/index.d.ts +1 -1
- package/dist/InputGroup/index.js +24 -22
- package/dist/InputNumber/InputNumber.d.ts +11 -11
- package/dist/InputNumber/index.d.ts +1 -1
- package/dist/InputNumber/index.js +52 -51
- package/dist/InputPassword/InputPassword.d.ts +12 -12
- package/dist/InputPassword/index.d.ts +1 -1
- package/dist/InputPassword/index.js +28 -27
- package/dist/InputText/InputText.d.ts +29 -29
- package/dist/InputText/index.d.ts +1 -1
- package/dist/InputText/index.js +15 -95
- package/dist/InputText-cb3be15c.js +91 -0
- package/dist/InputTime/InputTime.d.ts +2 -2
- package/dist/InputTime/InputTimeProps.d.ts +18 -18
- package/dist/InputTime/InputTimeSafari.d.ts +2 -2
- package/dist/InputTime/civilTimeConversions.d.ts +3 -3
- package/dist/InputTime/index.d.ts +1 -1
- package/dist/InputTime/index.js +402 -257
- package/dist/InputValidation/InputValidation.d.ts +8 -8
- package/dist/InputValidation/index.d.ts +1 -1
- package/dist/InputValidation/index.js +8 -24
- package/dist/InputValidation-24d3621a.js +28 -0
- package/dist/LightBox/LightBox.d.ts +37 -37
- package/dist/LightBox/index.d.ts +1 -1
- package/dist/LightBox/index.js +6 -34
- package/dist/LightBox-b893b656.js +42 -0
- package/dist/List/List.d.ts +11 -11
- package/dist/List/ListItem.d.ts +54 -54
- package/dist/List/index.d.ts +1 -1
- package/dist/List/index.js +76 -74
- package/dist/Markdown/Markdown.d.ts +17 -17
- package/dist/Markdown/index.d.ts +1 -1
- package/dist/Markdown/index.js +12 -64
- package/dist/Markdown-69986c49.js +68 -0
- package/dist/Menu/Menu.d.ts +46 -46
- package/dist/Menu/index.d.ts +1 -1
- package/dist/Menu/index.js +13 -128
- package/dist/Menu-6a392af6.js +134 -0
- package/dist/Modal/Modal.d.ts +22 -22
- package/dist/Modal/index.d.ts +1 -1
- package/dist/Modal/index.js +14 -127
- package/dist/Modal/useFocusTrap.d.ts +10 -10
- package/dist/Modal-aaaaf2df.js +132 -0
- package/dist/Page/Page.d.ts +59 -59
- package/dist/Page/index.d.ts +1 -1
- package/dist/Page/index.js +63 -61
- package/dist/Popover/Popover.d.ts +26 -26
- package/dist/Popover/index.d.ts +1 -1
- package/dist/Popover/index.js +49 -48
- package/dist/ProgressBar/ProgressBar.d.ts +18 -18
- package/dist/ProgressBar/index.d.ts +1 -1
- package/dist/ProgressBar/index.js +5 -22
- package/dist/ProgressBar-e9a49129.js +29 -0
- package/dist/RadioGroup/RadioGroup.d.ts +27 -27
- package/dist/RadioGroup/RadioOption.d.ts +34 -34
- package/dist/RadioGroup/index.d.ts +2 -2
- package/dist/RadioGroup/index.js +38 -37
- package/dist/RecurringSelect/CurrentRecurrenceComponent.d.ts +8 -8
- package/dist/RecurringSelect/RecurringSelect.d.ts +8 -8
- package/dist/RecurringSelect/components/DayOfMonthSelect.d.ts +8 -8
- package/dist/RecurringSelect/components/MonthlyDayOfWeekSelect.d.ts +8 -8
- package/dist/RecurringSelect/components/MonthlySelect.d.ts +8 -8
- package/dist/RecurringSelect/components/WeeklySelect.d.ts +8 -8
- package/dist/RecurringSelect/components/index.d.ts +4 -4
- package/dist/RecurringSelect/index.d.ts +2 -2
- package/dist/RecurringSelect/types.d.ts +65 -65
- package/dist/Select/Option.d.ts +17 -17
- package/dist/Select/Select.d.ts +10 -10
- package/dist/Select/index.d.ts +2 -2
- package/dist/Select/index.js +20 -19
- package/dist/Spinner/Spinner.d.ts +15 -15
- package/dist/Spinner/index.d.ts +1 -1
- package/dist/Spinner/index.js +5 -19
- package/dist/Spinner-18d3dee6.js +26 -0
- package/dist/StatusLabel/StatusLabel.d.ts +25 -25
- package/dist/StatusLabel/index.d.ts +1 -1
- package/dist/StatusLabel/index.js +21 -19
- package/dist/Switch/Switch.d.ts +14 -14
- package/dist/Switch/index.d.ts +1 -1
- package/dist/Switch/index.js +7 -53
- package/dist/Switch-d2bec677.js +60 -0
- package/dist/Table/Body.d.ts +6 -6
- package/dist/Table/Cells/Cell.d.ts +7 -7
- package/dist/Table/Cells/CellCurrency.d.ts +8 -8
- package/dist/Table/Cells/CellNumeric.d.ts +4 -4
- package/dist/Table/Footer.d.ts +6 -6
- package/dist/Table/Header.d.ts +6 -6
- package/dist/Table/Row.d.ts +6 -6
- package/dist/Table/Table.d.ts +6 -6
- package/dist/Table/index.d.ts +8 -8
- package/dist/Table/index.js +41 -39
- package/dist/Tabs/Tabs.d.ts +19 -19
- package/dist/Tabs/index.d.ts +1 -1
- package/dist/Tabs/index.js +69 -67
- package/dist/Text/Text.d.ts +9 -9
- package/dist/Text/index.d.ts +1 -1
- package/dist/Text/index.js +7 -29
- package/dist/Text-9bc093e9.js +32 -0
- package/dist/Toast/Toast.d.ts +17 -17
- package/dist/Toast/index.d.ts +1 -1
- package/dist/Toast/index.js +93 -93
- package/dist/Toast/showToast.d.ts +2 -2
- package/dist/Tooltip/Tooltip.d.ts +10 -10
- package/dist/Tooltip/index.d.ts +1 -1
- package/dist/Tooltip/index.js +11 -110
- package/dist/Tooltip/useTooltipPositioning.d.ts +18 -18
- package/dist/Tooltip-4396164d.js +116 -0
- package/dist/Typography/Typography.d.ts +38 -38
- package/dist/Typography/index.d.ts +1 -1
- package/dist/Typography/index.js +6 -57
- package/dist/Typography-7e542a72.js +64 -0
- package/dist/{chunk-17e02351.js → style-inject.es-dcee06b6.js} +0 -0
- package/dist/{chunk-b67af3cb.js → tslib.es6-5b50eb8e.js} +0 -0
- package/package.json +6 -8
- package/rollup.config.js +28 -3
package/dist/Markdown/index.js
CHANGED
|
@@ -2,70 +2,18 @@
|
|
|
2
2
|
|
|
3
3
|
Object.defineProperty(exports, '__esModule', { value: true });
|
|
4
4
|
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
require('../
|
|
5
|
+
var Markdown = require('../Markdown-69986c49.js');
|
|
6
|
+
require('../tslib.es6-5b50eb8e.js');
|
|
7
|
+
require('react');
|
|
8
|
+
require('react-markdown');
|
|
9
|
+
require('../Text-9bc093e9.js');
|
|
10
|
+
require('../Typography-7e542a72.js');
|
|
11
11
|
require('classnames');
|
|
12
|
-
require('../
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
var index$4 = require('../Emphasis/index.js');
|
|
12
|
+
require('../style-inject.es-dcee06b6.js');
|
|
13
|
+
require('../Emphasis-fd845639.js');
|
|
14
|
+
require('../Heading-56750113.js');
|
|
15
|
+
require('../Content-18de5fbb.js');
|
|
16
|
+
|
|
18
17
|
|
|
19
|
-
function Markdown(_a) {
|
|
20
|
-
var content = _a.content, externalLink = _a.externalLink, basicUsage = _a.basicUsage;
|
|
21
|
-
var props = __chunk_1.__assign({}, (basicUsage && {
|
|
22
|
-
disallowedElements: [
|
|
23
|
-
"p",
|
|
24
|
-
"h1",
|
|
25
|
-
"h2",
|
|
26
|
-
"h3",
|
|
27
|
-
"h4",
|
|
28
|
-
"h5",
|
|
29
|
-
"h6",
|
|
30
|
-
"table",
|
|
31
|
-
"ul",
|
|
32
|
-
"li",
|
|
33
|
-
"code",
|
|
34
|
-
"image",
|
|
35
|
-
],
|
|
36
|
-
unwrapDisallowed: true,
|
|
37
|
-
}));
|
|
38
|
-
var Tag = basicUsage ? React__default.Fragment : index$2.Content;
|
|
39
|
-
return (React__default.createElement(Tag, null,
|
|
40
|
-
React__default.createElement(ReactMarkdown, __chunk_1.__assign({}, props, { linkTarget: externalLink ? "_blank" : undefined, components: {
|
|
41
|
-
p: renderParagraph,
|
|
42
|
-
strong: renderStrong,
|
|
43
|
-
em: renderEmphasis,
|
|
44
|
-
h1: renderHeading(1),
|
|
45
|
-
h2: renderHeading(2),
|
|
46
|
-
h3: renderHeading(3),
|
|
47
|
-
h4: renderHeading(4),
|
|
48
|
-
h5: renderHeading(5),
|
|
49
|
-
} }), content)));
|
|
50
|
-
}
|
|
51
|
-
function renderParagraph(_a) {
|
|
52
|
-
var children = _a.children;
|
|
53
|
-
return React__default.createElement(index$1.Text, null, children);
|
|
54
|
-
}
|
|
55
|
-
function renderStrong(_a) {
|
|
56
|
-
var children = _a.children;
|
|
57
|
-
return React__default.createElement(index$4.Emphasis, { variation: "bold" }, children);
|
|
58
|
-
}
|
|
59
|
-
function renderEmphasis(_a) {
|
|
60
|
-
var children = _a.children;
|
|
61
|
-
return React__default.createElement(index$4.Emphasis, { variation: "italic" }, children);
|
|
62
|
-
}
|
|
63
|
-
function renderHeading(level) {
|
|
64
|
-
function buildHeading(_a) {
|
|
65
|
-
var children = _a.children;
|
|
66
|
-
return React__default.createElement(index$3.Heading, { level: level }, children);
|
|
67
|
-
}
|
|
68
|
-
return buildHeading;
|
|
69
|
-
}
|
|
70
18
|
|
|
71
|
-
exports.Markdown = Markdown;
|
|
19
|
+
exports.Markdown = Markdown.Markdown;
|
|
@@ -0,0 +1,68 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
var tslib_es6 = require('./tslib.es6-5b50eb8e.js');
|
|
4
|
+
var React = require('react');
|
|
5
|
+
var ReactMarkdown = require('react-markdown');
|
|
6
|
+
var Text = require('./Text-9bc093e9.js');
|
|
7
|
+
var Emphasis = require('./Emphasis-fd845639.js');
|
|
8
|
+
var Heading = require('./Heading-56750113.js');
|
|
9
|
+
var Content = require('./Content-18de5fbb.js');
|
|
10
|
+
|
|
11
|
+
function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; }
|
|
12
|
+
|
|
13
|
+
var React__default = /*#__PURE__*/_interopDefaultLegacy(React);
|
|
14
|
+
var ReactMarkdown__default = /*#__PURE__*/_interopDefaultLegacy(ReactMarkdown);
|
|
15
|
+
|
|
16
|
+
function Markdown(_a) {
|
|
17
|
+
var content = _a.content, externalLink = _a.externalLink, basicUsage = _a.basicUsage;
|
|
18
|
+
var props = tslib_es6.__assign({}, (basicUsage && {
|
|
19
|
+
disallowedElements: [
|
|
20
|
+
"p",
|
|
21
|
+
"h1",
|
|
22
|
+
"h2",
|
|
23
|
+
"h3",
|
|
24
|
+
"h4",
|
|
25
|
+
"h5",
|
|
26
|
+
"h6",
|
|
27
|
+
"table",
|
|
28
|
+
"ul",
|
|
29
|
+
"li",
|
|
30
|
+
"code",
|
|
31
|
+
"image",
|
|
32
|
+
],
|
|
33
|
+
unwrapDisallowed: true,
|
|
34
|
+
}));
|
|
35
|
+
var Tag = basicUsage ? React__default["default"].Fragment : Content.Content;
|
|
36
|
+
return (React__default["default"].createElement(Tag, null,
|
|
37
|
+
React__default["default"].createElement(ReactMarkdown__default["default"], tslib_es6.__assign({}, props, { linkTarget: externalLink ? "_blank" : undefined, components: {
|
|
38
|
+
p: renderParagraph,
|
|
39
|
+
strong: renderStrong,
|
|
40
|
+
em: renderEmphasis,
|
|
41
|
+
h1: renderHeading(1),
|
|
42
|
+
h2: renderHeading(2),
|
|
43
|
+
h3: renderHeading(3),
|
|
44
|
+
h4: renderHeading(4),
|
|
45
|
+
h5: renderHeading(5),
|
|
46
|
+
} }), content)));
|
|
47
|
+
}
|
|
48
|
+
function renderParagraph(_a) {
|
|
49
|
+
var children = _a.children;
|
|
50
|
+
return React__default["default"].createElement(Text.Text, null, children);
|
|
51
|
+
}
|
|
52
|
+
function renderStrong(_a) {
|
|
53
|
+
var children = _a.children;
|
|
54
|
+
return React__default["default"].createElement(Emphasis.Emphasis, { variation: "bold" }, children);
|
|
55
|
+
}
|
|
56
|
+
function renderEmphasis(_a) {
|
|
57
|
+
var children = _a.children;
|
|
58
|
+
return React__default["default"].createElement(Emphasis.Emphasis, { variation: "italic" }, children);
|
|
59
|
+
}
|
|
60
|
+
function renderHeading(level) {
|
|
61
|
+
function buildHeading(_a) {
|
|
62
|
+
var children = _a.children;
|
|
63
|
+
return React__default["default"].createElement(Heading.Heading, { level: level }, children);
|
|
64
|
+
}
|
|
65
|
+
return buildHeading;
|
|
66
|
+
}
|
|
67
|
+
|
|
68
|
+
exports.Markdown = Markdown;
|
package/dist/Menu/Menu.d.ts
CHANGED
|
@@ -1,46 +1,46 @@
|
|
|
1
|
-
import React, { ReactElement } from "react";
|
|
2
|
-
import { IconNames } from "@jobber/design";
|
|
3
|
-
interface MenuProps {
|
|
4
|
-
/**
|
|
5
|
-
* Custom menu activator. If this is not provided a default [… More] will be used.
|
|
6
|
-
*/
|
|
7
|
-
readonly activator?: ReactElement;
|
|
8
|
-
/**
|
|
9
|
-
* Collection of action items.
|
|
10
|
-
*/
|
|
11
|
-
readonly items: SectionProps[];
|
|
12
|
-
}
|
|
13
|
-
export interface SectionProps {
|
|
14
|
-
/**
|
|
15
|
-
* Defines the section header to further explain the group of actions.
|
|
16
|
-
*/
|
|
17
|
-
header?: string;
|
|
18
|
-
/**
|
|
19
|
-
* List of actions.
|
|
20
|
-
*/
|
|
21
|
-
actions: Omit<ActionProps, "shouldFocus">[];
|
|
22
|
-
}
|
|
23
|
-
export declare function Menu({ activator, items }: MenuProps): JSX.Element;
|
|
24
|
-
export interface ActionProps {
|
|
25
|
-
/**
|
|
26
|
-
* Action label
|
|
27
|
-
*/
|
|
28
|
-
label: string;
|
|
29
|
-
/**
|
|
30
|
-
* Parent Section Label
|
|
31
|
-
*/
|
|
32
|
-
sectionLabel?: string;
|
|
33
|
-
/**
|
|
34
|
-
* Visual cue for the action label
|
|
35
|
-
*/
|
|
36
|
-
icon?: IconNames;
|
|
37
|
-
/**
|
|
38
|
-
* Callback when an action gets clicked
|
|
39
|
-
*/
|
|
40
|
-
onClick?(event: React.MouseEvent<HTMLButtonElement>): void;
|
|
41
|
-
/**
|
|
42
|
-
* Focus on the action when rendered
|
|
43
|
-
*/
|
|
44
|
-
shouldFocus?: boolean;
|
|
45
|
-
}
|
|
46
|
-
export {};
|
|
1
|
+
import React, { ReactElement } from "react";
|
|
2
|
+
import { IconNames } from "@jobber/design";
|
|
3
|
+
interface MenuProps {
|
|
4
|
+
/**
|
|
5
|
+
* Custom menu activator. If this is not provided a default [… More] will be used.
|
|
6
|
+
*/
|
|
7
|
+
readonly activator?: ReactElement;
|
|
8
|
+
/**
|
|
9
|
+
* Collection of action items.
|
|
10
|
+
*/
|
|
11
|
+
readonly items: SectionProps[];
|
|
12
|
+
}
|
|
13
|
+
export interface SectionProps {
|
|
14
|
+
/**
|
|
15
|
+
* Defines the section header to further explain the group of actions.
|
|
16
|
+
*/
|
|
17
|
+
header?: string;
|
|
18
|
+
/**
|
|
19
|
+
* List of actions.
|
|
20
|
+
*/
|
|
21
|
+
actions: Omit<ActionProps, "shouldFocus">[];
|
|
22
|
+
}
|
|
23
|
+
export declare function Menu({ activator, items }: MenuProps): JSX.Element;
|
|
24
|
+
export interface ActionProps {
|
|
25
|
+
/**
|
|
26
|
+
* Action label
|
|
27
|
+
*/
|
|
28
|
+
label: string;
|
|
29
|
+
/**
|
|
30
|
+
* Parent Section Label
|
|
31
|
+
*/
|
|
32
|
+
sectionLabel?: string;
|
|
33
|
+
/**
|
|
34
|
+
* Visual cue for the action label
|
|
35
|
+
*/
|
|
36
|
+
icon?: IconNames;
|
|
37
|
+
/**
|
|
38
|
+
* Callback when an action gets clicked
|
|
39
|
+
*/
|
|
40
|
+
onClick?(event: React.MouseEvent<HTMLButtonElement>): void;
|
|
41
|
+
/**
|
|
42
|
+
* Focus on the action when rendered
|
|
43
|
+
*/
|
|
44
|
+
shouldFocus?: boolean;
|
|
45
|
+
}
|
|
46
|
+
export {};
|
package/dist/Menu/index.d.ts
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
export { Menu, SectionProps, ActionProps } from "./Menu";
|
|
1
|
+
export { Menu, SectionProps, ActionProps } from "./Menu";
|
package/dist/Menu/index.js
CHANGED
|
@@ -2,135 +2,20 @@
|
|
|
2
2
|
|
|
3
3
|
Object.defineProperty(exports, '__esModule', { value: true });
|
|
4
4
|
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
require('
|
|
14
|
-
var index$2 = require('../Icon/index.js');
|
|
15
|
-
var uuid = require('uuid');
|
|
5
|
+
var Menu = require('../Menu-6a392af6.js');
|
|
6
|
+
require('../tslib.es6-5b50eb8e.js');
|
|
7
|
+
require('react');
|
|
8
|
+
require('uuid');
|
|
9
|
+
require('classnames');
|
|
10
|
+
require('framer-motion');
|
|
11
|
+
require('@jobber/hooks');
|
|
12
|
+
require('../style-inject.es-dcee06b6.js');
|
|
13
|
+
require('../Button-5b2f1636.js');
|
|
16
14
|
require('react-router-dom');
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
15
|
+
require('../Icon-d5ad1a6d.js');
|
|
16
|
+
require('@jobber/design');
|
|
17
|
+
require('../Typography-7e542a72.js');
|
|
20
18
|
|
|
21
|
-
var css = "._3dsZe-fIMb0ftQQAJf53tI * {\n box-sizing: border-box;\n}\n\n._3dsZe-fIMb0ftQQAJf53tI {\n display: inline-block;\n position: relative;\n}\n\n._15jh7FtEcALDetgrjoV8HG {\n position: fixed;\n bottom: 0;\n left: 0;\n z-index: var(--elevation-menu);\n width: 100%;\n max-height: 72vh;\n padding: var(--space-small);\n padding-bottom: calc(env(safe-area-inset-bottom) + var(--space-small));\n border-radius: var(--radius-base) var(--radius-base) 0 0;\n -webkit-overflow-scrolling: touch;\n overflow-y: scroll;\n background-color: var(--color-surface)\n}\n\n@media (min-width: 640px) {\n\n._15jh7FtEcALDetgrjoV8HG {\n position: absolute;\n left: auto;\n width: calc(var(--base-unit) * 12.5);\n box-shadow: var(--shadow-base);\n padding: var(--space-small);\n border: var(--border-base) solid var(--color-border);\n border-radius: var(--radius-base);\n overflow: auto\n}\n }\n\n@media (min-width: 640px) {\n\n._15jh7FtEcALDetgrjoV8HG {\n position: absolute;\n left: auto;\n width: calc(var(--base-unit) * 12.5);\n box-shadow: var(--shadow-base);\n padding: var(--space-small);\n border: var(--border-base) solid var(--color-border);\n border-radius: var(--radius-base);\n overflow: auto\n}\n }\n\n@media (--medium-screens) {\n\n._15jh7FtEcALDetgrjoV8HG {\n position: absolute;\n left: auto;\n width: calc(var(--base-unit) * 12.5);\n box-shadow: var(--shadow-base);\n padding: var(--space-small);\n border: var(--border-base) solid var(--color-border);\n border-radius: var(--radius-base);\n overflow: auto\n}\n }\n\n@media (min-width: 640px) {\n\n._2S3J3IQ4JcMgnYjzx3A9AA {\n bottom: 100%;\n margin-bottom: var(--space-smallest)\n}\n }\n\n@media (min-width: 640px) {\n\n._2S3J3IQ4JcMgnYjzx3A9AA {\n bottom: 100%;\n margin-bottom: var(--space-smallest)\n}\n }\n\n@media (--medium-screens) {\n\n._2S3J3IQ4JcMgnYjzx3A9AA {\n bottom: 100%;\n margin-bottom: var(--space-smallest)\n}\n }\n\n@media (min-width: 640px) {\n\n.qgoF1WJ8Cu39FVc3p_c8w {\n top: 100%;\n bottom: auto;\n margin-top: var(--space-smallest)\n}\n }\n\n@media (min-width: 640px) {\n\n.qgoF1WJ8Cu39FVc3p_c8w {\n top: 100%;\n bottom: auto;\n margin-top: var(--space-smallest)\n}\n }\n\n@media (--medium-screens) {\n\n.qgoF1WJ8Cu39FVc3p_c8w {\n top: 100%;\n bottom: auto;\n margin-top: var(--space-smallest)\n}\n }\n\n@media (min-width: 640px) {\n\n._2QwnAwwIXZuZReq2cUwEoX {\n right: 0;\n left: auto\n}\n }\n\n@media (min-width: 640px) {\n\n._2QwnAwwIXZuZReq2cUwEoX {\n right: 0;\n left: auto\n}\n }\n\n@media (--medium-screens) {\n\n._2QwnAwwIXZuZReq2cUwEoX {\n right: 0;\n left: auto\n}\n }\n\n@media (min-width: 640px) {\n\n._2Bdz7gjSU8id-Og42er82U {\n right: auto;\n left: 0\n}\n }\n\n@media (min-width: 640px) {\n\n._2Bdz7gjSU8id-Og42er82U {\n right: auto;\n left: 0\n}\n }\n\n@media (--medium-screens) {\n\n._2Bdz7gjSU8id-Og42er82U {\n right: auto;\n left: 0\n}\n }\n\n._1j-ztPLXQgH-5XOlXybf0- {\n padding: var(--space-small) 0;\n border-bottom: var(--border-base) dotted var(--color-border);\n}\n\n._1j-ztPLXQgH-5XOlXybf0-:first-of-type {\n padding-top: 0;\n}\n\n._1j-ztPLXQgH-5XOlXybf0-:last-of-type {\n padding-bottom: 0;\n border-bottom: none;\n}\n\n.ecEGgRDm96wrHymIDR1FM {\n padding: var(--space-small);\n}\n\n._1lmtkHVgn76IrVsqnqlOYh {\n display: -ms-flexbox;\n display: flex;\n width: 100%;\n padding: var(--space-small);\n border: none;\n border-radius: var(--radius-base);\n background-color: transparent;\n cursor: pointer;\n -ms-flex-align: center;\n align-items: center;\n}\n\n._1lmtkHVgn76IrVsqnqlOYh:hover,\n._1lmtkHVgn76IrVsqnqlOYh:focus {\n background-color: var(--color-surface--hover);\n outline-color: var(--color-focus);\n}\n\n.QMbGAf7Vb6_SM8qOIvLMc {\n margin-right: var(--space-base);\n}\n\n._1DIimpm0iJewCr_4Ee8NTa {\n position: fixed;\n top: 0;\n right: 0;\n bottom: 0;\n left: 0;\n z-index: var(--elevation-menu);\n background-color: var(--color-overlay)\n}\n\n@media (min-width: 640px) {\n\n._1DIimpm0iJewCr_4Ee8NTa {\n background-color: transparent\n}\n }\n\n@media (min-width: 640px) {\n\n._1DIimpm0iJewCr_4Ee8NTa {\n background-color: transparent\n}\n }\n\n@media (--medium-screens) {\n\n._1DIimpm0iJewCr_4Ee8NTa {\n background-color: transparent\n}\n }\n\n.qVvYE_6U6kPoQ4ms_2slA {\n width: 100%;\n}\n\n._3Pk5uJMOz91YR7eDwLASEh {\n position: absolute;\n width: 1px;\n height: 1px;\n margin: -1px;\n overflow: hidden;\n clip: rect(0, 0, 0, 0);\n white-space: nowrap;\n}\n";
|
|
22
|
-
var styles = {"wrapper":"_3dsZe-fIMb0ftQQAJf53tI","menu":"_15jh7FtEcALDetgrjoV8HG","above":"_2S3J3IQ4JcMgnYjzx3A9AA","below":"qgoF1WJ8Cu39FVc3p_c8w","left":"_2QwnAwwIXZuZReq2cUwEoX","right":"_2Bdz7gjSU8id-Og42er82U","section":"_1j-ztPLXQgH-5XOlXybf0-","sectionHeader":"ecEGgRDm96wrHymIDR1FM","action":"_1lmtkHVgn76IrVsqnqlOYh","icon":"QMbGAf7Vb6_SM8qOIvLMc","overlay":"_1DIimpm0iJewCr_4Ee8NTa","fullWidth":"qVvYE_6U6kPoQ4ms_2slA","screenReaderOnly":"_3Pk5uJMOz91YR7eDwLASEh"};
|
|
23
|
-
__chunk_2.styleInject(css);
|
|
24
19
|
|
|
25
|
-
var variation = {
|
|
26
|
-
overlayStartStop: { opacity: 0 },
|
|
27
|
-
startOrStop: function (position) {
|
|
28
|
-
var y = 10;
|
|
29
|
-
if (position === "below")
|
|
30
|
-
y *= -1;
|
|
31
|
-
if (window.innerWidth < 640)
|
|
32
|
-
y = 150;
|
|
33
|
-
return { opacity: 0, y: y };
|
|
34
|
-
},
|
|
35
|
-
done: { opacity: 1, y: 0 },
|
|
36
|
-
};
|
|
37
|
-
// eslint-disable-next-line max-statements
|
|
38
|
-
function Menu(_a) {
|
|
39
|
-
var _b;
|
|
40
|
-
var activator = _a.activator, items = _a.items;
|
|
41
|
-
var _c;
|
|
42
|
-
var _d = __chunk_1.__read(React.useState(false), 2), visible = _d[0], setVisible = _d[1];
|
|
43
|
-
var fullWidth = ((_c = activator === null || activator === void 0 ? void 0 : activator.props) === null || _c === void 0 ? void 0 : _c.fullWidth) || false;
|
|
44
|
-
var _e = __chunk_1.__read(React.useState({
|
|
45
|
-
vertical: "below",
|
|
46
|
-
horizontal: "right",
|
|
47
|
-
}), 2), position = _e[0], setPosition = _e[1];
|
|
48
|
-
var wrapperRef = React.createRef();
|
|
49
|
-
var buttonID = uuid.v1();
|
|
50
|
-
var menuID = uuid.v1();
|
|
51
|
-
hooks.useOnKeyDown(handleKeyboardShortcut, ["Escape"]);
|
|
52
|
-
React.useLayoutEffect(function () {
|
|
53
|
-
if (wrapperRef.current) {
|
|
54
|
-
var bounds = wrapperRef.current.getBoundingClientRect();
|
|
55
|
-
var newPosition = __chunk_1.__assign({}, position);
|
|
56
|
-
if (bounds.top <= window.innerHeight / 2) {
|
|
57
|
-
newPosition.vertical = "below";
|
|
58
|
-
}
|
|
59
|
-
else {
|
|
60
|
-
newPosition.vertical = "above";
|
|
61
|
-
}
|
|
62
|
-
if (bounds.left <= window.innerWidth / 2) {
|
|
63
|
-
newPosition.horizontal = "right";
|
|
64
|
-
}
|
|
65
|
-
else {
|
|
66
|
-
newPosition.horizontal = "left";
|
|
67
|
-
}
|
|
68
|
-
setPosition(newPosition);
|
|
69
|
-
}
|
|
70
|
-
}, [visible, fullWidth]);
|
|
71
|
-
if (!activator) {
|
|
72
|
-
activator = (React__default.createElement(index$5.Button, { fullWidth: true, label: "More Actions", icon: "more", type: "secondary" }));
|
|
73
|
-
}
|
|
74
|
-
var menuClasses = classnames(styles.menu, position.vertical === "above" && styles.above, position.vertical === "below" && styles.below, position.horizontal === "left" && styles.left, position.horizontal === "right" && styles.right);
|
|
75
|
-
var wrapperClasses = classnames(styles.wrapper, (_b = {},
|
|
76
|
-
_b[styles.fullWidth] = fullWidth,
|
|
77
|
-
_b));
|
|
78
|
-
return (React__default.createElement("div", { className: wrapperClasses, ref: wrapperRef },
|
|
79
|
-
React__default.cloneElement(activator, {
|
|
80
|
-
onClick: toggle(activator.props.onClick),
|
|
81
|
-
id: buttonID,
|
|
82
|
-
ariaControls: menuID,
|
|
83
|
-
ariaExpanded: visible,
|
|
84
|
-
ariaHaspopup: true,
|
|
85
|
-
}),
|
|
86
|
-
React__default.createElement(framerMotion.AnimatePresence, null, visible && (React__default.createElement(React__default.Fragment, null,
|
|
87
|
-
React__default.createElement(framerMotion.motion.div, { className: styles.overlay, onClick: toggle(), variants: variation, initial: "overlayStartStop", animate: "done", exit: "overlayStartStop", transition: {
|
|
88
|
-
type: "tween",
|
|
89
|
-
duration: 0.15,
|
|
90
|
-
} }),
|
|
91
|
-
React__default.createElement(framerMotion.motion.div, { className: menuClasses, role: "menu", "aria-labelledby": buttonID, id: menuID, onClick: hide, variants: variation, initial: "startOrStop", animate: "done", exit: "startOrStop", custom: position, transition: {
|
|
92
|
-
type: "tween",
|
|
93
|
-
duration: 0.25,
|
|
94
|
-
} }, items.map(function (item, key) { return (React__default.createElement("div", { key: key, className: styles.section },
|
|
95
|
-
item.header && React__default.createElement(SectionHeader, { text: item.header }),
|
|
96
|
-
item.actions.map(function (action, index) { return (React__default.createElement(Action, __chunk_1.__assign({ sectionLabel: item.header, key: action.label, shouldFocus: key === 0 && index === 0 }, action))); }))); })))))));
|
|
97
|
-
function toggle(callbackPassthrough) {
|
|
98
|
-
return function (event) {
|
|
99
|
-
setVisible(!visible);
|
|
100
|
-
callbackPassthrough && callbackPassthrough(event);
|
|
101
|
-
};
|
|
102
|
-
}
|
|
103
|
-
function hide() {
|
|
104
|
-
setVisible(false);
|
|
105
|
-
}
|
|
106
|
-
function handleKeyboardShortcut(event) {
|
|
107
|
-
var key = event.key;
|
|
108
|
-
if (!visible)
|
|
109
|
-
return;
|
|
110
|
-
event.preventDefault();
|
|
111
|
-
event.stopPropagation();
|
|
112
|
-
key === "Escape" && hide();
|
|
113
|
-
}
|
|
114
|
-
}
|
|
115
|
-
function SectionHeader(_a) {
|
|
116
|
-
var text = _a.text;
|
|
117
|
-
return (React__default.createElement("div", { className: styles.sectionHeader, "aria-hidden": true },
|
|
118
|
-
React__default.createElement(index.Typography, { element: "h6", size: "small", textCase: "uppercase", textColor: "greyBlue", fontWeight: "bold" }, text)));
|
|
119
|
-
}
|
|
120
|
-
function Action(_a) {
|
|
121
|
-
var label = _a.label, sectionLabel = _a.sectionLabel, icon = _a.icon, onClick = _a.onClick, _b = _a.shouldFocus, shouldFocus = _b === void 0 ? false : _b;
|
|
122
|
-
var actionButtonRef = React.useRef();
|
|
123
|
-
React.useEffect(function () {
|
|
124
|
-
if (actionButtonRef.current && shouldFocus) {
|
|
125
|
-
actionButtonRef.current.focus();
|
|
126
|
-
}
|
|
127
|
-
}, [shouldFocus]);
|
|
128
|
-
return (React__default.createElement("button", { role: "menuitem", type: "button", className: styles.action, key: label, onClick: onClick, ref: actionButtonRef },
|
|
129
|
-
icon && (React__default.createElement("span", { className: styles.icon },
|
|
130
|
-
React__default.createElement(index$2.Icon, { name: icon }))),
|
|
131
|
-
React__default.createElement(index.Typography, { element: "span", size: "base", textColor: "greyBlueDark" },
|
|
132
|
-
sectionLabel && (React__default.createElement("span", { className: styles.screenReaderOnly }, sectionLabel)),
|
|
133
|
-
label)));
|
|
134
|
-
}
|
|
135
20
|
|
|
136
|
-
exports.Menu = Menu;
|
|
21
|
+
exports.Menu = Menu.Menu;
|
|
@@ -0,0 +1,134 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
var tslib_es6 = require('./tslib.es6-5b50eb8e.js');
|
|
4
|
+
var React = require('react');
|
|
5
|
+
var uuid = require('uuid');
|
|
6
|
+
var classnames = require('classnames');
|
|
7
|
+
var framerMotion = require('framer-motion');
|
|
8
|
+
var hooks = require('@jobber/hooks');
|
|
9
|
+
var styleInject_es = require('./style-inject.es-dcee06b6.js');
|
|
10
|
+
var Button = require('./Button-5b2f1636.js');
|
|
11
|
+
var Typography = require('./Typography-7e542a72.js');
|
|
12
|
+
var Icon = require('./Icon-d5ad1a6d.js');
|
|
13
|
+
|
|
14
|
+
function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; }
|
|
15
|
+
|
|
16
|
+
var React__default = /*#__PURE__*/_interopDefaultLegacy(React);
|
|
17
|
+
var classnames__default = /*#__PURE__*/_interopDefaultLegacy(classnames);
|
|
18
|
+
|
|
19
|
+
var css = "._3dsZe-fIMb0ftQQAJf53tI * {\n box-sizing: border-box;\n}\n\n._3dsZe-fIMb0ftQQAJf53tI {\n display: inline-block;\n position: relative;\n}\n\n._15jh7FtEcALDetgrjoV8HG {\n position: fixed;\n bottom: 0;\n left: 0;\n z-index: var(--elevation-menu);\n width: 100%;\n max-height: 72vh;\n padding: var(--space-small);\n padding-bottom: calc(env(safe-area-inset-bottom) + var(--space-small));\n border-radius: var(--radius-base) var(--radius-base) 0 0;\n -webkit-overflow-scrolling: touch;\n overflow-y: scroll;\n background-color: var(--color-surface)\n}\n\n@media (min-width: 640px) {\n\n._15jh7FtEcALDetgrjoV8HG {\n position: absolute;\n left: auto;\n width: calc(var(--base-unit) * 12.5);\n box-shadow: var(--shadow-base);\n padding: var(--space-small);\n border: var(--border-base) solid var(--color-border);\n border-radius: var(--radius-base);\n overflow: auto\n}\n }\n\n@media (min-width: 640px) {\n\n._15jh7FtEcALDetgrjoV8HG {\n position: absolute;\n left: auto;\n width: calc(var(--base-unit) * 12.5);\n box-shadow: var(--shadow-base);\n padding: var(--space-small);\n border: var(--border-base) solid var(--color-border);\n border-radius: var(--radius-base);\n overflow: auto\n}\n }\n\n@media (--medium-screens) {\n\n._15jh7FtEcALDetgrjoV8HG {\n position: absolute;\n left: auto;\n width: calc(var(--base-unit) * 12.5);\n box-shadow: var(--shadow-base);\n padding: var(--space-small);\n border: var(--border-base) solid var(--color-border);\n border-radius: var(--radius-base);\n overflow: auto\n}\n }\n\n@media (min-width: 640px) {\n\n._2S3J3IQ4JcMgnYjzx3A9AA {\n bottom: 100%;\n margin-bottom: var(--space-smallest)\n}\n }\n\n@media (min-width: 640px) {\n\n._2S3J3IQ4JcMgnYjzx3A9AA {\n bottom: 100%;\n margin-bottom: var(--space-smallest)\n}\n }\n\n@media (--medium-screens) {\n\n._2S3J3IQ4JcMgnYjzx3A9AA {\n bottom: 100%;\n margin-bottom: var(--space-smallest)\n}\n }\n\n@media (min-width: 640px) {\n\n.qgoF1WJ8Cu39FVc3p_c8w {\n top: 100%;\n bottom: auto;\n margin-top: var(--space-smallest)\n}\n }\n\n@media (min-width: 640px) {\n\n.qgoF1WJ8Cu39FVc3p_c8w {\n top: 100%;\n bottom: auto;\n margin-top: var(--space-smallest)\n}\n }\n\n@media (--medium-screens) {\n\n.qgoF1WJ8Cu39FVc3p_c8w {\n top: 100%;\n bottom: auto;\n margin-top: var(--space-smallest)\n}\n }\n\n@media (min-width: 640px) {\n\n._2QwnAwwIXZuZReq2cUwEoX {\n right: 0;\n left: auto\n}\n }\n\n@media (min-width: 640px) {\n\n._2QwnAwwIXZuZReq2cUwEoX {\n right: 0;\n left: auto\n}\n }\n\n@media (--medium-screens) {\n\n._2QwnAwwIXZuZReq2cUwEoX {\n right: 0;\n left: auto\n}\n }\n\n@media (min-width: 640px) {\n\n._2Bdz7gjSU8id-Og42er82U {\n right: auto;\n left: 0\n}\n }\n\n@media (min-width: 640px) {\n\n._2Bdz7gjSU8id-Og42er82U {\n right: auto;\n left: 0\n}\n }\n\n@media (--medium-screens) {\n\n._2Bdz7gjSU8id-Og42er82U {\n right: auto;\n left: 0\n}\n }\n\n._1j-ztPLXQgH-5XOlXybf0- {\n padding: var(--space-small) 0;\n border-bottom: var(--border-base) dotted var(--color-border);\n}\n\n._1j-ztPLXQgH-5XOlXybf0-:first-of-type {\n padding-top: 0;\n}\n\n._1j-ztPLXQgH-5XOlXybf0-:last-of-type {\n padding-bottom: 0;\n border-bottom: none;\n}\n\n.ecEGgRDm96wrHymIDR1FM {\n padding: var(--space-small);\n}\n\n._1lmtkHVgn76IrVsqnqlOYh {\n display: -ms-flexbox;\n display: flex;\n width: 100%;\n padding: var(--space-small);\n border: none;\n border-radius: var(--radius-base);\n background-color: transparent;\n cursor: pointer;\n -ms-flex-align: center;\n align-items: center;\n}\n\n._1lmtkHVgn76IrVsqnqlOYh:hover,\n._1lmtkHVgn76IrVsqnqlOYh:focus {\n background-color: var(--color-surface--hover);\n outline-color: var(--color-focus);\n}\n\n.QMbGAf7Vb6_SM8qOIvLMc {\n margin-right: var(--space-base);\n}\n\n._1DIimpm0iJewCr_4Ee8NTa {\n position: fixed;\n top: 0;\n right: 0;\n bottom: 0;\n left: 0;\n z-index: var(--elevation-menu);\n background-color: var(--color-overlay)\n}\n\n@media (min-width: 640px) {\n\n._1DIimpm0iJewCr_4Ee8NTa {\n background-color: transparent\n}\n }\n\n@media (min-width: 640px) {\n\n._1DIimpm0iJewCr_4Ee8NTa {\n background-color: transparent\n}\n }\n\n@media (--medium-screens) {\n\n._1DIimpm0iJewCr_4Ee8NTa {\n background-color: transparent\n}\n }\n\n.qVvYE_6U6kPoQ4ms_2slA {\n width: 100%;\n}\n\n._3Pk5uJMOz91YR7eDwLASEh {\n position: absolute;\n width: 1px;\n height: 1px;\n margin: -1px;\n overflow: hidden;\n clip: rect(0, 0, 0, 0);\n white-space: nowrap;\n}\n";
|
|
20
|
+
var styles = {"wrapper":"_3dsZe-fIMb0ftQQAJf53tI","menu":"_15jh7FtEcALDetgrjoV8HG","above":"_2S3J3IQ4JcMgnYjzx3A9AA","below":"qgoF1WJ8Cu39FVc3p_c8w","left":"_2QwnAwwIXZuZReq2cUwEoX","right":"_2Bdz7gjSU8id-Og42er82U","section":"_1j-ztPLXQgH-5XOlXybf0-","sectionHeader":"ecEGgRDm96wrHymIDR1FM","action":"_1lmtkHVgn76IrVsqnqlOYh","icon":"QMbGAf7Vb6_SM8qOIvLMc","overlay":"_1DIimpm0iJewCr_4Ee8NTa","fullWidth":"qVvYE_6U6kPoQ4ms_2slA","screenReaderOnly":"_3Pk5uJMOz91YR7eDwLASEh"};
|
|
21
|
+
styleInject_es.styleInject(css);
|
|
22
|
+
|
|
23
|
+
var variation = {
|
|
24
|
+
overlayStartStop: { opacity: 0 },
|
|
25
|
+
startOrStop: function (position) {
|
|
26
|
+
var y = 10;
|
|
27
|
+
if (position === "below")
|
|
28
|
+
y *= -1;
|
|
29
|
+
if (window.innerWidth < 640)
|
|
30
|
+
y = 150;
|
|
31
|
+
return { opacity: 0, y: y };
|
|
32
|
+
},
|
|
33
|
+
done: { opacity: 1, y: 0 },
|
|
34
|
+
};
|
|
35
|
+
// eslint-disable-next-line max-statements
|
|
36
|
+
function Menu(_a) {
|
|
37
|
+
var _b;
|
|
38
|
+
var activator = _a.activator, items = _a.items;
|
|
39
|
+
var _c;
|
|
40
|
+
var _d = tslib_es6.__read(React.useState(false), 2), visible = _d[0], setVisible = _d[1];
|
|
41
|
+
var fullWidth = ((_c = activator === null || activator === void 0 ? void 0 : activator.props) === null || _c === void 0 ? void 0 : _c.fullWidth) || false;
|
|
42
|
+
var _e = tslib_es6.__read(React.useState({
|
|
43
|
+
vertical: "below",
|
|
44
|
+
horizontal: "right",
|
|
45
|
+
}), 2), position = _e[0], setPosition = _e[1];
|
|
46
|
+
var wrapperRef = React.createRef();
|
|
47
|
+
var buttonID = uuid.v1();
|
|
48
|
+
var menuID = uuid.v1();
|
|
49
|
+
hooks.useOnKeyDown(handleKeyboardShortcut, ["Escape"]);
|
|
50
|
+
React.useLayoutEffect(function () {
|
|
51
|
+
if (wrapperRef.current) {
|
|
52
|
+
var bounds = wrapperRef.current.getBoundingClientRect();
|
|
53
|
+
var newPosition = tslib_es6.__assign({}, position);
|
|
54
|
+
if (bounds.top <= window.innerHeight / 2) {
|
|
55
|
+
newPosition.vertical = "below";
|
|
56
|
+
}
|
|
57
|
+
else {
|
|
58
|
+
newPosition.vertical = "above";
|
|
59
|
+
}
|
|
60
|
+
if (bounds.left <= window.innerWidth / 2) {
|
|
61
|
+
newPosition.horizontal = "right";
|
|
62
|
+
}
|
|
63
|
+
else {
|
|
64
|
+
newPosition.horizontal = "left";
|
|
65
|
+
}
|
|
66
|
+
setPosition(newPosition);
|
|
67
|
+
}
|
|
68
|
+
}, [visible, fullWidth]);
|
|
69
|
+
if (!activator) {
|
|
70
|
+
activator = (React__default["default"].createElement(Button.Button, { fullWidth: true, label: "More Actions", icon: "more", type: "secondary" }));
|
|
71
|
+
}
|
|
72
|
+
var menuClasses = classnames__default["default"](styles.menu, position.vertical === "above" && styles.above, position.vertical === "below" && styles.below, position.horizontal === "left" && styles.left, position.horizontal === "right" && styles.right);
|
|
73
|
+
var wrapperClasses = classnames__default["default"](styles.wrapper, (_b = {},
|
|
74
|
+
_b[styles.fullWidth] = fullWidth,
|
|
75
|
+
_b));
|
|
76
|
+
return (React__default["default"].createElement("div", { className: wrapperClasses, ref: wrapperRef },
|
|
77
|
+
React__default["default"].cloneElement(activator, {
|
|
78
|
+
onClick: toggle(activator.props.onClick),
|
|
79
|
+
id: buttonID,
|
|
80
|
+
ariaControls: menuID,
|
|
81
|
+
ariaExpanded: visible,
|
|
82
|
+
ariaHaspopup: true,
|
|
83
|
+
}),
|
|
84
|
+
React__default["default"].createElement(framerMotion.AnimatePresence, null, visible && (React__default["default"].createElement(React__default["default"].Fragment, null,
|
|
85
|
+
React__default["default"].createElement(framerMotion.motion.div, { className: styles.overlay, onClick: toggle(), variants: variation, initial: "overlayStartStop", animate: "done", exit: "overlayStartStop", transition: {
|
|
86
|
+
type: "tween",
|
|
87
|
+
duration: 0.15,
|
|
88
|
+
} }),
|
|
89
|
+
React__default["default"].createElement(framerMotion.motion.div, { className: menuClasses, role: "menu", "aria-labelledby": buttonID, id: menuID, onClick: hide, variants: variation, initial: "startOrStop", animate: "done", exit: "startOrStop", custom: position, transition: {
|
|
90
|
+
type: "tween",
|
|
91
|
+
duration: 0.25,
|
|
92
|
+
} }, items.map(function (item, key) { return (React__default["default"].createElement("div", { key: key, className: styles.section },
|
|
93
|
+
item.header && React__default["default"].createElement(SectionHeader, { text: item.header }),
|
|
94
|
+
item.actions.map(function (action, index) { return (React__default["default"].createElement(Action, tslib_es6.__assign({ sectionLabel: item.header, key: action.label, shouldFocus: key === 0 && index === 0 }, action))); }))); })))))));
|
|
95
|
+
function toggle(callbackPassthrough) {
|
|
96
|
+
return function (event) {
|
|
97
|
+
setVisible(!visible);
|
|
98
|
+
callbackPassthrough && callbackPassthrough(event);
|
|
99
|
+
};
|
|
100
|
+
}
|
|
101
|
+
function hide() {
|
|
102
|
+
setVisible(false);
|
|
103
|
+
}
|
|
104
|
+
function handleKeyboardShortcut(event) {
|
|
105
|
+
var key = event.key;
|
|
106
|
+
if (!visible)
|
|
107
|
+
return;
|
|
108
|
+
event.preventDefault();
|
|
109
|
+
event.stopPropagation();
|
|
110
|
+
key === "Escape" && hide();
|
|
111
|
+
}
|
|
112
|
+
}
|
|
113
|
+
function SectionHeader(_a) {
|
|
114
|
+
var text = _a.text;
|
|
115
|
+
return (React__default["default"].createElement("div", { className: styles.sectionHeader, "aria-hidden": true },
|
|
116
|
+
React__default["default"].createElement(Typography.Typography, { element: "h6", size: "small", textCase: "uppercase", textColor: "greyBlue", fontWeight: "bold" }, text)));
|
|
117
|
+
}
|
|
118
|
+
function Action(_a) {
|
|
119
|
+
var label = _a.label, sectionLabel = _a.sectionLabel, icon = _a.icon, onClick = _a.onClick, _b = _a.shouldFocus, shouldFocus = _b === void 0 ? false : _b;
|
|
120
|
+
var actionButtonRef = React.useRef();
|
|
121
|
+
React.useEffect(function () {
|
|
122
|
+
if (actionButtonRef.current && shouldFocus) {
|
|
123
|
+
actionButtonRef.current.focus();
|
|
124
|
+
}
|
|
125
|
+
}, [shouldFocus]);
|
|
126
|
+
return (React__default["default"].createElement("button", { role: "menuitem", type: "button", className: styles.action, key: label, onClick: onClick, ref: actionButtonRef },
|
|
127
|
+
icon && (React__default["default"].createElement("span", { className: styles.icon },
|
|
128
|
+
React__default["default"].createElement(Icon.Icon, { name: icon }))),
|
|
129
|
+
React__default["default"].createElement(Typography.Typography, { element: "span", size: "base", textColor: "greyBlueDark" },
|
|
130
|
+
sectionLabel && (React__default["default"].createElement("span", { className: styles.screenReaderOnly }, sectionLabel)),
|
|
131
|
+
label)));
|
|
132
|
+
}
|
|
133
|
+
|
|
134
|
+
exports.Menu = Menu;
|
package/dist/Modal/Modal.d.ts
CHANGED
|
@@ -1,22 +1,22 @@
|
|
|
1
|
-
import React, { ReactNode } from "react";
|
|
2
|
-
import sizes from "./Sizes.css";
|
|
3
|
-
import { ButtonProps } from "../Button";
|
|
4
|
-
interface ModalProps {
|
|
5
|
-
/**
|
|
6
|
-
* @default false
|
|
7
|
-
*/
|
|
8
|
-
readonly title?: string;
|
|
9
|
-
readonly open?: boolean;
|
|
10
|
-
readonly size?: keyof typeof sizes;
|
|
11
|
-
/**
|
|
12
|
-
* @default true
|
|
13
|
-
*/
|
|
14
|
-
readonly dismissible?: boolean;
|
|
15
|
-
readonly children: ReactNode;
|
|
16
|
-
readonly primaryAction?: ButtonProps;
|
|
17
|
-
readonly secondaryAction?: ButtonProps;
|
|
18
|
-
readonly tertiaryAction?: ButtonProps;
|
|
19
|
-
onRequestClose?(): void;
|
|
20
|
-
}
|
|
21
|
-
export declare function Modal({ open, title, size, dismissible, children, primaryAction, secondaryAction, tertiaryAction, onRequestClose, }: ModalProps): React.ReactPortal;
|
|
22
|
-
export {};
|
|
1
|
+
import React, { ReactNode } from "react";
|
|
2
|
+
import sizes from "./Sizes.css";
|
|
3
|
+
import { ButtonProps } from "../Button";
|
|
4
|
+
interface ModalProps {
|
|
5
|
+
/**
|
|
6
|
+
* @default false
|
|
7
|
+
*/
|
|
8
|
+
readonly title?: string;
|
|
9
|
+
readonly open?: boolean;
|
|
10
|
+
readonly size?: keyof typeof sizes;
|
|
11
|
+
/**
|
|
12
|
+
* @default true
|
|
13
|
+
*/
|
|
14
|
+
readonly dismissible?: boolean;
|
|
15
|
+
readonly children: ReactNode;
|
|
16
|
+
readonly primaryAction?: ButtonProps;
|
|
17
|
+
readonly secondaryAction?: ButtonProps;
|
|
18
|
+
readonly tertiaryAction?: ButtonProps;
|
|
19
|
+
onRequestClose?(): void;
|
|
20
|
+
}
|
|
21
|
+
export declare function Modal({ open, title, size, dismissible, children, primaryAction, secondaryAction, tertiaryAction, onRequestClose, }: ModalProps): React.ReactPortal;
|
|
22
|
+
export {};
|
package/dist/Modal/index.d.ts
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
export { Modal } from "./Modal";
|
|
1
|
+
export { Modal } from "./Modal";
|