@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.
Files changed (155) hide show
  1. package/dist/buttons/SgFloatActionButton.d.ts.map +1 -1
  2. package/dist/buttons/SgFloatActionButton.js +168 -38
  3. package/dist/commons/SgAvatar.d.ts +66 -0
  4. package/dist/commons/SgAvatar.d.ts.map +1 -0
  5. package/dist/commons/SgAvatar.js +136 -0
  6. package/dist/commons/SgSkeleton.d.ts +16 -0
  7. package/dist/commons/SgSkeleton.d.ts.map +1 -0
  8. package/dist/commons/SgSkeleton.js +58 -0
  9. package/dist/commons/SgToaster.d.ts +9 -0
  10. package/dist/commons/SgToaster.d.ts.map +1 -1
  11. package/dist/commons/SgToaster.js +86 -17
  12. package/dist/digits/discard-digit/SgDiscardDigit.d.ts +39 -0
  13. package/dist/digits/discard-digit/SgDiscardDigit.d.ts.map +1 -0
  14. package/dist/digits/discard-digit/SgDiscardDigit.js +303 -0
  15. package/dist/digits/discard-digit/index.d.ts +3 -0
  16. package/dist/digits/discard-digit/index.d.ts.map +1 -0
  17. package/dist/digits/discard-digit/index.js +1 -0
  18. package/dist/digits/fade-digit/SgFadeDigit.d.ts +27 -0
  19. package/dist/digits/fade-digit/SgFadeDigit.d.ts.map +1 -0
  20. package/dist/digits/fade-digit/SgFadeDigit.js +85 -0
  21. package/dist/digits/fade-digit/index.d.ts +3 -0
  22. package/dist/digits/fade-digit/index.d.ts.map +1 -0
  23. package/dist/digits/fade-digit/index.js +1 -0
  24. package/dist/digits/flip-digit/SgFlipDigit.d.ts +27 -0
  25. package/dist/digits/flip-digit/SgFlipDigit.d.ts.map +1 -0
  26. package/dist/digits/flip-digit/SgFlipDigit.js +70 -0
  27. package/dist/digits/flip-digit/index.d.ts.map +1 -0
  28. package/dist/digits/matrix-digit/SgMatrixDigit.d.ts +32 -0
  29. package/dist/digits/matrix-digit/SgMatrixDigit.d.ts.map +1 -0
  30. package/dist/digits/matrix-digit/SgMatrixDigit.js +86 -0
  31. package/dist/digits/matrix-digit/index.d.ts +3 -0
  32. package/dist/digits/matrix-digit/index.d.ts.map +1 -0
  33. package/dist/digits/matrix-digit/index.js +1 -0
  34. package/dist/digits/neon-digit/SgNeonDigit.d.ts +37 -0
  35. package/dist/digits/neon-digit/SgNeonDigit.d.ts.map +1 -0
  36. package/dist/digits/neon-digit/SgNeonDigit.js +59 -0
  37. package/dist/digits/neon-digit/index.d.ts +3 -0
  38. package/dist/digits/neon-digit/index.d.ts.map +1 -0
  39. package/dist/digits/neon-digit/index.js +1 -0
  40. package/dist/digits/roller3d-digit/SgRoller3DDigit.d.ts +37 -0
  41. package/dist/digits/roller3d-digit/SgRoller3DDigit.d.ts.map +1 -0
  42. package/dist/digits/roller3d-digit/SgRoller3DDigit.js +47 -0
  43. package/dist/digits/roller3d-digit/index.d.ts +3 -0
  44. package/dist/digits/roller3d-digit/index.d.ts.map +1 -0
  45. package/dist/digits/roller3d-digit/index.js +1 -0
  46. package/dist/environment/SgEnvironmentProvider.d.ts +1 -0
  47. package/dist/environment/SgEnvironmentProvider.d.ts.map +1 -1
  48. package/dist/environment/SgEnvironmentProvider.js +51 -12
  49. package/dist/gadgets/clock/SgClock.d.ts +3 -1
  50. package/dist/gadgets/clock/SgClock.d.ts.map +1 -1
  51. package/dist/gadgets/clock/SgClock.js +111 -180
  52. package/dist/gadgets/clock/SgTimeProvider.d.ts +1 -0
  53. package/dist/gadgets/clock/SgTimeProvider.d.ts.map +1 -1
  54. package/dist/gadgets/clock/SgTimeProvider.js +11 -4
  55. package/dist/gadgets/gauge/SgLinearGauge.d.ts +59 -0
  56. package/dist/gadgets/gauge/SgLinearGauge.d.ts.map +1 -0
  57. package/dist/gadgets/gauge/SgLinearGauge.js +258 -0
  58. package/dist/gadgets/gauge/SgRadialGauge.d.ts +73 -0
  59. package/dist/gadgets/gauge/SgRadialGauge.d.ts.map +1 -0
  60. package/dist/gadgets/gauge/SgRadialGauge.js +311 -0
  61. package/dist/gadgets/gauge/index.d.ts +5 -0
  62. package/dist/gadgets/gauge/index.d.ts.map +1 -0
  63. package/dist/gadgets/gauge/index.js +2 -0
  64. package/dist/gadgets/qr-code/SgQRCode.d.ts +25 -0
  65. package/dist/gadgets/qr-code/SgQRCode.d.ts.map +1 -0
  66. package/dist/gadgets/qr-code/SgQRCode.js +75 -0
  67. package/dist/gadgets/qr-code/index.d.ts +3 -0
  68. package/dist/gadgets/qr-code/index.d.ts.map +1 -0
  69. package/dist/gadgets/qr-code/index.js +1 -0
  70. package/dist/gadgets/string-animator/SgStringAnimator.d.ts +91 -0
  71. package/dist/gadgets/string-animator/SgStringAnimator.d.ts.map +1 -0
  72. package/dist/gadgets/string-animator/SgStringAnimator.js +145 -0
  73. package/dist/gadgets/string-animator/index.d.ts +3 -0
  74. package/dist/gadgets/string-animator/index.d.ts.map +1 -0
  75. package/dist/gadgets/string-animator/index.js +1 -0
  76. package/dist/i18n/en-US.json +9 -1
  77. package/dist/i18n/es.json +55 -47
  78. package/dist/i18n/index.d.ts +32 -0
  79. package/dist/i18n/index.d.ts.map +1 -1
  80. package/dist/i18n/pt-BR.json +9 -1
  81. package/dist/i18n/pt-PT.json +9 -1
  82. package/dist/index.d.ts +53 -5
  83. package/dist/index.d.ts.map +1 -1
  84. package/dist/index.js +25 -1
  85. package/dist/inputs/SgAutocomplete.js +21 -5
  86. package/dist/inputs/SgCombobox.d.ts +26 -0
  87. package/dist/inputs/SgCombobox.d.ts.map +1 -0
  88. package/dist/inputs/SgCombobox.js +354 -0
  89. package/dist/inputs/SgInputOTP.d.ts.map +1 -1
  90. package/dist/inputs/SgInputOTP.js +9 -2
  91. package/dist/inputs/SgRadioGroup.d.ts +37 -0
  92. package/dist/inputs/SgRadioGroup.d.ts.map +1 -0
  93. package/dist/inputs/SgRadioGroup.js +139 -0
  94. package/dist/inputs/SgRating.d.ts +55 -0
  95. package/dist/inputs/SgRating.d.ts.map +1 -0
  96. package/dist/inputs/SgRating.js +135 -0
  97. package/dist/inputs/SgSlider.d.ts +20 -0
  98. package/dist/inputs/SgSlider.d.ts.map +1 -0
  99. package/dist/inputs/SgSlider.js +40 -0
  100. package/dist/inputs/SgStepperInput.d.ts +22 -0
  101. package/dist/inputs/SgStepperInput.d.ts.map +1 -0
  102. package/dist/inputs/SgStepperInput.js +51 -0
  103. package/dist/inputs/SgTextEditor.d.ts +1 -0
  104. package/dist/inputs/SgTextEditor.d.ts.map +1 -1
  105. package/dist/inputs/SgTextEditor.js +19 -3
  106. package/dist/inputs/SgToggleSwitch.d.ts +36 -0
  107. package/dist/inputs/SgToggleSwitch.d.ts.map +1 -0
  108. package/dist/inputs/SgToggleSwitch.js +174 -0
  109. package/dist/layout/SgAccordion.d.ts +39 -0
  110. package/dist/layout/SgAccordion.d.ts.map +1 -0
  111. package/dist/layout/SgAccordion.js +116 -0
  112. package/dist/layout/SgBreadcrumb.d.ts +33 -0
  113. package/dist/layout/SgBreadcrumb.d.ts.map +1 -0
  114. package/dist/layout/SgBreadcrumb.js +121 -0
  115. package/dist/layout/SgCarousel.d.ts +43 -0
  116. package/dist/layout/SgCarousel.d.ts.map +1 -0
  117. package/dist/layout/SgCarousel.js +166 -0
  118. package/dist/layout/SgDockLayout.d.ts +14 -0
  119. package/dist/layout/SgDockLayout.d.ts.map +1 -1
  120. package/dist/layout/SgDockLayout.js +145 -13
  121. package/dist/layout/SgDockScreen.d.ts +15 -0
  122. package/dist/layout/SgDockScreen.d.ts.map +1 -0
  123. package/dist/layout/SgDockScreen.js +13 -0
  124. package/dist/layout/SgDockZone.d.ts.map +1 -1
  125. package/dist/layout/SgDockZone.js +36 -2
  126. package/dist/layout/SgExpandablePanel.d.ts +50 -0
  127. package/dist/layout/SgExpandablePanel.d.ts.map +1 -0
  128. package/dist/layout/SgExpandablePanel.js +302 -0
  129. package/dist/layout/SgMainPanel.d.ts.map +1 -1
  130. package/dist/layout/SgMainPanel.js +36 -14
  131. package/dist/layout/SgMenu.d.ts +91 -0
  132. package/dist/layout/SgMenu.d.ts.map +1 -0
  133. package/dist/layout/SgMenu.js +939 -0
  134. package/dist/layout/SgPageControl.d.ts +49 -0
  135. package/dist/layout/SgPageControl.d.ts.map +1 -0
  136. package/dist/layout/SgPageControl.js +152 -0
  137. package/dist/layout/SgPanel.d.ts.map +1 -1
  138. package/dist/layout/SgPanel.js +10 -1
  139. package/dist/layout/SgScreen.d.ts +2 -0
  140. package/dist/layout/SgScreen.d.ts.map +1 -1
  141. package/dist/layout/SgScreen.js +4 -2
  142. package/dist/layout/SgToolBar.d.ts +9 -3
  143. package/dist/layout/SgToolBar.d.ts.map +1 -1
  144. package/dist/layout/SgToolBar.js +461 -55
  145. package/dist/menus/SgDockMenu.d.ts +62 -0
  146. package/dist/menus/SgDockMenu.d.ts.map +1 -0
  147. package/dist/menus/SgDockMenu.js +480 -0
  148. package/dist/others/SgPlayground.js +73 -73
  149. package/package.json +72 -57
  150. package/dist/gadgets/flip-digit/SgFlipDigit.d.ts +0 -23
  151. package/dist/gadgets/flip-digit/SgFlipDigit.d.ts.map +0 -1
  152. package/dist/gadgets/flip-digit/SgFlipDigit.js +0 -118
  153. package/dist/gadgets/flip-digit/index.d.ts.map +0 -1
  154. /package/dist/{gadgets → digits}/flip-digit/index.d.ts +0 -0
  155. /package/dist/{gadgets → digits}/flip-digit/index.js +0 -0
