@purpurds/button 4.6.0 → 5.1.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: 4.5.1
2
+ Version: 5.0.0
3
3
  License: AGPL-3.0-only
4
4
  Private: false
5
5
 
6
6
  ---
7
7
 
8
8
  Name: @purpurds/spinner
9
- Version: 4.5.1
9
+ Version: 5.0.0
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 _=require("react/jsx-runtime"),h=require("react"),V={PRIMARY:"primary",PRIMARY_NEGATIVE:"primary-negative",SECONDARY:"secondary",SECONDARY_NEGATIVE:"secondary-negative",EXPRESSIVE:"expressive",EXPRESSIVE_NEGATIVE:"expressive-negative"},g={SM:"sm",MD:"md",LG:"lg"};function j(e){return e&&e.__esModule&&Object.prototype.hasOwnProperty.call(e,"default")?e.default:e}var m={exports:{}};/*!
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const l=require("react/jsx-runtime"),T=require("react"),O={PRIMARY:"primary",PRIMARY_NEGATIVE:"primary-negative",SECONDARY:"secondary",SECONDARY_NEGATIVE:"secondary-negative",EXPRESSIVE:"expressive",EXPRESSIVE_NEGATIVE:"expressive-negative"},x={SM:"sm",MD:"md",LG:"lg"};function $(u){return u&&u.__esModule&&Object.prototype.hasOwnProperty.call(u,"default")?u.default:u}var g={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
- */(function(e){(function(){var s={}.hasOwnProperty;function n(){for(var t="",r=0;r<arguments.length;r++){var u=arguments[r];u&&(t=i(t,p(u)))}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 u in t)s.call(t,u)&&t[u]&&(r=i(r,u));return r}function i(t,r){return r?t?t+" "+r:t+r:t}e.exports?(n.default=n,e.exports=n):window.classNames=n})()})(m);var P=m.exports;const f=j(P),O="_rotate_7s2g1_1",D="_dash_7s2g1_1",l={"purpur-spinner":"_purpur-spinner_7s2g1_1",rotate:O,"purpur-spinner--xxs":"_purpur-spinner--xxs_7s2g1_4","purpur-spinner--xs":"_purpur-spinner--xs_7s2g1_8","purpur-spinner--sm":"_purpur-spinner--sm_7s2g1_12","purpur-spinner--md":"_purpur-spinner--md_7s2g1_16","purpur-spinner--lg":"_purpur-spinner--lg_7s2g1_20","purpur-spinner__circle":"_purpur-spinner__circle_7s2g1_24",dash:D,"purpur-spinner__circle--disabled":"_purpur-spinner__circle--disabled_7s2g1_33","purpur-spinner__circle--negative":"_purpur-spinner__circle--negative_7s2g1_36","purpur-spinner__circle--negative-disabled":"_purpur-spinner__circle--negative-disabled_7s2g1_39"},v="purpur-spinner",M={PRIMARY:"primary",DISABLED:"disabled",NEGATIVE:"negative",NEGATIVE_DISABLED:"negative-disabled"},$={XXS:"xxs",XS:"xs",SM:"sm",MD:"md",LG:"lg"},w=({["data-testid"]:e,size:s=$.SM,variant:n=M.PRIMARY,...p})=>_.jsx("div",{className:f([l[v],l[`${v}--${s}`]]),"data-testid":e,...p,children:_.jsx("svg",{viewBox:"0 0 50 50",children:_.jsx("circle",{className:f(l[`${v}__circle`],l[`${v}__circle--${n}`]),cx:"25",cy:"25",r:"20"})})});function G(e){return e&&e.__esModule&&Object.prototype.hasOwnProperty.call(e,"default")?e.default:e}var x={exports:{}};/*!
5
+ */(function(u){(function(){var o={}.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)o.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})()})(g);var z=g.exports;const m=$(z),w="_rotate_1xozj_1",I="_dash_1xozj_1",_={"purpur-spinner":"_purpur-spinner_1xozj_1",rotate:w,"purpur-spinner--xxs":"_purpur-spinner--xxs_1xozj_4","purpur-spinner--xs":"_purpur-spinner--xs_1xozj_8","purpur-spinner--sm":"_purpur-spinner--sm_1xozj_12","purpur-spinner--md":"_purpur-spinner--md_1xozj_16","purpur-spinner--lg":"_purpur-spinner--lg_1xozj_20","purpur-spinner__circle":"_purpur-spinner__circle_1xozj_24",dash:I,"purpur-spinner__circle--disabled":"_purpur-spinner__circle--disabled_1xozj_33","purpur-spinner__circle--negative":"_purpur-spinner__circle--negative_1xozj_36"},c="purpur-spinner",M={XXS:"xxs",XS:"xs",SM:"sm",MD:"md",LG:"lg"},P=({["data-testid"]:u,disabled:o=!1,negative:n=!1,size:p=M.SM,...s})=>l.jsx("div",{className:m([_[c],_[`${c}--${p}`]]),"data-testid":u,...s,children:l.jsx("svg",{viewBox:"0 0 50 50",children:l.jsx("circle",{className:m(_[`${c}__circle`],{[_[`${c}__circle--disabled`]]:o,[_[`${c}__circle--negative`]]:n}),cx:"25",cy:"25",r:"20"})})});function V(u){return u&&u.__esModule&&Object.prototype.hasOwnProperty.call(u,"default")?u.default:u}var j={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
- */(function(e){(function(){var s={}.hasOwnProperty;function n(){for(var t="",r=0;r<arguments.length;r++){var u=arguments[r];u&&(t=i(t,p(u)))}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 u in t)s.call(t,u)&&t[u]&&(r=i(r,u));return r}function i(t,r){return r?t?t+" "+r:t+r:t}e.exports?(n.default=n,e.exports=n):window.classNames=n})()})(x);var B=x.exports;const Y=G(B),o={"purpur-button":"_purpur-button_u2yv5_1","purpur-button--sm":"_purpur-button--sm_u2yv5_33","purpur-button--icon-only":"_purpur-button--icon-only_u2yv5_36","purpur-button--md":"_purpur-button--md_u2yv5_39","purpur-button--lg":"_purpur-button--lg_u2yv5_45","purpur-button--full-width":"_purpur-button--full-width_u2yv5_51","purpur-button--primary":"_purpur-button--primary_u2yv5_54","purpur-button--disabled":"_purpur-button--disabled_u2yv5_58","purpur-button--primary-negative":"_purpur-button--primary-negative_u2yv5_64","purpur-button--secondary":"_purpur-button--secondary_u2yv5_76","purpur-button--secondary-negative":"_purpur-button--secondary-negative_u2yv5_87","purpur-button--expressive":"_purpur-button--expressive_u2yv5_98","purpur-button--expressive-negative":"_purpur-button--expressive-negative_u2yv5_108","purpur-button--negative":"_purpur-button--negative_u2yv5_120","purpur-button--destructive":"_purpur-button--destructive_u2yv5_127","purpur-button--destructive-negative":"_purpur-button--destructive-negative_u2yv5_137","purpur-button--tertiary-purple":"_purpur-button--tertiary-purple_u2yv5_147","purpur-button--tertiary-purple-negative":"_purpur-button--tertiary-purple-negative_u2yv5_160","purpur-button--text-negative":"_purpur-button--text-negative_u2yv5_175","purpur-button--text":"_purpur-button--text_u2yv5_175"},E={...V,DESTRUCTIVE:"destructive",DESTRUCTIVE_NEGATIVE:"destructive-negative",TERTIARY_PURPLE:"tertiary-purple",TERTIARY_PURPLE_NEGATVIE:"tertiary-purple-negative",TEXT:"text",TEXT_NEGATIVE:"text-negative"},C=Object.values(E),a="purpur-button",L=({children:e,className:s,["data-testid"]:n,disabled:p=!1,fullWidth:i=!1,iconOnly:t,loading:r=!1,onClick:u,size:d=g.MD,variant:c,type:T="button",...b},A)=>{if(t&&c==="destructive")return null;const R=Y([o[a],o[`${a}--${c}`],o[`${a}--${d}`]],{[o[`${a}--icon-only`]]:t,[o[`${a}--negative`]]:c.endsWith("negative"),[o[`${a}--full-width`]]:i,[o[`${a}--disabled`]]:p||r},s),I=y=>{p||r?y.preventDefault():u&&u(y)},N=()=>c.endsWith("negative")?"negative-disabled":"disabled";return _.jsxs("button",{className:R,"data-testid":n,type:T,ref:A,"aria-disabled":b["aria-disabled"]||p||r,onClick:I,...b,children:[r&&_.jsx(w,{size:d===g.LG?"xs":"xxs",variant:N()})," ",e]})},S=h.forwardRef(L);S.displayName="Button";exports.BUTTON_VARIANT=E;exports.Button=S;exports.buttonVariants=C;
9
+ */(function(u){(function(){var o={}.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)o.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})()})(j);var D=j.exports;const B=V(D),i={"purpur-button":"_purpur-button_u2yv5_1","purpur-button--sm":"_purpur-button--sm_u2yv5_33","purpur-button--icon-only":"_purpur-button--icon-only_u2yv5_36","purpur-button--md":"_purpur-button--md_u2yv5_39","purpur-button--lg":"_purpur-button--lg_u2yv5_45","purpur-button--full-width":"_purpur-button--full-width_u2yv5_51","purpur-button--primary":"_purpur-button--primary_u2yv5_54","purpur-button--disabled":"_purpur-button--disabled_u2yv5_58","purpur-button--primary-negative":"_purpur-button--primary-negative_u2yv5_64","purpur-button--secondary":"_purpur-button--secondary_u2yv5_76","purpur-button--secondary-negative":"_purpur-button--secondary-negative_u2yv5_87","purpur-button--expressive":"_purpur-button--expressive_u2yv5_98","purpur-button--expressive-negative":"_purpur-button--expressive-negative_u2yv5_108","purpur-button--negative":"_purpur-button--negative_u2yv5_120","purpur-button--destructive":"_purpur-button--destructive_u2yv5_127","purpur-button--destructive-negative":"_purpur-button--destructive-negative_u2yv5_137","purpur-button--tertiary-purple":"_purpur-button--tertiary-purple_u2yv5_147","purpur-button--tertiary-purple-negative":"_purpur-button--tertiary-purple-negative_u2yv5_160","purpur-button--text-negative":"_purpur-button--text-negative_u2yv5_175","purpur-button--text":"_purpur-button--text_u2yv5_175"},S={...O,DESTRUCTIVE:"destructive",TERTIARY_PURPLE:"tertiary-purple",TEXT:"text"},C=Object.values(S),a="purpur-button",G=({children:u,className:o,["data-testid"]:n,disabled:p=!1,fullWidth:s=!1,iconOnly:t,loading:r=!1,negative:e=!1,onClick:d,size:b=x.MD,variant:v,type:N="button",...y},h)=>{if(t&&v==="destructive")return null;const A=B([i[a],i[`${a}--${e?`${v}-negative`:v}`],i[`${a}--${b}`]],{[i[`${a}--icon-only`]]:t,[i[`${a}--negative`]]:e,[i[`${a}--full-width`]]:s,[i[`${a}--disabled`]]:p||r},o),R=f=>{p||r?f.preventDefault():d&&d(f)};return l.jsxs("button",{className:A,"data-testid":n,type:N,ref:h,"aria-disabled":y["aria-disabled"]||p||r,onClick:R,...y,children:[r&&l.jsx(P,{size:b===x.LG?"xs":"xxs",negative:e,disabled:p})," ",u]})},E=T.forwardRef(G);E.displayName="Button";exports.BUTTON_VARIANT=S;exports.Button=E;exports.buttonVariants=C;
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/index.js","../src/button.tsx"],"sourcesContent":["const e = {\n PRIMARY: \"primary\",\n PRIMARY_NEGATIVE: \"primary-negative\",\n SECONDARY: \"secondary\",\n SECONDARY_NEGATIVE: \"secondary-negative\",\n EXPRESSIVE: \"expressive\",\n EXPRESSIVE_NEGATIVE: \"expressive-negative\"\n}, E = Object.values(e), s = {\n SM: \"sm\",\n MD: \"md\",\n LG: \"lg\"\n}, a = Object.values(s);\nexport {\n s as SIZE,\n e as VARIANT,\n a as sizes,\n E as variants\n};\n//# sourceMappingURL=action.es.js.map\n","import { jsx as c } from \"react/jsx-runtime\";\nfunction g(s) {\n return s && s.__esModule && Object.prototype.hasOwnProperty.call(s, \"default\") ? s.default : s;\n}\nvar l = { exports: {} };\n/*!\n\tCopyright (c) 2018 Jed Watson.\n\tLicensed under the MIT License (MIT), see\n\thttp://jedwatson.github.io/classnames\n*/\n(function(s) {\n (function() {\n var u = {}.hasOwnProperty;\n function n() {\n for (var r = \"\", e = 0; e < arguments.length; e++) {\n var t = arguments[e];\n t && (r = a(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 n.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 u.call(r, t) && r[t] && (e = a(e, t));\n return e;\n }\n function a(r, e) {\n return e ? r ? r + \" \" + e : r + e : r;\n }\n s.exports ? (n.default = n, s.exports = n) : window.classNames = n;\n })();\n})(l);\nvar m = l.exports;\nconst o = /* @__PURE__ */ g(m), v = \"_rotate_7s2g1_1\", S = \"_dash_7s2g1_1\", p = {\n \"purpur-spinner\": \"_purpur-spinner_7s2g1_1\",\n rotate: v,\n \"purpur-spinner--xxs\": \"_purpur-spinner--xxs_7s2g1_4\",\n \"purpur-spinner--xs\": \"_purpur-spinner--xs_7s2g1_8\",\n \"purpur-spinner--sm\": \"_purpur-spinner--sm_7s2g1_12\",\n \"purpur-spinner--md\": \"_purpur-spinner--md_7s2g1_16\",\n \"purpur-spinner--lg\": \"_purpur-spinner--lg_7s2g1_20\",\n \"purpur-spinner__circle\": \"_purpur-spinner__circle_7s2g1_24\",\n dash: S,\n \"purpur-spinner__circle--disabled\": \"_purpur-spinner__circle--disabled_7s2g1_33\",\n \"purpur-spinner__circle--negative\": \"_purpur-spinner__circle--negative_7s2g1_36\",\n \"purpur-spinner__circle--negative-disabled\": \"_purpur-spinner__circle--negative-disabled_7s2g1_39\"\n}, i = \"purpur-spinner\", d = {\n PRIMARY: \"primary\",\n DISABLED: \"disabled\",\n NEGATIVE: \"negative\",\n NEGATIVE_DISABLED: \"negative-disabled\"\n}, b = Object.values(d), f = {\n XXS: \"xxs\",\n XS: \"xs\",\n SM: \"sm\",\n MD: \"md\",\n LG: \"lg\"\n}, N = Object.values(f), y = ({\n [\"data-testid\"]: s,\n size: u = f.SM,\n variant: n = d.PRIMARY,\n ..._\n}) => /* @__PURE__ */ c(\n \"div\",\n {\n className: o([p[i], p[`${i}--${u}`]]),\n \"data-testid\": s,\n ..._,\n children: /* @__PURE__ */ c(\"svg\", { viewBox: \"0 0 50 50\", children: /* @__PURE__ */ c(\n \"circle\",\n {\n className: o(\n p[`${i}__circle`],\n p[`${i}__circle--${n}`]\n ),\n cx: \"25\",\n cy: \"25\",\n r: \"20\"\n }\n ) })\n }\n);\nexport {\n f as SPINNER_SIZE,\n d as SPINNER_VARIANT,\n y as Spinner,\n N as spinnerSizes,\n b as spinnerVariants\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(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 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(null, 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, 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, { ButtonHTMLAttributes, ForwardedRef, forwardRef, MouseEvent } from \"react\";\nimport { ActionProps, SIZE, VARIANT } from \"@purpurds/action\";\nimport { Spinner } from \"@purpurds/spinner\";\nimport c from \"classnames\";\n\nimport styles from \"./button.module.scss\";\n\nexport const BUTTON_VARIANT = {\n ...VARIANT,\n DESTRUCTIVE: \"destructive\",\n DESTRUCTIVE_NEGATIVE: \"destructive-negative\",\n TERTIARY_PURPLE: \"tertiary-purple\",\n TERTIARY_PURPLE_NEGATVIE: \"tertiary-purple-negative\",\n TEXT: \"text\",\n TEXT_NEGATIVE: \"text-negative\",\n} as const;\n\nexport const buttonVariants = Object.values(BUTTON_VARIANT);\nexport type ButtonVariant = (typeof BUTTON_VARIANT)[keyof typeof BUTTON_VARIANT];\n\nconst rootClassName = \"purpur-button\";\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 onClick,\n size = SIZE.MD,\n variant,\n type = \"button\",\n ...props\n }: ButtonProps,\n ref: ForwardedRef<HTMLButtonElement>\n) => {\n if (iconOnly && variant === \"destructive\") {\n return null;\n }\n\n const classes = c(\n [\n styles[rootClassName],\n styles[`${rootClassName}--${variant}`],\n styles[`${rootClassName}--${size}`],\n ],\n {\n [styles[`${rootClassName}--icon-only`]]: iconOnly,\n [styles[`${rootClassName}--negative`]]: variant.endsWith(\"negative\"),\n [styles[`${rootClassName}--full-width`]]: fullWidth,\n [styles[`${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 getSpinnerVariant = () => (variant.endsWith(\"negative\") ? \"negative-disabled\" : \"disabled\");\n\n return (\n <button\n className={classes}\n data-testid={dataTestid}\n // eslint-disable-next-line react/button-has-type\n type={type}\n ref={ref}\n aria-disabled={props[\"aria-disabled\"] || disabled || loading}\n onClick={handleClick}\n {...props}\n >\n {loading && <Spinner size={size === SIZE.LG ? \"xs\" : \"xxs\"} variant={getSpinnerVariant()} />}{\" \"}\n {children}\n </button>\n );\n};\n\nexport const Button = forwardRef(ButtonComponent);\nButton.displayName = \"Button\";\n"],"names":["e","s","g","l","u","r","t","a","_","m","o","v","S","p","i","d","f","y","c","hasOwn","classNames","classes","arg","appendClass","parseValue","key","value","newClass","module","BUTTON_VARIANT","VARIANT","buttonVariants","rootClassName","ButtonComponent","children","className","dataTestid","disabled","fullWidth","iconOnly","loading","onClick","size","SIZE","variant","type","props","ref","styles","handleClick","getSpinnerVariant","jsxs","jsx","Spinner","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/index.js","../src/button.tsx"],"sourcesContent":["const e = {\n PRIMARY: \"primary\",\n PRIMARY_NEGATIVE: \"primary-negative\",\n SECONDARY: \"secondary\",\n SECONDARY_NEGATIVE: \"secondary-negative\",\n EXPRESSIVE: \"expressive\",\n EXPRESSIVE_NEGATIVE: \"expressive-negative\"\n}, E = Object.values(e), s = {\n SM: \"sm\",\n MD: \"md\",\n LG: \"lg\"\n}, a = Object.values(s);\nexport {\n s as SIZE,\n e as VARIANT,\n a as sizes,\n E as variants\n};\n//# sourceMappingURL=action.es.js.map\n","import { jsx as _ } from \"react/jsx-runtime\";\nfunction d(n) {\n return n && n.__esModule && Object.prototype.hasOwnProperty.call(n, \"default\") ? n.default : n;\n}\nvar l = { exports: {} };\n/*!\n\tCopyright (c) 2018 Jed Watson.\n\tLicensed under the MIT License (MIT), see\n\thttp://jedwatson.github.io/classnames\n*/\n(function(n) {\n (function() {\n var o = {}.hasOwnProperty;\n function s() {\n for (var r = \"\", e = 0; e < arguments.length; e++) {\n var t = arguments[e];\n t && (r = u(r, c(t)));\n }\n return r;\n }\n function c(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 o.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})(l);\nvar x = l.exports;\nconst a = /* @__PURE__ */ d(x), m = \"_rotate_1xozj_1\", j = \"_dash_1xozj_1\", p = {\n \"purpur-spinner\": \"_purpur-spinner_1xozj_1\",\n rotate: m,\n \"purpur-spinner--xxs\": \"_purpur-spinner--xxs_1xozj_4\",\n \"purpur-spinner--xs\": \"_purpur-spinner--xs_1xozj_8\",\n \"purpur-spinner--sm\": \"_purpur-spinner--sm_1xozj_12\",\n \"purpur-spinner--md\": \"_purpur-spinner--md_1xozj_16\",\n \"purpur-spinner--lg\": \"_purpur-spinner--lg_1xozj_20\",\n \"purpur-spinner__circle\": \"_purpur-spinner__circle_1xozj_24\",\n dash: j,\n \"purpur-spinner__circle--disabled\": \"_purpur-spinner__circle--disabled_1xozj_33\",\n \"purpur-spinner__circle--negative\": \"_purpur-spinner__circle--negative_1xozj_36\"\n}, i = \"purpur-spinner\", f = {\n XXS: \"xxs\",\n XS: \"xs\",\n SM: \"sm\",\n MD: \"md\",\n LG: \"lg\"\n}, S = Object.values(f), z = ({\n [\"data-testid\"]: n,\n disabled: o = !1,\n negative: s = !1,\n size: c = f.SM,\n ...u\n}) => /* @__PURE__ */ _(\n \"div\",\n {\n className: a([p[i], p[`${i}--${c}`]]),\n \"data-testid\": n,\n ...u,\n children: /* @__PURE__ */ _(\"svg\", { viewBox: \"0 0 50 50\", children: /* @__PURE__ */ _(\n \"circle\",\n {\n className: a(p[`${i}__circle`], {\n [p[`${i}__circle--disabled`]]: o,\n [p[`${i}__circle--negative`]]: s\n }),\n cx: \"25\",\n cy: \"25\",\n r: \"20\"\n }\n ) })\n }\n);\nexport {\n f as SPINNER_SIZE,\n z as Spinner,\n S 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(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 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(null, 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, 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, { ButtonHTMLAttributes, ForwardedRef, forwardRef, MouseEvent } from \"react\";\nimport { ActionProps, SIZE, VARIANT } from \"@purpurds/action\";\nimport { Spinner } from \"@purpurds/spinner\";\nimport c from \"classnames\";\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 rootClassName = \"purpur-button\";\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 = SIZE.MD,\n variant,\n type = \"button\",\n ...props\n }: ButtonProps,\n ref: ForwardedRef<HTMLButtonElement>\n) => {\n if (iconOnly && variant === \"destructive\") {\n return null;\n }\n const classes = c(\n [\n styles[rootClassName],\n styles[`${rootClassName}--${negative ? `${variant}-negative` : variant}`],\n styles[`${rootClassName}--${size}`],\n ],\n {\n [styles[`${rootClassName}--icon-only`]]: iconOnly,\n [styles[`${rootClassName}--negative`]]: negative,\n [styles[`${rootClassName}--full-width`]]: fullWidth,\n [styles[`${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 return (\n <button\n className={classes}\n data-testid={dataTestid}\n // eslint-disable-next-line react/button-has-type\n type={type}\n ref={ref}\n aria-disabled={props[\"aria-disabled\"] || disabled || loading}\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":["e","s","d","n","l","r","t","u","c","x","a","m","j","p","i","f","z","_","hasOwn","classNames","classes","arg","appendClass","parseValue","key","value","newClass","module","BUTTON_VARIANT","VARIANT","buttonVariants","rootClassName","ButtonComponent","children","className","dataTestid","disabled","fullWidth","iconOnly","loading","negative","onClick","size","SIZE","variant","type","props","ref","styles","handleClick","jsxs","jsx","Spinner","Button","forwardRef"],"mappings":"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","x_google_ignoreList":[2]}
package/dist/button.d.ts CHANGED
@@ -3,11 +3,8 @@ import { default as React, ButtonHTMLAttributes } from 'react';
3
3
 
