@seedgrid/fe-components 0.2.9 → 2026.3.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/buttons/SgFloatActionButton.d.ts.map +1 -1
- package/dist/buttons/SgFloatActionButton.js +168 -38
- package/dist/commons/SgAvatar.d.ts +66 -0
- package/dist/commons/SgAvatar.d.ts.map +1 -0
- package/dist/commons/SgAvatar.js +136 -0
- package/dist/commons/SgSkeleton.d.ts +16 -0
- package/dist/commons/SgSkeleton.d.ts.map +1 -0
- package/dist/commons/SgSkeleton.js +58 -0
- package/dist/commons/SgToaster.d.ts +9 -0
- package/dist/commons/SgToaster.d.ts.map +1 -1
- package/dist/commons/SgToaster.js +86 -17
- package/dist/digits/discard-digit/SgDiscardDigit.d.ts +39 -0
- package/dist/digits/discard-digit/SgDiscardDigit.d.ts.map +1 -0
- package/dist/digits/discard-digit/SgDiscardDigit.js +303 -0
- package/dist/digits/discard-digit/index.d.ts +3 -0
- package/dist/digits/discard-digit/index.d.ts.map +1 -0
- package/dist/digits/discard-digit/index.js +1 -0
- package/dist/digits/fade-digit/SgFadeDigit.d.ts +27 -0
- package/dist/digits/fade-digit/SgFadeDigit.d.ts.map +1 -0
- package/dist/digits/fade-digit/SgFadeDigit.js +85 -0
- package/dist/digits/fade-digit/index.d.ts +3 -0
- package/dist/digits/fade-digit/index.d.ts.map +1 -0
- package/dist/digits/fade-digit/index.js +1 -0
- package/dist/digits/flip-digit/SgFlipDigit.d.ts +27 -0
- package/dist/digits/flip-digit/SgFlipDigit.d.ts.map +1 -0
- package/dist/digits/flip-digit/SgFlipDigit.js +70 -0
- package/dist/digits/flip-digit/index.d.ts.map +1 -0
- package/dist/digits/matrix-digit/SgMatrixDigit.d.ts +32 -0
- package/dist/digits/matrix-digit/SgMatrixDigit.d.ts.map +1 -0
- package/dist/digits/matrix-digit/SgMatrixDigit.js +86 -0
- package/dist/digits/matrix-digit/index.d.ts +3 -0
- package/dist/digits/matrix-digit/index.d.ts.map +1 -0
- package/dist/digits/matrix-digit/index.js +1 -0
- package/dist/digits/neon-digit/SgNeonDigit.d.ts +37 -0
- package/dist/digits/neon-digit/SgNeonDigit.d.ts.map +1 -0
- package/dist/digits/neon-digit/SgNeonDigit.js +59 -0
- package/dist/digits/neon-digit/index.d.ts +3 -0
- package/dist/digits/neon-digit/index.d.ts.map +1 -0
- package/dist/digits/neon-digit/index.js +1 -0
- package/dist/digits/roller3d-digit/SgRoller3DDigit.d.ts +37 -0
- package/dist/digits/roller3d-digit/SgRoller3DDigit.d.ts.map +1 -0
- package/dist/digits/roller3d-digit/SgRoller3DDigit.js +47 -0
- package/dist/digits/roller3d-digit/index.d.ts +3 -0
- package/dist/digits/roller3d-digit/index.d.ts.map +1 -0
- package/dist/digits/roller3d-digit/index.js +1 -0
- package/dist/environment/SgEnvironmentProvider.d.ts +1 -0
- package/dist/environment/SgEnvironmentProvider.d.ts.map +1 -1
- package/dist/environment/SgEnvironmentProvider.js +51 -12
- package/dist/gadgets/clock/SgClock.d.ts +3 -1
- package/dist/gadgets/clock/SgClock.d.ts.map +1 -1
- package/dist/gadgets/clock/SgClock.js +111 -180
- package/dist/gadgets/clock/SgTimeProvider.d.ts +1 -0
- package/dist/gadgets/clock/SgTimeProvider.d.ts.map +1 -1
- package/dist/gadgets/clock/SgTimeProvider.js +11 -4
- package/dist/gadgets/gauge/SgLinearGauge.d.ts +59 -0
- package/dist/gadgets/gauge/SgLinearGauge.d.ts.map +1 -0
- package/dist/gadgets/gauge/SgLinearGauge.js +258 -0
- package/dist/gadgets/gauge/SgRadialGauge.d.ts +73 -0
- package/dist/gadgets/gauge/SgRadialGauge.d.ts.map +1 -0
- package/dist/gadgets/gauge/SgRadialGauge.js +311 -0
- package/dist/gadgets/gauge/index.d.ts +5 -0
- package/dist/gadgets/gauge/index.d.ts.map +1 -0
- package/dist/gadgets/gauge/index.js +2 -0
- package/dist/gadgets/qr-code/SgQRCode.d.ts +25 -0
- package/dist/gadgets/qr-code/SgQRCode.d.ts.map +1 -0
- package/dist/gadgets/qr-code/SgQRCode.js +75 -0
- package/dist/gadgets/qr-code/index.d.ts +3 -0
- package/dist/gadgets/qr-code/index.d.ts.map +1 -0
- package/dist/gadgets/qr-code/index.js +1 -0
- package/dist/gadgets/string-animator/SgStringAnimator.d.ts +91 -0
- package/dist/gadgets/string-animator/SgStringAnimator.d.ts.map +1 -0
- package/dist/gadgets/string-animator/SgStringAnimator.js +145 -0
- package/dist/gadgets/string-animator/index.d.ts +3 -0
- package/dist/gadgets/string-animator/index.d.ts.map +1 -0
- package/dist/gadgets/string-animator/index.js +1 -0
- package/dist/i18n/en-US.json +9 -1
- package/dist/i18n/es.json +55 -47
- package/dist/i18n/index.d.ts +32 -0
- package/dist/i18n/index.d.ts.map +1 -1
- package/dist/i18n/pt-BR.json +9 -1
- package/dist/i18n/pt-PT.json +9 -1
- package/dist/index.d.ts +53 -5
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +25 -1
- package/dist/inputs/SgAutocomplete.js +21 -5
- package/dist/inputs/SgCombobox.d.ts +26 -0
- package/dist/inputs/SgCombobox.d.ts.map +1 -0
- package/dist/inputs/SgCombobox.js +354 -0
- package/dist/inputs/SgInputOTP.d.ts.map +1 -1
- package/dist/inputs/SgInputOTP.js +9 -2
- package/dist/inputs/SgRadioGroup.d.ts +37 -0
- package/dist/inputs/SgRadioGroup.d.ts.map +1 -0
- package/dist/inputs/SgRadioGroup.js +139 -0
- package/dist/inputs/SgRating.d.ts +55 -0
- package/dist/inputs/SgRating.d.ts.map +1 -0
- package/dist/inputs/SgRating.js +135 -0
- package/dist/inputs/SgSlider.d.ts +20 -0
- package/dist/inputs/SgSlider.d.ts.map +1 -0
- package/dist/inputs/SgSlider.js +40 -0
- package/dist/inputs/SgStepperInput.d.ts +22 -0
- package/dist/inputs/SgStepperInput.d.ts.map +1 -0
- package/dist/inputs/SgStepperInput.js +51 -0
- package/dist/inputs/SgTextEditor.d.ts +1 -0
- package/dist/inputs/SgTextEditor.d.ts.map +1 -1
- package/dist/inputs/SgTextEditor.js +19 -3
- package/dist/inputs/SgToggleSwitch.d.ts +36 -0
- package/dist/inputs/SgToggleSwitch.d.ts.map +1 -0
- package/dist/inputs/SgToggleSwitch.js +174 -0
- package/dist/layout/SgAccordion.d.ts +39 -0
- package/dist/layout/SgAccordion.d.ts.map +1 -0
- package/dist/layout/SgAccordion.js +116 -0
- package/dist/layout/SgBreadcrumb.d.ts +33 -0
- package/dist/layout/SgBreadcrumb.d.ts.map +1 -0
- package/dist/layout/SgBreadcrumb.js +121 -0
- package/dist/layout/SgCarousel.d.ts +43 -0
- package/dist/layout/SgCarousel.d.ts.map +1 -0
- package/dist/layout/SgCarousel.js +166 -0
- package/dist/layout/SgDockLayout.d.ts +14 -0
- package/dist/layout/SgDockLayout.d.ts.map +1 -1
- package/dist/layout/SgDockLayout.js +145 -13
- package/dist/layout/SgDockScreen.d.ts +15 -0
- package/dist/layout/SgDockScreen.d.ts.map +1 -0
- package/dist/layout/SgDockScreen.js +13 -0
- package/dist/layout/SgDockZone.d.ts.map +1 -1
- package/dist/layout/SgDockZone.js +36 -2
- package/dist/layout/SgExpandablePanel.d.ts +50 -0
- package/dist/layout/SgExpandablePanel.d.ts.map +1 -0
- package/dist/layout/SgExpandablePanel.js +302 -0
- package/dist/layout/SgMainPanel.d.ts.map +1 -1
- package/dist/layout/SgMainPanel.js +36 -14
- package/dist/layout/SgMenu.d.ts +91 -0
- package/dist/layout/SgMenu.d.ts.map +1 -0
- package/dist/layout/SgMenu.js +939 -0
- package/dist/layout/SgPageControl.d.ts +49 -0
- package/dist/layout/SgPageControl.d.ts.map +1 -0
- package/dist/layout/SgPageControl.js +152 -0
- package/dist/layout/SgPanel.d.ts.map +1 -1
- package/dist/layout/SgPanel.js +10 -1
- package/dist/layout/SgScreen.d.ts +2 -0
- package/dist/layout/SgScreen.d.ts.map +1 -1
- package/dist/layout/SgScreen.js +4 -2
- package/dist/layout/SgToolBar.d.ts +9 -3
- package/dist/layout/SgToolBar.d.ts.map +1 -1
- package/dist/layout/SgToolBar.js +461 -55
- package/dist/menus/SgDockMenu.d.ts +62 -0
- package/dist/menus/SgDockMenu.d.ts.map +1 -0
- package/dist/menus/SgDockMenu.js +480 -0
- package/dist/others/SgPlayground.js +73 -73
- package/package.json +72 -57
- package/dist/gadgets/flip-digit/SgFlipDigit.d.ts +0 -23
- package/dist/gadgets/flip-digit/SgFlipDigit.d.ts.map +0 -1
- package/dist/gadgets/flip-digit/SgFlipDigit.js +0 -118
- package/dist/gadgets/flip-digit/index.d.ts.map +0 -1
- /package/dist/{gadgets → digits}/flip-digit/index.d.ts +0 -0
- /package/dist/{gadgets → digits}/flip-digit/index.js +0 -0
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
import * as React from "react";
|
|
2
|
+
export type SgQRCodeErrorCorrectionLevel = "L" | "M" | "Q" | "H";
|
|
3
|
+
export type SgQRCodeProps = Omit<React.HTMLAttributes<HTMLDivElement>, "children"> & {
|
|
4
|
+
value?: string;
|
|
5
|
+
size?: number;
|
|
6
|
+
margin?: number;
|
|
7
|
+
fgColor?: string;
|
|
8
|
+
bgColor?: string;
|
|
9
|
+
errorCorrectionLevel?: SgQRCodeErrorCorrectionLevel;
|
|
10
|
+
logoSrc?: string;
|
|
11
|
+
logoAlt?: string;
|
|
12
|
+
logoSize?: number;
|
|
13
|
+
logoPadding?: number;
|
|
14
|
+
logoBackgroundColor?: string;
|
|
15
|
+
logoBorderRadius?: number;
|
|
16
|
+
imageClassName?: string;
|
|
17
|
+
logoClassName?: string;
|
|
18
|
+
emptyFallback?: React.ReactNode;
|
|
19
|
+
onGenerateError?: (error: Error) => void;
|
|
20
|
+
};
|
|
21
|
+
export declare function SgQRCode(props: Readonly<SgQRCodeProps>): import("react/jsx-runtime").JSX.Element | null;
|
|
22
|
+
export declare namespace SgQRCode {
|
|
23
|
+
var displayName: string;
|
|
24
|
+
}
|
|
25
|
+
//# sourceMappingURL=SgQRCode.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"SgQRCode.d.ts","sourceRoot":"","sources":["../../../src/gadgets/qr-code/SgQRCode.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAO/B,MAAM,MAAM,4BAA4B,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,CAAC;AAEjE,MAAM,MAAM,aAAa,GAAG,IAAI,CAAC,KAAK,CAAC,cAAc,CAAC,cAAc,CAAC,EAAE,UAAU,CAAC,GAAG;IACnF,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,oBAAoB,CAAC,EAAE,4BAA4B,CAAC;IACpD,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,mBAAmB,CAAC,EAAE,MAAM,CAAC;IAC7B,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,aAAa,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IAChC,eAAe,CAAC,EAAE,CAAC,KAAK,EAAE,KAAK,KAAK,IAAI,CAAC;CAC1C,CAAC;AAEF,wBAAgB,QAAQ,CAAC,KAAK,EAAE,QAAQ,CAAC,aAAa,CAAC,kDAyItD;yBAzIe,QAAQ"}
|
|
@@ -0,0 +1,75 @@
|
|
|
1
|
+
"use client";
|
|
2
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
3
|
+
import * as React from "react";
|
|
4
|
+
import QRCode from "qrcode";
|
|
5
|
+
function cn(...parts) {
|
|
6
|
+
return parts.filter(Boolean).join(" ");
|
|
7
|
+
}
|
|
8
|
+
export function SgQRCode(props) {
|
|
9
|
+
const { value, size = 220, margin = 2, fgColor = "#000000", bgColor = "#FFFFFF", errorCorrectionLevel = "H", logoSrc, logoAlt = "Logo", logoSize, logoPadding = 6, logoBackgroundColor = "#FFFFFF", logoBorderRadius = 12, imageClassName, logoClassName, emptyFallback, onGenerateError, className, style, ...rest } = props;
|
|
10
|
+
const [qrDataUrl, setQrDataUrl] = React.useState("");
|
|
11
|
+
const [hasError, setHasError] = React.useState(false);
|
|
12
|
+
const normalizedValue = value?.trim() ?? "";
|
|
13
|
+
const safeSize = Math.max(64, Math.round(size));
|
|
14
|
+
const safeMargin = Math.max(0, Math.round(margin));
|
|
15
|
+
const safeLogoPadding = Math.max(0, Math.round(logoPadding));
|
|
16
|
+
const safeLogoSize = Math.max(18, Math.min(safeSize, Math.round(logoSize ?? safeSize * 0.22)));
|
|
17
|
+
const logoContainerSize = safeLogoSize + safeLogoPadding * 2;
|
|
18
|
+
React.useEffect(() => {
|
|
19
|
+
let active = true;
|
|
20
|
+
if (!normalizedValue) {
|
|
21
|
+
setQrDataUrl("");
|
|
22
|
+
setHasError(false);
|
|
23
|
+
return () => {
|
|
24
|
+
active = false;
|
|
25
|
+
};
|
|
26
|
+
}
|
|
27
|
+
QRCode.toDataURL(normalizedValue, {
|
|
28
|
+
width: safeSize,
|
|
29
|
+
margin: safeMargin,
|
|
30
|
+
color: {
|
|
31
|
+
dark: fgColor,
|
|
32
|
+
light: bgColor
|
|
33
|
+
},
|
|
34
|
+
errorCorrectionLevel
|
|
35
|
+
})
|
|
36
|
+
.then((dataUrl) => {
|
|
37
|
+
if (!active)
|
|
38
|
+
return;
|
|
39
|
+
setQrDataUrl(dataUrl);
|
|
40
|
+
setHasError(false);
|
|
41
|
+
})
|
|
42
|
+
.catch((cause) => {
|
|
43
|
+
if (!active)
|
|
44
|
+
return;
|
|
45
|
+
const error = cause instanceof Error ? cause : new Error("Failed to generate QR code");
|
|
46
|
+
setQrDataUrl("");
|
|
47
|
+
setHasError(true);
|
|
48
|
+
onGenerateError?.(error);
|
|
49
|
+
});
|
|
50
|
+
return () => {
|
|
51
|
+
active = false;
|
|
52
|
+
};
|
|
53
|
+
}, [
|
|
54
|
+
normalizedValue,
|
|
55
|
+
safeSize,
|
|
56
|
+
safeMargin,
|
|
57
|
+
fgColor,
|
|
58
|
+
bgColor,
|
|
59
|
+
errorCorrectionLevel,
|
|
60
|
+
onGenerateError
|
|
61
|
+
]);
|
|
62
|
+
if (!normalizedValue) {
|
|
63
|
+
if (!emptyFallback)
|
|
64
|
+
return null;
|
|
65
|
+
return (_jsx("div", { className: cn("inline-flex items-center justify-center", className), style: { width: safeSize, height: safeSize, ...style }, ...rest, children: emptyFallback }));
|
|
66
|
+
}
|
|
67
|
+
return (_jsxs("div", { className: cn("relative inline-flex items-center justify-center", className), style: { width: safeSize, height: safeSize, ...style }, ...rest, children: [qrDataUrl && !hasError ? (_jsx("img", { src: qrDataUrl, alt: "QR Code", width: safeSize, height: safeSize, className: cn("block h-full w-full", imageClassName), draggable: false })) : (_jsx("div", { className: "h-full w-full animate-pulse rounded-md bg-muted/40", "aria-hidden": "true" })), logoSrc && qrDataUrl && !hasError ? (_jsx("span", { className: cn("absolute inline-flex items-center justify-center overflow-hidden", logoClassName), style: {
|
|
68
|
+
width: logoContainerSize,
|
|
69
|
+
height: logoContainerSize,
|
|
70
|
+
padding: safeLogoPadding,
|
|
71
|
+
borderRadius: logoBorderRadius,
|
|
72
|
+
backgroundColor: logoBackgroundColor
|
|
73
|
+
}, children: _jsx("img", { src: logoSrc, alt: logoAlt, width: safeLogoSize, height: safeLogoSize, className: "block h-full w-full object-contain", draggable: false }) })) : null] }));
|
|
74
|
+
}
|
|
75
|
+
SgQRCode.displayName = "SgQRCode";
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/gadgets/qr-code/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AACtC,YAAY,EAAE,aAAa,EAAE,4BAA4B,EAAE,MAAM,YAAY,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export { SgQRCode } from "./SgQRCode";
|
|
@@ -0,0 +1,91 @@
|
|
|
1
|
+
import * as React from "react";
|
|
2
|
+
export declare const SG_STRING_ANIMATOR_DEFAULT_CHARSET: string[];
|
|
3
|
+
export type SgStringAnimatorStyle = "roller3d" | "flip" | "neon" | "fade" | "discard" | "matrix";
|
|
4
|
+
export type SgStringAnimatorAlign = "left" | "right";
|
|
5
|
+
export type SgStringAnimatorRef = {
|
|
6
|
+
/** Inicia a animacao de sourceString ate targetString */
|
|
7
|
+
startAnimation: () => void;
|
|
8
|
+
};
|
|
9
|
+
export type SgStringAnimatorProps = {
|
|
10
|
+
/** String exibida antes da animacao */
|
|
11
|
+
sourceString: string;
|
|
12
|
+
/** String de destino — o componente anima ate ela */
|
|
13
|
+
targetString: string;
|
|
14
|
+
/**
|
|
15
|
+
* Estilo de animacao por caractere.
|
|
16
|
+
* - "roller3d": tambor vertical (SgRoller3DDigit)
|
|
17
|
+
* - "flip": vira o card (SgFlipDigit)
|
|
18
|
+
* - "neon": brilho neon com fade (SgNeonDigit)
|
|
19
|
+
* - "fade": apaga e acende (SgFadeDigit)
|
|
20
|
+
* - "discard": folha descartada voando (SgDiscardDigit)
|
|
21
|
+
* - "matrix": pontos em matriz LED (SgMatrixDigit)
|
|
22
|
+
* @default "roller3d"
|
|
23
|
+
*/
|
|
24
|
+
style?: SgStringAnimatorStyle;
|
|
25
|
+
/**
|
|
26
|
+
* Velocidade de 1 (muito lento) a 100 (muito rapido).
|
|
27
|
+
* Controla o intervalo de tempo entre a troca de cada caractere.
|
|
28
|
+
* @default 50
|
|
29
|
+
*/
|
|
30
|
+
velocity?: number;
|
|
31
|
+
/**
|
|
32
|
+
* Caractere utilizado para preencher as posicoes extras quando
|
|
33
|
+
* sourceString e targetString possuem comprimentos diferentes.
|
|
34
|
+
* @default " "
|
|
35
|
+
*/
|
|
36
|
+
emptyChar?: string;
|
|
37
|
+
/**
|
|
38
|
+
* Alinhamento das strings:
|
|
39
|
+
* - "left" — preenche a direita com emptyChar (ideal para texto/nomes)
|
|
40
|
+
* - "right" — preenche a esquerda com emptyChar (ideal para numeros)
|
|
41
|
+
* @default "left"
|
|
42
|
+
*/
|
|
43
|
+
alignTo?: SgStringAnimatorAlign;
|
|
44
|
+
/**
|
|
45
|
+
* Se true, inicia a animacao automaticamente quando o componente
|
|
46
|
+
* monta e sempre que targetString mudar.
|
|
47
|
+
* @default false
|
|
48
|
+
*/
|
|
49
|
+
autoStart?: boolean;
|
|
50
|
+
/** Tamanho da fonte em pixels — controla a escala de cada digito. @default 32 */
|
|
51
|
+
fontSize?: number;
|
|
52
|
+
/**
|
|
53
|
+
* Conjunto de caracteres validos para o SgRoller3DDigit.
|
|
54
|
+
* Deve conter todos os caracteres que podem aparecer em sourceString,
|
|
55
|
+
* targetString e emptyChar. Ignorado quando style != "roller3d".
|
|
56
|
+
* @default SG_STRING_ANIMATOR_DEFAULT_CHARSET
|
|
57
|
+
*/
|
|
58
|
+
charset?: string[];
|
|
59
|
+
/**
|
|
60
|
+
* Cor principal do texto/ponto — aplicada nos estilos "neon", "fade",
|
|
61
|
+
* "discard" e "matrix".
|
|
62
|
+
*/
|
|
63
|
+
color?: string;
|
|
64
|
+
/**
|
|
65
|
+
* Cor de fundo — aplicada nos estilos "neon", "fade", "discard" e "matrix".
|
|
66
|
+
*/
|
|
67
|
+
backgroundColor?: string;
|
|
68
|
+
/** Classes CSS adicionais no container externo */
|
|
69
|
+
className?: string;
|
|
70
|
+
};
|
|
71
|
+
/**
|
|
72
|
+
* SgStringAnimator — anima caracter a caracter de uma string para outra.
|
|
73
|
+
*
|
|
74
|
+
* Suporta seis estilos de digit: "roller3d", "flip", "neon", "fade",
|
|
75
|
+
* "discard" e "matrix". A animacao e acionada via prop `autoStart` ou
|
|
76
|
+
* pelo metodo imperativo `startAnimation()`.
|
|
77
|
+
*
|
|
78
|
+
* @example
|
|
79
|
+
* // Animacao manual via ref
|
|
80
|
+
* const ref = React.useRef<SgStringAnimatorRef>(null);
|
|
81
|
+
* <SgStringAnimator ref={ref} sourceString="LUCIANO" targetString="MARTA" style="neon" />
|
|
82
|
+
* <button onClick={() => ref.current?.startAnimation()}>Animar</button>
|
|
83
|
+
*
|
|
84
|
+
* @example
|
|
85
|
+
* // Animacao automatica ao trocar o alvo
|
|
86
|
+
* const [target, setTarget] = React.useState("LUCIANO");
|
|
87
|
+
* <SgStringAnimator sourceString="LUCIANO" targetString={target} style="fade" autoStart />
|
|
88
|
+
* <button onClick={() => setTarget("MARTA")}>Trocar</button>
|
|
89
|
+
*/
|
|
90
|
+
export declare const SgStringAnimator: React.ForwardRefExoticComponent<SgStringAnimatorProps & React.RefAttributes<SgStringAnimatorRef>>;
|
|
91
|
+
//# sourceMappingURL=SgStringAnimator.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"SgStringAnimator.d.ts","sourceRoot":"","sources":["../../../src/gadgets/string-animator/SgStringAnimator.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAc/B,eAAO,MAAM,kCAAkC,EAAE,MAAM,EAQtD,CAAC;AAEF,MAAM,MAAM,qBAAqB,GAC7B,UAAU,GACV,MAAM,GACN,MAAM,GACN,MAAM,GACN,SAAS,GACT,QAAQ,CAAC;AAEb,MAAM,MAAM,qBAAqB,GAAG,MAAM,GAAG,OAAO,CAAC;AAErD,MAAM,MAAM,mBAAmB,GAAG;IAChC,yDAAyD;IACzD,cAAc,EAAE,MAAM,IAAI,CAAC;CAC5B,CAAC;AAEF,MAAM,MAAM,qBAAqB,GAAG;IAClC,uCAAuC;IACvC,YAAY,EAAE,MAAM,CAAC;IACrB,qDAAqD;IACrD,YAAY,EAAE,MAAM,CAAC;IACrB;;;;;;;;;OASG;IACH,KAAK,CAAC,EAAE,qBAAqB,CAAC;IAC9B;;;;OAIG;IACH,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB;;;;OAIG;IACH,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB;;;;;OAKG;IACH,OAAO,CAAC,EAAE,qBAAqB,CAAC;IAChC;;;;OAIG;IACH,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,iFAAiF;IACjF,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB;;;;;OAKG;IACH,OAAO,CAAC,EAAE,MAAM,EAAE,CAAC;IACnB;;;OAGG;IACH,KAAK,CAAC,EAAE,MAAM,CAAC;IACf;;OAEG;IACH,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,kDAAkD;IAClD,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB,CAAC;AAWF;;;;;;;;;;;;;;;;;;GAkBG;AACH,eAAO,MAAM,gBAAgB,mGA2L5B,CAAC"}
|
|
@@ -0,0 +1,145 @@
|
|
|
1
|
+
"use client";
|
|
2
|
+
import { jsx as _jsx } from "react/jsx-runtime";
|
|
3
|
+
import * as React from "react";
|
|
4
|
+
import { SgFlipDigit } from "../../digits/flip-digit";
|
|
5
|
+
import { SgRoller3DDigit } from "../../digits/roller3d-digit";
|
|
6
|
+
import { SgNeonDigit } from "../../digits/neon-digit";
|
|
7
|
+
import { SgFadeDigit } from "../../digits/fade-digit";
|
|
8
|
+
import { SgDiscardDigit } from "../../digits/discard-digit";
|
|
9
|
+
import { SgMatrixDigit } from "../../digits/matrix-digit";
|
|
10
|
+
function cn(...parts) {
|
|
11
|
+
return parts.filter(Boolean).join(" ");
|
|
12
|
+
}
|
|
13
|
+
// Default charset covers digits, A-Z, a-z and common symbols.
|
|
14
|
+
// Must include the default emptyChar (" ") at position 0.
|
|
15
|
+
export const SG_STRING_ANIMATOR_DEFAULT_CHARSET = [
|
|
16
|
+
" ",
|
|
17
|
+
"0", "1", "2", "3", "4", "5", "6", "7", "8", "9",
|
|
18
|
+
"A", "B", "C", "D", "E", "F", "G", "H", "I", "J", "K", "L", "M",
|
|
19
|
+
"N", "O", "P", "Q", "R", "S", "T", "U", "V", "W", "X", "Y", "Z",
|
|
20
|
+
"a", "b", "c", "d", "e", "f", "g", "h", "i", "j", "k", "l", "m",
|
|
21
|
+
"n", "o", "p", "q", "r", "s", "t", "u", "v", "w", "x", "y", "z",
|
|
22
|
+
".", "!", "?", "-", "+", "#", "@", "$", "%", "&", "/", "*", "(", ")",
|
|
23
|
+
];
|
|
24
|
+
const GAP_BY_STYLE = {
|
|
25
|
+
roller3d: "gap-1",
|
|
26
|
+
flip: "gap-0.5",
|
|
27
|
+
neon: "gap-1",
|
|
28
|
+
fade: "gap-0.5",
|
|
29
|
+
discard: "gap-2",
|
|
30
|
+
matrix: "gap-0.5",
|
|
31
|
+
};
|
|
32
|
+
/**
|
|
33
|
+
* SgStringAnimator — anima caracter a caracter de uma string para outra.
|
|
34
|
+
*
|
|
35
|
+
* Suporta seis estilos de digit: "roller3d", "flip", "neon", "fade",
|
|
36
|
+
* "discard" e "matrix". A animacao e acionada via prop `autoStart` ou
|
|
37
|
+
* pelo metodo imperativo `startAnimation()`.
|
|
38
|
+
*
|
|
39
|
+
* @example
|
|
40
|
+
* // Animacao manual via ref
|
|
41
|
+
* const ref = React.useRef<SgStringAnimatorRef>(null);
|
|
42
|
+
* <SgStringAnimator ref={ref} sourceString="LUCIANO" targetString="MARTA" style="neon" />
|
|
43
|
+
* <button onClick={() => ref.current?.startAnimation()}>Animar</button>
|
|
44
|
+
*
|
|
45
|
+
* @example
|
|
46
|
+
* // Animacao automatica ao trocar o alvo
|
|
47
|
+
* const [target, setTarget] = React.useState("LUCIANO");
|
|
48
|
+
* <SgStringAnimator sourceString="LUCIANO" targetString={target} style="fade" autoStart />
|
|
49
|
+
* <button onClick={() => setTarget("MARTA")}>Trocar</button>
|
|
50
|
+
*/
|
|
51
|
+
export const SgStringAnimator = React.forwardRef(function SgStringAnimator({ sourceString, targetString, style = "roller3d", velocity = 50, emptyChar = " ", alignTo = "left", autoStart = false, fontSize = 32, charset = SG_STRING_ANIMATOR_DEFAULT_CHARSET, color, backgroundColor, className, }, ref) {
|
|
52
|
+
// Normalize emptyChar to a single character
|
|
53
|
+
const safeEmpty = emptyChar.charAt(0) || " ";
|
|
54
|
+
// Clamp velocity 1-100 and compute step delay:
|
|
55
|
+
// v=1 → ~600ms/char, v=50 → ~320ms/char, v=100 → ~41ms/char
|
|
56
|
+
const clamped = Math.min(100, Math.max(1, velocity));
|
|
57
|
+
const stepDelay = Math.round(600 - (clamped - 1) * 5.65);
|
|
58
|
+
// Max length determines how many digit positions to render
|
|
59
|
+
const maxLen = Math.max(sourceString.length, targetString.length, 1);
|
|
60
|
+
// Pad a string to maxLen using alignTo and safeEmpty
|
|
61
|
+
const pad = React.useCallback((s) => alignTo === "right"
|
|
62
|
+
? s.padStart(maxLen, safeEmpty)
|
|
63
|
+
: s.padEnd(maxLen, safeEmpty), [alignTo, maxLen, safeEmpty]);
|
|
64
|
+
const paddedSource = pad(sourceString);
|
|
65
|
+
const paddedTarget = pad(targetString);
|
|
66
|
+
// Visible characters for each position
|
|
67
|
+
const [displayChars, setDisplayChars] = React.useState(() => Array.from(paddedSource));
|
|
68
|
+
// Ref to cancel any in-progress animation
|
|
69
|
+
const cancelRef = React.useRef(null);
|
|
70
|
+
// Effective charset — always contains safeEmpty
|
|
71
|
+
const effectiveCharset = React.useMemo(() => (charset.includes(safeEmpty) ? charset : [safeEmpty, ...charset]), [charset, safeEmpty]);
|
|
72
|
+
// Core animation: step each character position from current to paddedTarget
|
|
73
|
+
const triggerAnimation = React.useCallback(() => {
|
|
74
|
+
cancelRef.current?.();
|
|
75
|
+
const targetChars = Array.from(paddedTarget);
|
|
76
|
+
let step = 0;
|
|
77
|
+
let cancelled = false;
|
|
78
|
+
cancelRef.current = () => {
|
|
79
|
+
cancelled = true;
|
|
80
|
+
};
|
|
81
|
+
function tick() {
|
|
82
|
+
if (cancelled || step >= targetChars.length)
|
|
83
|
+
return;
|
|
84
|
+
// Right-aligned strings animate from the rightmost position first (units digit first)
|
|
85
|
+
const i = alignTo === "right" ? targetChars.length - 1 - step : step;
|
|
86
|
+
step++;
|
|
87
|
+
setDisplayChars((prev) => {
|
|
88
|
+
const next = [...prev];
|
|
89
|
+
next[i] = targetChars[i] ?? safeEmpty;
|
|
90
|
+
return next;
|
|
91
|
+
});
|
|
92
|
+
if (step < targetChars.length) {
|
|
93
|
+
const id = window.setTimeout(tick, stepDelay);
|
|
94
|
+
cancelRef.current = () => {
|
|
95
|
+
cancelled = true;
|
|
96
|
+
window.clearTimeout(id);
|
|
97
|
+
};
|
|
98
|
+
}
|
|
99
|
+
}
|
|
100
|
+
tick();
|
|
101
|
+
}, [paddedTarget, stepDelay, alignTo]);
|
|
102
|
+
// Expose startAnimation via ref
|
|
103
|
+
React.useImperativeHandle(ref, () => ({ startAnimation: triggerAnimation }), [
|
|
104
|
+
triggerAnimation,
|
|
105
|
+
]);
|
|
106
|
+
// Reset displayChars when sourceString (or derived paddedSource) changes
|
|
107
|
+
React.useEffect(() => {
|
|
108
|
+
cancelRef.current?.();
|
|
109
|
+
setDisplayChars(Array.from(paddedSource));
|
|
110
|
+
}, [paddedSource]);
|
|
111
|
+
// Auto-start when targetString changes (or on first mount if autoStart)
|
|
112
|
+
// eslint-disable-next-line react-hooks/exhaustive-deps
|
|
113
|
+
React.useEffect(() => {
|
|
114
|
+
if (!autoStart)
|
|
115
|
+
return;
|
|
116
|
+
triggerAnimation();
|
|
117
|
+
}, [autoStart, paddedTarget]);
|
|
118
|
+
// Cleanup on unmount
|
|
119
|
+
React.useEffect(() => {
|
|
120
|
+
return () => {
|
|
121
|
+
cancelRef.current?.();
|
|
122
|
+
};
|
|
123
|
+
}, []);
|
|
124
|
+
const gapClass = GAP_BY_STYLE[style] ?? "gap-1";
|
|
125
|
+
function renderDigit(ch, i) {
|
|
126
|
+
const safeChar = ch || safeEmpty;
|
|
127
|
+
switch (style) {
|
|
128
|
+
case "flip":
|
|
129
|
+
return _jsx(SgFlipDigit, { value: safeChar, fontSize: fontSize }, i);
|
|
130
|
+
case "neon":
|
|
131
|
+
return (_jsx(SgNeonDigit, { value: safeChar, fontSize: fontSize, color: color, backgroundColor: backgroundColor }, i));
|
|
132
|
+
case "fade":
|
|
133
|
+
return (_jsx(SgFadeDigit, { value: safeChar, fontSize: fontSize, color: color, backgroundColor: backgroundColor }, i));
|
|
134
|
+
case "discard":
|
|
135
|
+
return (_jsx(SgDiscardDigit, { value: safeChar, fontSize: fontSize, color: color, backgroundColor: backgroundColor }, i));
|
|
136
|
+
case "matrix":
|
|
137
|
+
return (_jsx(SgMatrixDigit, { value: safeChar, color: color, backgroundColor: backgroundColor }, i));
|
|
138
|
+
case "roller3d":
|
|
139
|
+
default:
|
|
140
|
+
return (_jsx(SgRoller3DDigit, { value: effectiveCharset.includes(safeChar) ? safeChar : (effectiveCharset[0] ?? " "), items: effectiveCharset, fontSize: fontSize }, i));
|
|
141
|
+
}
|
|
142
|
+
}
|
|
143
|
+
return (_jsx("div", { className: cn("flex items-center", gapClass, className), children: displayChars.map((ch, i) => renderDigit(ch, i)) }));
|
|
144
|
+
});
|
|
145
|
+
SgStringAnimator.displayName = "SgStringAnimator";
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/gadgets/string-animator/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,kCAAkC,EAAE,MAAM,oBAAoB,CAAC;AAC1F,YAAY,EACV,qBAAqB,EACrB,mBAAmB,EACnB,qBAAqB,EACrB,qBAAqB,GACtB,MAAM,oBAAoB,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export { SgStringAnimator, SG_STRING_ANIMATOR_DEFAULT_CHARSET } from "./SgStringAnimator";
|
package/dist/i18n/en-US.json
CHANGED
|
@@ -72,5 +72,13 @@
|
|
|
72
72
|
"components.fab.resetConfirm": "Reset the button position?",
|
|
73
73
|
"components.fab.resetPosition": "Reset position",
|
|
74
74
|
"components.fab.yes": "Yes",
|
|
75
|
-
"components.fab.no": "No"
|
|
75
|
+
"components.fab.no": "No",
|
|
76
|
+
"components.dock.resetPosition": "Reset position",
|
|
77
|
+
"components.dock.resetConfirm": "Are you sure you want to reset the dock position to default?",
|
|
78
|
+
"components.dock.dropHere": "Drop here",
|
|
79
|
+
"components.actions.cancel": "Cancel",
|
|
80
|
+
"components.actions.confirm": "Confirm",
|
|
81
|
+
"components.rating.required": "Please provide a rating",
|
|
82
|
+
"components.rating.cancel": "Cancel rating",
|
|
83
|
+
"components.radiogroup.cancel": "No option"
|
|
76
84
|
}
|
package/dist/i18n/es.json
CHANGED
|
@@ -3,68 +3,68 @@
|
|
|
3
3
|
"components.wizard.next": "Siguiente",
|
|
4
4
|
"components.wizard.previous": "Anterior",
|
|
5
5
|
"components.wizard.finish": "Finalizar",
|
|
6
|
-
"components.password.show": "Mostrar
|
|
7
|
-
"components.password.hide": "Ocultar
|
|
8
|
-
"components.password.generate": "Generar
|
|
9
|
-
"components.password.common": "La
|
|
10
|
-
"components.password.minSize": "
|
|
11
|
-
"components.password.upper": "Al menos 1 letra
|
|
12
|
-
"components.password.lower": "Al menos 1 letra
|
|
13
|
-
"components.password.number": "Al menos 1
|
|
14
|
-
"components.password.special": "Al menos 1
|
|
6
|
+
"components.password.show": "Mostrar contraseña",
|
|
7
|
+
"components.password.hide": "Ocultar contraseña",
|
|
8
|
+
"components.password.generate": "Generar contraseña",
|
|
9
|
+
"components.password.common": "La contraseña es muy común. Elige una más fuerte.",
|
|
10
|
+
"components.password.minSize": "MÃnimo {min} caracteres.",
|
|
11
|
+
"components.password.upper": "Al menos 1 letra mayúscula.",
|
|
12
|
+
"components.password.lower": "Al menos 1 letra minúscula.",
|
|
13
|
+
"components.password.number": "Al menos 1 número.",
|
|
14
|
+
"components.password.special": "Al menos 1 carácter especial.",
|
|
15
15
|
"components.password.noRepeat": "No repetir caracteres en secuencia.",
|
|
16
16
|
"components.password.noSeqAsc": "No usar secuencias crecientes (ej: 1234, abcd).",
|
|
17
17
|
"components.password.noSeqDesc": "No usar secuencias decrecientes (ej: 4321, dcba).",
|
|
18
18
|
"components.inputs.required": "Campo obligatorio.",
|
|
19
|
-
"components.inputs.maxLength": "El campo debe tener como
|
|
19
|
+
"components.inputs.maxLength": "El campo debe tener como máximo {max} letra(s).",
|
|
20
20
|
"components.inputs.minLength": "El campo debe tener al menos {min} letra(s).",
|
|
21
21
|
"components.inputs.minWords": "El campo debe tener al menos {min} palabra(s).",
|
|
22
22
|
"components.inputs.textarea.required": "Este campo es obligatorio.",
|
|
23
|
-
"components.inputs.textarea.maxLength": "El texto debe tener como
|
|
23
|
+
"components.inputs.textarea.maxLength": "El texto debe tener como máximo {max} letra(s).",
|
|
24
24
|
"components.inputs.textarea.minLength": "El texto debe tener al menos {min} letra(s).",
|
|
25
25
|
"components.inputs.textarea.minWords": "El texto debe tener al menos {min} palabra(s).",
|
|
26
26
|
"components.inputs.textarea.minLines": "El texto debe tener al menos {min} linea(s).",
|
|
27
|
-
"components.inputs.cpf.length": "El CPF debe tener 11
|
|
28
|
-
"components.inputs.cpf.invalid": "CPF
|
|
29
|
-
"components.inputs.cnpj.length": "El CNPJ debe tener 14
|
|
30
|
-
"components.inputs.cnpj.invalid": "CNPJ
|
|
31
|
-
"components.inputs.postalCode.BR.length": "El CEP debe tener 8
|
|
32
|
-
"components.inputs.postalCode.BR.invalid": "CEP
|
|
33
|
-
"components.inputs.postalCode.PT.length": "El
|
|
34
|
-
"components.inputs.postalCode.PT.invalid": "
|
|
35
|
-
"components.inputs.postalCode.US.length": "El ZIP code debe tener 5 o 9
|
|
36
|
-
"components.inputs.postalCode.US.invalid": "ZIP code
|
|
37
|
-
"components.inputs.postalCode.ES.length": "El
|
|
38
|
-
"components.inputs.postalCode.ES.invalid": "
|
|
39
|
-
"components.inputs.postalCode.UY.length": "El
|
|
40
|
-
"components.inputs.postalCode.UY.invalid": "
|
|
41
|
-
"components.inputs.postalCode.AR.length": "El
|
|
42
|
-
"components.inputs.postalCode.AR.invalid": "
|
|
43
|
-
"components.inputs.postalCode.PY.length": "El
|
|
44
|
-
"components.inputs.postalCode.PY.invalid": "
|
|
45
|
-
"components.inputs.phone.invalid": "
|
|
46
|
-
"components.inputs.email.invalid": "Email
|
|
47
|
-
"components.inputs.email.tempInvalid": "Email temporal
|
|
48
|
-
"components.inputs.date.invalid": "Fecha
|
|
27
|
+
"components.inputs.cpf.length": "El CPF debe tener 11 dÃgitos.",
|
|
28
|
+
"components.inputs.cpf.invalid": "CPF inválido.",
|
|
29
|
+
"components.inputs.cnpj.length": "El CNPJ debe tener 14 dÃgitos.",
|
|
30
|
+
"components.inputs.cnpj.invalid": "CNPJ inválido.",
|
|
31
|
+
"components.inputs.postalCode.BR.length": "El CEP debe tener 8 dÃgitos.",
|
|
32
|
+
"components.inputs.postalCode.BR.invalid": "CEP inválido.",
|
|
33
|
+
"components.inputs.postalCode.PT.length": "El código postal debe tener 7 dÃgitos.",
|
|
34
|
+
"components.inputs.postalCode.PT.invalid": "Código postal inválido.",
|
|
35
|
+
"components.inputs.postalCode.US.length": "El ZIP code debe tener 5 o 9 dÃgitos.",
|
|
36
|
+
"components.inputs.postalCode.US.invalid": "ZIP code inválido.",
|
|
37
|
+
"components.inputs.postalCode.ES.length": "El código postal debe tener 5 dÃgitos.",
|
|
38
|
+
"components.inputs.postalCode.ES.invalid": "Código postal inválido.",
|
|
39
|
+
"components.inputs.postalCode.UY.length": "El código postal debe tener 5 dÃgitos.",
|
|
40
|
+
"components.inputs.postalCode.UY.invalid": "Código postal inválido.",
|
|
41
|
+
"components.inputs.postalCode.AR.length": "El código postal debe tener 4 u 8 caracteres.",
|
|
42
|
+
"components.inputs.postalCode.AR.invalid": "Código postal inválido.",
|
|
43
|
+
"components.inputs.postalCode.PY.length": "El código postal debe tener 6 dÃgitos.",
|
|
44
|
+
"components.inputs.postalCode.PY.invalid": "Código postal inválido.",
|
|
45
|
+
"components.inputs.phone.invalid": "Teléfono inválido.",
|
|
46
|
+
"components.inputs.email.invalid": "Email inválido.",
|
|
47
|
+
"components.inputs.email.tempInvalid": "Email temporal inválido.",
|
|
48
|
+
"components.inputs.date.invalid": "Fecha inválida.",
|
|
49
49
|
"components.inputs.date.range": "La fecha debe estar entre {min} y {max}.",
|
|
50
50
|
"components.inputs.date.min": "La fecha debe ser a partir de {min}.",
|
|
51
51
|
"components.inputs.date.max": "La fecha debe ser hasta {max}.",
|
|
52
52
|
"components.inputs.birthdate.required": "Informe la fecha de nacimiento.",
|
|
53
|
-
"components.validators.password.empty": "La
|
|
54
|
-
"components.validators.password.minSize": "
|
|
55
|
-
"components.validators.password.upper": "debe contener letra
|
|
56
|
-
"components.validators.password.lower": "debe contener letra
|
|
57
|
-
"components.validators.password.number": "debe contener
|
|
58
|
-
"components.validators.password.special": "debe contener
|
|
53
|
+
"components.validators.password.empty": "La contraseña no puede estar vacÃa.",
|
|
54
|
+
"components.validators.password.minSize": "mÃnimo de {min} caracteres",
|
|
55
|
+
"components.validators.password.upper": "debe contener letra mayúscula",
|
|
56
|
+
"components.validators.password.lower": "debe contener letra minúscula",
|
|
57
|
+
"components.validators.password.number": "debe contener número",
|
|
58
|
+
"components.validators.password.special": "debe contener carácter especial",
|
|
59
59
|
"components.validators.password.sequence": "no puede contener secuencias (ej.: abc, 123)",
|
|
60
60
|
"components.validators.password.repeated": "no puede contener caracteres repetidos en serie (ej.: aaa, 1111)",
|
|
61
|
-
"components.validators.password.invalid": "
|
|
62
|
-
"components.validators.birthdate.configMissing": "
|
|
63
|
-
"components.validators.birthdate.configRange": "
|
|
64
|
-
"components.validators.birthdate.invalidDate": "Fecha
|
|
65
|
-
"components.validators.birthdate.ageBetween": "La edad debe estar entre {min} y {max}
|
|
66
|
-
"components.validators.birthdate.ageMin": "La edad debe ser al menos {min}
|
|
67
|
-
"components.validators.birthdate.ageMax": "La edad debe ser como
|
|
61
|
+
"components.validators.password.invalid": "Contraseña inválida: {reasons}",
|
|
62
|
+
"components.validators.birthdate.configMissing": "Configuración inválida: informe minAge y/o maxAge.",
|
|
63
|
+
"components.validators.birthdate.configRange": "Configuración inválida: minAge debe ser <= maxAge.",
|
|
64
|
+
"components.validators.birthdate.invalidDate": "Fecha inválida.",
|
|
65
|
+
"components.validators.birthdate.ageBetween": "La edad debe estar entre {min} y {max} años.",
|
|
66
|
+
"components.validators.birthdate.ageMin": "La edad debe ser al menos {min} años.",
|
|
67
|
+
"components.validators.birthdate.ageMax": "La edad debe ser como máximo {max} años.",
|
|
68
68
|
"components.autocomplete.empty": "No se encontraron registros.",
|
|
69
69
|
"components.autocomplete.loading": "Cargando...",
|
|
70
70
|
"components.inputs.number.min": "El valor debe ser al menos {min}.",
|
|
@@ -72,5 +72,13 @@
|
|
|
72
72
|
"components.fab.resetConfirm": "\u00bfRestablecer la posici\u00f3n del bot\u00f3n?",
|
|
73
73
|
"components.fab.resetPosition": "Restablecer posici\u00f3n",
|
|
74
74
|
"components.fab.yes": "S\u00ed",
|
|
75
|
-
"components.fab.no": "No"
|
|
75
|
+
"components.fab.no": "No",
|
|
76
|
+
"components.dock.resetPosition": "Restablecer posici\u00f3n",
|
|
77
|
+
"components.dock.resetConfirm": "\u00bfEstá seguro de que desea restablecer la posici\u00f3n del dock al valor predeterminado?",
|
|
78
|
+
"components.dock.dropHere": "Suelta aqu\u00ed",
|
|
79
|
+
"components.actions.cancel": "Cancelar",
|
|
80
|
+
"components.actions.confirm": "Confirmar",
|
|
81
|
+
"components.rating.required": "Por favor, proporcione una calificaci\u00f3n",
|
|
82
|
+
"components.rating.cancel": "Cancelar calificaci\u00f3n",
|
|
83
|
+
"components.radiogroup.cancel": "Ninguna opci\u00f3n"
|
|
76
84
|
}
|
package/dist/i18n/index.d.ts
CHANGED
|
@@ -96,6 +96,14 @@ export declare const componentsMessagesPtBr: {
|
|
|
96
96
|
"components.fab.resetPosition": string;
|
|
97
97
|
"components.fab.yes": string;
|
|
98
98
|
"components.fab.no": string;
|
|
99
|
+
"components.dock.resetPosition": string;
|
|
100
|
+
"components.dock.resetConfirm": string;
|
|
101
|
+
"components.dock.dropHere": string;
|
|
102
|
+
"components.actions.cancel": string;
|
|
103
|
+
"components.actions.confirm": string;
|
|
104
|
+
"components.rating.required": string;
|
|
105
|
+
"components.rating.cancel": string;
|
|
106
|
+
"components.radiogroup.cancel": string;
|
|
99
107
|
};
|
|
100
108
|
export declare const componentsMessagesPtPt: {
|
|
101
109
|
"components.actions.clear": string;
|
|
@@ -172,6 +180,14 @@ export declare const componentsMessagesPtPt: {
|
|
|
172
180
|
"components.fab.resetPosition": string;
|
|
173
181
|
"components.fab.yes": string;
|
|
174
182
|
"components.fab.no": string;
|
|
183
|
+
"components.dock.resetPosition": string;
|
|
184
|
+
"components.dock.resetConfirm": string;
|
|
185
|
+
"components.dock.dropHere": string;
|
|
186
|
+
"components.actions.cancel": string;
|
|
187
|
+
"components.actions.confirm": string;
|
|
188
|
+
"components.rating.required": string;
|
|
189
|
+
"components.rating.cancel": string;
|
|
190
|
+
"components.radiogroup.cancel": string;
|
|
175
191
|
};
|
|
176
192
|
export declare const componentsMessagesEnUs: {
|
|
177
193
|
"components.actions.clear": string;
|
|
@@ -248,6 +264,14 @@ export declare const componentsMessagesEnUs: {
|
|
|
248
264
|
"components.fab.resetPosition": string;
|
|
249
265
|
"components.fab.yes": string;
|
|
250
266
|
"components.fab.no": string;
|
|
267
|
+
"components.dock.resetPosition": string;
|
|
268
|
+
"components.dock.resetConfirm": string;
|
|
269
|
+
"components.dock.dropHere": string;
|
|
270
|
+
"components.actions.cancel": string;
|
|
271
|
+
"components.actions.confirm": string;
|
|
272
|
+
"components.rating.required": string;
|
|
273
|
+
"components.rating.cancel": string;
|
|
274
|
+
"components.radiogroup.cancel": string;
|
|
251
275
|
};
|
|
252
276
|
export declare const componentsMessagesEs: {
|
|
253
277
|
"components.actions.clear": string;
|
|
@@ -324,5 +348,13 @@ export declare const componentsMessagesEs: {
|
|
|
324
348
|
"components.fab.resetPosition": string;
|
|
325
349
|
"components.fab.yes": string;
|
|
326
350
|
"components.fab.no": string;
|
|
351
|
+
"components.dock.resetPosition": string;
|
|
352
|
+
"components.dock.resetConfirm": string;
|
|
353
|
+
"components.dock.dropHere": string;
|
|
354
|
+
"components.actions.cancel": string;
|
|
355
|
+
"components.actions.confirm": string;
|
|
356
|
+
"components.rating.required": string;
|
|
357
|
+
"components.rating.cancel": string;
|
|
358
|
+
"components.radiogroup.cancel": string;
|
|
327
359
|
};
|
|
328
360
|
//# sourceMappingURL=index.d.ts.map
|
package/dist/i18n/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/i18n/index.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,MAAM,OAAO,CAAC;AAM1B,MAAM,MAAM,kBAAkB,GAAG,OAAO,GAAG,OAAO,GAAG,OAAO,GAAG,IAAI,GAAG,CAAC,MAAM,GAAG,EAAE,CAAC,CAAC;AAEpF,MAAM,MAAM,oBAAoB,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;AAC1D,MAAM,MAAM,+BAA+B,GAAG,MAAM,CAAC,MAAM,EAAE,oBAAoB,CAAC,CAAC;AAEnF,MAAM,MAAM,gBAAgB,GAAG;IAC7B,MAAM,EAAE,kBAAkB,CAAC;IAC3B,QAAQ,EAAE,oBAAoB,CAAC;CAChC,CAAC;AAEF,MAAM,MAAM,qBAAqB,GAAG;IAClC,MAAM,CAAC,EAAE,kBAAkB,CAAC;IAC5B,QAAQ,CAAC,EAAE,oBAAoB,GAAG,+BAA+B,CAAC;CACnE,CAAC;AAwBF,wBAAgB,iBAAiB,CAAC,KAAK,EAAE,qBAAqB,QAY7D;AAED,wBAAgB,iBAAiB,IAAI,gBAAgB,CAOpD;AAED,wBAAgB,qBAAqB,CAAC,KAAK,CAAC,EAAE,qBAAqB,GAAG,gBAAgB,CAOrF;AAID,wBAAgB,wBAAwB,CAAC,KAAK,EAAE;IAC9C,MAAM,CAAC,EAAE,kBAAkB,CAAC;IAC5B,QAAQ,CAAC,EAAE,oBAAoB,GAAG,+BAA+B,CAAC;IAClE,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAC;CAC3B,gFAUA;AAED,wBAAgB,iBAAiB,IAAI,gBAAgB,CAEpD;AAED,wBAAgB,aAAa,CAAC,QAAQ,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,CAAC,GAAG,MAAM,CAMhG;AAED,wBAAgB,CAAC,CACf,IAAI,EAAE,gBAAgB,GAAG,IAAI,GAAG,SAAS,EACzC,GAAG,EAAE,MAAM,EACX,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,CAAC,GACvC,MAAM,CAIR;AAED,eAAO,MAAM,sBAAsB
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/i18n/index.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,MAAM,OAAO,CAAC;AAM1B,MAAM,MAAM,kBAAkB,GAAG,OAAO,GAAG,OAAO,GAAG,OAAO,GAAG,IAAI,GAAG,CAAC,MAAM,GAAG,EAAE,CAAC,CAAC;AAEpF,MAAM,MAAM,oBAAoB,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;AAC1D,MAAM,MAAM,+BAA+B,GAAG,MAAM,CAAC,MAAM,EAAE,oBAAoB,CAAC,CAAC;AAEnF,MAAM,MAAM,gBAAgB,GAAG;IAC7B,MAAM,EAAE,kBAAkB,CAAC;IAC3B,QAAQ,EAAE,oBAAoB,CAAC;CAChC,CAAC;AAEF,MAAM,MAAM,qBAAqB,GAAG;IAClC,MAAM,CAAC,EAAE,kBAAkB,CAAC;IAC5B,QAAQ,CAAC,EAAE,oBAAoB,GAAG,+BAA+B,CAAC;CACnE,CAAC;AAwBF,wBAAgB,iBAAiB,CAAC,KAAK,EAAE,qBAAqB,QAY7D;AAED,wBAAgB,iBAAiB,IAAI,gBAAgB,CAOpD;AAED,wBAAgB,qBAAqB,CAAC,KAAK,CAAC,EAAE,qBAAqB,GAAG,gBAAgB,CAOrF;AAID,wBAAgB,wBAAwB,CAAC,KAAK,EAAE;IAC9C,MAAM,CAAC,EAAE,kBAAkB,CAAC;IAC5B,QAAQ,CAAC,EAAE,oBAAoB,GAAG,+BAA+B,CAAC;IAClE,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAC;CAC3B,gFAUA;AAED,wBAAgB,iBAAiB,IAAI,gBAAgB,CAEpD;AAED,wBAAgB,aAAa,CAAC,QAAQ,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,CAAC,GAAG,MAAM,CAMhG;AAED,wBAAgB,CAAC,CACf,IAAI,EAAE,gBAAgB,GAAG,IAAI,GAAG,SAAS,EACzC,GAAG,EAAE,MAAM,EACX,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,CAAC,GACvC,MAAM,CAIR;AAED,eAAO,MAAM,sBAAsB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAAO,CAAC;AAC3C,eAAO,MAAM,sBAAsB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAAO,CAAC;AAC3C,eAAO,MAAM,sBAAsB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAAO,CAAC;AAC3C,eAAO,MAAM,oBAAoB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAAK,CAAC"}
|
package/dist/i18n/pt-BR.json
CHANGED
|
@@ -72,5 +72,13 @@
|
|
|
72
72
|
"components.fab.resetConfirm": "Resetar posi\u00e7\u00e3o do bot\u00e3o?",
|
|
73
73
|
"components.fab.resetPosition": "Resetar posi\u00e7\u00e3o",
|
|
74
74
|
"components.fab.yes": "Sim",
|
|
75
|
-
"components.fab.no": "N\u00e3o"
|
|
75
|
+
"components.fab.no": "N\u00e3o",
|
|
76
|
+
"components.dock.resetPosition": "Resetar posi\u00e7\u00e3o",
|
|
77
|
+
"components.dock.resetConfirm": "Tem certeza que deseja resetar a posi\u00e7\u00e3o do dock para o padr\u00e3o?",
|
|
78
|
+
"components.dock.dropHere": "Solte aqui",
|
|
79
|
+
"components.actions.cancel": "Cancelar",
|
|
80
|
+
"components.actions.confirm": "Confirmar",
|
|
81
|
+
"components.rating.required": "Por favor, forne\u00e7a uma avalia\u00e7\u00e3o",
|
|
82
|
+
"components.rating.cancel": "Cancelar avalia\u00e7\u00e3o",
|
|
83
|
+
"components.radiogroup.cancel": "Nenhuma op\u00e7\u00e3o"
|
|
76
84
|
}
|
package/dist/i18n/pt-PT.json
CHANGED
|
@@ -72,5 +72,13 @@
|
|
|
72
72
|
"components.fab.resetConfirm": "Repor a posi\u00e7\u00e3o do bot\u00e3o?",
|
|
73
73
|
"components.fab.resetPosition": "Repor posi\u00e7\u00e3o",
|
|
74
74
|
"components.fab.yes": "Sim",
|
|
75
|
-
"components.fab.no": "N\u00e3o"
|
|
75
|
+
"components.fab.no": "N\u00e3o",
|
|
76
|
+
"components.dock.resetPosition": "Repor posi\u00e7\u00e3o",
|
|
77
|
+
"components.dock.resetConfirm": "Tem a certeza de que deseja repor a posi\u00e7\u00e3o do dock para o padr\u00e3o?",
|
|
78
|
+
"components.dock.dropHere": "Largue aqui",
|
|
79
|
+
"components.actions.cancel": "Cancelar",
|
|
80
|
+
"components.actions.confirm": "Confirmar",
|
|
81
|
+
"components.rating.required": "Por favor, forne\u00e7a uma avalia\u00e7\u00e3o",
|
|
82
|
+
"components.rating.cancel": "Cancelar avalia\u00e7\u00e3o",
|
|
83
|
+
"components.radiogroup.cancel": "Nenhuma op\u00e7\u00e3o"
|
|
76
84
|
}
|