@@ -0,0 +1,2 @@
1
+ export { SgLinearGauge } from "./SgLinearGauge";
2
+ export { SgRadialGauge } from "./SgRadialGauge";
@@ -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,3 @@
1
+ export { SgQRCode } from "./SgQRCode";
2
+ export type { SgQRCodeProps, SgQRCodeErrorCorrectionLevel } from "./SgQRCode";
3
+ //# sourceMappingURL=index.d.ts.map
@@ -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,3 @@
1
+ export { SgStringAnimator, SG_STRING_ANIMATOR_DEFAULT_CHARSET } from "./SgStringAnimator";
2
+ export type { SgStringAnimatorProps, SgStringAnimatorRef, SgStringAnimatorStyle, SgStringAnimatorAlign, } from "./SgStringAnimator";
3
+ //# sourceMappingURL=index.d.ts.map
@@ -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";
@@ -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 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.",
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 máximo {max} letra(s).",
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 máximo {max} letra(s).",
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 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.",
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 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",
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": "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.",
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
  }
@@ -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
@@ -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;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAAO,CAAC;AAC3C,eAAO,MAAM,sBAAsB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAAO,CAAC;AAC3C,eAAO,MAAM,sBAAsB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAAO,CAAC;AAC3C,eAAO,MAAM,oBAAoB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAAK,CAAC"}
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"}
@@ -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
  }
@@ -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
  }