@soyfri/shared-library 2.0.0-beta.28 → 2.0.0-beta.29
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/Spinner-B6sThC1p.js +74 -0
- package/Spinner-B6sThC1p.js.map +1 -0
- package/Spinner-D7qRmNS9.cjs +73 -0
- package/Spinner-D7qRmNS9.cjs.map +1 -0
- package/components/Spinner/Spinner.cjs +6 -0
- package/components/Spinner/Spinner.cjs.map +1 -0
- package/components/Spinner/Spinner.d.ts +26 -0
- package/components/Spinner/Spinner.js +6 -0
- package/components/Spinner/Spinner.js.map +1 -0
- package/components/Spinner/index.d.ts +2 -0
- package/components/Spinner.d.ts +6 -0
- package/index.cjs +2 -0
- package/index.cjs.map +1 -1
- package/index.d.ts +2 -0
- package/index.js +10 -8
- package/index.js.map +1 -1
- package/package.json +7 -1
|
@@ -0,0 +1,74 @@
|
|
|
1
|
+
var __defProp = Object.defineProperty;
|
|
2
|
+
var __getOwnPropSymbols = Object.getOwnPropertySymbols;
|
|
3
|
+
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
4
|
+
var __propIsEnum = Object.prototype.propertyIsEnumerable;
|
|
5
|
+
var __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
|
|
6
|
+
var __spreadValues = (a, b) => {
|
|
7
|
+
for (var prop in b || (b = {}))
|
|
8
|
+
if (__hasOwnProp.call(b, prop))
|
|
9
|
+
__defNormalProp(a, prop, b[prop]);
|
|
10
|
+
if (__getOwnPropSymbols)
|
|
11
|
+
for (var prop of __getOwnPropSymbols(b)) {
|
|
12
|
+
if (__propIsEnum.call(b, prop))
|
|
13
|
+
__defNormalProp(a, prop, b[prop]);
|
|
14
|
+
}
|
|
15
|
+
return a;
|
|
16
|
+
};
|
|
17
|
+
import { jsx, jsxs } from "react/jsx-runtime";
|
|
18
|
+
import { Box, Typography, CircularProgress } from "@mui/material";
|
|
19
|
+
const sizeMap = {
|
|
20
|
+
sm: 20,
|
|
21
|
+
md: 40,
|
|
22
|
+
lg: 56
|
|
23
|
+
};
|
|
24
|
+
const resolveSize = (size) => typeof size === "number" ? size : sizeMap[size];
|
|
25
|
+
function Spinner({
|
|
26
|
+
size = "md",
|
|
27
|
+
color = "primary",
|
|
28
|
+
thickness,
|
|
29
|
+
centered = false,
|
|
30
|
+
label,
|
|
31
|
+
sx,
|
|
32
|
+
className,
|
|
33
|
+
"aria-label": ariaLabel = "Cargando"
|
|
34
|
+
}) {
|
|
35
|
+
const px = resolveSize(size);
|
|
36
|
+
const spinner = /* @__PURE__ */ jsx(
|
|
37
|
+
CircularProgress,
|
|
38
|
+
{
|
|
39
|
+
size: px,
|
|
40
|
+
color,
|
|
41
|
+
thickness,
|
|
42
|
+
role: "status",
|
|
43
|
+
"aria-label": ariaLabel,
|
|
44
|
+
sx: centered || label ? void 0 : sx
|
|
45
|
+
}
|
|
46
|
+
);
|
|
47
|
+
if (!centered && !label) {
|
|
48
|
+
return /* @__PURE__ */ jsx(Box, { component: "span", className, children: spinner });
|
|
49
|
+
}
|
|
50
|
+
return /* @__PURE__ */ jsxs(
|
|
51
|
+
Box,
|
|
52
|
+
{
|
|
53
|
+
className,
|
|
54
|
+
sx: [
|
|
55
|
+
__spreadValues({
|
|
56
|
+
display: "flex",
|
|
57
|
+
flexDirection: "column",
|
|
58
|
+
alignItems: "center",
|
|
59
|
+
justifyContent: "center",
|
|
60
|
+
gap: 1.5
|
|
61
|
+
}, centered && { width: "100%", minHeight: 120 }),
|
|
62
|
+
...Array.isArray(sx) ? sx : sx ? [sx] : []
|
|
63
|
+
],
|
|
64
|
+
children: [
|
|
65
|
+
spinner,
|
|
66
|
+
label != null && /* @__PURE__ */ jsx(Typography, { variant: "body2", sx: { color: "text.secondary" }, children: label })
|
|
67
|
+
]
|
|
68
|
+
}
|
|
69
|
+
);
|
|
70
|
+
}
|
|
71
|
+
export {
|
|
72
|
+
Spinner as S
|
|
73
|
+
};
|
|
74
|
+
//# sourceMappingURL=Spinner-B6sThC1p.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Spinner-B6sThC1p.js","sources":["../src/components/Spinner/Spinner.tsx"],"sourcesContent":["import { type ReactNode } from 'react';\nimport { Box, CircularProgress, Typography } from '@mui/material';\nimport type { SxProps, Theme } from '@mui/material/styles';\n\nexport type SpinnerSize = 'sm' | 'md' | 'lg' | number;\n\nexport type SpinnerColor =\n | 'primary'\n | 'secondary'\n | 'inherit'\n | 'error'\n | 'info'\n | 'success'\n | 'warning';\n\nexport interface SpinnerProps {\n /** Tamaño: `sm`=20, `md`=40, `lg`=56, o un número de px. Default: `md`. */\n size?: SpinnerSize;\n /** Color del indicador. Default: `primary`. */\n color?: SpinnerColor;\n /** Grosor del trazo. Default: 3.6 (default de MUI). */\n thickness?: number;\n /**\n * Si `true`, centra el spinner en un contenedor flex de ancho completo.\n * Útil para estados de carga de página/sección.\n */\n centered?: boolean;\n /** Texto opcional debajo del spinner. */\n label?: ReactNode;\n /** sx del contenedor (o del propio spinner si no hay `centered`/`label`). */\n sx?: SxProps<Theme>;\n className?: string;\n /** Texto accesible. Default: \"Cargando\". */\n 'aria-label'?: string;\n}\n\nconst sizeMap: Record<Exclude<SpinnerSize, number>, number> = {\n sm: 20,\n md: 40,\n lg: 56,\n};\n\nconst resolveSize = (size: SpinnerSize): number =>\n typeof size === 'number' ? size : sizeMap[size];\n\nexport function Spinner({\n size = 'md',\n color = 'primary',\n thickness,\n centered = false,\n label,\n sx,\n className,\n 'aria-label': ariaLabel = 'Cargando',\n}: SpinnerProps) {\n const px = resolveSize(size);\n\n const spinner = (\n <CircularProgress\n size={px}\n color={color}\n thickness={thickness}\n role=\"status\"\n aria-label={ariaLabel}\n // Cuando no hay contenedor (ni centered ni label), el sx va al spinner.\n sx={centered || label ? undefined : sx}\n />\n );\n\n if (!centered && !label) {\n return <Box component=\"span\" className={className}>{spinner}</Box>;\n }\n\n return (\n <Box\n className={className}\n sx={[\n {\n display: 'flex',\n flexDirection: 'column',\n alignItems: 'center',\n justifyContent: 'center',\n gap: 1.5,\n ...(centered && { width: '100%', minHeight: 120 }),\n },\n ...(Array.isArray(sx) ? sx : sx ? [sx] : []),\n ]}\n >\n {spinner}\n {label != null && (\n <Typography variant=\"body2\" sx={{ color: 'text.secondary' }}>\n {label}\n </Typography>\n )}\n </Box>\n );\n}\n\nexport default Spinner;\n"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;AAoCA,MAAM,UAAwD;AAAA,EAC5D,IAAI;AAAA,EACJ,IAAI;AAAA,EACJ,IAAI;AACN;AAEA,MAAM,cAAc,CAAC,SACnB,OAAO,SAAS,WAAW,OAAO,QAAQ,IAAI;AAEzC,SAAS,QAAQ;AAAA,EACtB,OAAO;AAAA,EACP,QAAQ;AAAA,EACR;AAAA,EACA,WAAW;AAAA,EACX;AAAA,EACA;AAAA,EACA;AAAA,EACA,cAAc,YAAY;AAC5B,GAAiB;AACf,QAAM,KAAK,YAAY,IAAI;AAE3B,QAAM,UACJ;AAAA,IAAC;AAAA,IAAA;AAAA,MACC,MAAM;AAAA,MACN;AAAA,MACA;AAAA,MACA,MAAK;AAAA,MACL,cAAY;AAAA,MAEZ,IAAI,YAAY,QAAQ,SAAY;AAAA,IAAA;AAAA,EAAA;AAIxC,MAAI,CAAC,YAAY,CAAC,OAAO;AACvB,WAAO,oBAAC,KAAA,EAAI,WAAU,QAAO,WAAuB,UAAA,SAAQ;AAAA,EAC9D;AAEA,SACE;AAAA,IAAC;AAAA,IAAA;AAAA,MACC;AAAA,MACA,IAAI;AAAA,QACF;AAAA,UACE,SAAS;AAAA,UACT,eAAe;AAAA,UACf,YAAY;AAAA,UACZ,gBAAgB;AAAA,UAChB,KAAK;AAAA,WACD,YAAY,EAAE,OAAO,QAAQ,WAAW,IAAA;AAAA,QAE9C,GAAI,MAAM,QAAQ,EAAE,IAAI,KAAK,KAAK,CAAC,EAAE,IAAI,CAAA;AAAA,MAAC;AAAA,MAG3C,UAAA;AAAA,QAAA;AAAA,QACA,SAAS,QACR,oBAAC,YAAA,EAAW,SAAQ,SAAQ,IAAI,EAAE,OAAO,oBACtC,UAAA,MAAA,CACH;AAAA,MAAA;AAAA,IAAA;AAAA,EAAA;AAIR;"}
|
|
@@ -0,0 +1,73 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __defProp = Object.defineProperty;
|
|
3
|
+
var __getOwnPropSymbols = Object.getOwnPropertySymbols;
|
|
4
|
+
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
5
|
+
var __propIsEnum = Object.prototype.propertyIsEnumerable;
|
|
6
|
+
var __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
|
|
7
|
+
var __spreadValues = (a, b) => {
|
|
8
|
+
for (var prop in b || (b = {}))
|
|
9
|
+
if (__hasOwnProp.call(b, prop))
|
|
10
|
+
__defNormalProp(a, prop, b[prop]);
|
|
11
|
+
if (__getOwnPropSymbols)
|
|
12
|
+
for (var prop of __getOwnPropSymbols(b)) {
|
|
13
|
+
if (__propIsEnum.call(b, prop))
|
|
14
|
+
__defNormalProp(a, prop, b[prop]);
|
|
15
|
+
}
|
|
16
|
+
return a;
|
|
17
|
+
};
|
|
18
|
+
const jsxRuntime = require("react/jsx-runtime");
|
|
19
|
+
const material = require("@mui/material");
|
|
20
|
+
const sizeMap = {
|
|
21
|
+
sm: 20,
|
|
22
|
+
md: 40,
|
|
23
|
+
lg: 56
|
|
24
|
+
};
|
|
25
|
+
const resolveSize = (size) => typeof size === "number" ? size : sizeMap[size];
|
|
26
|
+
function Spinner({
|
|
27
|
+
size = "md",
|
|
28
|
+
color = "primary",
|
|
29
|
+
thickness,
|
|
30
|
+
centered = false,
|
|
31
|
+
label,
|
|
32
|
+
sx,
|
|
33
|
+
className,
|
|
34
|
+
"aria-label": ariaLabel = "Cargando"
|
|
35
|
+
}) {
|
|
36
|
+
const px = resolveSize(size);
|
|
37
|
+
const spinner = /* @__PURE__ */ jsxRuntime.jsx(
|
|
38
|
+
material.CircularProgress,
|
|
39
|
+
{
|
|
40
|
+
size: px,
|
|
41
|
+
color,
|
|
42
|
+
thickness,
|
|
43
|
+
role: "status",
|
|
44
|
+
"aria-label": ariaLabel,
|
|
45
|
+
sx: centered || label ? void 0 : sx
|
|
46
|
+
}
|
|
47
|
+
);
|
|
48
|
+
if (!centered && !label) {
|
|
49
|
+
return /* @__PURE__ */ jsxRuntime.jsx(material.Box, { component: "span", className, children: spinner });
|
|
50
|
+
}
|
|
51
|
+
return /* @__PURE__ */ jsxRuntime.jsxs(
|
|
52
|
+
material.Box,
|
|
53
|
+
{
|
|
54
|
+
className,
|
|
55
|
+
sx: [
|
|
56
|
+
__spreadValues({
|
|
57
|
+
display: "flex",
|
|
58
|
+
flexDirection: "column",
|
|
59
|
+
alignItems: "center",
|
|
60
|
+
justifyContent: "center",
|
|
61
|
+
gap: 1.5
|
|
62
|
+
}, centered && { width: "100%", minHeight: 120 }),
|
|
63
|
+
...Array.isArray(sx) ? sx : sx ? [sx] : []
|
|
64
|
+
],
|
|
65
|
+
children: [
|
|
66
|
+
spinner,
|
|
67
|
+
label != null && /* @__PURE__ */ jsxRuntime.jsx(material.Typography, { variant: "body2", sx: { color: "text.secondary" }, children: label })
|
|
68
|
+
]
|
|
69
|
+
}
|
|
70
|
+
);
|
|
71
|
+
}
|
|
72
|
+
exports.Spinner = Spinner;
|
|
73
|
+
//# sourceMappingURL=Spinner-D7qRmNS9.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Spinner-D7qRmNS9.cjs","sources":["../src/components/Spinner/Spinner.tsx"],"sourcesContent":["import { type ReactNode } from 'react';\nimport { Box, CircularProgress, Typography } from '@mui/material';\nimport type { SxProps, Theme } from '@mui/material/styles';\n\nexport type SpinnerSize = 'sm' | 'md' | 'lg' | number;\n\nexport type SpinnerColor =\n | 'primary'\n | 'secondary'\n | 'inherit'\n | 'error'\n | 'info'\n | 'success'\n | 'warning';\n\nexport interface SpinnerProps {\n /** Tamaño: `sm`=20, `md`=40, `lg`=56, o un número de px. Default: `md`. */\n size?: SpinnerSize;\n /** Color del indicador. Default: `primary`. */\n color?: SpinnerColor;\n /** Grosor del trazo. Default: 3.6 (default de MUI). */\n thickness?: number;\n /**\n * Si `true`, centra el spinner en un contenedor flex de ancho completo.\n * Útil para estados de carga de página/sección.\n */\n centered?: boolean;\n /** Texto opcional debajo del spinner. */\n label?: ReactNode;\n /** sx del contenedor (o del propio spinner si no hay `centered`/`label`). */\n sx?: SxProps<Theme>;\n className?: string;\n /** Texto accesible. Default: \"Cargando\". */\n 'aria-label'?: string;\n}\n\nconst sizeMap: Record<Exclude<SpinnerSize, number>, number> = {\n sm: 20,\n md: 40,\n lg: 56,\n};\n\nconst resolveSize = (size: SpinnerSize): number =>\n typeof size === 'number' ? size : sizeMap[size];\n\nexport function Spinner({\n size = 'md',\n color = 'primary',\n thickness,\n centered = false,\n label,\n sx,\n className,\n 'aria-label': ariaLabel = 'Cargando',\n}: SpinnerProps) {\n const px = resolveSize(size);\n\n const spinner = (\n <CircularProgress\n size={px}\n color={color}\n thickness={thickness}\n role=\"status\"\n aria-label={ariaLabel}\n // Cuando no hay contenedor (ni centered ni label), el sx va al spinner.\n sx={centered || label ? undefined : sx}\n />\n );\n\n if (!centered && !label) {\n return <Box component=\"span\" className={className}>{spinner}</Box>;\n }\n\n return (\n <Box\n className={className}\n sx={[\n {\n display: 'flex',\n flexDirection: 'column',\n alignItems: 'center',\n justifyContent: 'center',\n gap: 1.5,\n ...(centered && { width: '100%', minHeight: 120 }),\n },\n ...(Array.isArray(sx) ? sx : sx ? [sx] : []),\n ]}\n >\n {spinner}\n {label != null && (\n <Typography variant=\"body2\" sx={{ color: 'text.secondary' }}>\n {label}\n </Typography>\n )}\n </Box>\n );\n}\n\nexport default Spinner;\n"],"names":["jsx","CircularProgress","Box","jsxs","Typography"],"mappings":";;;;;;;;;;;;;;;;;;;AAoCA,MAAM,UAAwD;AAAA,EAC5D,IAAI;AAAA,EACJ,IAAI;AAAA,EACJ,IAAI;AACN;AAEA,MAAM,cAAc,CAAC,SACnB,OAAO,SAAS,WAAW,OAAO,QAAQ,IAAI;AAEzC,SAAS,QAAQ;AAAA,EACtB,OAAO;AAAA,EACP,QAAQ;AAAA,EACR;AAAA,EACA,WAAW;AAAA,EACX;AAAA,EACA;AAAA,EACA;AAAA,EACA,cAAc,YAAY;AAC5B,GAAiB;AACf,QAAM,KAAK,YAAY,IAAI;AAE3B,QAAM,UACJA,2BAAAA;AAAAA,IAACC,SAAAA;AAAAA,IAAA;AAAA,MACC,MAAM;AAAA,MACN;AAAA,MACA;AAAA,MACA,MAAK;AAAA,MACL,cAAY;AAAA,MAEZ,IAAI,YAAY,QAAQ,SAAY;AAAA,IAAA;AAAA,EAAA;AAIxC,MAAI,CAAC,YAAY,CAAC,OAAO;AACvB,WAAOD,2BAAAA,IAACE,SAAAA,KAAA,EAAI,WAAU,QAAO,WAAuB,UAAA,SAAQ;AAAA,EAC9D;AAEA,SACEC,2BAAAA;AAAAA,IAACD,SAAAA;AAAAA,IAAA;AAAA,MACC;AAAA,MACA,IAAI;AAAA,QACF;AAAA,UACE,SAAS;AAAA,UACT,eAAe;AAAA,UACf,YAAY;AAAA,UACZ,gBAAgB;AAAA,UAChB,KAAK;AAAA,WACD,YAAY,EAAE,OAAO,QAAQ,WAAW,IAAA;AAAA,QAE9C,GAAI,MAAM,QAAQ,EAAE,IAAI,KAAK,KAAK,CAAC,EAAE,IAAI,CAAA;AAAA,MAAC;AAAA,MAG3C,UAAA;AAAA,QAAA;AAAA,QACA,SAAS,QACRF,2BAAAA,IAACI,SAAAA,YAAA,EAAW,SAAQ,SAAQ,IAAI,EAAE,OAAO,oBACtC,UAAA,MAAA,CACH;AAAA,MAAA;AAAA,IAAA;AAAA,EAAA;AAIR;;"}
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperties(exports, { __esModule: { value: true }, [Symbol.toStringTag]: { value: "Module" } });
|
|
3
|
+
const Spinner = require("../../Spinner-D7qRmNS9.cjs");
|
|
4
|
+
exports.Spinner = Spinner.Spinner;
|
|
5
|
+
exports.default = Spinner.Spinner;
|
|
6
|
+
//# sourceMappingURL=Spinner.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Spinner.cjs","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;"}
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
import { ReactNode } from 'react';
|
|
2
|
+
import { SxProps, Theme } from '@mui/material/styles';
|
|
3
|
+
export type SpinnerSize = 'sm' | 'md' | 'lg' | number;
|
|
4
|
+
export type SpinnerColor = 'primary' | 'secondary' | 'inherit' | 'error' | 'info' | 'success' | 'warning';
|
|
5
|
+
export interface SpinnerProps {
|
|
6
|
+
/** Tamaño: `sm`=20, `md`=40, `lg`=56, o un número de px. Default: `md`. */
|
|
7
|
+
size?: SpinnerSize;
|
|
8
|
+
/** Color del indicador. Default: `primary`. */
|
|
9
|
+
color?: SpinnerColor;
|
|
10
|
+
/** Grosor del trazo. Default: 3.6 (default de MUI). */
|
|
11
|
+
thickness?: number;
|
|
12
|
+
/**
|
|
13
|
+
* Si `true`, centra el spinner en un contenedor flex de ancho completo.
|
|
14
|
+
* Útil para estados de carga de página/sección.
|
|
15
|
+
*/
|
|
16
|
+
centered?: boolean;
|
|
17
|
+
/** Texto opcional debajo del spinner. */
|
|
18
|
+
label?: ReactNode;
|
|
19
|
+
/** sx del contenedor (o del propio spinner si no hay `centered`/`label`). */
|
|
20
|
+
sx?: SxProps<Theme>;
|
|
21
|
+
className?: string;
|
|
22
|
+
/** Texto accesible. Default: "Cargando". */
|
|
23
|
+
'aria-label'?: string;
|
|
24
|
+
}
|
|
25
|
+
export declare function Spinner({ size, color, thickness, centered, label, sx, className, 'aria-label': ariaLabel, }: SpinnerProps): import("react/jsx-runtime").JSX.Element;
|
|
26
|
+
export default Spinner;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Spinner.js","sources":[],"sourcesContent":[],"names":[],"mappings":";"}
|
package/index.cjs
CHANGED
|
@@ -9,6 +9,7 @@ const Chip = require("./Chip-qoJLDiva.cjs");
|
|
|
9
9
|
const components_Column = require("./components/Column/Column.cjs");
|
|
10
10
|
const Avatar = require("./Avatar-Dw5rzayR.cjs");
|
|
11
11
|
const Stat = require("./Stat-BUcFCGrz.cjs");
|
|
12
|
+
const Spinner = require("./Spinner-D7qRmNS9.cjs");
|
|
12
13
|
const Step = require("./Step-Nd7SJbRZ.cjs");
|
|
13
14
|
const Tab = require("./Tab-BbP8jBcK.cjs");
|
|
14
15
|
const Table = require("./Table-C4OM6rrC.cjs");
|
|
@@ -166,6 +167,7 @@ exports.Chip = Chip.Chip;
|
|
|
166
167
|
exports.Column = components_Column.Column;
|
|
167
168
|
exports.Avatar = Avatar.Avatar;
|
|
168
169
|
exports.Stat = Stat.Stat;
|
|
170
|
+
exports.Spinner = Spinner.Spinner;
|
|
169
171
|
exports.Step = Step.Step;
|
|
170
172
|
exports.Stepper = Step.Stepper;
|
|
171
173
|
exports.Tab = Tab.Tab;
|
package/index.cjs.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.cjs","sources":["../src/utils/scrollToTop.ts"],"sourcesContent":["export interface ScrollToTopOptions {\n /** Comportamiento del scroll. Default: `'smooth'`. */\n behavior?: ScrollBehavior;\n /**\n * Elemento target del scroll. Default: `window`. Útil cuando el contenedor\n * scrolleable NO es `window` (p.ej. un `<Box>` con `overflow: auto`).\n */\n target?: Window | HTMLElement;\n /** Offset desde el top. Default: `0`. */\n top?: number;\n}\n\n/**\n * Hace scroll al tope (por default con animación suave). Safe en SSR — si\n * `window` no existe, es un no-op.\n *\n * Llamar tras mutaciones / cambios de filtros / apertura de modales para\n * asegurar que el usuario vea el mensaje de confirmación en la parte\n * superior de la página.\n *\n * ```ts\n * import { scrollToTop } from '@soyfri/shared-library';\n *\n * scrollToTop(); // window, smooth\n * scrollToTop({ behavior: 'auto' }); // window, instantáneo\n * scrollToTop({ target: myScrollableRef.current }); // container custom\n * ```\n */\nexport function scrollToTop({\n behavior = 'smooth',\n target = typeof window !== 'undefined' ? window : undefined,\n top = 0,\n}: ScrollToTopOptions = {}): void {\n if (!target) return;\n target.scrollTo({ top, left: 0, behavior });\n}\n"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"index.cjs","sources":["../src/utils/scrollToTop.ts"],"sourcesContent":["export interface ScrollToTopOptions {\n /** Comportamiento del scroll. Default: `'smooth'`. */\n behavior?: ScrollBehavior;\n /**\n * Elemento target del scroll. Default: `window`. Útil cuando el contenedor\n * scrolleable NO es `window` (p.ej. un `<Box>` con `overflow: auto`).\n */\n target?: Window | HTMLElement;\n /** Offset desde el top. Default: `0`. */\n top?: number;\n}\n\n/**\n * Hace scroll al tope (por default con animación suave). Safe en SSR — si\n * `window` no existe, es un no-op.\n *\n * Llamar tras mutaciones / cambios de filtros / apertura de modales para\n * asegurar que el usuario vea el mensaje de confirmación en la parte\n * superior de la página.\n *\n * ```ts\n * import { scrollToTop } from '@soyfri/shared-library';\n *\n * scrollToTop(); // window, smooth\n * scrollToTop({ behavior: 'auto' }); // window, instantáneo\n * scrollToTop({ target: myScrollableRef.current }); // container custom\n * ```\n */\nexport function scrollToTop({\n behavior = 'smooth',\n target = typeof window !== 'undefined' ? window : undefined,\n top = 0,\n}: ScrollToTopOptions = {}): void {\n if (!target) return;\n target.scrollTo({ top, left: 0, behavior });\n}\n"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;AA4BO,SAAS,YAAY;AAAA,EAC1B,WAAW;AAAA,EACX,SAAS,OAAO,WAAW,cAAc,SAAS;AAAA,EAClD,MAAM;AACR,IAAwB,IAAU;AAChC,MAAI,CAAC,OAAQ;AACb,SAAO,SAAS,EAAE,KAAK,MAAM,GAAG,UAAU;AAC5C;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
|
package/index.d.ts
CHANGED
|
@@ -10,6 +10,8 @@ export { Column } from './components/Column';
|
|
|
10
10
|
export type { ColumnProps } from './components/Column';
|
|
11
11
|
export { Avatar } from './components/Avatar';
|
|
12
12
|
export { Stat } from './components/Stat';
|
|
13
|
+
export { Spinner } from './components/Spinner';
|
|
14
|
+
export type { SpinnerProps, SpinnerSize, SpinnerColor } from './components/Spinner';
|
|
13
15
|
export { Stepper, Step } from './components/Stepper';
|
|
14
16
|
export { Tabs, Tab } from './components/Tabs';
|
|
15
17
|
export { Table } from './components/Table';
|
package/index.js
CHANGED
|
@@ -7,15 +7,16 @@ import { C as C2 } from "./Chip-OPYQ1uQ_.js";
|
|
|
7
7
|
import { Column } from "./components/Column/Column.js";
|
|
8
8
|
import { A } from "./Avatar-H8akSege.js";
|
|
9
9
|
import { S } from "./Stat-C06A_izS.js";
|
|
10
|
-
import {
|
|
10
|
+
import { S as S2 } from "./Spinner-B6sThC1p.js";
|
|
11
|
+
import { a, S as S3 } from "./Step-BArsou1V.js";
|
|
11
12
|
import { a as a2, T } from "./Tab-BxSxKJsP.js";
|
|
12
13
|
import { T as T2 } from "./Table-C2LbW0B1.js";
|
|
13
|
-
import { S as
|
|
14
|
+
import { S as S4 } from "./StatusMessage-D0WgSBx7.js";
|
|
14
15
|
import { M, b, c, a as a3 } from "./Modal-BFpX5AFV.js";
|
|
15
16
|
import { I } from "./Input-DP_fKl38.js";
|
|
16
|
-
import { O, S as
|
|
17
|
+
import { O, S as S5 } from "./Select-BY5Y0qZ1.js";
|
|
17
18
|
import { A as A2, a as a4 } from "./Autocomplete-C_lW1VER.js";
|
|
18
|
-
import { S as
|
|
19
|
+
import { S as S6 } from "./Switch-D72dpkH2.js";
|
|
19
20
|
import { R } from "./RadioGroup-bO-ahP9T.js";
|
|
20
21
|
import { C as C3 } from "./Checkbox-gB5YKkVo.js";
|
|
21
22
|
import { D as D2 } from "./DatePicker-_IGWc3I5.js";
|
|
@@ -67,15 +68,16 @@ export {
|
|
|
67
68
|
O as Option,
|
|
68
69
|
Paper,
|
|
69
70
|
R as RadioGroup,
|
|
70
|
-
|
|
71
|
+
S5 as Select,
|
|
71
72
|
Skeleton,
|
|
72
73
|
Snackbar,
|
|
74
|
+
S2 as Spinner,
|
|
73
75
|
Stack,
|
|
74
76
|
S as Stat,
|
|
75
|
-
|
|
77
|
+
S4 as StatusMessage,
|
|
76
78
|
a as Step,
|
|
77
|
-
|
|
78
|
-
|
|
79
|
+
S3 as Stepper,
|
|
80
|
+
S6 as Switch,
|
|
79
81
|
a2 as Tab,
|
|
80
82
|
T2 as Table,
|
|
81
83
|
T as Tabs,
|
package/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sources":["../src/utils/scrollToTop.ts"],"sourcesContent":["export interface ScrollToTopOptions {\n /** Comportamiento del scroll. Default: `'smooth'`. */\n behavior?: ScrollBehavior;\n /**\n * Elemento target del scroll. Default: `window`. Útil cuando el contenedor\n * scrolleable NO es `window` (p.ej. un `<Box>` con `overflow: auto`).\n */\n target?: Window | HTMLElement;\n /** Offset desde el top. Default: `0`. */\n top?: number;\n}\n\n/**\n * Hace scroll al tope (por default con animación suave). Safe en SSR — si\n * `window` no existe, es un no-op.\n *\n * Llamar tras mutaciones / cambios de filtros / apertura de modales para\n * asegurar que el usuario vea el mensaje de confirmación en la parte\n * superior de la página.\n *\n * ```ts\n * import { scrollToTop } from '@soyfri/shared-library';\n *\n * scrollToTop(); // window, smooth\n * scrollToTop({ behavior: 'auto' }); // window, instantáneo\n * scrollToTop({ target: myScrollableRef.current }); // container custom\n * ```\n */\nexport function scrollToTop({\n behavior = 'smooth',\n target = typeof window !== 'undefined' ? window : undefined,\n top = 0,\n}: ScrollToTopOptions = {}): void {\n if (!target) return;\n target.scrollTo({ top, left: 0, behavior });\n}\n"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"index.js","sources":["../src/utils/scrollToTop.ts"],"sourcesContent":["export interface ScrollToTopOptions {\n /** Comportamiento del scroll. Default: `'smooth'`. */\n behavior?: ScrollBehavior;\n /**\n * Elemento target del scroll. Default: `window`. Útil cuando el contenedor\n * scrolleable NO es `window` (p.ej. un `<Box>` con `overflow: auto`).\n */\n target?: Window | HTMLElement;\n /** Offset desde el top. Default: `0`. */\n top?: number;\n}\n\n/**\n * Hace scroll al tope (por default con animación suave). Safe en SSR — si\n * `window` no existe, es un no-op.\n *\n * Llamar tras mutaciones / cambios de filtros / apertura de modales para\n * asegurar que el usuario vea el mensaje de confirmación en la parte\n * superior de la página.\n *\n * ```ts\n * import { scrollToTop } from '@soyfri/shared-library';\n *\n * scrollToTop(); // window, smooth\n * scrollToTop({ behavior: 'auto' }); // window, instantáneo\n * scrollToTop({ target: myScrollableRef.current }); // container custom\n * ```\n */\nexport function scrollToTop({\n behavior = 'smooth',\n target = typeof window !== 'undefined' ? window : undefined,\n top = 0,\n}: ScrollToTopOptions = {}): void {\n if (!target) return;\n target.scrollTo({ top, left: 0, behavior });\n}\n"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;AA4BO,SAAS,YAAY;AAAA,EAC1B,WAAW;AAAA,EACX,SAAS,OAAO,WAAW,cAAc,SAAS;AAAA,EAClD,MAAM;AACR,IAAwB,IAAU;AAChC,MAAI,CAAC,OAAQ;AACb,SAAO,SAAS,EAAE,KAAK,MAAM,GAAG,UAAU;AAC5C;"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@soyfri/shared-library",
|
|
3
|
-
"version": "2.0.0-beta.
|
|
3
|
+
"version": "2.0.0-beta.29",
|
|
4
4
|
"main": "./index.cjs",
|
|
5
5
|
"module": "./index.js",
|
|
6
6
|
"types": "./index.d.ts",
|
|
@@ -25,6 +25,7 @@
|
|
|
25
25
|
"optional": true
|
|
26
26
|
}
|
|
27
27
|
},
|
|
28
|
+
"packageManager": "pnpm@9.15.0+sha512.76e2379760a4328ec4415815bcd6628dee727af3779aaa4c914e3944156c4299921a89f976381ee107d41f12cfa4b66681ca9c718f0668fa0831ed4c6d8ba56c",
|
|
28
29
|
"exports": {
|
|
29
30
|
".": {
|
|
30
31
|
"import": "./index.js",
|
|
@@ -72,6 +73,11 @@
|
|
|
72
73
|
"require": "./components/Stat/Stat.cjs",
|
|
73
74
|
"types": "./components/Stat/index.d.ts"
|
|
74
75
|
},
|
|
76
|
+
"./components/Spinner": {
|
|
77
|
+
"import": "./components/Spinner/Spinner.js",
|
|
78
|
+
"require": "./components/Spinner/Spinner.cjs",
|
|
79
|
+
"types": "./components/Spinner/index.d.ts"
|
|
80
|
+
},
|
|
75
81
|
"./components/Select": {
|
|
76
82
|
"import": "./components/Select/Select.js",
|
|
77
83
|
"require": "./components/Select/Select.cjs",
|