@prosistemas/sca-web-kit 1.0.0

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 (93) hide show
  1. package/README.md +33 -0
  2. package/assets/icons/newsletter-success.svg +85 -0
  3. package/assets/icons/not-found.svg +36 -0
  4. package/assets/logos/sca/sca-s-gradient.svg +9 -0
  5. package/dist/components/layout/footer/footer.d.ts +1 -0
  6. package/dist/components/layout/footer/footer.js +11 -0
  7. package/dist/components/layout/footer/footer.module.scss +198 -0
  8. package/dist/components/shared/autoplayer/autoplayer-row/autoplayer-row.d.ts +8 -0
  9. package/dist/components/shared/autoplayer/autoplayer-row/autoplayer-row.js +11 -0
  10. package/dist/components/shared/autoplayer/autoplayer-row/autoplayer-row.module.scss +43 -0
  11. package/dist/components/shared/autoplayer/autoplayer.d.ts +1 -0
  12. package/dist/components/shared/autoplayer/autoplayer.js +16 -0
  13. package/dist/components/shared/autoplayer/autoplayer.module.scss +20 -0
  14. package/dist/components/shared/footer-banner/footer-banner.d.ts +1 -0
  15. package/dist/components/shared/footer-banner/footer-banner.js +9 -0
  16. package/dist/components/shared/footer-banner/footer-banner.module.scss +103 -0
  17. package/dist/components/shared/footer-banner-autoplayer/footer-banner-autoplayer.d.ts +3 -0
  18. package/dist/components/shared/footer-banner-autoplayer/footer-banner-autoplayer.js +10 -0
  19. package/dist/components/shared/footer-banner-autoplayer/footer-banner-autoplayer.module.scss +108 -0
  20. package/dist/components/shared/index-header/index-header.d.ts +2 -0
  21. package/dist/components/shared/index-header/index-header.js +35 -0
  22. package/dist/components/shared/index-header/index-header.module.scss +17 -0
  23. package/dist/components/shared/index-header/indexed-section-button/indexed-section-button.d.ts +6 -0
  24. package/dist/components/shared/index-header/indexed-section-button/indexed-section-button.js +8 -0
  25. package/dist/components/shared/index-header/indexed-section-button/indexed-section-button.module.scss +38 -0
  26. package/dist/components/shared/info-header/info-header.d.ts +18 -0
  27. package/dist/components/shared/info-header/info-header.js +14 -0
  28. package/dist/components/shared/info-header/info-header.module.scss +10 -0
  29. package/dist/components/shared/newsletter-modal/newsletter-modal.d.ts +4 -0
  30. package/dist/components/shared/newsletter-modal/newsletter-modal.js +10 -0
  31. package/dist/components/shared/newsletter-modal/newsletter-modal.module.scss +47 -0
  32. package/dist/components/shared/newsletter-modal-dialog/newsletter-modal-dialog.d.ts +5 -0
  33. package/dist/components/shared/newsletter-modal-dialog/newsletter-modal-dialog.js +11 -0
  34. package/dist/components/shared/newsletter-modal-dialog/newsletter-modal-dialog.module.scss +15 -0
  35. package/dist/components/shared/newsletter-strip/newsletter-strip.d.ts +7 -0
  36. package/dist/components/shared/newsletter-strip/newsletter-strip.js +10 -0
  37. package/dist/components/shared/newsletter-strip/newsletter-strip.module.scss +128 -0
  38. package/dist/components/shared/phone/phone.d.ts +6 -0
  39. package/dist/components/shared/phone/phone.js +16 -0
  40. package/dist/components/shared/phone/phone.module.scss +322 -0
  41. package/dist/components/shared/success-cases/success-cases-swiper/success-case-card/success-case-card.d.ts +10 -0
  42. package/dist/components/shared/success-cases/success-cases-swiper/success-case-card/success-case-card.js +9 -0
  43. package/dist/components/shared/success-cases/success-cases-swiper/success-case-card/success-case-card.module.scss +154 -0
  44. package/dist/components/shared/success-cases/success-cases-swiper/success-cases-swiper.d.ts +3 -0
  45. package/dist/components/shared/success-cases/success-cases-swiper/success-cases-swiper.js +15 -0
  46. package/dist/components/shared/success-cases/success-cases-swiper/success-cases-swiper.module.scss +81 -0
  47. package/dist/components/shared/success-cases/success-cases.d.ts +5 -0
  48. package/dist/components/shared/success-cases/success-cases.js +9 -0
  49. package/dist/components/shared/success-cases/success-cases.module.scss +60 -0
  50. package/dist/components/shared/support-sticky-button/support-sticky-button.d.ts +1 -0
  51. package/dist/components/shared/support-sticky-button/support-sticky-button.js +7 -0
  52. package/dist/components/shared/support-sticky-button/support-sticky-button.module.scss +63 -0
  53. package/dist/components/ui/accordion/accordion.d.ts +4 -0
  54. package/dist/components/ui/accordion/accordion.js +7 -0
  55. package/dist/components/ui/accordion/accordion.module.scss +114 -0
  56. package/dist/components/ui/button/button.d.ts +34 -0
  57. package/dist/components/ui/button/button.js +31 -0
  58. package/dist/components/ui/button/button.module.scss +22 -0
  59. package/dist/components/ui/decal/decal.d.ts +6 -0
  60. package/dist/components/ui/decal/decal.js +9 -0
  61. package/dist/components/ui/decal/decal.module.scss +7 -0
  62. package/dist/components/ui/icon-with-background/icon-with-background.d.ts +13 -0
  63. package/dist/components/ui/icon-with-background/icon-with-background.js +22 -0
  64. package/dist/components/ui/icon-with-background/icon-with-background.module.scss +18 -0
  65. package/dist/components/ui/progress-bar/progress-bar.d.ts +5 -0
  66. package/dist/components/ui/progress-bar/progress-bar.js +9 -0
  67. package/dist/components/ui/progress-bar/progress-bar.module.scss +12 -0
  68. package/dist/components/ui/pulse-effect/pulse-effect.d.ts +1 -0
  69. package/dist/components/ui/pulse-effect/pulse-effect.js +5 -0
  70. package/dist/components/ui/pulse-effect/pulse-effect.module.scss +63 -0
  71. package/dist/components/ui/stacks/stacks.d.ts +1 -0
  72. package/dist/components/ui/stacks/stacks.js +5 -0
  73. package/dist/components/ui/stacks/stacks.module.scss +32 -0
  74. package/dist/components/ui/subtitle/subtitle.d.ts +5 -0
  75. package/dist/components/ui/subtitle/subtitle.js +7 -0
  76. package/dist/components/ui/subtitle/subtitle.module.scss +8 -0
  77. package/dist/components/ui/tag-label/tag-label.d.ts +18 -0
  78. package/dist/components/ui/tag-label/tag-label.js +15 -0
  79. package/dist/components/ui/tag-label/tag-label.module.scss +17 -0
  80. package/dist/components/ui/three-dots/three-dots.d.ts +3 -0
  81. package/dist/components/ui/three-dots/three-dots.js +5 -0
  82. package/dist/components/ui/three-dots/three-dots.module.scss +28 -0
  83. package/dist/components/ui/title/title.d.ts +8 -0
  84. package/dist/components/ui/title/title.js +10 -0
  85. package/dist/components/ui/title/title.module.scss +8 -0
  86. package/dist/fonts.d.ts +2 -0
  87. package/dist/fonts.js +9 -0
  88. package/dist/index.d.ts +26 -0
  89. package/dist/index.js +29 -0
  90. package/dist/styles/variables.scss +50 -0
  91. package/dist/types/index.d.ts +7 -0
  92. package/dist/types/index.js +1 -0
  93. package/package.json +39 -0
