@seeqdev/qomponents 0.0.155-react-19-v8 → 0.0.155-react-19-v10
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/Accordion/Accordion.js +9 -0
- package/dist/Accordion/Accordion.js.map +1 -0
- package/dist/Accordion/Accordion.stories.js +115 -0
- package/dist/Accordion/Accordion.stories.js.map +1 -0
- package/dist/Accordion/Accordion.test.js +55 -0
- package/dist/Accordion/Accordion.test.js.map +1 -0
- package/dist/Accordion/Accordion.types.js +2 -0
- package/dist/Accordion/Accordion.types.js.map +1 -0
- package/dist/Accordion/index.js +2 -0
- package/dist/Accordion/index.js.map +1 -0
- package/dist/Alert/Alert.js +34 -0
- package/dist/Alert/Alert.js.map +1 -0
- package/dist/Alert/Alert.stories.js +52 -0
- package/dist/Alert/Alert.stories.js.map +1 -0
- package/dist/Alert/Alert.test.js +51 -0
- package/dist/Alert/Alert.test.js.map +1 -0
- package/dist/Alert/Alert.types.js +2 -0
- package/dist/Alert/Alert.types.js.map +1 -0
- package/dist/Alert/index.js +2 -0
- package/dist/Alert/index.js.map +1 -0
- package/dist/Button/Button.js +92 -0
- package/dist/Button/Button.js.map +1 -0
- package/dist/Button/Button.stories.js +100 -0
- package/dist/Button/Button.stories.js.map +1 -0
- package/dist/Button/Button.test.js +49 -0
- package/dist/Button/Button.test.js.map +1 -0
- package/dist/Button/Button.types.js +5 -0
- package/dist/Button/Button.types.js.map +1 -0
- package/dist/Button/index.js +2 -0
- package/dist/Button/index.js.map +1 -0
- package/dist/ButtonGroup/ButtonGroup.js +35 -0
- package/dist/ButtonGroup/ButtonGroup.js.map +1 -0
- package/dist/ButtonGroup/ButtonGroup.stories.js +385 -0
- package/dist/ButtonGroup/ButtonGroup.stories.js.map +1 -0
- package/dist/ButtonGroup/ButtonGroup.test.js +67 -0
- package/dist/ButtonGroup/ButtonGroup.test.js.map +1 -0
- package/dist/ButtonGroup/ButtonGroup.types.js +2 -0
- package/dist/ButtonGroup/ButtonGroup.types.js.map +1 -0
- package/dist/ButtonGroup/index.js +2 -0
- package/dist/ButtonGroup/index.js.map +1 -0
- package/dist/ButtonWithDropdown/ButtonWithDropdown.js +60 -0
- package/dist/ButtonWithDropdown/ButtonWithDropdown.js.map +1 -0
- package/dist/ButtonWithDropdown/ButtonWithDropdown.stories.js +143 -0
- package/dist/ButtonWithDropdown/ButtonWithDropdown.stories.js.map +1 -0
- package/dist/ButtonWithDropdown/ButtonWithDropdown.test.js +93 -0
- package/dist/ButtonWithDropdown/ButtonWithDropdown.test.js.map +1 -0
- package/dist/ButtonWithDropdown/ButtonWithDropdown.types.js +2 -0
- package/dist/ButtonWithDropdown/ButtonWithDropdown.types.js.map +1 -0
- package/dist/ButtonWithDropdown/index.js +2 -0
- package/dist/ButtonWithDropdown/index.js.map +1 -0
- package/dist/ButtonWithPopover/ButtonWithPopover.js +62 -0
- package/dist/ButtonWithPopover/ButtonWithPopover.js.map +1 -0
- package/dist/ButtonWithPopover/ButtonWithPopover.stories.js +75 -0
- package/dist/ButtonWithPopover/ButtonWithPopover.stories.js.map +1 -0
- package/dist/ButtonWithPopover/ButtonWithPopover.test.js +82 -0
- package/dist/ButtonWithPopover/ButtonWithPopover.test.js.map +1 -0
- package/dist/ButtonWithPopover/ButtonWithPopover.types.js +2 -0
- package/dist/ButtonWithPopover/ButtonWithPopover.types.js.map +1 -0
- package/dist/ButtonWithPopover/index.js +2 -0
- package/dist/ButtonWithPopover/index.js.map +1 -0
- package/dist/Carousel/Carousel.js +70 -0
- package/dist/Carousel/Carousel.js.map +1 -0
- package/dist/Carousel/Carousel.stories.js +115 -0
- package/dist/Carousel/Carousel.stories.js.map +1 -0
- package/dist/Carousel/Carousel.test.js +48 -0
- package/dist/Carousel/Carousel.test.js.map +1 -0
- package/dist/Carousel/Carousel.types.js +2 -0
- package/dist/Carousel/Carousel.types.js.map +1 -0
- package/dist/Carousel/index.js +2 -0
- package/dist/Carousel/index.js.map +1 -0
- package/dist/Checkbox/Checkbox.js +26 -0
- package/dist/Checkbox/Checkbox.js.map +1 -0
- package/dist/Checkbox/Checkbox.stories.js +34 -0
- package/dist/Checkbox/Checkbox.stories.js.map +1 -0
- package/dist/Checkbox/Checkbox.test.js +94 -0
- package/dist/Checkbox/Checkbox.test.js.map +1 -0
- package/dist/Checkbox/Checkbox.types.js +2 -0
- package/dist/Checkbox/Checkbox.types.js.map +1 -0
- package/dist/Checkbox/index.js +2 -0
- package/dist/Checkbox/index.js.map +1 -0
- package/dist/Collapse/Collapse.js +15 -0
- package/dist/Collapse/Collapse.js.map +1 -0
- package/dist/Collapse/Collapse.stories.js +37 -0
- package/dist/Collapse/Collapse.stories.js.map +1 -0
- package/dist/Collapse/Collapse.test.js +19 -0
- package/dist/Collapse/Collapse.test.js.map +1 -0
- package/dist/Collapse/Collapse.types.js +2 -0
- package/dist/Collapse/Collapse.types.js.map +1 -0
- package/dist/Collapse/index.js +2 -0
- package/dist/Collapse/index.js.map +1 -0
- package/dist/Icon/Icon.js +55 -0
- package/dist/Icon/Icon.js.map +1 -0
- package/dist/Icon/Icon.stories.js +49 -0
- package/dist/Icon/Icon.stories.js.map +1 -0
- package/dist/Icon/Icon.test.js +55 -0
- package/dist/Icon/Icon.test.js.map +1 -0
- package/dist/Icon/Icon.types.js +16 -0
- package/dist/Icon/Icon.types.js.map +1 -0
- package/dist/Icon/index.js +2 -0
- package/dist/Icon/index.js.map +1 -0
- package/dist/InputGroup/InputGroup.js +35 -0
- package/dist/InputGroup/InputGroup.js.map +1 -0
- package/dist/InputGroup/InputGroup.stories.js +176 -0
- package/dist/InputGroup/InputGroup.stories.js.map +1 -0
- package/dist/InputGroup/InputGroup.test.js +43 -0
- package/dist/InputGroup/InputGroup.test.js.map +1 -0
- package/dist/InputGroup/InputGroup.types.js +2 -0
- package/dist/InputGroup/InputGroup.types.js.map +1 -0
- package/dist/InputGroup/index.js +2 -0
- package/dist/InputGroup/index.js.map +1 -0
- package/dist/Modal/Modal.js +102 -0
- package/dist/Modal/Modal.js.map +1 -0
- package/dist/Modal/Modal.stories.js +127 -0
- package/dist/Modal/Modal.stories.js.map +1 -0
- package/dist/Modal/Modal.test.js +108 -0
- package/dist/Modal/Modal.test.js.map +1 -0
- package/dist/Modal/Modal.types.js +2 -0
- package/dist/Modal/Modal.types.js.map +1 -0
- package/dist/Modal/index.js +2 -0
- package/dist/Modal/index.js.map +1 -0
- package/dist/ProgressBar/ProgressBar.js +70 -0
- package/dist/ProgressBar/ProgressBar.js.map +1 -0
- package/dist/ProgressBar/ProgressBar.stories.js +83 -0
- package/dist/ProgressBar/ProgressBar.stories.js.map +1 -0
- package/dist/ProgressBar/ProgressBar.test.js +44 -0
- package/dist/ProgressBar/ProgressBar.test.js.map +1 -0
- package/dist/ProgressBar/ProgressBar.types.js +2 -0
- package/dist/ProgressBar/ProgressBar.types.js.map +1 -0
- package/dist/ProgressBar/index.js +2 -0
- package/dist/ProgressBar/index.js.map +1 -0
- package/dist/SeeqActionDropdown/SeeqActionDropdown.js +48 -0
- package/dist/SeeqActionDropdown/SeeqActionDropdown.js.map +1 -0
- package/dist/SeeqActionDropdown/SeeqActionDropdown.stories.js +87 -0
- package/dist/SeeqActionDropdown/SeeqActionDropdown.stories.js.map +1 -0
- package/dist/SeeqActionDropdown/SeeqActionDropdown.test.js +73 -0
- package/dist/SeeqActionDropdown/SeeqActionDropdown.test.js.map +1 -0
- package/dist/SeeqActionDropdown/SeeqActionDropdown.types.js +2 -0
- package/dist/SeeqActionDropdown/SeeqActionDropdown.types.js.map +1 -0
- package/dist/SeeqActionDropdown/index.js +2 -0
- package/dist/SeeqActionDropdown/index.js.map +1 -0
- package/dist/SeeqActionDropdown/variants.js +38 -0
- package/dist/SeeqActionDropdown/variants.js.map +1 -0
- package/dist/Select/Select.js +177 -0
- package/dist/Select/Select.js.map +1 -0
- package/dist/Select/Select.stories.js +82 -0
- package/dist/Select/Select.stories.js.map +1 -0
- package/dist/Select/Select.test.js +182 -0
- package/dist/Select/Select.test.js.map +1 -0
- package/dist/Select/Select.types.js +2 -0
- package/dist/Select/Select.types.js.map +1 -0
- package/dist/Select/index.js +3 -0
- package/dist/Select/index.js.map +1 -0
- package/dist/Slider/Slider.js +13 -0
- package/dist/Slider/Slider.js.map +1 -0
- package/dist/Slider/Slider.stories.js +58 -0
- package/dist/Slider/Slider.stories.js.map +1 -0
- package/dist/Slider/Slider.test.js +33 -0
- package/dist/Slider/Slider.test.js.map +1 -0
- package/dist/Slider/Slider.types.js +2 -0
- package/dist/Slider/Slider.types.js.map +1 -0
- package/dist/Slider/index.js +2 -0
- package/dist/Slider/index.js.map +1 -0
- package/dist/SvgIcon/SvgIcon.js +30 -0
- package/dist/SvgIcon/SvgIcon.js.map +1 -0
- package/dist/SvgIcon/SvgIcon.stories.js +42 -0
- package/dist/SvgIcon/SvgIcon.stories.js.map +1 -0
- package/dist/SvgIcon/SvgIcon.test.js +41 -0
- package/dist/SvgIcon/SvgIcon.test.js.map +1 -0
- package/dist/SvgIcon/SvgIcon.types.js +6 -0
- package/dist/SvgIcon/SvgIcon.types.js.map +1 -0
- package/dist/SvgIcon/index.js +2 -0
- package/dist/SvgIcon/index.js.map +1 -0
- package/dist/Tabs/Tabs.js +22 -0
- package/dist/Tabs/Tabs.js.map +1 -0
- package/dist/Tabs/Tabs.stories.js +91 -0
- package/dist/Tabs/Tabs.stories.js.map +1 -0
- package/dist/Tabs/Tabs.test.js +91 -0
- package/dist/Tabs/Tabs.test.js.map +1 -0
- package/dist/Tabs/Tabs.types.js +2 -0
- package/dist/Tabs/Tabs.types.js.map +1 -0
- package/dist/Tabs/index.js +2 -0
- package/dist/Tabs/index.js.map +1 -0
- package/dist/TextArea/TextArea.js +25 -0
- package/dist/TextArea/TextArea.js.map +1 -0
- package/dist/TextArea/TextArea.stories.js +46 -0
- package/dist/TextArea/TextArea.stories.js.map +1 -0
- package/dist/TextArea/TextArea.test.js +68 -0
- package/dist/TextArea/TextArea.test.js.map +1 -0
- package/dist/TextArea/TextArea.types.js +2 -0
- package/dist/TextArea/TextArea.types.js.map +1 -0
- package/dist/TextArea/index.js +2 -0
- package/dist/TextArea/index.js.map +1 -0
- package/dist/TextField/TextField.js +86 -0
- package/dist/TextField/TextField.js.map +1 -0
- package/dist/TextField/TextField.stories.js +70 -0
- package/dist/TextField/TextField.stories.js.map +1 -0
- package/dist/TextField/TextField.test.js +41 -0
- package/dist/TextField/TextField.test.js.map +1 -0
- package/dist/TextField/TextField.types.js +2 -0
- package/dist/TextField/TextField.types.js.map +1 -0
- package/dist/TextField/index.js +2 -0
- package/dist/TextField/index.js.map +1 -0
- package/dist/ToolbarButton/ToolbarButton.js +69 -0
- package/dist/ToolbarButton/ToolbarButton.js.map +1 -0
- package/dist/ToolbarButton/ToolbarButton.stories.js +97 -0
- package/dist/ToolbarButton/ToolbarButton.stories.js.map +1 -0
- package/dist/ToolbarButton/ToolbarButton.test.js +93 -0
- package/dist/ToolbarButton/ToolbarButton.test.js.map +1 -0
- package/dist/ToolbarButton/ToolbarButton.types.js +2 -0
- package/dist/ToolbarButton/ToolbarButton.types.js.map +1 -0
- package/dist/ToolbarButton/index.js +2 -0
- package/dist/ToolbarButton/index.js.map +1 -0
- package/dist/Tooltip/QTip.stories.js +45 -0
- package/dist/Tooltip/QTip.stories.js.map +1 -0
- package/dist/Tooltip/QTip.types.js +2 -0
- package/dist/Tooltip/QTip.types.js.map +1 -0
- package/dist/Tooltip/QTipPerformance.stories.js +30 -0
- package/dist/Tooltip/QTipPerformance.stories.js.map +1 -0
- package/dist/Tooltip/Qtip.js +170 -0
- package/dist/Tooltip/Qtip.js.map +1 -0
- package/dist/Tooltip/Tooltip.js +36 -0
- package/dist/Tooltip/Tooltip.js.map +1 -0
- package/dist/Tooltip/Tooltip.stories.js +32 -0
- package/dist/Tooltip/Tooltip.stories.js.map +1 -0
- package/dist/Tooltip/Tooltip.types.js +3 -0
- package/dist/Tooltip/Tooltip.types.js.map +1 -0
- package/dist/Tooltip/TooltipPerformance.stories.js +30 -0
- package/dist/Tooltip/TooltipPerformance.stories.js.map +1 -0
- package/dist/Tooltip/index.js +3 -0
- package/dist/Tooltip/index.js.map +1 -0
- package/dist/Tooltip/qTip.utilities.js +11 -0
- package/dist/Tooltip/qTip.utilities.js.map +1 -0
- package/dist/index.esm.js +4 -2
- package/dist/index.esm.js.map +1 -1
- package/dist/index.js +4 -2
- package/dist/index.js.map +1 -1
- package/dist/types.js +2 -0
- package/dist/types.js.map +1 -0
- package/dist/utils/browserId.js +29 -0
- package/dist/utils/browserId.js.map +1 -0
- package/dist/utils/svg.js +20 -0
- package/dist/utils/svg.js.map +1 -0
- package/dist/utils/validateStyleDimension.js +14 -0
- package/dist/utils/validateStyleDimension.js.map +1 -0
- package/dist/utils/validateStyleDimension.test.js +20 -0
- package/dist/utils/validateStyleDimension.test.js.map +1 -0
- package/package.json +1 -1
|
@@ -0,0 +1,102 @@
|
|
|
1
|
+
import React, { useEffect, useState } from 'react';
|
|
2
|
+
import * as DialogPrimitive from '@radix-ui/react-dialog';
|
|
3
|
+
import classNames from 'classnames';
|
|
4
|
+
import '../styles.css';
|
|
5
|
+
import Button from '../Button';
|
|
6
|
+
import Icon from '../Icon';
|
|
7
|
+
import TextField from '../TextField';
|
|
8
|
+
const Dialog = DialogPrimitive.Root;
|
|
9
|
+
const DialogPortal = DialogPrimitive.Portal;
|
|
10
|
+
const DialogClose = DialogPrimitive.Close;
|
|
11
|
+
const DialogContent = React.forwardRef(({ className, children, ...props }, ref) => (React.createElement(DialogPortal, null,
|
|
12
|
+
React.createElement("div", { className: "tw-select-none tw-fixed tw-w-full tw-h-full tw-opacity-50 tw-inset-0 tw-z-[1009] tw-bg-sq-dark-background\n data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0\n data-[state=open]:fade-in-0 " }),
|
|
13
|
+
React.createElement(DialogPrimitive.Content, { ref: ref, className: `tw-fixed tw-left-[50%] tw-top-0 tw-my-6 tw-translate-x-[-50%] tw-z-[1010] tw-grid
|
|
14
|
+
tw-gap-4 tw-border tw-bg-sq-white dark:tw-bg-sq-dark-background tw-p-6 tw-shadow-lg tw-duration-200
|
|
15
|
+
tw-rounded-lg ${className}`, ...props },
|
|
16
|
+
React.createElement(DialogPrimitive.DialogTitle, { className: "tw-hidden" }),
|
|
17
|
+
children))));
|
|
18
|
+
DialogContent.displayName = DialogPrimitive.Content.displayName;
|
|
19
|
+
const DialogHeader = (props) => (React.createElement("div", { className: "tw-w-full tw-justify-between" },
|
|
20
|
+
React.createElement("div", { ...props })));
|
|
21
|
+
DialogHeader.displayName = 'DialogHeader';
|
|
22
|
+
const DialogFooter = (props) => React.createElement("div", { ...props });
|
|
23
|
+
DialogFooter.displayName = 'DialogFooter';
|
|
24
|
+
const DialogTitle = React.forwardRef((props, ref) => React.createElement(DialogPrimitive.Title, { ref: ref, ...props }));
|
|
25
|
+
DialogTitle.displayName = DialogPrimitive.Title.displayName;
|
|
26
|
+
const DialogDescription = React.forwardRef((props, ref) => React.createElement(DialogPrimitive.Description, { ref: ref, ...props }));
|
|
27
|
+
DialogDescription.displayName = DialogPrimitive.Description.displayName;
|
|
28
|
+
const Modal = ({ titleIcon, title = 'Modal title example', titleSuffixLabel, subtitle, children, open = false, onClose, customButton = false, customButtonLabel = 'Back', onClickCustomButton, submitButtonLabel = 'Submit', cancelButtonLabel = 'Cancel', disableSubmitButton = false, stopPropagationSubmitButton = false, onSubmit, isTitleEditable = false, onTitleChanged, inputExtraClassNames, hideCloseIcon = false, size = 'xl', titleIconPosition = 'left', hideFooterButtons = false, hideSubmitButton = false, hideCancelButton = false, testId = 'modal', modalFooter, dialogClassName, titlePlaceholder, titleRequired, titleError, submitButtonTooltip, cancelButtonTooltip, disableCustomButton, customHeader, middleFooterSection = React.createElement(React.Fragment, null), customButtonVariant = 'outline', submitButtonVariant = 'theme', keepFocusInsideModal = true, onPointerDownOutside, onInteractOutside, }) => {
|
|
29
|
+
const [isLoading, setIsLoading] = useState(false);
|
|
30
|
+
// the Dialog is adding pointerEvents: none to body and the dropdowns from the modal does not work anymore
|
|
31
|
+
useEffect(() => {
|
|
32
|
+
if (open) {
|
|
33
|
+
// Pushing the change to the end of the call stack
|
|
34
|
+
const timer = setTimeout(() => {
|
|
35
|
+
document.body.style.pointerEvents = '';
|
|
36
|
+
}, 0);
|
|
37
|
+
return () => clearTimeout(timer);
|
|
38
|
+
}
|
|
39
|
+
else {
|
|
40
|
+
document.body.style.pointerEvents = 'auto';
|
|
41
|
+
}
|
|
42
|
+
}, [open]);
|
|
43
|
+
const handleSubmit = async (e) => {
|
|
44
|
+
if (!onSubmit)
|
|
45
|
+
return;
|
|
46
|
+
try {
|
|
47
|
+
setIsLoading(true);
|
|
48
|
+
await onSubmit(e);
|
|
49
|
+
}
|
|
50
|
+
finally {
|
|
51
|
+
setIsLoading(false);
|
|
52
|
+
}
|
|
53
|
+
};
|
|
54
|
+
const renderTitle = () => {
|
|
55
|
+
let titleIconElement = React.createElement(React.Fragment, null);
|
|
56
|
+
if (titleIcon) {
|
|
57
|
+
if (typeof titleIcon === 'string') {
|
|
58
|
+
titleIconElement = (React.createElement(Icon, { icon: titleIcon, testId: "modalTitleIcon", extraClassNames: "tw-flex tw-text-xl tw-mt-1" }));
|
|
59
|
+
}
|
|
60
|
+
else {
|
|
61
|
+
titleIconElement = React.createElement("div", { className: "tw-mt-1.5" }, titleIcon);
|
|
62
|
+
}
|
|
63
|
+
}
|
|
64
|
+
return (React.createElement(React.Fragment, null,
|
|
65
|
+
titleIcon && titleIconPosition === 'left' ? React.createElement("div", { className: "tw-flex tw-mr-2" }, titleIconElement) : React.createElement(React.Fragment, null),
|
|
66
|
+
React.createElement(DialogTitle, { asChild: true }, isTitleEditable ? (React.createElement("div", { className: "tw-flex tw-w-full tw-items-center" },
|
|
67
|
+
React.createElement(TextField, { extraClassNames: inputExtraClassNames, value: title, type: "text", testId: "modalTitle", onChange: onTitleChanged, placeholder: titlePlaceholder, required: titleRequired, showError: !!titleError }),
|
|
68
|
+
titleError && React.createElement("p", { className: "tw-text-sq-danger-color tw-min-w-fit tw-pl-2 tw-mb-0" }, titleError))) : (customHeader ?? (React.createElement("div", { "data-testid": "modalTitle", className: "modal-title" },
|
|
69
|
+
React.createElement("div", { className: "tw-flex tw-items-center" },
|
|
70
|
+
React.createElement("h3", null, title),
|
|
71
|
+
titleSuffixLabel && React.createElement("span", { className: "tw-text-xl tw-pl-0.5" }, titleSuffixLabel)),
|
|
72
|
+
subtitle && (React.createElement("div", { className: "tw-italic tw-text-sm tw-text-left tw-mt-1", "data-testid": "modal-subtitle" }, subtitle)))))),
|
|
73
|
+
titleIcon && titleIconPosition === 'right' ? React.createElement("div", { className: "tw-flex tw-ml-4" }, titleIconElement) : React.createElement(React.Fragment, null)));
|
|
74
|
+
};
|
|
75
|
+
return open ? (React.createElement(Dialog, { open: true, onOpenChange: onClose, modal: keepFocusInsideModal },
|
|
76
|
+
React.createElement(DialogContent, { onPointerDownOutside: (e) => (onPointerDownOutside ? onPointerDownOutside(e) : e.preventDefault()), onInteractOutside: (e) => (onInteractOutside ? onInteractOutside(e) : e.preventDefault()), "data-testid": testId, className: classNames(`modalContent tw-w-full !tw-p-0 tw-border-none tw-shadow-none dark:tw-text-sq-dark-text !tw-gap-0`, {
|
|
77
|
+
'tw-max-w-xs': size === 'xs',
|
|
78
|
+
'tw-max-w-sm': size === 'sm',
|
|
79
|
+
'tw-max-w-md': size === 'md',
|
|
80
|
+
'tw-max-w-lg': size === 'lg',
|
|
81
|
+
'tw-max-w-xl': size === 'xl',
|
|
82
|
+
'tw-max-w-2xl': size === '2xl',
|
|
83
|
+
'tw-max-w-3xl': size === '3xl',
|
|
84
|
+
'tw-max-w-4xl': size === '4xl',
|
|
85
|
+
'tw-max-w-5xl': size === '5xl',
|
|
86
|
+
'tw-max-w-6xl': size === '6xl',
|
|
87
|
+
}, dialogClassName) },
|
|
88
|
+
React.createElement(DialogHeader, { className: "modal-header tw-flex tw-w-full tw-justify-between tw-border-sq-disabled-gray\n dark:tw-border-sq-dark-disabled-gray tw-border-0 tw-border-b tw-px-6 tw-py-4" },
|
|
89
|
+
React.createElement("div", { className: "tw-flex tw-w-full" }, renderTitle()),
|
|
90
|
+
!hideCloseIcon && (React.createElement(DialogClose, { autoFocus: false, className: "[&:has(:focus-visible)]:none tw-opacity-70 tw-bg-transparent hover:tw-opacity-100 close tw-cursor-pointer tw-ml-4", "data-testid": "closeButton" },
|
|
91
|
+
React.createElement("span", { className: "tw-cursor-pointer" }, "\u00D7")))),
|
|
92
|
+
React.createElement(DialogDescription, { className: "modal-body tw-px-6 tw-py-4 tw-overflow-y-auto", asChild: true }, children),
|
|
93
|
+
!hideFooterButtons && (React.createElement(DialogFooter, { className: "modal-footer tw-px-6 tw-py-4" }, modalFooter ?? (React.createElement("div", { className: "tw-flex tw-w-full tw-justify-between", "data-testid": "modalFooter" },
|
|
94
|
+
React.createElement("div", { className: "tw-flex tw-justify-start" }, customButton && (React.createElement(Button, { label: customButtonLabel, onClick: onClickCustomButton, disabled: disableCustomButton, extraClassNames: "tw-justify-start tw-min-w-[100px]", testId: "customButton", variant: customButtonVariant }))),
|
|
95
|
+
React.createElement("div", { className: "tw-flex tw-justify-end" },
|
|
96
|
+
React.createElement("div", { className: "tw-flex tw-items-center" }, middleFooterSection),
|
|
97
|
+
!hideCancelButton && (React.createElement(DialogClose, { asChild: true },
|
|
98
|
+
React.createElement(Button, { label: cancelButtonLabel, extraClassNames: "tw-mr-5 tw-min-w-[100px]", tooltip: cancelButtonTooltip, variant: "outline", stopPropagation: false, testId: "cancelButton" }))),
|
|
99
|
+
!hideSubmitButton && (React.createElement(Button, { label: submitButtonLabel, onClick: handleSubmit, disabled: disableSubmitButton || isLoading, variant: submitButtonVariant, stopPropagation: stopPropagationSubmitButton, tooltip: submitButtonTooltip, icon: isLoading ? 'fc-loading-notch tw-animate-spin' : undefined, iconPosition: "left", testId: "submitButton", extraClassNames: "tw-min-w-[100px]" })))))))))) : (React.createElement(React.Fragment, null));
|
|
100
|
+
};
|
|
101
|
+
export default Modal;
|
|
102
|
+
//# sourceMappingURL=Modal.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Modal.js","sourceRoot":"","sources":["../../src/Modal/Modal.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,EAAE,SAAS,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAC;AACnD,OAAO,KAAK,eAAe,MAAM,wBAAwB,CAAC;AAC1D,OAAO,UAAU,MAAM,YAAY,CAAC;AACpC,OAAO,eAAe,CAAC;AAEvB,OAAO,MAAM,MAAM,WAAW,CAAC;AAC/B,OAAO,IAAI,MAAM,SAAS,CAAC;AAC3B,OAAO,SAAS,MAAM,cAAc,CAAC;AAErC,MAAM,MAAM,GAAG,eAAe,CAAC,IAAI,CAAC;AAEpC,MAAM,YAAY,GAAG,eAAe,CAAC,MAAM,CAAC;AAE5C,MAAM,WAAW,GAAG,eAAe,CAAC,KAAK,CAAC;AAE1C,MAAM,aAAa,GAAG,KAAK,CAAC,UAAU,CAGpC,CAAC,EAAE,SAAS,EAAE,QAAQ,EAAE,GAAG,KAAK,EAAE,EAAE,GAAG,EAAE,EAAE,CAAC,CAC5C,oBAAC,YAAY;IAIX,6BACE,SAAS,EAAC,8OAEiB,GAC3B;IACF,oBAAC,eAAe,CAAC,OAAO,IACtB,GAAG,EAAE,GAAG,EACR,SAAS,EAAE;;uBAEM,SAAS,EAAE,KACxB,KAAK;QACT,oBAAC,eAAe,CAAC,WAAW,IAAC,SAAS,EAAC,WAAW,GAA+B;QAChF,QAAQ,CACe,CACb,CAChB,CAAC,CAAC;AACH,aAAa,CAAC,WAAW,GAAG,eAAe,CAAC,OAAO,CAAC,WAAW,CAAC;AAEhE,MAAM,YAAY,GAAG,CAAC,KAA2C,EAAE,EAAE,CAAC,CACpE,6BAAK,SAAS,EAAC,8BAA8B;IAC3C,gCAAS,KAAK,GAAI,CACd,CACP,CAAC;AACF,YAAY,CAAC,WAAW,GAAG,cAAc,CAAC;AAE1C,MAAM,YAAY,GAAG,CAAC,KAA2C,EAAE,EAAE,CAAC,gCAAS,KAAK,GAAI,CAAC;AACzF,YAAY,CAAC,WAAW,GAAG,cAAc,CAAC;AAE1C,MAAM,WAAW,GAAG,KAAK,CAAC,UAAU,CAGlC,CAAC,KAAK,EAAE,GAAG,EAAE,EAAE,CAAC,oBAAC,eAAe,CAAC,KAAK,IAAC,GAAG,EAAE,GAAG,KAAM,KAAK,GAAI,CAAC,CAAC;AAClE,WAAW,CAAC,WAAW,GAAG,eAAe,CAAC,KAAK,CAAC,WAAW,CAAC;AAE5D,MAAM,iBAAiB,GAAG,KAAK,CAAC,UAAU,CAGxC,CAAC,KAAK,EAAE,GAAG,EAAE,EAAE,CAAC,oBAAC,eAAe,CAAC,WAAW,IAAC,GAAG,EAAE,GAAG,KAAM,KAAK,GAAI,CAAC,CAAC;AACxE,iBAAiB,CAAC,WAAW,GAAG,eAAe,CAAC,WAAW,CAAC,WAAW,CAAC;AAExE,MAAM,KAAK,GAAwC,CAAC,EAClD,SAAS,EACT,KAAK,GAAG,qBAAqB,EAC7B,gBAAgB,EAChB,QAAQ,EACR,QAAQ,EACR,IAAI,GAAG,KAAK,EACZ,OAAO,EACP,YAAY,GAAG,KAAK,EACpB,iBAAiB,GAAG,MAAM,EAC1B,mBAAmB,EACnB,iBAAiB,GAAG,QAAQ,EAC5B,iBAAiB,GAAG,QAAQ,EAC5B,mBAAmB,GAAG,KAAK,EAC3B,2BAA2B,GAAG,KAAK,EACnC,QAAQ,EACR,eAAe,GAAG,KAAK,EACvB,cAAc,EACd,oBAAoB,EACpB,aAAa,GAAG,KAAK,EACrB,IAAI,GAAG,IAAI,EACX,iBAAiB,GAAG,MAAM,EAC1B,iBAAiB,GAAG,KAAK,EACzB,gBAAgB,GAAG,KAAK,EACxB,gBAAgB,GAAG,KAAK,EACxB,MAAM,GAAG,OAAO,EAChB,WAAW,EACX,eAAe,EACf,gBAAgB,EAChB,aAAa,EACb,UAAU,EACV,mBAAmB,EACnB,mBAAmB,EACnB,mBAAmB,EACnB,YAAY,EACZ,mBAAmB,GAAG,yCAAK,EAC3B,mBAAmB,GAAG,SAAS,EAC/B,mBAAmB,GAAG,OAAO,EAC7B,oBAAoB,GAAG,IAAI,EAC3B,oBAAoB,EACpB,iBAAiB,GAClB,EAAE,EAAE;IACH,MAAM,CAAC,SAAS,EAAE,YAAY,CAAC,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC;IAClD,0GAA0G;IAC1G,SAAS,CAAC,GAAG,EAAE;QACb,IAAI,IAAI,EAAE;YACR,kDAAkD;YAClD,MAAM,KAAK,GAAG,UAAU,CAAC,GAAG,EAAE;gBAC5B,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,aAAa,GAAG,EAAE,CAAC;YACzC,CAAC,EAAE,CAAC,CAAC,CAAC;YAEN,OAAO,GAAG,EAAE,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC;SAClC;aAAM;YACL,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,aAAa,GAAG,MAAM,CAAC;SAC5C;IACH,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC;IAEX,MAAM,YAAY,GAAG,KAAK,EAAE,CAAmB,EAAE,EAAE;QACjD,IAAI,CAAC,QAAQ;YAAE,OAAO;QACtB,IAAI;YACF,YAAY,CAAC,IAAI,CAAC,CAAC;YACnB,MAAM,QAAQ,CAAC,CAAC,CAAC,CAAC;SACnB;gBAAS;YACR,YAAY,CAAC,KAAK,CAAC,CAAC;SACrB;IACH,CAAC,CAAC;IAEF,MAAM,WAAW,GAAG,GAAG,EAAE;QACvB,IAAI,gBAAgB,GAAG,yCAAK,CAAC;QAE7B,IAAI,SAAS,EAAE;YACb,IAAI,OAAO,SAAS,KAAK,QAAQ,EAAE;gBACjC,gBAAgB,GAAG,CACjB,oBAAC,IAAI,IAAC,IAAI,EAAE,SAAS,EAAE,MAAM,EAAC,gBAAgB,EAAC,eAAe,EAAC,4BAA4B,GAAG,CAC/F,CAAC;aACH;iBAAM;gBACL,gBAAgB,GAAG,6BAAK,SAAS,EAAC,WAAW,IAAE,SAAS,CAAO,CAAC;aACjE;SACF;QAED,OAAO,CACL;YACG,SAAS,IAAI,iBAAiB,KAAK,MAAM,CAAC,CAAC,CAAC,6BAAK,SAAS,EAAC,iBAAiB,IAAE,gBAAgB,CAAO,CAAC,CAAC,CAAC,yCAAK;YAC9G,oBAAC,WAAW,IAAC,OAAO,UACjB,eAAe,CAAC,CAAC,CAAC,CACjB,6BAAK,SAAS,EAAC,mCAAmC;gBAChD,oBAAC,SAAS,IACR,eAAe,EAAE,oBAAoB,EACrC,KAAK,EAAE,KAAK,EACZ,IAAI,EAAC,MAAM,EACX,MAAM,EAAC,YAAY,EACnB,QAAQ,EAAE,cAAc,EACxB,WAAW,EAAE,gBAAgB,EAC7B,QAAQ,EAAE,aAAa,EACvB,SAAS,EAAE,CAAC,CAAC,UAAU,GACvB;gBACD,UAAU,IAAI,2BAAG,SAAS,EAAC,sDAAsD,IAAE,UAAU,CAAK,CAC/F,CACP,CAAC,CAAC,CAAC,CACF,YAAY,IAAI,CACd,4CAAiB,YAAY,EAAC,SAAS,EAAC,aAAa;gBACnD,6BAAK,SAAS,EAAC,yBAAyB;oBACtC,gCAAK,KAAK,CAAM;oBACf,gBAAgB,IAAI,8BAAM,SAAS,EAAC,sBAAsB,IAAE,gBAAgB,CAAQ,CACjF;gBACL,QAAQ,IAAI,CACX,6BAAK,SAAS,EAAC,2CAA2C,iBAAa,gBAAgB,IACpF,QAAQ,CACL,CACP,CACG,CACP,CACF,CACW;YACb,SAAS,IAAI,iBAAiB,KAAK,OAAO,CAAC,CAAC,CAAC,6BAAK,SAAS,EAAC,iBAAiB,IAAE,gBAAgB,CAAO,CAAC,CAAC,CAAC,yCAAK,CAC9G,CACJ,CAAC;IACJ,CAAC,CAAC;IAEF,OAAO,IAAI,CAAC,CAAC,CAAC,CACZ,oBAAC,MAAM,IAAC,IAAI,EAAE,IAAI,EAAE,YAAY,EAAE,OAAO,EAAE,KAAK,EAAE,oBAAoB;QACpE,oBAAC,aAAa,IACZ,oBAAoB,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,oBAAoB,CAAC,CAAC,CAAC,oBAAoB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,cAAc,EAAE,CAAC,EAClG,iBAAiB,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,iBAAiB,CAAC,CAAC,CAAC,iBAAiB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,cAAc,EAAE,CAAC,iBAC5E,MAAM,EACnB,SAAS,EAAE,UAAU,CACnB,kGAAkG,EAClG;gBACE,aAAa,EAAE,IAAI,KAAK,IAAI;gBAC5B,aAAa,EAAE,IAAI,KAAK,IAAI;gBAC5B,aAAa,EAAE,IAAI,KAAK,IAAI;gBAC5B,aAAa,EAAE,IAAI,KAAK,IAAI;gBAC5B,aAAa,EAAE,IAAI,KAAK,IAAI;gBAC5B,cAAc,EAAE,IAAI,KAAK,KAAK;gBAC9B,cAAc,EAAE,IAAI,KAAK,KAAK;gBAC9B,cAAc,EAAE,IAAI,KAAK,KAAK;gBAC9B,cAAc,EAAE,IAAI,KAAK,KAAK;gBAC9B,cAAc,EAAE,IAAI,KAAK,KAAK;aAC/B,EACD,eAAe,CAChB;YACD,oBAAC,YAAY,IACX,SAAS,EAAC,sKACmE;gBAC7E,6BAAK,SAAS,EAAC,mBAAmB,IAAE,WAAW,EAAE,CAAO;gBACvD,CAAC,aAAa,IAAI,CACjB,oBAAC,WAAW,IACV,SAAS,EAAE,KAAK,EAChB,SAAS,EAAC,oHAAoH,iBAClH,aAAa;oBACzB,8BAAM,SAAS,EAAC,mBAAmB,aAAS,CAChC,CACf,CACY;YACf,oBAAC,iBAAiB,IAAC,SAAS,EAAC,+CAA+C,EAAC,OAAO,UACjF,QAAQ,CACS;YACnB,CAAC,iBAAiB,IAAI,CACrB,oBAAC,YAAY,IAAC,SAAS,EAAC,8BAA8B,IACnD,WAAW,IAAI,CACd,6BAAK,SAAS,EAAC,sCAAsC,iBAAa,aAAa;gBAC7E,6BAAK,SAAS,EAAC,0BAA0B,IACtC,YAAY,IAAI,CACf,oBAAC,MAAM,IACL,KAAK,EAAE,iBAAiB,EACxB,OAAO,EAAE,mBAAmB,EAC5B,QAAQ,EAAE,mBAAmB,EAC7B,eAAe,EAAC,mCAAmC,EACnD,MAAM,EAAC,cAAc,EACrB,OAAO,EAAE,mBAAmB,GAC5B,CACH,CACG;gBACN,6BAAK,SAAS,EAAC,wBAAwB;oBACrC,6BAAK,SAAS,EAAC,yBAAyB,IAAE,mBAAmB,CAAO;oBACnE,CAAC,gBAAgB,IAAI,CACpB,oBAAC,WAAW,IAAC,OAAO;wBAClB,oBAAC,MAAM,IACL,KAAK,EAAE,iBAAiB,EACxB,eAAe,EAAC,0BAA0B,EAC1C,OAAO,EAAE,mBAAmB,EAC5B,OAAO,EAAC,SAAS,EACjB,eAAe,EAAE,KAAK,EACtB,MAAM,EAAC,cAAc,GACrB,CACU,CACf;oBACA,CAAC,gBAAgB,IAAI,CACpB,oBAAC,MAAM,IACL,KAAK,EAAE,iBAAiB,EACxB,OAAO,EAAE,YAAY,EACrB,QAAQ,EAAE,mBAAmB,IAAI,SAAS,EAC1C,OAAO,EAAE,mBAAmB,EAC5B,eAAe,EAAE,2BAA2B,EAC5C,OAAO,EAAE,mBAAmB,EAC5B,IAAI,EAAE,SAAS,CAAC,CAAC,CAAC,kCAAkC,CAAC,CAAC,CAAC,SAAS,EAChE,YAAY,EAAC,MAAM,EACnB,MAAM,EAAC,cAAc,EACrB,eAAe,EAAC,kBAAkB,GAClC,CACH,CACG,CACF,CACP,CACY,CAChB,CACa,CACT,CACV,CAAC,CAAC,CAAC,CACF,yCAAK,CACN,CAAC;AACJ,CAAC,CAAC;AAEF,eAAe,KAAK,CAAC"}
|
|
@@ -0,0 +1,127 @@
|
|
|
1
|
+
import React, { useEffect, useState } from 'react';
|
|
2
|
+
import Modal from './Modal';
|
|
3
|
+
import Button from '../Button';
|
|
4
|
+
export default {
|
|
5
|
+
title: 'Modal',
|
|
6
|
+
};
|
|
7
|
+
const modalBody = (React.createElement("div", null, "Lorem Ipsum is simply dummy text of the printing and typesetting industry. Lorem Ipsum has been the industry's standard dummy text ever since the 1500s, when an unknown printer took a galley of type and scrambled it to make a type specimen book. It has survived not only five centuries, but also the leap into electronic typesetting, remaining essentially unchanged. It was popularised in the 1960s with the release of Letraset sheets containing Lorem Ipsum passages, and more recently with desktop publishing software like Aldus PageMaker including versions of Lorem Ipsum."));
|
|
8
|
+
const waitUntil = async (timeout) => {
|
|
9
|
+
return new Promise((resolve) => {
|
|
10
|
+
setTimeout(() => resolve('yes'), timeout);
|
|
11
|
+
});
|
|
12
|
+
};
|
|
13
|
+
const ModalComponent = ({ bodyClass = '', title: originalTitle, titleIcon, isTitleEditable, children, hideCloseIcon, disableSubmitButton, size, buttonLabel = 'Open Modal', customButton, customButtonLabel, submitButtonVariant, onSubmit, }) => {
|
|
14
|
+
const [open, setOpen] = useState(false);
|
|
15
|
+
const [title, setTitle] = useState(originalTitle);
|
|
16
|
+
useEffect(() => {
|
|
17
|
+
return () => {
|
|
18
|
+
document.body.className = '';
|
|
19
|
+
};
|
|
20
|
+
}, []);
|
|
21
|
+
const onClose = () => {
|
|
22
|
+
document.body.className = '';
|
|
23
|
+
setOpen(false);
|
|
24
|
+
};
|
|
25
|
+
return (React.createElement("div", { className: "tw-p-4" },
|
|
26
|
+
React.createElement(Button, { onClick: () => {
|
|
27
|
+
document.body.className = bodyClass;
|
|
28
|
+
setOpen(true);
|
|
29
|
+
}, label: buttonLabel }),
|
|
30
|
+
React.createElement(Modal, { open: open, onClose: onClose, title: title, titleIcon: titleIcon, isTitleEditable: isTitleEditable, onTitleChanged: (event) => setTitle(event.target.value), hideCloseIcon: hideCloseIcon, disableSubmitButton: disableSubmitButton, size: size, onSubmit: onSubmit, customButton: customButton, submitButtonVariant: submitButtonVariant, onPointerDownOutside: onClose, customButtonLabel: customButtonLabel }, children)));
|
|
31
|
+
};
|
|
32
|
+
export const AllModalsVariants = () => {
|
|
33
|
+
const colors = ['Topic', 'Analysis', 'Datalab', 'Vantage'];
|
|
34
|
+
const sizes = ['xs', 'sm', 'md', 'lg', 'xl', '2xl', '3xl', '4xl', '5xl', '6xl'];
|
|
35
|
+
return (React.createElement("div", { className: "tw-grid tw-grid-cols-4 tw-gap-4" }, colors.map((color) => (React.createElement("div", { key: color },
|
|
36
|
+
React.createElement("b", null,
|
|
37
|
+
color,
|
|
38
|
+
" colors"),
|
|
39
|
+
React.createElement("div", { className: "tw-p-4 light" }, sizes.map((size) => (React.createElement(ModalComponent, { key: `${size}_${color}`, bodyClass: `color_${color.toLowerCase()}`, title: "Modal example", children: modalBody, size: size, buttonLabel: `Open ${size} size modal` })))),
|
|
40
|
+
React.createElement("div", { className: "tw-p-4 tw-dark tw-bg-sq-dark-background" }, sizes.map((size) => (React.createElement(ModalComponent, { key: `${size}_${color}_dark`, bodyClass: `color_${color.toLowerCase()} tw-dark color_${color.toLowerCase()}_dark`, title: "Modal example", children: modalBody, size: size, buttonLabel: `Open ${size} size modal` })))))))));
|
|
41
|
+
};
|
|
42
|
+
export const ModalsWithDisabledSubmit = () => (React.createElement("div", { className: "tw-grid tw-grid-cols-4 tw-gap-4" },
|
|
43
|
+
React.createElement("div", null,
|
|
44
|
+
React.createElement("b", null, "Topic Colors"),
|
|
45
|
+
React.createElement("div", { className: "tw-p-4 light" },
|
|
46
|
+
React.createElement(ModalComponent, { bodyClass: "color_topic", title: "Disabled submit button example", disableSubmitButton: true, children: modalBody })),
|
|
47
|
+
React.createElement("div", { className: "tw-p-4 tw-dark tw-bg-sq-dark-background" },
|
|
48
|
+
React.createElement(ModalComponent, { bodyClass: "color_topic tw-dark color_analysis_dark", title: "Disabled submit button example", disableSubmitButton: true, children: modalBody }))),
|
|
49
|
+
React.createElement("div", null,
|
|
50
|
+
React.createElement("b", null, "Analysis Colors"),
|
|
51
|
+
React.createElement("div", { className: "tw-p-4 light" },
|
|
52
|
+
React.createElement(ModalComponent, { bodyClass: "color_analysis", title: "Disabled submit button example", disableSubmitButton: true, children: modalBody })),
|
|
53
|
+
React.createElement("div", { className: "tw-p-4 tw-dark tw-bg-sq-dark-background" },
|
|
54
|
+
React.createElement(ModalComponent, { bodyClass: "color_analysis tw-dark color_analysis_dark", title: "Disabled submit button example", disableSubmitButton: true, children: modalBody }))),
|
|
55
|
+
React.createElement("div", null,
|
|
56
|
+
React.createElement("b", null, "Datalab Colors"),
|
|
57
|
+
React.createElement("div", { className: "tw-p-4 light" },
|
|
58
|
+
React.createElement(ModalComponent, { bodyClass: "color_datalab", title: "Disabled submit button example", disableSubmitButton: true, children: modalBody })),
|
|
59
|
+
React.createElement("div", { className: "tw-p-4 tw-dark tw-bg-sq-dark-background" },
|
|
60
|
+
React.createElement(ModalComponent, { bodyClass: "color_datalab tw-dark color_analysis_dark", title: "Disabled submit button example", disableSubmitButton: true, children: modalBody }))),
|
|
61
|
+
React.createElement("div", null,
|
|
62
|
+
React.createElement("b", null, "Vantage Colors"),
|
|
63
|
+
React.createElement("div", { className: "tw-p-4 light" },
|
|
64
|
+
React.createElement(ModalComponent, { bodyClass: "color_vantage", title: "Disabled submit button example", disableSubmitButton: true, children: modalBody })),
|
|
65
|
+
React.createElement("div", { className: "tw-p-4 tw-dark tw-bg-sq-dark-background" },
|
|
66
|
+
React.createElement(ModalComponent, { bodyClass: "color_vantage tw-dark color_vantage_dark", title: "Disabled submit button example", disableSubmitButton: true, children: modalBody })))));
|
|
67
|
+
export const ModalsWithEditableTitle = () => {
|
|
68
|
+
const colors = ['Topic', 'Analysis', 'Datalab', 'Vantage'];
|
|
69
|
+
const sizes = ['xs', 'sm', 'md', 'lg', 'xl', '2xl', '3xl', '4xl', '5xl', '6xl'];
|
|
70
|
+
return (React.createElement("div", { className: "tw-grid tw-grid-cols-4 tw-gap-4" }, colors.map((color) => (React.createElement("div", { key: color },
|
|
71
|
+
React.createElement("b", null,
|
|
72
|
+
color,
|
|
73
|
+
" colors"),
|
|
74
|
+
React.createElement("div", { className: "tw-p-4 light" }, sizes.map((size) => (React.createElement(ModalComponent, { key: `${size}_${color}`, bodyClass: `color_${color.toLowerCase()}`, title: "Editable title example", isTitleEditable: true, titleIcon: "fc-check", children: modalBody, size: size, buttonLabel: `Open ${size} size modal` })))),
|
|
75
|
+
React.createElement("div", { className: "tw-p-4 tw-dark tw-bg-sq-dark-background" }, sizes.map((size) => (React.createElement(ModalComponent, { key: `${size}_${color}_dark`, bodyClass: `color_${color.toLowerCase()} tw-dark color_${color.toLowerCase()}_dark`, title: "Editable title example", isTitleEditable: true, titleIcon: "fc-check", children: modalBody, size: size, buttonLabel: `Open ${size} size modal` })))))))));
|
|
76
|
+
};
|
|
77
|
+
export const ModalsWithCustomButton = () => (React.createElement("div", { className: "tw-grid tw-grid-cols-4 tw-gap-4" },
|
|
78
|
+
React.createElement("div", null,
|
|
79
|
+
React.createElement("b", null, "Topic Colors"),
|
|
80
|
+
React.createElement("div", { className: "tw-p-4 light" },
|
|
81
|
+
React.createElement(ModalComponent, { bodyClass: "color_topic", title: "Modal with custom button", children: modalBody, customButton: true, customButtonLabel: "Back" })),
|
|
82
|
+
React.createElement("div", { className: "tw-p-4 tw-dark tw-bg-sq-dark-background" },
|
|
83
|
+
React.createElement(ModalComponent, { bodyClass: "color_topic tw-dark color_analysis_dark", title: "Modal with custom button", children: modalBody, customButton: true, customButtonLabel: "Back" }))),
|
|
84
|
+
React.createElement("div", null,
|
|
85
|
+
React.createElement("b", null, "Analysis Colors"),
|
|
86
|
+
React.createElement("div", { className: "tw-p-4 light" },
|
|
87
|
+
React.createElement(ModalComponent, { bodyClass: "color_analysis", title: "Modal with custom button", children: modalBody, customButton: true, customButtonLabel: "Back" })),
|
|
88
|
+
React.createElement("div", { className: "tw-p-4 tw-dark tw-bg-sq-dark-background" },
|
|
89
|
+
React.createElement(ModalComponent, { bodyClass: "color_analysis tw-dark color_analysis_dark", title: "Modal with custom button", children: modalBody, customButton: true, customButtonLabel: "Back" }))),
|
|
90
|
+
React.createElement("div", null,
|
|
91
|
+
React.createElement("b", null, "Datalab Colors"),
|
|
92
|
+
React.createElement("div", { className: "tw-p-4 light" },
|
|
93
|
+
React.createElement(ModalComponent, { bodyClass: "color_datalab", title: "Modal with custom button", children: modalBody, customButton: true, customButtonLabel: "Back" })),
|
|
94
|
+
React.createElement("div", { className: "tw-p-4 tw-dark tw-bg-sq-dark-background" },
|
|
95
|
+
React.createElement(ModalComponent, { bodyClass: "color_datalab tw-dark color_analysis_dark", title: "Modal with custom button", children: modalBody, customButton: true, customButtonLabel: "Back" }))),
|
|
96
|
+
React.createElement("div", null,
|
|
97
|
+
React.createElement("b", null, "Vantage Colors"),
|
|
98
|
+
React.createElement("div", { className: "tw-p-4 light" },
|
|
99
|
+
React.createElement(ModalComponent, { bodyClass: "color_vantage", title: "Modal with custom button", children: modalBody, customButton: true, customButtonLabel: "Back" })),
|
|
100
|
+
React.createElement("div", { className: "tw-p-4 tw-dark tw-bg-sq-dark-background" },
|
|
101
|
+
React.createElement(ModalComponent, { bodyClass: "color_vantage tw-dark color_vantage_dark", title: "Modal with custom button", children: modalBody, customButton: true, customButtonLabel: "Back" })))));
|
|
102
|
+
export const ModalsWithVariantButton = () => (React.createElement("div", { className: "tw-grid tw-grid-cols-4 tw-gap-4" },
|
|
103
|
+
React.createElement("div", null,
|
|
104
|
+
React.createElement("b", null, "Topic Colors"),
|
|
105
|
+
React.createElement("div", { className: "tw-p-4 light" },
|
|
106
|
+
React.createElement(ModalComponent, { bodyClass: "color_topic", title: "Modal with custom button", children: modalBody, customButton: true, customButtonLabel: "Back", submitButtonVariant: "theme" })),
|
|
107
|
+
React.createElement("div", { className: "tw-p-4 tw-dark tw-bg-sq-dark-background" },
|
|
108
|
+
React.createElement(ModalComponent, { bodyClass: "color_topic tw-dark color_analysis_dark", title: "Modal with custom button", children: modalBody, customButton: true, customButtonLabel: "Back", submitButtonVariant: "theme-light" }))),
|
|
109
|
+
React.createElement("div", null,
|
|
110
|
+
React.createElement("b", null, "Analysis Colors"),
|
|
111
|
+
React.createElement("div", { className: "tw-p-4 light" },
|
|
112
|
+
React.createElement(ModalComponent, { bodyClass: "color_analysis", title: "Modal with custom button", children: modalBody, customButton: true, customButtonLabel: "Back", submitButtonVariant: "warning" })),
|
|
113
|
+
React.createElement("div", { className: "tw-p-4 tw-dark tw-bg-sq-dark-background" },
|
|
114
|
+
React.createElement(ModalComponent, { bodyClass: "color_analysis tw-dark color_analysis_dark", title: "Modal with custom button", children: modalBody, customButton: true, submitButtonVariant: "danger", customButtonLabel: "Back" }))),
|
|
115
|
+
React.createElement("div", null,
|
|
116
|
+
React.createElement("b", null, "Datalab Colors"),
|
|
117
|
+
React.createElement("div", { className: "tw-p-4 light" },
|
|
118
|
+
React.createElement(ModalComponent, { bodyClass: "color_datalab", title: "Modal with custom button", children: modalBody, customButton: true, customButtonLabel: "Back", submitButtonVariant: "outline" })),
|
|
119
|
+
React.createElement("div", { className: "tw-p-4 tw-dark tw-bg-sq-dark-background" },
|
|
120
|
+
React.createElement(ModalComponent, { bodyClass: "color_datalab tw-dark color_analysis_dark", title: "Modal with custom button", children: modalBody, customButton: true, submitButtonVariant: "no-border", customButtonLabel: "Back" }))),
|
|
121
|
+
React.createElement("div", null,
|
|
122
|
+
React.createElement("b", null, "Vantage Colors"),
|
|
123
|
+
React.createElement("div", { className: "tw-p-4 light" },
|
|
124
|
+
React.createElement(ModalComponent, { bodyClass: "color_vantage", title: "Modal with custom button", children: modalBody, customButton: true, submitButtonVariant: "theme", customButtonLabel: "Back" })),
|
|
125
|
+
React.createElement("div", { className: "tw-p-4 tw-dark tw-bg-sq-dark-background" },
|
|
126
|
+
React.createElement(ModalComponent, { bodyClass: "color_vantage tw-dark color_vantage_dark", title: "Modal with custom button", children: modalBody, submitButtonVariant: "outline", customButton: true, customButtonLabel: "Back" })))));
|
|
127
|
+
//# sourceMappingURL=Modal.stories.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Modal.stories.js","sourceRoot":"","sources":["../../src/Modal/Modal.stories.tsx"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,108 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
import '@testing-library/jest-dom';
|
|
3
|
+
import { render, screen } from '@testing-library/react';
|
|
4
|
+
import userEvent from '@testing-library/user-event';
|
|
5
|
+
import Modal from './Modal';
|
|
6
|
+
describe('Modal', () => {
|
|
7
|
+
class Context {
|
|
8
|
+
props = {
|
|
9
|
+
onTitleChanged: jest.fn(),
|
|
10
|
+
disableSubmitButton: false,
|
|
11
|
+
title: 'Testing Modal Dialog',
|
|
12
|
+
children: React.createElement("div", null, "Modal content"),
|
|
13
|
+
open: true,
|
|
14
|
+
};
|
|
15
|
+
}
|
|
16
|
+
let tc;
|
|
17
|
+
beforeEach(() => {
|
|
18
|
+
tc = new Context();
|
|
19
|
+
});
|
|
20
|
+
const renderModal = (props) => render(React.createElement(Modal, { ...props }));
|
|
21
|
+
describe('renders Modal', () => {
|
|
22
|
+
it('doesn\'t render the modal if the open state is false', () => {
|
|
23
|
+
const open = false;
|
|
24
|
+
renderModal({ ...tc.props, open });
|
|
25
|
+
expect(screen.queryByTestId('modal')).not.toBeInTheDocument();
|
|
26
|
+
});
|
|
27
|
+
it('renders the modal if the open state is true', () => {
|
|
28
|
+
renderModal(tc.props);
|
|
29
|
+
expect(screen.getByTestId('modal')).toBeInTheDocument();
|
|
30
|
+
expect(screen.getByTestId('modal')).toHaveClass('tw-max-w-xl');
|
|
31
|
+
});
|
|
32
|
+
it('calls onClose modal when close button is clicked', async () => {
|
|
33
|
+
const onClose = jest.fn();
|
|
34
|
+
const { getByTestId } = renderModal({ ...tc.props, onClose });
|
|
35
|
+
expect(screen.getByTestId('modal')).toBeInTheDocument();
|
|
36
|
+
await userEvent.click(getByTestId('closeButton'));
|
|
37
|
+
expect(onClose).toHaveBeenCalled();
|
|
38
|
+
});
|
|
39
|
+
it('hides close button', () => {
|
|
40
|
+
const hideCloseIcon = true;
|
|
41
|
+
const { queryByTestId } = renderModal({ ...tc.props, hideCloseIcon });
|
|
42
|
+
expect(queryByTestId('closeButton')).not.toBeInTheDocument();
|
|
43
|
+
});
|
|
44
|
+
it('renders modal size based on the size prop', () => {
|
|
45
|
+
const size = 'lg';
|
|
46
|
+
renderModal({ ...tc.props, size });
|
|
47
|
+
expect(screen.getByTestId('modal')).toHaveClass('tw-max-w-lg');
|
|
48
|
+
});
|
|
49
|
+
it('renders not editable title', () => {
|
|
50
|
+
renderModal(tc.props);
|
|
51
|
+
expect(screen.getByTestId('modalTitle')).not.toHaveAttribute('value');
|
|
52
|
+
});
|
|
53
|
+
it('renders editable title', () => {
|
|
54
|
+
const isTitleEditable = true;
|
|
55
|
+
const { getByTestId } = renderModal({ ...tc.props, isTitleEditable });
|
|
56
|
+
expect(getByTestId('modalTitle')).toHaveAttribute('value');
|
|
57
|
+
});
|
|
58
|
+
it('calls onChange when title is modified', async () => {
|
|
59
|
+
const isTitleEditable = true;
|
|
60
|
+
const { getByTestId } = renderModal({ ...tc.props, isTitleEditable });
|
|
61
|
+
await userEvent.type(getByTestId('modalTitle'), 'a');
|
|
62
|
+
expect(tc.props.onTitleChanged).toHaveBeenCalled();
|
|
63
|
+
});
|
|
64
|
+
it('displays icon title', () => {
|
|
65
|
+
const titleIcon = 'fc-check';
|
|
66
|
+
const { getByTestId } = renderModal({ ...tc.props, titleIcon });
|
|
67
|
+
expect(getByTestId('modalTitleIcon')).toBeInTheDocument();
|
|
68
|
+
});
|
|
69
|
+
it('calls onSubmit when submit button is clicked', async () => {
|
|
70
|
+
const onSubmit = jest.fn();
|
|
71
|
+
const { getByTestId } = renderModal({ ...tc.props, onSubmit });
|
|
72
|
+
expect(getByTestId('submitButton')).not.toBeDisabled();
|
|
73
|
+
await userEvent.click(getByTestId('submitButton'));
|
|
74
|
+
expect(onSubmit).toHaveBeenCalled();
|
|
75
|
+
});
|
|
76
|
+
it('displays the disabled submit button', async () => {
|
|
77
|
+
const onSubmit = jest.fn();
|
|
78
|
+
const disableSubmitButton = true;
|
|
79
|
+
const { getByTestId } = renderModal({ ...tc.props, onSubmit, disableSubmitButton });
|
|
80
|
+
expect(getByTestId('submitButton')).toBeDisabled();
|
|
81
|
+
await userEvent.click(getByTestId('submitButton'));
|
|
82
|
+
expect(onSubmit).not.toHaveBeenCalled();
|
|
83
|
+
});
|
|
84
|
+
it('calls onClose when cancel button is clicked', async () => {
|
|
85
|
+
const onClose = jest.fn();
|
|
86
|
+
const { getByTestId } = renderModal({ ...tc.props, onClose });
|
|
87
|
+
expect(getByTestId('cancelButton')).not.toBeDisabled();
|
|
88
|
+
await userEvent.click(getByTestId('cancelButton'));
|
|
89
|
+
expect(onClose).toHaveBeenCalled();
|
|
90
|
+
});
|
|
91
|
+
it('displays custom button', () => {
|
|
92
|
+
const customButton = true;
|
|
93
|
+
const customButtonLabel = 'Back';
|
|
94
|
+
const { getByTestId } = renderModal({ ...tc.props, customButton, customButtonLabel });
|
|
95
|
+
expect(getByTestId('customButton')).toBeInTheDocument();
|
|
96
|
+
});
|
|
97
|
+
it('calls onClickCustomButton when custom button is clicked', async () => {
|
|
98
|
+
const customButton = true;
|
|
99
|
+
const customButtonLabel = 'Back';
|
|
100
|
+
const onClickCustomButton = jest.fn();
|
|
101
|
+
const { getByTestId } = renderModal({ ...tc.props, customButtonLabel, customButton, onClickCustomButton });
|
|
102
|
+
expect(getByTestId('customButton')).toBeInTheDocument();
|
|
103
|
+
await userEvent.click(getByTestId('customButton'));
|
|
104
|
+
expect(onClickCustomButton).toHaveBeenCalled();
|
|
105
|
+
});
|
|
106
|
+
});
|
|
107
|
+
});
|
|
108
|
+
//# sourceMappingURL=Modal.test.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Modal.test.js","sourceRoot":"","sources":["../../src/Modal/Modal.test.tsx"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Modal.types.js","sourceRoot":"","sources":["../../src/Modal/Modal.types.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/Modal/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,SAAS,CAAC"}
|
|
@@ -0,0 +1,70 @@
|
|
|
1
|
+
import React, { useEffect, useRef } from 'react';
|
|
2
|
+
import * as Progress from '@radix-ui/react-progress';
|
|
3
|
+
import { getQTipData } from '../Tooltip/qTip.utilities';
|
|
4
|
+
import tinycolor from 'tinycolor2';
|
|
5
|
+
const baseLabelClasses = 'tw-left-1 tw-text-xs tw-text-sq-text-color dark:tw-text-sq-dark-text tw-items-center tw-h-[18px]';
|
|
6
|
+
const ProgressIndicator = (props) => {
|
|
7
|
+
const { value, color = undefined, testId, label, extraClasses = '', labelClasses = '', valuesLength, max, index, totalValue, ...tooltipProps } = props;
|
|
8
|
+
const tooltipData = getQTipData(tooltipProps);
|
|
9
|
+
const previousWidth = useRef(0);
|
|
10
|
+
const indicatorElementRef = useRef(null);
|
|
11
|
+
const [textColorClass, setTextColorClass] = React.useState('');
|
|
12
|
+
const [animatedWidth, setAnimatedWidth] = React.useState(previousWidth.current);
|
|
13
|
+
// Determine which corners to round based on position and total value
|
|
14
|
+
let roundedCorners = '';
|
|
15
|
+
if (totalValue >= max) {
|
|
16
|
+
// If progress is 100%, round both ends
|
|
17
|
+
if (index === 0 && valuesLength === 1) {
|
|
18
|
+
roundedCorners = 'tw-rounded-[15px]';
|
|
19
|
+
}
|
|
20
|
+
else if (index === 0) {
|
|
21
|
+
roundedCorners = 'tw-rounded-l-[15px]';
|
|
22
|
+
}
|
|
23
|
+
else if (index === valuesLength - 1) {
|
|
24
|
+
roundedCorners = 'tw-rounded-r-[15px]';
|
|
25
|
+
}
|
|
26
|
+
}
|
|
27
|
+
else {
|
|
28
|
+
// Otherwise, only round the leftmost indicator
|
|
29
|
+
if (index === 0) {
|
|
30
|
+
roundedCorners = 'tw-rounded-l-[15px]';
|
|
31
|
+
}
|
|
32
|
+
}
|
|
33
|
+
useEffect(() => {
|
|
34
|
+
const timeout = setTimeout(() => {
|
|
35
|
+
const newWidth = (Number(value) / Number(max)) * 100;
|
|
36
|
+
setAnimatedWidth(newWidth);
|
|
37
|
+
previousWidth.current = newWidth;
|
|
38
|
+
}, 100);
|
|
39
|
+
return () => clearTimeout(timeout);
|
|
40
|
+
}, [value]);
|
|
41
|
+
const bgColor = color || undefined;
|
|
42
|
+
const bgClass = color ? '' : 'tw-bg-sq-color-dark';
|
|
43
|
+
const computeTextClass = (elem) => {
|
|
44
|
+
const computedStyle = getComputedStyle(elem);
|
|
45
|
+
const backgroundColor = computedStyle.backgroundColor;
|
|
46
|
+
const textColorClass = tinycolor(backgroundColor).isDark()
|
|
47
|
+
? 'tw-text-sq-white dark:tw-text-sq-white'
|
|
48
|
+
: 'tw-text-sq-text-color dark:tw-text-sq-text-color';
|
|
49
|
+
setTextColorClass(textColorClass);
|
|
50
|
+
};
|
|
51
|
+
useEffect(() => {
|
|
52
|
+
if (indicatorElementRef.current) {
|
|
53
|
+
computeTextClass(indicatorElementRef.current);
|
|
54
|
+
}
|
|
55
|
+
}, [!!indicatorElementRef.current]);
|
|
56
|
+
return (React.createElement(Progress.Indicator, { className: `tw-ease-[cubic-bezier(0.65, 0, 0.35, 1)] tw-w-full tw-h-[18px] tw-duration-[660ms] tw-flex tw-justify-center tw-items-center ${valuesLength === 1 ? '' : 'tw-overflow-hidden'} ${roundedCorners} ${bgClass} ${extraClasses}`, ...tooltipData, "data-qtip-text": tooltipProps.tooltip ? tooltipProps.tooltip : `${value}%`, "data-testid": `progress-bar-indicator-${testId ? testId : value}`, key: `${index}-${value}`, ref: indicatorElementRef, style: {
|
|
57
|
+
// Background color will default to the theme color if undefined
|
|
58
|
+
backgroundColor: bgColor,
|
|
59
|
+
animation: 'width 660ms forwards',
|
|
60
|
+
width: `${animatedWidth}%`,
|
|
61
|
+
} }, label ? (React.createElement("span", { className: `${baseLabelClasses} ${labelClasses} ${textColorClass} ${valuesLength === 1 ? 'tw-absolute tw-z-50' : ''}` }, label)) : undefined));
|
|
62
|
+
};
|
|
63
|
+
const ProgressBar = ({ values = [], max = 100, containerExtraClasses = '', zeroValueLabel = 'No progress yet', }) => {
|
|
64
|
+
const totalValue = values.reduce((acc, { value }) => acc + value, 0);
|
|
65
|
+
return (React.createElement(Progress.Root, { className: `tw-relative tw-h-[18px] tw-w-full tw-overflow-hidden tw-rounded-[15px] tw-bg-sq-dark-gray dark:tw-bg-sq-dark-disabled-gray tw-flex tw-flex-1 ${containerExtraClasses}`, max: max, value: totalValue }, totalValue > 0 ? (values.map((props, i) => {
|
|
66
|
+
return React.createElement(ProgressIndicator, { ...props, max: max, valuesLength: values.length, index: i, totalValue: totalValue, key: i });
|
|
67
|
+
})) : (React.createElement("div", { className: `${baseLabelClasses} tw-mx-auto tw-overflow-hidden` }, zeroValueLabel))));
|
|
68
|
+
};
|
|
69
|
+
export default ProgressBar;
|
|
70
|
+
//# sourceMappingURL=ProgressBar.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ProgressBar.js","sourceRoot":"","sources":["../../src/ProgressBar/ProgressBar.tsx"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,83 @@
|
|
|
1
|
+
import React, { useEffect } from 'react';
|
|
2
|
+
import ProgressBar from './ProgressBar';
|
|
3
|
+
import { QTip } from '../Tooltip';
|
|
4
|
+
export default {
|
|
5
|
+
title: 'ProgressBar',
|
|
6
|
+
};
|
|
7
|
+
export const AllProgressBars = () => {
|
|
8
|
+
const [values, setValues] = React.useState([
|
|
9
|
+
{ value: 20, label: 'RGB' },
|
|
10
|
+
{ value: 15, color: 'brown', label: 'Brown' },
|
|
11
|
+
{ value: 40, color: '#435abc', label: 'Hex' },
|
|
12
|
+
]);
|
|
13
|
+
useEffect(() => {
|
|
14
|
+
const timeout = setTimeout(() => {
|
|
15
|
+
setValues([
|
|
16
|
+
{ value: 40, label: 'RGB' },
|
|
17
|
+
{ value: 5, color: 'brown', label: 'Brown' },
|
|
18
|
+
{ value: 50, color: '#435abc', label: 'Hex' },
|
|
19
|
+
]);
|
|
20
|
+
}, 2000);
|
|
21
|
+
return () => clearTimeout(timeout);
|
|
22
|
+
});
|
|
23
|
+
const renderAllVariations = () => (React.createElement(React.Fragment, null,
|
|
24
|
+
React.createElement("div", { className: "tw-p-4 light" },
|
|
25
|
+
React.createElement("div", { className: "tw-p-4" },
|
|
26
|
+
React.createElement(ProgressBar, { max: 100, values: [{ value: 40 }] })),
|
|
27
|
+
React.createElement("div", { className: "tw-p-4" },
|
|
28
|
+
React.createElement(ProgressBar, { max: 100, values: [{ value: 10 }] })),
|
|
29
|
+
React.createElement("div", { className: "tw-p-4" },
|
|
30
|
+
React.createElement(ProgressBar, { values: [{ value: 0 }], max: 100 })),
|
|
31
|
+
React.createElement("div", { className: "tw-p-4" },
|
|
32
|
+
React.createElement(ProgressBar, { values: [{ value: 70, tooltip: 'this is an indicator tooltip' }], max: 100, containerExtraClasses: "tw-bg-sq-text-color" })),
|
|
33
|
+
React.createElement("div", { className: "tw-p-4" },
|
|
34
|
+
React.createElement(ProgressBar, { values: [
|
|
35
|
+
{ value: 20, label: 'RGB' },
|
|
36
|
+
{ value: 15, color: 'brown', label: 'Brown' },
|
|
37
|
+
{ value: 40, color: '#435abc', label: 'Hex' },
|
|
38
|
+
], max: 100, containerExtraClasses: "tw-bg-sq-text-color" })),
|
|
39
|
+
React.createElement("div", { className: "tw-p-4" },
|
|
40
|
+
React.createElement(ProgressBar, { values: [{ value: 5, label: 'A very long text' }], max: 100 })),
|
|
41
|
+
React.createElement("div", { className: "tw-p-4" },
|
|
42
|
+
React.createElement(ProgressBar, { values: values, max: 100, containerExtraClasses: "tw-bg-sq-text-color" })),
|
|
43
|
+
React.createElement("div", { className: "tw-p-4" },
|
|
44
|
+
React.createElement(ProgressBar, { values: [{ value: 0, label: 'zero label' }], max: 100 })),
|
|
45
|
+
React.createElement("div", { className: "tw-p-4" },
|
|
46
|
+
React.createElement(ProgressBar, { values: [{ value: 0 }], zeroValueLabel: "default zero level label deliberately long to test overflow", max: 100 }))),
|
|
47
|
+
React.createElement("div", { className: "tw-p-4 tw-dark tw-bg-sq-dark-background" },
|
|
48
|
+
React.createElement("div", { className: "tw-p-4" },
|
|
49
|
+
React.createElement(ProgressBar, { max: 100, values: [{ value: 40 }] })),
|
|
50
|
+
React.createElement("div", { className: "tw-p-4" },
|
|
51
|
+
React.createElement(ProgressBar, { max: 100, values: [{ value: 10 }] })),
|
|
52
|
+
React.createElement("div", { className: "tw-p-4" },
|
|
53
|
+
React.createElement(ProgressBar, { values: [{ value: 0 }], max: 100 })),
|
|
54
|
+
React.createElement("div", { className: "tw-p-4" },
|
|
55
|
+
React.createElement(ProgressBar, { values: [{ value: 70, tooltip: 'this is an indicator tooltip' }], max: 100, containerExtraClasses: "tw-bg-sq-text-color" })),
|
|
56
|
+
React.createElement("div", { className: "tw-p-4" },
|
|
57
|
+
React.createElement(ProgressBar, { values: [
|
|
58
|
+
{ value: 20, color: 'rgb(44,200,190)', label: 'RGB' },
|
|
59
|
+
{ value: 15, color: 'brown', label: 'Brown' },
|
|
60
|
+
{ value: 40, color: '#435abc', label: 'Hex' },
|
|
61
|
+
], max: 100, containerExtraClasses: "tw-bg-sq-text-color" })),
|
|
62
|
+
React.createElement("div", { className: "tw-p-4" },
|
|
63
|
+
React.createElement(ProgressBar, { values: values, max: 100, containerExtraClasses: "tw-bg-sq-text-color" })),
|
|
64
|
+
React.createElement("div", { className: "tw-p-4" },
|
|
65
|
+
React.createElement(ProgressBar, { values: [{ value: 0, label: 'zero label' }], max: 100, containerExtraClasses: "tw-bg-sq-text-color" })),
|
|
66
|
+
React.createElement("div", { className: "tw-p-4" },
|
|
67
|
+
React.createElement(ProgressBar, { values: [{ value: 0 }], zeroValueLabel: "default zero level label is made deliberately long to test overflow", max: 100, containerExtraClasses: "tw-bg-sq-text-color" })))));
|
|
68
|
+
return (React.createElement("div", { className: "tw-grid tw-grid-cols-4 tw-gap-4" },
|
|
69
|
+
React.createElement(QTip, null),
|
|
70
|
+
React.createElement("div", { className: "color_topic" },
|
|
71
|
+
React.createElement("b", null, "Topic Colors"),
|
|
72
|
+
renderAllVariations()),
|
|
73
|
+
React.createElement("div", { className: "color_analysis" },
|
|
74
|
+
React.createElement("b", null, "Analysis Colors"),
|
|
75
|
+
renderAllVariations()),
|
|
76
|
+
React.createElement("div", { className: "color_datalab" },
|
|
77
|
+
React.createElement("b", null, "Datalab Colors"),
|
|
78
|
+
renderAllVariations()),
|
|
79
|
+
React.createElement("div", { className: "color_vantage" },
|
|
80
|
+
React.createElement("b", null, "Vantage Colors"),
|
|
81
|
+
renderAllVariations())));
|
|
82
|
+
};
|
|
83
|
+
//# sourceMappingURL=ProgressBar.stories.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ProgressBar.stories.js","sourceRoot":"","sources":["../../src/ProgressBar/ProgressBar.stories.tsx"],"names":[],"mappings":"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"}
|