sanitas-ui-design-system 1.1.0 → 1.1.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/Button-DZGHhKoc.js +73 -0
- package/dist/Button-DZGHhKoc.js.map +1 -0
- package/dist/assets/Button.css +1 -1
- package/dist/index.js +1 -1
- package/dist/styles/index.css +1 -1
- package/dist/ui/components/Button/Button.d.ts +3 -1
- package/dist/ui/components/Button/Button.d.ts.map +1 -1
- package/dist/ui/index.js +1 -1
- package/package.json +1 -1
- package/dist/Button-3zP54AO8.js +0 -60
- package/dist/Button-3zP54AO8.js.map +0 -1
|
@@ -1,9 +1,11 @@
|
|
|
1
1
|
import { default as React } from 'react';
|
|
2
|
-
export type ButtonVariant = 'primary' | 'secondary' | 'success' | 'danger' | 'outline' | 'ghost' | 'white' | 'icon';
|
|
2
|
+
export type ButtonVariant = 'primary' | 'secondary' | 'success' | 'danger' | 'outline' | 'ghost' | 'white' | 'icon' | 'static';
|
|
3
3
|
export type ButtonSize = 'small' | 'medium' | 'large';
|
|
4
|
+
export type ButtonRounded = 'none' | 'sm' | 'base' | 'md' | 'lg' | 'xl' | '2xl' | '3xl' | 'full';
|
|
4
5
|
type BaseButtonProps = {
|
|
5
6
|
variant?: ButtonVariant;
|
|
6
7
|
size?: ButtonSize;
|
|
8
|
+
rounded?: ButtonRounded;
|
|
7
9
|
fullWidth?: boolean;
|
|
8
10
|
loading?: boolean;
|
|
9
11
|
children: React.ReactNode;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Button.d.ts","sourceRoot":"","sources":["../../../../src/ui/components/Button/Button.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAA;AACzB,OAAO,cAAc,CAAA;AAiBrB,MAAM,MAAM,aAAa,GAAG,SAAS,GAAG,WAAW,GAAG,SAAS,GAAG,QAAQ,GAAG,SAAS,GAAG,OAAO,GAAG,OAAO,GAAG,MAAM,CAAA;
|
|
1
|
+
{"version":3,"file":"Button.d.ts","sourceRoot":"","sources":["../../../../src/ui/components/Button/Button.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAA;AACzB,OAAO,cAAc,CAAA;AAiBrB,MAAM,MAAM,aAAa,GAAG,SAAS,GAAG,WAAW,GAAG,SAAS,GAAG,QAAQ,GAAG,SAAS,GAAG,OAAO,GAAG,OAAO,GAAG,MAAM,GAAG,QAAQ,CAAA;AAC9H,MAAM,MAAM,UAAU,GAAG,OAAO,GAAG,QAAQ,GAAG,OAAO,CAAA;AACrD,MAAM,MAAM,aAAa,GAAG,MAAM,GAAG,IAAI,GAAG,MAAM,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,KAAK,GAAG,KAAK,GAAG,MAAM,CAAA;AAEhG,KAAK,eAAe,GAAG;IACrB,OAAO,CAAC,EAAE,aAAa,CAAA;IACvB,IAAI,CAAC,EAAE,UAAU,CAAA;IACjB,OAAO,CAAC,EAAE,aAAa,CAAA;IACvB,SAAS,CAAC,EAAE,OAAO,CAAA;IACnB,OAAO,CAAC,EAAE,OAAO,CAAA;IACjB,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAA;IACzB,IAAI,CAAC,EAAE,KAAK,CAAC,SAAS,CAAA;IACtB,SAAS,CAAC,EAAE,MAAM,CAAA;CACnB,CAAA;AAED,KAAK,cAAc,GAAG,eAAe,GACnC,IAAI,CAAC,KAAK,CAAC,oBAAoB,CAAC,iBAAiB,CAAC,EAAE,MAAM,eAAe,CAAC,GAAG;IAC3E,IAAI,CAAC,EAAE,KAAK,CAAA;IACZ,EAAE,CAAC,EAAE,KAAK,CAAA;CACX,CAAA;AAEH,KAAK,YAAY,GAAG,eAAe,GACjC,IAAI,CAAC,KAAK,CAAC,oBAAoB,CAAC,iBAAiB,CAAC,EAAE,MAAM,eAAe,CAAC,GAAG;IAC3E,IAAI,EAAE,MAAM,CAAA;IACZ,EAAE,CAAC,EAAE,KAAK,CAAA;CACX,CAAA;AAEH,KAAK,kBAAkB,GAAG,eAAe,GAAG;IAC1C,EAAE,EAAE,MAAM,CAAA;IACV,IAAI,CAAC,EAAE,KAAK,CAAA;CACb,CAAA;AAED,MAAM,MAAM,WAAW,GAAG,cAAc,GAAG,YAAY,GAAG,kBAAkB,CAAA;AA+G5E,eAAO,MAAM,MAAM,EAAE,KAAK,CAAC,EAAE,CAAC,WAAW,CA+BxC,CAAA"}
|
package/dist/ui/index.js
CHANGED
package/package.json
CHANGED
package/dist/Button-3zP54AO8.js
DELETED
|
@@ -1,60 +0,0 @@
|
|
|
1
|
-
import { jsx as o, jsxs as A, Fragment as S } from "react/jsx-runtime";
|
|
2
|
-
const f = () => {
|
|
3
|
-
try {
|
|
4
|
-
return require("@tanstack/react-router").Link;
|
|
5
|
-
} catch {
|
|
6
|
-
return null;
|
|
7
|
-
}
|
|
8
|
-
}, d = f(), B = "primary", _ = "medium", E = "button", N = "buttonIcon", g = {
|
|
9
|
-
primary: "isPrimary",
|
|
10
|
-
secondary: "isSecondary",
|
|
11
|
-
success: "isSuccess",
|
|
12
|
-
danger: "isDanger",
|
|
13
|
-
outline: "isOutline",
|
|
14
|
-
ghost: "isGhost",
|
|
15
|
-
white: "isWhite",
|
|
16
|
-
icon: "isIcon"
|
|
17
|
-
}, k = {
|
|
18
|
-
small: "isSmall",
|
|
19
|
-
medium: "isMedium",
|
|
20
|
-
large: "isLarge"
|
|
21
|
-
}, R = (n, t, e, r, s) => [
|
|
22
|
-
E,
|
|
23
|
-
g[n],
|
|
24
|
-
k[t],
|
|
25
|
-
e && "isFullWidth",
|
|
26
|
-
r && "isLoading",
|
|
27
|
-
s
|
|
28
|
-
].filter(Boolean).join(" "), P = ({ icon: n, children: t }) => /* @__PURE__ */ A(S, { children: [
|
|
29
|
-
n && /* @__PURE__ */ o("span", { className: N, children: n }),
|
|
30
|
-
t
|
|
31
|
-
] }), b = (n) => "to" in n && !!n.to, C = (n) => "href" in n && !!n.href, I = (n, t, e) => d ? /* @__PURE__ */ o(d, { to: n, className: t, children: e }) : (process.env.NODE_ENV === "development" && console.warn('Button: La prop "to" requiere @tanstack/react-router instalado'), null), y = (n, t, e, r) => {
|
|
32
|
-
const { target: s, rel: i, ...a } = r;
|
|
33
|
-
return /* @__PURE__ */ o("a", { href: n, className: t, target: s, rel: i, ...a, children: e });
|
|
34
|
-
}, T = (n, t, e, r, s) => /* @__PURE__ */ o("button", { className: n, disabled: e || r, ...s, children: t }), D = (n) => {
|
|
35
|
-
const {
|
|
36
|
-
variant: t = B,
|
|
37
|
-
size: e = _,
|
|
38
|
-
fullWidth: r = !1,
|
|
39
|
-
loading: s = !1,
|
|
40
|
-
children: i,
|
|
41
|
-
icon: a,
|
|
42
|
-
className: m = "",
|
|
43
|
-
...u
|
|
44
|
-
} = n, c = R(t, e, r, s, m), l = /* @__PURE__ */ o(P, { icon: a, children: i });
|
|
45
|
-
if (b(n))
|
|
46
|
-
return I(n.to, c, l);
|
|
47
|
-
if (C(n))
|
|
48
|
-
return y(
|
|
49
|
-
n.href,
|
|
50
|
-
c,
|
|
51
|
-
l,
|
|
52
|
-
u
|
|
53
|
-
);
|
|
54
|
-
const { disabled: L, ...h } = u;
|
|
55
|
-
return T(c, l, L || !1, s, h);
|
|
56
|
-
};
|
|
57
|
-
export {
|
|
58
|
-
D as B
|
|
59
|
-
};
|
|
60
|
-
//# sourceMappingURL=Button-3zP54AO8.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"Button-3zP54AO8.js","sources":["../src/ui/components/Button/Button.tsx"],"sourcesContent":["import React from 'react'\r\nimport './Button.css'\r\n\r\nconst loadReactRouterLink = (): any => {\r\n try {\r\n return require('@tanstack/react-router').Link\r\n } catch {\r\n return null\r\n }\r\n}\r\n\r\nconst RouterLink = loadReactRouterLink()\r\n\r\nconst DEFAULT_VARIANT = 'primary'\r\nconst DEFAULT_SIZE = 'medium'\r\nconst BASE_BUTTON_CLASS = 'button'\r\nconst ICON_WRAPPER_CLASS = 'buttonIcon'\r\n\r\nexport type ButtonVariant = 'primary' | 'secondary' | 'success' | 'danger' | 'outline' | 'ghost' | 'white' | 'icon'\r\nexport type ButtonSize = 'small' | 'medium' | 'large'\r\n\r\ntype BaseButtonProps = {\r\n variant?: ButtonVariant\r\n size?: ButtonSize\r\n fullWidth?: boolean\r\n loading?: boolean\r\n children: React.ReactNode\r\n icon?: React.ReactNode\r\n className?: string\r\n}\r\n\r\ntype ButtonAsButton = BaseButtonProps &\r\n Omit<React.ButtonHTMLAttributes<HTMLButtonElement>, keyof BaseButtonProps> & {\r\n href?: never\r\n to?: never\r\n }\r\n\r\ntype ButtonAsLink = BaseButtonProps &\r\n Omit<React.AnchorHTMLAttributes<HTMLAnchorElement>, keyof BaseButtonProps> & {\r\n href: string\r\n to?: never\r\n }\r\n\r\ntype ButtonAsRouterLink = BaseButtonProps & {\r\n to: string\r\n href?: never\r\n}\r\n\r\nexport type ButtonProps = ButtonAsButton | ButtonAsLink | ButtonAsRouterLink\r\n\r\nconst VARIANT_CLASS_MAP: Record<ButtonVariant, string> = {\r\n primary: 'isPrimary',\r\n secondary: 'isSecondary',\r\n success: 'isSuccess',\r\n danger: 'isDanger',\r\n outline: 'isOutline',\r\n ghost: 'isGhost',\r\n white: 'isWhite',\r\n icon: 'isIcon',\r\n}\r\n\r\nconst SIZE_CLASS_MAP: Record<ButtonSize, string> = {\r\n small: 'isSmall',\r\n medium: 'isMedium',\r\n large: 'isLarge',\r\n}\r\n\r\nconst buildClassNames = (\r\n variant: ButtonVariant,\r\n size: ButtonSize,\r\n fullWidth: boolean,\r\n loading: boolean,\r\n className: string\r\n): string => {\r\n const classes = [\r\n BASE_BUTTON_CLASS,\r\n VARIANT_CLASS_MAP[variant],\r\n SIZE_CLASS_MAP[size],\r\n fullWidth && 'isFullWidth',\r\n loading && 'isLoading',\r\n className,\r\n ]\r\n\r\n return classes.filter(Boolean).join(' ')\r\n}\r\n\r\nconst ButtonContent: React.FC<{ icon?: React.ReactNode; children: React.ReactNode }> = ({ icon, children }) => (\r\n <>\r\n {icon && <span className={ICON_WRAPPER_CLASS}>{icon}</span>}\r\n {children}\r\n </>\r\n)\r\n\r\nconst isRouterLinkButton = (props: ButtonProps): props is ButtonAsRouterLink => {\r\n return 'to' in props && Boolean(props.to)\r\n}\r\n\r\nconst isExternalLinkButton = (props: ButtonProps): props is ButtonAsLink => {\r\n return 'href' in props && Boolean(props.href)\r\n}\r\n\r\nconst renderRouterLink = (to: string, className: string, content: React.ReactNode) => {\r\n if (!RouterLink) {\r\n if (process.env.NODE_ENV === 'development') {\r\n console.warn('Button: La prop \"to\" requiere @tanstack/react-router instalado')\r\n }\r\n return null\r\n }\r\n\r\n return (\r\n <RouterLink to={to} className={className}>\r\n {content}\r\n </RouterLink>\r\n )\r\n}\r\n\r\nconst renderExternalLink = (\r\n href: string,\r\n className: string,\r\n content: React.ReactNode,\r\n linkProps: React.AnchorHTMLAttributes<HTMLAnchorElement>\r\n) => {\r\n const { target, rel, ...restLinkProps } = linkProps\r\n return (\r\n <a href={href} className={className} target={target} rel={rel} {...restLinkProps}>\r\n {content}\r\n </a>\r\n )\r\n}\r\n\r\nconst renderButton = (\r\n className: string,\r\n content: React.ReactNode,\r\n disabled: boolean,\r\n loading: boolean,\r\n buttonProps: React.ButtonHTMLAttributes<HTMLButtonElement>\r\n) => {\r\n return (\r\n <button className={className} disabled={disabled || loading} {...buttonProps}>\r\n {content}\r\n </button>\r\n )\r\n}\r\n\r\nexport const Button: React.FC<ButtonProps> = (props) => {\r\n const {\r\n variant = DEFAULT_VARIANT,\r\n size = DEFAULT_SIZE,\r\n fullWidth = false,\r\n loading = false,\r\n children,\r\n icon,\r\n className = '',\r\n ...restProps\r\n } = props\r\n\r\n const classNames = buildClassNames(variant, size, fullWidth, loading, className)\r\n const content = <ButtonContent icon={icon}>{children}</ButtonContent>\r\n\r\n if (isRouterLinkButton(props)) {\r\n return renderRouterLink(props.to, classNames, content)\r\n }\r\n\r\n if (isExternalLinkButton(props)) {\r\n return renderExternalLink(\r\n props.href,\r\n classNames,\r\n content,\r\n restProps as React.AnchorHTMLAttributes<HTMLAnchorElement>\r\n )\r\n }\r\n\r\n const { disabled, ...buttonProps } = restProps as React.ButtonHTMLAttributes<HTMLButtonElement>\r\n return renderButton(classNames, content, disabled || false, loading, buttonProps)\r\n}\r\n"],"names":["loadReactRouterLink","RouterLink","DEFAULT_VARIANT","DEFAULT_SIZE","BASE_BUTTON_CLASS","ICON_WRAPPER_CLASS","VARIANT_CLASS_MAP","SIZE_CLASS_MAP","buildClassNames","variant","size","fullWidth","loading","className","ButtonContent","icon","children","jsxs","Fragment","jsx","isRouterLinkButton","props","isExternalLinkButton","renderRouterLink","to","content","renderExternalLink","href","linkProps","target","rel","restLinkProps","renderButton","disabled","buttonProps","Button","restProps","classNames"],"mappings":";AAGA,MAAMA,IAAsB,MAAW;AACrC,MAAI;AACF,WAAO,QAAQ,wBAAwB,EAAE;AAAA,EAC3C,QAAQ;AACN,WAAO;AAAA,EACT;AACF,GAEMC,IAAaD,EAAA,GAEbE,IAAkB,WAClBC,IAAe,UACfC,IAAoB,UACpBC,IAAqB,cAkCrBC,IAAmD;AAAA,EACvD,SAAS;AAAA,EACT,WAAW;AAAA,EACX,SAAS;AAAA,EACT,QAAQ;AAAA,EACR,SAAS;AAAA,EACT,OAAO;AAAA,EACP,OAAO;AAAA,EACP,MAAM;AACR,GAEMC,IAA6C;AAAA,EACjD,OAAO;AAAA,EACP,QAAQ;AAAA,EACR,OAAO;AACT,GAEMC,IAAkB,CACtBC,GACAC,GACAC,GACAC,GACAC,MAEgB;AAAA,EACdT;AAAA,EACAE,EAAkBG,CAAO;AAAA,EACzBF,EAAeG,CAAI;AAAA,EACnBC,KAAa;AAAA,EACbC,KAAW;AAAA,EACXC;AAAA,EAGa,OAAO,OAAO,EAAE,KAAK,GAAG,GAGnCC,IAAiF,CAAC,EAAE,MAAAC,GAAM,UAAAC,EAAA,MAC9F,gBAAAC,EAAAC,GAAA,EACG,UAAA;AAAA,EAAAH,KAAQ,gBAAAI,EAAC,QAAA,EAAK,WAAWd,GAAqB,UAAAU,GAAK;AAAA,EACnDC;AAAA,GACH,GAGII,IAAqB,CAACC,MACnB,QAAQA,KAAS,EAAQA,EAAM,IAGlCC,IAAuB,CAACD,MACrB,UAAUA,KAAS,EAAQA,EAAM,MAGpCE,IAAmB,CAACC,GAAYX,GAAmBY,MAClDxB,IAQH,gBAAAkB,EAAClB,GAAA,EAAW,IAAAuB,GAAQ,WAAAX,GACjB,UAAAY,GACH,KATI,QAAQ,IAAI,aAAa,iBAC3B,QAAQ,KAAK,gEAAgE,GAExE,OAULC,IAAqB,CACzBC,GACAd,GACAY,GACAG,MACG;AACH,QAAM,EAAE,QAAAC,GAAQ,KAAAC,GAAK,GAAGC,MAAkBH;AAC1C,SACE,gBAAAT,EAAC,OAAE,MAAAQ,GAAY,WAAAd,GAAsB,QAAAgB,GAAgB,KAAAC,GAAW,GAAGC,GAChE,UAAAN,EAAA,CACH;AAEJ,GAEMO,IAAe,CACnBnB,GACAY,GACAQ,GACArB,GACAsB,MAGE,gBAAAf,EAAC,YAAO,WAAAN,GAAsB,UAAUoB,KAAYrB,GAAU,GAAGsB,GAC9D,UAAAT,EAAA,CACH,GAISU,IAAgC,CAACd,MAAU;AACtD,QAAM;AAAA,IACJ,SAAAZ,IAAUP;AAAA,IACV,MAAAQ,IAAOP;AAAA,IACP,WAAAQ,IAAY;AAAA,IACZ,SAAAC,IAAU;AAAA,IACV,UAAAI;AAAA,IACA,MAAAD;AAAA,IACA,WAAAF,IAAY;AAAA,IACZ,GAAGuB;AAAA,EAAA,IACDf,GAEEgB,IAAa7B,EAAgBC,GAASC,GAAMC,GAAWC,GAASC,CAAS,GACzEY,IAAU,gBAAAN,EAACL,GAAA,EAAc,MAAAC,GAAa,UAAAC,EAAA,CAAS;AAErD,MAAII,EAAmBC,CAAK;AAC1B,WAAOE,EAAiBF,EAAM,IAAIgB,GAAYZ,CAAO;AAGvD,MAAIH,EAAqBD,CAAK;AAC5B,WAAOK;AAAA,MACLL,EAAM;AAAA,MACNgB;AAAA,MACAZ;AAAA,MACAW;AAAA,IAAA;AAIJ,QAAM,EAAE,UAAAH,GAAU,GAAGC,EAAA,IAAgBE;AACrC,SAAOJ,EAAaK,GAAYZ,GAASQ,KAAY,IAAOrB,GAASsB,CAAW;AAClF;"}
|