@servicetitan/design-system 12.8.1 → 12.10.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/Button/Button.css +1 -1
- package/dist/components/Button/index.css +1 -1
- package/dist/components/Collapsible/Collapsible.js +3 -3
- package/dist/components/Collapsible/Collapsible.js.map +1 -1
- package/dist/components/DatePicker/DatePicker.d.ts +13 -0
- package/dist/components/DatePicker/DatePicker.js +34 -12
- package/dist/components/DatePicker/DatePicker.js.map +1 -1
- package/dist/components/DatePicker/InputDateMask.d.ts +1 -1
- package/dist/components/DatePicker/InputDateMask.js +13 -4
- package/dist/components/DatePicker/InputDateMask.js.map +1 -1
- package/dist/components/DateRangePicker/DateRangePicker.d.ts +3 -3
- 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.js +3 -1
- package/dist/components/DateRangePicker/components/DateRangeInput.js.map +1 -1
- package/dist/components/Dialog/Dialog.d.ts +3 -3
- package/dist/components/Drawer/Drawer.d.ts +3 -3
- package/dist/components/Drawer/Drawer.js +11 -23
- package/dist/components/Drawer/Drawer.js.map +1 -1
- package/dist/components/Icon/Icon.css +1 -1
- package/dist/components/Icon/index.css +1 -1
- package/dist/components/Input/Input.js +3 -6
- package/dist/components/Input/Input.js.map +1 -1
- package/dist/components/KeyPressListener/KeyPressListener.d.ts +1 -0
- package/dist/components/KeyPressListener/KeyPressListener.js +8 -6
- package/dist/components/KeyPressListener/KeyPressListener.js.map +1 -1
- package/dist/components/Modal/Modal.d.ts +3 -3
- package/dist/components/Modal/Modal.js.map +1 -1
- package/dist/components/Modal/components.d.ts +3 -3
- package/dist/components/Modal/components.js +6 -18
- package/dist/components/Modal/components.js.map +1 -1
- package/dist/components/Popover/Popover.d.ts +3 -3
- package/dist/components/ProgressTracker/ProgressTracker.css +13 -1
- package/dist/components/ProgressTracker/ProgressTracker.css.map +1 -1
- package/dist/components/ProgressTracker/ProgressTracker.d.ts +6 -0
- package/dist/components/ProgressTracker/ProgressTracker.js +10 -2
- package/dist/components/ProgressTracker/ProgressTracker.js.map +1 -1
- package/dist/components/ProgressTracker/ProgressTrackerDivider.d.ts +1 -0
- package/dist/components/ProgressTracker/ProgressTrackerDivider.js +3 -1
- package/dist/components/ProgressTracker/ProgressTrackerDivider.js.map +1 -1
- package/dist/components/ProgressTracker/ProgressTrackerStep.css +73 -18
- package/dist/components/ProgressTracker/ProgressTrackerStep.css.map +1 -1
- package/dist/components/ProgressTracker/ProgressTrackerStep.d.ts +3 -0
- package/dist/components/ProgressTracker/ProgressTrackerStep.js +29 -7
- package/dist/components/ProgressTracker/ProgressTrackerStep.js.map +1 -1
- package/dist/components/ProgressTracker/index.css +86 -19
- package/dist/components/ProgressTracker/index.css.map +1 -1
- package/dist/components/Scroll/Scroll.css +6 -0
- package/dist/components/Scroll/Scroll.css.map +1 -1
- package/dist/components/Scroll/Scroll.js +7 -1
- package/dist/components/Scroll/Scroll.js.map +1 -1
- package/dist/components/Scroll/index.css +6 -0
- package/dist/components/Scroll/index.css.map +1 -1
- package/dist/components/SideNav/SideNav.css +10 -8
- package/dist/components/SideNav/SideNav.css.map +1 -1
- package/dist/components/SideNav/SideNav.js +13 -5
- package/dist/components/SideNav/SideNav.js.map +1 -1
- package/dist/components/SideNav/SideNavGroup.css +6 -2
- package/dist/components/SideNav/SideNavGroup.css.map +1 -1
- package/dist/components/SideNav/SideNavGroup.js +1 -1
- package/dist/components/SideNav/SideNavGroup.js.map +1 -1
- package/dist/components/SideNav/SideNavItem.css +92 -17
- package/dist/components/SideNav/SideNavItem.css.map +1 -1
- package/dist/components/SideNav/SideNavItem.d.ts +17 -4
- package/dist/components/SideNav/SideNavItem.js +105 -14
- package/dist/components/SideNav/SideNavItem.js.map +1 -1
- package/dist/components/SideNav/index.css +98 -19
- package/dist/components/SideNav/index.css.map +1 -1
- package/dist/components/Tab/Tab.js +1 -1
- package/dist/components/Tab/Tab.js.map +1 -1
- package/dist/components/Takeover/Takeover.d.ts +3 -3
- package/dist/components/Takeover/Takeover.js +9 -21
- package/dist/components/Takeover/Takeover.js.map +1 -1
- package/dist/components/TimePicker/TimePicker.js +10 -7
- package/dist/components/TimePicker/TimePicker.js.map +1 -1
- package/dist/components/TimePicker/components/TimePickerOptionList.d.ts +1 -0
- package/dist/components/TimePicker/components/TimePickerOptionList.js +8 -2
- package/dist/components/TimePicker/components/TimePickerOptionList.js.map +1 -1
- package/dist/components/TimePicker/utils/getClosestOption.js +1 -1
- package/dist/components/TimePicker/utils/getClosestOption.js.map +1 -1
- package/dist/components/TimePicker/utils/utils.js +0 -1
- package/dist/components/TimePicker/utils/utils.js.map +1 -1
- package/dist/components/index.css +191 -39
- package/dist/components/index.css.map +1 -1
- package/dist/global/index.css +1 -1
- package/dist/global/version.css +1 -1
- package/dist/hooks/index.d.ts +1 -0
- package/dist/hooks/index.js +1 -0
- package/dist/hooks/index.js.map +1 -1
- package/dist/hooks/useFocusTrap/index.d.ts +1 -0
- package/dist/hooks/useFocusTrap/index.js +2 -0
- package/dist/hooks/useFocusTrap/index.js.map +1 -0
- package/dist/hooks/useFocusTrap/internal/index.d.ts +5 -0
- package/dist/hooks/useFocusTrap/internal/index.js +6 -0
- package/dist/hooks/useFocusTrap/internal/index.js.map +1 -0
- package/dist/hooks/useFocusTrap/internal/useAutoFocus.d.ts +6 -0
- package/dist/hooks/useFocusTrap/internal/useAutoFocus.js +23 -0
- package/dist/hooks/useFocusTrap/internal/useAutoFocus.js.map +1 -0
- package/dist/hooks/useFocusTrap/internal/useAutoFocusContainer.d.ts +11 -0
- package/dist/hooks/useFocusTrap/internal/useAutoFocusContainer.js +28 -0
- package/dist/hooks/useFocusTrap/internal/useAutoFocusContainer.js.map +1 -0
- package/dist/hooks/useFocusTrap/internal/useDisableClickOutside.d.ts +9 -0
- package/dist/hooks/useFocusTrap/internal/useDisableClickOutside.js +28 -0
- package/dist/hooks/useFocusTrap/internal/useDisableClickOutside.js.map +1 -0
- package/dist/hooks/useFocusTrap/internal/useFocusLock.d.ts +6 -0
- package/dist/hooks/useFocusTrap/internal/useFocusLock.js +39 -0
- package/dist/hooks/useFocusTrap/internal/useFocusLock.js.map +1 -0
- package/dist/hooks/useFocusTrap/internal/useRestoreFocus.d.ts +3 -0
- package/dist/hooks/useFocusTrap/internal/useRestoreFocus.js +12 -0
- package/dist/hooks/useFocusTrap/internal/useRestoreFocus.js.map +1 -0
- package/dist/hooks/useFocusTrap/internal/utils.d.ts +23 -0
- package/dist/hooks/useFocusTrap/internal/utils.js +161 -0
- package/dist/hooks/useFocusTrap/internal/utils.js.map +1 -0
- package/dist/hooks/useFocusTrap/useFocusTrap.d.ts +37 -0
- package/dist/hooks/useFocusTrap/useFocusTrap.js +34 -0
- package/dist/hooks/useFocusTrap/useFocusTrap.js.map +1 -0
- package/dist/internal/CollapsibleList/CollapsibleContext.d.ts +9 -0
- package/dist/internal/CollapsibleList/CollapsibleContext.js +3 -0
- package/dist/internal/CollapsibleList/CollapsibleContext.js.map +1 -0
- package/dist/internal/CollapsibleList/CollapsibleList.css +9 -0
- package/dist/internal/CollapsibleList/CollapsibleList.css.map +1 -0
- package/dist/internal/CollapsibleList/CollapsibleList.d.ts +11 -0
- package/dist/internal/CollapsibleList/CollapsibleList.js +27 -0
- package/dist/internal/CollapsibleList/CollapsibleList.js.map +1 -0
- package/dist/internal/CollapsibleList/CollapsibleListItem.d.ts +11 -0
- package/dist/internal/CollapsibleList/CollapsibleListItem.js +60 -0
- package/dist/internal/CollapsibleList/CollapsibleListItem.js.map +1 -0
- package/dist/internal/CollapsibleList/index.css +9 -0
- package/dist/internal/CollapsibleList/index.css.map +1 -0
- package/dist/internal/CollapsibleList/index.d.ts +3 -0
- package/dist/internal/CollapsibleList/index.js +4 -0
- package/dist/internal/CollapsibleList/index.js.map +1 -0
- package/dist/internal/Popper/Popper.d.ts +3 -3
- package/dist/internal/Popper/Popper.js +9 -17
- package/dist/internal/Popper/Popper.js.map +1 -1
- package/dist/internal/index.css +8 -1
- 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 +8 -1
- package/dist/system-light.css.map +1 -1
- package/dist/system-light.min.css +1 -1
- package/dist/system.css +199 -40
- package/dist/system.css.map +1 -1
- package/dist/system.min.css +2 -2
- package/dist/utilities/index.d.ts +0 -1
- package/dist/utilities/index.js +0 -1
- package/dist/utilities/index.js.map +1 -1
- package/dist/utilities/keyCodes.d.ts +1 -1
- package/dist/utilities/keyCodes.js +1 -1
- package/dist/utilities/keyCodes.js.map +1 -1
- package/package.json +8 -8
- package/dist/utilities/FocusTrap/FocusTrap.d.ts +0 -8
- package/dist/utilities/FocusTrap/FocusTrap.js +0 -52
- package/dist/utilities/FocusTrap/FocusTrap.js.map +0 -1
- package/dist/utilities/FocusTrap/index.d.ts +0 -1
- package/dist/utilities/FocusTrap/index.js +0 -2
- package/dist/utilities/FocusTrap/index.js.map +0 -1
|
@@ -5,6 +5,7 @@ export interface KeyPressListenerProps {
|
|
|
5
5
|
handler(event: KeyboardEvent): void;
|
|
6
6
|
keyEvent?: KeyEvent;
|
|
7
7
|
disabled?: boolean;
|
|
8
|
+
targetElement?: HTMLElement;
|
|
8
9
|
}
|
|
9
10
|
declare type KeyEvent = 'keydown' | 'keyup';
|
|
10
11
|
export declare const KeyPressListener: React.FC<KeyPressListenerProps>;
|
|
@@ -1,18 +1,20 @@
|
|
|
1
1
|
import { useEffect } from 'react';
|
|
2
|
-
export const KeyPressListener = ({ code, handler, keyEvent = 'keyup', disabled = false, }) => {
|
|
2
|
+
export const KeyPressListener = ({ code, handler, keyEvent = 'keyup', disabled = false, targetElement, }) => {
|
|
3
3
|
const handleKeyEvent = (event) => {
|
|
4
|
+
if (event.code !== code)
|
|
5
|
+
return;
|
|
4
6
|
if (disabled) {
|
|
5
7
|
event.preventDefault();
|
|
6
8
|
return;
|
|
7
9
|
}
|
|
8
|
-
|
|
9
|
-
handler(event);
|
|
10
|
-
}
|
|
10
|
+
handler(event);
|
|
11
11
|
};
|
|
12
|
+
const getElement = () => (targetElement ? targetElement : document);
|
|
12
13
|
useEffect(() => {
|
|
13
|
-
|
|
14
|
+
const target = getElement();
|
|
15
|
+
target.addEventListener(keyEvent, handleKeyEvent);
|
|
14
16
|
return () => {
|
|
15
|
-
|
|
17
|
+
target.removeEventListener(keyEvent, handleKeyEvent);
|
|
16
18
|
};
|
|
17
19
|
});
|
|
18
20
|
return null;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"KeyPressListener.js","sourceRoot":"","sources":["../../../src/components/KeyPressListener/KeyPressListener.tsx"],"names":[],"mappings":"AAAA,OAAc,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;
|
|
1
|
+
{"version":3,"file":"KeyPressListener.js","sourceRoot":"","sources":["../../../src/components/KeyPressListener/KeyPressListener.tsx"],"names":[],"mappings":"AAAA,OAAc,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAazC,MAAM,CAAC,MAAM,gBAAgB,GAAoC,CAAC,EACjE,IAAI,EACJ,OAAO,EACP,QAAQ,GAAG,OAAO,EAClB,QAAQ,GAAG,KAAK,EAChB,aAAa,GACb,EAAE,EAAE;IACJ,MAAM,cAAc,GAAG,CAAC,KAAoB,EAAE,EAAE;QAC/C,IAAI,KAAK,CAAC,IAAI,KAAK,IAAI;YAAE,OAAO;QAEhC,IAAI,QAAQ,EAAE;YACb,KAAK,CAAC,cAAc,EAAE,CAAC;YACvB,OAAO;SACP;QAED,OAAO,CAAC,KAAK,CAAC,CAAC;IAChB,CAAC,CAAC;IAEF,MAAM,UAAU,GAAG,GAAG,EAAE,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC;IAEpE,SAAS,CAAC,GAAG,EAAE;QACd,MAAM,MAAM,GAAG,UAAU,EAAE,CAAC;QAC5B,MAAM,CAAC,gBAAgB,CAAC,QAAQ,EAAE,cAAc,CAAC,CAAC;QAElD,OAAO,GAAG,EAAE;YACX,MAAM,CAAC,mBAAmB,CAAC,QAAQ,EAAE,cAAc,CAAC,CAAC;QACtD,CAAC,CAAC;IACH,CAAC,CAAC,CAAC;IAEH,OAAO,IAAI,CAAC;AACb,CAAC,CAAC"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import React, { FC } from 'react';
|
|
2
2
|
import { ModalWindow, ModalWindowProps, ModalHeader, ModalHeaderProps, ModalFooter, ModalFooterProps, ModalContent, ModalSizes } from './components';
|
|
3
|
-
import {
|
|
3
|
+
import { UseFocusTrapProps } from '../../hooks';
|
|
4
4
|
export interface ModalProps extends ModalHeaderProps, ModalWindowProps {
|
|
5
5
|
/** Adds one or more classnames for an element */
|
|
6
6
|
className?: string;
|
|
@@ -16,8 +16,8 @@ export interface ModalProps extends ModalHeaderProps, ModalWindowProps {
|
|
|
16
16
|
scrollable?: boolean;
|
|
17
17
|
/** Controls the width of the Modal */
|
|
18
18
|
size?: ModalSizes;
|
|
19
|
-
/** Options passed into
|
|
20
|
-
focusTrapOptions?:
|
|
19
|
+
/** Options passed into useFocusTrap */
|
|
20
|
+
focusTrapOptions?: UseFocusTrapProps;
|
|
21
21
|
/** Adds classnames to Modal's content wrapper */
|
|
22
22
|
contentClassName?: string;
|
|
23
23
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Modal.js","sourceRoot":"","sources":["../../../src/components/Modal/Modal.tsx"],"names":[],"mappings":";;;;;;;;;;;AAAA,OAAO,UAAU,MAAM,YAAY,CAAC;AACpC,OAAO,KAAa,MAAM,OAAO,CAAC;AAElC,OAAO,EACN,WAAW,EAEX,WAAW,EAEX,WAAW,EAEX,YAAY,EACZ,UAAU,GACV,MAAM,cAAc,CAAC;AACtB,OAAO,EAAE,cAAc,EAAE,MAAM,QAAQ,CAAC;
|
|
1
|
+
{"version":3,"file":"Modal.js","sourceRoot":"","sources":["../../../src/components/Modal/Modal.tsx"],"names":[],"mappings":";;;;;;;;;;;AAAA,OAAO,UAAU,MAAM,YAAY,CAAC;AACpC,OAAO,KAAa,MAAM,OAAO,CAAC;AAElC,OAAO,EACN,WAAW,EAEX,WAAW,EAEX,WAAW,EAEX,YAAY,EACZ,UAAU,GACV,MAAM,cAAc,CAAC;AACtB,OAAO,EAAE,cAAc,EAAE,MAAM,QAAQ,CAAC;AAyCxC,MAAM,CAAC,MAAM,KAAK,GAAU,CAAC,EAa5B,EAAE,EAAE;QAbwB,EAC5B,QAAQ,EACR,MAAM,EACN,WAAW,EACX,OAAO,EACP,IAAI,EACJ,MAAM,GAAG,IAAI,EACb,UAAU,GAAG,IAAI,EACjB,IAAI,EACJ,KAAK,EACL,gBAAgB,EAChB,gBAAgB,OAEhB,EADG,IAAI,cAZqB,yIAa5B,CADO;IAEP,MAAM,WAAW,GAAG,4BAA4B,CAAC;IACjD,MAAM,UAAU,GAAG,iBAAiB,cAAc,CAAC,WAAW,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC;IACvE,MAAM,gBAAgB,GAAG,uBAAuB,cAAc,CAC7D,WAAW,EACX,CAAC,CACD,EAAE,EAAE,CAAC;IAEN,OAAO,CACN,oBAAC,WAAW,kBACX,OAAO,EAAE,OAAO,EAChB,IAAI,EAAE,IAAI,EACV,gBAAgB,EAAE,gBAAgB,EAClC,IAAI,EAAE,IAAI,EACV,MAAM,EAAE,MAAM,EACd,IAAI,EAAC,aAAa,0BACG,OAAO,gBACjB,MAAM,qBACA,UAAU,sBACT,gBAAgB,IAC9B,IAAI;QAER,oBAAC,WAAW,IAAC,EAAE,EAAE,UAAU,EAAE,KAAK,EAAE,KAAK,EAAE,OAAO,EAAE,OAAO,GAAI;QAC/D,oBAAC,YAAY,IACZ,SAAS,EAAE,UAAU,CAAC,MAAM,EAAE,gBAAgB,CAAC,EAC/C,UAAU,EAAE,UAAU,EACtB,EAAE,EAAE,gBAAgB,IAEnB,QAAQ,CACK;QACd,MAAM,IAAI,oBAAC,WAAW,IAAC,KAAK,EAAE,WAAW,IAAG,MAAM,CAAe,CACrD,CACd,CAAC;AACH,CAAC,CAAC;AAEF,KAAK,CAAC,MAAM,GAAG,WAAW,CAAC;AAC3B,KAAK,CAAC,MAAM,GAAG,WAAW,CAAC;AAC3B,KAAK,CAAC,OAAO,GAAG,YAAY,CAAC;AAC7B,KAAK,CAAC,MAAM,GAAG,WAAW,CAAC;AAC3B,KAAK,CAAC,KAAK,GAAG,UAAU,CAAC"}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import React, { FC } from 'react';
|
|
2
2
|
import { OverlayProps } from '../../internal/Overlay';
|
|
3
3
|
import { JustifyProps } from '../../utilities/justify-props';
|
|
4
|
-
import {
|
|
4
|
+
import { UseFocusTrapProps } from '../../hooks/useFocusTrap';
|
|
5
5
|
export interface ModalContentProps {
|
|
6
6
|
/** Adds one or more classnames for an element */
|
|
7
7
|
className?: string;
|
|
@@ -38,7 +38,7 @@ export interface ModalWindowProps extends OverlayProps {
|
|
|
38
38
|
/** Add class attribute */
|
|
39
39
|
className?: string;
|
|
40
40
|
size?: ModalSizes;
|
|
41
|
-
/** Options passed into
|
|
42
|
-
focusTrapOptions?:
|
|
41
|
+
/** Options passed into useFocusTrap */
|
|
42
|
+
focusTrapOptions?: UseFocusTrapProps;
|
|
43
43
|
}
|
|
44
44
|
export declare const ModalWindow: FC<ModalWindowProps>;
|
|
@@ -9,12 +9,12 @@ var __rest = (this && this.__rest) || function (s, e) {
|
|
|
9
9
|
}
|
|
10
10
|
return t;
|
|
11
11
|
};
|
|
12
|
-
import React
|
|
12
|
+
import React from 'react';
|
|
13
13
|
import classnames from 'classnames';
|
|
14
14
|
import { AnimatePresence, motion } from 'framer-motion';
|
|
15
15
|
import { tokens } from '@servicetitan/tokens/core';
|
|
16
16
|
import { Overlay } from '../../internal/Overlay';
|
|
17
|
-
import {
|
|
17
|
+
import { useFocusTrap } from '../../hooks/useFocusTrap';
|
|
18
18
|
import { Headline } from '../Headline';
|
|
19
19
|
import { Button } from '../Button';
|
|
20
20
|
export const ModalContent = ({ children, className, scrollable = true, id, }) => {
|
|
@@ -62,8 +62,8 @@ function sizeClass(size) {
|
|
|
62
62
|
export const ModalWindow = (_a) => {
|
|
63
63
|
var { animate = true, children, className, focusTrapOptions, onClose, open, portal = true, size = ModalSizes.M } = _a, props = __rest(_a, ["animate", "children", "className", "focusTrapOptions", "onClose", "open", "portal", "size"]);
|
|
64
64
|
const ModalWindowClassNames = classnames('Modal', sizeClass(size), className);
|
|
65
|
-
|
|
66
|
-
const
|
|
65
|
+
// Focus trapping
|
|
66
|
+
const containerRef = useFocusTrap(Object.assign({ autoFocusContainer: true, disabled: !open }, focusTrapOptions));
|
|
67
67
|
const duration = parseInt(tokens.durationStandard, 10) / 1000; // '200ms' -> 0.2
|
|
68
68
|
const framerAnimation = {
|
|
69
69
|
initial: { opacity: 0, y: 50 },
|
|
@@ -73,20 +73,8 @@ export const ModalWindow = (_a) => {
|
|
|
73
73
|
};
|
|
74
74
|
const Animate = animate ? AnimatePresence : React.Fragment;
|
|
75
75
|
const ModalEl = animate ? motion.div : 'div';
|
|
76
|
-
const ModalProps = Object.assign(Object.assign(Object.assign({ className: ModalWindowClassNames }, (animate && framerAnimation)), props), { ref: containerRef
|
|
77
|
-
React.useEffect(() => {
|
|
78
|
-
// Removes wrapper to be focusable element after initial tab
|
|
79
|
-
function eventHandler(event) {
|
|
80
|
-
event.key === 'Tab' && setFocusWrapper(-1);
|
|
81
|
-
}
|
|
82
|
-
document.addEventListener('keydown', eventHandler);
|
|
83
|
-
return () => document.removeEventListener('keydown', eventHandler);
|
|
84
|
-
}, []);
|
|
85
|
-
React.useEffect(() => {
|
|
86
|
-
setFocusWrapper(1);
|
|
87
|
-
}, [open]);
|
|
76
|
+
const ModalProps = Object.assign(Object.assign(Object.assign({ className: ModalWindowClassNames }, (animate && framerAnimation)), props), { ref: containerRef });
|
|
88
77
|
return (React.createElement(Overlay, { animate: animate, backdrop: true, onClose: onClose, open: open, portal: portal },
|
|
89
|
-
React.createElement(Animate, null, open &&
|
|
90
|
-
React.createElement(ModalEl, Object.assign({}, ModalProps), children))))));
|
|
78
|
+
React.createElement(Animate, null, open && React.createElement(ModalEl, Object.assign({}, ModalProps), children))));
|
|
91
79
|
};
|
|
92
80
|
//# sourceMappingURL=components.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"components.js","sourceRoot":"","sources":["../../../src/components/Modal/components.tsx"],"names":[],"mappings":";;;;;;;;;;;AAAA,OAAO,
|
|
1
|
+
{"version":3,"file":"components.js","sourceRoot":"","sources":["../../../src/components/Modal/components.tsx"],"names":[],"mappings":"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"}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import React, { ForwardRefExoticComponent } from 'react';
|
|
2
2
|
import { PopperProps } from '../../internal/Popper';
|
|
3
3
|
import { PopoverContent, PopoverContentProps, PopoverDivider, PopoverFooter, PopoverFooterProps, PopoverHeader, PopoverHeaderProps } from './components';
|
|
4
|
-
import {
|
|
4
|
+
import { UseFocusTrapProps } from '../../hooks/useFocusTrap';
|
|
5
5
|
export interface PopoverPropsStrict {
|
|
6
6
|
/** If there isn't enough space on the screen the Popover will be repositioned to the opposite side of the anchor */
|
|
7
7
|
autoFlipHorizontally?: boolean;
|
|
@@ -51,8 +51,8 @@ export interface PopoverPropsStrict {
|
|
|
51
51
|
width?: 'xs' | 's' | 'm' | 'l' | '100' | 'auto';
|
|
52
52
|
/** Adds one or more classnames to Popover's source element */
|
|
53
53
|
wrapperClassName?: string;
|
|
54
|
-
/** Options passed into
|
|
55
|
-
focusTrapOptions?:
|
|
54
|
+
/** Options passed into useFocusTrap */
|
|
55
|
+
focusTrapOptions?: UseFocusTrapProps;
|
|
56
56
|
/** offset ammount between Popover and trigger */
|
|
57
57
|
offset?: PopperProps['offset'];
|
|
58
58
|
}
|
|
@@ -14,6 +14,9 @@
|
|
|
14
14
|
.ProgressTrackerDivider {
|
|
15
15
|
position: relative;
|
|
16
16
|
width: 100%;
|
|
17
|
+
flex-shrink: 0;
|
|
18
|
+
flex-grow: 1;
|
|
19
|
+
flex-basis: 0;
|
|
17
20
|
}
|
|
18
21
|
.ProgressTrackerDivider::after {
|
|
19
22
|
content: "";
|
|
@@ -23,7 +26,16 @@
|
|
|
23
26
|
top: 50%;
|
|
24
27
|
margin-top: -1px;
|
|
25
28
|
height: 2px;
|
|
26
|
-
background-color: var(--
|
|
29
|
+
background-color: var(--colorsStatusDefault, #8c9ca5);
|
|
30
|
+
}
|
|
31
|
+
|
|
32
|
+
.ProgressTracker--disabled {
|
|
33
|
+
cursor: not-allowed;
|
|
34
|
+
opacity: 0.6;
|
|
35
|
+
}
|
|
36
|
+
|
|
37
|
+
.ProgressTrackerDivider--completed::after {
|
|
38
|
+
background-color: var(--colorsStatusInfo, #2270ee);
|
|
27
39
|
}
|
|
28
40
|
|
|
29
41
|
/*# sourceMappingURL=ProgressTracker.css.map */
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sourceRoot":"","sources":["../../../src/utilities/_visually-hidden.scss","../../../src/components/ProgressTracker/ProgressTracker.scss","../../../src/utilities/_component-reset.scss","../../../node_modules/@servicetitan/tokens/core/tokens.scss"],"names":[],"mappings":"AAAA;
|
|
1
|
+
{"version":3,"sourceRoot":"","sources":["../../../src/utilities/_visually-hidden.scss","../../../src/components/ProgressTracker/ProgressTracker.scss","../../../src/utilities/_component-reset.scss","../../../node_modules/@servicetitan/tokens/core/tokens.scss"],"names":[],"mappings":"AAAA;ACMA;ACLC;EACA;AAEA;EACA;EDIA;EACA;EACA;EACA,WE6Ha;EF5Hb,aE+FqB;;;AF5FtB;EACC;EACA;EACA;EACA;EACA;;AAEA;EACC;EACA;EACA;EACA;EACA;EACA;EACA;EACA,kBA5Be;;;AAgCjB;EACC;EACA,SE6EkB;;;AFzElB;EAAW,kBArCM","file":"ProgressTracker.css"}
|
|
@@ -8,6 +8,12 @@ export interface ProgressTrackerPropsStrict {
|
|
|
8
8
|
currentIndex: number | false;
|
|
9
9
|
/** Turn this on if this flow has been previously completed */
|
|
10
10
|
completed?: boolean;
|
|
11
|
+
/** Disable style for the entire Progress Tracker */
|
|
12
|
+
disabled?: boolean;
|
|
13
|
+
/** Hides labels behind Tooltips. For accessibility, labels should be added even when hidden */
|
|
14
|
+
hideLabels?: boolean;
|
|
15
|
+
/** Size of the Progress Tracker. Defaults to medium. */
|
|
16
|
+
size?: 'small' | 'medium';
|
|
11
17
|
}
|
|
12
18
|
export interface ProgressTrackerProps extends ProgressTrackerPropsStrict {
|
|
13
19
|
[propName: string]: any;
|
|
@@ -14,7 +14,7 @@ import classnames from 'classnames';
|
|
|
14
14
|
import { ProgressTrackerStep } from './ProgressTrackerStep';
|
|
15
15
|
import { ProgressTrackerDivider } from './ProgressTrackerDivider';
|
|
16
16
|
export const ProgressTracker = (_a) => {
|
|
17
|
-
var { children, className, completed, currentIndex = 0 } = _a, rest = __rest(_a, ["children", "className", "completed", "currentIndex"]);
|
|
17
|
+
var { children, className, completed, currentIndex = 0, disabled, hideLabels, size = 'medium' } = _a, rest = __rest(_a, ["children", "className", "completed", "currentIndex", "disabled", "hideLabels", "size"]);
|
|
18
18
|
const renderSteps = () => {
|
|
19
19
|
return React.Children.map(children, (child, index) => {
|
|
20
20
|
const childProps = {
|
|
@@ -23,11 +23,15 @@ export const ProgressTracker = (_a) => {
|
|
|
23
23
|
active: child.props.active,
|
|
24
24
|
completed: child.props.completed,
|
|
25
25
|
editing: child.props.editing,
|
|
26
|
+
hideLabels: child.props.hideLabels,
|
|
27
|
+
size,
|
|
26
28
|
};
|
|
27
29
|
const isIndexed = currentIndex !== false;
|
|
28
30
|
const isActive = index === currentIndex;
|
|
29
31
|
const isBeforeActive = index < currentIndex;
|
|
30
32
|
const flowPreviouslyCompleted = completed;
|
|
33
|
+
if (hideLabels)
|
|
34
|
+
childProps.hideLabels = true;
|
|
31
35
|
if (isIndexed) {
|
|
32
36
|
if (flowPreviouslyCompleted) {
|
|
33
37
|
// If currentIndex is used and this is the current step
|
|
@@ -47,13 +51,17 @@ export const ProgressTracker = (_a) => {
|
|
|
47
51
|
}
|
|
48
52
|
}
|
|
49
53
|
return [
|
|
50
|
-
index > 0 && (React.createElement(ProgressTrackerDivider, { key: `${index}-divider
|
|
54
|
+
index > 0 && (React.createElement(ProgressTrackerDivider, { key: `${index}-divider`, completed: isBeforeActive ||
|
|
55
|
+
flowPreviouslyCompleted ||
|
|
56
|
+
isActive })),
|
|
51
57
|
React.cloneElement(child, childProps),
|
|
52
58
|
];
|
|
53
59
|
});
|
|
54
60
|
};
|
|
55
61
|
const ProgressTrackerClasses = classnames('ProgressTracker', className, {
|
|
56
62
|
'ProgressTracker--completed': completed,
|
|
63
|
+
'ProgressTracker--disabled': disabled,
|
|
64
|
+
[`ProgressTracker--${size}`]: size,
|
|
57
65
|
});
|
|
58
66
|
return (React.createElement("div", Object.assign({ className: ProgressTrackerClasses, "data-anvil-component": "ProgressTracker" }, rest), renderSteps()));
|
|
59
67
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ProgressTracker.js","sourceRoot":"","sources":["../../../src/components/ProgressTracker/ProgressTracker.tsx"],"names":[],"mappings":";;;;;;;;;;;AAAA,OAAO,KAAa,MAAM,OAAO,CAAC;AAClC,OAAO,UAAU,MAAM,YAAY,CAAC;AACpC,OAAO,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAC;AAC5D,OAAO,EAAE,sBAAsB,EAAE,MAAM,0BAA0B,CAAC;
|
|
1
|
+
{"version":3,"file":"ProgressTracker.js","sourceRoot":"","sources":["../../../src/components/ProgressTracker/ProgressTracker.tsx"],"names":[],"mappings":";;;;;;;;;;;AAAA,OAAO,KAAa,MAAM,OAAO,CAAC;AAClC,OAAO,UAAU,MAAM,YAAY,CAAC;AACpC,OAAO,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAC;AAC5D,OAAO,EAAE,sBAAsB,EAAE,MAAM,0BAA0B,CAAC;AAgClE,MAAM,CAAC,MAAM,eAAe,GAAoB,CAAC,EAShD,EAAE,EAAE;QAT4C,EAChD,QAAQ,EACR,SAAS,EACT,SAAS,EACT,YAAY,GAAG,CAAC,EAChB,QAAQ,EACR,UAAU,EACV,IAAI,GAAG,QAAQ,OAEf,EADG,IAAI,cARyC,wFAShD,CADO;IAEP,MAAM,WAAW,GAAG,GAAoB,EAAE;QACzC,OAAO,KAAK,CAAC,QAAQ,CAAC,GAAG,CACxB,QAAQ,EACR,CAAC,KAAyB,EAAE,KAAK,EAAE,EAAE;YACpC,MAAM,UAAU,GAAG;gBAClB,GAAG,EAAE,GAAG,KAAK,OAAO;gBACpB,UAAU,EAAE,KAAK,GAAG,CAAC;gBACrB,MAAM,EAAE,KAAK,CAAC,KAAK,CAAC,MAAM;gBAC1B,SAAS,EAAE,KAAK,CAAC,KAAK,CAAC,SAAS;gBAChC,OAAO,EAAE,KAAK,CAAC,KAAK,CAAC,OAAO;gBAC5B,UAAU,EAAE,KAAK,CAAC,KAAK,CAAC,UAAU;gBAClC,IAAI;aACJ,CAAC;YAEF,MAAM,SAAS,GAAG,YAAY,KAAK,KAAK,CAAC;YACzC,MAAM,QAAQ,GAAG,KAAK,KAAK,YAAY,CAAC;YACxC,MAAM,cAAc,GAAG,KAAK,GAAG,YAAY,CAAC;YAC5C,MAAM,uBAAuB,GAAG,SAAS,CAAC;YAE1C,IAAI,UAAU;gBAAE,UAAU,CAAC,UAAU,GAAG,IAAI,CAAC;YAE7C,IAAI,SAAS,EAAE;gBACd,IAAI,uBAAuB,EAAE;oBAC5B,uDAAuD;oBACvD,IAAI,QAAQ;wBAAE,UAAU,CAAC,OAAO,GAAG,IAAI,CAAC;oBAExC,2GAA2G;oBAC3G,IAAI,CAAC,QAAQ;wBAAE,UAAU,CAAC,SAAS,GAAG,IAAI,CAAC;iBAC3C;gBAED,IAAI,CAAC,uBAAuB,EAAE;oBAC7B,uDAAuD;oBACvD,IAAI,QAAQ;wBAAE,UAAU,CAAC,MAAM,GAAG,IAAI,CAAC;oBAEvC,mEAAmE;oBACnE,IAAI,cAAc;wBAAE,UAAU,CAAC,SAAS,GAAG,IAAI,CAAC;iBAChD;aACD;YAED,OAAO;gBACN,KAAK,GAAG,CAAC,IAAI,CACZ,oBAAC,sBAAsB,IACtB,GAAG,EAAE,GAAG,KAAK,UAAU,EACvB,SAAS,EACR,cAAc;wBACd,uBAAuB;wBACvB,QAAQ,GAER,CACF;gBACD,KAAK,CAAC,YAAY,CAAC,KAA2B,EAAE,UAAU,CAAC;aAC3D,CAAC;QACH,CAAC,CACD,CAAC;IACH,CAAC,CAAC;IAEF,MAAM,sBAAsB,GAAG,UAAU,CAAC,iBAAiB,EAAE,SAAS,EAAE;QACvE,4BAA4B,EAAE,SAAS;QACvC,2BAA2B,EAAE,QAAQ;QACrC,CAAC,oBAAoB,IAAI,EAAE,CAAC,EAAE,IAAI;KAClC,CAAC,CAAC;IAEH,OAAO,CACN,2CACC,SAAS,EAAE,sBAAsB,0BACZ,iBAAiB,IAClC,IAAI,GAEP,WAAW,EAAE,CACT,CACN,CAAC;AACH,CAAC,CAAC;AAEF,eAAe,CAAC,IAAI,GAAG,mBAAmB,CAAC;AAC3C,eAAe,CAAC,OAAO,GAAG,sBAAsB,CAAC"}
|
|
@@ -13,7 +13,9 @@ import React from 'react';
|
|
|
13
13
|
import classnames from 'classnames';
|
|
14
14
|
export const ProgressTrackerDivider = (_a) => {
|
|
15
15
|
var { className } = _a, props = __rest(_a, ["className"]);
|
|
16
|
-
const ProgressTrackerDividerClasses = classnames('ProgressTrackerDivider', className
|
|
16
|
+
const ProgressTrackerDividerClasses = classnames('ProgressTrackerDivider', className, {
|
|
17
|
+
'ProgressTrackerDivider--completed': props.completed,
|
|
18
|
+
});
|
|
17
19
|
return React.createElement("div", Object.assign({ className: ProgressTrackerDividerClasses }, props));
|
|
18
20
|
};
|
|
19
21
|
//# sourceMappingURL=ProgressTrackerDivider.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ProgressTrackerDivider.js","sourceRoot":"","sources":["../../../src/components/ProgressTracker/ProgressTrackerDivider.tsx"],"names":[],"mappings":";;;;;;;;;;;AAAA,OAAO,KAAa,MAAM,OAAO,CAAC;AAClC,OAAO,UAAU,MAAM,YAAY,CAAC;
|
|
1
|
+
{"version":3,"file":"ProgressTrackerDivider.js","sourceRoot":"","sources":["../../../src/components/ProgressTracker/ProgressTrackerDivider.tsx"],"names":[],"mappings":";;;;;;;;;;;AAAA,OAAO,KAAa,MAAM,OAAO,CAAC;AAClC,OAAO,UAAU,MAAM,YAAY,CAAC;AASpC,MAAM,CAAC,MAAM,sBAAsB,GAAc,CAAC,EAAuB,EAAE,EAAE;QAA3B,EAAE,SAAS,OAAY,EAAP,KAAK,cAArB,aAAuB,CAAF;IACtE,MAAM,6BAA6B,GAAG,UAAU,CAC/C,wBAAwB,EACxB,SAAS,EACT;QACC,mCAAmC,EAAE,KAAK,CAAC,SAAS;KACpD,CACD,CAAC;IAEF,OAAO,2CAAK,SAAS,EAAE,6BAA6B,IAAM,KAAK,EAAI,CAAC;AACrE,CAAC,CAAC"}
|
|
@@ -1,10 +1,9 @@
|
|
|
1
1
|
.ProgressTrackerStep {
|
|
2
|
-
color: var(--colorsTextSubdued, #606162);
|
|
3
2
|
display: flex;
|
|
4
|
-
|
|
3
|
+
flex-shrink: 1;
|
|
4
|
+
flex-grow: 0;
|
|
5
5
|
position: relative;
|
|
6
|
-
margin: 0
|
|
7
|
-
padding: 0 8px;
|
|
6
|
+
margin: 0 16px;
|
|
8
7
|
text-decoration: none;
|
|
9
8
|
}
|
|
10
9
|
.ProgressTrackerStep:first-child {
|
|
@@ -21,12 +20,20 @@
|
|
|
21
20
|
box-shadow: 0 0 0 3px var(--colorsFocusRingPrimary, #a9d1ff);
|
|
22
21
|
}
|
|
23
22
|
|
|
23
|
+
.ProgressTrackerStep--small {
|
|
24
|
+
margin: 0 8px;
|
|
25
|
+
}
|
|
26
|
+
|
|
27
|
+
.ProgressTrackerStep--hideLabels {
|
|
28
|
+
margin: 0 8px;
|
|
29
|
+
}
|
|
30
|
+
|
|
24
31
|
/* Children */
|
|
25
32
|
.ProgressTrackerStep__icon {
|
|
26
|
-
|
|
27
|
-
|
|
33
|
+
font-weight: 700;
|
|
34
|
+
width: 24px;
|
|
35
|
+
height: 24px;
|
|
28
36
|
border-radius: 50%;
|
|
29
|
-
background: var(--colorsSurfaceGreyStronger, #bcbcbd);
|
|
30
37
|
color: var(---colorsTextInverted, #ffffff);
|
|
31
38
|
display: flex;
|
|
32
39
|
flex-shrink: 0;
|
|
@@ -34,42 +41,90 @@
|
|
|
34
41
|
align-items: center;
|
|
35
42
|
}
|
|
36
43
|
|
|
37
|
-
.
|
|
44
|
+
.ProgressTrackerStep__simple {
|
|
45
|
+
width: 17px;
|
|
46
|
+
height: 17px;
|
|
47
|
+
border-radius: 50%;
|
|
48
|
+
color: var(---colorsTextInverted, #ffffff);
|
|
49
|
+
display: flex;
|
|
38
50
|
flex-shrink: 0;
|
|
39
|
-
|
|
51
|
+
justify-content: center;
|
|
52
|
+
align-items: center;
|
|
53
|
+
}
|
|
54
|
+
.ProgressTrackerStep--incomplete .ProgressTrackerStep__simple {
|
|
55
|
+
box-shadow: 0 0 0 2px inset var(--colorsStatusDefault, #8c9ca5);
|
|
56
|
+
}
|
|
57
|
+
.ProgressTrackerStep--active .ProgressTrackerStep__simple {
|
|
58
|
+
box-shadow: 0 0 0 2px inset var(--colorsTextPrimary, #1360d9);
|
|
59
|
+
}
|
|
60
|
+
.ProgressTrackerStep--complete .ProgressTrackerStep__simple, .ProgressTrackerStep--editing .ProgressTrackerStep__simple {
|
|
61
|
+
background-color: var(--colorsTextPrimary, #1360d9);
|
|
62
|
+
}
|
|
63
|
+
|
|
64
|
+
.ProgressTrackerStep__label {
|
|
40
65
|
margin-left: 8px;
|
|
41
66
|
}
|
|
42
67
|
|
|
43
|
-
|
|
44
|
-
|
|
68
|
+
.ProgressTrackerStep--medium .ProgressTrackerStep__label {
|
|
69
|
+
margin-top: 3px;
|
|
70
|
+
}
|
|
71
|
+
|
|
72
|
+
.ProgressTrackerStep--clickable {
|
|
45
73
|
cursor: pointer;
|
|
46
|
-
|
|
74
|
+
}
|
|
75
|
+
.ProgressTrackerStep--clickable .ProgressTrackerStep__label {
|
|
76
|
+
color: var(--colorsTextPrimary, #1360d9);
|
|
77
|
+
}
|
|
78
|
+
.ProgressTrackerStep--clickable .ProgressTrackerStep__label:hover, .ProgressTrackerStep--clickable .ProgressTrackerStep__label:focus {
|
|
79
|
+
text-decoration: underline;
|
|
80
|
+
outline: none;
|
|
47
81
|
}
|
|
48
82
|
|
|
49
|
-
.ProgressTrackerStep--
|
|
50
|
-
color: var(--
|
|
83
|
+
.ProgressTrackerStep--incomplete {
|
|
84
|
+
color: var(--colorsTextSubdued, #606162);
|
|
51
85
|
}
|
|
86
|
+
.ProgressTrackerStep--incomplete .ProgressTrackerStep__icon {
|
|
87
|
+
box-shadow: 0 0 0 2px inset var(--colorsStatusDefault, #8c9ca5);
|
|
88
|
+
color: var(--colorsTextSubdued, #606162);
|
|
89
|
+
}
|
|
90
|
+
|
|
52
91
|
.ProgressTrackerStep--complete .ProgressTrackerStep__icon {
|
|
53
|
-
|
|
92
|
+
color: var(--colorsTextPrimary, #1360d9);
|
|
54
93
|
}
|
|
55
94
|
.ProgressTrackerStep--complete .a-Icon {
|
|
56
|
-
font-size:
|
|
95
|
+
font-size: 28px;
|
|
57
96
|
}
|
|
58
97
|
|
|
59
98
|
.ProgressTrackerStep--editing,
|
|
60
99
|
.ProgressTrackerStep--active {
|
|
61
100
|
color: var(--colorsTextDefault, #141414);
|
|
62
101
|
}
|
|
102
|
+
.ProgressTrackerStep--editing .ProgressTrackerStep__label,
|
|
103
|
+
.ProgressTrackerStep--active .ProgressTrackerStep__label {
|
|
104
|
+
font-weight: 700;
|
|
105
|
+
}
|
|
63
106
|
.ProgressTrackerStep--editing .ProgressTrackerStep__icon,
|
|
64
107
|
.ProgressTrackerStep--active .ProgressTrackerStep__icon {
|
|
65
|
-
|
|
108
|
+
box-shadow: 0 0 0 2px inset var(--colorsTextPrimary, #1360d9);
|
|
109
|
+
color: var(--colorsTextPrimary, #1360d9);
|
|
66
110
|
}
|
|
67
111
|
|
|
68
112
|
.ProgressTrackerStep--disabled {
|
|
69
|
-
pointer-events: none
|
|
113
|
+
pointer-events: none;
|
|
70
114
|
}
|
|
71
115
|
.ProgressTrackerStep--disabled, .ProgressTrackerStep--disabled:hover {
|
|
72
116
|
opacity: 0.6;
|
|
73
117
|
}
|
|
118
|
+
.ProgressTracker--disabled .ProgressTrackerStep--disabled {
|
|
119
|
+
opacity: 1;
|
|
120
|
+
}
|
|
121
|
+
|
|
122
|
+
.ProgressTrackerStep__Tooltip {
|
|
123
|
+
display: none;
|
|
124
|
+
}
|
|
125
|
+
|
|
126
|
+
.ProgressTrackerStep__Tooltip--visible {
|
|
127
|
+
display: block;
|
|
128
|
+
}
|
|
74
129
|
|
|
75
130
|
/*# sourceMappingURL=ProgressTrackerStep.css.map */
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sourceRoot":"","sources":["../../../src/components/ProgressTracker/ProgressTrackerStep.scss","../../../node_modules/@servicetitan/tokens/core/tokens.scss"],"names":[],"mappings":"AASA;EACC
|
|
1
|
+
{"version":3,"sourceRoot":"","sources":["../../../src/components/ProgressTracker/ProgressTrackerStep.scss","../../../node_modules/@servicetitan/tokens/core/tokens.scss"],"names":[],"mappings":"AASA;EACC;EACA;EACA;EACA;EACA;EACA;;AAEA;EACC;EACA;;AAGD;EACC;EACA;;AAGD;EACC;EACA;EACA,YC6Fa;;;ADzFf;EACC;;;AAGD;EACC;;;AAGD;AACA;EACC,aCkEkB;EDjElB;EACA;EACA;EACA,OA5Ca;EA6Cb;EACA;EACA;EACA;;;AAGD;EACC;EACA;EACA;EACA,OAvDa;EAwDb;EACA;EACA;EACA;;AAEA;EACC;;AAGD;EACC;;AAGD;EAEC,kBApEc;;;AAwEhB;EACC,aC8CW;;;AD1CX;EACC;;;AAIF;EACC;;AAEA;EACC,OAvFY;;AAyFZ;EAEC;EACA;;;AAKH;EACC,OAtGc;;AAwGd;EACC;EACA,OA1Ga;;;AA+Gd;EAA6B,OA3GhB;;AA4Gb;EAAU;;;AAGX;AAAA;EAEC,OApHa;;AAsHb;AAAA;EACC,aCZiB;;ADelB;AAAA;EACC;EACA,OAzHY;;;AA6Hd;EACC;;AAEA;EAEC,SCtBiB;;ADyBlB;EAA+B;;;AAGhC;EACC;;;AAGD;EACC","file":"ProgressTrackerStep.css"}
|
|
@@ -18,6 +18,9 @@ export interface ProgressTrackerStepPropsStrict {
|
|
|
18
18
|
onClick?: (e: React.SyntheticEvent<HTMLElement>) => void;
|
|
19
19
|
/** The step number. Automatically set when inside <ProgressTracker> */
|
|
20
20
|
stepNumber?: number;
|
|
21
|
+
hideLabels?: boolean;
|
|
22
|
+
/** Size of the Progress Tracker step. Defaults to medium. */
|
|
23
|
+
size?: 'small' | 'medium';
|
|
21
24
|
}
|
|
22
25
|
export interface ProgressTrackerStepProps extends ProgressTrackerStepPropsStrict {
|
|
23
26
|
[propName: string]: any;
|
|
@@ -12,25 +12,47 @@ var __rest = (this && this.__rest) || function (s, e) {
|
|
|
12
12
|
import React from 'react';
|
|
13
13
|
import classnames from 'classnames';
|
|
14
14
|
import { Icon } from '../Icon';
|
|
15
|
+
import { Tooltip } from '../Tooltip';
|
|
16
|
+
import { useScreenSize } from '../../hooks';
|
|
15
17
|
export const ProgressTrackerStep = (_a) => {
|
|
16
|
-
var { active = false, className, completed = false, disabled, editing, label, stepNumber } = _a, props = __rest(_a, ["active", "className", "completed", "disabled", "editing", "label", "stepNumber"]);
|
|
18
|
+
var { active = false, className, completed = false, disabled, editing, href, label, size = 'medium', stepNumber, hideLabels } = _a, props = __rest(_a, ["active", "className", "completed", "disabled", "editing", "href", "label", "size", "stepNumber", "hideLabels"]);
|
|
19
|
+
const screensize = useScreenSize();
|
|
20
|
+
const getStepContent = () => {
|
|
21
|
+
if (size === 'medium')
|
|
22
|
+
return (React.createElement("div", { className: "ProgressTrackerStep__icon" }, getBadge()));
|
|
23
|
+
return React.createElement("div", { className: "ProgressTrackerStep__simple" });
|
|
24
|
+
};
|
|
17
25
|
const getBadge = () => {
|
|
26
|
+
if (size === 'small')
|
|
27
|
+
return;
|
|
18
28
|
if (completed)
|
|
19
|
-
return React.createElement(Icon, { name: "
|
|
29
|
+
return React.createElement(Icon, { name: "check_circle" });
|
|
20
30
|
if (editing)
|
|
21
31
|
return React.createElement(Icon, { name: "edit" });
|
|
22
32
|
return stepNumber;
|
|
23
33
|
};
|
|
34
|
+
const StepElement = href && !disabled ? 'a' : 'div';
|
|
35
|
+
const getLabel = () => {
|
|
36
|
+
if (!label || hideLabels || screensize.smallerThan.tablet)
|
|
37
|
+
return;
|
|
38
|
+
return React.createElement("div", { className: "ProgressTrackerStep__label" }, label);
|
|
39
|
+
};
|
|
40
|
+
const getTooltipLabel = () => {
|
|
41
|
+
if (screensize.smallerThan.tablet || hideLabels)
|
|
42
|
+
return label;
|
|
43
|
+
};
|
|
24
44
|
const ProgressTrackerStepClasses = classnames('ProgressTrackerStep', className, {
|
|
25
45
|
'ProgressTrackerStep--active': active,
|
|
26
46
|
'ProgressTrackerStep--complete': completed,
|
|
27
|
-
'ProgressTrackerStep--
|
|
47
|
+
'ProgressTrackerStep--incomplete': !active && !completed && !editing,
|
|
48
|
+
'ProgressTrackerStep--clickable': href != null || props.onClick != null,
|
|
28
49
|
'ProgressTrackerStep--disabled': disabled,
|
|
29
50
|
'ProgressTrackerStep--editing': editing,
|
|
51
|
+
'ProgressTrackerStep--hideLabels': hideLabels,
|
|
52
|
+
[`ProgressTrackerStep--${size}`]: size,
|
|
30
53
|
});
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
label && React.createElement("div", { className: "ProgressTrackerStep__label" }, label)));
|
|
54
|
+
return (React.createElement(StepElement, Object.assign({ className: ProgressTrackerStepClasses, tabIndex: (props.href || props.onClick) && 0, "data-anvil-component": "ProgressTrackerStep", href: !disabled && href }, props),
|
|
55
|
+
React.createElement(Tooltip, { text: getTooltipLabel(), portal: true, direction: "b", el: "div" }, getStepContent()),
|
|
56
|
+
getLabel()));
|
|
35
57
|
};
|
|
36
58
|
//# sourceMappingURL=ProgressTrackerStep.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ProgressTrackerStep.js","sourceRoot":"","sources":["../../../src/components/ProgressTracker/ProgressTrackerStep.tsx"],"names":[],"mappings":";;;;;;;;;;;AAAA,OAAO,KAAa,MAAM,OAAO,CAAC;AAClC,OAAO,UAAU,MAAM,YAAY,CAAC;AACpC,OAAO,EAAE,IAAI,EAAE,MAAM,SAAS,CAAC;
|
|
1
|
+
{"version":3,"file":"ProgressTrackerStep.js","sourceRoot":"","sources":["../../../src/components/ProgressTracker/ProgressTrackerStep.tsx"],"names":[],"mappings":";;;;;;;;;;;AAAA,OAAO,KAAa,MAAM,OAAO,CAAC;AAClC,OAAO,UAAU,MAAM,YAAY,CAAC;AACpC,OAAO,EAAE,IAAI,EAAE,MAAM,SAAS,CAAC;AAC/B,OAAO,EAAE,OAAO,EAAE,MAAM,YAAY,CAAC;AACrC,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAyC5C,MAAM,CAAC,MAAM,mBAAmB,GAAiC,CAAC,EAYjE,EAAE,EAAE;QAZ6D,EACjE,MAAM,GAAG,KAAK,EACd,SAAS,EACT,SAAS,GAAG,KAAK,EACjB,QAAQ,EACR,OAAO,EACP,IAAI,EACJ,KAAK,EACL,IAAI,GAAG,QAAQ,EACf,UAAU,EACV,UAAU,OAEV,EADG,KAAK,cAXyD,gHAYjE,CADQ;IAER,MAAM,UAAU,GAAG,aAAa,EAAE,CAAC;IAEnC,MAAM,cAAc,GAAG,GAAG,EAAE;QAC3B,IAAI,IAAI,KAAK,QAAQ;YACpB,OAAO,CACN,6BAAK,SAAS,EAAC,2BAA2B,IAAE,QAAQ,EAAE,CAAO,CAC7D,CAAC;QACH,OAAO,6BAAK,SAAS,EAAC,6BAA6B,GAAG,CAAC;IACxD,CAAC,CAAC;IAEF,MAAM,QAAQ,GAAG,GAAG,EAAE;QACrB,IAAI,IAAI,KAAK,OAAO;YAAE,OAAO;QAC7B,IAAI,SAAS;YAAE,OAAO,oBAAC,IAAI,IAAC,IAAI,EAAC,cAAc,GAAG,CAAC;QACnD,IAAI,OAAO;YAAE,OAAO,oBAAC,IAAI,IAAC,IAAI,EAAC,MAAM,GAAG,CAAC;QACzC,OAAO,UAAU,CAAC;IACnB,CAAC,CAAC;IAEF,MAAM,WAAW,GAAG,IAAI,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,KAAK,CAAC;IAEpD,MAAM,QAAQ,GAAG,GAAG,EAAE;QACrB,IAAI,CAAC,KAAK,IAAI,UAAU,IAAI,UAAU,CAAC,WAAW,CAAC,MAAM;YAAE,OAAO;QAClE,OAAO,6BAAK,SAAS,EAAC,4BAA4B,IAAE,KAAK,CAAO,CAAC;IAClE,CAAC,CAAC;IAEF,MAAM,eAAe,GAAG,GAAG,EAAE;QAC5B,IAAI,UAAU,CAAC,WAAW,CAAC,MAAM,IAAI,UAAU;YAAE,OAAO,KAAK,CAAC;IAC/D,CAAC,CAAC;IAEF,MAAM,0BAA0B,GAAG,UAAU,CAC5C,qBAAqB,EACrB,SAAS,EACT;QACC,6BAA6B,EAAE,MAAM;QACrC,+BAA+B,EAAE,SAAS;QAC1C,iCAAiC,EAChC,CAAC,MAAM,IAAI,CAAC,SAAS,IAAI,CAAC,OAAO;QAClC,gCAAgC,EAC/B,IAAI,IAAI,IAAI,IAAI,KAAK,CAAC,OAAO,IAAI,IAAI;QACtC,+BAA+B,EAAE,QAAQ;QACzC,8BAA8B,EAAE,OAAO;QACvC,iCAAiC,EAAE,UAAU;QAC7C,CAAC,wBAAwB,IAAI,EAAE,CAAC,EAAE,IAAI;KACtC,CACD,CAAC;IAEF,OAAO,CACN,oBAAC,WAAW,kBACX,SAAS,EAAE,0BAA0B,EACrC,QAAQ,EAAE,CAAC,KAAK,CAAC,IAAI,IAAI,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,0BACvB,qBAAqB,EAC1C,IAAI,EAAE,CAAC,QAAQ,IAAI,IAAI,IACnB,KAAK;QAET,oBAAC,OAAO,IAAC,IAAI,EAAE,eAAe,EAAE,EAAE,MAAM,QAAC,SAAS,EAAC,GAAG,EAAC,EAAE,EAAC,KAAK,IAC7D,cAAc,EAAE,CACR;QACT,QAAQ,EAAE,CACE,CACd,CAAC;AACH,CAAC,CAAC"}
|