@purpurds/button 7.6.1 → 7.7.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/LICENSE.txt CHANGED
@@ -1,12 +1,12 @@
1
1
  Name: @purpurds/action
2
- Version: 7.6.0
2
+ Version: 7.6.1
3
3
  License: AGPL-3.0-only
4
4
  Private: false
5
5
 
6
6
  ---
7
7
 
8
8
  Name: @purpurds/spinner
9
- Version: 7.6.0
9
+ Version: 7.6.1
10
10
  License: AGPL-3.0-only
11
11
  Private: false
12
12
 
@@ -1,10 +1,10 @@
1
- "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const c=require("react/jsx-runtime"),$=require("react"),E={PRIMARY:"primary",SECONDARY:"secondary",EXPRESSIVE:"expressive"},R={LG:"lg"};function B(u){return u&&u.__esModule&&Object.prototype.hasOwnProperty.call(u,"default")?u.default:u}var m={exports:{}};/*!
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const a=require("react/jsx-runtime"),N=require("react"),O={PRIMARY:"primary",SECONDARY:"secondary",EXPRESSIVE:"expressive"},$={LG:"lg"};function E(u){return u&&u.__esModule&&Object.prototype.hasOwnProperty.call(u,"default")?u.default:u}var y={exports:{}};/*!
2
2
  Copyright (c) 2018 Jed Watson.
3
3
  Licensed under the MIT License (MIT), see
4
4
  http://jedwatson.github.io/classnames
5
- */var w;function A(){return w||(w=1,function(u){(function(){var i={}.hasOwnProperty;function n(){for(var t="",r=0;r<arguments.length;r++){var e=arguments[r];e&&(t=s(t,p(e)))}return t}function p(t){if(typeof t=="string"||typeof t=="number")return t;if(typeof t!="object")return"";if(Array.isArray(t))return n.apply(null,t);if(t.toString!==Object.prototype.toString&&!t.toString.toString().includes("[native code]"))return t.toString();var r="";for(var e in t)i.call(t,e)&&t[e]&&(r=s(r,e));return r}function s(t,r){return r?t?t+" "+r:t+r:t}u.exports?(n.default=n,u.exports=n):window.classNames=n})()}(m)),m.exports}var P=A();const g=B(P),V="_rotate_12t9p_1",I="_dash_12t9p_1",_={"purpur-spinner":"_purpur-spinner_12t9p_2",rotate:V,"purpur-spinner--xxs":"_purpur-spinner--xxs_12t9p_6","purpur-spinner--xs":"_purpur-spinner--xs_12t9p_10","purpur-spinner--sm":"_purpur-spinner--sm_12t9p_14","purpur-spinner--md":"_purpur-spinner--md_12t9p_18","purpur-spinner--lg":"_purpur-spinner--lg_12t9p_22","purpur-spinner__circle":"_purpur-spinner__circle_12t9p_26",dash:I,"purpur-spinner__circle--disabled":"_purpur-spinner__circle--disabled_12t9p_41","purpur-spinner__circle--negative":"_purpur-spinner__circle--negative_12t9p_44"},a="purpur-spinner",M={SM:"sm"},U=({["data-testid"]:u,disabled:i=!1,negative:n=!1,size:p=M.SM,...s})=>c.jsx("div",{className:g([_[a],_[`${a}--${p}`]]),"data-testid":u,...s,children:c.jsx("svg",{viewBox:"0 0 50 50",children:c.jsx("circle",{className:g(_[`${a}__circle`],{[_[`${a}__circle--disabled`]]:i,[_[`${a}__circle--negative`]]:n}),cx:"25",cy:"25",r:"20"})})});function C(u){return u&&u.__esModule&&Object.prototype.hasOwnProperty.call(u,"default")?u.default:u}var d={exports:{}};/*!
5
+ */var x;function R(){return x||(x=1,function(u){(function(){var s={}.hasOwnProperty;function n(){for(var t="",r=0;r<arguments.length;r++){var e=arguments[r];e&&(t=p(t,i.call(this,e)))}return t}function i(t){if(typeof t=="string"||typeof t=="number")return this&&this[t]||t;if(typeof t!="object")return"";if(Array.isArray(t))return n.apply(this,t);if(t.toString!==Object.prototype.toString&&!t.toString.toString().includes("[native code]"))return t.toString();var r="";for(var e in t)s.call(t,e)&&t[e]&&(r=p(r,this&&this[e]||e));return r}function p(t,r){return r?t?t+" "+r:t+r:t}u.exports?(n.default=n,u.exports=n):window.classNames=n})()}(y)),y.exports}var A=R();const B=E(A),P="_rotate_12t9p_1",V="_dash_12t9p_1",I={"purpur-spinner":"_purpur-spinner_12t9p_2",rotate:P,"purpur-spinner--xxs":"_purpur-spinner--xxs_12t9p_6","purpur-spinner--xs":"_purpur-spinner--xs_12t9p_10","purpur-spinner--sm":"_purpur-spinner--sm_12t9p_14","purpur-spinner--md":"_purpur-spinner--md_12t9p_18","purpur-spinner--lg":"_purpur-spinner--lg_12t9p_22","purpur-spinner__circle":"_purpur-spinner__circle_12t9p_26",dash:V,"purpur-spinner__circle--disabled":"_purpur-spinner__circle--disabled_12t9p_41","purpur-spinner__circle--negative":"_purpur-spinner__circle--negative_12t9p_44"},m=B.bind(I),_="purpur-spinner",M={SM:"sm"},U=({disabled:u=!1,negative:s=!1,size:n=M.SM,...i})=>a.jsx("div",{className:m(_,`${_}--${n}`),...i,children:a.jsx("svg",{viewBox:"0 0 50 50",children:a.jsx("circle",{className:m(`${_}__circle`,{[`${_}__circle--disabled`]:u,[`${_}__circle--negative`]:s}),cx:"25",cy:"25",r:"20"})})});function Y(u){return u&&u.__esModule&&Object.prototype.hasOwnProperty.call(u,"default")?u.default:u}var l={exports:{}};/*!
6
6
  Copyright (c) 2018 Jed Watson.
7
7
  Licensed under the MIT License (MIT), see
8
8
  http://jedwatson.github.io/classnames
9
- */var q;function Y(){return q||(q=1,function(u){(function(){var i={}.hasOwnProperty;function n(){for(var t="",r=0;r<arguments.length;r++){var e=arguments[r];e&&(t=s(t,p.call(this,e)))}return t}function p(t){if(typeof t=="string"||typeof t=="number")return this&&this[t]||t;if(typeof t!="object")return"";if(Array.isArray(t))return n.apply(this,t);if(t.toString!==Object.prototype.toString&&!t.toString.toString().includes("[native code]"))return t.toString();var r="";for(var e in t)i.call(t,e)&&t[e]&&(r=s(r,this&&this[e]||e));return r}function s(t,r){return r?t?t+" "+r:t+r:t}u.exports?(n.default=n,u.exports=n):window.classNames=n})()}(d)),d.exports}var D=Y();const L=C(D),G={"purpur-button":"_purpur-button_w455q_1","purpur-button--xs":"_purpur-button--xs_w455q_33","purpur-button--icon-only":"_purpur-button--icon-only_w455q_36","purpur-button--sm":"_purpur-button--sm_w455q_39","purpur-button--md":"_purpur-button--md_w455q_45","purpur-button--lg":"_purpur-button--lg_w455q_51","purpur-button--full-width":"_purpur-button--full-width_w455q_57","purpur-button--primary":"_purpur-button--primary_w455q_60","purpur-button--disabled":"_purpur-button--disabled_w455q_64","purpur-button--primary-negative":"_purpur-button--primary-negative_w455q_70","purpur-button--secondary":"_purpur-button--secondary_w455q_82","purpur-button--secondary-negative":"_purpur-button--secondary-negative_w455q_93","purpur-button--expressive":"_purpur-button--expressive_w455q_104","purpur-button--expressive-negative":"_purpur-button--expressive-negative_w455q_114","purpur-button--negative":"_purpur-button--negative_w455q_126","purpur-button--destructive":"_purpur-button--destructive_w455q_133","purpur-button--destructive-negative":"_purpur-button--destructive-negative_w455q_143","purpur-button--tertiary-purple":"_purpur-button--tertiary-purple_w455q_153","purpur-button--tertiary-purple-negative":"_purpur-button--tertiary-purple-negative_w455q_166","purpur-button--text-negative":"_purpur-button--text-negative_w455q_181","purpur-button--text":"_purpur-button--text_w455q_181"},h={...E,DESTRUCTIVE:"destructive",TERTIARY_PURPLE:"tertiary-purple",TEXT:"text"},X=Object.values(h),z=L.bind(G),o="purpur-button",F=["button","submit","reset"],H=({children:u,className:i,["data-testid"]:n,disabled:p=!1,fullWidth:s=!1,iconOnly:t,loading:r=!1,negative:e=!1,onClick:b,size:f="md",variant:l,type:T="button",...v},N)=>{if(t&&l==="destructive")return null;const j=z([o,`${o}--${e?`${l}-negative`:l}`,`${o}--${f}`],{[`${o}--icon-only`]:t,[`${o}--negative`]:e,[`${o}--full-width`]:s,[`${o}--disabled`]:p||r},i),O=x=>{p||r?x.preventDefault():b&&b(x)},y=!!v["aria-disabled"]||p||r;return c.jsxs("button",{className:j,"data-testid":n,type:T,ref:N,"aria-disabled":y,onClick:O,...v,children:[r&&c.jsx(U,{size:f===R.LG?"xs":"xxs",negative:e,disabled:y})," ",u]})},S=$.forwardRef(H);S.displayName="Button";exports.BUTTON_TYPES=F;exports.BUTTON_VARIANT=h;exports.Button=S;exports.buttonVariants=X;
9
+ */var w;function C(){return w||(w=1,function(u){(function(){var s={}.hasOwnProperty;function n(){for(var t="",r=0;r<arguments.length;r++){var e=arguments[r];e&&(t=p(t,i.call(this,e)))}return t}function i(t){if(typeof t=="string"||typeof t=="number")return this&&this[t]||t;if(typeof t!="object")return"";if(Array.isArray(t))return n.apply(this,t);if(t.toString!==Object.prototype.toString&&!t.toString.toString().includes("[native code]"))return t.toString();var r="";for(var e in t)s.call(t,e)&&t[e]&&(r=p(r,this&&this[e]||e));return r}function p(t,r){return r?t?t+" "+r:t+r:t}u.exports?(n.default=n,u.exports=n):window.classNames=n})()}(l)),l.exports}var D=C();const L=Y(D),G={"purpur-button":"_purpur-button_w455q_1","purpur-button--xs":"_purpur-button--xs_w455q_33","purpur-button--icon-only":"_purpur-button--icon-only_w455q_36","purpur-button--sm":"_purpur-button--sm_w455q_39","purpur-button--md":"_purpur-button--md_w455q_45","purpur-button--lg":"_purpur-button--lg_w455q_51","purpur-button--full-width":"_purpur-button--full-width_w455q_57","purpur-button--primary":"_purpur-button--primary_w455q_60","purpur-button--disabled":"_purpur-button--disabled_w455q_64","purpur-button--primary-negative":"_purpur-button--primary-negative_w455q_70","purpur-button--secondary":"_purpur-button--secondary_w455q_82","purpur-button--secondary-negative":"_purpur-button--secondary-negative_w455q_93","purpur-button--expressive":"_purpur-button--expressive_w455q_104","purpur-button--expressive-negative":"_purpur-button--expressive-negative_w455q_114","purpur-button--negative":"_purpur-button--negative_w455q_126","purpur-button--destructive":"_purpur-button--destructive_w455q_133","purpur-button--destructive-negative":"_purpur-button--destructive-negative_w455q_143","purpur-button--tertiary-purple":"_purpur-button--tertiary-purple_w455q_153","purpur-button--tertiary-purple-negative":"_purpur-button--tertiary-purple-negative_w455q_166","purpur-button--text-negative":"_purpur-button--text-negative_w455q_181","purpur-button--text":"_purpur-button--text_w455q_181"},h={...O,DESTRUCTIVE:"destructive",TERTIARY_PURPLE:"tertiary-purple",TEXT:"text"},X=Object.values(h),z=L.bind(G),o="purpur-button",F=["button","submit","reset"],g=N.forwardRef(({children:u,className:s,disabled:n=!1,fullWidth:i=!1,iconOnly:p,loading:t=!1,negative:r=!1,onClick:e,size:b="md",variant:c,type:q="button",...d},S)=>{if(p&&c==="destructive")return null;const T=z([o,`${o}--${r?`${c}-negative`:c}`,`${o}--${b}`],{[`${o}--icon-only`]:p,[`${o}--negative`]:r,[`${o}--full-width`]:i,[`${o}--disabled`]:n||t},s),j=v=>{n||t?v.preventDefault():e&&e(v)},f=!!d["aria-disabled"]||n||t;return a.jsxs("button",{className:T,type:q,ref:S,"aria-disabled":f,onClick:j,...d,children:[t&&a.jsx(U,{size:b===$.LG?"xs":"xxs",negative:r,disabled:f})," ",u]})});g.displayName="Button";exports.BUTTON_TYPES=F;exports.BUTTON_VARIANT=h;exports.Button=g;exports.buttonVariants=X;
10
10
  //# sourceMappingURL=button.cjs.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"button.cjs.js","sources":["../../../libraries/action/dist/action.es.js","../../spinner/dist/spinner.es.js","../../../common/temp/node_modules/.pnpm/classnames@2.5.1/node_modules/classnames/bind.js","../src/button.tsx"],"sourcesContent":["const s = {\n PRIMARY: \"primary\",\n SECONDARY: \"secondary\",\n EXPRESSIVE: \"expressive\"\n}, t = Object.values(s), e = {\n XS: \"xs\",\n SM: \"sm\",\n MD: \"md\",\n LG: \"lg\"\n}, c = Object.values(e);\nexport {\n e as SIZE,\n s as VARIANT,\n c as sizes,\n t as variants\n};\n//# sourceMappingURL=action.es.js.map\n","import { jsx as a } from \"react/jsx-runtime\";\nfunction m(n) {\n return n && n.__esModule && Object.prototype.hasOwnProperty.call(n, \"default\") ? n.default : n;\n}\nvar o = { exports: {} };\n/*!\n\tCopyright (c) 2018 Jed Watson.\n\tLicensed under the MIT License (MIT), see\n\thttp://jedwatson.github.io/classnames\n*/\nvar l;\nfunction x() {\n return l || (l = 1, function(n) {\n (function() {\n var c = {}.hasOwnProperty;\n function s() {\n for (var r = \"\", e = 0; e < arguments.length; e++) {\n var t = arguments[e];\n t && (r = u(r, _(t)));\n }\n return r;\n }\n function _(r) {\n if (typeof r == \"string\" || typeof r == \"number\")\n return r;\n if (typeof r != \"object\")\n return \"\";\n if (Array.isArray(r))\n return s.apply(null, r);\n if (r.toString !== Object.prototype.toString && !r.toString.toString().includes(\"[native code]\"))\n return r.toString();\n var e = \"\";\n for (var t in r)\n c.call(r, t) && r[t] && (e = u(e, t));\n return e;\n }\n function u(r, e) {\n return e ? r ? r + \" \" + e : r + e : r;\n }\n n.exports ? (s.default = s, n.exports = s) : window.classNames = s;\n })();\n }(o)), o.exports;\n}\nvar v = x();\nconst f = /* @__PURE__ */ m(v), S = \"_rotate_12t9p_1\", h = \"_dash_12t9p_1\", p = {\n \"purpur-spinner\": \"_purpur-spinner_12t9p_2\",\n rotate: S,\n \"purpur-spinner--xxs\": \"_purpur-spinner--xxs_12t9p_6\",\n \"purpur-spinner--xs\": \"_purpur-spinner--xs_12t9p_10\",\n \"purpur-spinner--sm\": \"_purpur-spinner--sm_12t9p_14\",\n \"purpur-spinner--md\": \"_purpur-spinner--md_12t9p_18\",\n \"purpur-spinner--lg\": \"_purpur-spinner--lg_12t9p_22\",\n \"purpur-spinner__circle\": \"_purpur-spinner__circle_12t9p_26\",\n dash: h,\n \"purpur-spinner__circle--disabled\": \"_purpur-spinner__circle--disabled_12t9p_41\",\n \"purpur-spinner__circle--negative\": \"_purpur-spinner__circle--negative_12t9p_44\"\n}, i = \"purpur-spinner\", d = {\n XXS: \"xxs\",\n XS: \"xs\",\n SM: \"sm\",\n MD: \"md\",\n LG: \"lg\"\n}, b = Object.values(d), N = ({\n [\"data-testid\"]: n,\n disabled: c = !1,\n negative: s = !1,\n size: _ = d.SM,\n ...u\n}) => /* @__PURE__ */ a(\n \"div\",\n {\n className: f([p[i], p[`${i}--${_}`]]),\n \"data-testid\": n,\n ...u,\n children: /* @__PURE__ */ a(\"svg\", { viewBox: \"0 0 50 50\", children: /* @__PURE__ */ a(\n \"circle\",\n {\n className: f(p[`${i}__circle`], {\n [p[`${i}__circle--disabled`]]: c,\n [p[`${i}__circle--negative`]]: s\n }),\n cx: \"25\",\n cy: \"25\",\n r: \"20\"\n }\n ) })\n }\n);\nexport {\n d as SPINNER_SIZE,\n N as Spinner,\n b as spinnerSizes\n};\n//# sourceMappingURL=spinner.es.js.map\n","/*!\n\tCopyright (c) 2018 Jed Watson.\n\tLicensed under the MIT License (MIT), see\n\thttp://jedwatson.github.io/classnames\n*/\n/* global define */\n\n(function () {\n\t'use strict';\n\n\tvar hasOwn = {}.hasOwnProperty;\n\n\tfunction classNames () {\n\t\tvar classes = '';\n\n\t\tfor (var i = 0; i < arguments.length; i++) {\n\t\t\tvar arg = arguments[i];\n\t\t\tif (arg) {\n\t\t\t\tclasses = appendClass(classes, parseValue.call(this, arg));\n\t\t\t}\n\t\t}\n\n\t\treturn classes;\n\t}\n\n\tfunction parseValue (arg) {\n\t\tif (typeof arg === 'string' || typeof arg === 'number') {\n\t\t\treturn this && this[arg] || arg;\n\t\t}\n\n\t\tif (typeof arg !== 'object') {\n\t\t\treturn '';\n\t\t}\n\n\t\tif (Array.isArray(arg)) {\n\t\t\treturn classNames.apply(this, arg);\n\t\t}\n\n\t\tif (arg.toString !== Object.prototype.toString && !arg.toString.toString().includes('[native code]')) {\n\t\t\treturn arg.toString();\n\t\t}\n\n\t\tvar classes = '';\n\n\t\tfor (var key in arg) {\n\t\t\tif (hasOwn.call(arg, key) && arg[key]) {\n\t\t\t\tclasses = appendClass(classes, this && this[key] || key);\n\t\t\t}\n\t\t}\n\n\t\treturn classes;\n\t}\n\n\tfunction appendClass (value, newClass) {\n\t\tif (!newClass) {\n\t\t\treturn value;\n\t\t}\n\t\n\t\tif (value) {\n\t\t\treturn value + ' ' + newClass;\n\t\t}\n\t\n\t\treturn value + newClass;\n\t}\n\n\tif (typeof module !== 'undefined' && module.exports) {\n\t\tclassNames.default = classNames;\n\t\tmodule.exports = classNames;\n\t} else if (typeof define === 'function' && typeof define.amd === 'object' && define.amd) {\n\t\t// register as 'classnames', consistent with npm package name\n\t\tdefine('classnames', [], function () {\n\t\t\treturn classNames;\n\t\t});\n\t} else {\n\t\twindow.classNames = classNames;\n\t}\n}());\n","import React, { type ButtonHTMLAttributes, type ForwardedRef, forwardRef, type MouseEvent } from \"react\";\nimport { type ActionProps, SIZE, VARIANT } from \"@purpurds/action\";\nimport { Spinner } from \"@purpurds/spinner\";\nimport c from \"classnames/bind\";\n\nimport styles from \"./button.module.scss\";\n\nexport const BUTTON_VARIANT = {\n ...VARIANT,\n DESTRUCTIVE: \"destructive\",\n TERTIARY_PURPLE: \"tertiary-purple\",\n TEXT: \"text\",\n} as const;\n\nexport const buttonVariants = Object.values(BUTTON_VARIANT);\nexport type ButtonVariant = (typeof BUTTON_VARIANT)[keyof typeof BUTTON_VARIANT];\n\nconst cx = c.bind(styles);\nconst rootClassName = \"purpur-button\";\n\ntype ButtonType = Pick<ButtonHTMLAttributes<HTMLButtonElement>, \"type\">[\"type\"];\nexport const BUTTON_TYPES: ButtonType[] = [\"button\", \"submit\", \"reset\"] as const;\n\nexport type ButtonProps = ActionProps<ButtonVariant> &\n ButtonHTMLAttributes<HTMLButtonElement> & { loading?: boolean };\n\nconst ButtonComponent = (\n {\n children,\n className,\n [\"data-testid\"]: dataTestid,\n disabled = false,\n fullWidth = false,\n iconOnly,\n loading = false,\n negative = false,\n onClick,\n size = \"md\",\n variant,\n type = \"button\",\n ...props\n }: Omit<ButtonProps, \"type\"> & { type?: ButtonType },\n ref: ForwardedRef<HTMLButtonElement>\n) => {\n if (iconOnly && variant === \"destructive\") {\n return null;\n }\n const classes = cx(\n [\n rootClassName,\n `${rootClassName}--${negative ? `${variant}-negative` : variant}`,\n `${rootClassName}--${size}`,\n ],\n {\n [`${rootClassName}--icon-only`]: iconOnly,\n [`${rootClassName}--negative`]: negative,\n [`${rootClassName}--full-width`]: fullWidth,\n [`${rootClassName}--disabled`]: disabled || loading,\n },\n className\n );\n\n const handleClick = (e: MouseEvent<HTMLButtonElement>) => {\n if (disabled || loading) {\n e.preventDefault();\n } else if (onClick) {\n onClick(e);\n }\n };\n\n const _disabled = Boolean(props[\"aria-disabled\"]) || disabled || loading;\n\n return (\n <button\n className={classes}\n data-testid={dataTestid}\n type={type}\n ref={ref}\n aria-disabled={_disabled}\n onClick={handleClick}\n {...props}\n >\n {loading && (\n <Spinner size={size === SIZE.LG ? \"xs\" : \"xxs\"} negative={negative} disabled={_disabled} />\n )}{\" \"}\n {children}\n </button>\n );\n};\n\nexport const Button = forwardRef(ButtonComponent);\nButton.displayName = \"Button\";\n"],"names":["s","e","m","n","o","l","x","c","r","t","u","_","v","f","S","h","p","i","d","N","a","hasOwn","classNames","classes","arg","appendClass","parseValue","key","value","newClass","module","BUTTON_VARIANT","VARIANT","buttonVariants","cx","styles","rootClassName","BUTTON_TYPES","ButtonComponent","children","className","dataTestid","disabled","fullWidth","iconOnly","loading","negative","onClick","size","variant","type","props","ref","handleClick","_disabled","jsxs","jsx","Spinner","SIZE","Button","forwardRef"],"mappings":"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","x_google_ignoreList":[2]}
