@servicetitan/design-system 10.8.0 → 11.0.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/dist/components/Backdrop/Backdrop.css +2 -21
- package/dist/components/Backdrop/Backdrop.css.map +1 -1
- package/dist/components/Backdrop/Backdrop.d.ts +5 -7
- package/dist/components/Backdrop/Backdrop.js +13 -44
- package/dist/components/Backdrop/Backdrop.js.map +1 -1
- package/dist/components/Backdrop/index.css +2 -21
- package/dist/components/Backdrop/index.css.map +1 -1
- package/dist/components/Button/Button.d.ts +18 -18
- package/dist/components/DateRangePicker/DateRangePicker.d.ts +9 -0
- package/dist/components/DateRangePicker/DateRangePicker.js +9 -16
- package/dist/components/DateRangePicker/DateRangePicker.js.map +1 -1
- package/dist/components/DateRangePicker/DateRangePicker.test.js +2 -2
- package/dist/components/DateRangePicker/DateRangePicker.test.js.map +1 -1
- package/dist/components/DateRangePicker/components/DateRangeInput.d.ts +6 -0
- package/dist/components/DateRangePicker/components/DateRangeInput.js +9 -4
- package/dist/components/DateRangePicker/components/DateRangeInput.js.map +1 -1
- package/dist/components/DateRangePicker/components/DateRangeTrigger.d.ts +6 -0
- package/dist/components/DateRangePicker/components/DateRangeTrigger.js +4 -5
- package/dist/components/DateRangePicker/components/DateRangeTrigger.js.map +1 -1
- package/dist/components/Dialog/Dialog.d.ts +7 -5
- package/dist/components/Dialog/Dialog.js +4 -9
- package/dist/components/Dialog/Dialog.js.map +1 -1
- package/dist/components/Drawer/Drawer.css +6 -1
- package/dist/components/Drawer/Drawer.css.map +1 -1
- package/dist/components/Drawer/Drawer.d.ts +16 -25
- package/dist/components/Drawer/Drawer.js +34 -24
- package/dist/components/Drawer/Drawer.js.map +1 -1
- package/dist/components/Drawer/index.css +6 -1
- package/dist/components/Drawer/index.css.map +1 -1
- package/dist/components/FilterButton/FilterButton.css +46 -0
- package/dist/components/FilterButton/FilterButton.css.map +1 -0
- package/dist/components/FilterButton/FilterButton.d.ts +20 -0
- package/dist/components/FilterButton/FilterButton.js +62 -0
- package/dist/components/FilterButton/FilterButton.js.map +1 -0
- package/dist/components/FilterButton/index.css +46 -0
- package/dist/components/FilterButton/index.css.map +1 -0
- package/dist/components/FilterButton/index.d.ts +1 -0
- package/dist/components/FilterButton/index.js +14 -0
- package/dist/components/FilterButton/index.js.map +1 -0
- package/dist/components/Input/Input.css +135 -201
- package/dist/components/Input/Input.css.map +1 -1
- package/dist/components/Input/Input.js +36 -60
- package/dist/components/Input/Input.js.map +1 -1
- package/dist/components/Input/index.css +135 -201
- package/dist/components/Input/index.css.map +1 -1
- package/dist/components/Modal/Modal.css +5 -2
- package/dist/components/Modal/Modal.css.map +1 -1
- package/dist/components/Modal/Modal.d.ts +9 -7
- package/dist/components/Modal/Modal.js +3 -3
- package/dist/components/Modal/Modal.js.map +1 -1
- package/dist/components/Modal/components.d.ts +5 -6
- package/dist/components/Modal/components.js +34 -13
- package/dist/components/Modal/components.js.map +1 -1
- package/dist/components/Modal/index.css +5 -2
- package/dist/components/Modal/index.css.map +1 -1
- package/dist/components/Popover/Popover.d.ts +3 -3
- package/dist/components/Popover/Popover.js +3 -10
- package/dist/components/Popover/Popover.js.map +1 -1
- package/dist/components/Sidebar/Sidebar.js +5 -2
- package/dist/components/Sidebar/Sidebar.js.map +1 -1
- package/dist/components/Table/Table.css +3 -0
- package/dist/components/Table/Table.css.map +1 -1
- package/dist/components/Table/index.css +3 -0
- package/dist/components/Table/index.css.map +1 -1
- package/dist/components/Takeover/Takeover.css +10 -0
- package/dist/components/Takeover/Takeover.css.map +1 -1
- package/dist/components/Takeover/Takeover.d.ts +11 -4
- package/dist/components/Takeover/Takeover.js +33 -12
- package/dist/components/Takeover/Takeover.js.map +1 -1
- package/dist/components/Takeover/TakeoverFooter.css +10 -0
- package/dist/components/Takeover/TakeoverFooter.css.map +1 -1
- package/dist/components/Takeover/TakeoverSection.css +10 -0
- package/dist/components/Takeover/TakeoverSection.css.map +1 -1
- package/dist/components/Takeover/index.css +10 -0
- package/dist/components/Takeover/index.css.map +1 -1
- package/dist/components/Tooltip/Tooltip.js +1 -1
- package/dist/components/Tooltip/Tooltip.js.map +1 -1
- package/dist/components/index.css +205 -225
- package/dist/components/index.css.map +1 -1
- package/dist/components/index.d.ts +1 -0
- package/dist/components/index.js +1 -0
- package/dist/components/index.js.map +1 -1
- package/dist/global/index.css +1 -1
- package/dist/global/version.css +1 -1
- package/dist/hooks/index.d.ts +0 -1
- package/dist/hooks/index.js +0 -1
- package/dist/hooks/index.js.map +1 -1
- package/dist/internal/Overlay/Overlay.css +18 -0
- package/dist/internal/Overlay/Overlay.css.map +1 -0
- package/dist/internal/Overlay/Overlay.d.ts +15 -0
- package/dist/internal/Overlay/Overlay.js +46 -0
- package/dist/internal/Overlay/Overlay.js.map +1 -0
- package/dist/internal/Overlay/index.css +18 -0
- package/dist/internal/Overlay/index.css.map +1 -0
- package/dist/internal/Overlay/index.d.ts +1 -0
- package/dist/internal/Overlay/index.js +14 -0
- package/dist/internal/Overlay/index.js.map +1 -0
- package/dist/internal/Popper/Popper.css +7 -0
- package/dist/internal/Popper/Popper.css.map +1 -1
- package/dist/internal/Popper/Popper.d.ts +3 -1
- package/dist/internal/Popper/Popper.js +20 -11
- package/dist/internal/Popper/Popper.js.map +1 -1
- package/dist/internal/Popper/index.css +7 -0
- package/dist/internal/Popper/index.css.map +1 -1
- package/dist/internal/index.css +24 -0
- package/dist/internal/index.css.map +1 -1
- package/dist/internal/index.d.ts +1 -0
- package/dist/internal/index.js +1 -0
- package/dist/internal/index.js.map +1 -1
- package/dist/system-light.css +137 -1
- package/dist/system-light.css.map +1 -1
- package/dist/system-light.min.css +1 -1
- package/dist/system.css +344 -234
- package/dist/system.css.map +1 -1
- package/dist/system.min.css +2 -2
- package/dist/utilities/FocusTrap/FocusTrap.d.ts +8 -0
- package/dist/utilities/FocusTrap/FocusTrap.js +73 -0
- package/dist/utilities/FocusTrap/FocusTrap.js.map +1 -0
- package/dist/utilities/FocusTrap/index.d.ts +1 -0
- package/dist/utilities/FocusTrap/index.js +14 -0
- package/dist/utilities/FocusTrap/index.js.map +1 -0
- package/dist/utilities/OverlayContext.js +2 -7
- package/dist/utilities/OverlayContext.js.map +1 -1
- package/dist/utilities/dateFormat.d.ts +10 -2
- package/dist/utilities/dateFormat.js +12 -10
- package/dist/utilities/dateFormat.js.map +1 -1
- package/dist/utilities/index.d.ts +1 -1
- package/dist/utilities/index.js +1 -1
- package/dist/utilities/index.js.map +1 -1
- package/package.json +9 -9
- package/dist/hooks/useFocusScope.d.ts +0 -16
- package/dist/hooks/useFocusScope.js +0 -89
- package/dist/hooks/useFocusScope.js.map +0 -1
- package/dist/utilities/focus-utils.d.ts +0 -4
- package/dist/utilities/focus-utils.js +0 -49
- package/dist/utilities/focus-utils.js.map +0 -1
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import React, { FC } from 'react';
|
|
2
|
-
import { ModalWindow, ModalHeader, ModalHeaderProps, ModalFooter, ModalContent } from '../Modal/components';
|
|
3
|
-
import {
|
|
4
|
-
export interface DialogProps extends ModalHeaderProps {
|
|
2
|
+
import { ModalWindow, ModalWindowProps, ModalHeader, ModalHeaderProps, ModalFooter, ModalContent } from '../Modal/components';
|
|
3
|
+
import { FocusTrapProps } from '../../utilities/FocusTrap';
|
|
4
|
+
export interface DialogProps extends ModalHeaderProps, ModalWindowProps {
|
|
5
5
|
/** Action buttons layout direction */
|
|
6
6
|
actionsLayout?: 'row' | 'row-reverse' | 'column' | 'column-reverse';
|
|
7
7
|
/** Adds one or more classnames for an element */
|
|
@@ -14,12 +14,14 @@ export interface DialogProps extends ModalHeaderProps {
|
|
|
14
14
|
onSecondaryActionClick?: (e: React.SyntheticEvent<HTMLElement>) => void;
|
|
15
15
|
/** Whether the dialog is open or not */
|
|
16
16
|
open?: boolean;
|
|
17
|
+
/** Render in a React Portal */
|
|
18
|
+
portal?: boolean;
|
|
17
19
|
/** Text for the primary button */
|
|
18
20
|
primaryActionName: string;
|
|
19
21
|
/** Text for the secondary button */
|
|
20
22
|
secondaryActionName?: string;
|
|
21
|
-
/** Options passed into
|
|
22
|
-
|
|
23
|
+
/** Options passed into FocusTrap */
|
|
24
|
+
focusTrapOptions?: FocusTrapProps;
|
|
23
25
|
}
|
|
24
26
|
interface Dialog extends FC<DialogProps> {
|
|
25
27
|
/** Subcomponents */
|
|
@@ -32,18 +32,13 @@ var components_1 = require("../Modal/components");
|
|
|
32
32
|
var Button_1 = require("../Button");
|
|
33
33
|
var Stack_1 = require("../Stack");
|
|
34
34
|
var Dialog = function (_a) {
|
|
35
|
-
var _b = _a.open, open = _b === void 0 ? false : _b, children = _a.children, className = _a.className, onClose = _a.onClose, title = _a.title, actionsLayout = _a.actionsLayout, negative = _a.negative, onPrimaryActionClick = _a.onPrimaryActionClick, onSecondaryActionClick = _a.onSecondaryActionClick, primaryActionName = _a.primaryActionName, secondaryActionName = _a.secondaryActionName,
|
|
36
|
-
react_1.default.useEffect(function () {
|
|
37
|
-
if (rest.closable) {
|
|
38
|
-
console.warn('@servicetitan/design-system: The `closable` prop of the Dialog component will be removed in a future release. It also never worked. Please remove.');
|
|
39
|
-
}
|
|
40
|
-
});
|
|
35
|
+
var _b = _a.open, open = _b === void 0 ? false : _b, children = _a.children, className = _a.className, onClose = _a.onClose, title = _a.title, actionsLayout = _a.actionsLayout, negative = _a.negative, onPrimaryActionClick = _a.onPrimaryActionClick, onSecondaryActionClick = _a.onSecondaryActionClick, _c = _a.portal, portal = _c === void 0 ? true : _c, primaryActionName = _a.primaryActionName, secondaryActionName = _a.secondaryActionName, focusTrapOptions = _a.focusTrapOptions, rest = __rest(_a, ["open", "children", "className", "onClose", "title", "actionsLayout", "negative", "onPrimaryActionClick", "onSecondaryActionClick", "portal", "primaryActionName", "secondaryActionName", "focusTrapOptions"]);
|
|
41
36
|
var DialogClasses = (0, classnames_1.default)('Dialog', className);
|
|
42
|
-
return (
|
|
43
|
-
react_1.default.createElement(components_1.ModalHeader, {
|
|
37
|
+
return (react_1.default.createElement(components_1.ModalWindow, __assign({ className: DialogClasses, onClose: onClose, size: components_1.ModalSizes.XS, focusTrapOptions: focusTrapOptions, open: open, portal: portal }, rest),
|
|
38
|
+
react_1.default.createElement(components_1.ModalHeader, { title: title, className: "Dialog__header" }),
|
|
44
39
|
react_1.default.createElement(components_1.ModalContent, { className: "Dialog__content" }, children),
|
|
45
40
|
react_1.default.createElement(components_1.ModalFooter, { className: "Dialog__footer" },
|
|
46
|
-
react_1.default.createElement(DialogActions, { actionsLayout: actionsLayout, negative: negative, onPrimaryActionClick: onPrimaryActionClick, onSecondaryActionClick: onSecondaryActionClick, primaryActionName: primaryActionName, secondaryActionName: secondaryActionName }))))
|
|
41
|
+
react_1.default.createElement(DialogActions, { actionsLayout: actionsLayout, negative: negative, onPrimaryActionClick: onPrimaryActionClick, onSecondaryActionClick: onSecondaryActionClick, primaryActionName: primaryActionName, secondaryActionName: secondaryActionName }))));
|
|
47
42
|
};
|
|
48
43
|
exports.Dialog = Dialog;
|
|
49
44
|
var DialogActions = function (props) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Dialog.js","sourceRoot":"","sources":["../../../src/components/Dialog/Dialog.tsx"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,gDAAkC;AAClC,0DAAoC;AAEpC,
|
|
1
|
+
{"version":3,"file":"Dialog.js","sourceRoot":"","sources":["../../../src/components/Dialog/Dialog.tsx"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sourceRoot":"","sources":["../../../src/utilities/_visually-hidden.scss","../../../src/components/Drawer/Drawer.scss","../../../src/utilities/_component-reset.scss","../../../node_modules/@servicetitan/tokens/dist/tokens.scss"],"names":[],"mappings":"AAAA;ACSA;ACRC;EACA,OCiBa;ADfb;EACA;EDOA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA,OAlBc;
|
|
1
|
+
{"version":3,"sourceRoot":"","sources":["../../../src/utilities/_visually-hidden.scss","../../../src/components/Drawer/Drawer.scss","../../../src/utilities/_component-reset.scss","../../../node_modules/@servicetitan/tokens/dist/tokens.scss"],"names":[],"mappings":"AAAA;ACSA;ACRC;EACA,OCiBa;ADfb;EACA;EDOA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA,OAlBc;;AAqBd;EAAU;;AAGV;EAAkB;;AAElB;EACC;EACA;EACA,YEMiB;EFLjB;EACA;EACA;EACA;EACA;EACA;;AAGD;EAAc;;;AAGf;EAAkB;;;AAElB;EAAgB,WA1CM;;;AA2CtB;EAAe,WA1CM;;;AA2CrB;EAAe,WA1CM;;;AA2CrB;EAAe,WA1CM;;;AA4CrB;EACC;EACA;EACA;EACA,WE+Ea;EF9Eb;EACA;EACA,OEZmB;;;AFepB;EACC,aE6DW;EF5DX;EACA;EACA;;AAEA;EACC;;;AAIF;EACC;EACA;EACA;;;AAGD;EACC,SE4CW;EF3CX;EACA","file":"Drawer.css"}
|
|
@@ -1,37 +1,28 @@
|
|
|
1
1
|
import React, { FC } from 'react';
|
|
2
|
-
import {
|
|
3
|
-
import {
|
|
4
|
-
import {
|
|
5
|
-
|
|
6
|
-
|
|
2
|
+
import { OverlayProps } from '../../internal/Overlay';
|
|
3
|
+
import { JustifyProps } from '../../utilities/justify-props';
|
|
4
|
+
import { FocusTrapProps } from '../../utilities/FocusTrap';
|
|
5
|
+
interface DrawerPropsStrict extends OverlayProps {
|
|
6
|
+
/** Use animation for visibility transitions */
|
|
7
|
+
animate?: boolean;
|
|
7
8
|
/** Adds one or more classnames for an element */
|
|
8
9
|
className?: string;
|
|
9
|
-
/** Footer
|
|
10
|
+
/** Footer Element */
|
|
10
11
|
footer?: React.ReactElement;
|
|
11
|
-
/**
|
|
12
|
-
footerAlign?:
|
|
13
|
-
/** Header
|
|
12
|
+
/** Footer button alignment */
|
|
13
|
+
footerAlign?: JustifyProps;
|
|
14
|
+
/** Drawer Header */
|
|
14
15
|
header?: React.ReactElement | string;
|
|
15
|
-
/**
|
|
16
|
-
backdrop?: boolean;
|
|
17
|
-
/** Opens the drawer */
|
|
16
|
+
/** Visibility of Drawer */
|
|
18
17
|
open?: boolean;
|
|
19
|
-
/**
|
|
20
|
-
portal?: boolean;
|
|
21
|
-
/** Define the width property of the drawer */
|
|
18
|
+
/** Width of the Drawer */
|
|
22
19
|
width?: 'xs' | 's' | 'm' | 'l';
|
|
23
|
-
/** Options passed into
|
|
24
|
-
|
|
20
|
+
/** Options passed into FocusTrap */
|
|
21
|
+
focusTrapOptions?: FocusTrapProps;
|
|
25
22
|
}
|
|
26
|
-
interface DrawerProps extends DrawerPropsStrict {
|
|
23
|
+
export interface DrawerProps extends DrawerPropsStrict {
|
|
27
24
|
/** Unstrict Props */
|
|
28
25
|
[propName: string]: any;
|
|
29
26
|
}
|
|
30
|
-
|
|
31
|
-
/** Subcomponents */
|
|
32
|
-
Header: typeof DrawerHeader;
|
|
33
|
-
Footer: typeof DrawerFooter;
|
|
34
|
-
Window: typeof DrawerWindow;
|
|
35
|
-
}
|
|
36
|
-
export declare const Drawer: Drawer;
|
|
27
|
+
export declare const Drawer: FC<DrawerProps>;
|
|
37
28
|
export {};
|
|
@@ -46,24 +46,17 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
46
46
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
47
47
|
exports.Drawer = void 0;
|
|
48
48
|
var react_1 = __importStar(require("react"));
|
|
49
|
-
var classnames_1 = __importDefault(require("classnames"));
|
|
50
49
|
var framer_motion_1 = require("framer-motion");
|
|
50
|
+
var classnames_1 = __importDefault(require("classnames"));
|
|
51
51
|
var tokens_1 = __importDefault(require("@servicetitan/tokens"));
|
|
52
|
-
var
|
|
53
|
-
var
|
|
54
|
-
var
|
|
55
|
-
var OverlayContext_1 = require("../../utilities/OverlayContext");
|
|
56
|
-
var Portal_1 = require("../../internal/Portal");
|
|
57
|
-
var useFocusScope_1 = require("../../hooks/useFocusScope");
|
|
58
|
-
var focus_utils_1 = require("../../utilities/focus-utils");
|
|
52
|
+
var __1 = require("../");
|
|
53
|
+
var Overlay_1 = require("../../internal/Overlay");
|
|
54
|
+
var FocusTrap_1 = require("../../utilities/FocusTrap");
|
|
59
55
|
var Drawer = function (_a) {
|
|
60
56
|
var _b;
|
|
61
|
-
var children = _a.children, className = _a.className, footer = _a.footer,
|
|
62
|
-
var overlayContext = (0, react_1.useContext)(OverlayContext_1.OverlayContext);
|
|
57
|
+
var _c = _a.animate, animate = _c === void 0 ? true : _c, children = _a.children, className = _a.className, footer = _a.footer, _d = _a.footerAlign, footerAlign = _d === void 0 ? 'right' : _d, header = _a.header, onClose = _a.onClose, open = _a.open, _e = _a.portal, portal = _e === void 0 ? true : _e, backdrop = _a.backdrop, _f = _a.width, width = _f === void 0 ? 's' : _f, focusTrapOptions = _a.focusTrapOptions, rest = __rest(_a, ["animate", "children", "className", "footer", "footerAlign", "header", "onClose", "open", "portal", "backdrop", "width", "focusTrapOptions"]);
|
|
63
58
|
var drawerRef = (0, react_1.useRef)(null);
|
|
64
|
-
|
|
65
|
-
var lastActiveElement = (0, react_1.useMemo)(function () { return (0, focus_utils_1.getActiveElement)(); }, [open]);
|
|
66
|
-
var handleTab = (0, useFocusScope_1.useFocusScope)(drawerRef, __assign({ disableAutofocus: !open, disableTrapping: !open, restoreFocusRef: { current: lastActiveElement } }, focusScopeOptions)).handleTab;
|
|
59
|
+
var _g = react_1.default.useState(1), focusWrapper = _g[0], setFocusWrapper = _g[1];
|
|
67
60
|
var DrawerClasses = (0, classnames_1.default)('Drawer', className, (_b = {
|
|
68
61
|
'Drawer--open': open,
|
|
69
62
|
'Drawer--portal': portal || backdrop,
|
|
@@ -71,23 +64,40 @@ var Drawer = function (_a) {
|
|
|
71
64
|
},
|
|
72
65
|
_b["Drawer--w-" + width] = width,
|
|
73
66
|
_b));
|
|
67
|
+
var DrawerFooterClassNames = (0, classnames_1.default)('Drawer__footer', className, {
|
|
68
|
+
'justify-content-start': footerAlign === 'left',
|
|
69
|
+
'justify-content-center': footerAlign === 'center',
|
|
70
|
+
'justify-content-end': footerAlign === 'right',
|
|
71
|
+
'justify-content-between': footerAlign === 'space-between',
|
|
72
|
+
});
|
|
74
73
|
var durationSlow = parseInt(tokens_1.default.durationSlow, 10) / 1000; // '300ms' -> 0.3
|
|
75
|
-
var
|
|
74
|
+
var framerAnimation = {
|
|
76
75
|
initial: { opacity: 0, x: '100%' },
|
|
77
76
|
animate: { opacity: 1, x: 0 },
|
|
78
77
|
exit: { opacity: 0, x: '100%' },
|
|
79
78
|
transition: { type: 'easeInOut', duration: durationSlow },
|
|
80
79
|
};
|
|
81
|
-
var
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
80
|
+
var DrawerEl = animate ? framer_motion_1.motion.div : 'div';
|
|
81
|
+
var DrawerProps = __assign(__assign({ className: DrawerClasses, ref: drawerRef, tabIndex: focusWrapper }, (animate && framerAnimation)), rest);
|
|
82
|
+
react_1.default.useEffect(function () {
|
|
83
|
+
// Removes wrapper to be focusable element after initial tab
|
|
84
|
+
function eventHandler(event) {
|
|
85
|
+
event.key === 'Tab' && setFocusWrapper(-1);
|
|
86
|
+
document.removeEventListener('keydown', eventHandler);
|
|
87
|
+
}
|
|
88
|
+
document.addEventListener('keydown', eventHandler);
|
|
89
|
+
}, []);
|
|
90
|
+
react_1.default.useEffect(function () {
|
|
91
|
+
setFocusWrapper(1);
|
|
92
|
+
}, [open]);
|
|
93
|
+
return (react_1.default.createElement(Overlay_1.Overlay, { animate: animate, portal: portal, backdrop: backdrop, onClose: onClose, open: open },
|
|
94
|
+
react_1.default.createElement(framer_motion_1.AnimatePresence, null, open && (react_1.default.createElement(FocusTrap_1.FocusTrap, __assign({}, focusTrapOptions),
|
|
95
|
+
react_1.default.createElement(DrawerEl, __assign({}, DrawerProps),
|
|
96
|
+
header && (react_1.default.createElement("div", { className: "Drawer__header" },
|
|
97
|
+
react_1.default.createElement(__1.Headline, { className: "Drawer__header-title" }, header),
|
|
98
|
+
onClose && (react_1.default.createElement(__1.Button, { fill: "subtle", className: "Drawer__header-close", iconName: "clear", size: "xsmall", onClick: onClose })))),
|
|
99
|
+
react_1.default.createElement("div", { className: "Drawer__content" }, children),
|
|
100
|
+
footer && (react_1.default.createElement("div", { className: DrawerFooterClassNames }, footer))))))));
|
|
88
101
|
};
|
|
89
102
|
exports.Drawer = Drawer;
|
|
90
|
-
exports.Drawer.Header = DrawerHeader_1.DrawerHeader;
|
|
91
|
-
exports.Drawer.Footer = DrawerFooter_1.DrawerFooter;
|
|
92
|
-
exports.Drawer.Window = DrawerWindow_1.DrawerWindow;
|
|
93
103
|
//# sourceMappingURL=Drawer.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Drawer.js","sourceRoot":"","sources":["../../../src/components/Drawer/Drawer.tsx"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,
|
|
1
|
+
{"version":3,"file":"Drawer.js","sourceRoot":"","sources":["../../../src/components/Drawer/Drawer.tsx"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sourceRoot":"","sources":["../../../src/utilities/_visually-hidden.scss","../../../src/components/Drawer/Drawer.scss","../../../src/utilities/_component-reset.scss","../../../node_modules/@servicetitan/tokens/dist/tokens.scss"],"names":[],"mappings":"AAAA;ACSA;ACRC;EACA,OCiBa;ADfb;EACA;EDOA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA,OAlBc;
|
|
1
|
+
{"version":3,"sourceRoot":"","sources":["../../../src/utilities/_visually-hidden.scss","../../../src/components/Drawer/Drawer.scss","../../../src/utilities/_component-reset.scss","../../../node_modules/@servicetitan/tokens/dist/tokens.scss"],"names":[],"mappings":"AAAA;ACSA;ACRC;EACA,OCiBa;ADfb;EACA;EDOA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA,OAlBc;;AAqBd;EAAU;;AAGV;EAAkB;;AAElB;EACC;EACA;EACA,YEMiB;EFLjB;EACA;EACA;EACA;EACA;EACA;;AAGD;EAAc;;;AAGf;EAAkB;;;AAElB;EAAgB,WA1CM;;;AA2CtB;EAAe,WA1CM;;;AA2CrB;EAAe,WA1CM;;;AA2CrB;EAAe,WA1CM;;;AA4CrB;EACC;EACA;EACA;EACA,WE+Ea;EF9Eb;EACA;EACA,OEZmB;;;AFepB;EACC,aE6DW;EF5DX;EACA;EACA;;AAEA;EACC;;;AAIF;EACC;EACA;EACA;;;AAGD;EACC,SE4CW;EF3CX;EACA","file":"index.css"}
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
/* Hide element visually, keeping it focusable (with keyboard) and available for screen-readers */
|
|
2
|
+
.FilterButton {
|
|
3
|
+
/* Set color on root of component. It can be overridden after the @include */
|
|
4
|
+
color: #141414;
|
|
5
|
+
/* Make sure font-family goes across entire component */
|
|
6
|
+
font-family: "Nunito Sans", sans-serif;
|
|
7
|
+
display: inline-flex;
|
|
8
|
+
padding: 4px 8px;
|
|
9
|
+
border-radius: 500em;
|
|
10
|
+
border: 1px solid var(--colorsBorderGreyStrong, #bcbcbd);
|
|
11
|
+
color: var(--colorsTextDefault, #141414);
|
|
12
|
+
font-size: 12px;
|
|
13
|
+
cursor: pointer;
|
|
14
|
+
background-color: transparent;
|
|
15
|
+
align-self: flex-start;
|
|
16
|
+
}
|
|
17
|
+
.FilterButton .BodyText {
|
|
18
|
+
color: inherit;
|
|
19
|
+
}
|
|
20
|
+
.FilterButton.FilterButton--focus-visible:focus {
|
|
21
|
+
outline: 0;
|
|
22
|
+
box-shadow: 0 0 0 3px var(--colorsFocusRingPrimary, #a9d1ff);
|
|
23
|
+
}
|
|
24
|
+
.FilterButton .FilterButton__Icon {
|
|
25
|
+
height: 21px;
|
|
26
|
+
width: 21px;
|
|
27
|
+
justify-content: center;
|
|
28
|
+
align-items: center;
|
|
29
|
+
display: flex;
|
|
30
|
+
}
|
|
31
|
+
.FilterButton .FilterButton__ExpandIcon,
|
|
32
|
+
.FilterButton .FilterButton__Tag {
|
|
33
|
+
margin-left: 4px;
|
|
34
|
+
}
|
|
35
|
+
.FilterButton.FilterButton--active {
|
|
36
|
+
color: var(--colorsTextSecondary, #6954c0);
|
|
37
|
+
border: none;
|
|
38
|
+
background-color: var(--colorsSurfaceSecondarySubdued, #f1edff);
|
|
39
|
+
padding: calc(4px + 1px) calc(8px + 1px);
|
|
40
|
+
}
|
|
41
|
+
.FilterButton.FilterButton--active .FilterButton__Icon,
|
|
42
|
+
.FilterButton.FilterButton--active .FilterButton__ExpandIcon {
|
|
43
|
+
color: var(--colorsTextSecondary, #6954c0);
|
|
44
|
+
}
|
|
45
|
+
|
|
46
|
+
/*# sourceMappingURL=FilterButton.css.map */
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sourceRoot":"","sources":["../../../src/utilities/_visually-hidden.scss","../../../src/components/FilterButton/FilterButton.scss","../../../src/utilities/_component-reset.scss","../../../node_modules/@servicetitan/tokens/dist/tokens.scss"],"names":[],"mappings":"AAAA;ACYA;ACXC;EACA,OCiBa;ADfb;EACA;EDUA;EACA;EACA,eEPoB;EFQpB;EACA,OAhBc;EAiBd,WE+Ga;EF9Gb;EACA;EACA;;AAEA;EAAY;;AAEZ;EACC;EACA,YAnBc;;AAsBf;EACC;EACA;EACA;EACA;EACA;;AAGD;AAAA;EAEC,aEuFa;;AFpFd;EACC,OAxCY;EAyCZ;EACA,kBAzCkB;EA0ClB;;AAEA;AAAA;EAEC,OA/CW","file":"FilterButton.css"}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
import { FC } from 'react';
|
|
2
|
+
import { IconPropsStrict } from '../Icon';
|
|
3
|
+
export interface FilterButtonPropsStrict {
|
|
4
|
+
/** Additional classes */
|
|
5
|
+
className?: string;
|
|
6
|
+
/** React element to be rendered as an icon */
|
|
7
|
+
icon?: IconPropsStrict['name'];
|
|
8
|
+
/** To show expand icon */
|
|
9
|
+
expandIcon?: boolean | null;
|
|
10
|
+
/** Displays the label of the Filter Button */
|
|
11
|
+
label: string;
|
|
12
|
+
/** Displays the value of the Filter Button */
|
|
13
|
+
value?: boolean | number | string;
|
|
14
|
+
/** Calls when the Filter Button is clicked */
|
|
15
|
+
onClick?: () => void;
|
|
16
|
+
}
|
|
17
|
+
export interface FilterButtonProps extends FilterButtonPropsStrict {
|
|
18
|
+
[propName: string]: any;
|
|
19
|
+
}
|
|
20
|
+
export declare const FilterButton: FC<FilterButtonProps>;
|
|
@@ -0,0 +1,62 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __assign = (this && this.__assign) || function () {
|
|
3
|
+
__assign = Object.assign || function(t) {
|
|
4
|
+
for (var s, i = 1, n = arguments.length; i < n; i++) {
|
|
5
|
+
s = arguments[i];
|
|
6
|
+
for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
|
|
7
|
+
t[p] = s[p];
|
|
8
|
+
}
|
|
9
|
+
return t;
|
|
10
|
+
};
|
|
11
|
+
return __assign.apply(this, arguments);
|
|
12
|
+
};
|
|
13
|
+
var __rest = (this && this.__rest) || function (s, e) {
|
|
14
|
+
var t = {};
|
|
15
|
+
for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)
|
|
16
|
+
t[p] = s[p];
|
|
17
|
+
if (s != null && typeof Object.getOwnPropertySymbols === "function")
|
|
18
|
+
for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {
|
|
19
|
+
if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))
|
|
20
|
+
t[p[i]] = s[p[i]];
|
|
21
|
+
}
|
|
22
|
+
return t;
|
|
23
|
+
};
|
|
24
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
25
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
26
|
+
};
|
|
27
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
28
|
+
exports.FilterButton = void 0;
|
|
29
|
+
var react_1 = __importDefault(require("react"));
|
|
30
|
+
var classnames_1 = __importDefault(require("classnames"));
|
|
31
|
+
var useFocusVisible_1 = require("../../hooks/useFocusVisible");
|
|
32
|
+
var Stack_1 = require("../Stack");
|
|
33
|
+
var Icon_1 = require("../Icon");
|
|
34
|
+
var BodyText_1 = require("../BodyText");
|
|
35
|
+
var Tag_1 = require("../Tag");
|
|
36
|
+
exports.FilterButton = react_1.default.forwardRef(function (_a, ref) {
|
|
37
|
+
var className = _a.className, icon = _a.icon, onClick = _a.onClick, _b = _a.expandIcon, expandIcon = _b === void 0 ? null : _b, value = _a.value, label = _a.label, rest = __rest(_a, ["className", "icon", "onClick", "expandIcon", "value", "label"]);
|
|
38
|
+
var _c = react_1.default.useState(value), IValue = _c[0], setIValue = _c[1];
|
|
39
|
+
var newRef = react_1.default.useRef(null);
|
|
40
|
+
var itemRef = ref ? ref : newRef;
|
|
41
|
+
var isFocusVisible = (0, useFocusVisible_1.useFocusVisible)(itemRef).isFocusVisible;
|
|
42
|
+
var filterButtonClassName = (0, classnames_1.default)('FilterButton', className, {
|
|
43
|
+
'FilterButton--active': IValue,
|
|
44
|
+
'FilterButton--focus-visible': isFocusVisible,
|
|
45
|
+
});
|
|
46
|
+
var onClickHandler = function () {
|
|
47
|
+
onClick === null || onClick === void 0 ? void 0 : onClick();
|
|
48
|
+
};
|
|
49
|
+
react_1.default.useEffect(function () {
|
|
50
|
+
setIValue(value);
|
|
51
|
+
}, [value]);
|
|
52
|
+
return (react_1.default.createElement("button", __assign({ className: filterButtonClassName, onClick: function () { return onClickHandler(); }, ref: itemRef, "aria-valuetext": "" + IValue, "aria-expanded": expandIcon, "aria-label": "Filter " + label, "aria-selected": !!IValue }, rest),
|
|
53
|
+
react_1.default.createElement(Stack_1.Stack, { alignItems: "center" },
|
|
54
|
+
icon && (react_1.default.createElement(Icon_1.Icon, { name: icon, size: "16px", className: "FilterButton__Icon" })),
|
|
55
|
+
!icon && label && (react_1.default.createElement(BodyText_1.BodyText, { el: "span", size: "small", className: "FilterButton__Label" }, label)),
|
|
56
|
+
typeof IValue === 'string' ? (react_1.default.createElement(BodyText_1.BodyText, { el: "span", size: "small" }, ": ",
|
|
57
|
+
react_1.default.createElement(BodyText_1.BodyText, { el: "span", size: "small", bold: true }, IValue))) : typeof IValue === 'number' ? (react_1.default.createElement(Tag_1.Tag, { color: "info", badge: true, compact: true, className: "FilterButton__Tag" }, IValue)) : null,
|
|
58
|
+
expandIcon !== null && (react_1.default.createElement(Icon_1.Icon, { name: expandIcon
|
|
59
|
+
? 'keyboard_arrow_up'
|
|
60
|
+
: 'keyboard_arrow_down', className: "FilterButton__ExpandIcon" })))));
|
|
61
|
+
});
|
|
62
|
+
//# sourceMappingURL=FilterButton.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"FilterButton.js","sourceRoot":"","sources":["../../../src/components/FilterButton/FilterButton.tsx"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,gDAAkC;AAClC,0DAAoC;AACpC,+DAA8D;AAC9D,kCAAiC;AACjC,gCAAgD;AAChD,wCAAuC;AACvC,8BAA6B;AA0BhB,QAAA,YAAY,GAA0B,eAAK,CAAC,UAAU,CAClE,UACC,EAAsE,EACtE,GAAiC;IAD/B,IAAA,SAAS,eAAA,EAAE,IAAI,UAAA,EAAE,OAAO,aAAA,EAAE,kBAAiB,EAAjB,UAAU,mBAAG,IAAI,KAAA,EAAE,KAAK,WAAA,EAAE,KAAK,WAAA,EAAK,IAAI,cAApE,gEAAsE,CAAF;IAG9D,IAAA,KAAsB,eAAK,CAAC,QAAQ,CAAC,KAAK,CAAC,EAA1C,MAAM,QAAA,EAAE,SAAS,QAAyB,CAAC;IAElD,IAAM,MAAM,GAAG,eAAK,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;IAClC,IAAM,OAAO,GAAG,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,MAAM,CAAC;IAE3B,IAAA,cAAc,GAAK,IAAA,iCAAe,EAAC,OAAO,CAAC,eAA7B,CAA8B;IAEpD,IAAM,qBAAqB,GAAG,IAAA,oBAAU,EAAC,cAAc,EAAE,SAAS,EAAE;QACnE,sBAAsB,EAAE,MAAM;QAC9B,6BAA6B,EAAE,cAAc;KAC7C,CAAC,CAAC;IAEH,IAAM,cAAc,GAAG;QACtB,OAAO,aAAP,OAAO,uBAAP,OAAO,EAAI,CAAC;IACb,CAAC,CAAC;IAEF,eAAK,CAAC,SAAS,CAAC;QACf,SAAS,CAAC,KAAK,CAAC,CAAC;IAClB,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC;IAEZ,OAAO,CACN,mDACC,SAAS,EAAE,qBAAqB,EAChC,OAAO,EAAE,cAAM,OAAA,cAAc,EAAE,EAAhB,CAAgB,EAC/B,GAAG,EAAE,OAAO,oBACI,KAAG,MAAQ,mBACZ,UAAU,gBACb,YAAU,KAAO,mBACd,CAAC,CAAC,MAAM,IACnB,IAAI;QAER,8BAAC,aAAK,IAAC,UAAU,EAAC,QAAQ;YACxB,IAAI,IAAI,CACR,8BAAC,WAAI,IACJ,IAAI,EAAE,IAAI,EACV,IAAI,EAAC,MAAM,EACX,SAAS,EAAC,oBAAoB,GAC7B,CACF;YACA,CAAC,IAAI,IAAI,KAAK,IAAI,CAClB,8BAAC,mBAAQ,IACR,EAAE,EAAC,MAAM,EACT,IAAI,EAAC,OAAO,EACZ,SAAS,EAAC,qBAAqB,IAE9B,KAAK,CACI,CACX;YACA,OAAO,MAAM,KAAK,QAAQ,CAAC,CAAC,CAAC,CAC7B,8BAAC,mBAAQ,IAAC,EAAE,EAAC,MAAM,EAAC,IAAI,EAAC,OAAO,IAC9B,IAAI;gBACL,8BAAC,mBAAQ,IAAC,EAAE,EAAC,MAAM,EAAC,IAAI,EAAC,OAAO,EAAC,IAAI,UACnC,MAAM,CACG,CACD,CACX,CAAC,CAAC,CAAC,OAAO,MAAM,KAAK,QAAQ,CAAC,CAAC,CAAC,CAChC,8BAAC,SAAG,IACH,KAAK,EAAC,MAAM,EACZ,KAAK,QACL,OAAO,QACP,SAAS,EAAC,mBAAmB,IAE5B,MAAM,CACF,CACN,CAAC,CAAC,CAAC,IAAI;YACP,UAAU,KAAK,IAAI,IAAI,CACvB,8BAAC,WAAI,IACJ,IAAI,EACH,UAAU;oBACT,CAAC,CAAC,mBAAmB;oBACrB,CAAC,CAAC,qBAAqB,EAEzB,SAAS,EAAC,0BAA0B,GACnC,CACF,CACM,CACA,CACT,CAAC;AACH,CAAC,CACD,CAAC"}
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
/* Hide element visually, keeping it focusable (with keyboard) and available for screen-readers */
|
|
2
|
+
.FilterButton {
|
|
3
|
+
/* Set color on root of component. It can be overridden after the @include */
|
|
4
|
+
color: #141414;
|
|
5
|
+
/* Make sure font-family goes across entire component */
|
|
6
|
+
font-family: "Nunito Sans", sans-serif;
|
|
7
|
+
display: inline-flex;
|
|
8
|
+
padding: 4px 8px;
|
|
9
|
+
border-radius: 500em;
|
|
10
|
+
border: 1px solid var(--colorsBorderGreyStrong, #bcbcbd);
|
|
11
|
+
color: var(--colorsTextDefault, #141414);
|
|
12
|
+
font-size: 12px;
|
|
13
|
+
cursor: pointer;
|
|
14
|
+
background-color: transparent;
|
|
15
|
+
align-self: flex-start;
|
|
16
|
+
}
|
|
17
|
+
.FilterButton .BodyText {
|
|
18
|
+
color: inherit;
|
|
19
|
+
}
|
|
20
|
+
.FilterButton.FilterButton--focus-visible:focus {
|
|
21
|
+
outline: 0;
|
|
22
|
+
box-shadow: 0 0 0 3px var(--colorsFocusRingPrimary, #a9d1ff);
|
|
23
|
+
}
|
|
24
|
+
.FilterButton .FilterButton__Icon {
|
|
25
|
+
height: 21px;
|
|
26
|
+
width: 21px;
|
|
27
|
+
justify-content: center;
|
|
28
|
+
align-items: center;
|
|
29
|
+
display: flex;
|
|
30
|
+
}
|
|
31
|
+
.FilterButton .FilterButton__ExpandIcon,
|
|
32
|
+
.FilterButton .FilterButton__Tag {
|
|
33
|
+
margin-left: 4px;
|
|
34
|
+
}
|
|
35
|
+
.FilterButton.FilterButton--active {
|
|
36
|
+
color: var(--colorsTextSecondary, #6954c0);
|
|
37
|
+
border: none;
|
|
38
|
+
background-color: var(--colorsSurfaceSecondarySubdued, #f1edff);
|
|
39
|
+
padding: calc(4px + 1px) calc(8px + 1px);
|
|
40
|
+
}
|
|
41
|
+
.FilterButton.FilterButton--active .FilterButton__Icon,
|
|
42
|
+
.FilterButton.FilterButton--active .FilterButton__ExpandIcon {
|
|
43
|
+
color: var(--colorsTextSecondary, #6954c0);
|
|
44
|
+
}
|
|
45
|
+
|
|
46
|
+
/*# sourceMappingURL=index.css.map */
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sourceRoot":"","sources":["../../../src/utilities/_visually-hidden.scss","../../../src/components/FilterButton/FilterButton.scss","../../../src/utilities/_component-reset.scss","../../../node_modules/@servicetitan/tokens/dist/tokens.scss"],"names":[],"mappings":"AAAA;ACYA;ACXC;EACA,OCiBa;ADfb;EACA;EDUA;EACA;EACA,eEPoB;EFQpB;EACA,OAhBc;EAiBd,WE+Ga;EF9Gb;EACA;EACA;;AAEA;EAAY;;AAEZ;EACC;EACA,YAnBc;;AAsBf;EACC;EACA;EACA;EACA;EACA;;AAGD;AAAA;EAEC,aEuFa;;AFpFd;EACC,OAxCY;EAyCZ;EACA,kBAzCkB;EA0ClB;;AAEA;AAAA;EAEC,OA/CW","file":"index.css"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export * from './FilterButton';
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });
|
|
5
|
+
}) : (function(o, m, k, k2) {
|
|
6
|
+
if (k2 === undefined) k2 = k;
|
|
7
|
+
o[k2] = m[k];
|
|
8
|
+
}));
|
|
9
|
+
var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
10
|
+
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
|
11
|
+
};
|
|
12
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
13
|
+
__exportStar(require("./FilterButton"), exports);
|
|
14
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/components/FilterButton/index.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,iDAA+B"}
|