@bigbinary/neetoui 8.3.51 → 8.3.52
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/Button.js +50 -37
- package/dist/Button.js.map +1 -1
- package/dist/cjs/Button.js +50 -37
- package/dist/cjs/Button.js.map +1 -1
- package/package.json +1 -1
package/dist/Button.js
CHANGED
|
@@ -93,46 +93,59 @@ var Button = /*#__PURE__*/React__default.forwardRef(function (_ref, ref) {
|
|
|
93
93
|
"data-testid": "class-icon"
|
|
94
94
|
});
|
|
95
95
|
} : icon || React__default.Fragment;
|
|
96
|
+
var buttonElement = /*#__PURE__*/jsxs(Parent, _objectSpread(_objectSpread({
|
|
97
|
+
className: classnames("neeto-ui-btn", [className], {
|
|
98
|
+
"neeto-ui-btn--style-primary": style === BUTTON_STYLES.primary,
|
|
99
|
+
"neeto-ui-btn--style-secondary": style === BUTTON_STYLES.secondary,
|
|
100
|
+
"neeto-ui-btn--style-tertiary": style === BUTTON_STYLES.tertiary,
|
|
101
|
+
"neeto-ui-btn--style-danger": style === BUTTON_STYLES.danger,
|
|
102
|
+
"neeto-ui-btn--style-danger-text": style === BUTTON_STYLES.danger_text,
|
|
103
|
+
"neeto-ui-btn--style-text": style === BUTTON_STYLES.text,
|
|
104
|
+
"neeto-ui-btn--style-link": style === BUTTON_STYLES.link,
|
|
105
|
+
"neeto-ui-btn--size-medium": size === SIZES.medium,
|
|
106
|
+
"neeto-ui-btn--size-large": size === SIZES.large,
|
|
107
|
+
"neeto-ui-btn--width-full": fullWidth,
|
|
108
|
+
"neeto-ui-btn--icon-left": iconPosition === ICON_POSITIONS.left,
|
|
109
|
+
"neeto-ui-btn--icon-only": !renderLabel,
|
|
110
|
+
"neeto-ui-btn--loading": loading,
|
|
111
|
+
disabled: disabled
|
|
112
|
+
}),
|
|
113
|
+
onClick: handleClick
|
|
114
|
+
}, _objectSpread(_objectSpread({
|
|
115
|
+
disabled: disabled,
|
|
116
|
+
ref: ref
|
|
117
|
+
}, elementSpecificProps), otherProps)), {}, {
|
|
118
|
+
children: [renderLabel && /*#__PURE__*/jsx("span", {
|
|
119
|
+
className: "neeto-ui-btn__label",
|
|
120
|
+
children: renderLabel
|
|
121
|
+
}), icon && /*#__PURE__*/jsx(Icon, {
|
|
122
|
+
"aria-hidden": "true",
|
|
123
|
+
className: "neeto-ui-btn__icon",
|
|
124
|
+
size: iconSize
|
|
125
|
+
}), loading && /*#__PURE__*/jsx("span", {
|
|
126
|
+
className: "neeto-ui-btn__spinner",
|
|
127
|
+
children: /*#__PURE__*/jsx(Spinner, {
|
|
128
|
+
"aria-hidden": "true",
|
|
129
|
+
size: "small"
|
|
130
|
+
})
|
|
131
|
+
})]
|
|
132
|
+
}));
|
|
133
|
+
if (disabled && tooltipProps) {
|
|
134
|
+
return /*#__PURE__*/jsx(Tooltip, _objectSpread(_objectSpread({
|
|
135
|
+
disabled: !tooltipProps
|
|
136
|
+
}, tooltipProps), {}, {
|
|
137
|
+
children: /*#__PURE__*/jsx("span", {
|
|
138
|
+
className: classnames("inline-block", {
|
|
139
|
+
"w-full": fullWidth
|
|
140
|
+
}),
|
|
141
|
+
children: buttonElement
|
|
142
|
+
})
|
|
143
|
+
}));
|
|
144
|
+
}
|
|
96
145
|
return /*#__PURE__*/jsx(Tooltip, _objectSpread(_objectSpread({
|
|
97
146
|
disabled: !tooltipProps
|
|
98
147
|
}, tooltipProps), {}, {
|
|
99
|
-
children:
|
|
100
|
-
className: classnames("neeto-ui-btn", [className], {
|
|
101
|
-
"neeto-ui-btn--style-primary": style === BUTTON_STYLES.primary,
|
|
102
|
-
"neeto-ui-btn--style-secondary": style === BUTTON_STYLES.secondary,
|
|
103
|
-
"neeto-ui-btn--style-tertiary": style === BUTTON_STYLES.tertiary,
|
|
104
|
-
"neeto-ui-btn--style-danger": style === BUTTON_STYLES.danger,
|
|
105
|
-
"neeto-ui-btn--style-danger-text": style === BUTTON_STYLES.danger_text,
|
|
106
|
-
"neeto-ui-btn--style-text": style === BUTTON_STYLES.text,
|
|
107
|
-
"neeto-ui-btn--style-link": style === BUTTON_STYLES.link,
|
|
108
|
-
"neeto-ui-btn--size-medium": size === SIZES.medium,
|
|
109
|
-
"neeto-ui-btn--size-large": size === SIZES.large,
|
|
110
|
-
"neeto-ui-btn--width-full": fullWidth,
|
|
111
|
-
"neeto-ui-btn--icon-left": iconPosition === ICON_POSITIONS.left,
|
|
112
|
-
"neeto-ui-btn--icon-only": !renderLabel,
|
|
113
|
-
"neeto-ui-btn--loading": loading,
|
|
114
|
-
disabled: disabled
|
|
115
|
-
}),
|
|
116
|
-
onClick: handleClick
|
|
117
|
-
}, _objectSpread(_objectSpread({
|
|
118
|
-
disabled: disabled,
|
|
119
|
-
ref: ref
|
|
120
|
-
}, elementSpecificProps), otherProps)), {}, {
|
|
121
|
-
children: [renderLabel && /*#__PURE__*/jsx("span", {
|
|
122
|
-
className: "neeto-ui-btn__label",
|
|
123
|
-
children: renderLabel
|
|
124
|
-
}), icon && /*#__PURE__*/jsx(Icon, {
|
|
125
|
-
"aria-hidden": "true",
|
|
126
|
-
className: "neeto-ui-btn__icon",
|
|
127
|
-
size: iconSize
|
|
128
|
-
}), loading && /*#__PURE__*/jsx("span", {
|
|
129
|
-
className: "neeto-ui-btn__spinner",
|
|
130
|
-
children: /*#__PURE__*/jsx(Spinner, {
|
|
131
|
-
"aria-hidden": "true",
|
|
132
|
-
size: "small"
|
|
133
|
-
})
|
|
134
|
-
})]
|
|
135
|
-
}))
|
|
148
|
+
children: buttonElement
|
|
136
149
|
}));
|
|
137
150
|
});
|
|
138
151
|
Button.displayName = "Button";
|
package/dist/Button.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Button.js","sources":["../src/components/Button.jsx"],"sourcesContent":["import React from \"react\";\n\nimport classnames from \"classnames\";\nimport PropTypes from \"prop-types\";\nimport { Link } from \"react-router-dom\";\n\nimport Spinner from \"./Spinner\";\nimport Tooltip from \"./Tooltip\";\n\nconst BUTTON_STYLES = {\n primary: \"primary\",\n secondary: \"secondary\",\n tertiary: \"tertiary\",\n danger: \"danger\",\n danger_text: \"danger-text\",\n text: \"text\",\n link: \"link\",\n};\nconst SIZES = { small: \"small\", medium: \"medium\", large: \"large\" };\nconst ICON_POSITIONS = { left: \"left\", right: \"right\" };\nconst BUTTON_TYPES = { button: \"button\", reset: \"reset\", submit: \"submit\" };\n\nconst Button = React.forwardRef(\n (\n {\n icon = null,\n iconPosition = ICON_POSITIONS.right,\n iconSize = 16,\n label = \"\",\n loading = false,\n onClick = () => {},\n to = \"\",\n type = BUTTON_TYPES.button,\n style = BUTTON_STYLES.primary,\n fullWidth = false,\n className = \"\",\n disabled = false,\n size = SIZES.medium,\n href = \"\",\n tooltipProps = null,\n children,\n ...otherProps\n },\n ref\n ) => {\n let Parent = \"button\";\n let elementSpecificProps = { type };\n\n const renderLabel = label || children;\n\n if (!disabled) {\n if (to) {\n Parent = Link;\n elementSpecificProps = { to };\n } else if (href) {\n Parent = \"a\";\n elementSpecificProps = { href };\n }\n }\n\n const handleClick = e => {\n if (loading || disabled) return;\n onClick(e);\n };\n\n const Icon =\n typeof icon === \"string\"\n ? () => (\n <i\n className={classnames(\"neeto-ui-btn__icon\", [icon])}\n data-testid=\"class-icon\"\n />\n )\n : icon || React.Fragment;\n\n return (\n <Tooltip disabled={!tooltipProps} {...tooltipProps}>\n <Parent\n className={classnames(\"neeto-ui-btn\", [className], {\n \"neeto-ui-btn--style-primary\": style === BUTTON_STYLES.primary,\n \"neeto-ui-btn--style-secondary\": style === BUTTON_STYLES.secondary,\n \"neeto-ui-btn--style-tertiary\": style === BUTTON_STYLES.tertiary,\n \"neeto-ui-btn--style-danger\": style === BUTTON_STYLES.danger,\n \"neeto-ui-btn--style-danger-text\":\n style === BUTTON_STYLES.danger_text,\n \"neeto-ui-btn--style-text\": style === BUTTON_STYLES.text,\n \"neeto-ui-btn--style-link\": style === BUTTON_STYLES.link,\n \"neeto-ui-btn--size-medium\": size === SIZES.medium,\n \"neeto-ui-btn--size-large\": size === SIZES.large,\n \"neeto-ui-btn--width-full\": fullWidth,\n \"neeto-ui-btn--icon-left\": iconPosition === ICON_POSITIONS.left,\n \"neeto-ui-btn--icon-only\": !renderLabel,\n \"neeto-ui-btn--loading\": loading,\n disabled,\n })}\n onClick={handleClick}\n {...{ disabled, ref, ...elementSpecificProps, ...otherProps }}\n >\n {renderLabel && (\n <span className=\"neeto-ui-btn__label\">{renderLabel}</span>\n )}\n {icon && (\n <Icon\n aria-hidden=\"true\"\n className=\"neeto-ui-btn__icon\"\n size={iconSize}\n />\n )}\n {loading && (\n <span className=\"neeto-ui-btn__spinner\">\n <Spinner aria-hidden=\"true\" size=\"small\" />\n </span>\n )}\n </Parent>\n </Tooltip>\n );\n }\n);\n\nButton.displayName = \"Button\";\n\nButton.propTypes = {\n /**\n * To specify the style of the Button.\n */\n style: PropTypes.oneOf(Object.values(BUTTON_STYLES)),\n /**\n * To set the size of the Button.\n */\n size: PropTypes.oneOf(Object.values(SIZES)),\n /**\n * To specify the position of the icon.\n */\n iconPosition: PropTypes.oneOf(Object.values(ICON_POSITIONS)),\n /**\n * To specify the size of the icon.\n */\n iconSize: PropTypes.number,\n /**\n * To set the text to be displayed inside the Button.\n */\n label: PropTypes.string,\n /**\n * Indicates if a Button is in loading state and shows spinner if true.\n */\n loading: PropTypes.bool,\n /**\n * To set Button as disabled.\n */\n disabled: PropTypes.bool,\n /**\n * To set the icon to be shown in the Button.\n */\n icon: PropTypes.oneOfType([\n PropTypes.string,\n PropTypes.func,\n PropTypes.element,\n ]),\n /**\n * To specify the action to be triggered on clicking the Button.\n */\n onClick: PropTypes.func,\n /**\n * To specify an internal route to which the Button points to.\n */\n to: PropTypes.string,\n /**\n * To specify an external link to which the Button points to.\n */\n href: PropTypes.string,\n /**\n * To specify the type of Button.\n */\n type: PropTypes.oneOf(Object.values(BUTTON_TYPES)),\n /**\n * To set the Button to full width of the container.\n */\n fullWidth: PropTypes.bool,\n /**\n * To provide external classnames to Button component.\n */\n className: PropTypes.string,\n /**\n * To specify the props to be passed to the tooltip.\n */\n tooltipProps: PropTypes.object,\n /**\n * To specify the children to be rendered inside the Button.\n */\n children: PropTypes.string,\n};\n\nexport default Button;\n"],"names":["BUTTON_STYLES","primary","secondary","tertiary","danger","danger_text","text","link","SIZES","small","medium","large","ICON_POSITIONS","left","right","BUTTON_TYPES","button","Button","React","forwardRef","_ref","ref","_ref$icon","icon","_ref$iconPosition","iconPosition","_ref$iconSize","iconSize","_ref$label","label","_ref$loading","loading","_ref$onClick","onClick","_ref$to","to","_ref$type","type","_ref$style","style","_ref$fullWidth","fullWidth","_ref$className","className","_ref$disabled","disabled","_ref$size","size","_ref$href","href","_ref$tooltipProps","tooltipProps","children","otherProps","_objectWithoutProperties","_excluded","Parent","elementSpecificProps","renderLabel","Link","handleClick","e","Icon","_jsx","classnames","Fragment","Tooltip","_objectSpread","_jsxs","Spinner","displayName"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"Button.js","sources":["../src/components/Button.jsx"],"sourcesContent":["import React from \"react\";\n\nimport classnames from \"classnames\";\nimport PropTypes from \"prop-types\";\nimport { Link } from \"react-router-dom\";\n\nimport Spinner from \"./Spinner\";\nimport Tooltip from \"./Tooltip\";\n\nconst BUTTON_STYLES = {\n primary: \"primary\",\n secondary: \"secondary\",\n tertiary: \"tertiary\",\n danger: \"danger\",\n danger_text: \"danger-text\",\n text: \"text\",\n link: \"link\",\n};\nconst SIZES = { small: \"small\", medium: \"medium\", large: \"large\" };\nconst ICON_POSITIONS = { left: \"left\", right: \"right\" };\nconst BUTTON_TYPES = { button: \"button\", reset: \"reset\", submit: \"submit\" };\n\nconst Button = React.forwardRef(\n (\n {\n icon = null,\n iconPosition = ICON_POSITIONS.right,\n iconSize = 16,\n label = \"\",\n loading = false,\n onClick = () => {},\n to = \"\",\n type = BUTTON_TYPES.button,\n style = BUTTON_STYLES.primary,\n fullWidth = false,\n className = \"\",\n disabled = false,\n size = SIZES.medium,\n href = \"\",\n tooltipProps = null,\n children,\n ...otherProps\n },\n ref\n ) => {\n let Parent = \"button\";\n let elementSpecificProps = { type };\n\n const renderLabel = label || children;\n\n if (!disabled) {\n if (to) {\n Parent = Link;\n elementSpecificProps = { to };\n } else if (href) {\n Parent = \"a\";\n elementSpecificProps = { href };\n }\n }\n\n const handleClick = e => {\n if (loading || disabled) return;\n onClick(e);\n };\n\n const Icon =\n typeof icon === \"string\"\n ? () => (\n <i\n className={classnames(\"neeto-ui-btn__icon\", [icon])}\n data-testid=\"class-icon\"\n />\n )\n : icon || React.Fragment;\n\n const buttonElement = (\n <Parent\n className={classnames(\"neeto-ui-btn\", [className], {\n \"neeto-ui-btn--style-primary\": style === BUTTON_STYLES.primary,\n \"neeto-ui-btn--style-secondary\": style === BUTTON_STYLES.secondary,\n \"neeto-ui-btn--style-tertiary\": style === BUTTON_STYLES.tertiary,\n \"neeto-ui-btn--style-danger\": style === BUTTON_STYLES.danger,\n \"neeto-ui-btn--style-danger-text\":\n style === BUTTON_STYLES.danger_text,\n \"neeto-ui-btn--style-text\": style === BUTTON_STYLES.text,\n \"neeto-ui-btn--style-link\": style === BUTTON_STYLES.link,\n \"neeto-ui-btn--size-medium\": size === SIZES.medium,\n \"neeto-ui-btn--size-large\": size === SIZES.large,\n \"neeto-ui-btn--width-full\": fullWidth,\n \"neeto-ui-btn--icon-left\": iconPosition === ICON_POSITIONS.left,\n \"neeto-ui-btn--icon-only\": !renderLabel,\n \"neeto-ui-btn--loading\": loading,\n disabled,\n })}\n onClick={handleClick}\n {...{ disabled, ref, ...elementSpecificProps, ...otherProps }}\n >\n {renderLabel && (\n <span className=\"neeto-ui-btn__label\">{renderLabel}</span>\n )}\n {icon && (\n <Icon\n aria-hidden=\"true\"\n className=\"neeto-ui-btn__icon\"\n size={iconSize}\n />\n )}\n {loading && (\n <span className=\"neeto-ui-btn__spinner\">\n <Spinner aria-hidden=\"true\" size=\"small\" />\n </span>\n )}\n </Parent>\n );\n\n if (disabled && tooltipProps) {\n return (\n <Tooltip disabled={!tooltipProps} {...tooltipProps}>\n <span\n className={classnames(\"inline-block\", {\n \"w-full\": fullWidth,\n })}\n >\n {buttonElement}\n </span>\n </Tooltip>\n );\n }\n\n return (\n <Tooltip disabled={!tooltipProps} {...tooltipProps}>\n {buttonElement}\n </Tooltip>\n );\n }\n);\n\nButton.displayName = \"Button\";\n\nButton.propTypes = {\n /**\n * To specify the style of the Button.\n */\n style: PropTypes.oneOf(Object.values(BUTTON_STYLES)),\n /**\n * To set the size of the Button.\n */\n size: PropTypes.oneOf(Object.values(SIZES)),\n /**\n * To specify the position of the icon.\n */\n iconPosition: PropTypes.oneOf(Object.values(ICON_POSITIONS)),\n /**\n * To specify the size of the icon.\n */\n iconSize: PropTypes.number,\n /**\n * To set the text to be displayed inside the Button.\n */\n label: PropTypes.string,\n /**\n * Indicates if a Button is in loading state and shows spinner if true.\n */\n loading: PropTypes.bool,\n /**\n * To set Button as disabled.\n */\n disabled: PropTypes.bool,\n /**\n * To set the icon to be shown in the Button.\n */\n icon: PropTypes.oneOfType([\n PropTypes.string,\n PropTypes.func,\n PropTypes.element,\n ]),\n /**\n * To specify the action to be triggered on clicking the Button.\n */\n onClick: PropTypes.func,\n /**\n * To specify an internal route to which the Button points to.\n */\n to: PropTypes.string,\n /**\n * To specify an external link to which the Button points to.\n */\n href: PropTypes.string,\n /**\n * To specify the type of Button.\n */\n type: PropTypes.oneOf(Object.values(BUTTON_TYPES)),\n /**\n * To set the Button to full width of the container.\n */\n fullWidth: PropTypes.bool,\n /**\n * To provide external classnames to Button component.\n */\n className: PropTypes.string,\n /**\n * To specify the props to be passed to the tooltip.\n */\n tooltipProps: PropTypes.object,\n /**\n * To specify the children to be rendered inside the Button.\n */\n children: PropTypes.string,\n};\n\nexport default Button;\n"],"names":["BUTTON_STYLES","primary","secondary","tertiary","danger","danger_text","text","link","SIZES","small","medium","large","ICON_POSITIONS","left","right","BUTTON_TYPES","button","Button","React","forwardRef","_ref","ref","_ref$icon","icon","_ref$iconPosition","iconPosition","_ref$iconSize","iconSize","_ref$label","label","_ref$loading","loading","_ref$onClick","onClick","_ref$to","to","_ref$type","type","_ref$style","style","_ref$fullWidth","fullWidth","_ref$className","className","_ref$disabled","disabled","_ref$size","size","_ref$href","href","_ref$tooltipProps","tooltipProps","children","otherProps","_objectWithoutProperties","_excluded","Parent","elementSpecificProps","renderLabel","Link","handleClick","e","Icon","_jsx","classnames","Fragment","buttonElement","_jsxs","_objectSpread","Spinner","Tooltip","displayName"],"mappings":"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"}
|
package/dist/cjs/Button.js
CHANGED
|
@@ -95,46 +95,59 @@ var Button = /*#__PURE__*/React.forwardRef(function (_ref, ref) {
|
|
|
95
95
|
"data-testid": "class-icon"
|
|
96
96
|
});
|
|
97
97
|
} : icon || React.Fragment;
|
|
98
|
+
var buttonElement = /*#__PURE__*/jsxRuntime.jsxs(Parent, _objectSpread(_objectSpread({
|
|
99
|
+
className: classnames("neeto-ui-btn", [className], {
|
|
100
|
+
"neeto-ui-btn--style-primary": style === BUTTON_STYLES.primary,
|
|
101
|
+
"neeto-ui-btn--style-secondary": style === BUTTON_STYLES.secondary,
|
|
102
|
+
"neeto-ui-btn--style-tertiary": style === BUTTON_STYLES.tertiary,
|
|
103
|
+
"neeto-ui-btn--style-danger": style === BUTTON_STYLES.danger,
|
|
104
|
+
"neeto-ui-btn--style-danger-text": style === BUTTON_STYLES.danger_text,
|
|
105
|
+
"neeto-ui-btn--style-text": style === BUTTON_STYLES.text,
|
|
106
|
+
"neeto-ui-btn--style-link": style === BUTTON_STYLES.link,
|
|
107
|
+
"neeto-ui-btn--size-medium": size === SIZES.medium,
|
|
108
|
+
"neeto-ui-btn--size-large": size === SIZES.large,
|
|
109
|
+
"neeto-ui-btn--width-full": fullWidth,
|
|
110
|
+
"neeto-ui-btn--icon-left": iconPosition === ICON_POSITIONS.left,
|
|
111
|
+
"neeto-ui-btn--icon-only": !renderLabel,
|
|
112
|
+
"neeto-ui-btn--loading": loading,
|
|
113
|
+
disabled: disabled
|
|
114
|
+
}),
|
|
115
|
+
onClick: handleClick
|
|
116
|
+
}, _objectSpread(_objectSpread({
|
|
117
|
+
disabled: disabled,
|
|
118
|
+
ref: ref
|
|
119
|
+
}, elementSpecificProps), otherProps)), {}, {
|
|
120
|
+
children: [renderLabel && /*#__PURE__*/jsxRuntime.jsx("span", {
|
|
121
|
+
className: "neeto-ui-btn__label",
|
|
122
|
+
children: renderLabel
|
|
123
|
+
}), icon && /*#__PURE__*/jsxRuntime.jsx(Icon, {
|
|
124
|
+
"aria-hidden": "true",
|
|
125
|
+
className: "neeto-ui-btn__icon",
|
|
126
|
+
size: iconSize
|
|
127
|
+
}), loading && /*#__PURE__*/jsxRuntime.jsx("span", {
|
|
128
|
+
className: "neeto-ui-btn__spinner",
|
|
129
|
+
children: /*#__PURE__*/jsxRuntime.jsx(Spinner, {
|
|
130
|
+
"aria-hidden": "true",
|
|
131
|
+
size: "small"
|
|
132
|
+
})
|
|
133
|
+
})]
|
|
134
|
+
}));
|
|
135
|
+
if (disabled && tooltipProps) {
|
|
136
|
+
return /*#__PURE__*/jsxRuntime.jsx(Tooltip, _objectSpread(_objectSpread({
|
|
137
|
+
disabled: !tooltipProps
|
|
138
|
+
}, tooltipProps), {}, {
|
|
139
|
+
children: /*#__PURE__*/jsxRuntime.jsx("span", {
|
|
140
|
+
className: classnames("inline-block", {
|
|
141
|
+
"w-full": fullWidth
|
|
142
|
+
}),
|
|
143
|
+
children: buttonElement
|
|
144
|
+
})
|
|
145
|
+
}));
|
|
146
|
+
}
|
|
98
147
|
return /*#__PURE__*/jsxRuntime.jsx(Tooltip, _objectSpread(_objectSpread({
|
|
99
148
|
disabled: !tooltipProps
|
|
100
149
|
}, tooltipProps), {}, {
|
|
101
|
-
children:
|
|
102
|
-
className: classnames("neeto-ui-btn", [className], {
|
|
103
|
-
"neeto-ui-btn--style-primary": style === BUTTON_STYLES.primary,
|
|
104
|
-
"neeto-ui-btn--style-secondary": style === BUTTON_STYLES.secondary,
|
|
105
|
-
"neeto-ui-btn--style-tertiary": style === BUTTON_STYLES.tertiary,
|
|
106
|
-
"neeto-ui-btn--style-danger": style === BUTTON_STYLES.danger,
|
|
107
|
-
"neeto-ui-btn--style-danger-text": style === BUTTON_STYLES.danger_text,
|
|
108
|
-
"neeto-ui-btn--style-text": style === BUTTON_STYLES.text,
|
|
109
|
-
"neeto-ui-btn--style-link": style === BUTTON_STYLES.link,
|
|
110
|
-
"neeto-ui-btn--size-medium": size === SIZES.medium,
|
|
111
|
-
"neeto-ui-btn--size-large": size === SIZES.large,
|
|
112
|
-
"neeto-ui-btn--width-full": fullWidth,
|
|
113
|
-
"neeto-ui-btn--icon-left": iconPosition === ICON_POSITIONS.left,
|
|
114
|
-
"neeto-ui-btn--icon-only": !renderLabel,
|
|
115
|
-
"neeto-ui-btn--loading": loading,
|
|
116
|
-
disabled: disabled
|
|
117
|
-
}),
|
|
118
|
-
onClick: handleClick
|
|
119
|
-
}, _objectSpread(_objectSpread({
|
|
120
|
-
disabled: disabled,
|
|
121
|
-
ref: ref
|
|
122
|
-
}, elementSpecificProps), otherProps)), {}, {
|
|
123
|
-
children: [renderLabel && /*#__PURE__*/jsxRuntime.jsx("span", {
|
|
124
|
-
className: "neeto-ui-btn__label",
|
|
125
|
-
children: renderLabel
|
|
126
|
-
}), icon && /*#__PURE__*/jsxRuntime.jsx(Icon, {
|
|
127
|
-
"aria-hidden": "true",
|
|
128
|
-
className: "neeto-ui-btn__icon",
|
|
129
|
-
size: iconSize
|
|
130
|
-
}), loading && /*#__PURE__*/jsxRuntime.jsx("span", {
|
|
131
|
-
className: "neeto-ui-btn__spinner",
|
|
132
|
-
children: /*#__PURE__*/jsxRuntime.jsx(Spinner, {
|
|
133
|
-
"aria-hidden": "true",
|
|
134
|
-
size: "small"
|
|
135
|
-
})
|
|
136
|
-
})]
|
|
137
|
-
}))
|
|
150
|
+
children: buttonElement
|
|
138
151
|
}));
|
|
139
152
|
});
|
|
140
153
|
Button.displayName = "Button";
|
package/dist/cjs/Button.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Button.js","sources":["../../src/components/Button.jsx"],"sourcesContent":["import React from \"react\";\n\nimport classnames from \"classnames\";\nimport PropTypes from \"prop-types\";\nimport { Link } from \"react-router-dom\";\n\nimport Spinner from \"./Spinner\";\nimport Tooltip from \"./Tooltip\";\n\nconst BUTTON_STYLES = {\n primary: \"primary\",\n secondary: \"secondary\",\n tertiary: \"tertiary\",\n danger: \"danger\",\n danger_text: \"danger-text\",\n text: \"text\",\n link: \"link\",\n};\nconst SIZES = { small: \"small\", medium: \"medium\", large: \"large\" };\nconst ICON_POSITIONS = { left: \"left\", right: \"right\" };\nconst BUTTON_TYPES = { button: \"button\", reset: \"reset\", submit: \"submit\" };\n\nconst Button = React.forwardRef(\n (\n {\n icon = null,\n iconPosition = ICON_POSITIONS.right,\n iconSize = 16,\n label = \"\",\n loading = false,\n onClick = () => {},\n to = \"\",\n type = BUTTON_TYPES.button,\n style = BUTTON_STYLES.primary,\n fullWidth = false,\n className = \"\",\n disabled = false,\n size = SIZES.medium,\n href = \"\",\n tooltipProps = null,\n children,\n ...otherProps\n },\n ref\n ) => {\n let Parent = \"button\";\n let elementSpecificProps = { type };\n\n const renderLabel = label || children;\n\n if (!disabled) {\n if (to) {\n Parent = Link;\n elementSpecificProps = { to };\n } else if (href) {\n Parent = \"a\";\n elementSpecificProps = { href };\n }\n }\n\n const handleClick = e => {\n if (loading || disabled) return;\n onClick(e);\n };\n\n const Icon =\n typeof icon === \"string\"\n ? () => (\n <i\n className={classnames(\"neeto-ui-btn__icon\", [icon])}\n data-testid=\"class-icon\"\n />\n )\n : icon || React.Fragment;\n\n return (\n <Tooltip disabled={!tooltipProps} {...tooltipProps}>\n <Parent\n className={classnames(\"neeto-ui-btn\", [className], {\n \"neeto-ui-btn--style-primary\": style === BUTTON_STYLES.primary,\n \"neeto-ui-btn--style-secondary\": style === BUTTON_STYLES.secondary,\n \"neeto-ui-btn--style-tertiary\": style === BUTTON_STYLES.tertiary,\n \"neeto-ui-btn--style-danger\": style === BUTTON_STYLES.danger,\n \"neeto-ui-btn--style-danger-text\":\n style === BUTTON_STYLES.danger_text,\n \"neeto-ui-btn--style-text\": style === BUTTON_STYLES.text,\n \"neeto-ui-btn--style-link\": style === BUTTON_STYLES.link,\n \"neeto-ui-btn--size-medium\": size === SIZES.medium,\n \"neeto-ui-btn--size-large\": size === SIZES.large,\n \"neeto-ui-btn--width-full\": fullWidth,\n \"neeto-ui-btn--icon-left\": iconPosition === ICON_POSITIONS.left,\n \"neeto-ui-btn--icon-only\": !renderLabel,\n \"neeto-ui-btn--loading\": loading,\n disabled,\n })}\n onClick={handleClick}\n {...{ disabled, ref, ...elementSpecificProps, ...otherProps }}\n >\n {renderLabel && (\n <span className=\"neeto-ui-btn__label\">{renderLabel}</span>\n )}\n {icon && (\n <Icon\n aria-hidden=\"true\"\n className=\"neeto-ui-btn__icon\"\n size={iconSize}\n />\n )}\n {loading && (\n <span className=\"neeto-ui-btn__spinner\">\n <Spinner aria-hidden=\"true\" size=\"small\" />\n </span>\n )}\n </Parent>\n </Tooltip>\n );\n }\n);\n\nButton.displayName = \"Button\";\n\nButton.propTypes = {\n /**\n * To specify the style of the Button.\n */\n style: PropTypes.oneOf(Object.values(BUTTON_STYLES)),\n /**\n * To set the size of the Button.\n */\n size: PropTypes.oneOf(Object.values(SIZES)),\n /**\n * To specify the position of the icon.\n */\n iconPosition: PropTypes.oneOf(Object.values(ICON_POSITIONS)),\n /**\n * To specify the size of the icon.\n */\n iconSize: PropTypes.number,\n /**\n * To set the text to be displayed inside the Button.\n */\n label: PropTypes.string,\n /**\n * Indicates if a Button is in loading state and shows spinner if true.\n */\n loading: PropTypes.bool,\n /**\n * To set Button as disabled.\n */\n disabled: PropTypes.bool,\n /**\n * To set the icon to be shown in the Button.\n */\n icon: PropTypes.oneOfType([\n PropTypes.string,\n PropTypes.func,\n PropTypes.element,\n ]),\n /**\n * To specify the action to be triggered on clicking the Button.\n */\n onClick: PropTypes.func,\n /**\n * To specify an internal route to which the Button points to.\n */\n to: PropTypes.string,\n /**\n * To specify an external link to which the Button points to.\n */\n href: PropTypes.string,\n /**\n * To specify the type of Button.\n */\n type: PropTypes.oneOf(Object.values(BUTTON_TYPES)),\n /**\n * To set the Button to full width of the container.\n */\n fullWidth: PropTypes.bool,\n /**\n * To provide external classnames to Button component.\n */\n className: PropTypes.string,\n /**\n * To specify the props to be passed to the tooltip.\n */\n tooltipProps: PropTypes.object,\n /**\n * To specify the children to be rendered inside the Button.\n */\n children: PropTypes.string,\n};\n\nexport default Button;\n"],"names":["BUTTON_STYLES","primary","secondary","tertiary","danger","danger_text","text","link","SIZES","small","medium","large","ICON_POSITIONS","left","right","BUTTON_TYPES","button","Button","React","forwardRef","_ref","ref","_ref$icon","icon","_ref$iconPosition","iconPosition","_ref$iconSize","iconSize","_ref$label","label","_ref$loading","loading","_ref$onClick","onClick","_ref$to","to","_ref$type","type","_ref$style","style","_ref$fullWidth","fullWidth","_ref$className","className","_ref$disabled","disabled","_ref$size","size","_ref$href","href","_ref$tooltipProps","tooltipProps","children","otherProps","_objectWithoutProperties","_excluded","Parent","elementSpecificProps","renderLabel","Link","handleClick","e","Icon","_jsx","classnames","Fragment","Tooltip","_objectSpread","_jsxs","Spinner","displayName"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"Button.js","sources":["../../src/components/Button.jsx"],"sourcesContent":["import React from \"react\";\n\nimport classnames from \"classnames\";\nimport PropTypes from \"prop-types\";\nimport { Link } from \"react-router-dom\";\n\nimport Spinner from \"./Spinner\";\nimport Tooltip from \"./Tooltip\";\n\nconst BUTTON_STYLES = {\n primary: \"primary\",\n secondary: \"secondary\",\n tertiary: \"tertiary\",\n danger: \"danger\",\n danger_text: \"danger-text\",\n text: \"text\",\n link: \"link\",\n};\nconst SIZES = { small: \"small\", medium: \"medium\", large: \"large\" };\nconst ICON_POSITIONS = { left: \"left\", right: \"right\" };\nconst BUTTON_TYPES = { button: \"button\", reset: \"reset\", submit: \"submit\" };\n\nconst Button = React.forwardRef(\n (\n {\n icon = null,\n iconPosition = ICON_POSITIONS.right,\n iconSize = 16,\n label = \"\",\n loading = false,\n onClick = () => {},\n to = \"\",\n type = BUTTON_TYPES.button,\n style = BUTTON_STYLES.primary,\n fullWidth = false,\n className = \"\",\n disabled = false,\n size = SIZES.medium,\n href = \"\",\n tooltipProps = null,\n children,\n ...otherProps\n },\n ref\n ) => {\n let Parent = \"button\";\n let elementSpecificProps = { type };\n\n const renderLabel = label || children;\n\n if (!disabled) {\n if (to) {\n Parent = Link;\n elementSpecificProps = { to };\n } else if (href) {\n Parent = \"a\";\n elementSpecificProps = { href };\n }\n }\n\n const handleClick = e => {\n if (loading || disabled) return;\n onClick(e);\n };\n\n const Icon =\n typeof icon === \"string\"\n ? () => (\n <i\n className={classnames(\"neeto-ui-btn__icon\", [icon])}\n data-testid=\"class-icon\"\n />\n )\n : icon || React.Fragment;\n\n const buttonElement = (\n <Parent\n className={classnames(\"neeto-ui-btn\", [className], {\n \"neeto-ui-btn--style-primary\": style === BUTTON_STYLES.primary,\n \"neeto-ui-btn--style-secondary\": style === BUTTON_STYLES.secondary,\n \"neeto-ui-btn--style-tertiary\": style === BUTTON_STYLES.tertiary,\n \"neeto-ui-btn--style-danger\": style === BUTTON_STYLES.danger,\n \"neeto-ui-btn--style-danger-text\":\n style === BUTTON_STYLES.danger_text,\n \"neeto-ui-btn--style-text\": style === BUTTON_STYLES.text,\n \"neeto-ui-btn--style-link\": style === BUTTON_STYLES.link,\n \"neeto-ui-btn--size-medium\": size === SIZES.medium,\n \"neeto-ui-btn--size-large\": size === SIZES.large,\n \"neeto-ui-btn--width-full\": fullWidth,\n \"neeto-ui-btn--icon-left\": iconPosition === ICON_POSITIONS.left,\n \"neeto-ui-btn--icon-only\": !renderLabel,\n \"neeto-ui-btn--loading\": loading,\n disabled,\n })}\n onClick={handleClick}\n {...{ disabled, ref, ...elementSpecificProps, ...otherProps }}\n >\n {renderLabel && (\n <span className=\"neeto-ui-btn__label\">{renderLabel}</span>\n )}\n {icon && (\n <Icon\n aria-hidden=\"true\"\n className=\"neeto-ui-btn__icon\"\n size={iconSize}\n />\n )}\n {loading && (\n <span className=\"neeto-ui-btn__spinner\">\n <Spinner aria-hidden=\"true\" size=\"small\" />\n </span>\n )}\n </Parent>\n );\n\n if (disabled && tooltipProps) {\n return (\n <Tooltip disabled={!tooltipProps} {...tooltipProps}>\n <span\n className={classnames(\"inline-block\", {\n \"w-full\": fullWidth,\n })}\n >\n {buttonElement}\n </span>\n </Tooltip>\n );\n }\n\n return (\n <Tooltip disabled={!tooltipProps} {...tooltipProps}>\n {buttonElement}\n </Tooltip>\n );\n }\n);\n\nButton.displayName = \"Button\";\n\nButton.propTypes = {\n /**\n * To specify the style of the Button.\n */\n style: PropTypes.oneOf(Object.values(BUTTON_STYLES)),\n /**\n * To set the size of the Button.\n */\n size: PropTypes.oneOf(Object.values(SIZES)),\n /**\n * To specify the position of the icon.\n */\n iconPosition: PropTypes.oneOf(Object.values(ICON_POSITIONS)),\n /**\n * To specify the size of the icon.\n */\n iconSize: PropTypes.number,\n /**\n * To set the text to be displayed inside the Button.\n */\n label: PropTypes.string,\n /**\n * Indicates if a Button is in loading state and shows spinner if true.\n */\n loading: PropTypes.bool,\n /**\n * To set Button as disabled.\n */\n disabled: PropTypes.bool,\n /**\n * To set the icon to be shown in the Button.\n */\n icon: PropTypes.oneOfType([\n PropTypes.string,\n PropTypes.func,\n PropTypes.element,\n ]),\n /**\n * To specify the action to be triggered on clicking the Button.\n */\n onClick: PropTypes.func,\n /**\n * To specify an internal route to which the Button points to.\n */\n to: PropTypes.string,\n /**\n * To specify an external link to which the Button points to.\n */\n href: PropTypes.string,\n /**\n * To specify the type of Button.\n */\n type: PropTypes.oneOf(Object.values(BUTTON_TYPES)),\n /**\n * To set the Button to full width of the container.\n */\n fullWidth: PropTypes.bool,\n /**\n * To provide external classnames to Button component.\n */\n className: PropTypes.string,\n /**\n * To specify the props to be passed to the tooltip.\n */\n tooltipProps: PropTypes.object,\n /**\n * To specify the children to be rendered inside the Button.\n */\n children: PropTypes.string,\n};\n\nexport default Button;\n"],"names":["BUTTON_STYLES","primary","secondary","tertiary","danger","danger_text","text","link","SIZES","small","medium","large","ICON_POSITIONS","left","right","BUTTON_TYPES","button","Button","React","forwardRef","_ref","ref","_ref$icon","icon","_ref$iconPosition","iconPosition","_ref$iconSize","iconSize","_ref$label","label","_ref$loading","loading","_ref$onClick","onClick","_ref$to","to","_ref$type","type","_ref$style","style","_ref$fullWidth","fullWidth","_ref$className","className","_ref$disabled","disabled","_ref$size","size","_ref$href","href","_ref$tooltipProps","tooltipProps","children","otherProps","_objectWithoutProperties","_excluded","Parent","elementSpecificProps","renderLabel","Link","handleClick","e","Icon","_jsx","classnames","Fragment","buttonElement","_jsxs","_objectSpread","Spinner","Tooltip","displayName"],"mappings":"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"}
|