@@ -0,0 +1,63 @@
1
+ .support-sticky-button {
2
+ cursor: pointer;
3
+
4
+ position: fixed;
5
+ bottom: 32px;
6
+ right: 32px;
7
+
8
+ z-index: 5;
9
+ border-radius: 8px 8px 2px 8px;
10
+ padding: 12px;
11
+ background: var(--auxiliary-orange);
12
+
13
+ display: flex;
14
+ align-items: center;
15
+ gap: 32px;
16
+
17
+ transition: background .3s;
18
+
19
+ @media (max-width: 425px) {
20
+ // TODO: Ver se vai fazer isso mobile (insany não fez)
21
+ display: none;
22
+ }
23
+
24
+ .left {
25
+ display: flex;
26
+ align-items: center;
27
+ gap: 12px;
28
+
29
+ .person-wrapper {
30
+ overflow: hidden;
31
+ position: relative;
32
+
33
+ width: 32px;
34
+ height: 32px;
35
+
36
+ background: white;
37
+ border-radius: 50%;
38
+
39
+ .person {
40
+ position: absolute;
41
+ bottom: -30px;
42
+ left: 50%;
43
+ transform: translateX(-50%);
44
+
45
+ }
46
+ }
47
+
48
+ .text {
49
+ color: white;
50
+ font-size: 14px;
51
+ font-weight: 500;
52
+ }
53
+ }
54
+
55
+ .right {
56
+ display: flex;
57
+ align-items: center;
58
+ }
59
+ }
60
+
61
+ .support-sticky-button:hover {
62
+ background: var(--auxiliary-red);
63
+ }
@@ -0,0 +1,4 @@
1
+ export default function StyledAccordion({ question, answer, }: {
2
+ question: string;
3
+ answer: string;
4
+ }): import("react/jsx-runtime").JSX.Element;
@@ -0,0 +1,7 @@
1
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
+ import styles from './accordion.module.scss';
3
+ import * as Accordion from '@radix-ui/react-accordion';
4
+ import { MinusIcon, PlusIcon } from '@phosphor-icons/react/dist/ssr';
5
+ export default function StyledAccordion({ question, answer, }) {
6
+ return (_jsx(Accordion.Root, { type: "single", collapsible: true, className: styles['accordion'], children: _jsxs(Accordion.Item, { value: "item-1", children: [_jsxs(Accordion.Header, { className: styles['accordion-header'], children: [question, _jsxs(Accordion.Trigger, { className: styles['trigger'], "aria-label": 'Bot\u00E3o para encolher ou expandir a pergunta frequente', children: [_jsx(PlusIcon, { size: 20, color: 'white', weight: 'bold', className: styles['plus'] }), _jsx(MinusIcon, { size: 20, color: 'white', weight: 'bold', className: styles['minus'] })] })] }), _jsx(Accordion.Content, { className: styles['answer'], children: answer })] }) }));
7
+ }
@@ -0,0 +1,114 @@
1
+ .accordion {
2
+ width: 100%;
3
+ min-height: 90px;
4
+
5
+ color: var(--neutral500);
6
+ font-size: 16px;
7
+ background: var(--neutral100);
8
+ border-radius: 16px;
9
+ padding: 32px;
10
+
11
+ overflow: hidden;
12
+
13
+ @media (max-width: 425px) {
14
+ padding: 24px;
15
+ }
16
+
17
+ .accordion-header {
18
+ display: flex;
19
+ justify-content: space-between;
20
+ align-items: center;
21
+ gap: 64px;
22
+
23
+ @media (max-width: 425px) {
24
+ gap: 32px;
25
+ }
26
+
27
+ @media (max-width: 375px) {
28
+ gap: 24px;
29
+ font-size: 16px;
30
+ }
31
+
32
+ .trigger {
33
+ min-width: 32px;
34
+ min-height: 32px;
35
+ background: var(--auxiliary-orange);
36
+ border: none;
37
+ border-radius: 50%;
38
+
39
+ display: flex;
40
+ justify-content: center;
41
+ align-items: center;
42
+ cursor: pointer;
43
+ position: relative;
44
+
45
+ .plus,
46
+ .minus {
47
+ position: absolute;
48
+ transition: opacity 0.3s;
49
+ }
50
+ }
51
+
52
+ .trigger[data-state="open"] {
53
+ .plus {
54
+ opacity: 0;
55
+ }
56
+
57
+ .minus {
58
+ opacity: 1;
59
+ }
60
+ }
61
+
62
+ .trigger[data-state="closed"] {
63
+ .plus {
64
+ opacity: 1;
65
+ }
66
+
67
+ .minus {
68
+ opacity: 0;
69
+ }
70
+ }
71
+ }
72
+
73
+ .answer {
74
+ font-size: 14px;
75
+ color: var(--neutral400);
76
+ margin-top: 16px;
77
+ }
78
+
79
+ .answer[data-state="open"] {
80
+ animation: slideDown 300ms ease-in-out;
81
+ }
82
+
83
+ .answer[data-state="closed"] {
84
+ animation: slideUp 300ms ease-out;
85
+ }
86
+ }
87
+
88
+ @keyframes slideDown {
89
+ from {
90
+ height: 0;
91
+ opacity: 0;
92
+ margin-top: 0;
93
+ }
94
+
95
+ to {
96
+ height: var(--radix-accordion-content-height);
97
+ opacity: 1;
98
+ margin-top: 16px;
99
+ }
100
+ }
101
+
102
+ @keyframes slideUp {
103
+ from {
104
+ opacity: 1;
105
+ height: var(--radix-accordion-content-height);
106
+ margin-top: 16px;
107
+ }
108
+
109
+ to {
110
+ height: 0;
111
+ opacity: 0;
112
+ margin-top: 0;
113
+ }
114
+ }
@@ -0,0 +1,34 @@
1
+ import { IconProps, IconWeight } from '@phosphor-icons/react';
2
+ interface ButtonProps {
3
+ label?: string;
4
+ className?: string;
5
+ loading?: boolean;
6
+ loadingSize?: number;
7
+ loadingColor?: string;
8
+ loadingClassName?: string;
9
+ icon?: React.ComponentType<IconProps>;
10
+ iconSize?: number;
11
+ iconColor?: string;
12
+ iconWeight?: IconWeight;
13
+ iconClassName?: string;
14
+ leadingIcon?: React.ComponentType<IconProps>;
15
+ leadingIconSize?: number;
16
+ leadingIconColor?: string;
17
+ leadingIconWeight?: IconWeight;
18
+ leadingIconClassName?: string;
19
+ trailingIcon?: React.ComponentType<IconProps>;
20
+ trailingIconSize?: number;
21
+ trailingIconColor?: string;
22
+ trailingIconWeight?: IconWeight;
23
+ trailingIconClassName?: string;
24
+ href?: string;
25
+ internalHref?: string;
26
+ target?: React.HTMLAttributeAnchorTarget;
27
+ type?: "button" | "submit" | "reset";
28
+ round?: boolean;
29
+ onClick?: () => void;
30
+ ariaLabel?: string;
31
+ disabled?: boolean;
32
+ }
33
+ export default function Button({ label, className, loading, loadingSize, loadingColor, loadingClassName, icon: Icon, iconSize, iconColor, iconWeight, iconClassName, leadingIcon: LeadingIcon, leadingIconSize, leadingIconColor, leadingIconWeight, leadingIconClassName, trailingIcon: TrailingIcon, trailingIconSize, trailingIconColor, trailingIconWeight, trailingIconClassName, href, internalHref, target, type, round, onClick, ariaLabel, disabled, }: ButtonProps): import("react/jsx-runtime").JSX.Element;
34
+ export {};
@@ -0,0 +1,31 @@
1
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
+ import styles from './button.module.scss';
3
+ import { inter } from '../../../fonts';
4
+ import { PulseLoader } from 'react-spinners';
5
+ import Link from 'next/link';
6
+ export default function Button({ label, className,
7
+ // Carregando (overwrite no ícone/label central caso true)
8
+ loading = false, loadingSize = 5, loadingColor = 'white', loadingClassName,
9
+ // Ícone central
10
+ icon: Icon, iconSize, iconColor, iconWeight, iconClassName,
11
+ // Ícone da esquerda
12
+ leadingIcon: LeadingIcon, leadingIconSize, leadingIconColor, leadingIconWeight, leadingIconClassName,
13
+ // Ícone da direita
14
+ trailingIcon: TrailingIcon, trailingIconSize, trailingIconColor, trailingIconWeight, trailingIconClassName,
15
+ // Etc
16
+ href, internalHref, target, type, round = false, onClick, ariaLabel, disabled = false, }) {
17
+ const button = (_jsxs("button", { onClick: onClick, type: type, disabled: disabled, "aria-label": ariaLabel, className: `${styles['button']} ${className}`, style: {
18
+ borderRadius: round ? '50%' : '8px',
19
+ padding: round ? '8px' : '16px 42px',
20
+ cursor: disabled ? 'not-allowed' : 'pointer',
21
+ }, children: [LeadingIcon && (
22
+ // Ícone da esquerda
23
+ _jsx(LeadingIcon, { size: leadingIconSize, color: leadingIconColor, weight: leadingIconWeight, className: leadingIconClassName })), loading ?
24
+ _jsx(PulseLoader, { size: loadingSize, color: loadingColor, className: loadingClassName })
25
+ : Icon ? (
26
+ // Ícone central ou label
27
+ _jsx(Icon, { size: iconSize, color: iconColor, weight: iconWeight, className: iconClassName })) : (_jsx("p", { className: inter.className, children: label })), TrailingIcon && (
28
+ // Ícone da direita
29
+ _jsx(TrailingIcon, { size: trailingIconSize, color: trailingIconColor, weight: trailingIconWeight, className: trailingIconClassName }))] }));
30
+ return href ? _jsx("a", { href: href, target: target, children: button }) : internalHref ? _jsx(Link, { href: internalHref, target: target, children: button }) : button;
31
+ }
@@ -0,0 +1,22 @@
1
+ .button {
2
+ display: flex;
3
+ align-items: center;
4
+ justify-content: center;
5
+ gap: 8px;
6
+
7
+ border: none;
8
+ outline: none;
9
+
10
+ background: var(--auxiliary-orange);
11
+ border-radius: 8px;
12
+ cursor: pointer;
13
+
14
+ color: #fff;
15
+ font-size: 16px;
16
+ font-variation-settings: 'wght' 600;
17
+ transition: background 0.3s, border 0.3s, opacity 0.3s;
18
+ }
19
+
20
+ .button:hover {
21
+ background: var(--auxiliary-red);
22
+ }
@@ -0,0 +1,6 @@
1
+ export default function Decal({ className, opacity, width, color, }: {
2
+ className?: string;
3
+ opacity?: string;
4
+ width?: string;
5
+ color?: string;
6
+ }): import("react/jsx-runtime").JSX.Element;
@@ -0,0 +1,9 @@
1
+ import { jsx as _jsx } from "react/jsx-runtime";
2
+ import styles from './decal.module.scss';
3
+ export default function Decal({ className, opacity, width, color, }) {
4
+ return (_jsx("div", { className: `${styles['decal']} ${className}`, style: {
5
+ opacity: opacity ? opacity : '1',
6
+ width: width ? width : '50px',
7
+ background: color ? color : '',
8
+ } }));
9
+ }
@@ -0,0 +1,7 @@
1
+ .decal {
2
+ width: 50px;
3
+ height: 5px;
4
+
5
+ border-radius: 50px;
6
+ background: var(--neutral300);
7
+ }
@@ -0,0 +1,13 @@
1
+ import { IconProps, IconWeight } from '@phosphor-icons/react';
2
+ export default function IconWithBackground({ icon: Icon, className, iconClassName, iconSize, iconColor, alt, weight, round, dark, size, }: {
3
+ icon: React.ComponentType<IconProps> | string;
4
+ className?: string;
5
+ iconClassName?: string;
6
+ iconSize?: number;
7
+ iconColor?: string;
8
+ alt?: string;
9
+ weight?: IconWeight;
10
+ round?: boolean;
11
+ dark?: boolean;
12
+ size?: number;
13
+ }): import("react/jsx-runtime").JSX.Element;
@@ -0,0 +1,22 @@
1
+ import { jsx as _jsx } from "react/jsx-runtime";
2
+ import styles from './icon-with-background.module.scss';
3
+ import Image from 'next/image';
4
+ export default function IconWithBackground({ icon: Icon, className = '', iconClassName = '', iconSize, iconColor, alt = "Ícone sem descrição", weight = 'regular', round = false, dark = false, size = 32, }) {
5
+ if (typeof Icon === 'string') {
6
+ return (_jsx("div", { className: `
7
+ ${styles['background']}
8
+ ${className}
9
+ ${round ? styles['round'] : ''}
10
+ ${dark ? styles['dark'] : ''}
11
+ `, children: _jsx(Image, { src: Icon, alt: alt, width: iconSize, height: iconSize, color: iconColor }) }));
12
+ }
13
+ return (_jsx("div", { className: `
14
+ ${styles['background']}
15
+ ${className}
16
+ ${round ? styles['round'] : ''}
17
+ ${dark ? styles['dark'] : ''}
18
+ `, style: {
19
+ width: size ? `${size}px` : '32px',
20
+ height: size ? `${size}px` : '32px',
21
+ }, children: _jsx(Icon, { className: iconClassName, size: iconSize, weight: weight, color: iconColor }) }));
22
+ }
@@ -0,0 +1,18 @@
1
+ .background {
2
+ background-color: var(--light100);
3
+ width: 32px;
4
+ height: 32px;
5
+ border-radius: 5px;
6
+ display: flex;
7
+ align-items: center;
8
+ justify-content: center;
9
+ }
10
+
11
+ .round {
12
+ border-radius: 50%;
13
+ }
14
+
15
+ .dark {
16
+ background: var(--dark800);
17
+ color: white;
18
+ }
@@ -0,0 +1,5 @@
1
+ export default function ProgressBar({ className, progressWidth, progressHeight, }: {
2
+ className?: string;
3
+ progressWidth?: string;
4
+ progressHeight?: string;
5
+ }): import("react/jsx-runtime").JSX.Element;
@@ -0,0 +1,9 @@
1
+ import { jsx as _jsx } from "react/jsx-runtime";
2
+ import styles from './progress-bar.module.scss';
3
+ export default function ProgressBar({ className, progressWidth, progressHeight, }) {
4
+ const widthStyle = {
5
+ width: progressWidth ? progressWidth : "0%",
6
+ height: progressHeight ? progressHeight : "8px",
7
+ };
8
+ return (_jsx("div", { className: `${styles['progress-bar']} ${className}`, children: _jsx("div", { className: `${styles['progress']}`, style: widthStyle }) }));
9
+ }
@@ -0,0 +1,12 @@
1
+ .progress-bar {
2
+ width: 100%;
3
+ height: 8px;
4
+ background-color: var(--neutral200);
5
+ border-radius: 6px;
6
+
7
+ .progress {
8
+ background-color: var(--light300);
9
+ height: 8px;
10
+ border-radius: 6px;
11
+ }
12
+ }
@@ -0,0 +1 @@
1
+ export default function PulseEffect(): import("react/jsx-runtime").JSX.Element;
@@ -0,0 +1,5 @@
1
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
+ import styles from './pulse-effect.module.scss';
3
+ export default function PulseEffect() {
4
+ return (_jsxs("div", { className: styles["pulse-effect"], children: [_jsx("div", { className: styles["pulse-ring"] }), _jsx("div", { className: styles["pulse-ring"] }), _jsx("div", { className: styles["pulse-ring"] }), _jsx("div", { className: styles["pulse-ring"] }), _jsx("div", { className: styles["pulse-ring"] }), _jsx("div", { className: styles["pulse-ring"] })] }));
5
+ }
@@ -0,0 +1,63 @@
1
+ .pulse-effect {
2
+ z-index: 0;
3
+ will-change: transform, opacity;
4
+ transform: translateZ(0);
5
+ position: absolute;
6
+ width: 661px;
7
+ height: 661px;
8
+ color: #a47c48;
9
+ font-size: 4em;
10
+ border-radius: 50%;
11
+ opacity: 0.8;
12
+
13
+ .pulse-ring {
14
+ position: absolute;
15
+ left: -15px;
16
+ right: -15px;
17
+ top: -15px;
18
+ bottom: -15px;
19
+ opacity: 0;
20
+ border: 1px solid var(--light500);
21
+ border-radius: 50%;
22
+ animation: pulse 12s linear infinite;
23
+ }
24
+
25
+ .pulse-ring:nth-child(1) {
26
+ animation-delay: 0s;
27
+ }
28
+
29
+ .pulse-ring:nth-child(2) {
30
+ animation-delay: 2s;
31
+ }
32
+
33
+ .pulse-ring:nth-child(3) {
34
+ animation-delay: 4s;
35
+ }
36
+
37
+ .pulse-ring:nth-child(4) {
38
+ animation-delay: 6s;
39
+ }
40
+
41
+ .pulse-ring:nth-child(5) {
42
+ animation-delay: 8s;
43
+ }
44
+
45
+ .pulse-ring:nth-child(6) {
46
+ animation-delay: 10s;
47
+ }
48
+ }
49
+
50
+ @keyframes pulse {
51
+ 0% {
52
+ transform: scale(0.5);
53
+ opacity: 0.5;
54
+ }
55
+
56
+ 65% {
57
+ opacity: 0;
58
+ }
59
+
60
+ 100% {
61
+ transform: scale(3);
62
+ }
63
+ }
@@ -0,0 +1 @@
1
+ export default function Stacks(): import("react/jsx-runtime").JSX.Element;
@@ -0,0 +1,5 @@
1
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
+ import styles from './stacks.module.scss';
3
+ export default function Stacks() {
4
+ return (_jsxs("div", { className: styles['stack'], children: [_jsx("div", { className: styles['inner-stack'] }), _jsx("div", { className: styles['mid-stack'] }), _jsx("div", { className: styles['outer-stack'] })] }));
5
+ }
@@ -0,0 +1,32 @@
1
+ .stack {
2
+ display: flex;
3
+ flex-direction: column;
4
+ align-items: center;
5
+
6
+ width: 100%;
7
+
8
+ .inner-stack,
9
+ .mid-stack,
10
+ .outer-stack {
11
+ border: 1px solid var(--light600);
12
+ border-bottom: none;
13
+ border-radius: 7px 7px 0 0;
14
+ }
15
+
16
+ .inner-stack {
17
+ width: 95%;
18
+ height: 10px;
19
+ opacity: 0.2;
20
+ }
21
+
22
+ .mid-stack {
23
+ width: 97.5%;
24
+ height: 16px;
25
+ opacity: 0.5;
26
+ }
27
+
28
+ .outer-stack {
29
+ width: 100%;
30
+ height: 95px;
31
+ }
32
+ }
@@ -0,0 +1,5 @@
1
+ export default function Subtitle({ text, className, dark, }: {
2
+ text: string;
3
+ className?: string;
4
+ dark?: boolean;
5
+ }): import("react/jsx-runtime").JSX.Element;
@@ -0,0 +1,7 @@
1
+ import { jsx as _jsx } from "react/jsx-runtime";
2
+ import styles from './subtitle.module.scss';
3
+ export default function Subtitle({ text, className, dark = false, }) {
4
+ return (_jsx("p", { className: `${styles['subtitle']} ${className}`, style: {
5
+ color: dark ? 'var(--neutral100)' : 'var(--neutral600)',
6
+ }, children: text }));
7
+ }
@@ -0,0 +1,8 @@
1
+ .subtitle {
2
+ color: var(--neutral600);
3
+ font-weight: 400;
4
+
5
+ @media (max-width: 768px) {
6
+ font-size: 14px;
7
+ }
8
+ }
@@ -0,0 +1,18 @@
1
+ import { IconProps, IconWeight } from '@phosphor-icons/react';
2
+ interface TagLabelProps {
3
+ label: string;
4
+ className?: string;
5
+ dark?: boolean;
6
+ leadingIcon?: React.ComponentType<IconProps>;
7
+ leadingIconSize?: number;
8
+ leadingIconColor?: string;
9
+ leadingIconWeight?: IconWeight;
10
+ leadingIconClassName?: string;
11
+ trailingIcon?: React.ComponentType<IconProps>;
12
+ trailingIconSize?: number;
13
+ trailingIconColor?: string;
14
+ trailingIconWeight?: IconWeight;
15
+ trailingIconClassName?: string;
16
+ }
17
+ export default function TagLabel({ label, className, dark, leadingIcon: LeadingIcon, leadingIconSize, leadingIconColor, leadingIconWeight, leadingIconClassName, trailingIcon: TrailingIcon, trailingIconSize, trailingIconColor, trailingIconWeight, trailingIconClassName, }: TagLabelProps): import("react/jsx-runtime").JSX.Element;
18
+ export {};
@@ -0,0 +1,15 @@
1
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
+ import styles from './tag-label.module.scss';
3
+ import { montserrat } from '../../../fonts';
4
+ export default function TagLabel({ label, className, dark, leadingIcon: LeadingIcon, leadingIconSize, leadingIconColor, leadingIconWeight, leadingIconClassName, trailingIcon: TrailingIcon, trailingIconSize, trailingIconColor, trailingIconWeight, trailingIconClassName, }) {
5
+ const darkStyle = !dark ? {} : {
6
+ border: '1px solid var(--dark900)',
7
+ background: 'var(--dark800)',
8
+ color: 'white',
9
+ };
10
+ return (_jsxs("div", { style: darkStyle, className: `${styles['tag-label']} ${montserrat.className} ${className}`, children: [LeadingIcon && (
11
+ // Ícone da esquerda
12
+ _jsx(LeadingIcon, { size: leadingIconSize, color: leadingIconColor, weight: leadingIconWeight, className: leadingIconClassName })), label, TrailingIcon && (
13
+ // Ícone da direita
14
+ _jsx(TrailingIcon, { size: trailingIconSize, color: trailingIconColor, weight: trailingIconWeight, className: trailingIconClassName }))] }));
15
+ }
@@ -0,0 +1,17 @@
1
+ .tag-label {
2
+ display: flex;
3
+ align-items: center;
4
+ justify-content: center;
5
+ gap: 6px;
6
+
7
+ background: var(--light100);
8
+ width: fit-content;
9
+
10
+ padding: 8px 16px;
11
+ border: 1px solid var(--light200);
12
+ border-radius: 50px;
13
+
14
+ color: var(--dark700);
15
+ font-size: 14px;
16
+ font-weight: 600;
17
+ }
@@ -0,0 +1,3 @@
1
+ export default function ThreeDots({ className }: {
2
+ className?: string;
3
+ }): import("react/jsx-runtime").JSX.Element;
@@ -0,0 +1,5 @@
1
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
+ import styles from './three-dots.module.scss';
3
+ export default function ThreeDots({ className }) {
4
+ return (_jsxs("div", { className: `${styles['dots']} ${className}`, children: [_jsx("div", { className: styles['dot1'] }), _jsx("div", { className: styles['dot2'] }), _jsx("div", { className: styles['dot3'] })] }));
5
+ }
@@ -0,0 +1,28 @@
1
+ .dots {
2
+ display: flex;
3
+ flex-wrap: nowrap;
4
+ align-items: center;
5
+ gap: 7px;
6
+ padding-left: 20px;
7
+
8
+ .dot1,
9
+ .dot2,
10
+ .dot3 {
11
+ width: 10px;
12
+ height: 10px;
13
+ border-radius: 100%;
14
+ background: var(--neutral000);
15
+ }
16
+
17
+ .dot1 {
18
+ opacity: 0.8;
19
+ }
20
+
21
+ .dot2 {
22
+ opacity: 0.6;
23
+ }
24
+
25
+ .dot3 {
26
+ opacity: 0.4;
27
+ }
28
+ }
@@ -0,0 +1,8 @@
1
+ export default function Title({ text, className, fontSize, fontWeight, dark, id, }: {
2
+ text: string;
3
+ className?: string;
4
+ fontSize?: string;
5
+ fontWeight?: string;
6
+ dark?: boolean;
7
+ id?: string;
8
+ }): import("react/jsx-runtime").JSX.Element;
@@ -0,0 +1,10 @@
1
+ import { jsx as _jsx } from "react/jsx-runtime";
2
+ import styles from './title.module.scss';
3
+ import { montserrat } from '../../../fonts';
4
+ export default function Title({ text, className, fontSize, fontWeight, dark = false, id, }) {
5
+ return (_jsx("h1", { id: id, className: `${styles['title']} ${className} ${montserrat.className}`, style: {
6
+ fontSize: fontSize,
7
+ fontWeight: fontWeight,
8
+ color: dark ? `var(--neutral100)` : `var(--neutral700)`,
9
+ }, children: text }));
10
+ }
@@ -0,0 +1,8 @@
1
+ .title {
2
+ font-size: 32px;
3
+ font-weight: 600;
4
+
5
+ @media (max-width: 768px) {
6
+ font-size: 24px;
7
+ }
8
+ }