@mailstep/design-system 0.6.10 → 0.6.12
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/package.json +1 -1
- package/ui/Blocks/CommonGrid/CommonGridContainer.js +1 -1
- package/ui/Blocks/CommonGrid/components/ActionHead/ActionHead.js +1 -1
- package/ui/Blocks/CommonGrid/components/ButtonMore/ButtonMore.js +1 -1
- package/ui/Blocks/CommonGrid/components/ControlButtons/ControlButtons.js +1 -1
- package/ui/Blocks/CommonGrid/components/DataRow.js +1 -1
- package/ui/Blocks/CommonGrid/components/ExtraControlButtons/ExtraControlButtons.js +3 -3
- package/ui/Blocks/CommonGrid/components/gridCells/ButtonInCell.js +1 -1
- package/ui/Blocks/CommonGrid/components/gridCells/EnumInCell.d.ts +2 -1
- package/ui/Blocks/CommonGrid/components/gridCells/EnumInCell.js +2 -2
- package/ui/Blocks/CommonGrid/index.d.ts +0 -1
- package/ui/Blocks/CommonGrid/index.js +0 -1
- package/ui/Blocks/CommonGrid/styles.d.ts +1 -1
- package/ui/Blocks/CommonGrid/types.d.ts +3 -1
- package/ui/Blocks/LightBox/LightBox.js +1 -1
- package/ui/Blocks/Modal/Modal.js +1 -1
- package/ui/Elements/Button/Button.d.ts +1 -1
- package/ui/Elements/Button/Button.js +2 -2
- package/ui/Elements/Button/stories/Button.stories.d.ts +12 -10
- package/ui/Elements/Button/stories/Button.stories.js +61 -27
- package/ui/Elements/Button/styles.d.ts +5 -8
- package/ui/Elements/Button/styles.js +15 -31
- package/ui/Elements/Button/types.d.ts +7 -10
- package/ui/Elements/DropdownSelect/DropdownSelect.d.ts +3 -2
- package/ui/Elements/DropdownSelect/DropdownSelect.js +2 -2
- package/ui/Elements/Select/themes/selectStyles.js +2 -2
- package/ui/ThemeProvider/themes/default.js +1 -1
- package/ui/index.es.js +10192 -10255
- package/ui/index.umd.js +497 -526
- package/ui/Blocks/CommonGrid/StandardButtons.d.ts +0 -4
- package/ui/Blocks/CommonGrid/StandardButtons.js +0 -36
package/package.json
CHANGED
|
@@ -61,6 +61,6 @@ var StyledCommonGrid = function (props) {
|
|
|
61
61
|
gridSelectors: gridSelectors,
|
|
62
62
|
onClose: onClose,
|
|
63
63
|
}), columnsConfigValues = _d.columnsConfigValues, setColumnsConfigOptions = _d.setColumnsConfigOptions, onConfirmForm = _d.onConfirmForm, resetColumnConfig = _d.resetColumnConfig, handleDragEnd = _d.handleDragEnd, onCloseForm = _d.onCloseForm, displayColumnsDefinitions = _d.displayColumnsDefinitions, manageColumnsFormDefinitions = _d.manageColumnsFormDefinitions;
|
|
64
|
-
return (_jsxs(ContentContainer, { children: [_jsxs(CommonGridWrap, { children: [_jsx(HidePrint, { children: _jsxs(StyledButtonStrip, { className: "buttonsStrip", children: [!hideControlButtons && (_jsx(ControlButtons, { extraControlButtons: extraControlButtons, gridActions: gridActions, gridSelectors: gridSelectors, eshopSelect: eshopSelect })), _jsx(StyledColumnButton, { type: "button",
|
|
64
|
+
return (_jsxs(ContentContainer, { children: [_jsxs(CommonGridWrap, { children: [_jsx(HidePrint, { children: _jsxs(StyledButtonStrip, { className: "buttonsStrip", children: [!hideControlButtons && (_jsx(ControlButtons, { extraControlButtons: extraControlButtons, gridActions: gridActions, gridSelectors: gridSelectors, eshopSelect: eshopSelect })), _jsx(StyledColumnButton, { type: "button", variant: "ghost", appearance: "primary", iconLeft: _jsx(Settings2, {}), onClick: openManageColumnForm, children: _jsx(H6, { variant: "semiBold", mt: 0, mb: 0, children: _jsx(Trans, { id: "manageColumn.title", message: "Manage column" }) }) })] }) }), _jsx(CommonGridWithStyles, __assign({}, passDownProps, modifiedPassDownProps, { filters: filters, gridRef: gridRef, height: gridHeight, floatingButtonProps: floatingButtonProps, handleDragEnd: handleDragEnd(false), displayColumnsDefinitions: displayColumnsDefinitions, hasColouredRows: true }))] }), _jsx(HidePrint, { children: _jsxs(BottomWrapper, { ref: paginationRef, isFixed: !!gridHeight, children: [processCheckedValues && (_jsx(ActionHead, { rowsData: rowsData, onBatchAction: onBatchAction, gridActions: gridActions, gridSelectors: gridSelectors, actionColumn: actionColumnDefinition, processCheckedValues: processCheckedValues, processCheckedValuesTitle: processCheckedValuesTitle })), _jsxs(x.div, { display: "flex", justifyContent: "center", alignItems: "center", className: "paginatorWrapper", w: "100%", h: window.innerWidth > 1204 ? '60px' : '32px', children: [_jsx(Pagination, { page: gridSelectors === null || gridSelectors === void 0 ? void 0 : gridSelectors.page, itemCount: passDownProps === null || passDownProps === void 0 ? void 0 : passDownProps.totalRowsCount, itemPerPage: (gridSelectors === null || gridSelectors === void 0 ? void 0 : gridSelectors.rowsPerPage) || 10, onPageChange: gridActions === null || gridActions === void 0 ? void 0 : gridActions.setPage, customPaginationHandler: customPaginationHandler, radius: window.innerWidth < 768 ? 3 : 5, rate: window.innerWidth < 768 ? 1 : 4 }), _jsx(TablePagination, { gridActions: gridActions, gridSelectors: gridSelectors, customPaginationHandler: customPaginationHandler })] })] }) }), manageColumnFormVisible && (_jsx(Modal, { title: _jsx(Trans, { id: "manageColumn.title", message: "Manage columns" }), onClose: onCloseForm, onCancel: onCloseForm, onExtraAction: resetColumnConfig, onConfirm: onConfirmForm, width: "auto", minWidth: "350px", hasFooter: true, extraActionLabel: _jsx(Trans, { id: "dataGrid.buttonClearConfig", message: "Reset config" }), cancelLabel: _jsx(Trans, { id: "form.buttonCancel", message: "Cancel" }), confirmLabel: _jsx(Trans, { id: "form.buttonConfirm", message: "Confirm" }), children: _jsx(ManageColumnForm, { columns: manageColumnsFormDefinitions, columnsConfigValues: columnsConfigValues, setColumnsConfigOptions: setColumnsConfigOptions, handleDragEnd: handleDragEnd(true) }) }))] }));
|
|
65
65
|
};
|
|
66
66
|
export default StyledCommonGrid;
|
|
@@ -44,7 +44,7 @@ var ActionHead = function (_a) {
|
|
|
44
44
|
id: 'dataGrid.checkedRowsCount',
|
|
45
45
|
message: "Selected {checkedRowsCount} items",
|
|
46
46
|
values: { checkedRowsCount: checkedRowsCount },
|
|
47
|
-
}) }), _jsxs(ButtonsWrap, { children: [_jsx(Button, { type: "button", onClick: checkAll, appearance: "
|
|
47
|
+
}) }), _jsxs(ButtonsWrap, { children: [_jsx(Button, { type: "button", onClick: checkAll, appearance: "secondary", variant: "default", "data-cy": "checkAllBtn", disabled: checked, children: _jsx(Trans, { id: "dataGrid.checkAll", message: "Check all" }) }), processCheckedValues && (_jsx(Button, { type: "button", onClick: processCheckedValues, appearance: "primary", variant: 'default', "data-cy": "exportBtn", disabled: !rowsData.length, children: processCheckedValuesTitle ? (processCheckedValuesTitle) : (_jsx(Trans, { id: "dataGrid.actionOptions.export", message: "Export" })) })), ((_b = actionColumn === null || actionColumn === void 0 ? void 0 : actionColumn.actionOptions) === null || _b === void 0 ? void 0 : _b.length) && (_jsx(ButtonMore, { items: actionsOptions, disabled: !enabledActions.length || !rowsData.length, dropdownPosition: "top" }))] })] }) })) }));
|
|
48
48
|
};
|
|
49
49
|
export default ActionHead;
|
|
50
50
|
var templateObject_1, templateObject_2, templateObject_3, templateObject_4, templateObject_5;
|
|
@@ -26,7 +26,7 @@ var ButtonMore = function (_a) {
|
|
|
26
26
|
var handleClick = useCallback(function () {
|
|
27
27
|
setActionsVisible(!actionsVisible);
|
|
28
28
|
}, [actionsVisible]);
|
|
29
|
-
return (_jsxs(ButtonWrapper, { ref: ref, children: [_jsx(Button, { onClick: handleClick, icon: "ellipsisVertical", appearance: "
|
|
29
|
+
return (_jsxs(ButtonWrapper, { ref: ref, children: [_jsx(Button, { onClick: handleClick, icon: "ellipsisVertical", appearance: "secondary", variant: "icon", type: "button", "data-cy": "gridActionBtn", disabled: disabled }), _jsx(StyledDropdownMenu, { showMenu: actionsVisible, items: items, dropdownPosition: dropdownPosition })] }));
|
|
30
30
|
};
|
|
31
31
|
export default ButtonMore;
|
|
32
32
|
var templateObject_1, templateObject_2;
|
|
@@ -14,7 +14,7 @@ var ControlButtons = function (_a) {
|
|
|
14
14
|
var resetFilters = gridActions.resetFilters;
|
|
15
15
|
var filter = gridSelectors.filter;
|
|
16
16
|
var filtersOn = !!filter && Object.values(filter).some(function (item) { var _a; return ((_a = item.value) === null || _a === void 0 ? void 0 : _a.value) !== '' && item.value !== ''; });
|
|
17
|
-
return (_jsxs(Row, { children: [eshopSelect && (_jsx(x.div, { children: _jsx(ExtraControlButtons, { extraControlButtons: eshopSelect, targetPosition: ExtraControlButtonPosition.TopRight }) })), _jsx(ExtraControlButtons, { extraControlButtons: extraControlButtons, targetPosition: ExtraControlButtonPosition.TopLeft }), _jsx(x.div, { children: filtersOn && (_jsx(Button, { type: "button", onClick: resetFilters, appearance: "
|
|
17
|
+
return (_jsxs(Row, { children: [eshopSelect && (_jsx(x.div, { children: _jsx(ExtraControlButtons, { extraControlButtons: eshopSelect, targetPosition: ExtraControlButtonPosition.TopRight }) })), _jsx(ExtraControlButtons, { extraControlButtons: extraControlButtons, targetPosition: ExtraControlButtonPosition.TopLeft }), _jsx(x.div, { children: filtersOn && (_jsx(Button, { type: "button", onClick: resetFilters, variant: "default", appearance: "secondary", "data-cy": "resetFiltersBtn", children: _jsx(Trans, { id: "dataGrid.buttonClearSettings", message: "Reset filters" }) })) })] }));
|
|
18
18
|
};
|
|
19
19
|
export default ControlButtons;
|
|
20
20
|
var templateObject_1;
|
|
@@ -105,6 +105,6 @@ var DataRow = function (_a) {
|
|
|
105
105
|
return actionColumn ? __assign({}, getActionCellSizeProps(actionColumn)) : {};
|
|
106
106
|
}, [actionColumn]);
|
|
107
107
|
var displayReadEditCell = ((_c = actionColumn === null || actionColumn === void 0 ? void 0 : actionColumn.actionOptions) === null || _c === void 0 ? void 0 : _c.length) || (actionColumn === null || actionColumn === void 0 ? void 0 : actionColumn.canRowEdit) || (actionColumn === null || actionColumn === void 0 ? void 0 : actionColumn.canRowRead) || (actionColumn === null || actionColumn === void 0 ? void 0 : actionColumn.forceCheckboxes);
|
|
108
|
-
return (_jsxs(StyledDataRow, { className: rowClassName, hasRowClick: !!onRowClick, onMouseDown: handleMouseDown, onMouseUp: handleMouseUp, isEven: isEven, children: [actionColumn && (_jsxs(_Fragment, { children: [displayReadEditCell && (_jsxs(Cell, { className: "cell", style: actionColumnStyle, children: [((_d = actionColumn === null || actionColumn === void 0 ? void 0 : actionColumn.actionOptions) === null || _d === void 0 ? void 0 : _d.length) || (actionColumn === null || actionColumn === void 0 ? void 0 : actionColumn.forceCheckboxes) ? (_jsx(Checkbox, { checked: isChecked, onChange: onCheckboxChange, label: "" })) : null, _jsxs(x.div, { children: [(isFunction(actionColumn.canRowRead) ? actionColumn.canRowRead(rowData) : actionColumn.canRowRead) && (_jsx(RowActionComponent, __assign({}, rowActionProps('read'), { children: _jsx(Button, { type: "button",
|
|
108
|
+
return (_jsxs(StyledDataRow, { className: rowClassName, hasRowClick: !!onRowClick, onMouseDown: handleMouseDown, onMouseUp: handleMouseUp, isEven: isEven, children: [actionColumn && (_jsxs(_Fragment, { children: [displayReadEditCell && (_jsxs(Cell, { className: "cell", style: actionColumnStyle, children: [((_d = actionColumn === null || actionColumn === void 0 ? void 0 : actionColumn.actionOptions) === null || _d === void 0 ? void 0 : _d.length) || (actionColumn === null || actionColumn === void 0 ? void 0 : actionColumn.forceCheckboxes) ? (_jsx(Checkbox, { checked: isChecked, onChange: onCheckboxChange, label: "" })) : null, _jsxs(x.div, { children: [(isFunction(actionColumn.canRowRead) ? actionColumn.canRowRead(rowData) : actionColumn.canRowRead) && (_jsx(RowActionComponent, __assign({}, rowActionProps('read'), { children: _jsx(Button, { type: "button", variant: "default", appearance: "primary", children: _jsx(EyeOpenIcon, { width: "16px", height: "16px" }) }) }))), (isFunction(actionColumn.canRowEdit) ? actionColumn.canRowEdit(rowData) : actionColumn.canRowEdit) && (_jsx(RowActionComponent, __assign({}, rowActionProps('edit'), { children: _jsx(Button, { type: "button", variant: "default", appearance: "primary", children: _jsx(EditIcon, { width: "16px", height: "16px" }) }) })))] })] })), (actionColumn === null || actionColumn === void 0 ? void 0 : actionColumn.addRowNumbers) && (_jsx(Cell, { className: "cell", style: actionColumnStyle, children: _jsx(x.div, { children: rowIndex }) }))] })), columns.map(function (column, key) { return (_jsx(MemoDataCell, { column: column, rowData: rowData, onRowAction: handleRowAction, displayColumnWidth: displayColumnsWidth[column.name], group: groups === null || groups === void 0 ? void 0 : groups[key] }, column.name)); })] }));
|
|
109
109
|
};
|
|
110
110
|
export default DataRow;
|
|
@@ -20,14 +20,14 @@ import DropdownSelect from '../../../../Elements/DropdownSelect';
|
|
|
20
20
|
export var Row = styled.div(templateObject_1 || (templateObject_1 = __makeTemplateObject(["\n display: flex;\n & > * {\n margin-right: 12px;\n }\n z-index: 2;\n"], ["\n display: flex;\n & > * {\n margin-right: 12px;\n }\n z-index: 2;\n"])));
|
|
21
21
|
var StyledButton = styled(Button)(templateObject_2 || (templateObject_2 = __makeTemplateObject(["\n display: none;\n\n @media (min-width: 1024px) {\n display: block;\n }\n"], ["\n display: none;\n\n @media (min-width: 1024px) {\n display: block;\n }\n"])));
|
|
22
22
|
var ControlButton = function (_a) {
|
|
23
|
-
var node = _a.node, label = _a.label,
|
|
23
|
+
var node = _a.node, label = _a.label, appearance = _a.appearance, variant = _a.variant, disabled = _a.disabled, onClick = _a.onClick, onSelect = _a.onSelect, options = _a.options, hideChevron = _a.hideChevron;
|
|
24
24
|
if (node)
|
|
25
25
|
return _jsx(_Fragment, { children: node });
|
|
26
26
|
if (options) {
|
|
27
|
-
return (_jsx(DropdownSelect, { label: label || '', appearance:
|
|
27
|
+
return (_jsx(DropdownSelect, { label: label || '', appearance: appearance || 'secondary', variant: variant || 'default', options: options, showChevron: !hideChevron, onSelect: onSelect, disabled: disabled }));
|
|
28
28
|
}
|
|
29
29
|
else {
|
|
30
|
-
return (_jsx(StyledButton, { type: "button", onClick: onClick, disabled: disabled, appearance:
|
|
30
|
+
return (_jsx(StyledButton, { type: "button", onClick: onClick, disabled: disabled, variant: variant || 'default', appearance: appearance || 'secondary', children: label }));
|
|
31
31
|
}
|
|
32
32
|
};
|
|
33
33
|
var ExtraControlButtons = function (_a) {
|
|
@@ -12,5 +12,5 @@ var __assign = (this && this.__assign) || function () {
|
|
|
12
12
|
import { jsx as _jsx } from "react/jsx-runtime";
|
|
13
13
|
import Button from '../../../../Elements/Button/Button';
|
|
14
14
|
export var ButtonInCell = function (props) {
|
|
15
|
-
return _jsx(Button, __assign({}, props, { appearance: "
|
|
15
|
+
return _jsx(Button, __assign({}, props, { appearance: "primary", variant: "link" }));
|
|
16
16
|
};
|
|
@@ -4,6 +4,7 @@ type Props = {
|
|
|
4
4
|
appearanceMap: Record<string, FlagAppearanceType>;
|
|
5
5
|
enumObj: Record<string, () => string>;
|
|
6
6
|
size?: 'default' | 'small' | 'wide' | 'fitContent';
|
|
7
|
+
onClick?: () => void;
|
|
7
8
|
};
|
|
8
|
-
export declare const EnumInCell: ({ value, enumObj, appearanceMap, size }: Props) => JSX.Element | null;
|
|
9
|
+
export declare const EnumInCell: ({ value, enumObj, appearanceMap, size, onClick }: Props) => JSX.Element | null;
|
|
9
10
|
export {};
|
|
@@ -19,7 +19,7 @@ import styled from '@xstyled/styled-components';
|
|
|
19
19
|
import HighlightBox from '../../../../Elements/HighlightBox';
|
|
20
20
|
var Center = styled.div(templateObject_1 || (templateObject_1 = __makeTemplateObject(["\n display: flex;\n justify-content: flex-start;\n width: 100%;\n"], ["\n display: flex;\n justify-content: flex-start;\n width: 100%;\n"])));
|
|
21
21
|
export var EnumInCell = function (_a) {
|
|
22
|
-
var value = _a.value, enumObj = _a.enumObj, appearanceMap = _a.appearanceMap, size = _a.size;
|
|
22
|
+
var value = _a.value, enumObj = _a.enumObj, appearanceMap = _a.appearanceMap, size = _a.size, onClick = _a.onClick;
|
|
23
23
|
var finalLabel = useMemo(function () {
|
|
24
24
|
return enumObj[value] ? enumObj[value]() : value;
|
|
25
25
|
}, [enumObj, value]);
|
|
@@ -28,6 +28,6 @@ export var EnumInCell = function (_a) {
|
|
|
28
28
|
}, [appearanceMap, value]);
|
|
29
29
|
if (!finalLabel)
|
|
30
30
|
return null;
|
|
31
|
-
return (_jsx(Center, { children: _jsx(HighlightBox, __assign({}, coloringProp, { size: size, prefix: "grid", children: finalLabel })) }));
|
|
31
|
+
return (_jsx(Center, { onClick: onClick, children: _jsx(HighlightBox, __assign({}, coloringProp, { size: size, prefix: "grid", children: finalLabel })) }));
|
|
32
32
|
};
|
|
33
33
|
var templateObject_1;
|
|
@@ -3,7 +3,6 @@ import withReduxActions from './HoC/withReduxActions';
|
|
|
3
3
|
import reducer, { actionPrefix, createActions, createSelectors, createFullSelector, actionTypes } from './store';
|
|
4
4
|
import useFloatingButton from './hooks/useFloatingButton';
|
|
5
5
|
import * as Types from './types';
|
|
6
|
-
export * from './StandardButtons';
|
|
7
6
|
export * from './components/gridCells';
|
|
8
7
|
import { useAddFilter } from './hooks/useAddFilter';
|
|
9
8
|
import { useEvent } from './hooks/useEvent';
|
|
@@ -3,7 +3,6 @@ import withReduxActions from './HoC/withReduxActions';
|
|
|
3
3
|
import reducer, { actionPrefix, createActions, createSelectors, createFullSelector, actionTypes } from './store';
|
|
4
4
|
import useFloatingButton from './hooks/useFloatingButton';
|
|
5
5
|
import * as Types from './types';
|
|
6
|
-
export * from './StandardButtons';
|
|
7
6
|
export * from './components/gridCells';
|
|
8
7
|
import { useAddFilter } from './hooks/useAddFilter';
|
|
9
8
|
import { useEvent } from './hooks/useEvent';
|
|
@@ -5,7 +5,7 @@ export declare const BottomWrapper: import("styled-components").StyledComponent<
|
|
|
5
5
|
export declare const ContentContainer: import("styled-components").StyledComponent<(props: Omit<import("react").DetailedHTMLProps<import("react").HTMLAttributes<HTMLDivElement>, HTMLDivElement>, "color">) => import("react").ReactElement<any, "div">, import("@xstyled/system").Theme, import("@xstyled/system").SystemProps<import("@xstyled/system").Theme>, "color">;
|
|
6
6
|
export declare const CommonGridWrap: import("styled-components").StyledComponent<(props: Omit<import("react").DetailedHTMLProps<import("react").HTMLAttributes<HTMLDivElement>, HTMLDivElement>, "color">) => import("react").ReactElement<any, "div">, import("@xstyled/system").Theme, import("@xstyled/system").SystemProps<import("@xstyled/system").Theme>, "color">;
|
|
7
7
|
export declare const StyledButtonStrip: import("styled-components").StyledComponent<(props: Omit<import("react").DetailedHTMLProps<import("react").HTMLAttributes<HTMLDivElement>, HTMLDivElement>, "color">) => import("react").ReactElement<any, "div">, import("@xstyled/system").Theme, import("@xstyled/system").SystemProps<import("@xstyled/system").Theme>, "color">;
|
|
8
|
-
export declare const StyledColumnButton: import("styled-components").StyledComponent<({ isLoading, loadingText, icon, appearance, disabled,
|
|
8
|
+
export declare const StyledColumnButton: import("styled-components").StyledComponent<({ isLoading, loadingText, icon, iconLeft, iconRight, variant, appearance, disabled, fullWidth, buttonRef, onClick, ...props }: import("../../Elements/Button/types").Props) => JSX.Element, import("@xstyled/system").Theme, {}, never>;
|
|
9
9
|
export declare const CommonGridWithStyles: import("styled-components").StyledComponent<({ filters, handleDragEnd, gridSelectors, gridActions, isLoading, rowsData, hasColouredRows, columnsDefinitions, actionColumnDefinition, allowRowSelect, allowRowSelectOnAction, onRowAction, onRowEditClick, onRowReadClick, onRowClick, columnLayout, displayColumnsDefinitions, className, gridRef, minColumnWidth, errorMessage, floatingButtonProps, }: import("./types").CommonGridProps & {
|
|
10
10
|
filters?: import("./types").FiltersConfig | undefined;
|
|
11
11
|
handleDragEnd: (item: import("react-beautiful-dnd").DropResult) => void;
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import React from 'react';
|
|
2
|
+
import { AppearanceValue, VariantValue } from '../../Elements/Button/types';
|
|
2
3
|
export declare const rowClassSymbol: unique symbol;
|
|
3
4
|
type Option = {
|
|
4
5
|
value: string | number;
|
|
@@ -274,7 +275,8 @@ export type ExtraControlButton = {
|
|
|
274
275
|
onClick?: () => void;
|
|
275
276
|
onSelect?: (value: string) => void;
|
|
276
277
|
label?: string | JSX.Element;
|
|
277
|
-
|
|
278
|
+
appearance?: AppearanceValue;
|
|
279
|
+
variant?: VariantValue;
|
|
278
280
|
options?: {
|
|
279
281
|
label: string;
|
|
280
282
|
value: string;
|
|
@@ -9,6 +9,6 @@ export var LightBox = function (_a) {
|
|
|
9
9
|
return null;
|
|
10
10
|
return (_jsx(Modal, { isShown: isLightBoxOpen, onClose: onCloseLightBox, variant: "mobileFullscreen", top: "10px", children: _jsx(Swiper, { initialSlide: initialSlide, slidesPerView: 1, autoHeight: true, children: images.map(function (item) {
|
|
11
11
|
var _a;
|
|
12
|
-
return (_jsx(SwiperSlide, { children: _jsxs(Container, { children: [_jsx(Image, { src: (_a = item.originalUrl) !== null && _a !== void 0 ? _a : item.url, loading: "lazy", alt: "" }), (item.date || item.description) && (_jsxs(Description, { children: [item.date, " ", item.description] })), !!item.withLightBoxAction && lightBoxAction && lightBoxActionTitle && (_jsx(ButtonContainer, { children: _jsx(Button, { onClick: lightBoxAction(item.id), appearance: "
|
|
12
|
+
return (_jsx(SwiperSlide, { children: _jsxs(Container, { children: [_jsx(Image, { src: (_a = item.originalUrl) !== null && _a !== void 0 ? _a : item.url, loading: "lazy", alt: "" }), (item.date || item.description) && (_jsxs(Description, { children: [item.date, " ", item.description] })), !!item.withLightBoxAction && lightBoxAction && lightBoxActionTitle && (_jsx(ButtonContainer, { children: _jsx(Button, { onClick: lightBoxAction(item.id), appearance: "primary", variant: 'default', children: lightBoxActionTitle }) }))] }) }, item.id));
|
|
13
13
|
}) }) }));
|
|
14
14
|
};
|
package/ui/Blocks/Modal/Modal.js
CHANGED
|
@@ -32,5 +32,5 @@ export var Modal = memo(function (_a) {
|
|
|
32
32
|
if (!isShown) {
|
|
33
33
|
return null;
|
|
34
34
|
}
|
|
35
|
-
return (_jsx(Portal, { children: _jsx(DialogOverlay, { backgroundColor: overlayColor, children: _jsxs(DialogWindow, { ref: dialogRef, style: dialogStyle, "$backgroundColor": background, top: top, "data-cy": "dialogWindow", onClick: closeEverywhere ? closeDialog : undefined, "$minWidth": minWidth, "$minHeight": minHeight, "$maxWidth": maxWidth, "$maxHeight": maxHeight, variant: variant, children: [title && hasHeader && (_jsx(HeaderContainer, { variant: variant, children: _jsxs(TitleContainer, { children: [titleIcon && (_jsx(x.div, { as: "span", className: "icon", children: typeof titleIcon === 'string' ? _jsx(Icon, { icon: titleIcon, fill: "blue2" }) : titleIcon })), variant == 'default' ? (_jsx(H2, { mt: 0, mb: 0, variant: "bold", children: title })) : (_jsx(H5, { mt: 0, mb: 0, variant: "bold", children: title }))] }) })), withCloseIcon && (_jsx(CloseButton, { onClick: closeDialog, "data-cy": "dialogCloseBtn", children: _jsx(Cancel, { width: "11px", height: "11px" }) })), _jsx(ContentContainer, { variant: variant, children: children }), hasFooter && (onExtraAction || onCancel || onConfirm) && (_jsxs(ButtonsContainer, { hasSpaceBetween: !!onExtraAction, children: [onExtraAction && (_jsx(Button, { type: "button", onClick: onExtraAction, isLoading: isLoading, "data-cy": "extraActionBtn", appearance: "
|
|
35
|
+
return (_jsx(Portal, { children: _jsx(DialogOverlay, { backgroundColor: overlayColor, children: _jsxs(DialogWindow, { ref: dialogRef, style: dialogStyle, "$backgroundColor": background, top: top, "data-cy": "dialogWindow", onClick: closeEverywhere ? closeDialog : undefined, "$minWidth": minWidth, "$minHeight": minHeight, "$maxWidth": maxWidth, "$maxHeight": maxHeight, variant: variant, children: [title && hasHeader && (_jsx(HeaderContainer, { variant: variant, children: _jsxs(TitleContainer, { children: [titleIcon && (_jsx(x.div, { as: "span", className: "icon", children: typeof titleIcon === 'string' ? _jsx(Icon, { icon: titleIcon, fill: "blue2" }) : titleIcon })), variant == 'default' ? (_jsx(H2, { mt: 0, mb: 0, variant: "bold", children: title })) : (_jsx(H5, { mt: 0, mb: 0, variant: "bold", children: title }))] }) })), withCloseIcon && (_jsx(CloseButton, { onClick: closeDialog, "data-cy": "dialogCloseBtn", children: _jsx(Cancel, { width: "11px", height: "11px" }) })), _jsx(ContentContainer, { variant: variant, children: children }), hasFooter && (onExtraAction || onCancel || onConfirm) && (_jsxs(ButtonsContainer, { hasSpaceBetween: !!onExtraAction, children: [onExtraAction && (_jsx(Button, { type: "button", onClick: onExtraAction, isLoading: isLoading, "data-cy": "extraActionBtn", appearance: "secondary", variant: 'ghost', children: extraActionLabel })), _jsxs(ButtonsWrapper, { hasExtraAction: !!onExtraAction, hasBothButtons: !!onCancel && !!onConfirm, children: [onCancel && (_jsx(Button, { type: "button", onClick: onCancel, isLoading: isLoading, "data-cy": "cancelBtn", appearance: "secondary", variant: 'default', children: cancelLabel ? cancelLabel : 'Cancel' })), onConfirm && (_jsx(Button, { type: "button", onClick: onDialogConfirmClick, isLoading: isLoading, disabled: isConfirmDisabled, "data-cy": "submitBtn", appearance: 'primary', variant: 'default', children: confirmLabel ? confirmLabel : 'Submit' }))] })] }))] }) }) }));
|
|
36
36
|
});
|
|
@@ -1,3 +1,3 @@
|
|
|
1
1
|
import { Props } from './types';
|
|
2
|
-
declare const Button: ({ isLoading, loadingText, icon, appearance, disabled,
|
|
2
|
+
declare const Button: ({ isLoading, loadingText, icon, iconLeft, iconRight, variant, appearance, disabled, fullWidth, buttonRef, onClick, ...props }: Props) => JSX.Element;
|
|
3
3
|
export default Button;
|
|
@@ -24,7 +24,7 @@ import { jsx as _jsx, Fragment as _Fragment, jsxs as _jsxs } from "react/jsx-run
|
|
|
24
24
|
import { StyledButton, LoadingIconWrapper, StyledIcon, StyledWrapper } from './styles';
|
|
25
25
|
import { Spinner } from '../Spinner';
|
|
26
26
|
var Button = function (_a) {
|
|
27
|
-
var isLoading = _a.isLoading, loadingText = _a.loadingText, icon = _a.icon, _b = _a.
|
|
28
|
-
return (_jsx(StyledButton, __assign({}, props, { onClick: !disabled && !isLoading ? onClick : undefined, "data-
|
|
27
|
+
var isLoading = _a.isLoading, loadingText = _a.loadingText, icon = _a.icon, iconLeft = _a.iconLeft, iconRight = _a.iconRight, _b = _a.variant, variant = _b === void 0 ? 'default' : _b, _c = _a.appearance, appearance = _c === void 0 ? 'primary' : _c, _d = _a.disabled, disabled = _d === void 0 ? false : _d, _e = _a.fullWidth, fullWidth = _e === void 0 ? false : _e, buttonRef = _a.buttonRef, onClick = _a.onClick, props = __rest(_a, ["isLoading", "loadingText", "icon", "iconLeft", "iconRight", "variant", "appearance", "disabled", "fullWidth", "buttonRef", "onClick"]);
|
|
28
|
+
return (_jsx(StyledButton, __assign({}, props, { onClick: !disabled && !isLoading ? onClick : undefined, "data-variant": variant, "data-appearance": appearance, disabled: disabled, iconPadding: !!icon && !props.children, ref: buttonRef, fullWidth: fullWidth, children: _jsxs(StyledWrapper, { children: [iconLeft && (typeof iconLeft === 'string' ? _jsx(StyledIcon, { "$addMarginRight": !!iconLeft, icon: iconLeft }) : iconLeft), isLoading ? (_jsxs(_Fragment, { children: [_jsx(LoadingIconWrapper, { "$addMarginRight": !!loadingText || !!props.children, children: _jsx(Spinner, { variant: "sm" }) }), loadingText || loadingText === '' ? loadingText : 'Loading'] })) : props.children ? (props.children) : (icon && (typeof icon === 'string' ? _jsx(StyledIcon, { icon: icon }) : icon)), iconRight && (typeof iconRight === 'string' ? _jsx(StyledIcon, { "$addMarginLeft": !!iconRight, icon: iconRight }) : iconRight)] }) })));
|
|
29
29
|
};
|
|
30
30
|
export default Button;
|
|
@@ -2,19 +2,21 @@
|
|
|
2
2
|
import type { StoryObj } from '@storybook/react';
|
|
3
3
|
declare const meta: {
|
|
4
4
|
title: string;
|
|
5
|
-
component: ({ isLoading, loadingText, icon, appearance, disabled,
|
|
5
|
+
component: ({ isLoading, loadingText, icon, iconLeft, iconRight, variant, appearance, disabled, fullWidth, buttonRef, onClick, ...props }: import("../types").Props) => JSX.Element;
|
|
6
6
|
tags: string[];
|
|
7
7
|
argTypes: {};
|
|
8
8
|
};
|
|
9
9
|
export default meta;
|
|
10
10
|
type Story = StoryObj<typeof meta>;
|
|
11
|
-
export declare const
|
|
12
|
-
export declare const
|
|
13
|
-
export declare const
|
|
11
|
+
export declare const DefaultPrimary: Story;
|
|
12
|
+
export declare const DefaultSecondary: Story;
|
|
13
|
+
export declare const DefaultTertiary: Story;
|
|
14
14
|
export declare const Success: Story;
|
|
15
|
-
export declare const
|
|
16
|
-
export declare const
|
|
17
|
-
export declare const
|
|
18
|
-
export declare const
|
|
19
|
-
export declare const
|
|
20
|
-
export declare const
|
|
15
|
+
export declare const OutlinePrimary: Story;
|
|
16
|
+
export declare const OutlineSecondary: Story;
|
|
17
|
+
export declare const GhostPrimary: Story;
|
|
18
|
+
export declare const GhostSecondary: Story;
|
|
19
|
+
export declare const LinkPrimary: Story;
|
|
20
|
+
export declare const LinkSecondary: Story;
|
|
21
|
+
export declare const Icon: Story;
|
|
22
|
+
export declare const Floating: Story;
|
|
@@ -6,65 +6,99 @@ var meta = {
|
|
|
6
6
|
argTypes: {},
|
|
7
7
|
};
|
|
8
8
|
export default meta;
|
|
9
|
-
export var
|
|
9
|
+
export var DefaultPrimary = {
|
|
10
10
|
args: {
|
|
11
|
-
children: '
|
|
11
|
+
children: 'Default primary ',
|
|
12
|
+
variant: 'default',
|
|
13
|
+
appearance: 'primary',
|
|
14
|
+
disabled: false,
|
|
12
15
|
},
|
|
13
16
|
};
|
|
14
|
-
export var
|
|
17
|
+
export var DefaultSecondary = {
|
|
15
18
|
args: {
|
|
16
|
-
children: '
|
|
17
|
-
|
|
19
|
+
children: 'Default secondary',
|
|
20
|
+
variant: 'default',
|
|
21
|
+
appearance: 'secondary',
|
|
22
|
+
disabled: false,
|
|
18
23
|
},
|
|
19
24
|
};
|
|
20
|
-
export var
|
|
25
|
+
export var DefaultTertiary = {
|
|
21
26
|
args: {
|
|
22
|
-
children: '
|
|
23
|
-
|
|
27
|
+
children: 'Default tertiary',
|
|
28
|
+
variant: 'default',
|
|
29
|
+
appearance: 'tertiary',
|
|
30
|
+
disabled: false,
|
|
24
31
|
},
|
|
25
32
|
};
|
|
26
33
|
export var Success = {
|
|
27
34
|
args: {
|
|
28
35
|
children: 'Success',
|
|
29
|
-
|
|
36
|
+
variant: 'success',
|
|
37
|
+
appearance: 'primary',
|
|
38
|
+
disabled: false,
|
|
30
39
|
},
|
|
31
40
|
};
|
|
32
|
-
export var
|
|
41
|
+
export var OutlinePrimary = {
|
|
33
42
|
args: {
|
|
34
|
-
children: '
|
|
35
|
-
|
|
43
|
+
children: 'Outline primary',
|
|
44
|
+
variant: 'outline',
|
|
45
|
+
appearance: 'primary',
|
|
46
|
+
disabled: false,
|
|
36
47
|
},
|
|
37
48
|
};
|
|
38
|
-
export var
|
|
49
|
+
export var OutlineSecondary = {
|
|
39
50
|
args: {
|
|
40
|
-
children: '
|
|
41
|
-
|
|
51
|
+
children: 'Outline secondary',
|
|
52
|
+
variant: 'outline',
|
|
53
|
+
appearance: 'secondary',
|
|
54
|
+
disabled: false,
|
|
42
55
|
},
|
|
43
56
|
};
|
|
44
|
-
export var
|
|
57
|
+
export var GhostPrimary = {
|
|
45
58
|
args: {
|
|
46
|
-
children: '
|
|
47
|
-
|
|
59
|
+
children: 'Ghost primary',
|
|
60
|
+
variant: 'ghost',
|
|
61
|
+
appearance: 'primary',
|
|
62
|
+
disabled: false,
|
|
48
63
|
},
|
|
49
64
|
};
|
|
50
|
-
export var
|
|
65
|
+
export var GhostSecondary = {
|
|
51
66
|
args: {
|
|
52
|
-
children: '
|
|
53
|
-
|
|
67
|
+
children: 'Ghost secondary',
|
|
68
|
+
variant: 'ghost',
|
|
54
69
|
appearance: 'secondary',
|
|
70
|
+
disabled: false,
|
|
71
|
+
},
|
|
72
|
+
};
|
|
73
|
+
export var LinkPrimary = {
|
|
74
|
+
args: {
|
|
75
|
+
children: 'Link primary',
|
|
76
|
+
variant: 'link',
|
|
77
|
+
appearance: 'primary',
|
|
78
|
+
disabled: false,
|
|
55
79
|
},
|
|
56
80
|
};
|
|
57
|
-
export var
|
|
81
|
+
export var LinkSecondary = {
|
|
58
82
|
args: {
|
|
83
|
+
children: 'Link secondary',
|
|
84
|
+
variant: 'link',
|
|
59
85
|
appearance: 'secondary',
|
|
60
|
-
|
|
61
|
-
|
|
86
|
+
disabled: false,
|
|
87
|
+
},
|
|
88
|
+
};
|
|
89
|
+
export var Icon = {
|
|
90
|
+
args: {
|
|
91
|
+
variant: 'icon',
|
|
92
|
+
appearance: 'primary',
|
|
93
|
+
icon: 'coffee',
|
|
94
|
+
disabled: false,
|
|
62
95
|
},
|
|
63
96
|
};
|
|
64
|
-
export var
|
|
97
|
+
export var Floating = {
|
|
65
98
|
args: {
|
|
66
|
-
|
|
67
|
-
|
|
99
|
+
variant: 'floating',
|
|
100
|
+
appearance: 'primary',
|
|
68
101
|
icon: 'coffee',
|
|
102
|
+
disabled: false,
|
|
69
103
|
},
|
|
70
104
|
};
|
|
@@ -1,19 +1,16 @@
|
|
|
1
1
|
/// <reference types="react" />
|
|
2
2
|
export declare const StyledWrapper: import("styled-components").StyledComponent<"span", import("@xstyled/system").Theme, {}, never>;
|
|
3
3
|
export declare const LoadingIconWrapper: import("styled-components").StyledComponent<"div", import("@xstyled/system").Theme, {
|
|
4
|
-
$
|
|
4
|
+
$addMarginRight: boolean;
|
|
5
5
|
}, never>;
|
|
6
6
|
export declare const StyledIcon: import("styled-components").StyledComponent<({ icon, fill, style, size, className, secondaryColor, fixedWidth, spinning, }: import("../Icon").IconProps) => JSX.Element, import("@xstyled/system").Theme, {
|
|
7
|
-
$
|
|
7
|
+
$addMarginRight?: boolean | undefined;
|
|
8
|
+
$addMarginLeft?: boolean | undefined;
|
|
8
9
|
}, never>;
|
|
9
10
|
export declare const StyledButton: import("styled-components").StyledComponent<"button", import("@xstyled/system").Theme, {
|
|
10
11
|
disabled: boolean;
|
|
11
|
-
columnAlign?: boolean | undefined;
|
|
12
12
|
children?: any;
|
|
13
13
|
onClick?: React.MouseEventHandler<HTMLButtonElement> | undefined;
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
mr?: string | undefined;
|
|
17
|
-
mb?: string | undefined;
|
|
18
|
-
ml?: string | undefined;
|
|
14
|
+
iconPadding?: boolean | undefined;
|
|
15
|
+
fullWidth?: boolean | undefined;
|
|
19
16
|
}, never>;
|
|
@@ -2,47 +2,31 @@ var __makeTemplateObject = (this && this.__makeTemplateObject) || function (cook
|
|
|
2
2
|
if (Object.defineProperty) { Object.defineProperty(cooked, "raw", { value: raw }); } else { cooked.raw = raw; }
|
|
3
3
|
return cooked;
|
|
4
4
|
};
|
|
5
|
-
import { th } from '@xstyled/styled-components';
|
|
6
|
-
import styled from '@xstyled/styled-components';
|
|
5
|
+
import styled, { th } from '@xstyled/styled-components';
|
|
7
6
|
import { Icon } from '../Icon';
|
|
8
7
|
export var StyledWrapper = styled.span(templateObject_1 || (templateObject_1 = __makeTemplateObject(["\n display: flex;\n justify-content: center;\n align-items: center;\n"], ["\n display: flex;\n justify-content: center;\n align-items: center;\n"])));
|
|
9
8
|
export var LoadingIconWrapper = styled.div(templateObject_2 || (templateObject_2 = __makeTemplateObject(["\n & svg {\n margin-right: ", ";\n }\n"], ["\n & svg {\n margin-right: ", ";\n }\n"])), function (_a) {
|
|
10
|
-
var $
|
|
11
|
-
return ($
|
|
9
|
+
var $addMarginRight = _a.$addMarginRight;
|
|
10
|
+
return ($addMarginRight ? '8px' : '0');
|
|
12
11
|
});
|
|
13
|
-
export var StyledIcon = styled(Icon)(templateObject_3 || (templateObject_3 = __makeTemplateObject(["\n & svg {\n
|
|
14
|
-
var $
|
|
15
|
-
return ($
|
|
12
|
+
export var StyledIcon = styled(Icon)(templateObject_3 || (templateObject_3 = __makeTemplateObject(["\n & svg {\n margin-right: ", ";\n margin-left: ", ";\n }\n"], ["\n & svg {\n margin-right: ", ";\n margin-left: ", ";\n }\n"])), function (_a) {
|
|
13
|
+
var $addMarginRight = _a.$addMarginRight;
|
|
14
|
+
return ($addMarginRight ? '8px' : '0');
|
|
15
|
+
}, function (_a) {
|
|
16
|
+
var $addMarginLeft = _a.$addMarginLeft;
|
|
17
|
+
return ($addMarginLeft ? '8px' : '0');
|
|
16
18
|
});
|
|
17
|
-
export var StyledButton = styled.button(templateObject_4 || (templateObject_4 = __makeTemplateObject(["\n width: ", ";\n margin-top: ", ";\n margin-right: ", ";\n margin-bottom: ", ";\n margin-left: ", ";\n height: 2.5em;\n border: slim;\n text-align: center;\n text-decoration: none;\n display: ", ";\n flex-direction: ", ";\n align-items: ", ";\n font-family: ", ";\n font-weight: semiBold;\n border-radius: lg;\n cursor: pointer;\n transition-duration: 0.1s;\n align-items: center;\n justify-content: center;\n transition: all 300ms ease-out;\n pointer-events: ", ";\n opacity: ", ";\n\n :disabled {\n color: lightGray5;\n }\n\n :focus {\n outline: none;\n }\n\n &[data-appearance='primary'] {\n background-color: red1;\n color: white;\n border-color: red1;\n\n @media (hover: hover) {\n &:hover {\n background-color: white;\n color: red1;\n border-color: red1;\n }\n }\n\n :active {\n background-color: red1;\n color: red1;\n border: none;\n }\n\n :disabled {\n background-color: bgLightGray;\n border-color: lightGray5;\n color: gray3;\n }\n }\n\n &[data-appearance='primaryLight'] {\n color: red1;\n background-color: red20;\n border-color: red20;\n\n @media (hover: hover) {\n &:hover {\n background-color: red1;\n color: white;\n border-color: red1;\n }\n }\n\n :active {\n background-color: red1;\n color: white;\n border-color: red1;\n }\n\n :disabled {\n background-color: bgLightGray;\n border-color: lightGray5;\n color: gray3;\n }\n }\n\n &[data-appearance='success'] {\n background-color: successColor;\n color: white;\n border-color: successColor;\n\n @media (hover: hover) {\n &:hover {\n background-color: white;\n color: successColor;\n }\n }\n\n :active {\n background-color: white;\n color: successColor;\n }\n\n :disabled {\n background-color: bgLightGray;\n border-color: lightGray5;\n color: gray3;\n }\n }\n\n &[data-appearance='ghost'] {\n background-color: transparent;\n color: typoPrimary;\n border-color: transparent;\n\n @media (hover: hover) {\n &:hover {\n background-color: neutral20;\n }\n }\n\n :disabled {\n opacity: 60%;\n }\n }\n\n &[data-appearance='ghostDanger'] {\n background-color: transparent;\n color: red1;\n border-color: transparent;\n\n @media (hover: hover) {\n &:hover {\n background-color: neutral20;\n }\n }\n\n :disabled {\n opacity: 60%;\n }\n }\n\n &[data-appearance='secondary'] {\n background-color: white;\n color: red1;\n border-color: red1;\n\n @media (hover: hover) {\n &:hover {\n background-color: red1;\n color: white;\n border-color: red1;\n }\n }\n\n :active {\n background-color: red1;\n color: red1;\n border-color: red1;\n }\n\n :disabled {\n background-color: white;\n border-color: lightGray7;\n }\n }\n\n &[data-appearance='secondaryLg'] {\n background-color: white;\n color: typoPrimary;\n border-color: blue2;\n\n @media (hover: hover) {\n &:hover {\n background-color: blue2;\n color: white;\n border-color: blue2;\n }\n }\n\n :active {\n background-color: gray;\n color: white;\n border: none;\n }\n\n :disabled {\n background-color: white;\n border-color: bgLightGray1;\n }\n }\n\n &[data-appearance='primaryLg'] {\n background-color: blue2;\n color: white;\n border-color: blue2;\n\n @media (hover: hover) {\n &:hover {\n background-color: white;\n color: typoPrimary;\n border-color: blue2;\n }\n }\n\n :active {\n background-color: gray;\n color: white;\n border: none;\n }\n\n :disabled {\n background-color: bgLightGray1;\n border-color: bgLightGray1;\n }\n }\n\n &[data-appearance='minimal'] {\n background-color: transparent;\n border: none !important;\n color: blue2;\n\n :disabled {\n color: blue2;\n }\n }\n\n &[data-appearance='minimalRed'] {\n background-color: transparent;\n border: none !important;\n color: red1;\n\n @media (hover: hover) {\n &:hover {\n color: red3;\n svg {\n fill: red3 !important;\n }\n }\n }\n\n :disabled,\n :active {\n color: red3;\n svg {\n fill: red3 !important;\n }\n }\n }\n\n &[data-sizing='icon'] {\n aspect-ratio: 4 / 3;\n padding: 0.5em 0.875em;\n }\n\n &[data-sizing='iconLg'] {\n min-width: 42px;\n min-height: 38px;\n padding: 0.5em 0.875em;\n svg {\n height: 16px;\n }\n }\n\n &[data-sizing='normal'] {\n min-width: 7rem;\n padding: 12px 18px;\n min-height: 38px;\n line-height: 14px;\n font-size: 14px;\n }\n\n &[data-sizing='large'] {\n min-width: 12rem;\n padding: 0.75em 1.5em;\n min-height: 34px;\n font-size: 12px;\n }\n\n &[data-sizing='grid'] {\n min-width: 5rem;\n padding: 0.5em 1.25em;\n font-size: 10px;\n border-radius: 5px;\n }\n"], ["\n width: ", ";\n margin-top: ", ";\n margin-right: ", ";\n margin-bottom: ", ";\n margin-left: ", ";\n height: 2.5em;\n border: slim;\n text-align: center;\n text-decoration: none;\n display: ", ";\n flex-direction: ", ";\n align-items: ", ";\n font-family: ", ";\n font-weight: semiBold;\n border-radius: lg;\n cursor: pointer;\n transition-duration: 0.1s;\n align-items: center;\n justify-content: center;\n transition: all 300ms ease-out;\n pointer-events: ", ";\n opacity: ", ";\n\n :disabled {\n color: lightGray5;\n }\n\n :focus {\n outline: none;\n }\n\n &[data-appearance='primary'] {\n background-color: red1;\n color: white;\n border-color: red1;\n\n @media (hover: hover) {\n &:hover {\n background-color: white;\n color: red1;\n border-color: red1;\n }\n }\n\n :active {\n background-color: red1;\n color: red1;\n border: none;\n }\n\n :disabled {\n background-color: bgLightGray;\n border-color: lightGray5;\n color: gray3;\n }\n }\n\n &[data-appearance='primaryLight'] {\n color: red1;\n background-color: red20;\n border-color: red20;\n\n @media (hover: hover) {\n &:hover {\n background-color: red1;\n color: white;\n border-color: red1;\n }\n }\n\n :active {\n background-color: red1;\n color: white;\n border-color: red1;\n }\n\n :disabled {\n background-color: bgLightGray;\n border-color: lightGray5;\n color: gray3;\n }\n }\n\n &[data-appearance='success'] {\n background-color: successColor;\n color: white;\n border-color: successColor;\n\n @media (hover: hover) {\n &:hover {\n background-color: white;\n color: successColor;\n }\n }\n\n :active {\n background-color: white;\n color: successColor;\n }\n\n :disabled {\n background-color: bgLightGray;\n border-color: lightGray5;\n color: gray3;\n }\n }\n\n &[data-appearance='ghost'] {\n background-color: transparent;\n color: typoPrimary;\n border-color: transparent;\n\n @media (hover: hover) {\n &:hover {\n background-color: neutral20;\n }\n }\n\n :disabled {\n opacity: 60%;\n }\n }\n\n &[data-appearance='ghostDanger'] {\n background-color: transparent;\n color: red1;\n border-color: transparent;\n\n @media (hover: hover) {\n &:hover {\n background-color: neutral20;\n }\n }\n\n :disabled {\n opacity: 60%;\n }\n }\n\n &[data-appearance='secondary'] {\n background-color: white;\n color: red1;\n border-color: red1;\n\n @media (hover: hover) {\n &:hover {\n background-color: red1;\n color: white;\n border-color: red1;\n }\n }\n\n :active {\n background-color: red1;\n color: red1;\n border-color: red1;\n }\n\n :disabled {\n background-color: white;\n border-color: lightGray7;\n }\n }\n\n &[data-appearance='secondaryLg'] {\n background-color: white;\n color: typoPrimary;\n border-color: blue2;\n\n @media (hover: hover) {\n &:hover {\n background-color: blue2;\n color: white;\n border-color: blue2;\n }\n }\n\n :active {\n background-color: gray;\n color: white;\n border: none;\n }\n\n :disabled {\n background-color: white;\n border-color: bgLightGray1;\n }\n }\n\n &[data-appearance='primaryLg'] {\n background-color: blue2;\n color: white;\n border-color: blue2;\n\n @media (hover: hover) {\n &:hover {\n background-color: white;\n color: typoPrimary;\n border-color: blue2;\n }\n }\n\n :active {\n background-color: gray;\n color: white;\n border: none;\n }\n\n :disabled {\n background-color: bgLightGray1;\n border-color: bgLightGray1;\n }\n }\n\n &[data-appearance='minimal'] {\n background-color: transparent;\n border: none !important;\n color: blue2;\n\n :disabled {\n color: blue2;\n }\n }\n\n &[data-appearance='minimalRed'] {\n background-color: transparent;\n border: none !important;\n color: red1;\n\n @media (hover: hover) {\n &:hover {\n color: red3;\n svg {\n fill: red3 !important;\n }\n }\n }\n\n :disabled,\n :active {\n color: red3;\n svg {\n fill: red3 !important;\n }\n }\n }\n\n &[data-sizing='icon'] {\n aspect-ratio: 4 / 3;\n padding: 0.5em 0.875em;\n }\n\n &[data-sizing='iconLg'] {\n min-width: 42px;\n min-height: 38px;\n padding: 0.5em 0.875em;\n svg {\n height: 16px;\n }\n }\n\n &[data-sizing='normal'] {\n min-width: 7rem;\n padding: 12px 18px;\n min-height: 38px;\n line-height: 14px;\n font-size: 14px;\n }\n\n &[data-sizing='large'] {\n min-width: 12rem;\n padding: 0.75em 1.5em;\n min-height: 34px;\n font-size: 12px;\n }\n\n &[data-sizing='grid'] {\n min-width: 5rem;\n padding: 0.5em 1.25em;\n font-size: 10px;\n border-radius: 5px;\n }\n"])), function (_a) {
|
|
19
|
+
export var StyledButton = styled.button(templateObject_4 || (templateObject_4 = __makeTemplateObject(["\n width: ", ";\n font-weight: semiBold;\n font-size: 14px;\n font-family: ", ";\n display: flex;\n text-align: center;\n align-items: center;\n justify-content: center;\n border-radius: 8px;\n height: 38px;\n border: none;\n cursor: pointer;\n transition-duration: 0.1s;\n transition: all 300ms ease-out;\n gap: 8px;\n padding: ", ";\n opacity: ", ";\n cursor: ", ";\n\n :focus {\n outline: none;\n }\n\n &[data-variant='default'] {\n &[data-appearance='primary'] {\n background-color: red1;\n color: white;\n & svg {\n stroke: white;\n }\n\n :not(:disabled) {\n @media (hover: hover) {\n :hover {\n background-color: red80;\n }\n }\n }\n }\n\n &[data-appearance='secondary'] {\n background-color: neutral20;\n color: typoPrimary;\n & svg {\n stroke: typoPrimary;\n }\n\n @media (hover: hover) {\n :hover {\n background-color: lightGray7;\n }\n }\n }\n\n &[data-appearance='tertiary'] {\n background-color: red20;\n color: red1;\n & svg {\n stroke: red1;\n }\n\n @media (hover: hover) {\n :hover {\n background-color: red30;\n }\n }\n }\n }\n\n &[data-variant='success'] {\n background-color: successColor;\n color: white;\n & svg {\n stroke: white;\n }\n\n @media (hover: hover) {\n :hover {\n background-color: green70;\n }\n }\n }\n &[data-variant='outline'] {\n background-color: white;\n border: slim;\n &[data-appearance='primary'] {\n color: typoPrimary;\n border-color: typoPrimary;\n & svg {\n stroke: typoPrimary;\n }\n\n @media (hover: hover) {\n :hover {\n background-color: neutral20;\n }\n }\n }\n &[data-appearance='secondary'] {\n color: red1;\n border-color: red1;\n & svg {\n stroke: red1;\n }\n\n @media (hover: hover) {\n :hover {\n background-color: red20;\n }\n }\n }\n }\n &[data-variant='ghost'] {\n background-color: white;\n &[data-appearance='primary'] {\n color: typoPrimary;\n & svg {\n stroke: typoPrimary;\n }\n\n @media (hover: hover) {\n :hover {\n background-color: neutral20;\n }\n }\n }\n &[data-appearance='secondary'] {\n color: red1;\n & svg {\n stroke: red1;\n }\n\n @media (hover: hover) {\n :hover {\n background-color: red20;\n }\n }\n }\n }\n\n &[data-variant='link'] {\n background-color: transparent;\n height: 20px;\n &[data-appearance='primary'] {\n color: typoPrimary;\n & svg {\n stroke: typoPrimary;\n }\n\n @media (hover: hover) {\n :hover {\n color: neutral500;\n & svg {\n stroke: neutral500;\n }\n }\n }\n }\n &[data-appearance='secondary'] {\n color: red1;\n & svg {\n stroke: red1;\n }\n\n @media (hover: hover) {\n :hover {\n color: red70;\n & svg {\n stroke: red70;\n }\n }\n }\n }\n }\n\n &[data-variant='icon'] {\n width: 38px;\n height: 38px;\n gap: 10px;\n\n &[data-appearance='primary'] {\n background-color: red1;\n color: white;\n & svg {\n stroke: white;\n }\n @media (hover: hover) {\n :hover {\n background-color: red70;\n }\n }\n }\n\n &[data-appearance='secondary'] {\n background-color: neutral20;\n color: typoPrimary;\n & svg {\n stroke: typoPrimary;\n }\n @media (hover: hover) {\n :hover {\n background-color: lightGray7;\n }\n }\n }\n\n &[data-appearance='tertiary'] {\n background-color: red20;\n color: red1;\n & svg {\n stroke: red1;\n }\n @media (hover: hover) {\n :hover {\n background-color: red30;\n }\n }\n }\n\n &[data-appearance='ghost'] {\n background-color: transparent;\n color: typoPrimary;\n & svg {\n stroke: typoPrimary;\n }\n @media (hover: hover) {\n :hover {\n color: neutral500;\n & svg {\n stroke: neutral500;\n }\n }\n }\n }\n }\n\n &[data-variant='floating'] {\n &[data-appearance='primary'] {\n width: 56px;\n height: 56px;\n background-color: red1;\n color: white;\n border-radius: 50%;\n & svg {\n stroke: white;\n }\n @media (hover: hover) {\n :hover {\n background-color: red70;\n }\n }\n }\n }\n"], ["\n width: ", ";\n font-weight: semiBold;\n font-size: 14px;\n font-family: ", ";\n display: flex;\n text-align: center;\n align-items: center;\n justify-content: center;\n border-radius: 8px;\n height: 38px;\n border: none;\n cursor: pointer;\n transition-duration: 0.1s;\n transition: all 300ms ease-out;\n gap: 8px;\n padding: ", ";\n opacity: ", ";\n cursor: ", ";\n\n :focus {\n outline: none;\n }\n\n &[data-variant='default'] {\n &[data-appearance='primary'] {\n background-color: red1;\n color: white;\n & svg {\n stroke: white;\n }\n\n :not(:disabled) {\n @media (hover: hover) {\n :hover {\n background-color: red80;\n }\n }\n }\n }\n\n &[data-appearance='secondary'] {\n background-color: neutral20;\n color: typoPrimary;\n & svg {\n stroke: typoPrimary;\n }\n\n @media (hover: hover) {\n :hover {\n background-color: lightGray7;\n }\n }\n }\n\n &[data-appearance='tertiary'] {\n background-color: red20;\n color: red1;\n & svg {\n stroke: red1;\n }\n\n @media (hover: hover) {\n :hover {\n background-color: red30;\n }\n }\n }\n }\n\n &[data-variant='success'] {\n background-color: successColor;\n color: white;\n & svg {\n stroke: white;\n }\n\n @media (hover: hover) {\n :hover {\n background-color: green70;\n }\n }\n }\n &[data-variant='outline'] {\n background-color: white;\n border: slim;\n &[data-appearance='primary'] {\n color: typoPrimary;\n border-color: typoPrimary;\n & svg {\n stroke: typoPrimary;\n }\n\n @media (hover: hover) {\n :hover {\n background-color: neutral20;\n }\n }\n }\n &[data-appearance='secondary'] {\n color: red1;\n border-color: red1;\n & svg {\n stroke: red1;\n }\n\n @media (hover: hover) {\n :hover {\n background-color: red20;\n }\n }\n }\n }\n &[data-variant='ghost'] {\n background-color: white;\n &[data-appearance='primary'] {\n color: typoPrimary;\n & svg {\n stroke: typoPrimary;\n }\n\n @media (hover: hover) {\n :hover {\n background-color: neutral20;\n }\n }\n }\n &[data-appearance='secondary'] {\n color: red1;\n & svg {\n stroke: red1;\n }\n\n @media (hover: hover) {\n :hover {\n background-color: red20;\n }\n }\n }\n }\n\n &[data-variant='link'] {\n background-color: transparent;\n height: 20px;\n &[data-appearance='primary'] {\n color: typoPrimary;\n & svg {\n stroke: typoPrimary;\n }\n\n @media (hover: hover) {\n :hover {\n color: neutral500;\n & svg {\n stroke: neutral500;\n }\n }\n }\n }\n &[data-appearance='secondary'] {\n color: red1;\n & svg {\n stroke: red1;\n }\n\n @media (hover: hover) {\n :hover {\n color: red70;\n & svg {\n stroke: red70;\n }\n }\n }\n }\n }\n\n &[data-variant='icon'] {\n width: 38px;\n height: 38px;\n gap: 10px;\n\n &[data-appearance='primary'] {\n background-color: red1;\n color: white;\n & svg {\n stroke: white;\n }\n @media (hover: hover) {\n :hover {\n background-color: red70;\n }\n }\n }\n\n &[data-appearance='secondary'] {\n background-color: neutral20;\n color: typoPrimary;\n & svg {\n stroke: typoPrimary;\n }\n @media (hover: hover) {\n :hover {\n background-color: lightGray7;\n }\n }\n }\n\n &[data-appearance='tertiary'] {\n background-color: red20;\n color: red1;\n & svg {\n stroke: red1;\n }\n @media (hover: hover) {\n :hover {\n background-color: red30;\n }\n }\n }\n\n &[data-appearance='ghost'] {\n background-color: transparent;\n color: typoPrimary;\n & svg {\n stroke: typoPrimary;\n }\n @media (hover: hover) {\n :hover {\n color: neutral500;\n & svg {\n stroke: neutral500;\n }\n }\n }\n }\n }\n\n &[data-variant='floating'] {\n &[data-appearance='primary'] {\n width: 56px;\n height: 56px;\n background-color: red1;\n color: white;\n border-radius: 50%;\n & svg {\n stroke: white;\n }\n @media (hover: hover) {\n :hover {\n background-color: red70;\n }\n }\n }\n }\n"])), function (_a) {
|
|
18
20
|
var fullWidth = _a.fullWidth;
|
|
19
21
|
return (fullWidth ? '100%' : 'initial');
|
|
20
|
-
}, function (_a) {
|
|
21
|
-
var mt = _a.mt;
|
|
22
|
-
return mt || 0;
|
|
23
|
-
}, function (_a) {
|
|
24
|
-
var mr = _a.mr;
|
|
25
|
-
return mr || 0;
|
|
26
|
-
}, function (_a) {
|
|
27
|
-
var mb = _a.mb;
|
|
28
|
-
return mb || 0;
|
|
29
|
-
}, function (_a) {
|
|
30
|
-
var ml = _a.ml;
|
|
31
|
-
return ml || 0;
|
|
32
|
-
}, function (_a) {
|
|
33
|
-
var columnAlign = _a.columnAlign;
|
|
34
|
-
return (columnAlign ? 'flex' : 'inline-flex');
|
|
35
|
-
}, function (_a) {
|
|
36
|
-
var columnAlign = _a.columnAlign;
|
|
37
|
-
return (columnAlign ? 'column' : 'auto');
|
|
38
|
-
}, function (_a) {
|
|
39
|
-
var columnAlign = _a.columnAlign;
|
|
40
|
-
return (columnAlign ? 'center' : 'auto');
|
|
41
22
|
}, th('fonts.primary'), function (_a) {
|
|
23
|
+
var iconPadding = _a.iconPadding;
|
|
24
|
+
return (iconPadding ? '9px' : '7px 18px');
|
|
25
|
+
}, function (_a) {
|
|
42
26
|
var disabled = _a.disabled;
|
|
43
|
-
return (disabled ?
|
|
27
|
+
return (disabled ? 0.6 : 1);
|
|
44
28
|
}, function (_a) {
|
|
45
29
|
var disabled = _a.disabled;
|
|
46
|
-
return (disabled ? '
|
|
30
|
+
return (disabled ? 'default' : 'pointer');
|
|
47
31
|
});
|
|
48
32
|
var templateObject_1, templateObject_2, templateObject_3, templateObject_4;
|
|
@@ -1,22 +1,19 @@
|
|
|
1
1
|
/// <reference types="react" />
|
|
2
|
-
export type
|
|
3
|
-
export type AppearanceValue = 'primary' | '
|
|
2
|
+
export type VariantValue = 'default' | 'success' | 'outline' | 'ghost' | 'link' | 'icon' | 'floating';
|
|
3
|
+
export type AppearanceValue = 'primary' | 'secondary' | 'tertiary' | 'ghost';
|
|
4
4
|
export type Props = React.HTMLProps<HTMLButtonElement> & {
|
|
5
5
|
children?: React.ReactNode;
|
|
6
6
|
disabled?: boolean;
|
|
7
|
+
fullWidth?: boolean;
|
|
8
|
+
variant?: VariantValue;
|
|
7
9
|
appearance?: AppearanceValue;
|
|
8
|
-
buttonRef?: any;
|
|
9
|
-
sizing?: SizingValue;
|
|
10
10
|
isLoading?: boolean;
|
|
11
11
|
name?: string;
|
|
12
12
|
as?: string | React.ComponentType;
|
|
13
13
|
loadingText?: string | JSX.Element;
|
|
14
|
-
columnAlign?: boolean;
|
|
15
14
|
icon?: string | JSX.Element;
|
|
15
|
+
iconLeft?: string | JSX.Element;
|
|
16
|
+
iconRight?: string | JSX.Element;
|
|
17
|
+
buttonRef?: any;
|
|
16
18
|
type?: 'button' | 'submit' | 'reset';
|
|
17
|
-
fullWidth?: boolean;
|
|
18
|
-
mt?: string;
|
|
19
|
-
mr?: string;
|
|
20
|
-
mb?: string;
|
|
21
|
-
ml?: string;
|
|
22
19
|
};
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import React from 'react';
|
|
2
|
-
import { AppearanceValue } from '../Button/
|
|
2
|
+
import { VariantValue, AppearanceValue } from '../Button/types';
|
|
3
3
|
type Item = {
|
|
4
4
|
label: string | JSX.Element;
|
|
5
5
|
value: string;
|
|
@@ -8,6 +8,7 @@ type Item = {
|
|
|
8
8
|
type DropdownSelectProps = {
|
|
9
9
|
label: string | JSX.Element;
|
|
10
10
|
appearance?: AppearanceValue;
|
|
11
|
+
variant?: VariantValue;
|
|
11
12
|
options: Item[];
|
|
12
13
|
showChevron?: boolean;
|
|
13
14
|
onSelect?: (value: Item['value']) => void;
|
|
@@ -16,6 +17,6 @@ type DropdownSelectProps = {
|
|
|
16
17
|
ButtonComponent?: React.FC;
|
|
17
18
|
};
|
|
18
19
|
export declare const CustomSelectButton: import("styled-components").StyledComponent<"button", import("@xstyled/system").Theme, {}, never>;
|
|
19
|
-
declare const DropdownSelect: ({ label, appearance, options, showChevron, onSelect, disabled, icon, ButtonComponent, }: DropdownSelectProps) => JSX.Element;
|
|
20
|
+
declare const DropdownSelect: ({ label, appearance, variant, options, showChevron, onSelect, disabled, icon, ButtonComponent, }: DropdownSelectProps) => JSX.Element;
|
|
20
21
|
export default DropdownSelect;
|
|
21
22
|
export type { Item as DropdownSelectItem };
|