1
+ {"version":3,"file":"button.cjs.js","sources":["../../../libraries/action/dist/action.es.js","../../spinner/dist/spinner.es.js","../../../common/temp/node_modules/.pnpm/classnames@2.5.1/node_modules/classnames/bind.js","../src/button.tsx"],"sourcesContent":["const s = {\n PRIMARY: \"primary\",\n SECONDARY: \"secondary\",\n EXPRESSIVE: \"expressive\"\n}, t = Object.values(s), e = {\n XS: \"xs\",\n SM: \"sm\",\n MD: \"md\",\n LG: \"lg\"\n}, c = Object.values(e);\nexport {\n e as SIZE,\n s as VARIANT,\n c as sizes,\n t as variants\n};\n//# sourceMappingURL=action.es.js.map\n","import { jsx as c } from \"react/jsx-runtime\";\nfunction d(e) {\n return e && e.__esModule && Object.prototype.hasOwnProperty.call(e, \"default\") ? e.default : e;\n}\nvar _ = { exports: {} };\n/*!\n\tCopyright (c) 2018 Jed Watson.\n\tLicensed under the MIT License (MIT), see\n\thttp://jedwatson.github.io/classnames\n*/\nvar l;\nfunction x() {\n return l || (l = 1, function(e) {\n (function() {\n var i = {}.hasOwnProperty;\n function t() {\n for (var r = \"\", n = 0; n < arguments.length; n++) {\n var p = arguments[n];\n p && (r = o(r, u.call(this, p)));\n }\n return r;\n }\n function u(r) {\n if (typeof r == \"string\" || typeof r == \"number\")\n return this && this[r] || r;\n if (typeof r != \"object\")\n return \"\";\n if (Array.isArray(r))\n return t.apply(this, r);\n if (r.toString !== Object.prototype.toString && !r.toString.toString().includes(\"[native code]\"))\n return r.toString();\n var n = \"\";\n for (var p in r)\n i.call(r, p) && r[p] && (n = o(n, this && this[p] || p));\n return n;\n }\n function o(r, n) {\n return n ? r ? r + \" \" + n : r + n : r;\n }\n e.exports ? (t.default = t, e.exports = t) : window.classNames = t;\n })();\n }(_)), _.exports;\n}\nvar h = x();\nconst m = /* @__PURE__ */ d(h), v = \"_rotate_12t9p_1\", S = \"_dash_12t9p_1\", b = {\n \"purpur-spinner\": \"_purpur-spinner_12t9p_2\",\n rotate: v,\n \"purpur-spinner--xxs\": \"_purpur-spinner--xxs_12t9p_6\",\n \"purpur-spinner--xs\": \"_purpur-spinner--xs_12t9p_10\",\n \"purpur-spinner--sm\": \"_purpur-spinner--sm_12t9p_14\",\n \"purpur-spinner--md\": \"_purpur-spinner--md_12t9p_18\",\n \"purpur-spinner--lg\": \"_purpur-spinner--lg_12t9p_22\",\n \"purpur-spinner__circle\": \"_purpur-spinner__circle_12t9p_26\",\n dash: S,\n \"purpur-spinner__circle--disabled\": \"_purpur-spinner__circle--disabled_12t9p_41\",\n \"purpur-spinner__circle--negative\": \"_purpur-spinner__circle--negative_12t9p_44\"\n}, a = m.bind(b), s = \"purpur-spinner\", f = {\n XXS: \"xxs\",\n XS: \"xs\",\n SM: \"sm\",\n MD: \"md\",\n LG: \"lg\"\n}, N = Object.values(f), j = ({\n disabled: e = !1,\n negative: i = !1,\n size: t = f.SM,\n ...u\n}) => /* @__PURE__ */ c(\"div\", { className: a(s, `${s}--${t}`), ...u, children: /* @__PURE__ */ c(\"svg\", { viewBox: \"0 0 50 50\", children: /* @__PURE__ */ c(\n \"circle\",\n {\n className: a(`${s}__circle`, {\n [`${s}__circle--disabled`]: e,\n [`${s}__circle--negative`]: i\n }),\n cx: \"25\",\n cy: \"25\",\n r: \"20\"\n }\n) }) });\nexport {\n f as SPINNER_SIZE,\n j as Spinner,\n N as spinnerSizes\n};\n//# sourceMappingURL=spinner.es.js.map\n","/*!\n\tCopyright (c) 2018 Jed Watson.\n\tLicensed under the MIT License (MIT), see\n\thttp://jedwatson.github.io/classnames\n*/\n/* global define */\n\n(function () {\n\t'use strict';\n\n\tvar hasOwn = {}.hasOwnProperty;\n\n\tfunction classNames () {\n\t\tvar classes = '';\n\n\t\tfor (var i = 0; i < arguments.length; i++) {\n\t\t\tvar arg = arguments[i];\n\t\t\tif (arg) {\n\t\t\t\tclasses = appendClass(classes, parseValue.call(this, arg));\n\t\t\t}\n\t\t}\n\n\t\treturn classes;\n\t}\n\n\tfunction parseValue (arg) {\n\t\tif (typeof arg === 'string' || typeof arg === 'number') {\n\t\t\treturn this && this[arg] || arg;\n\t\t}\n\n\t\tif (typeof arg !== 'object') {\n\t\t\treturn '';\n\t\t}\n\n\t\tif (Array.isArray(arg)) {\n\t\t\treturn classNames.apply(this, arg);\n\t\t}\n\n\t\tif (arg.toString !== Object.prototype.toString && !arg.toString.toString().includes('[native code]')) {\n\t\t\treturn arg.toString();\n\t\t}\n\n\t\tvar classes = '';\n\n\t\tfor (var key in arg) {\n\t\t\tif (hasOwn.call(arg, key) && arg[key]) {\n\t\t\t\tclasses = appendClass(classes, this && this[key] || key);\n\t\t\t}\n\t\t}\n\n\t\treturn classes;\n\t}\n\n\tfunction appendClass (value, newClass) {\n\t\tif (!newClass) {\n\t\t\treturn value;\n\t\t}\n\t\n\t\tif (value) {\n\t\t\treturn value + ' ' + newClass;\n\t\t}\n\t\n\t\treturn value + newClass;\n\t}\n\n\tif (typeof module !== 'undefined' && module.exports) {\n\t\tclassNames.default = classNames;\n\t\tmodule.exports = classNames;\n\t} else if (typeof define === 'function' && typeof define.amd === 'object' && define.amd) {\n\t\t// register as 'classnames', consistent with npm package name\n\t\tdefine('classnames', [], function () {\n\t\t\treturn classNames;\n\t\t});\n\t} else {\n\t\twindow.classNames = classNames;\n\t}\n}());\n","import React, { type ButtonHTMLAttributes, forwardRef, type MouseEvent } from \"react\";\nimport { type ActionProps, SIZE, VARIANT } from \"@purpurds/action\";\nimport type { BaseProps } from \"@purpurds/common-types\";\nimport { Spinner } from \"@purpurds/spinner\";\nimport c from \"classnames/bind\";\n\nimport styles from \"./button.module.scss\";\n\nexport const BUTTON_VARIANT = {\n ...VARIANT,\n DESTRUCTIVE: \"destructive\",\n TERTIARY_PURPLE: \"tertiary-purple\",\n TEXT: \"text\",\n} as const;\n\nexport const buttonVariants = Object.values(BUTTON_VARIANT);\nexport type ButtonVariant = (typeof BUTTON_VARIANT)[keyof typeof BUTTON_VARIANT];\n\nconst cx = c.bind(styles);\nconst rootClassName = \"purpur-button\";\n\ntype ButtonType = Pick<ButtonHTMLAttributes<HTMLButtonElement>, \"type\">[\"type\"];\nexport const BUTTON_TYPES: ButtonType[] = [\"button\", \"submit\", \"reset\"] as const;\n\nexport type ButtonProps = ActionProps<ButtonVariant> & BaseProps<\"button\"> & { loading?: boolean };\n\nexport const Button = forwardRef<\n HTMLButtonElement,\n Omit<ButtonProps, \"type\"> & { type?: ButtonType }\n>(\n (\n {\n children,\n className,\n disabled = false,\n fullWidth = false,\n iconOnly,\n loading = false,\n negative = false,\n onClick,\n size = \"md\",\n variant,\n type = \"button\",\n ...props\n },\n ref\n ) => {\n if (iconOnly && variant === \"destructive\") {\n return null;\n }\n const classes = cx(\n [\n rootClassName,\n `${rootClassName}--${negative ? `${variant}-negative` : variant}`,\n `${rootClassName}--${size}`,\n ],\n {\n [`${rootClassName}--icon-only`]: iconOnly,\n [`${rootClassName}--negative`]: negative,\n [`${rootClassName}--full-width`]: fullWidth,\n [`${rootClassName}--disabled`]: disabled || loading,\n },\n className\n );\n\n const handleClick = (e: MouseEvent<HTMLButtonElement>) => {\n if (disabled || loading) {\n e.preventDefault();\n } else if (onClick) {\n onClick(e);\n }\n };\n\n const _disabled = Boolean(props[\"aria-disabled\"]) || disabled || loading;\n\n return (\n <button\n className={classes}\n type={type}\n ref={ref}\n aria-disabled={_disabled}\n onClick={handleClick}\n {...props}\n >\n {loading && (\n <Spinner\n size={size === SIZE.LG ? \"xs\" : \"xxs\"}\n negative={negative}\n disabled={_disabled}\n />\n )}{\" \"}\n {children}\n </button>\n );\n }\n);\n\nButton.displayName = \"Button\";\n"],"names":["s","e","d","_","l","x","i","t","r","n","p","o","u","h","m","v","S","b","a","f","j","c","hasOwn","classNames","classes","arg","appendClass","parseValue","key","value","newClass","module","BUTTON_VARIANT","VARIANT","buttonVariants","cx","styles","rootClassName","BUTTON_TYPES","Button","forwardRef","children","className","disabled","fullWidth","iconOnly","loading","negative","onClick","size","variant","type","props","ref","handleClick","_disabled","jsxs","jsx","Spinner","SIZE"],"mappings":"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","x_google_ignoreList":[2]}
package/dist/button.d.ts CHANGED
@@ -1,5 +1,6 @@
1
1
  import { default as React, ButtonHTMLAttributes } from 'react';
