@popsure/dirty-swan 0.41.0-alpha → 0.41.0-alpha.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/cjs/index.js +82 -81
- package/dist/cjs/index.js.map +1 -1
- package/dist/cjs/lib/components/button/index.d.ts +19 -12
- package/dist/cjs/lib/components/button/index.stories.d.ts +57 -0
- package/dist/cjs/lib/components/button/index.test.d.ts +1 -0
- package/dist/cjs/lib/index.d.ts +1 -1
- package/dist/esm/components/button/index.js +20 -17
- package/dist/esm/components/button/index.js.map +1 -1
- package/dist/esm/components/button/index.stories.js +97 -0
- package/dist/esm/components/button/index.stories.js.map +1 -0
- package/dist/esm/components/button/index.test.js +50 -0
- package/dist/esm/components/button/index.test.js.map +1 -0
- package/dist/esm/components/comparisonTable/index.js.map +1 -1
- package/dist/esm/components/downloadButton/index.js +5 -6
- package/dist/esm/components/downloadButton/index.js.map +1 -1
- package/dist/esm/components/downloadButton/index.stories.js +3 -2
- package/dist/esm/components/downloadButton/index.stories.js.map +1 -1
- package/dist/esm/components/icon/icons/Download.js +2 -2
- package/dist/esm/components/icon/icons/Download.js.map +1 -1
- package/dist/esm/components/icon/icons.stories.js +3 -3
- package/dist/esm/components/icon/icons.stories.js.map +1 -1
- package/dist/esm/components/icon/index.stories.js +1 -1
- package/dist/esm/components/toast/index.stories.js +2 -2
- package/dist/esm/components/toast/index.stories.js.map +1 -1
- package/dist/esm/{index-b4cd59e9.js → index-39fa3631.js} +3 -3
- package/dist/esm/{index-b4cd59e9.js.map → index-39fa3631.js.map} +1 -1
- package/dist/esm/index.js +1 -1
- package/dist/esm/lib/components/button/index.d.ts +19 -12
- package/dist/esm/lib/components/button/index.stories.d.ts +57 -0
- package/dist/esm/lib/components/button/index.test.d.ts +1 -0
- package/dist/esm/lib/index.d.ts +1 -1
- package/dist/index.css +84 -27
- package/dist/index.css.map +1 -1
- package/dist/lib/scss/private/components/_buttons.scss +107 -26
- package/package.json +1 -1
- package/src/lib/components/button/index.stories.tsx +189 -0
- package/src/lib/components/button/index.test.tsx +51 -0
- package/src/lib/components/button/index.tsx +78 -59
- package/src/lib/components/comparisonTable/index.tsx +1 -1
- package/src/lib/components/downloadButton/index.tsx +9 -8
- package/src/lib/components/icon/icons.stories.tsx +4 -2
- package/src/lib/components/toast/index.stories.tsx +2 -5
- package/src/lib/index.tsx +1 -1
- package/src/lib/scss/private/components/_buttons.scss +107 -26
- package/dist/cjs/lib/components/button/icons/index.d.ts +0 -9
- package/dist/esm/lib/components/button/icons/index.d.ts +0 -9
- package/src/lib/components/button/icons/index.ts +0 -14
- package/src/lib/components/button/icons/send-purple.svg +0 -4
- package/src/lib/components/button/icons/send-white.svg +0 -4
- package/src/lib/components/button/index.stories.mdx +0 -142
- package/src/lib/components/button/styles.module.scss +0 -5
- package/src/lib/components/downloadButton/icons/download.svg +0 -5
|
@@ -1,13 +1,20 @@
|
|
|
1
|
-
import React from 'react';
|
|
2
|
-
declare type
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
1
|
+
import React, { ReactElement, ReactNode } from 'react';
|
|
2
|
+
declare type ButtonVariant = 'filledColor' | 'filledGray' | 'filledWhite' | 'textColor' | 'textWhite' | 'outlineWhite' | 'filledSuccess' | 'filledError';
|
|
3
|
+
declare type ButtonProps = {
|
|
4
|
+
children: ReactNode;
|
|
5
|
+
variant?: ButtonVariant;
|
|
6
|
+
leftIcon?: ReactElement;
|
|
7
|
+
rightIcon?: ReactElement;
|
|
8
|
+
loading?: boolean;
|
|
9
|
+
hideLabel?: boolean;
|
|
10
|
+
} & Omit<JSX.IntrinsicElements['button'], 'children'>;
|
|
11
|
+
declare const Button: React.ForwardRefExoticComponent<Pick<{
|
|
12
|
+
children: ReactNode;
|
|
13
|
+
variant?: ButtonVariant | undefined;
|
|
14
|
+
leftIcon?: React.ReactElement<any, string | React.JSXElementConstructor<any>> | undefined;
|
|
15
|
+
rightIcon?: React.ReactElement<any, string | React.JSXElementConstructor<any>> | undefined;
|
|
11
16
|
loading?: boolean | undefined;
|
|
12
|
-
|
|
13
|
-
|
|
17
|
+
hideLabel?: boolean | undefined;
|
|
18
|
+
} & Omit<React.DetailedHTMLProps<React.ButtonHTMLAttributes<HTMLButtonElement>, HTMLButtonElement>, "children">, "className" | "form" | "slot" | "style" | "title" | "children" | "onClick" | "color" | "hidden" | "type" | "value" | "onChange" | "dir" | "onBlur" | "onFocus" | "onKeyDown" | "tabIndex" | "leftIcon" | "rightIcon" | "key" | "defaultChecked" | "defaultValue" | "suppressContentEditableWarning" | "suppressHydrationWarning" | "accessKey" | "contentEditable" | "contextMenu" | "draggable" | "id" | "lang" | "placeholder" | "spellCheck" | "translate" | "radioGroup" | "role" | "about" | "datatype" | "inlist" | "prefix" | "property" | "resource" | "typeof" | "vocab" | "autoCapitalize" | "autoCorrect" | "autoSave" | "itemProp" | "itemScope" | "itemType" | "itemID" | "itemRef" | "results" | "security" | "unselectable" | "inputMode" | "is" | "aria-activedescendant" | "aria-atomic" | "aria-autocomplete" | "aria-busy" | "aria-checked" | "aria-colcount" | "aria-colindex" | "aria-colspan" | "aria-controls" | "aria-current" | "aria-describedby" | "aria-details" | "aria-disabled" | "aria-dropeffect" | "aria-errormessage" | "aria-expanded" | "aria-flowto" | "aria-grabbed" | "aria-haspopup" | "aria-hidden" | "aria-invalid" | "aria-keyshortcuts" | "aria-label" | "aria-labelledby" | "aria-level" | "aria-live" | "aria-modal" | "aria-multiline" | "aria-multiselectable" | "aria-orientation" | "aria-owns" | "aria-placeholder" | "aria-posinset" | "aria-pressed" | "aria-readonly" | "aria-relevant" | "aria-required" | "aria-roledescription" | "aria-rowcount" | "aria-rowindex" | "aria-rowspan" | "aria-selected" | "aria-setsize" | "aria-sort" | "aria-valuemax" | "aria-valuemin" | "aria-valuenow" | "aria-valuetext" | "dangerouslySetInnerHTML" | "onCopy" | "onCopyCapture" | "onCut" | "onCutCapture" | "onPaste" | "onPasteCapture" | "onCompositionEnd" | "onCompositionEndCapture" | "onCompositionStart" | "onCompositionStartCapture" | "onCompositionUpdate" | "onCompositionUpdateCapture" | "onFocusCapture" | "onBlurCapture" | "onChangeCapture" | "onBeforeInput" | "onBeforeInputCapture" | "onInput" | "onInputCapture" | "onReset" | "onResetCapture" | "onSubmit" | "onSubmitCapture" | "onInvalid" | "onInvalidCapture" | "onLoad" | "onLoadCapture" | "onError" | "onErrorCapture" | "onKeyDownCapture" | "onKeyPress" | "onKeyPressCapture" | "onKeyUp" | "onKeyUpCapture" | "onAbort" | "onAbortCapture" | "onCanPlay" | "onCanPlayCapture" | "onCanPlayThrough" | "onCanPlayThroughCapture" | "onDurationChange" | "onDurationChangeCapture" | "onEmptied" | "onEmptiedCapture" | "onEncrypted" | "onEncryptedCapture" | "onEnded" | "onEndedCapture" | "onLoadedData" | "onLoadedDataCapture" | "onLoadedMetadata" | "onLoadedMetadataCapture" | "onLoadStart" | "onLoadStartCapture" | "onPause" | "onPauseCapture" | "onPlay" | "onPlayCapture" | "onPlaying" | "onPlayingCapture" | "onProgress" | "onProgressCapture" | "onRateChange" | "onRateChangeCapture" | "onSeeked" | "onSeekedCapture" | "onSeeking" | "onSeekingCapture" | "onStalled" | "onStalledCapture" | "onSuspend" | "onSuspendCapture" | "onTimeUpdate" | "onTimeUpdateCapture" | "onVolumeChange" | "onVolumeChangeCapture" | "onWaiting" | "onWaitingCapture" | "onAuxClick" | "onAuxClickCapture" | "onClickCapture" | "onContextMenu" | "onContextMenuCapture" | "onDoubleClick" | "onDoubleClickCapture" | "onDrag" | "onDragCapture" | "onDragEnd" | "onDragEndCapture" | "onDragEnter" | "onDragEnterCapture" | "onDragExit" | "onDragExitCapture" | "onDragLeave" | "onDragLeaveCapture" | "onDragOver" | "onDragOverCapture" | "onDragStart" | "onDragStartCapture" | "onDrop" | "onDropCapture" | "onMouseDown" | "onMouseDownCapture" | "onMouseEnter" | "onMouseLeave" | "onMouseMove" | "onMouseMoveCapture" | "onMouseOut" | "onMouseOutCapture" | "onMouseOver" | "onMouseOverCapture" | "onMouseUp" | "onMouseUpCapture" | "onSelect" | "onSelectCapture" | "onTouchCancel" | "onTouchCancelCapture" | "onTouchEnd" | "onTouchEndCapture" | "onTouchMove" | "onTouchMoveCapture" | "onTouchStart" | "onTouchStartCapture" | "onPointerDown" | "onPointerDownCapture" | "onPointerMove" | "onPointerMoveCapture" | "onPointerUp" | "onPointerUpCapture" | "onPointerCancel" | "onPointerCancelCapture" | "onPointerEnter" | "onPointerEnterCapture" | "onPointerLeave" | "onPointerLeaveCapture" | "onPointerOver" | "onPointerOverCapture" | "onPointerOut" | "onPointerOutCapture" | "onGotPointerCapture" | "onGotPointerCaptureCapture" | "onLostPointerCapture" | "onLostPointerCaptureCapture" | "onScroll" | "onScrollCapture" | "onWheel" | "onWheelCapture" | "onAnimationStart" | "onAnimationStartCapture" | "onAnimationEnd" | "onAnimationEndCapture" | "onAnimationIteration" | "onAnimationIterationCapture" | "onTransitionEnd" | "onTransitionEndCapture" | "disabled" | "autoFocus" | "formAction" | "formEncType" | "formMethod" | "formNoValidate" | "formTarget" | "name" | "hideLabel" | "loading" | "variant"> & React.RefAttributes<HTMLButtonElement>>;
|
|
19
|
+
export { Button };
|
|
20
|
+
export type { ButtonProps, ButtonVariant };
|
|
@@ -0,0 +1,57 @@
|
|
|
1
|
+
/// <reference types="react" />
|
|
2
|
+
import { ButtonProps, ButtonVariant } from '.';
|
|
3
|
+
declare const story: {
|
|
4
|
+
title: string;
|
|
5
|
+
component: import("react").ForwardRefExoticComponent<Pick<{
|
|
6
|
+
children: import("react").ReactNode;
|
|
7
|
+
variant?: ButtonVariant | undefined;
|
|
8
|
+
leftIcon?: import("react").ReactElement<any, string | import("react").JSXElementConstructor<any>> | undefined;
|
|
9
|
+
rightIcon?: import("react").ReactElement<any, string | import("react").JSXElementConstructor<any>> | undefined;
|
|
10
|
+
loading?: boolean | undefined;
|
|
11
|
+
hideLabel?: boolean | undefined;
|
|
12
|
+
} & Omit<import("react").DetailedHTMLProps<import("react").ButtonHTMLAttributes<HTMLButtonElement>, HTMLButtonElement>, "children">, "className" | "form" | "slot" | "style" | "title" | "children" | "onClick" | "color" | "hidden" | "type" | "value" | "onChange" | "dir" | "onBlur" | "onFocus" | "onKeyDown" | "tabIndex" | "leftIcon" | "rightIcon" | "key" | "defaultChecked" | "defaultValue" | "suppressContentEditableWarning" | "suppressHydrationWarning" | "accessKey" | "contentEditable" | "contextMenu" | "draggable" | "id" | "lang" | "placeholder" | "spellCheck" | "translate" | "radioGroup" | "role" | "about" | "datatype" | "inlist" | "prefix" | "property" | "resource" | "typeof" | "vocab" | "autoCapitalize" | "autoCorrect" | "autoSave" | "itemProp" | "itemScope" | "itemType" | "itemID" | "itemRef" | "results" | "security" | "unselectable" | "inputMode" | "is" | "aria-activedescendant" | "aria-atomic" | "aria-autocomplete" | "aria-busy" | "aria-checked" | "aria-colcount" | "aria-colindex" | "aria-colspan" | "aria-controls" | "aria-current" | "aria-describedby" | "aria-details" | "aria-disabled" | "aria-dropeffect" | "aria-errormessage" | "aria-expanded" | "aria-flowto" | "aria-grabbed" | "aria-haspopup" | "aria-hidden" | "aria-invalid" | "aria-keyshortcuts" | "aria-label" | "aria-labelledby" | "aria-level" | "aria-live" | "aria-modal" | "aria-multiline" | "aria-multiselectable" | "aria-orientation" | "aria-owns" | "aria-placeholder" | "aria-posinset" | "aria-pressed" | "aria-readonly" | "aria-relevant" | "aria-required" | "aria-roledescription" | "aria-rowcount" | "aria-rowindex" | "aria-rowspan" | "aria-selected" | "aria-setsize" | "aria-sort" | "aria-valuemax" | "aria-valuemin" | "aria-valuenow" | "aria-valuetext" | "dangerouslySetInnerHTML" | "onCopy" | "onCopyCapture" | "onCut" | "onCutCapture" | "onPaste" | "onPasteCapture" | "onCompositionEnd" | "onCompositionEndCapture" | "onCompositionStart" | "onCompositionStartCapture" | "onCompositionUpdate" | "onCompositionUpdateCapture" | "onFocusCapture" | "onBlurCapture" | "onChangeCapture" | "onBeforeInput" | "onBeforeInputCapture" | "onInput" | "onInputCapture" | "onReset" | "onResetCapture" | "onSubmit" | "onSubmitCapture" | "onInvalid" | "onInvalidCapture" | "onLoad" | "onLoadCapture" | "onError" | "onErrorCapture" | "onKeyDownCapture" | "onKeyPress" | "onKeyPressCapture" | "onKeyUp" | "onKeyUpCapture" | "onAbort" | "onAbortCapture" | "onCanPlay" | "onCanPlayCapture" | "onCanPlayThrough" | "onCanPlayThroughCapture" | "onDurationChange" | "onDurationChangeCapture" | "onEmptied" | "onEmptiedCapture" | "onEncrypted" | "onEncryptedCapture" | "onEnded" | "onEndedCapture" | "onLoadedData" | "onLoadedDataCapture" | "onLoadedMetadata" | "onLoadedMetadataCapture" | "onLoadStart" | "onLoadStartCapture" | "onPause" | "onPauseCapture" | "onPlay" | "onPlayCapture" | "onPlaying" | "onPlayingCapture" | "onProgress" | "onProgressCapture" | "onRateChange" | "onRateChangeCapture" | "onSeeked" | "onSeekedCapture" | "onSeeking" | "onSeekingCapture" | "onStalled" | "onStalledCapture" | "onSuspend" | "onSuspendCapture" | "onTimeUpdate" | "onTimeUpdateCapture" | "onVolumeChange" | "onVolumeChangeCapture" | "onWaiting" | "onWaitingCapture" | "onAuxClick" | "onAuxClickCapture" | "onClickCapture" | "onContextMenu" | "onContextMenuCapture" | "onDoubleClick" | "onDoubleClickCapture" | "onDrag" | "onDragCapture" | "onDragEnd" | "onDragEndCapture" | "onDragEnter" | "onDragEnterCapture" | "onDragExit" | "onDragExitCapture" | "onDragLeave" | "onDragLeaveCapture" | "onDragOver" | "onDragOverCapture" | "onDragStart" | "onDragStartCapture" | "onDrop" | "onDropCapture" | "onMouseDown" | "onMouseDownCapture" | "onMouseEnter" | "onMouseLeave" | "onMouseMove" | "onMouseMoveCapture" | "onMouseOut" | "onMouseOutCapture" | "onMouseOver" | "onMouseOverCapture" | "onMouseUp" | "onMouseUpCapture" | "onSelect" | "onSelectCapture" | "onTouchCancel" | "onTouchCancelCapture" | "onTouchEnd" | "onTouchEndCapture" | "onTouchMove" | "onTouchMoveCapture" | "onTouchStart" | "onTouchStartCapture" | "onPointerDown" | "onPointerDownCapture" | "onPointerMove" | "onPointerMoveCapture" | "onPointerUp" | "onPointerUpCapture" | "onPointerCancel" | "onPointerCancelCapture" | "onPointerEnter" | "onPointerEnterCapture" | "onPointerLeave" | "onPointerLeaveCapture" | "onPointerOver" | "onPointerOverCapture" | "onPointerOut" | "onPointerOutCapture" | "onGotPointerCapture" | "onGotPointerCaptureCapture" | "onLostPointerCapture" | "onLostPointerCaptureCapture" | "onScroll" | "onScrollCapture" | "onWheel" | "onWheelCapture" | "onAnimationStart" | "onAnimationStartCapture" | "onAnimationEnd" | "onAnimationEndCapture" | "onAnimationIteration" | "onAnimationIterationCapture" | "onTransitionEnd" | "onTransitionEndCapture" | "disabled" | "autoFocus" | "formAction" | "formEncType" | "formMethod" | "formNoValidate" | "formTarget" | "name" | "hideLabel" | "loading" | "variant"> & import("react").RefAttributes<HTMLButtonElement>>;
|
|
13
|
+
argTypes: {
|
|
14
|
+
children: {
|
|
15
|
+
control: {
|
|
16
|
+
type: string;
|
|
17
|
+
};
|
|
18
|
+
defaultValue: string;
|
|
19
|
+
description: string;
|
|
20
|
+
};
|
|
21
|
+
variant: {
|
|
22
|
+
defaultValue: string;
|
|
23
|
+
description: string;
|
|
24
|
+
};
|
|
25
|
+
leftIcon: {
|
|
26
|
+
description: string;
|
|
27
|
+
};
|
|
28
|
+
rightIcon: {
|
|
29
|
+
description: string;
|
|
30
|
+
};
|
|
31
|
+
loading: {
|
|
32
|
+
defaultValue: boolean;
|
|
33
|
+
description: string;
|
|
34
|
+
};
|
|
35
|
+
hideLabel: {
|
|
36
|
+
defaultValue: boolean;
|
|
37
|
+
description: string;
|
|
38
|
+
};
|
|
39
|
+
};
|
|
40
|
+
parameters: {
|
|
41
|
+
design: {
|
|
42
|
+
url: string;
|
|
43
|
+
type: string;
|
|
44
|
+
};
|
|
45
|
+
};
|
|
46
|
+
};
|
|
47
|
+
export declare const ButtonStory: {
|
|
48
|
+
({ className, loading, children, variant, hideLabel }: ButtonProps): JSX.Element;
|
|
49
|
+
storyName: string;
|
|
50
|
+
};
|
|
51
|
+
export declare const ButtonVariants: ({ children, onClick }: ButtonProps) => JSX.Element;
|
|
52
|
+
export declare const ButtonOnBackgrounds: ({ onClick }: ButtonProps) => JSX.Element;
|
|
53
|
+
export declare const ButtonWithIcons: ({ children, onClick }: ButtonProps) => JSX.Element;
|
|
54
|
+
export declare const ButtonWithIconOnly: ({ children, onClick }: ButtonProps) => JSX.Element;
|
|
55
|
+
export declare const ButtonLoading: ({ children, onClick }: ButtonProps) => JSX.Element;
|
|
56
|
+
export declare const ButtonDisabled: ({ children, onClick }: ButtonProps) => JSX.Element;
|
|
57
|
+
export default story;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
package/dist/cjs/lib/index.d.ts
CHANGED
|
@@ -12,7 +12,7 @@ import { Checkbox } from './components/input/checkbox';
|
|
|
12
12
|
import { Radio } from './components/input/radio';
|
|
13
13
|
import { BottomModal, RegularModal, BottomOrRegularModal } from './components/modal';
|
|
14
14
|
import { CardWithTopLeftIcon, CardWithLeftIcon, CardWithTopIcon, InfoCard, CardButton } from './components/cards';
|
|
15
|
-
import Button from './components/button';
|
|
15
|
+
import { Button } from './components/button';
|
|
16
16
|
import { AutoSuggestMultiSelect } from './components/input/autoSuggestMultiSelect';
|
|
17
17
|
import Chip from './components/chip';
|
|
18
18
|
import { AutoSuggestInput } from './components/input/autoSuggestInput';
|
|
@@ -1,26 +1,29 @@
|
|
|
1
1
|
import { a as __rest, _ as __assign } from '../../tslib.es6-5bc94358.js';
|
|
2
|
-
import { jsx, jsxs
|
|
2
|
+
import { jsx, jsxs } from 'react/jsx-runtime';
|
|
3
|
+
import { c as classNames } from '../../index-6ea95111.js';
|
|
3
4
|
import require$$0__default from 'react';
|
|
4
|
-
import { s as styleInject } from '../../style-inject.es-1f59c1d0.js';
|
|
5
|
-
|
|
6
|
-
var css_248z = ".styles-module_content-container__4wuQ0 {\n display: flex;\n justify-content: center;\n align-items: center;\n}";
|
|
7
|
-
var styles = {"content-container":"styles-module_content-container__4wuQ0"};
|
|
8
|
-
styleInject(css_248z);
|
|
9
5
|
|
|
10
6
|
var buttonTypeClassNameMap = {
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
7
|
+
filledColor: 'p-btn--primary',
|
|
8
|
+
filledGray: 'p-btn--secondary-grey',
|
|
9
|
+
filledWhite: 'p-btn--secondary-white',
|
|
10
|
+
textColor: 'p-btn--secondary',
|
|
11
|
+
textWhite: 'p-btn--secondary-inverted',
|
|
12
|
+
outlineWhite: 'p-btn--outline-white',
|
|
13
|
+
filledSuccess: 'p-btn--success',
|
|
14
|
+
filledError: 'p-btn--danger',
|
|
16
15
|
};
|
|
17
16
|
var Button = require$$0__default.forwardRef(function (_a, ref) {
|
|
18
|
-
var className = _a.className, _b = _a.loading, loading = _b === void 0 ? false : _b,
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
17
|
+
var className = _a.className, _b = _a.loading, loading = _b === void 0 ? false : _b, children = _a.children, _c = _a.variant, variant = _c === void 0 ? 'filledColor' : _c, leftIcon = _a.leftIcon, rightIcon = _a.rightIcon, hideLabel = _a.hideLabel, props = __rest(_a, ["className", "loading", "children", "variant", "leftIcon", "rightIcon", "hideLabel"]);
|
|
18
|
+
return (jsx("button", __assign({ ref: ref, className: classNames(buttonTypeClassNameMap[variant], className, {
|
|
19
|
+
'p-btn--loading': loading,
|
|
20
|
+
'p-btn--icon-only': hideLabel,
|
|
21
|
+
}), "data-testid": "button" }, props, { children: leftIcon || rightIcon ? (jsxs("div", __assign({ className: "d-flex jc-center ai-center" }, { children: [leftIcon && (jsx("span", { children: require$$0__default.cloneElement(leftIcon, { size: 24 }) }, void 0)),
|
|
22
|
+
jsx("div", __assign({ className: classNames('mx8', {
|
|
23
|
+
'sr-only': hideLabel
|
|
24
|
+
}) }, { children: children }), void 0),
|
|
25
|
+
rightIcon && (jsx("span", { children: require$$0__default.cloneElement(rightIcon, { size: 24 }) }, void 0))] }), void 0)) : children }), void 0));
|
|
23
26
|
});
|
|
24
27
|
|
|
25
|
-
export
|
|
28
|
+
export { Button };
|
|
26
29
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sources":["../../../../../src/lib/components/button/index.tsx"],"sourcesContent":["import
|
|
1
|
+
{"version":3,"file":"index.js","sources":["../../../../../src/lib/components/button/index.tsx"],"sourcesContent":["import classNames from 'classnames';\nimport React, { ReactElement, ReactNode } from 'react';\n\ntype ButtonVariant =\n | 'filledColor'\n | 'filledGray'\n | 'filledWhite'\n | 'textColor'\n | 'textWhite'\n | 'outlineWhite'\n | 'filledSuccess'\n | 'filledError';\n\nconst buttonTypeClassNameMap: { [K in ButtonVariant]: string } = {\n filledColor: 'p-btn--primary',\n filledGray: 'p-btn--secondary-grey',\n filledWhite: 'p-btn--secondary-white',\n textColor: 'p-btn--secondary',\n textWhite: 'p-btn--secondary-inverted',\n outlineWhite: 'p-btn--outline-white',\n filledSuccess: 'p-btn--success',\n filledError: 'p-btn--danger',\n};\n\ntype ButtonProps = {\n children: ReactNode;\n variant?: ButtonVariant;\n leftIcon?: ReactElement;\n rightIcon?: ReactElement;\n loading?: boolean;\n hideLabel?: boolean;\n} & Omit<JSX.IntrinsicElements['button'], 'children'>;\n\nconst Button = React.forwardRef((\n {\n className,\n loading = false,\n children,\n variant = 'filledColor',\n leftIcon,\n rightIcon,\n hideLabel,\n ...props\n }: ButtonProps,\n ref?: React.ForwardedRef<HTMLButtonElement>\n) => (\n <button\n ref={ref}\n className={classNames(\n buttonTypeClassNameMap[variant], \n className, {\n 'p-btn--loading': loading,\n 'p-btn--icon-only': hideLabel,\n })}\n data-testid=\"button\"\n {...props}\n >\n {leftIcon || rightIcon ? (\n <div className=\"d-flex jc-center ai-center\">\n {leftIcon && (\n <span>\n {React.cloneElement(leftIcon, { size: 24 })}\n </span>\n )}\n \n <div \n className={classNames(\n 'mx8', {\n 'sr-only': hideLabel\n }\n )}\n >\n {children}\n </div>\n\n {rightIcon && (\n <span>\n {React.cloneElement(rightIcon, { size: 24 })}\n </span>\n )}\n </div>\n ) : children}\n </button>\n )\n);\n\nexport { Button };\nexport type { ButtonProps, ButtonVariant };\n"],"names":["React","_jsx","_jsxs"],"mappings":";;;;;AAaA,IAAM,sBAAsB,GAAqC;IAC/D,WAAW,EAAE,gBAAgB;IAC7B,UAAU,EAAE,uBAAuB;IACnC,WAAW,EAAE,wBAAwB;IACrC,SAAS,EAAE,kBAAkB;IAC7B,SAAS,EAAE,2BAA2B;IACtC,YAAY,EAAE,sBAAsB;IACpC,aAAa,EAAE,gBAAgB;IAC/B,WAAW,EAAE,eAAe;CAC7B,CAAC;IAWI,MAAM,GAAGA,mBAAK,CAAC,UAAU,CAAC,UAC9B,EASc,EACd,GAA2C;IATzC,IAAA,SAAS,eAAA,EACT,eAAe,EAAf,OAAO,mBAAG,KAAK,KAAA,EACf,QAAQ,cAAA,EACR,eAAuB,EAAvB,OAAO,mBAAG,aAAa,KAAA,EACvB,QAAQ,cAAA,EACR,SAAS,eAAA,EACT,SAAS,eAAA,EACN,KAAK,cARV,qFASC,CADS;IAGP,QACDC,yBACE,GAAG,EAAE,GAAG,EACR,SAAS,EAAE,UAAU,CACnB,sBAAsB,CAAC,OAAO,CAAC,EAC/B,SAAS,EAAE;YACT,gBAAgB,EAAE,OAAO;YACzB,kBAAkB,EAAE,SAAS;SAC9B,CAAC,iBACQ,QAAQ,IAChB,KAAK,cAER,QAAQ,IAAI,SAAS,IACpBC,uBAAK,SAAS,EAAC,4BAA4B,iBACxC,QAAQ,KACPD,wBACGD,mBAAK,CAAC,YAAY,CAAC,QAAQ,EAAE,EAAE,IAAI,EAAE,EAAE,EAAE,CAAC,WACtC,CACR;gBAEDC,sBACE,SAAS,EAAE,UAAU,CACnB,KAAK,EAAE;wBACL,SAAS,EAAE,SAAS;qBACrB,CACF,gBAEA,QAAQ,YACL;gBAEL,SAAS,KACRA,wBACGD,mBAAK,CAAC,YAAY,CAAC,SAAS,EAAE,EAAE,IAAI,EAAE,EAAE,EAAE,CAAC,WACvC,CACR,aACG,IACJ,QAAQ,YACL,EACV;CAAA;;;;"}
|
|
@@ -0,0 +1,97 @@
|
|
|
1
|
+
import { _ as __assign } from '../../tslib.es6-5bc94358.js';
|
|
2
|
+
import { jsx, jsxs } from 'react/jsx-runtime';
|
|
3
|
+
import { Button } from './index.js';
|
|
4
|
+
import FileIcon from '../icon/icons/File.js';
|
|
5
|
+
import '../../index-6ea95111.js';
|
|
6
|
+
import 'react';
|
|
7
|
+
import '../icon/IconWrapper/IconWrapper.js';
|
|
8
|
+
import '../../style-inject.es-1f59c1d0.js';
|
|
9
|
+
|
|
10
|
+
var story = {
|
|
11
|
+
title: 'JSX/Button',
|
|
12
|
+
component: Button,
|
|
13
|
+
argTypes: {
|
|
14
|
+
children: {
|
|
15
|
+
control: { type: 'text' },
|
|
16
|
+
defaultValue: 'Click me',
|
|
17
|
+
description: 'Text that is displayed inside the button. Hidden when hideLabel is set as true',
|
|
18
|
+
},
|
|
19
|
+
variant: {
|
|
20
|
+
defaultValue: 'filledColor',
|
|
21
|
+
description: 'Variant that defines the style of the Button',
|
|
22
|
+
},
|
|
23
|
+
leftIcon: {
|
|
24
|
+
description: 'Icon to be displayed on the left side of the button. This makes use of [dirty swan Icon component](http://localhost:9009/?path=/docs/jsx-icon--icon-story).',
|
|
25
|
+
},
|
|
26
|
+
rightIcon: {
|
|
27
|
+
description: 'Icon to be displayed on the right side of the button. This makes use of [dirty swan Icon component](http://localhost:9009/?path=/docs/jsx-icon--icon-story).',
|
|
28
|
+
},
|
|
29
|
+
loading: {
|
|
30
|
+
defaultValue: false,
|
|
31
|
+
description: 'Show button on a loading state.',
|
|
32
|
+
},
|
|
33
|
+
hideLabel: {
|
|
34
|
+
defaultValue: false,
|
|
35
|
+
description: 'Show button as an icon only button. This hides the label but still keeps it for accessibility purposes.',
|
|
36
|
+
},
|
|
37
|
+
},
|
|
38
|
+
parameters: {
|
|
39
|
+
design: {
|
|
40
|
+
url: 'https://www.figma.com/embed?embed_host=share&url=https%3A%2F%2Fwww.figma.com%2Ffile%2FMKs4cbojdVOBKUxv7okb93%2FDirty-Swan-Pattern-Library%3Fnode-id%3D251%253A26',
|
|
41
|
+
type: 'figma'
|
|
42
|
+
},
|
|
43
|
+
},
|
|
44
|
+
};
|
|
45
|
+
var ButtonStory = function (_a) {
|
|
46
|
+
var className = _a.className, _b = _a.loading, loading = _b === void 0 ? false : _b, children = _a.children, variant = _a.variant, hideLabel = _a.hideLabel;
|
|
47
|
+
return (jsx("div", __assign({ className: 'wmx6' }, { children: jsx(Button, __assign({ className: className, loading: loading, variant: variant, hideLabel: hideLabel }, { children: children }), void 0) }), void 0));
|
|
48
|
+
};
|
|
49
|
+
ButtonStory.storyName = "Button";
|
|
50
|
+
var ButtonVariants = function (_a) {
|
|
51
|
+
var children = _a.children, onClick = _a.onClick;
|
|
52
|
+
return (jsxs("div", { children: [jsx("h3", __assign({ className: 'p-h3 mb24' }, { children: "Filled variants" }), void 0),
|
|
53
|
+
jsx("div", __assign({ className: 'd-flex gap16 p24 bg-grey-300 br8' }, { children: ["filledColor", "filledGray", "filledWhite"].map(function (variant) { return (jsxs("div", { children: [jsx("h4", __assign({ className: 'p-h4 mb16' }, { children: variant }), void 0),
|
|
54
|
+
jsx(Button, __assign({ onClick: onClick, variant: variant }, { children: children }), void 0)] }, variant)); }) }), void 0),
|
|
55
|
+
jsx("h3", __assign({ className: 'p-h3 my24' }, { children: "Text variants" }), void 0),
|
|
56
|
+
jsx("div", __assign({ className: 'd-flex gap16 p24 bg-grey-300 br8' }, { children: ["textColor", "textWhite"].map(function (variant, index) {
|
|
57
|
+
var _a;
|
|
58
|
+
return (jsxs("div", __assign({ className: variant === "textWhite" ? "bg-primary-500 px32 br8" : "" }, { children: [jsx("h4", __assign({ className: "p-h4 mb16 " + ((_a = variant === "textWhite") !== null && _a !== void 0 ? _a : "tc-white") }, { children: variant }), void 0),
|
|
59
|
+
jsx(Button, __assign({ onClick: onClick, variant: variant }, { children: children }), void 0)] }), variant));
|
|
60
|
+
}) }), void 0),
|
|
61
|
+
jsx("h3", __assign({ className: 'p-h3 my24' }, { children: "Outline variants" }), void 0),
|
|
62
|
+
jsx("div", __assign({ className: 'd-flex gap16 p24 bg-primary-500 br8' }, { children: jsxs("div", { children: [jsx("h4", __assign({ className: 'p-h4 mb16 tc-white' }, { children: "outlineWhite" }), void 0),
|
|
63
|
+
jsx(Button, __assign({ onClick: onClick, variant: 'outlineWhite' }, { children: children }), void 0)] }, void 0) }), void 0),
|
|
64
|
+
jsx("h3", __assign({ className: 'p-h3 my24' }, { children: "State variants" }), void 0),
|
|
65
|
+
jsx("div", __assign({ className: 'd-flex gap16 p24 bg-grey-300 br8' }, { children: ["filledSuccess", "filledError"].map(function (variant) { return (jsxs("div", { children: [jsx("h4", __assign({ className: 'p-h4 mb16' }, { children: variant }), void 0),
|
|
66
|
+
jsx(Button, __assign({ onClick: onClick, variant: variant }, { children: children }), void 0)] }, variant)); }) }), void 0)] }, void 0));
|
|
67
|
+
};
|
|
68
|
+
var ButtonOnBackgrounds = function (_a) {
|
|
69
|
+
var onClick = _a.onClick;
|
|
70
|
+
return (jsxs("div", { children: [jsxs("div", __assign({ className: 'p24 bg-white br8' }, { children: [jsx("h3", __assign({ className: 'p-h3 mb16' }, { children: "On white" }), void 0),
|
|
71
|
+
jsx("div", __assign({ className: 'd-flex gap16' }, { children: ["filledColor", "filledGray", "textColor"].map(function (variant) { return (jsx(Button, __assign({ onClick: onClick, variant: variant }, { children: variant }), variant)); }) }), void 0)] }), void 0),
|
|
72
|
+
jsxs("div", __assign({ className: 'p24 bg-grey-200 br8' }, { children: [jsx("h3", __assign({ className: 'p-h3 mb16' }, { children: "On grey" }), void 0),
|
|
73
|
+
jsx("div", __assign({ className: 'd-flex gap16' }, { children: ["filledColor", "filledWhite", "textColor"].map(function (variant) { return (jsx(Button, __assign({ onClick: onClick, variant: variant }, { children: variant }), variant)); }) }), void 0)] }), void 0),
|
|
74
|
+
jsxs("div", __assign({ className: 'p24 bg-primary-500 br8' }, { children: [jsx("h3", __assign({ className: 'p-h3 mb16 tc-white' }, { children: "On primary" }), void 0),
|
|
75
|
+
jsx("div", __assign({ className: 'd-flex gap16' }, { children: ["filledWhite", "outlineWhite", "textWhite"].map(function (variant) { return (jsx(Button, __assign({ onClick: onClick, variant: variant }, { children: variant }), variant)); }) }), void 0)] }), void 0)] }, void 0));
|
|
76
|
+
};
|
|
77
|
+
var ButtonWithIcons = function (_a) {
|
|
78
|
+
var children = _a.children, onClick = _a.onClick;
|
|
79
|
+
return (jsxs("div", __assign({ className: 'd-flex gap16' }, { children: [jsx(Button, __assign({ leftIcon: jsx(FileIcon, {}, void 0), onClick: onClick }, { children: children }), void 0),
|
|
80
|
+
jsx(Button, __assign({ rightIcon: jsx(FileIcon, {}, void 0), onClick: onClick }, { children: children }), void 0)] }), void 0));
|
|
81
|
+
};
|
|
82
|
+
var ButtonWithIconOnly = function (_a) {
|
|
83
|
+
var children = _a.children, onClick = _a.onClick;
|
|
84
|
+
return (jsx(Button, __assign({ leftIcon: jsx(FileIcon, {}, void 0), hideLabel: true, onClick: onClick }, { children: children }), void 0));
|
|
85
|
+
};
|
|
86
|
+
var ButtonLoading = function (_a) {
|
|
87
|
+
var children = _a.children, onClick = _a.onClick;
|
|
88
|
+
return (jsx(Button, __assign({ loading: true, onClick: onClick }, { children: children }), void 0));
|
|
89
|
+
};
|
|
90
|
+
var ButtonDisabled = function (_a) {
|
|
91
|
+
var children = _a.children, onClick = _a.onClick;
|
|
92
|
+
return (jsx(Button, __assign({ disabled: true, onClick: onClick }, { children: children }), void 0));
|
|
93
|
+
};
|
|
94
|
+
|
|
95
|
+
export default story;
|
|
96
|
+
export { ButtonDisabled, ButtonLoading, ButtonOnBackgrounds, ButtonStory, ButtonVariants, ButtonWithIconOnly, ButtonWithIcons };
|
|
97
|
+
//# sourceMappingURL=index.stories.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.stories.js","sources":["../../../../../src/lib/components/button/index.stories.tsx"],"sourcesContent":["import { Button, ButtonProps, ButtonVariant } from '.';\nimport { FileIcon } from '../icon';\n\nconst story = {\n title: 'JSX/Button',\n component: Button,\n argTypes: {\n children: {\n control: { type: 'text' },\n defaultValue: 'Click me',\n description: 'Text that is displayed inside the button. Hidden when hideLabel is set as true',\n },\n variant: {\n defaultValue: 'filledColor',\n description: 'Variant that defines the style of the Button',\n },\n leftIcon: {\n description: 'Icon to be displayed on the left side of the button. This makes use of [dirty swan Icon component](http://localhost:9009/?path=/docs/jsx-icon--icon-story).',\n },\n rightIcon: {\n description: 'Icon to be displayed on the right side of the button. This makes use of [dirty swan Icon component](http://localhost:9009/?path=/docs/jsx-icon--icon-story).',\n },\n loading: {\n defaultValue: false,\n description: 'Show button on a loading state.',\n },\n hideLabel: {\n defaultValue: false,\n description: 'Show button as an icon only button. This hides the label but still keeps it for accessibility purposes.',\n },\n },\n parameters: {\n design: {\n url: 'https://www.figma.com/embed?embed_host=share&url=https%3A%2F%2Fwww.figma.com%2Ffile%2FMKs4cbojdVOBKUxv7okb93%2FDirty-Swan-Pattern-Library%3Fnode-id%3D251%253A26',\n type: 'figma'\n },\n },\n};\n\nexport const ButtonStory = ({\n className,\n loading = false,\n children,\n variant,\n hideLabel\n}: ButtonProps) => (\n <div className='wmx6'>\n <Button\n className={className}\n loading={loading}\n variant={variant}\n hideLabel={hideLabel}\n >\n {children}\n </Button>\n </div>\n);\n\nButtonStory.storyName = \"Button\";\n\nexport const ButtonVariants = ({ children, onClick }: ButtonProps) => (\n <div>\n <h3 className='p-h3 mb24'>Filled variants</h3>\n <div className='d-flex gap16 p24 bg-grey-300 br8'>\n {[ \"filledColor\", \"filledGray\", \"filledWhite\"].map((variant) => (\n <div key={variant}>\n <h4 className='p-h4 mb16'>\n {variant}\n </h4>\n\n <Button onClick={onClick} variant={variant as ButtonVariant}>\n {children}\n </Button>\n </div>\n ))}\n </div>\n\n <h3 className='p-h3 my24'>Text variants</h3>\n <div className='d-flex gap16 p24 bg-grey-300 br8'>\n {[\"textColor\", \"textWhite\"].map((variant, index) => (\n <div key={variant} className={variant === \"textWhite\" ? \"bg-primary-500 px32 br8\" : \"\"}>\n <h4 className={`p-h4 mb16 ${variant === \"textWhite\" ?? \"tc-white\"}`}>\n {variant}\n </h4>\n\n <Button onClick={onClick} variant={variant as ButtonVariant}>\n {children}\n </Button>\n </div>\n ))}\n </div>\n\n <h3 className='p-h3 my24'>Outline variants</h3>\n <div className='d-flex gap16 p24 bg-primary-500 br8'>\n <div>\n <h4 className='p-h4 mb16 tc-white'>\n outlineWhite\n </h4>\n\n <Button onClick={onClick} variant={'outlineWhite'}>\n {children}\n </Button>\n </div>\n </div>\n \n <h3 className='p-h3 my24'>State variants</h3>\n <div className='d-flex gap16 p24 bg-grey-300 br8'>\n {[\"filledSuccess\", \"filledError\"].map((variant) => (\n <div key={variant}>\n <h4 className='p-h4 mb16'>\n {variant}\n </h4>\n\n <Button onClick={onClick} variant={variant as ButtonVariant}>\n {children}\n </Button>\n </div>\n ))}\n </div>\n </div>\n);\n\nexport const ButtonOnBackgrounds = ({ onClick }: ButtonProps) => (\n <div>\n <div className='p24 bg-white br8'>\n <h3 className='p-h3 mb16'>On white</h3>\n <div className='d-flex gap16'>\n {[ \"filledColor\", \"filledGray\", \"textColor\"].map((variant) => (\n <Button key={variant} onClick={onClick} variant={variant as ButtonVariant}>\n {variant}\n </Button>\n ))}\n </div>\n </div>\n\n <div className='p24 bg-grey-200 br8'>\n <h3 className='p-h3 mb16'>On grey</h3>\n <div className='d-flex gap16'>\n {[ \"filledColor\", \"filledWhite\", \"textColor\"].map((variant) => (\n <Button key={variant} onClick={onClick} variant={variant as ButtonVariant}>\n {variant}\n </Button>\n ))}\n </div>\n </div>\n\n <div className='p24 bg-primary-500 br8'>\n <h3 className='p-h3 mb16 tc-white'>On primary</h3>\n <div className='d-flex gap16'>\n {[\"filledWhite\", \"outlineWhite\", \"textWhite\"].map((variant) => (\n <Button key={variant} onClick={onClick} variant={variant as ButtonVariant}>\n {variant}\n </Button>\n ))}\n </div>\n </div>\n </div>\n);\n\nexport const ButtonWithIcons = ({ children, onClick }: ButtonProps) => (\n <div className='d-flex gap16'>\n <Button leftIcon={<FileIcon />} onClick={onClick}>\n {children}\n </Button>\n <Button rightIcon={<FileIcon />} onClick={onClick}>\n {children}\n </Button>\n </div>\n);\n\nexport const ButtonWithIconOnly = ({ children, onClick }: ButtonProps) => (\n <Button leftIcon={<FileIcon />} hideLabel onClick={onClick}>\n {children}\n </Button>\n);\n\nexport const ButtonLoading = ({ children, onClick }: ButtonProps) => (\n <Button loading onClick={onClick}>\n {children}\n </Button>\n);\n\nexport const ButtonDisabled = ({ children, onClick }: ButtonProps) => (\n <Button disabled onClick={onClick}>\n {children}\n </Button>\n);\n\nexport default story;\n"],"names":["_jsx","_jsxs"],"mappings":"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"}
|
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
import { _ as __assign, b as __awaiter, c as __generator } from '../../tslib.es6-5bc94358.js';
|
|
2
|
+
import { jsx } from 'react/jsx-runtime';
|
|
3
|
+
import { c as customRender, s as screen } from '../../customRender-9fd06f5b.js';
|
|
4
|
+
import { Button } from './index.js';
|
|
5
|
+
import 'react';
|
|
6
|
+
import 'react-dom';
|
|
7
|
+
import '../../_commonjsHelpers-e7f67fd8.js';
|
|
8
|
+
import 'react-dom/test-utils';
|
|
9
|
+
import '../../index-6ea95111.js';
|
|
10
|
+
|
|
11
|
+
var buttonContent = "Click here";
|
|
12
|
+
var FakeIcon = function () { return (jsx("span", { children: "ABC" }, void 0)); };
|
|
13
|
+
var mockOnClick = jest.fn();
|
|
14
|
+
describe('Button component', function () {
|
|
15
|
+
it('Should render content', function () {
|
|
16
|
+
customRender(jsx(Button, { children: buttonContent }, void 0));
|
|
17
|
+
expect(screen.getByText(buttonContent)).toBeInTheDocument();
|
|
18
|
+
});
|
|
19
|
+
it('Should render leftIcon', function () {
|
|
20
|
+
customRender(jsx(Button, __assign({ leftIcon: jsx(FakeIcon, {}, void 0) }, { children: buttonContent }), void 0));
|
|
21
|
+
expect(screen.getByText("ABC")).toBeInTheDocument();
|
|
22
|
+
});
|
|
23
|
+
it('Should render rightIcon', function () {
|
|
24
|
+
customRender(jsx(Button, __assign({ rightIcon: jsx(FakeIcon, {}, void 0) }, { children: buttonContent }), void 0));
|
|
25
|
+
expect(screen.getByText("ABC")).toBeInTheDocument();
|
|
26
|
+
});
|
|
27
|
+
it('Should be disabled', function () {
|
|
28
|
+
customRender(jsx(Button, __assign({ disabled: true }, { children: buttonContent }), void 0));
|
|
29
|
+
expect(screen.getByTestId("button")).toBeDisabled();
|
|
30
|
+
});
|
|
31
|
+
it('Should show loading state', function () {
|
|
32
|
+
customRender(jsx(Button, __assign({ loading: true }, { children: buttonContent }), void 0));
|
|
33
|
+
expect(screen.getByTestId("button")).toHaveClass('p-btn--loading');
|
|
34
|
+
});
|
|
35
|
+
it('Should call onClick clicked', function () { return __awaiter(void 0, void 0, void 0, function () {
|
|
36
|
+
var user;
|
|
37
|
+
return __generator(this, function (_a) {
|
|
38
|
+
switch (_a.label) {
|
|
39
|
+
case 0:
|
|
40
|
+
user = customRender(jsx(Button, __assign({ onClick: mockOnClick }, { children: buttonContent }), void 0)).user;
|
|
41
|
+
return [4 /*yield*/, user.click(screen.getByText(buttonContent))];
|
|
42
|
+
case 1:
|
|
43
|
+
_a.sent();
|
|
44
|
+
expect(mockOnClick).toHaveBeenCalledTimes(1);
|
|
45
|
+
return [2 /*return*/];
|
|
46
|
+
}
|
|
47
|
+
});
|
|
48
|
+
}); });
|
|
49
|
+
});
|
|
50
|
+
//# sourceMappingURL=index.test.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.test.js","sources":["../../../../../src/lib/components/button/index.test.tsx"],"sourcesContent":["import { render, screen } from '../../util/testUtils';\n\nimport { Button } from '.';\n\nconst buttonContent = \"Click here\";\n\nconst FakeIcon = () => (\n <span>ABC</span>\n)\n\nconst mockOnClick = jest.fn();\n\ndescribe('Button component', () => {\n it('Should render content', () => {\n render(<Button>{buttonContent}</Button>);\n\n expect(screen.getByText(buttonContent)).toBeInTheDocument();\n });\n \n it('Should render leftIcon', () => {\n render(<Button leftIcon={<FakeIcon />}>{buttonContent}</Button>);\n\n expect(screen.getByText(\"ABC\")).toBeInTheDocument();\n });\n \n it('Should render rightIcon', () => {\n render(<Button rightIcon={<FakeIcon />}>{buttonContent}</Button>);\n\n expect(screen.getByText(\"ABC\")).toBeInTheDocument();\n });\n \n it('Should be disabled', () => {\n render(<Button disabled>{buttonContent}</Button>);\n\n expect(screen.getByTestId(\"button\")).toBeDisabled();\n });\n \n it('Should show loading state', () => {\n render(<Button loading>{buttonContent}</Button>);\n\n expect(screen.getByTestId(\"button\")).toHaveClass('p-btn--loading');\n });\n \n it('Should call onClick clicked', async () => {\n const { user } = render(<Button onClick={mockOnClick}>{buttonContent}</Button>);\n\n await user.click(screen.getByText(buttonContent));\n\n expect(mockOnClick).toHaveBeenCalledTimes(1)\n });\n});\n"],"names":["_jsx","render"],"mappings":";;;;;;;;;;AAIA,IAAM,aAAa,GAAG,YAAY,CAAC;AAEnC,IAAM,QAAQ,GAAG,cAAM,QACrBA,wCAAgB,IACjB,CAAA;AAED,IAAM,WAAW,GAAG,IAAI,CAAC,EAAE,EAAE,CAAC;AAE9B,QAAQ,CAAC,kBAAkB,EAAE;IAC3B,EAAE,CAAC,uBAAuB,EAAE;QAC1BC,YAAM,CAACD,IAAC,MAAM,cAAE,aAAa,WAAU,CAAC,CAAC;QAEzC,MAAM,CAAC,MAAM,CAAC,SAAS,CAAC,aAAa,CAAC,CAAC,CAAC,iBAAiB,EAAE,CAAC;KAC7D,CAAC,CAAC;IAEH,EAAE,CAAC,wBAAwB,EAAE;QAC3BC,YAAM,CAACD,IAAC,MAAM,aAAC,QAAQ,EAAEA,IAAC,QAAQ,aAAG,gBAAG,aAAa,YAAU,CAAC,CAAC;QAEjE,MAAM,CAAC,MAAM,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,CAAC,iBAAiB,EAAE,CAAC;KACrD,CAAC,CAAC;IAEH,EAAE,CAAC,yBAAyB,EAAE;QAC5BC,YAAM,CAACD,IAAC,MAAM,aAAC,SAAS,EAAEA,IAAC,QAAQ,aAAG,gBAAG,aAAa,YAAU,CAAC,CAAC;QAElE,MAAM,CAAC,MAAM,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,CAAC,iBAAiB,EAAE,CAAC;KACrD,CAAC,CAAC;IAEH,EAAE,CAAC,oBAAoB,EAAE;QACvBC,YAAM,CAACD,IAAC,MAAM,aAAC,QAAQ,sBAAE,aAAa,YAAU,CAAC,CAAC;QAElD,MAAM,CAAC,MAAM,CAAC,WAAW,CAAC,QAAQ,CAAC,CAAC,CAAC,YAAY,EAAE,CAAC;KACrD,CAAC,CAAC;IAEH,EAAE,CAAC,2BAA2B,EAAE;QAC9BC,YAAM,CAACD,IAAC,MAAM,aAAC,OAAO,sBAAE,aAAa,YAAU,CAAC,CAAC;QAEjD,MAAM,CAAC,MAAM,CAAC,WAAW,CAAC,QAAQ,CAAC,CAAC,CAAC,WAAW,CAAC,gBAAgB,CAAC,CAAC;KACpE,CAAC,CAAC;IAEH,EAAE,CAAC,8BAA8B,EAAE;;;;;oBACzB,IAAI,GAAKC,YAAM,CAACD,IAAC,MAAM,aAAC,OAAO,EAAE,WAAW,gBAAG,aAAa,YAAU,CAAC,KAAnE,CAAoE;oBAEhF,qBAAM,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,SAAS,CAAC,aAAa,CAAC,CAAC,EAAA;;oBAAjD,SAAiD,CAAC;oBAElD,MAAM,CAAC,WAAW,CAAC,CAAC,qBAAqB,CAAC,CAAC,CAAC,CAAA;;;;SAC7C,CAAC,CAAC;AACL,CAAC,CAAC"}
|