@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.
- package/README.md +33 -0
- package/assets/icons/newsletter-success.svg +85 -0
- package/assets/icons/not-found.svg +36 -0
- package/assets/logos/sca/sca-s-gradient.svg +9 -0
- package/dist/components/layout/footer/footer.d.ts +1 -0
- package/dist/components/layout/footer/footer.js +11 -0
- package/dist/components/layout/footer/footer.module.scss +198 -0
- package/dist/components/shared/autoplayer/autoplayer-row/autoplayer-row.d.ts +8 -0
- package/dist/components/shared/autoplayer/autoplayer-row/autoplayer-row.js +11 -0
- package/dist/components/shared/autoplayer/autoplayer-row/autoplayer-row.module.scss +43 -0
- package/dist/components/shared/autoplayer/autoplayer.d.ts +1 -0
- package/dist/components/shared/autoplayer/autoplayer.js +16 -0
- package/dist/components/shared/autoplayer/autoplayer.module.scss +20 -0
- package/dist/components/shared/footer-banner/footer-banner.d.ts +1 -0
- package/dist/components/shared/footer-banner/footer-banner.js +9 -0
- package/dist/components/shared/footer-banner/footer-banner.module.scss +103 -0
- package/dist/components/shared/footer-banner-autoplayer/footer-banner-autoplayer.d.ts +3 -0
- package/dist/components/shared/footer-banner-autoplayer/footer-banner-autoplayer.js +10 -0
- package/dist/components/shared/footer-banner-autoplayer/footer-banner-autoplayer.module.scss +108 -0
- package/dist/components/shared/index-header/index-header.d.ts +2 -0
- package/dist/components/shared/index-header/index-header.js +35 -0
- package/dist/components/shared/index-header/index-header.module.scss +17 -0
- package/dist/components/shared/index-header/indexed-section-button/indexed-section-button.d.ts +6 -0
- package/dist/components/shared/index-header/indexed-section-button/indexed-section-button.js +8 -0
- package/dist/components/shared/index-header/indexed-section-button/indexed-section-button.module.scss +38 -0
- package/dist/components/shared/info-header/info-header.d.ts +18 -0
- package/dist/components/shared/info-header/info-header.js +14 -0
- package/dist/components/shared/info-header/info-header.module.scss +10 -0
- package/dist/components/shared/newsletter-modal/newsletter-modal.d.ts +4 -0
- package/dist/components/shared/newsletter-modal/newsletter-modal.js +10 -0
- package/dist/components/shared/newsletter-modal/newsletter-modal.module.scss +47 -0
- package/dist/components/shared/newsletter-modal-dialog/newsletter-modal-dialog.d.ts +5 -0
- package/dist/components/shared/newsletter-modal-dialog/newsletter-modal-dialog.js +11 -0
- package/dist/components/shared/newsletter-modal-dialog/newsletter-modal-dialog.module.scss +15 -0
- package/dist/components/shared/newsletter-strip/newsletter-strip.d.ts +7 -0
- package/dist/components/shared/newsletter-strip/newsletter-strip.js +10 -0
- package/dist/components/shared/newsletter-strip/newsletter-strip.module.scss +128 -0
- package/dist/components/shared/phone/phone.d.ts +6 -0
- package/dist/components/shared/phone/phone.js +16 -0
- package/dist/components/shared/phone/phone.module.scss +322 -0
- package/dist/components/shared/success-cases/success-cases-swiper/success-case-card/success-case-card.d.ts +10 -0
- package/dist/components/shared/success-cases/success-cases-swiper/success-case-card/success-case-card.js +9 -0
- package/dist/components/shared/success-cases/success-cases-swiper/success-case-card/success-case-card.module.scss +154 -0
- package/dist/components/shared/success-cases/success-cases-swiper/success-cases-swiper.d.ts +3 -0
- package/dist/components/shared/success-cases/success-cases-swiper/success-cases-swiper.js +15 -0
- package/dist/components/shared/success-cases/success-cases-swiper/success-cases-swiper.module.scss +81 -0
- package/dist/components/shared/success-cases/success-cases.d.ts +5 -0
- package/dist/components/shared/success-cases/success-cases.js +9 -0
- package/dist/components/shared/success-cases/success-cases.module.scss +60 -0
- package/dist/components/shared/support-sticky-button/support-sticky-button.d.ts +1 -0
- package/dist/components/shared/support-sticky-button/support-sticky-button.js +7 -0
- package/dist/components/shared/support-sticky-button/support-sticky-button.module.scss +63 -0
- package/dist/components/ui/accordion/accordion.d.ts +4 -0
- package/dist/components/ui/accordion/accordion.js +7 -0
- package/dist/components/ui/accordion/accordion.module.scss +114 -0
- package/dist/components/ui/button/button.d.ts +34 -0
- package/dist/components/ui/button/button.js +31 -0
- package/dist/components/ui/button/button.module.scss +22 -0
- package/dist/components/ui/decal/decal.d.ts +6 -0
- package/dist/components/ui/decal/decal.js +9 -0
- package/dist/components/ui/decal/decal.module.scss +7 -0
- package/dist/components/ui/icon-with-background/icon-with-background.d.ts +13 -0
- package/dist/components/ui/icon-with-background/icon-with-background.js +22 -0
- package/dist/components/ui/icon-with-background/icon-with-background.module.scss +18 -0
- package/dist/components/ui/progress-bar/progress-bar.d.ts +5 -0
- package/dist/components/ui/progress-bar/progress-bar.js +9 -0
- package/dist/components/ui/progress-bar/progress-bar.module.scss +12 -0
- package/dist/components/ui/pulse-effect/pulse-effect.d.ts +1 -0
- package/dist/components/ui/pulse-effect/pulse-effect.js +5 -0
- package/dist/components/ui/pulse-effect/pulse-effect.module.scss +63 -0
- package/dist/components/ui/stacks/stacks.d.ts +1 -0
- package/dist/components/ui/stacks/stacks.js +5 -0
- package/dist/components/ui/stacks/stacks.module.scss +32 -0
- package/dist/components/ui/subtitle/subtitle.d.ts +5 -0
- package/dist/components/ui/subtitle/subtitle.js +7 -0
- package/dist/components/ui/subtitle/subtitle.module.scss +8 -0
- package/dist/components/ui/tag-label/tag-label.d.ts +18 -0
- package/dist/components/ui/tag-label/tag-label.js +15 -0
- package/dist/components/ui/tag-label/tag-label.module.scss +17 -0
- package/dist/components/ui/three-dots/three-dots.d.ts +3 -0
- package/dist/components/ui/three-dots/three-dots.js +5 -0
- package/dist/components/ui/three-dots/three-dots.module.scss +28 -0
- package/dist/components/ui/title/title.d.ts +8 -0
- package/dist/components/ui/title/title.js +10 -0
- package/dist/components/ui/title/title.module.scss +8 -0
- package/dist/fonts.d.ts +2 -0
- package/dist/fonts.js +9 -0
- package/dist/index.d.ts +26 -0
- package/dist/index.js +29 -0
- package/dist/styles/variables.scss +50 -0
- package/dist/types/index.d.ts +7 -0
- package/dist/types/index.js +1 -0
- 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,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,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,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,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 @@
|
|
|
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,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,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,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,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
|
+
}
|