2
2
  import { ActionProps } from '@purpurds/action';
3
+ import { BaseProps } from '@purpurds/common-types';
3
4
 
4
5
  export declare const BUTTON_VARIANT: {
5
6
  readonly DESTRUCTIVE: "destructive";
@@ -13,11 +14,11 @@ export declare const buttonVariants: ("destructive" | "tertiary-purple" | "text"
13
14
  export type ButtonVariant = (typeof BUTTON_VARIANT)[keyof typeof BUTTON_VARIANT];
14
15
  type ButtonType = Pick<ButtonHTMLAttributes<HTMLButtonElement>, "type">["type"];
15
16
  export declare const BUTTON_TYPES: ButtonType[];
16
- export type ButtonProps = ActionProps<ButtonVariant> & ButtonHTMLAttributes<HTMLButtonElement> & {
17
+ export type ButtonProps = ActionProps<ButtonVariant> & BaseProps<"button"> & {
17
18
  loading?: boolean;
18
19
  };
19
- export declare const Button: React.ForwardRefExoticComponent<Omit<ButtonProps, "type"> & {
20
+ export declare const Button: React.ForwardRefExoticComponent<Omit<Omit<ButtonProps, "type"> & {
20
21
  type?: ButtonType;
21
- } & React.RefAttributes<HTMLButtonElement>>;
22
+ }, "ref"> & React.RefAttributes<HTMLButtonElement>>;
22
23
  export {};
23
24
  //# sourceMappingURL=button.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"button.d.ts","sourceRoot":"","sources":["../src/button.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,EAAE,KAAK,oBAAoB,EAAkD,MAAM,OAAO,CAAC;AACzG,OAAO,EAAE,KAAK,WAAW,EAAiB,MAAM,kBAAkB,CAAC;AAMnE,eAAO,MAAM,cAAc;;;;;;;CAKjB,CAAC;AAEX,eAAO,MAAM,cAAc,yFAAgC,CAAC;AAC5D,MAAM,MAAM,aAAa,GAAG,CAAC,OAAO,cAAc,CAAC,CAAC,MAAM,OAAO,cAAc,CAAC,CAAC;AAKjF,KAAK,UAAU,GAAG,IAAI,CAAC,oBAAoB,CAAC,iBAAiB,CAAC,EAAE,MAAM,CAAC,CAAC,MAAM,CAAC,CAAC;AAChF,eAAO,MAAM,YAAY,EAAE,UAAU,EAA2C,CAAC;AAEjF,MAAM,MAAM,WAAW,GAAG,WAAW,CAAC,aAAa,CAAC,GAClD,oBAAoB,CAAC,iBAAiB,CAAC,GAAG;IAAE,OAAO,CAAC,EAAE,OAAO,CAAA;CAAE,CAAC;AAkElE,eAAO,MAAM,MAAM;WAjDuB,UAAU;2CAiDH,CAAC"}
1
+ {"version":3,"file":"button.d.ts","sourceRoot":"","sources":["../src/button.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,EAAE,KAAK,oBAAoB,EAA+B,MAAM,OAAO,CAAC;AACtF,OAAO,EAAE,KAAK,WAAW,EAAiB,MAAM,kBAAkB,CAAC;AACnE,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,wBAAwB,CAAC;AAMxD,eAAO,MAAM,cAAc;;;;;;;CAKjB,CAAC;AAEX,eAAO,MAAM,cAAc,yFAAgC,CAAC;AAC5D,MAAM,MAAM,aAAa,GAAG,CAAC,OAAO,cAAc,CAAC,CAAC,MAAM,OAAO,cAAc,CAAC,CAAC;AAKjF,KAAK,UAAU,GAAG,IAAI,CAAC,oBAAoB,CAAC,iBAAiB,CAAC,EAAE,MAAM,CAAC,CAAC,MAAM,CAAC,CAAC;AAChF,eAAO,MAAM,YAAY,EAAE,UAAU,EAA2C,CAAC;AAEjF,MAAM,MAAM,WAAW,GAAG,WAAW,CAAC,aAAa,CAAC,GAAG,SAAS,CAAC,QAAQ,CAAC,GAAG;IAAE,OAAO,CAAC,EAAE,OAAO,CAAA;CAAE,CAAC;AAEnG,eAAO,MAAM,MAAM;WAEoB,UAAU;mDAmEhD,CAAC"}
package/dist/button.es.js CHANGED
@@ -1,56 +1,56 @@
1
- import { jsx as c, jsxs as E } from "react/jsx-runtime";
2
- import { forwardRef as O } from "react";
3
- const T = {
1
+ import { jsx as a, jsxs as $ } from "react/jsx-runtime";
2
+ import { forwardRef as E } from "react";
3
+ const N = {
4
4
  PRIMARY: "primary",
5
5
  SECONDARY: "secondary",
6
6
  EXPRESSIVE: "expressive"
7
- }, R = {
7
+ }, O = {
8
8
  LG: "lg"
9
9
  };
10
- function j(u) {
10
+ function T(u) {
11
11
  return u && u.__esModule && Object.prototype.hasOwnProperty.call(u, "default") ? u.default : u;
12
12
  }
13
- var x = { exports: {} };
13
+ var y = { exports: {} };
14
14
  /*!
15
15
  Copyright (c) 2018 Jed Watson.
16
16
  Licensed under the MIT License (MIT), see
17
17
  http://jedwatson.github.io/classnames
18
18
  */
19
- var w;
20
- function A() {
21
- return w || (w = 1, function(u) {
19
+ var m;
20
+ function j() {
21
+ return m || (m = 1, function(u) {
22
22
  (function() {
23
- var i = {}.hasOwnProperty;
23
+ var s = {}.hasOwnProperty;
24
24
  function n() {
25
25
  for (var t = "", r = 0; r < arguments.length; r++) {
26
26
  var e = arguments[r];
27
- e && (t = s(t, p(e)));
27
+ e && (t = p(t, i.call(this, e)));
28
28
  }
29
29
  return t;
30
30
  }
31
- function p(t) {
31
+ function i(t) {
32
32
  if (typeof t == "string" || typeof t == "number")
33
- return t;
33
+ return this && this[t] || t;
34
34
  if (typeof t != "object")
35
35
  return "";
36
36
  if (Array.isArray(t))
37
- return n.apply(null, t);
37
+ return n.apply(this, t);
38
38
  if (t.toString !== Object.prototype.toString && !t.toString.toString().includes("[native code]"))
39
39
  return t.toString();
40
40
  var r = "";
41
41
  for (var e in t)
42
- i.call(t, e) && t[e] && (r = s(r, e));
42
+ s.call(t, e) && t[e] && (r = p(r, this && this[e] || e));
43
43
  return r;
44
44
  }
45
- function s(t, r) {
45
+ function p(t, r) {
46
46
  return r ? t ? t + " " + r : t + r : t;
47
47
  }
48
48
  u.exports ? (n.default = n, u.exports = n) : window.classNames = n;
49
49
  })();
50
- }(x)), x.exports;
50
+ }(y)), y.exports;
51
51
  }
52
- var B = A();
53
- const g = /* @__PURE__ */ j(B), P = "_rotate_12t9p_1", C = "_dash_12t9p_1", _ = {
52
+ var R = j();
53
+ const A = /* @__PURE__ */ T(R), P = "_rotate_12t9p_1", B = "_dash_12t9p_1", I = {
54
54
  "purpur-spinner": "_purpur-spinner_12t9p_2",
55
55
  rotate: P,
56
56
  "purpur-spinner--xxs": "_purpur-spinner--xxs_12t9p_6",
@@ -59,59 +59,50 @@ const g = /* @__PURE__ */ j(B), P = "_rotate_12t9p_1", C = "_dash_12t9p_1", _ =
59
59
  "purpur-spinner--md": "_purpur-spinner--md_12t9p_18",
60
60
  "purpur-spinner--lg": "_purpur-spinner--lg_12t9p_22",
61
61
  "purpur-spinner__circle": "_purpur-spinner__circle_12t9p_26",
62
- dash: C,
62
+ dash: B,
63
63
  "purpur-spinner__circle--disabled": "_purpur-spinner__circle--disabled_12t9p_41",
64
64
  "purpur-spinner__circle--negative": "_purpur-spinner__circle--negative_12t9p_44"
65
- }, a = "purpur-spinner", I = {
65
+ }, x = A.bind(I), _ = "purpur-spinner", M = {
66
66
  SM: "sm"
67
- }, M = ({
68
- ["data-testid"]: u,
69
- disabled: i = !1,
70
- negative: n = !1,
71
- size: p = I.SM,
72
- ...s
73
- }) => /* @__PURE__ */ c(
74
- "div",
67
+ }, V = ({
68
+ disabled: u = !1,
69
+ negative: s = !1,
70
+ size: n = M.SM,
71
+ ...i
72
+ }) => /* @__PURE__ */ a("div", { className: x(_, `${_}--${n}`), ...i, children: /* @__PURE__ */ a("svg", { viewBox: "0 0 50 50", children: /* @__PURE__ */ a(
73
+ "circle",
75
74
  {
76
- className: g([_[a], _[`${a}--${p}`]]),
77
- "data-testid": u,
78
- ...s,
79
- children: /* @__PURE__ */ c("svg", { viewBox: "0 0 50 50", children: /* @__PURE__ */ c(
80
- "circle",
81
- {
82
- className: g(_[`${a}__circle`], {
83
- [_[`${a}__circle--disabled`]]: i,
84
- [_[`${a}__circle--negative`]]: n
85
- }),
86
- cx: "25",
87
- cy: "25",
88
- r: "20"
89
- }
90
- ) })
75
+ className: x(`${_}__circle`, {
76
+ [`${_}__circle--disabled`]: u,
77
+ [`${_}__circle--negative`]: s
78
+ }),
79
+ cx: "25",
80
+ cy: "25",
81
+ r: "20"
91
82
  }
92
- );
93
- function V(u) {
83
+ ) }) });
84
+ function C(u) {
94
85
  return u && u.__esModule && Object.prototype.hasOwnProperty.call(u, "default") ? u.default : u;
95
86
  }
96
- var d = { exports: {} };
87
+ var l = { exports: {} };
97
88
  /*!
98
89
  Copyright (c) 2018 Jed Watson.
99
90
  Licensed under the MIT License (MIT), see
100
91
  http://jedwatson.github.io/classnames
101
92
  */
102
- var h;
93
+ var w;
103
94
  function D() {
104
- return h || (h = 1, function(u) {
95
+ return w || (w = 1, function(u) {
105
96
  (function() {
106
- var i = {}.hasOwnProperty;
97
+ var s = {}.hasOwnProperty;
107
98
  function n() {
108
99
  for (var t = "", r = 0; r < arguments.length; r++) {
109
100
  var e = arguments[r];
110
- e && (t = s(t, p.call(this, e)));
101
+ e && (t = p(t, i.call(this, e)));
111
102
  }
112
103
  return t;
113
104
  }
114
- function p(t) {
105
+ function i(t) {
115
106
  if (typeof t == "string" || typeof t == "number")
116
107
  return this && this[t] || t;
117
108
  if (typeof t != "object")
@@ -122,18 +113,18 @@ function D() {
122
113
  return t.toString();
123
114
  var r = "";
124
115
  for (var e in t)
125
- i.call(t, e) && t[e] && (r = s(r, this && this[e] || e));
116
+ s.call(t, e) && t[e] && (r = p(r, this && this[e] || e));
126
117
  return r;
127
118
  }
128
- function s(t, r) {
119
+ function p(t, r) {
129
120
  return r ? t ? t + " " + r : t + r : t;
130
121
  }
131
122
  u.exports ? (n.default = n, u.exports = n) : window.classNames = n;
132
123
  })();
133
- }(d)), d.exports;
124
+ }(l)), l.exports;
134
125
  }
135
126
  var U = D();
136
- const Y = /* @__PURE__ */ V(U), L = {
127
+ const Y = /* @__PURE__ */ C(U), L = {
137
128
  "purpur-button": "_purpur-button_w455q_1",
138
129
  "purpur-button--xs": "_purpur-button--xs_w455q_33",
139
130
  "purpur-button--icon-only": "_purpur-button--icon-only_w455q_36",
@@ -156,66 +147,73 @@ const Y = /* @__PURE__ */ V(U), L = {
156
147
  "purpur-button--text-negative": "_purpur-button--text-negative_w455q_181",
157
148
  "purpur-button--text": "_purpur-button--text_w455q_181"
158
149
  }, G = {
159
- ...T,
150
+ ...N,
160
151
  DESTRUCTIVE: "destructive",
161
152
  TERTIARY_PURPLE: "tertiary-purple",
162
153
  TEXT: "text"
163
- }, K = Object.values(G), X = Y.bind(L), o = "purpur-button", Q = ["button", "submit", "reset"], z = ({
164
- children: u,
165
- className: i,
166
- ["data-testid"]: n,
167
- disabled: p = !1,
168
- fullWidth: s = !1,
169
- iconOnly: t,
170
- loading: r = !1,
171
- negative: e = !1,
172
- onClick: b,
173
- size: f = "md",
174
- variant: l,
175
- type: q = "button",
176
- ...v
177
- }, S) => {
178
- if (t && l === "destructive")
179
- return null;
180
- const $ = X(
181
- [
182
- o,
183
- `${o}--${e ? `${l}-negative` : l}`,
184
- `${o}--${f}`
185
- ],
186
- {
187
- [`${o}--icon-only`]: t,
188
- [`${o}--negative`]: e,
189
- [`${o}--full-width`]: s,
190
- [`${o}--disabled`]: p || r
191
- },
192
- i
193
- ), N = (m) => {
194
- p || r ? m.preventDefault() : b && b(m);
195
- }, y = !!v["aria-disabled"] || p || r;
196
- return /* @__PURE__ */ E(
197
- "button",
198
- {
199
- className: $,
200
- "data-testid": n,
201
- type: q,
202
- ref: S,
203
- "aria-disabled": y,
204
- onClick: N,
205
- ...v,
206
- children: [
207
- r && /* @__PURE__ */ c(M, { size: f === R.LG ? "xs" : "xxs", negative: e, disabled: y }),
208
- " ",
209
- u
210
- ]
211
- }
212
- );
213
- }, F = O(z);
214
- F.displayName = "Button";
154
+ }, J = Object.values(G), X = Y.bind(L), o = "purpur-button", K = ["button", "submit", "reset"], z = E(
155
+ ({
156
+ children: u,
157
+ className: s,
158
+ disabled: n = !1,
159
+ fullWidth: i = !1,
160
+ iconOnly: p,
161
+ loading: t = !1,
162
+ negative: r = !1,
163
+ onClick: e,
164
+ size: b = "md",
165
+ variant: c,
166
+ type: h = "button",
167
+ ...d
168
+ }, g) => {
169
+ if (p && c === "destructive")
170
+ return null;
171
+ const q = X(
172
+ [
173
+ o,
174
+ `${o}--${r ? `${c}-negative` : c}`,
175
+ `${o}--${b}`
176
+ ],
177
+ {
178
+ [`${o}--icon-only`]: p,
179
+ [`${o}--negative`]: r,
180
+ [`${o}--full-width`]: i,
181
+ [`${o}--disabled`]: n || t
182
+ },
183
+ s
184
+ ), S = (v) => {
185
+ n || t ? v.preventDefault() : e && e(v);
186
+ }, f = !!d["aria-disabled"] || n || t;
187
+ return /* @__PURE__ */ $(
188
+ "button",
189
+ {
190
+ className: q,
191
+ type: h,
192
+ ref: g,
193
+ "aria-disabled": f,
194
+ onClick: S,
195
+ ...d,
196
+ children: [
197
+ t && /* @__PURE__ */ a(
198
+ V,
199
+ {
200
+ size: b === O.LG ? "xs" : "xxs",
201
+ negative: r,
202
+ disabled: f
203
+ }
204
+ ),
205
+ " ",
206
+ u
207
+ ]
208
+ }
209
+ );
210
+ }
211
+ );
212
+ z.displayName = "Button";
215
213
  export {
216
- Q as BUTTON_TYPES,
214
+ K as BUTTON_TYPES,
217
215
  G as BUTTON_VARIANT,
218
- F as Button,
219
- K as buttonVariants
216
+ z as Button,
217
+ J as buttonVariants
220
218
  };
221
219
  //# sourceMappingURL=button.es.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"button.es.js","sources":["../../../libraries/action/dist/action.es.js","../../spinner/dist/spinner.es.js","../../../common/temp/node_modules/.pnpm/classnames@2.5.1/node_modules/classnames/bind.js","../src/button.tsx"],"sourcesContent":["const s = {\n PRIMARY: \"primary\",\n SECONDARY: \"secondary\",\n EXPRESSIVE: \"expressive\"\n}, t = Object.values(s), e = {\n XS: \"xs\",\n SM: \"sm\",\n MD: \"md\",\n LG: \"lg\"\n}, c = Object.values(e);\nexport {\n e as SIZE,\n s as VARIANT,\n c as sizes,\n t as variants\n};\n//# sourceMappingURL=action.es.js.map\n","import { jsx as a } from \"react/jsx-runtime\";\nfunction m(n) {\n return n && n.__esModule && Object.prototype.hasOwnProperty.call(n, \"default\") ? n.default : n;\n}\nvar o = { exports: {} };\n/*!\n\tCopyright (c) 2018 Jed Watson.\n\tLicensed under the MIT License (MIT), see\n\thttp://jedwatson.github.io/classnames\n*/\nvar l;\nfunction x() {\n return l || (l = 1, function(n) {\n (function() {\n var c = {}.hasOwnProperty;\n function s() {\n for (var r = \"\", e = 0; e < arguments.length; e++) {\n var t = arguments[e];\n t && (r = u(r, _(t)));\n }\n return r;\n }\n function _(r) {\n if (typeof r == \"string\" || typeof r == \"number\")\n return r;\n if (typeof r != \"object\")\n return \"\";\n if (Array.isArray(r))\n return s.apply(null, r);\n if (r.toString !== Object.prototype.toString && !r.toString.toString().includes(\"[native code]\"))\n return r.toString();\n var e = \"\";\n for (var t in r)\n c.call(r, t) && r[t] && (e = u(e, t));\n return e;\n }\n function u(r, e) {\n return e ? r ? r + \" \" + e : r + e : r;\n }\n n.exports ? (s.default = s, n.exports = s) : window.classNames = s;\n })();\n }(o)), o.exports;\n}\nvar v = x();\nconst f = /* @__PURE__ */ m(v), S = \"_rotate_12t9p_1\", h = \"_dash_12t9p_1\", p = {\n \"purpur-spinner\": \"_purpur-spinner_12t9p_2\",\n rotate: S,\n \"purpur-spinner--xxs\": \"_purpur-spinner--xxs_12t9p_6\",\n \"purpur-spinner--xs\": \"_purpur-spinner--xs_12t9p_10\",\n \"purpur-spinner--sm\": \"_purpur-spinner--sm_12t9p_14\",\n \"purpur-spinner--md\": \"_purpur-spinner--md_12t9p_18\",\n \"purpur-spinner--lg\": \"_purpur-spinner--lg_12t9p_22\",\n \"purpur-spinner__circle\": \"_purpur-spinner__circle_12t9p_26\",\n dash: h,\n \"purpur-spinner__circle--disabled\": \"_purpur-spinner__circle--disabled_12t9p_41\",\n \"purpur-spinner__circle--negative\": \"_purpur-spinner__circle--negative_12t9p_44\"\n}, i = \"purpur-spinner\", d = {\n XXS: \"xxs\",\n XS: \"xs\",\n SM: \"sm\",\n MD: \"md\",\n LG: \"lg\"\n}, b = Object.values(d), N = ({\n [\"data-testid\"]: n,\n disabled: c = !1,\n negative: s = !1,\n size: _ = d.SM,\n ...u\n}) => /* @__PURE__ */ a(\n \"div\",\n {\n className: f([p[i], p[`${i}--${_}`]]),\n \"data-testid\": n,\n ...u,\n children: /* @__PURE__ */ a(\"svg\", { viewBox: \"0 0 50 50\", children: /* @__PURE__ */ a(\n \"circle\",\n {\n className: f(p[`${i}__circle`], {\n [p[`${i}__circle--disabled`]]: c,\n [p[`${i}__circle--negative`]]: s\n }),\n cx: \"25\",\n cy: \"25\",\n r: \"20\"\n }\n ) })\n }\n);\nexport {\n d as SPINNER_SIZE,\n N as Spinner,\n b as spinnerSizes\n};\n//# sourceMappingURL=spinner.es.js.map\n","/*!\n\tCopyright (c) 2018 Jed Watson.\n\tLicensed under the MIT License (MIT), see\n\thttp://jedwatson.github.io/classnames\n*/\n/* global define */\n\n(function () {\n\t'use strict';\n\n\tvar hasOwn = {}.hasOwnProperty;\n\n\tfunction classNames () {\n\t\tvar classes = '';\n\n\t\tfor (var i = 0; i < arguments.length; i++) {\n\t\t\tvar arg = arguments[i];\n\t\t\tif (arg) {\n\t\t\t\tclasses = appendClass(classes, parseValue.call(this, arg));\n\t\t\t}\n\t\t}\n\n\t\treturn classes;\n\t}\n\n\tfunction parseValue (arg) {\n\t\tif (typeof arg === 'string' || typeof arg === 'number') {\n\t\t\treturn this && this[arg] || arg;\n\t\t}\n\n\t\tif (typeof arg !== 'object') {\n\t\t\treturn '';\n\t\t}\n\n\t\tif (Array.isArray(arg)) {\n\t\t\treturn classNames.apply(this, arg);\n\t\t}\n\n\t\tif (arg.toString !== Object.prototype.toString && !arg.toString.toString().includes('[native code]')) {\n\t\t\treturn arg.toString();\n\t\t}\n\n\t\tvar classes = '';\n\n\t\tfor (var key in arg) {\n\t\t\tif (hasOwn.call(arg, key) && arg[key]) {\n\t\t\t\tclasses = appendClass(classes, this && this[key] || key);\n\t\t\t}\n\t\t}\n\n\t\treturn classes;\n\t}\n\n\tfunction appendClass (value, newClass) {\n\t\tif (!newClass) {\n\t\t\treturn value;\n\t\t}\n\t\n\t\tif (value) {\n\t\t\treturn value + ' ' + newClass;\n\t\t}\n\t\n\t\treturn value + newClass;\n\t}\n\n\tif (typeof module !== 'undefined' && module.exports) {\n\t\tclassNames.default = classNames;\n\t\tmodule.exports = classNames;\n\t} else if (typeof define === 'function' && typeof define.amd === 'object' && define.amd) {\n\t\t// register as 'classnames', consistent with npm package name\n\t\tdefine('classnames', [], function () {\n\t\t\treturn classNames;\n\t\t});\n\t} else {\n\t\twindow.classNames = classNames;\n\t}\n}());\n","import React, { type ButtonHTMLAttributes, type ForwardedRef, forwardRef, type MouseEvent } from \"react\";\nimport { type ActionProps, SIZE, VARIANT } from \"@purpurds/action\";\nimport { Spinner } from \"@purpurds/spinner\";\nimport c from \"classnames/bind\";\n\nimport styles from \"./button.module.scss\";\n\nexport const BUTTON_VARIANT = {\n ...VARIANT,\n DESTRUCTIVE: \"destructive\",\n TERTIARY_PURPLE: \"tertiary-purple\",\n TEXT: \"text\",\n} as const;\n\nexport const buttonVariants = Object.values(BUTTON_VARIANT);\nexport type ButtonVariant = (typeof BUTTON_VARIANT)[keyof typeof BUTTON_VARIANT];\n\nconst cx = c.bind(styles);\nconst rootClassName = \"purpur-button\";\n\ntype ButtonType = Pick<ButtonHTMLAttributes<HTMLButtonElement>, \"type\">[\"type\"];\nexport const BUTTON_TYPES: ButtonType[] = [\"button\", \"submit\", \"reset\"] as const;\n\nexport type ButtonProps = ActionProps<ButtonVariant> &\n ButtonHTMLAttributes<HTMLButtonElement> & { loading?: boolean };\n\nconst ButtonComponent = (\n {\n children,\n className,\n [\"data-testid\"]: dataTestid,\n disabled = false,\n fullWidth = false,\n iconOnly,\n loading = false,\n negative = false,\n onClick,\n size = \"md\",\n variant,\n type = \"button\",\n ...props\n }: Omit<ButtonProps, \"type\"> & { type?: ButtonType },\n ref: ForwardedRef<HTMLButtonElement>\n) => {\n if (iconOnly && variant === \"destructive\") {\n return null;\n }\n const classes = cx(\n [\n rootClassName,\n `${rootClassName}--${negative ? `${variant}-negative` : variant}`,\n `${rootClassName}--${size}`,\n ],\n {\n [`${rootClassName}--icon-only`]: iconOnly,\n [`${rootClassName}--negative`]: negative,\n [`${rootClassName}--full-width`]: fullWidth,\n [`${rootClassName}--disabled`]: disabled || loading,\n },\n className\n );\n\n const handleClick = (e: MouseEvent<HTMLButtonElement>) => {\n if (disabled || loading) {\n e.preventDefault();\n } else if (onClick) {\n onClick(e);\n }\n };\n\n const _disabled = Boolean(props[\"aria-disabled\"]) || disabled || loading;\n\n return (\n <button\n className={classes}\n data-testid={dataTestid}\n type={type}\n ref={ref}\n aria-disabled={_disabled}\n onClick={handleClick}\n {...props}\n >\n {loading && (\n <Spinner size={size === SIZE.LG ? \"xs\" : \"xxs\"} negative={negative} disabled={_disabled} />\n )}{\" \"}\n {children}\n </button>\n );\n};\n\nexport const Button = forwardRef(ButtonComponent);\nButton.displayName = \"Button\";\n"],"names":["s","e","m","n","o","l","x","c","r","t","u","_","v","f","S","h","p","i","d","N","a","hasOwn","classNames","classes","arg","appendClass","parseValue","key","value","newClass","module","BUTTON_VARIANT","VARIANT","buttonVariants","cx","styles","rootClassName","BUTTON_TYPES","ButtonComponent","children","className","dataTestid","disabled","fullWidth","iconOnly","loading","negative","onClick","size","variant","type","props","ref","handleClick","_disabled","jsxs","jsx","Spinner","SIZE","Button","forwardRef"],"mappings":"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","x_google_ignoreList":[2]}
1
+ {"version":3,"file":"button.es.js","sources":["../../../libraries/action/dist/action.es.js","../../spinner/dist/spinner.es.js","../../../common/temp/node_modules/.pnpm/classnames@2.5.1/node_modules/classnames/bind.js","../src/button.tsx"],"sourcesContent":["const s = {\n PRIMARY: \"primary\",\n SECONDARY: \"secondary\",\n EXPRESSIVE: \"expressive\"\n}, t = Object.values(s), e = {\n XS: \"xs\",\n SM: \"sm\",\n MD: \"md\",\n LG: \"lg\"\n}, c = Object.values(e);\nexport {\n e as SIZE,\n s as VARIANT,\n c as sizes,\n t as variants\n};\n//# sourceMappingURL=action.es.js.map\n","import { jsx as c } from \"react/jsx-runtime\";\nfunction d(e) {\n return e && e.__esModule && Object.prototype.hasOwnProperty.call(e, \"default\") ? e.default : e;\n}\nvar _ = { exports: {} };\n/*!\n\tCopyright (c) 2018 Jed Watson.\n\tLicensed under the MIT License (MIT), see\n\thttp://jedwatson.github.io/classnames\n*/\nvar l;\nfunction x() {\n return l || (l = 1, function(e) {\n (function() {\n var i = {}.hasOwnProperty;\n function t() {\n for (var r = \"\", n = 0; n < arguments.length; n++) {\n var p = arguments[n];\n p && (r = o(r, u.call(this, p)));\n }\n return r;\n }\n function u(r) {\n if (typeof r == \"string\" || typeof r == \"number\")\n return this && this[r] || r;\n if (typeof r != \"object\")\n return \"\";\n if (Array.isArray(r))\n return t.apply(this, r);\n if (r.toString !== Object.prototype.toString && !r.toString.toString().includes(\"[native code]\"))\n return r.toString();\n var n = \"\";\n for (var p in r)\n i.call(r, p) && r[p] && (n = o(n, this && this[p] || p));\n return n;\n }\n function o(r, n) {\n return n ? r ? r + \" \" + n : r + n : r;\n }\n e.exports ? (t.default = t, e.exports = t) : window.classNames = t;\n })();\n }(_)), _.exports;\n}\nvar h = x();\nconst m = /* @__PURE__ */ d(h), v = \"_rotate_12t9p_1\", S = \"_dash_12t9p_1\", b = {\n \"purpur-spinner\": \"_purpur-spinner_12t9p_2\",\n rotate: v,\n \"purpur-spinner--xxs\": \"_purpur-spinner--xxs_12t9p_6\",\n \"purpur-spinner--xs\": \"_purpur-spinner--xs_12t9p_10\",\n \"purpur-spinner--sm\": \"_purpur-spinner--sm_12t9p_14\",\n \"purpur-spinner--md\": \"_purpur-spinner--md_12t9p_18\",\n \"purpur-spinner--lg\": \"_purpur-spinner--lg_12t9p_22\",\n \"purpur-spinner__circle\": \"_purpur-spinner__circle_12t9p_26\",\n dash: S,\n \"purpur-spinner__circle--disabled\": \"_purpur-spinner__circle--disabled_12t9p_41\",\n \"purpur-spinner__circle--negative\": \"_purpur-spinner__circle--negative_12t9p_44\"\n}, a = m.bind(b), s = \"purpur-spinner\", f = {\n XXS: \"xxs\",\n XS: \"xs\",\n SM: \"sm\",\n MD: \"md\",\n LG: \"lg\"\n}, N = Object.values(f), j = ({\n disabled: e = !1,\n negative: i = !1,\n size: t = f.SM,\n ...u\n}) => /* @__PURE__ */ c(\"div\", { className: a(s, `${s}--${t}`), ...u, children: /* @__PURE__ */ c(\"svg\", { viewBox: \"0 0 50 50\", children: /* @__PURE__ */ c(\n \"circle\",\n {\n className: a(`${s}__circle`, {\n [`${s}__circle--disabled`]: e,\n [`${s}__circle--negative`]: i\n }),\n cx: \"25\",\n cy: \"25\",\n r: \"20\"\n }\n) }) });\nexport {\n f as SPINNER_SIZE,\n j as Spinner,\n N as spinnerSizes\n};\n//# sourceMappingURL=spinner.es.js.map\n","/*!\n\tCopyright (c) 2018 Jed Watson.\n\tLicensed under the MIT License (MIT), see\n\thttp://jedwatson.github.io/classnames\n*/\n/* global define */\n\n(function () {\n\t'use strict';\n\n\tvar hasOwn = {}.hasOwnProperty;\n\n\tfunction classNames () {\n\t\tvar classes = '';\n\n\t\tfor (var i = 0; i < arguments.length; i++) {\n\t\t\tvar arg = arguments[i];\n\t\t\tif (arg) {\n\t\t\t\tclasses = appendClass(classes, parseValue.call(this, arg));\n\t\t\t}\n\t\t}\n\n\t\treturn classes;\n\t}\n\n\tfunction parseValue (arg) {\n\t\tif (typeof arg === 'string' || typeof arg === 'number') {\n\t\t\treturn this && this[arg] || arg;\n\t\t}\n\n\t\tif (typeof arg !== 'object') {\n\t\t\treturn '';\n\t\t}\n\n\t\tif (Array.isArray(arg)) {\n\t\t\treturn classNames.apply(this, arg);\n\t\t}\n\n\t\tif (arg.toString !== Object.prototype.toString && !arg.toString.toString().includes('[native code]')) {\n\t\t\treturn arg.toString();\n\t\t}\n\n\t\tvar classes = '';\n\n\t\tfor (var key in arg) {\n\t\t\tif (hasOwn.call(arg, key) && arg[key]) {\n\t\t\t\tclasses = appendClass(classes, this && this[key] || key);\n\t\t\t}\n\t\t}\n\n\t\treturn classes;\n\t}\n\n\tfunction appendClass (value, newClass) {\n\t\tif (!newClass) {\n\t\t\treturn value;\n\t\t}\n\t\n\t\tif (value) {\n\t\t\treturn value + ' ' + newClass;\n\t\t}\n\t\n\t\treturn value + newClass;\n\t}\n\n\tif (typeof module !== 'undefined' && module.exports) {\n\t\tclassNames.default = classNames;\n\t\tmodule.exports = classNames;\n\t} else if (typeof define === 'function' && typeof define.amd === 'object' && define.amd) {\n\t\t// register as 'classnames', consistent with npm package name\n\t\tdefine('classnames', [], function () {\n\t\t\treturn classNames;\n\t\t});\n\t} else {\n\t\twindow.classNames = classNames;\n\t}\n}());\n","import React, { type ButtonHTMLAttributes, forwardRef, type MouseEvent } from \"react\";\nimport { type ActionProps, SIZE, VARIANT } from \"@purpurds/action\";\nimport type { BaseProps } from \"@purpurds/common-types\";\nimport { Spinner } from \"@purpurds/spinner\";\nimport c from \"classnames/bind\";\n\nimport styles from \"./button.module.scss\";\n\nexport const BUTTON_VARIANT = {\n ...VARIANT,\n DESTRUCTIVE: \"destructive\",\n TERTIARY_PURPLE: \"tertiary-purple\",\n TEXT: \"text\",\n} as const;\n\nexport const buttonVariants = Object.values(BUTTON_VARIANT);\nexport type ButtonVariant = (typeof BUTTON_VARIANT)[keyof typeof BUTTON_VARIANT];\n\nconst cx = c.bind(styles);\nconst rootClassName = \"purpur-button\";\n\ntype ButtonType = Pick<ButtonHTMLAttributes<HTMLButtonElement>, \"type\">[\"type\"];\nexport const BUTTON_TYPES: ButtonType[] = [\"button\", \"submit\", \"reset\"] as const;\n\nexport type ButtonProps = ActionProps<ButtonVariant> & BaseProps<\"button\"> & { loading?: boolean };\n\nexport const Button = forwardRef<\n HTMLButtonElement,\n Omit<ButtonProps, \"type\"> & { type?: ButtonType }\n>(\n (\n {\n children,\n className,\n disabled = false,\n fullWidth = false,\n iconOnly,\n loading = false,\n negative = false,\n onClick,\n size = \"md\",\n variant,\n type = \"button\",\n ...props\n },\n ref\n ) => {\n if (iconOnly && variant === \"destructive\") {\n return null;\n }\n const classes = cx(\n [\n rootClassName,\n `${rootClassName}--${negative ? `${variant}-negative` : variant}`,\n `${rootClassName}--${size}`,\n ],\n {\n [`${rootClassName}--icon-only`]: iconOnly,\n [`${rootClassName}--negative`]: negative,\n [`${rootClassName}--full-width`]: fullWidth,\n [`${rootClassName}--disabled`]: disabled || loading,\n },\n className\n );\n\n const handleClick = (e: MouseEvent<HTMLButtonElement>) => {\n if (disabled || loading) {\n e.preventDefault();\n } else if (onClick) {\n onClick(e);\n }\n };\n\n const _disabled = Boolean(props[\"aria-disabled\"]) || disabled || loading;\n\n return (\n <button\n className={classes}\n type={type}\n ref={ref}\n aria-disabled={_disabled}\n onClick={handleClick}\n {...props}\n >\n {loading && (\n <Spinner\n size={size === SIZE.LG ? \"xs\" : \"xxs\"}\n negative={negative}\n disabled={_disabled}\n />\n )}{\" \"}\n {children}\n </button>\n );\n }\n);\n\nButton.displayName = \"Button\";\n"],"names":["s","e","d","_","l","x","i","t","r","n","p","o","u","h","m","v","S","b","a","f","j","c","hasOwn","classNames","classes","arg","appendClass","parseValue","key","value","newClass","module","BUTTON_VARIANT","VARIANT","buttonVariants","cx","styles","rootClassName","BUTTON_TYPES","Button","forwardRef","children","className","disabled","fullWidth","iconOnly","loading","negative","onClick","size","variant","type","props","ref","handleClick","_disabled","jsxs","jsx","Spinner","SIZE"],"mappings":"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","x_google_ignoreList":[2]}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@purpurds/button",
3
- "version": "7.6.1",
3
+ "version": "7.7.0",
4
4
  "license": "AGPL-3.0-only",
5
5
  "main": "./dist/button.cjs.js",
6
6
  "types": "./dist/button.d.ts",
@@ -16,10 +16,11 @@
16
16
  "source": "src/button.tsx",
17
17
  "dependencies": {
18
18
  "classnames": "~2.5.0",
19
- "@purpurds/icon": "7.6.1",
20
- "@purpurds/spinner": "7.6.1",
21
- "@purpurds/action": "7.6.1",
22
- "@purpurds/tokens": "7.6.1"
19
+ "@purpurds/action": "7.7.0",
20
+ "@purpurds/spinner": "7.7.0",
21
+ "@purpurds/common-types": "7.7.0",
22
+ "@purpurds/icon": "7.7.0",
23
+ "@purpurds/tokens": "7.7.0"
23
24
  },
24
25
  "devDependencies": {
25
26
  "eslint": "9.24.0",
@@ -40,8 +41,8 @@
40
41
  "typescript": "^5.6.3",
41
42
  "vite": "^6.2.1",
42
43
  "vitest": "^3.1.2",
43
- "@purpurds/component-rig": "1.0.0",
44
- "@purpurds/icon": "7.6.1"
44
+ "@purpurds/icon": "7.7.0",
45
+ "@purpurds/component-rig": "1.0.0"
45
46
  },
46
47
  "peerDependencies": {
47
48
  "@types/react": "^18 || ^19",
package/src/button.tsx CHANGED
@@ -1,5 +1,6 @@
1
- import React, { type ButtonHTMLAttributes, type ForwardedRef, forwardRef, type MouseEvent } from "react";
1
+ import React, { type ButtonHTMLAttributes, forwardRef, type MouseEvent } from "react";
2
2
  import { type ActionProps, SIZE, VARIANT } from "@purpurds/action";
3
+ import type { BaseProps } from "@purpurds/common-types";
3
4
  import { Spinner } from "@purpurds/spinner";
4
5
  import c from "classnames/bind";
5
6
 
@@ -21,72 +22,77 @@ const rootClassName = "purpur-button";
21
22
  type ButtonType = Pick<ButtonHTMLAttributes<HTMLButtonElement>, "type">["type"];
22
23
  export const BUTTON_TYPES: ButtonType[] = ["button", "submit", "reset"] as const;
23
24
 
24
- export type ButtonProps = ActionProps<ButtonVariant> &
25
- ButtonHTMLAttributes<HTMLButtonElement> & { loading?: boolean };
25
+ export type ButtonProps = ActionProps<ButtonVariant> & BaseProps<"button"> & { loading?: boolean };
26
26
 
27
- const ButtonComponent = (
28
- {
29
- children,
30
- className,
31
- ["data-testid"]: dataTestid,
32
- disabled = false,
33
- fullWidth = false,
34
- iconOnly,
35
- loading = false,
36
- negative = false,
37
- onClick,
38
- size = "md",
39
- variant,
40
- type = "button",
41
- ...props
42
- }: Omit<ButtonProps, "type"> & { type?: ButtonType },
43
- ref: ForwardedRef<HTMLButtonElement>
44
- ) => {
45
- if (iconOnly && variant === "destructive") {
46
- return null;
47
- }
48
- const classes = cx(
49
- [
50
- rootClassName,
51
- `${rootClassName}--${negative ? `${variant}-negative` : variant}`,
52
- `${rootClassName}--${size}`,
53
- ],
27
+ export const Button = forwardRef<
28
+ HTMLButtonElement,
29
+ Omit<ButtonProps, "type"> & { type?: ButtonType }
30
+ >(
31
+ (
54
32
  {
55
- [`${rootClassName}--icon-only`]: iconOnly,
56
- [`${rootClassName}--negative`]: negative,
57
- [`${rootClassName}--full-width`]: fullWidth,
58
- [`${rootClassName}--disabled`]: disabled || loading,
33
+ children,
34
+ className,
35
+ disabled = false,
36
+ fullWidth = false,
37
+ iconOnly,
38
+ loading = false,
39
+ negative = false,
40
+ onClick,
41
+ size = "md",
42
+ variant,
43
+ type = "button",
44
+ ...props
59
45
  },
60
- className
61
- );
62
-
63
- const handleClick = (e: MouseEvent<HTMLButtonElement>) => {
64
- if (disabled || loading) {
65
- e.preventDefault();
66
- } else if (onClick) {
67
- onClick(e);
46
+ ref
47
+ ) => {
48
+ if (iconOnly && variant === "destructive") {
49
+ return null;
68
50
  }
69
- };
51
+ const classes = cx(
52
+ [
53
+ rootClassName,
54
+ `${rootClassName}--${negative ? `${variant}-negative` : variant}`,
55
+ `${rootClassName}--${size}`,
56
+ ],
57
+ {
58
+ [`${rootClassName}--icon-only`]: iconOnly,
59
+ [`${rootClassName}--negative`]: negative,
60
+ [`${rootClassName}--full-width`]: fullWidth,
61
+ [`${rootClassName}--disabled`]: disabled || loading,
62
+ },
63
+ className
64
+ );
70
65
 
71
- const _disabled = Boolean(props["aria-disabled"]) || disabled || loading;
66
+ const handleClick = (e: MouseEvent<HTMLButtonElement>) => {
67
+ if (disabled || loading) {
68
+ e.preventDefault();
69
+ } else if (onClick) {
70
+ onClick(e);
71
+ }
72
+ };
72
73
 
73
- return (
74
- <button
75
- className={classes}
76
- data-testid={dataTestid}
77
- type={type}
78
- ref={ref}
79
- aria-disabled={_disabled}
80
- onClick={handleClick}
81
- {...props}
82
- >
83
- {loading && (
84
- <Spinner size={size === SIZE.LG ? "xs" : "xxs"} negative={negative} disabled={_disabled} />
85
- )}{" "}
86
- {children}
87
- </button>
88
- );
89
- };
74
+ const _disabled = Boolean(props["aria-disabled"]) || disabled || loading;
75
+
76
+ return (
77
+ <button
78
+ className={classes}
79
+ type={type}
80
+ ref={ref}
81
+ aria-disabled={_disabled}
82
+ onClick={handleClick}
83
+ {...props}
84
+ >
85
+ {loading && (
86
+ <Spinner
87
+ size={size === SIZE.LG ? "xs" : "xxs"}
88
+ negative={negative}
89
+ disabled={_disabled}
90
+ />
91
+ )}{" "}
92
+ {children}
93
+ </button>
94
+ );
95
+ }
96
+ );
90
97
 
91
- export const Button = forwardRef(ButtonComponent);
92
98
  Button.displayName = "Button";