4
4
  export declare const BUTTON_VARIANT: {
5
5
  readonly DESTRUCTIVE: "destructive";
6
- readonly DESTRUCTIVE_NEGATIVE: "destructive-negative";
7
6
  readonly TERTIARY_PURPLE: "tertiary-purple";
8
- readonly TERTIARY_PURPLE_NEGATVIE: "tertiary-purple-negative";
9
7
  readonly TEXT: "text";
10
- readonly TEXT_NEGATIVE: "text-negative";
11
8
  readonly PRIMARY: "primary";
12
9
  readonly PRIMARY_NEGATIVE: "primary-negative";
13
10
  readonly SECONDARY: "secondary";
@@ -15,7 +12,7 @@ export declare const BUTTON_VARIANT: {
15
12
  readonly EXPRESSIVE: "expressive";
16
13
  readonly EXPRESSIVE_NEGATIVE: "expressive-negative";
17
14
  };
18
- export declare const buttonVariants: ("destructive" | "destructive-negative" | "tertiary-purple" | "tertiary-purple-negative" | "text" | "text-negative" | "primary" | "primary-negative" | "secondary" | "secondary-negative" | "expressive" | "expressive-negative")[];
15
+ export declare const buttonVariants: ("destructive" | "tertiary-purple" | "text" | "primary" | "primary-negative" | "secondary" | "secondary-negative" | "expressive" | "expressive-negative")[];
19
16
  export type ButtonVariant = (typeof BUTTON_VARIANT)[keyof typeof BUTTON_VARIANT];
20
17
  export type ButtonProps = ActionProps<ButtonVariant> & ButtonHTMLAttributes<HTMLButtonElement> & {
21
18
  loading?: boolean;
@@ -1 +1 @@
1
- {"version":3,"file":"button.d.ts","sourceRoot":"","sources":["../src/button.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,EAAE,oBAAoB,EAAwC,MAAM,OAAO,CAAC;AAC1F,OAAO,EAAE,WAAW,EAAiB,MAAM,kBAAkB,CAAC;AAM9D,eAAO,MAAM,cAAc;;;;;;;;;;;;;CAQjB,CAAC;AAEX,eAAO,MAAM,cAAc,qOAAgC,CAAC;AAC5D,MAAM,MAAM,aAAa,GAAG,CAAC,OAAO,cAAc,CAAC,CAAC,MAAM,OAAO,cAAc,CAAC,CAAC;AAIjF,MAAM,MAAM,WAAW,GAAG,WAAW,CAAC,aAAa,CAAC,GAClD,oBAAoB,CAAC,iBAAiB,CAAC,GAAG;IAAE,OAAO,CAAC,EAAE,OAAO,CAAA;CAAE,CAAC;AAiElE,eAAO,MAAM,MAAM,uFAA8B,CAAC"}
1
+ {"version":3,"file":"button.d.ts","sourceRoot":"","sources":["../src/button.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,EAAE,oBAAoB,EAAwC,MAAM,OAAO,CAAC;AAC1F,OAAO,EAAE,WAAW,EAAiB,MAAM,kBAAkB,CAAC;AAM9D,eAAO,MAAM,cAAc;;;;;;;;;;CAKjB,CAAC;AAEX,eAAO,MAAM,cAAc,6JAAgC,CAAC;AAC5D,MAAM,MAAM,aAAa,GAAG,CAAC,OAAO,cAAc,CAAC,CAAC,MAAM,OAAO,cAAc,CAAC,CAAC;AAIjF,MAAM,MAAM,WAAW,GAAG,WAAW,CAAC,aAAa,CAAC,GAClD,oBAAoB,CAAC,iBAAiB,CAAC,GAAG;IAAE,OAAO,CAAC,EAAE,OAAO,CAAA;CAAE,CAAC;AAiElE,eAAO,MAAM,MAAM,uFAA8B,CAAC"}
package/dist/button.es.js CHANGED
@@ -1,99 +1,94 @@
1
- import { jsx as v, jsxs as I } from "react/jsx-runtime";
2
- import { forwardRef as N } from "react";
3
- const h = {
1
+ import { jsx as l, jsxs as A } from "react/jsx-runtime";
2
+ import { forwardRef as R } from "react";
3
+ const $ = {
4
4
  PRIMARY: "primary",
5
5
  PRIMARY_NEGATIVE: "primary-negative",
6
6
  SECONDARY: "secondary",
7
7
  SECONDARY_NEGATIVE: "secondary-negative",
8
8
  EXPRESSIVE: "expressive",
9
9
  EXPRESSIVE_NEGATIVE: "expressive-negative"
10
- }, f = {
10
+ }, x = {
11
11
  SM: "sm",
12
12
  MD: "md",
13
13
  LG: "lg"
14
14
  };
15
- function V(e) {
16
- return e && e.__esModule && Object.prototype.hasOwnProperty.call(e, "default") ? e.default : e;
15
+ function z(u) {
16
+ return u && u.__esModule && Object.prototype.hasOwnProperty.call(u, "default") ? u.default : u;
17
17
  }
18
- var m = { exports: {} };
18
+ var g = { exports: {} };
19
19
  /*!
20
20
  Copyright (c) 2018 Jed Watson.
21
21
  Licensed under the MIT License (MIT), see
22
22
  http://jedwatson.github.io/classnames
23
23
  */
24
- (function(e) {
24
+ (function(u) {
25
25
  (function() {
26
- var s = {}.hasOwnProperty;
26
+ var o = {}.hasOwnProperty;
27
27
  function n() {
28
- for (var t = "", r = 0; r < arguments.length; r++) {
29
- var u = arguments[r];
30
- u && (t = i(t, p(u)));
28
+ for (var r = "", t = 0; t < arguments.length; t++) {
29
+ var e = arguments[t];
30
+ e && (r = s(r, p(e)));
31
31
  }
32
- return t;
32
+ return r;
33
33
  }
34
- function p(t) {
35
- if (typeof t == "string" || typeof t == "number")
36
- return t;
37
- if (typeof t != "object")
34
+ function p(r) {
35
+ if (typeof r == "string" || typeof r == "number")
36
+ return r;
37
+ if (typeof r != "object")
38
38
  return "";
39
- if (Array.isArray(t))
40
- return n.apply(null, t);
41
- if (t.toString !== Object.prototype.toString && !t.toString.toString().includes("[native code]"))
42
- return t.toString();
43
- var r = "";
44
- for (var u in t)
45
- s.call(t, u) && t[u] && (r = i(r, u));
46
- return r;
39
+ if (Array.isArray(r))
40
+ return n.apply(null, r);
41
+ if (r.toString !== Object.prototype.toString && !r.toString.toString().includes("[native code]"))
42
+ return r.toString();
43
+ var t = "";
44
+ for (var e in r)
45
+ o.call(r, e) && r[e] && (t = s(t, e));
46
+ return t;
47
47
  }
48
- function i(t, r) {
49
- return r ? t ? t + " " + r : t + r : t;
48
+ function s(r, t) {
49
+ return t ? r ? r + " " + t : r + t : r;
50
50
  }
51
- e.exports ? (n.default = n, e.exports = n) : window.classNames = n;
51
+ u.exports ? (n.default = n, u.exports = n) : window.classNames = n;
52
52
  })();
53
- })(m);
54
- var P = m.exports;
55
- const g = /* @__PURE__ */ V(P), D = "_rotate_7s2g1_1", $ = "_dash_7s2g1_1", c = {
56
- "purpur-spinner": "_purpur-spinner_7s2g1_1",
57
- rotate: D,
58
- "purpur-spinner--xxs": "_purpur-spinner--xxs_7s2g1_4",
59
- "purpur-spinner--xs": "_purpur-spinner--xs_7s2g1_8",
60
- "purpur-spinner--sm": "_purpur-spinner--sm_7s2g1_12",
61
- "purpur-spinner--md": "_purpur-spinner--md_7s2g1_16",
62
- "purpur-spinner--lg": "_purpur-spinner--lg_7s2g1_20",
63
- "purpur-spinner__circle": "_purpur-spinner__circle_7s2g1_24",
64
- dash: $,
65
- "purpur-spinner__circle--disabled": "_purpur-spinner__circle--disabled_7s2g1_33",
66
- "purpur-spinner__circle--negative": "_purpur-spinner__circle--negative_7s2g1_36",
67
- "purpur-spinner__circle--negative-disabled": "_purpur-spinner__circle--negative-disabled_7s2g1_39"
68
- }, l = "purpur-spinner", w = {
69
- PRIMARY: "primary",
70
- DISABLED: "disabled",
71
- NEGATIVE: "negative",
72
- NEGATIVE_DISABLED: "negative-disabled"
73
- }, M = {
53
+ })(g);
54
+ var w = g.exports;
55
+ const m = /* @__PURE__ */ z(w), O = "_rotate_1xozj_1", T = "_dash_1xozj_1", a = {
56
+ "purpur-spinner": "_purpur-spinner_1xozj_1",
57
+ rotate: O,
58
+ "purpur-spinner--xxs": "_purpur-spinner--xxs_1xozj_4",
59
+ "purpur-spinner--xs": "_purpur-spinner--xs_1xozj_8",
60
+ "purpur-spinner--sm": "_purpur-spinner--sm_1xozj_12",
61
+ "purpur-spinner--md": "_purpur-spinner--md_1xozj_16",
62
+ "purpur-spinner--lg": "_purpur-spinner--lg_1xozj_20",
63
+ "purpur-spinner__circle": "_purpur-spinner__circle_1xozj_24",
64
+ dash: T,
65
+ "purpur-spinner__circle--disabled": "_purpur-spinner__circle--disabled_1xozj_33",
66
+ "purpur-spinner__circle--negative": "_purpur-spinner__circle--negative_1xozj_36"
67
+ }, c = "purpur-spinner", I = {
74
68
  XXS: "xxs",
75
69
  XS: "xs",
76
70
  SM: "sm",
77
71
  MD: "md",
78
72
  LG: "lg"
79
- }, O = ({
80
- ["data-testid"]: e,
81
- size: s = M.SM,
82
- variant: n = w.PRIMARY,
83
- ...p
84
- }) => /* @__PURE__ */ v(
73
+ }, M = ({
74
+ ["data-testid"]: u,
75
+ disabled: o = !1,
76
+ negative: n = !1,
77
+ size: p = I.SM,
78
+ ...s
79
+ }) => /* @__PURE__ */ l(
85
80
  "div",
86
81
  {
87
- className: g([c[l], c[`${l}--${s}`]]),
88
- "data-testid": e,
89
- ...p,
90
- children: /* @__PURE__ */ v("svg", { viewBox: "0 0 50 50", children: /* @__PURE__ */ v(
82
+ className: m([a[c], a[`${c}--${p}`]]),
83
+ "data-testid": u,
84
+ ...s,
85
+ children: /* @__PURE__ */ l("svg", { viewBox: "0 0 50 50", children: /* @__PURE__ */ l(
91
86
  "circle",
92
87
  {
93
- className: g(
94
- c[`${l}__circle`],
95
- c[`${l}__circle--${n}`]
96
- ),
88
+ className: m(a[`${c}__circle`], {
89
+ [a[`${c}__circle--disabled`]]: o,
90
+ [a[`${c}__circle--negative`]]: n
91
+ }),
97
92
  cx: "25",
98
93
  cy: "25",
99
94
  r: "20"
@@ -101,47 +96,47 @@ const g = /* @__PURE__ */ V(P), D = "_rotate_7s2g1_1", $ = "_dash_7s2g1_1", c =
101
96
  ) })
102
97
  }
103
98
  );
104
- function G(e) {
105
- return e && e.__esModule && Object.prototype.hasOwnProperty.call(e, "default") ? e.default : e;
99
+ function P(u) {
100
+ return u && u.__esModule && Object.prototype.hasOwnProperty.call(u, "default") ? u.default : u;
106
101
  }
107
- var E = { exports: {} };
102
+ var j = { exports: {} };
108
103
  /*!
109
104
  Copyright (c) 2018 Jed Watson.
110
105
  Licensed under the MIT License (MIT), see
111
106
  http://jedwatson.github.io/classnames
112
107
  */
113
- (function(e) {
108
+ (function(u) {
114
109
  (function() {
115
- var s = {}.hasOwnProperty;
110
+ var o = {}.hasOwnProperty;
116
111
  function n() {
117
- for (var t = "", r = 0; r < arguments.length; r++) {
118
- var u = arguments[r];
119
- u && (t = i(t, p(u)));
112
+ for (var r = "", t = 0; t < arguments.length; t++) {
113
+ var e = arguments[t];
114
+ e && (r = s(r, p(e)));
120
115
  }
121
- return t;
116
+ return r;
122
117
  }
123
- function p(t) {
124
- if (typeof t == "string" || typeof t == "number")
125
- return t;
126
- if (typeof t != "object")
118
+ function p(r) {
119
+ if (typeof r == "string" || typeof r == "number")
120
+ return r;
121
+ if (typeof r != "object")
127
122
  return "";
128
- if (Array.isArray(t))
129
- return n.apply(null, t);
130
- if (t.toString !== Object.prototype.toString && !t.toString.toString().includes("[native code]"))
131
- return t.toString();
132
- var r = "";
133
- for (var u in t)
134
- s.call(t, u) && t[u] && (r = i(r, u));
135
- return r;
123
+ if (Array.isArray(r))
124
+ return n.apply(null, r);
125
+ if (r.toString !== Object.prototype.toString && !r.toString.toString().includes("[native code]"))
126
+ return r.toString();
127
+ var t = "";
128
+ for (var e in r)
129
+ o.call(r, e) && r[e] && (t = s(t, e));
130
+ return t;
136
131
  }
137
- function i(t, r) {
138
- return r ? t ? t + " " + r : t + r : t;
132
+ function s(r, t) {
133
+ return t ? r ? r + " " + t : r + t : r;
139
134
  }
140
- e.exports ? (n.default = n, e.exports = n) : window.classNames = n;
135
+ u.exports ? (n.default = n, u.exports = n) : window.classNames = n;
141
136
  })();
142
- })(E);
143
- var j = E.exports;
144
- const Y = /* @__PURE__ */ G(j), o = {
137
+ })(j);
138
+ var V = j.exports;
139
+ const D = /* @__PURE__ */ P(V), i = {
145
140
  "purpur-button": "_purpur-button_u2yv5_1",
146
141
  "purpur-button--sm": "_purpur-button--sm_u2yv5_33",
147
142
  "purpur-button--icon-only": "_purpur-button--icon-only_u2yv5_36",
@@ -162,68 +157,66 @@ const Y = /* @__PURE__ */ G(j), o = {
162
157
  "purpur-button--tertiary-purple-negative": "_purpur-button--tertiary-purple-negative_u2yv5_160",
163
158
  "purpur-button--text-negative": "_purpur-button--text-negative_u2yv5_175",
164
159
  "purpur-button--text": "_purpur-button--text_u2yv5_175"
165
- }, B = {
166
- ...h,
160
+ }, C = {
161
+ ...$,
167
162
  DESTRUCTIVE: "destructive",
168
- DESTRUCTIVE_NEGATIVE: "destructive-negative",
169
163
  TERTIARY_PURPLE: "tertiary-purple",
170
- TERTIARY_PURPLE_NEGATVIE: "tertiary-purple-negative",
171
- TEXT: "text",
172
- TEXT_NEGATIVE: "text-negative"
173
- }, W = Object.values(B), a = "purpur-button", C = ({
174
- children: e,
175
- className: s,
164
+ TEXT: "text"
165
+ }, L = Object.values(C), _ = "purpur-button", G = ({
166
+ children: u,
167
+ className: o,
176
168
  ["data-testid"]: n,
177
169
  disabled: p = !1,
178
- fullWidth: i = !1,
179
- iconOnly: t,
180
- loading: r = !1,
181
- onClick: u,
182
- size: d = f.MD,
183
- variant: _,
184
- type: x = "button",
170
+ fullWidth: s = !1,
171
+ iconOnly: r,
172
+ loading: t = !1,
173
+ negative: e = !1,
174
+ onClick: d,
175
+ size: y = x.MD,
176
+ variant: v,
177
+ type: S = "button",
185
178
  ...b
186
- }, S) => {
187
- if (t && _ === "destructive")
179
+ }, E) => {
180
+ if (r && v === "destructive")
188
181
  return null;
189
- const A = Y(
182
+ const h = D(
190
183
  [
191
- o[a],
192
- o[`${a}--${_}`],
193
- o[`${a}--${d}`]
184
+ i[_],
185
+ i[`${_}--${e ? `${v}-negative` : v}`],
186
+ i[`${_}--${y}`]
194
187
  ],
195
188
  {
196
- [o[`${a}--icon-only`]]: t,
197
- [o[`${a}--negative`]]: _.endsWith("negative"),
198
- [o[`${a}--full-width`]]: i,
199
- [o[`${a}--disabled`]]: p || r
189
+ [i[`${_}--icon-only`]]: r,
190
+ [i[`${_}--negative`]]: e,
191
+ [i[`${_}--full-width`]]: s,
192
+ [i[`${_}--disabled`]]: p || t
200
193
  },
201
- s
202
- ), T = (y) => {
203
- p || r ? y.preventDefault() : u && u(y);
204
- }, R = () => _.endsWith("negative") ? "negative-disabled" : "disabled";
205
- return /* @__PURE__ */ I(
194
+ o
195
+ ), N = (f) => {
196
+ p || t ? f.preventDefault() : d && d(f);
197
+ };
198
+ return /* @__PURE__ */ A(
206
199
  "button",
207
200
  {
208
- className: A,
201
+ className: h,
209
202
  "data-testid": n,
210
- type: x,
211
- ref: S,
212
- "aria-disabled": b["aria-disabled"] || p || r,
213
- onClick: T,
203
+ type: S,
204
+ ref: E,
205
+ "aria-disabled": b["aria-disabled"] || p || t,
206
+ onClick: N,
214
207
  ...b,
215
208
  children: [
216
- r && /* @__PURE__ */ v(O, { size: d === f.LG ? "xs" : "xxs", variant: R() }),
209
+ t && /* @__PURE__ */ l(M, { size: y === x.LG ? "xs" : "xxs", negative: e, disabled: p }),
217
210
  " ",
218
- e
211
+ u
219
212
  ]
220
213
  }
221
214
  );
222
- }, L = N(C);
223
- L.displayName = "Button";
215
+ }, X = R(G);
216
+ X.displayName = "Button";
224
217
  export {
225
- B as BUTTON_VARIANT,
226
- L as Button,
227
- W as buttonVariants
218
+ C as BUTTON_VARIANT,
219
+ X as Button,
220
+ L as buttonVariants
228
221
  };
229
222
  //# 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/index.js","../src/button.tsx"],"sourcesContent":["const e = {\n PRIMARY: \"primary\",\n PRIMARY_NEGATIVE: \"primary-negative\",\n SECONDARY: \"secondary\",\n SECONDARY_NEGATIVE: \"secondary-negative\",\n EXPRESSIVE: \"expressive\",\n EXPRESSIVE_NEGATIVE: \"expressive-negative\"\n}, E = Object.values(e), s = {\n SM: \"sm\",\n MD: \"md\",\n LG: \"lg\"\n}, a = Object.values(s);\nexport {\n s as SIZE,\n e as VARIANT,\n a as sizes,\n E as variants\n};\n//# sourceMappingURL=action.es.js.map\n","import { jsx as c } from \"react/jsx-runtime\";\nfunction g(s) {\n return s && s.__esModule && Object.prototype.hasOwnProperty.call(s, \"default\") ? s.default : s;\n}\nvar l = { exports: {} };\n/*!\n\tCopyright (c) 2018 Jed Watson.\n\tLicensed under the MIT License (MIT), see\n\thttp://jedwatson.github.io/classnames\n*/\n(function(s) {\n (function() {\n var u = {}.hasOwnProperty;\n function n() {\n for (var r = \"\", e = 0; e < arguments.length; e++) {\n var t = arguments[e];\n t && (r = a(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 n.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 u.call(r, t) && r[t] && (e = a(e, t));\n return e;\n }\n function a(r, e) {\n return e ? r ? r + \" \" + e : r + e : r;\n }\n s.exports ? (n.default = n, s.exports = n) : window.classNames = n;\n })();\n})(l);\nvar m = l.exports;\nconst o = /* @__PURE__ */ g(m), v = \"_rotate_7s2g1_1\", S = \"_dash_7s2g1_1\", p = {\n \"purpur-spinner\": \"_purpur-spinner_7s2g1_1\",\n rotate: v,\n \"purpur-spinner--xxs\": \"_purpur-spinner--xxs_7s2g1_4\",\n \"purpur-spinner--xs\": \"_purpur-spinner--xs_7s2g1_8\",\n \"purpur-spinner--sm\": \"_purpur-spinner--sm_7s2g1_12\",\n \"purpur-spinner--md\": \"_purpur-spinner--md_7s2g1_16\",\n \"purpur-spinner--lg\": \"_purpur-spinner--lg_7s2g1_20\",\n \"purpur-spinner__circle\": \"_purpur-spinner__circle_7s2g1_24\",\n dash: S,\n \"purpur-spinner__circle--disabled\": \"_purpur-spinner__circle--disabled_7s2g1_33\",\n \"purpur-spinner__circle--negative\": \"_purpur-spinner__circle--negative_7s2g1_36\",\n \"purpur-spinner__circle--negative-disabled\": \"_purpur-spinner__circle--negative-disabled_7s2g1_39\"\n}, i = \"purpur-spinner\", d = {\n PRIMARY: \"primary\",\n DISABLED: \"disabled\",\n NEGATIVE: \"negative\",\n NEGATIVE_DISABLED: \"negative-disabled\"\n}, b = Object.values(d), f = {\n XXS: \"xxs\",\n XS: \"xs\",\n SM: \"sm\",\n MD: \"md\",\n LG: \"lg\"\n}, N = Object.values(f), y = ({\n [\"data-testid\"]: s,\n size: u = f.SM,\n variant: n = d.PRIMARY,\n ..._\n}) => /* @__PURE__ */ c(\n \"div\",\n {\n className: o([p[i], p[`${i}--${u}`]]),\n \"data-testid\": s,\n ..._,\n children: /* @__PURE__ */ c(\"svg\", { viewBox: \"0 0 50 50\", children: /* @__PURE__ */ c(\n \"circle\",\n {\n className: o(\n p[`${i}__circle`],\n p[`${i}__circle--${n}`]\n ),\n cx: \"25\",\n cy: \"25\",\n r: \"20\"\n }\n ) })\n }\n);\nexport {\n f as SPINNER_SIZE,\n d as SPINNER_VARIANT,\n y as Spinner,\n N as spinnerSizes,\n b as spinnerVariants\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(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 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(null, 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, 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, { ButtonHTMLAttributes, ForwardedRef, forwardRef, MouseEvent } from \"react\";\nimport { ActionProps, SIZE, VARIANT } from \"@purpurds/action\";\nimport { Spinner } from \"@purpurds/spinner\";\nimport c from \"classnames\";\n\nimport styles from \"./button.module.scss\";\n\nexport const BUTTON_VARIANT = {\n ...VARIANT,\n DESTRUCTIVE: \"destructive\",\n DESTRUCTIVE_NEGATIVE: \"destructive-negative\",\n TERTIARY_PURPLE: \"tertiary-purple\",\n TERTIARY_PURPLE_NEGATVIE: \"tertiary-purple-negative\",\n TEXT: \"text\",\n TEXT_NEGATIVE: \"text-negative\",\n} as const;\n\nexport const buttonVariants = Object.values(BUTTON_VARIANT);\nexport type ButtonVariant = (typeof BUTTON_VARIANT)[keyof typeof BUTTON_VARIANT];\n\nconst rootClassName = \"purpur-button\";\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 onClick,\n size = SIZE.MD,\n variant,\n type = \"button\",\n ...props\n }: ButtonProps,\n ref: ForwardedRef<HTMLButtonElement>\n) => {\n if (iconOnly && variant === \"destructive\") {\n return null;\n }\n\n const classes = c(\n [\n styles[rootClassName],\n styles[`${rootClassName}--${variant}`],\n styles[`${rootClassName}--${size}`],\n ],\n {\n [styles[`${rootClassName}--icon-only`]]: iconOnly,\n [styles[`${rootClassName}--negative`]]: variant.endsWith(\"negative\"),\n [styles[`${rootClassName}--full-width`]]: fullWidth,\n [styles[`${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 getSpinnerVariant = () => (variant.endsWith(\"negative\") ? \"negative-disabled\" : \"disabled\");\n\n return (\n <button\n className={classes}\n data-testid={dataTestid}\n // eslint-disable-next-line react/button-has-type\n type={type}\n ref={ref}\n aria-disabled={props[\"aria-disabled\"] || disabled || loading}\n onClick={handleClick}\n {...props}\n >\n {loading && <Spinner size={size === SIZE.LG ? \"xs\" : \"xxs\"} variant={getSpinnerVariant()} />}{\" \"}\n {children}\n </button>\n );\n};\n\nexport const Button = forwardRef(ButtonComponent);\nButton.displayName = \"Button\";\n"],"names":["e","s","g","l","u","r","t","a","_","m","o","v","S","p","i","d","f","y","c","hasOwn","classNames","classes","arg","appendClass","parseValue","key","value","newClass","module","BUTTON_VARIANT","VARIANT","buttonVariants","rootClassName","ButtonComponent","children","className","dataTestid","disabled","fullWidth","iconOnly","loading","onClick","size","SIZE","variant","type","props","ref","styles","handleClick","getSpinnerVariant","jsxs","jsx","Spinner","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/index.js","../src/button.tsx"],"sourcesContent":["const e = {\n PRIMARY: \"primary\",\n PRIMARY_NEGATIVE: \"primary-negative\",\n SECONDARY: \"secondary\",\n SECONDARY_NEGATIVE: \"secondary-negative\",\n EXPRESSIVE: \"expressive\",\n EXPRESSIVE_NEGATIVE: \"expressive-negative\"\n}, E = Object.values(e), s = {\n SM: \"sm\",\n MD: \"md\",\n LG: \"lg\"\n}, a = Object.values(s);\nexport {\n s as SIZE,\n e as VARIANT,\n a as sizes,\n E as variants\n};\n//# sourceMappingURL=action.es.js.map\n","import { jsx as _ } from \"react/jsx-runtime\";\nfunction d(n) {\n return n && n.__esModule && Object.prototype.hasOwnProperty.call(n, \"default\") ? n.default : n;\n}\nvar l = { exports: {} };\n/*!\n\tCopyright (c) 2018 Jed Watson.\n\tLicensed under the MIT License (MIT), see\n\thttp://jedwatson.github.io/classnames\n*/\n(function(n) {\n (function() {\n var o = {}.hasOwnProperty;\n function s() {\n for (var r = \"\", e = 0; e < arguments.length; e++) {\n var t = arguments[e];\n t && (r = u(r, c(t)));\n }\n return r;\n }\n function c(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 o.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})(l);\nvar x = l.exports;\nconst a = /* @__PURE__ */ d(x), m = \"_rotate_1xozj_1\", j = \"_dash_1xozj_1\", p = {\n \"purpur-spinner\": \"_purpur-spinner_1xozj_1\",\n rotate: m,\n \"purpur-spinner--xxs\": \"_purpur-spinner--xxs_1xozj_4\",\n \"purpur-spinner--xs\": \"_purpur-spinner--xs_1xozj_8\",\n \"purpur-spinner--sm\": \"_purpur-spinner--sm_1xozj_12\",\n \"purpur-spinner--md\": \"_purpur-spinner--md_1xozj_16\",\n \"purpur-spinner--lg\": \"_purpur-spinner--lg_1xozj_20\",\n \"purpur-spinner__circle\": \"_purpur-spinner__circle_1xozj_24\",\n dash: j,\n \"purpur-spinner__circle--disabled\": \"_purpur-spinner__circle--disabled_1xozj_33\",\n \"purpur-spinner__circle--negative\": \"_purpur-spinner__circle--negative_1xozj_36\"\n}, i = \"purpur-spinner\", f = {\n XXS: \"xxs\",\n XS: \"xs\",\n SM: \"sm\",\n MD: \"md\",\n LG: \"lg\"\n}, S = Object.values(f), z = ({\n [\"data-testid\"]: n,\n disabled: o = !1,\n negative: s = !1,\n size: c = f.SM,\n ...u\n}) => /* @__PURE__ */ _(\n \"div\",\n {\n className: a([p[i], p[`${i}--${c}`]]),\n \"data-testid\": n,\n ...u,\n children: /* @__PURE__ */ _(\"svg\", { viewBox: \"0 0 50 50\", children: /* @__PURE__ */ _(\n \"circle\",\n {\n className: a(p[`${i}__circle`], {\n [p[`${i}__circle--disabled`]]: o,\n [p[`${i}__circle--negative`]]: s\n }),\n cx: \"25\",\n cy: \"25\",\n r: \"20\"\n }\n ) })\n }\n);\nexport {\n f as SPINNER_SIZE,\n z as Spinner,\n S 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(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 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(null, 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, 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, { ButtonHTMLAttributes, ForwardedRef, forwardRef, MouseEvent } from \"react\";\nimport { ActionProps, SIZE, VARIANT } from \"@purpurds/action\";\nimport { Spinner } from \"@purpurds/spinner\";\nimport c from \"classnames\";\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 rootClassName = \"purpur-button\";\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 = SIZE.MD,\n variant,\n type = \"button\",\n ...props\n }: ButtonProps,\n ref: ForwardedRef<HTMLButtonElement>\n) => {\n if (iconOnly && variant === \"destructive\") {\n return null;\n }\n const classes = c(\n [\n styles[rootClassName],\n styles[`${rootClassName}--${negative ? `${variant}-negative` : variant}`],\n styles[`${rootClassName}--${size}`],\n ],\n {\n [styles[`${rootClassName}--icon-only`]]: iconOnly,\n [styles[`${rootClassName}--negative`]]: negative,\n [styles[`${rootClassName}--full-width`]]: fullWidth,\n [styles[`${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 return (\n <button\n className={classes}\n data-testid={dataTestid}\n // eslint-disable-next-line react/button-has-type\n type={type}\n ref={ref}\n aria-disabled={props[\"aria-disabled\"] || disabled || loading}\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":["e","s","d","n","l","t","u","c","x","a","m","j","p","i","f","z","_","hasOwn","classNames","classes","arg","appendClass","parseValue","key","value","newClass","module","BUTTON_VARIANT","VARIANT","buttonVariants","rootClassName","ButtonComponent","children","className","dataTestid","disabled","fullWidth","iconOnly","loading","negative","onClick","size","SIZE","variant","type","props","ref","styles","handleClick","jsxs","jsx","Spinner","Button","forwardRef"],"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": "4.6.0",
3
+ "version": "5.1.0",
4
4
  "license": "AGPL-3.0-only",
5
5
  "main": "./dist/button.cjs.js",
6
6
  "types": "./dist/button.d.ts",
@@ -15,10 +15,10 @@
15
15
  "source": "src/button.tsx",
16
16
  "dependencies": {
17
17
  "classnames": "~2.5.0",
18
- "@purpurds/action": "4.6.0",
19
- "@purpurds/icon": "4.6.0",
20
- "@purpurds/tokens": "4.6.0",
21
- "@purpurds/spinner": "4.6.0"
18
+ "@purpurds/action": "5.1.0",
19
+ "@purpurds/icon": "5.1.0",
20
+ "@purpurds/spinner": "5.1.0",
21
+ "@purpurds/tokens": "5.1.0"
22
22
  },
23
23
  "devDependencies": {
24
24
  "@rushstack/eslint-patch": "~1.10.0",
@@ -43,7 +43,7 @@
43
43
  "vite": "~5.2.2",
44
44
  "vitest": "~1.5.0",
45
45
  "@purpurds/component-rig": "1.0.0",
46
- "@purpurds/icon": "4.6.0"
46
+ "@purpurds/icon": "5.1.0"
47
47
  },
48
48
  "scripts": {
49
49
  "build:dev": "vite",
@@ -5,7 +5,7 @@ import type { Meta, StoryObj } from "@storybook/react";
5
5
 
6
6
  import "@purpurds/icon/styles";
7
7
  import "@purpurds/spinner/styles";
8
- import { Button, ButtonVariant, buttonVariants } from "./button";
8
+ import { Button, buttonVariants } from "./button";
9
9
 
10
10
  const meta: Meta<typeof Button> = {
11
11
  title: "Inputs/Button",
@@ -34,15 +34,16 @@ const meta: Meta<typeof Button> = {
34
34
  className: { control: { type: "text" } },
35
35
  children: { control: { type: "text" } },
36
36
  },
37
+ args: { negative: false },
37
38
  };
38
39
  export default meta;
39
40
 
40
41
  type Story = StoryObj<typeof Button>;
41
42
 
42
- const adaptiveBackground = (variant: ButtonVariant) => ({
43
+ const adaptiveBackground = (negative?: boolean) => ({
43
44
  margin: "calc(var(--purpur-spacing-250) * -1)",
44
45
  padding: "var(--purpur-spacing-250)",
45
- background: variant?.includes("negative") ? "var(--purpur-color-purple-900)" : "transparent",
46
+ background: negative ? "var(--purpur-color-purple-900)" : "transparent",
46
47
  });
47
48
 
48
49
  export const Showcase: Story = {
@@ -53,7 +54,7 @@ export const Showcase: Story = {
53
54
  variant: "primary",
54
55
  },
55
56
  render: ({ children, ...args }) => (
56
- <div style={adaptiveBackground(args.variant)}>
57
+ <div style={adaptiveBackground(args.negative)}>
57
58
  <Button {...args}>{children}</Button>
58
59
  </div>
59
60
  ),
@@ -66,7 +67,7 @@ export const ButtonWithLeftIcon: Story = {
66
67
  variant: "primary",
67
68
  },
68
69
  render: ({ children, ...args }) => (
69
- <div style={adaptiveBackground(args.variant)}>
70
+ <div style={adaptiveBackground(args.negative)}>
70
71
  <Button {...args}>
71
72
  <Icon svg={plus} size="xs" /> {children}
72
73
  </Button>
@@ -81,7 +82,7 @@ export const ButtonWithRightIcon: Story = {
81
82
  variant: "primary",
82
83
  },
83
84
  render: ({ children, ...args }) => (
84
- <div style={adaptiveBackground(args.variant)}>
85
+ <div style={adaptiveBackground(args.negative)}>
85
86
  <Button {...args}>
86
87
  {children} <Icon svg={plus} size="xs" />
87
88
  </Button>
@@ -100,7 +101,7 @@ export const ButtonWithOnlyIcon: Story = {
100
101
  ["aria-label"]: "Button label",
101
102
  },
102
103
  render: ({ ...args }) => (
103
- <div style={adaptiveBackground(args.variant)}>
104
+ <div style={adaptiveBackground(args.negative)}>
104
105
  <Button {...args}>
105
106
  <Icon svg={plus} size="xs" />
106
107
  </Button>
package/src/button.tsx CHANGED
@@ -8,11 +8,8 @@ import styles from "./button.module.scss";
8
8
  export const BUTTON_VARIANT = {
9
9
  ...VARIANT,
10
10
  DESTRUCTIVE: "destructive",
11
- DESTRUCTIVE_NEGATIVE: "destructive-negative",
12
11
  TERTIARY_PURPLE: "tertiary-purple",
13
- TERTIARY_PURPLE_NEGATVIE: "tertiary-purple-negative",
14
12
  TEXT: "text",
15
- TEXT_NEGATIVE: "text-negative",
16
13
  } as const;
17
14
 
18
15
  export const buttonVariants = Object.values(BUTTON_VARIANT);
@@ -32,6 +29,7 @@ const ButtonComponent = (
32
29
  fullWidth = false,
33
30
  iconOnly,
34
31
  loading = false,
32
+ negative = false,
35
33
  onClick,
36
34
  size = SIZE.MD,
37
35
  variant,
@@ -43,16 +41,15 @@ const ButtonComponent = (
43
41
  if (iconOnly && variant === "destructive") {
44
42
  return null;
45
43
  }
46
-
47
44
  const classes = c(
48
45
  [
49
46
  styles[rootClassName],
50
- styles[`${rootClassName}--${variant}`],
47
+ styles[`${rootClassName}--${negative ? `${variant}-negative` : variant}`],
51
48
  styles[`${rootClassName}--${size}`],
52
49
  ],
53
50
  {
54
51
  [styles[`${rootClassName}--icon-only`]]: iconOnly,
55
- [styles[`${rootClassName}--negative`]]: variant.endsWith("negative"),
52
+ [styles[`${rootClassName}--negative`]]: negative,
56
53
  [styles[`${rootClassName}--full-width`]]: fullWidth,
57
54
  [styles[`${rootClassName}--disabled`]]: disabled || loading,
58
55
  },
@@ -67,8 +64,6 @@ const ButtonComponent = (
67
64
  }
68
65
  };
69
66
 
70
- const getSpinnerVariant = () => (variant.endsWith("negative") ? "negative-disabled" : "disabled");
71
-
72
67
  return (
73
68
  <button
74
69
  className={classes}
@@ -80,7 +75,9 @@ const ButtonComponent = (
80
75
  onClick={handleClick}
81
76
  {...props}
82
77
  >
83
- {loading && <Spinner size={size === SIZE.LG ? "xs" : "xxs"} variant={getSpinnerVariant()} />}{" "}
78
+ {loading && (
79
+ <Spinner size={size === SIZE.LG ? "xs" : "xxs"} negative={negative} disabled={disabled} />
80
+ )}{" "}
84
81
  {children}
85
82
  </button>
86
83
  );