bonkers-ui 2.0.19 → 2.0.20
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/bonkers.css
CHANGED
|
@@ -39,6 +39,7 @@
|
|
|
39
39
|
--spacing-xxs: 8px;
|
|
40
40
|
--spacing-xs: 12px;
|
|
41
41
|
--spacing-sm: 16px;
|
|
42
|
+
--spacing-smd: 20px;
|
|
42
43
|
--spacing-md: 24px;
|
|
43
44
|
--spacing-lg: 32px;
|
|
44
45
|
--spacing-xl: 40px;
|
|
@@ -141,6 +142,7 @@
|
|
|
141
142
|
--xxs: var(--spacing-xxs);
|
|
142
143
|
--xs: var(--spacing-xs);
|
|
143
144
|
--sm: var(--spacing-sm);
|
|
145
|
+
--smd: var(--spacing-smd);
|
|
144
146
|
--md: var(--spacing-md);
|
|
145
147
|
--lg: var(--spacing-lg);
|
|
146
148
|
--xl: var(--spacing-xl);
|
|
@@ -275,6 +277,7 @@
|
|
|
275
277
|
--spacing-xxs: var(--spacing-xxs);
|
|
276
278
|
--spacing-xs: var(--spacing-xs);
|
|
277
279
|
--spacing-sm: var(--spacing-sm);
|
|
280
|
+
--spacing-smd: var(--spacing-smd);
|
|
278
281
|
--spacing-md: var(--spacing-md);
|
|
279
282
|
--spacing-lg: var(--spacing-lg);
|
|
280
283
|
--spacing-xl: var(--spacing-xl);
|
|
@@ -290,6 +293,7 @@
|
|
|
290
293
|
--min-h-xxs: var(--spacing-xxs);
|
|
291
294
|
--min-h-xs: var(--spacing-xs);
|
|
292
295
|
--min-h-sm: var(--spacing-sm);
|
|
296
|
+
--min-h-smd: var(--spacing-smd);
|
|
293
297
|
--min-h-md: var(--spacing-md);
|
|
294
298
|
--min-h-lg: var(--spacing-lg);
|
|
295
299
|
--min-h-xl: var(--spacing-xl);
|
|
@@ -305,6 +309,7 @@
|
|
|
305
309
|
--max-h-xxs: var(--spacing-xxs);
|
|
306
310
|
--max-h-xs: var(--spacing-xs);
|
|
307
311
|
--max-h-sm: var(--spacing-sm);
|
|
312
|
+
--max-h-smd: var(--spacing-smd);
|
|
308
313
|
--max-h-md: var(--spacing-md);
|
|
309
314
|
--max-h-lg: var(--spacing-lg);
|
|
310
315
|
--max-h-xl: var(--spacing-xl);
|
|
@@ -320,6 +325,7 @@
|
|
|
320
325
|
--min-w-xxs: var(--spacing-xxs);
|
|
321
326
|
--min-w-xs: var(--spacing-xs);
|
|
322
327
|
--min-w-sm: var(--spacing-sm);
|
|
328
|
+
--min-w-smd: var(--spacing-smd);
|
|
323
329
|
--min-w-md: var(--spacing-md);
|
|
324
330
|
--min-w-lg: var(--spacing-lg);
|
|
325
331
|
--min-w-xl: var(--spacing-xl);
|
|
@@ -335,6 +341,7 @@
|
|
|
335
341
|
--max-w-xxs: var(--spacing-xxs);
|
|
336
342
|
--max-w-xs: var(--spacing-xs);
|
|
337
343
|
--max-w-sm: var(--spacing-sm);
|
|
344
|
+
--max-w-smd: var(--spacing-smd);
|
|
338
345
|
--max-w-md: var(--spacing-md);
|
|
339
346
|
--max-w-lg: var(--spacing-lg);
|
|
340
347
|
--max-w-xl: var(--spacing-xl);
|
|
@@ -5,6 +5,7 @@ type TButtonProps = {
|
|
|
5
5
|
size?: EButtonSizes;
|
|
6
6
|
fullWidth?: boolean;
|
|
7
7
|
weight?: EButtonWeight;
|
|
8
|
+
tag?: keyof React.JSX.IntrinsicElements;
|
|
8
9
|
className?: string;
|
|
9
10
|
} & React.HTMLAttributes<HTMLElement> & React.ButtonHTMLAttributes<HTMLElement> & React.AnchorHTMLAttributes<HTMLElement>;
|
|
10
11
|
export declare const UiButton: React.FC<TButtonProps>;
|
|
@@ -1,10 +1,9 @@
|
|
|
1
|
-
import
|
|
2
|
-
import "react";
|
|
1
|
+
import h from "react";
|
|
3
2
|
import { EButtonTypes as r, EButtonSizes as o, EButtonWeight as a } from "./_types.js";
|
|
4
|
-
import
|
|
5
|
-
import '../../assets/UiButton.css';const
|
|
6
|
-
UiButton:
|
|
7
|
-
},
|
|
3
|
+
import g from "classnames";
|
|
4
|
+
import '../../assets/UiButton.css';const m = "_UiButton_1dpbh_1", x = {
|
|
5
|
+
UiButton: m
|
|
6
|
+
}, u = {
|
|
8
7
|
[r.PRIMARY_BRAND]: `
|
|
9
8
|
bg-primary-600
|
|
10
9
|
border
|
|
@@ -237,69 +236,67 @@ import '../../assets/UiButton.css';const g = "_UiButton_1dpbh_1", x = {
|
|
|
237
236
|
disabled:text-secondary-alt-700
|
|
238
237
|
disabled:underline
|
|
239
238
|
`
|
|
240
|
-
},
|
|
241
|
-
background: (e) =>
|
|
242
|
-
border: (e) =>
|
|
243
|
-
},
|
|
239
|
+
}, s = (e) => e === r.PRIMARY_INVERSE || e === r.SECONDARY_INVERSE || e === r.TERTIARY_INVERSE, b = {
|
|
240
|
+
background: (e) => s(e) ? "focus-visible:before:bg-secondary-500" : "focus-visible:before:bg-white",
|
|
241
|
+
border: (e) => s(e) ? "focus-visible:before:border-secondary-alt-400" : "focus-visible:before:border-primary-600"
|
|
242
|
+
}, R = {
|
|
244
243
|
[o.XSMALL]: "px-xs py-xxs rounded-lg focus-visible:before:rounded-xl",
|
|
245
244
|
[o.SMALL]: "px-sm py-xs rounded-xl focus-visible:before:rounded-2xl",
|
|
246
|
-
[o.MEDIUM]: "
|
|
247
|
-
[o.LARGE]: "px-
|
|
248
|
-
},
|
|
245
|
+
[o.MEDIUM]: "py-sm px-smd rounded-xl focus-visible:before:rounded-2xl",
|
|
246
|
+
[o.LARGE]: "px-md py-smd rounded-xl focus-visible:before:rounded-2xl"
|
|
247
|
+
}, f = {
|
|
249
248
|
[a.DEFAULT]: "font-medium",
|
|
250
249
|
[a.BOLD]: "font-bold"
|
|
251
250
|
}, T = ({
|
|
252
251
|
kind: e = r.PRIMARY_BRAND,
|
|
253
252
|
size: i = o.MEDIUM,
|
|
254
|
-
fullWidth:
|
|
255
|
-
disabled:
|
|
253
|
+
fullWidth: t = !1,
|
|
254
|
+
disabled: d = !1,
|
|
256
255
|
children: n,
|
|
257
256
|
weight: c = a.BOLD,
|
|
258
257
|
className: l,
|
|
259
|
-
onClick:
|
|
260
|
-
|
|
261
|
-
|
|
262
|
-
|
|
263
|
-
|
|
264
|
-
|
|
265
|
-
|
|
266
|
-
|
|
267
|
-
|
|
268
|
-
|
|
269
|
-
|
|
270
|
-
|
|
271
|
-
|
|
272
|
-
|
|
273
|
-
|
|
274
|
-
|
|
275
|
-
|
|
276
|
-
|
|
277
|
-
|
|
278
|
-
|
|
279
|
-
|
|
280
|
-
|
|
281
|
-
|
|
282
|
-
|
|
283
|
-
|
|
284
|
-
|
|
285
|
-
|
|
286
|
-
|
|
287
|
-
|
|
288
|
-
|
|
289
|
-
|
|
290
|
-
|
|
291
|
-
|
|
292
|
-
|
|
293
|
-
|
|
294
|
-
|
|
295
|
-
|
|
296
|
-
|
|
297
|
-
|
|
298
|
-
|
|
299
|
-
|
|
300
|
-
|
|
301
|
-
}
|
|
302
|
-
);
|
|
258
|
+
onClick: y,
|
|
259
|
+
tag: v = "button",
|
|
260
|
+
...p
|
|
261
|
+
}) => h.createElement(v, {
|
|
262
|
+
disabled: d,
|
|
263
|
+
onClick: y,
|
|
264
|
+
className: g(
|
|
265
|
+
x.UiButton,
|
|
266
|
+
"cursor-pointer",
|
|
267
|
+
"touch-manipulation",
|
|
268
|
+
"whitespace-nowrap",
|
|
269
|
+
"leading-none",
|
|
270
|
+
"flex",
|
|
271
|
+
"gap-xs",
|
|
272
|
+
"justify-center",
|
|
273
|
+
"items-center",
|
|
274
|
+
"relative",
|
|
275
|
+
"transition-all",
|
|
276
|
+
"focus-visible:before:border-2",
|
|
277
|
+
"focus-visible:before:absolute",
|
|
278
|
+
"focus-visible:before:-translate-x-1/2",
|
|
279
|
+
"focus-visible:before:-translate-y-1/2",
|
|
280
|
+
"focus-visible:before:left-1/2",
|
|
281
|
+
"focus-visible:before:top-1/2",
|
|
282
|
+
"focus-visible:before:inset-0",
|
|
283
|
+
"focus-visible:before:z-[-1]",
|
|
284
|
+
"focus-visible:before:w-[calc(100%+12px)]",
|
|
285
|
+
"focus-visible:before:h-[calc(100%+10px)]",
|
|
286
|
+
b.background(e),
|
|
287
|
+
b.border(e),
|
|
288
|
+
u[e],
|
|
289
|
+
R[i],
|
|
290
|
+
f[c],
|
|
291
|
+
{
|
|
292
|
+
"w-full": t,
|
|
293
|
+
"w-fit": !t,
|
|
294
|
+
"pointer-events-none": d
|
|
295
|
+
},
|
|
296
|
+
l
|
|
297
|
+
),
|
|
298
|
+
...p
|
|
299
|
+
}, n);
|
|
303
300
|
export {
|
|
304
301
|
T as UiButton
|
|
305
302
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"UiButton.js","sources":["../../../src/components/UiButton/UiButton.tsx"],"sourcesContent":["import React from \"react\";\nimport { EButtonSizes, EButtonTypes, EButtonWeight } from \"./_types.ts\";\nimport cx from \"classnames\";\nimport css from \"./UiButton.module.css\";\n\ntype TButtonProps = {\n\tkind?: EButtonTypes;\n\tsize?: EButtonSizes;\n\tfullWidth?: boolean;\n\tweight?: EButtonWeight;\n\tclassName?: string;\n} & React.HTMLAttributes<HTMLElement> &\n\tReact.ButtonHTMLAttributes<HTMLElement> &\n\tReact.AnchorHTMLAttributes<HTMLElement>\n\nconst typeClasses = {\n\t[EButtonTypes.PRIMARY_BRAND]: `\n\t\tbg-primary-600\n\t\tborder\n\t\tborder-primary-600\n\t\tshadow-md\n\t\ttext-white\n\n\t\thover:bg-primary-700\n\t\thover:border-primary-700\n\t\tactive:bg-primary-800\n\t\tactive:border-primary-800\n\t\tdisabled:bg-secondary-alt-300\n\t\tdisabled:border-transparent\n\t`,\n\t[EButtonTypes.PRIMARY_ACCENT]: `\n\t\tbg-primary-800\n\t\tborder\n\t\tborder-primary-800\n\t\tshadow-md\n\t\ttext-white\n\n\t\thover:bg-primary-700\n\t\thover:border-primary-700\n\t\tactive:bg-primary-800\n\t\tactive:border-primary-800\n\t\tactive:text-primary-100\n\t\tdisabled:bg-secondary-alt-300\n\t\tdisabled:border-transparent\n\t`,\n\t[EButtonTypes.PRIMARY_NEUTRAL]: `\n\t\tbg-secondary-500\n\t\tborder\n\t\tborder-secondary-500\n\t\tshadow-md\n\t\ttext-white\n\n\t\thover:bg-secondary-400\n\t\thover:border-secondary-400\n\t\tactive:bg-secondary-500\n\t\tactive:border-secondary-500\n\t\tactive:text-secondary-alt-300\n\t\tdisabled:bg-secondary-alt-300\n\t\tdisabled:border-transparent\n\t`,\n\t[EButtonTypes.PRIMARY_DESTRUCTIVE]: `\n\t\tbg-error-500\n\t\tborder\n\t\tborder-error-500\n\t\tshadow-md\n\t\ttext-white\n\n\t\thover:bg-error-600\n\t\thover:border-error-600\n\t\tactive:bg-error-700\n\t\tactive:border-error-700\n\t\tdisabled:bg-secondary-alt-300\n\t\tdisabled:border-transparent\n\t`,\n\t[EButtonTypes.PRIMARY_INVERSE]: `\n\t\tbg-white\n\t\tborder\n\t\tborder-secondary-500\n\t\tshadow-md\n\t\ttext-secondary-500\n\n\t\thover:border-secondary-400\n\t\thover:text-secondary-400\n\t\tactive:bg-secondary-alt-300\n\t\tdisabled:bg-secondary-alt-700\n\t\tdisabled:border-secondary-alt-700\n\t`,\n\t[EButtonTypes.SECONDARY_BRAND]: `\n\t\tbg-white\n\t\tborder\n\t\tborder-primary-600\n\t\tshadow-md\n\t\ttext-primary-600\n\n\t\thover:bg-primary-50\n\t\thover:border-primary-700\n\t\thover:text-primary-700\n\t\tactive:bg-primary-100\n\t\tactive:border-primary-700\n\t\tactive:text-primary-700\n\t\tdisabled:bg-white\n\t\tdisabled:border-secondary-alt-300\n\t\tdisabled:shadow-none\n\t\tdisabled:text-secondary-alt-300\n\t`,\n\t[EButtonTypes.SECONDARY_ACCENT]: `\n\t\tbg-white\n\t\tborder\n\t\tborder-primary-800\n\t\tshadow-md\n\t\ttext-primary-800\n\n\t\thover:bg-primary-50\n\t\thover:border-primary-700\n\t\thover:text-primary-700\n\t\tactive:bg-primary-100\n\t\tactive:border-primary-800\n\t\tactive:text-primary-800\n\t\tdisabled:bg-secondary-alt-300\n\t\tdisabled:border-transparent\n\t`,\n\t[EButtonTypes.SECONDARY_NEUTRAL]: `\n\t\tbg-white\n\t\tborder\n\t\tborder-secondary-500\n\t\tshadow-md\n\t\ttext-secondary-500\n\n\t\thover:bg-secondary-alt-200\n\t\thover:border-secondary-400\n\t\thover:text-secondary-400\n\t\tactive:bg-secondary-alt-300\n\t\tactive:border-secondary-500\n\t\tactive:text-secondary-500\n\t\tdisabled:bg-secondary-alt-300\n\t\tdisabled:border-transparent\n\t`,\n\t[EButtonTypes.SECONDARY_DESTRUCTIVE]: `\n\t\tbg-white\n\t\tborder\n\t\tborder-error-500\n\t\tshadow-md\n\t\ttext-error-500\n\n\t\thover:bg-error-100\n\t\thover:border-error-600\n\t\thover:text-error-600\n\t\tactive:bg-error-200\n\t\tactive:border-error-700\n\t\tactive:text-error-700\n\t\tdisabled:bg-secondary-alt-300\n\t\tdisabled:border-transparent\n\t`,\n\t[EButtonTypes.SECONDARY_INVERSE]: `\n\t\tbg-transparent\n\t\tborder\n\t\tborder-white\n\t\tshadow-md\n\t\ttext-white\n\n\t\thover:bg-secondary-500\n\t\thover:border-secondary-alt-300\n\t\thover:text-secondary-alt-300\n\t\tactive:bg-secondary-400\n\t\tactive:border-white\n\t\tactive:text-white\n\t\tdisabled:bg-secondary-alt-300\n\t\tdisabled:border-transparent\n\t`,\n\t[EButtonTypes.TERTIARY_BRAND]: `\n\t\tbg-transparent\n\t\tborder\n\t\tborder-transparent\n\t\ttext-primary-600\n\t\tunderline\n\n\t\thover:bg-primary-50\n\t\thover:no-underline\n\t\tactive:bg-primary-100\n\t\tactive:text-primary-700\n\t\tdisabled:bg-transparent\n\t\tdisabled:text-secondary-alt-300\n\t\tdisabled:underline\n\t`,\n\t[EButtonTypes.TERTIARY_ACCENT]: `\n\t\tbg-transparent\n\t\tborder\n\t\tborder-transparent\n\t\ttext-primary-800\n\t\tunderline\n\n\t\thover:bg-primary-50\n\t\thover:no-underline\n\t\thover:text-primary-700\n\t\tactive:bg-primary-100\n\t\tactive:text-primary-800\n\t\tdisabled:bg-transparent\n\t\tdisabled:text-secondary-alt-300\n\t\tdisabled:underline\n\t`,\n\t[EButtonTypes.TERTIARY_NEUTRAL]: `\n\t\tbg-transparent\n\t\tborder\n\t\tborder-transparent\n\t\ttext-secondary-500\n\t\tunderline\n\n\t\thover:bg-secondary-alt-200\n\t\thover:no-underline\n\t\thover:text-secondary-400\n\t\tactive:bg-secondary-alt-300\n\t\tactive:text-secondary-500\n\t\tdisabled:bg-transparent\n\t\tdisabled:text-secondary-alt-300\n\t\tdisabled:underline\n\t`,\n\t[EButtonTypes.TERTIARY_DESTRUCTIVE]: `\n\t\tbg-transparent\n\t\tborder\n\t\tborder-transparent\n\t\ttext-error-500\n\t\tunderline\n\n\t\thover:bg-error-100\n\t\thover:no-underline\n\t\thover:text-error-600\n\t\tactive:bg-error-200\n\t\tactive:text-error-700\n\t\tdisabled:bg-transparent\n\t\tdisabled:text-secondary-alt-300\n\t\tdisabled:underline\n\t`,\n\t[EButtonTypes.TERTIARY_INVERSE]: `\n\t\tbg-transparent\n\t\tborder\n\t\tborder-transparent\n\t\ttext-white\n\t\tunderline\n\n\t\thover:bg-secondary-500\n\t\thover:no-underline\n\t\thover:text-secondary-alt-300\n\t\tactive:bg-secondary-400\n\t\tactive-text-white\n\t\tdisabled:bg-transparent\n\t\tdisabled:text-secondary-alt-700\n\t\tdisabled:underline\n\t`,\n};\n\nconst isInverseType = (type: EButtonTypes): boolean => {\n\treturn (\n\t\ttype === EButtonTypes.PRIMARY_INVERSE\n\t\t|| type === EButtonTypes.SECONDARY_INVERSE\n\t\t|| type === EButtonTypes.TERTIARY_INVERSE\n\t);\n};\n\nconst focusColorClasses = {\n\tbackground: (type: EButtonTypes) =>\n\t\tisInverseType(type)\n\t\t\t? \"focus-visible:before:bg-secondary-500\"\n\t\t\t: \"focus-visible:before:bg-white\",\n\tborder: (type: EButtonTypes) =>\n\t\tisInverseType(type)\n\t\t\t? \"focus-visible:before:border-secondary-alt-400\"\n\t\t\t: \"focus-visible:before:border-primary-600\"\n};\n\nconst sizeClasses = {\n\t[EButtonSizes.XSMALL]: \"px-xs py-xxs rounded-lg focus-visible:before:rounded-xl\",\n\t[EButtonSizes.SMALL]: \"px-sm py-xs rounded-xl focus-visible:before:rounded-2xl\",\n\t[EButtonSizes.MEDIUM]: \"p-sm rounded-xl focus-visible:before:rounded-2xl\",\n\t[EButtonSizes.LARGE]: \"px-lg py-md rounded-xl focus-visible:before:rounded-2xl\",\n};\n\nconst weightClasses = {\n\t[EButtonWeight.DEFAULT]: \"font-medium\",\n\t[EButtonWeight.BOLD]: \"font-bold\",\n};\n\nexport const UiButton: React.FC<TButtonProps> = ({\n\tkind = EButtonTypes.PRIMARY_BRAND,\n\tsize = EButtonSizes.MEDIUM,\n\tfullWidth = false,\n\tdisabled = false,\n\tchildren,\n\tweight = EButtonWeight.BOLD,\n\tclassName,\n\tonClick,\n\t...rest\n}) => {\n\treturn (\n\t\t<button\n\t\t\t{ ...rest }\n\t\t\tonClick={ onClick }\n\t\t\tclassName={ cx(\n\t\t\t\tcss.UiButton,\n\t\t\t\t\"cursor-pointer\",\n\t\t\t\t\"touch-manipulation\",\n\t\t\t\t\"whitespace-nowrap\",\n\t\t\t\t\"leading-none\",\n\t\t\t\t\"flex\",\n\t\t\t\t\"gap-xs\",\n\t\t\t\t\"justify-center\",\n\t\t\t\t\"items-center\",\n\t\t\t\t\"relative\",\n\t\t\t\t\"transition-all\",\n\t\t\t\t\"focus-visible:before:border-2\",\n\t\t\t\t\"focus-visible:before:absolute\",\n\t\t\t\t\"focus-visible:before:-translate-x-1/2\",\n\t\t\t\t\"focus-visible:before:-translate-y-1/2\",\n\t\t\t\t\"focus-visible:before:left-1/2\",\n\t\t\t\t\"focus-visible:before:top-1/2\",\n\t\t\t\t\"focus-visible:before:inset-0\",\n\t\t\t\t\"focus-visible:before:z-[-1]\",\n\t\t\t\t\"focus-visible:before:w-[calc(100%+12px)]\",\n\t\t\t\t\"focus-visible:before:h-[calc(100%+10px)]\",\n\t\t\t\tfocusColorClasses.background(kind),\n\t\t\t\tfocusColorClasses.border(kind),\n\t\t\t\ttypeClasses[kind],\n\t\t\t\tsizeClasses[size],\n\t\t\t\tweightClasses[weight],\n\t\t\t\t{\n\t\t\t\t\t\"w-full\": fullWidth,\n\t\t\t\t\t\"pointer-events-none\": disabled,\n\t\t\t\t},\n\t\t\t\tclassName\n\t\t\t) }\n\t\t\tdisabled={ disabled }\n\t\t>\n\t\t\t{ children }\n\t\t</button>\n\t);\n};\n"],"names":["typeClasses","EButtonTypes","isInverseType","type","focusColorClasses","sizeClasses","EButtonSizes","weightClasses","EButtonWeight","UiButton","kind","size","fullWidth","disabled","children","weight","className","onClick","rest","jsx","cx","css"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"UiButton.js","sources":["../../../src/components/UiButton/UiButton.tsx"],"sourcesContent":["import React from \"react\";\nimport { EButtonSizes, EButtonTypes, EButtonWeight } from \"./_types.ts\";\nimport cx from \"classnames\";\nimport css from \"./UiButton.module.css\";\n\ntype TButtonProps = {\n\tkind?: EButtonTypes;\n\tsize?: EButtonSizes;\n\tfullWidth?: boolean;\n\tweight?: EButtonWeight;\n\ttag?: keyof React.JSX.IntrinsicElements;\n\tclassName?: string;\n} & React.HTMLAttributes<HTMLElement> &\n\tReact.ButtonHTMLAttributes<HTMLElement> &\n\tReact.AnchorHTMLAttributes<HTMLElement>\n\nconst typeClasses = {\n\t[EButtonTypes.PRIMARY_BRAND]: `\n\t\tbg-primary-600\n\t\tborder\n\t\tborder-primary-600\n\t\tshadow-md\n\t\ttext-white\n\n\t\thover:bg-primary-700\n\t\thover:border-primary-700\n\t\tactive:bg-primary-800\n\t\tactive:border-primary-800\n\t\tdisabled:bg-secondary-alt-300\n\t\tdisabled:border-transparent\n\t`,\n\t[EButtonTypes.PRIMARY_ACCENT]: `\n\t\tbg-primary-800\n\t\tborder\n\t\tborder-primary-800\n\t\tshadow-md\n\t\ttext-white\n\n\t\thover:bg-primary-700\n\t\thover:border-primary-700\n\t\tactive:bg-primary-800\n\t\tactive:border-primary-800\n\t\tactive:text-primary-100\n\t\tdisabled:bg-secondary-alt-300\n\t\tdisabled:border-transparent\n\t`,\n\t[EButtonTypes.PRIMARY_NEUTRAL]: `\n\t\tbg-secondary-500\n\t\tborder\n\t\tborder-secondary-500\n\t\tshadow-md\n\t\ttext-white\n\n\t\thover:bg-secondary-400\n\t\thover:border-secondary-400\n\t\tactive:bg-secondary-500\n\t\tactive:border-secondary-500\n\t\tactive:text-secondary-alt-300\n\t\tdisabled:bg-secondary-alt-300\n\t\tdisabled:border-transparent\n\t`,\n\t[EButtonTypes.PRIMARY_DESTRUCTIVE]: `\n\t\tbg-error-500\n\t\tborder\n\t\tborder-error-500\n\t\tshadow-md\n\t\ttext-white\n\n\t\thover:bg-error-600\n\t\thover:border-error-600\n\t\tactive:bg-error-700\n\t\tactive:border-error-700\n\t\tdisabled:bg-secondary-alt-300\n\t\tdisabled:border-transparent\n\t`,\n\t[EButtonTypes.PRIMARY_INVERSE]: `\n\t\tbg-white\n\t\tborder\n\t\tborder-secondary-500\n\t\tshadow-md\n\t\ttext-secondary-500\n\n\t\thover:border-secondary-400\n\t\thover:text-secondary-400\n\t\tactive:bg-secondary-alt-300\n\t\tdisabled:bg-secondary-alt-700\n\t\tdisabled:border-secondary-alt-700\n\t`,\n\t[EButtonTypes.SECONDARY_BRAND]: `\n\t\tbg-white\n\t\tborder\n\t\tborder-primary-600\n\t\tshadow-md\n\t\ttext-primary-600\n\n\t\thover:bg-primary-50\n\t\thover:border-primary-700\n\t\thover:text-primary-700\n\t\tactive:bg-primary-100\n\t\tactive:border-primary-700\n\t\tactive:text-primary-700\n\t\tdisabled:bg-white\n\t\tdisabled:border-secondary-alt-300\n\t\tdisabled:shadow-none\n\t\tdisabled:text-secondary-alt-300\n\t`,\n\t[EButtonTypes.SECONDARY_ACCENT]: `\n\t\tbg-white\n\t\tborder\n\t\tborder-primary-800\n\t\tshadow-md\n\t\ttext-primary-800\n\n\t\thover:bg-primary-50\n\t\thover:border-primary-700\n\t\thover:text-primary-700\n\t\tactive:bg-primary-100\n\t\tactive:border-primary-800\n\t\tactive:text-primary-800\n\t\tdisabled:bg-secondary-alt-300\n\t\tdisabled:border-transparent\n\t`,\n\t[EButtonTypes.SECONDARY_NEUTRAL]: `\n\t\tbg-white\n\t\tborder\n\t\tborder-secondary-500\n\t\tshadow-md\n\t\ttext-secondary-500\n\n\t\thover:bg-secondary-alt-200\n\t\thover:border-secondary-400\n\t\thover:text-secondary-400\n\t\tactive:bg-secondary-alt-300\n\t\tactive:border-secondary-500\n\t\tactive:text-secondary-500\n\t\tdisabled:bg-secondary-alt-300\n\t\tdisabled:border-transparent\n\t`,\n\t[EButtonTypes.SECONDARY_DESTRUCTIVE]: `\n\t\tbg-white\n\t\tborder\n\t\tborder-error-500\n\t\tshadow-md\n\t\ttext-error-500\n\n\t\thover:bg-error-100\n\t\thover:border-error-600\n\t\thover:text-error-600\n\t\tactive:bg-error-200\n\t\tactive:border-error-700\n\t\tactive:text-error-700\n\t\tdisabled:bg-secondary-alt-300\n\t\tdisabled:border-transparent\n\t`,\n\t[EButtonTypes.SECONDARY_INVERSE]: `\n\t\tbg-transparent\n\t\tborder\n\t\tborder-white\n\t\tshadow-md\n\t\ttext-white\n\n\t\thover:bg-secondary-500\n\t\thover:border-secondary-alt-300\n\t\thover:text-secondary-alt-300\n\t\tactive:bg-secondary-400\n\t\tactive:border-white\n\t\tactive:text-white\n\t\tdisabled:bg-secondary-alt-300\n\t\tdisabled:border-transparent\n\t`,\n\t[EButtonTypes.TERTIARY_BRAND]: `\n\t\tbg-transparent\n\t\tborder\n\t\tborder-transparent\n\t\ttext-primary-600\n\t\tunderline\n\n\t\thover:bg-primary-50\n\t\thover:no-underline\n\t\tactive:bg-primary-100\n\t\tactive:text-primary-700\n\t\tdisabled:bg-transparent\n\t\tdisabled:text-secondary-alt-300\n\t\tdisabled:underline\n\t`,\n\t[EButtonTypes.TERTIARY_ACCENT]: `\n\t\tbg-transparent\n\t\tborder\n\t\tborder-transparent\n\t\ttext-primary-800\n\t\tunderline\n\n\t\thover:bg-primary-50\n\t\thover:no-underline\n\t\thover:text-primary-700\n\t\tactive:bg-primary-100\n\t\tactive:text-primary-800\n\t\tdisabled:bg-transparent\n\t\tdisabled:text-secondary-alt-300\n\t\tdisabled:underline\n\t`,\n\t[EButtonTypes.TERTIARY_NEUTRAL]: `\n\t\tbg-transparent\n\t\tborder\n\t\tborder-transparent\n\t\ttext-secondary-500\n\t\tunderline\n\n\t\thover:bg-secondary-alt-200\n\t\thover:no-underline\n\t\thover:text-secondary-400\n\t\tactive:bg-secondary-alt-300\n\t\tactive:text-secondary-500\n\t\tdisabled:bg-transparent\n\t\tdisabled:text-secondary-alt-300\n\t\tdisabled:underline\n\t`,\n\t[EButtonTypes.TERTIARY_DESTRUCTIVE]: `\n\t\tbg-transparent\n\t\tborder\n\t\tborder-transparent\n\t\ttext-error-500\n\t\tunderline\n\n\t\thover:bg-error-100\n\t\thover:no-underline\n\t\thover:text-error-600\n\t\tactive:bg-error-200\n\t\tactive:text-error-700\n\t\tdisabled:bg-transparent\n\t\tdisabled:text-secondary-alt-300\n\t\tdisabled:underline\n\t`,\n\t[EButtonTypes.TERTIARY_INVERSE]: `\n\t\tbg-transparent\n\t\tborder\n\t\tborder-transparent\n\t\ttext-white\n\t\tunderline\n\n\t\thover:bg-secondary-500\n\t\thover:no-underline\n\t\thover:text-secondary-alt-300\n\t\tactive:bg-secondary-400\n\t\tactive-text-white\n\t\tdisabled:bg-transparent\n\t\tdisabled:text-secondary-alt-700\n\t\tdisabled:underline\n\t`,\n};\n\nconst isInverseType = (type: EButtonTypes): boolean => {\n\treturn (\n\t\ttype === EButtonTypes.PRIMARY_INVERSE\n\t\t|| type === EButtonTypes.SECONDARY_INVERSE\n\t\t|| type === EButtonTypes.TERTIARY_INVERSE\n\t);\n};\n\nconst focusColorClasses = {\n\tbackground: (type: EButtonTypes) =>\n\t\tisInverseType(type)\n\t\t\t? \"focus-visible:before:bg-secondary-500\"\n\t\t\t: \"focus-visible:before:bg-white\",\n\tborder: (type: EButtonTypes) =>\n\t\tisInverseType(type)\n\t\t\t? \"focus-visible:before:border-secondary-alt-400\"\n\t\t\t: \"focus-visible:before:border-primary-600\"\n};\n\nconst sizeClasses = {\n\t[EButtonSizes.XSMALL]: \"px-xs py-xxs rounded-lg focus-visible:before:rounded-xl\",\n\t[EButtonSizes.SMALL]: \"px-sm py-xs rounded-xl focus-visible:before:rounded-2xl\",\n\t[EButtonSizes.MEDIUM]: \"py-sm px-smd rounded-xl focus-visible:before:rounded-2xl\",\n\t[EButtonSizes.LARGE]: \"px-md py-smd rounded-xl focus-visible:before:rounded-2xl\",\n};\n\nconst weightClasses = {\n\t[EButtonWeight.DEFAULT]: \"font-medium\",\n\t[EButtonWeight.BOLD]: \"font-bold\",\n};\n\nexport const UiButton: React.FC<TButtonProps> = ({\n\tkind = EButtonTypes.PRIMARY_BRAND,\n\tsize = EButtonSizes.MEDIUM,\n\tfullWidth = false,\n\tdisabled = false,\n\tchildren,\n\tweight = EButtonWeight.BOLD,\n\tclassName,\n\tonClick,\n\ttag = \"button\",\n\t...rest\n}) => {\n\treturn React.createElement(tag, {\n\t\tdisabled,\n\t\tonClick,\n\t\tclassName: cx(\n\t\t\tcss.UiButton,\n\t\t\t\"cursor-pointer\",\n\t\t\t\"touch-manipulation\",\n\t\t\t\"whitespace-nowrap\",\n\t\t\t\"leading-none\",\n\t\t\t\"flex\",\n\t\t\t\"gap-xs\",\n\t\t\t\"justify-center\",\n\t\t\t\"items-center\",\n\t\t\t\"relative\",\n\t\t\t\"transition-all\",\n\t\t\t\"focus-visible:before:border-2\",\n\t\t\t\"focus-visible:before:absolute\",\n\t\t\t\"focus-visible:before:-translate-x-1/2\",\n\t\t\t\"focus-visible:before:-translate-y-1/2\",\n\t\t\t\"focus-visible:before:left-1/2\",\n\t\t\t\"focus-visible:before:top-1/2\",\n\t\t\t\"focus-visible:before:inset-0\",\n\t\t\t\"focus-visible:before:z-[-1]\",\n\t\t\t\"focus-visible:before:w-[calc(100%+12px)]\",\n\t\t\t\"focus-visible:before:h-[calc(100%+10px)]\",\n\t\t\tfocusColorClasses.background(kind),\n\t\t\tfocusColorClasses.border(kind),\n\t\t\ttypeClasses[kind],\n\t\t\tsizeClasses[size],\n\t\t\tweightClasses[weight],\n\t\t\t{\n\t\t\t\t\"w-full\": fullWidth,\n\t\t\t\t\"w-fit\": !fullWidth,\n\t\t\t\t\"pointer-events-none\": disabled,\n\t\t\t},\n\t\t\tclassName\n\t\t),\n\t\t...rest\n\t}, children);\n};\n"],"names":["typeClasses","EButtonTypes","isInverseType","type","focusColorClasses","sizeClasses","EButtonSizes","weightClasses","EButtonWeight","UiButton","kind","size","fullWidth","disabled","children","weight","className","onClick","tag","rest","React","cx","css"],"mappings":"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"}
|