@prosistemas/sca-web-kit 2.2.1 → 2.2.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/components/layout/topnav/mobile-nav/mobile-nav.d.ts +1 -0
- package/dist/components/layout/topnav/mobile-nav/mobile-nav.js +11 -0
- package/dist/components/layout/topnav/mobile-nav/mobile-nav.module.scss +128 -0
- package/dist/components/layout/topnav/mobile-nav/nav-accordion/nav-accordion-link/nav-accordion-link.d.ts +4 -0
- package/dist/components/layout/topnav/mobile-nav/nav-accordion/nav-accordion-link/nav-accordion-link.js +5 -0
- package/dist/components/layout/topnav/mobile-nav/nav-accordion/nav-accordion-link/nav-accordion-link.module.scss +5 -0
- package/dist/components/layout/topnav/mobile-nav/nav-accordion/nav-accordion.d.ts +4 -0
- package/dist/components/layout/topnav/mobile-nav/nav-accordion/nav-accordion.js +7 -0
- package/dist/components/layout/topnav/mobile-nav/nav-accordion/nav-accordion.module.scss +125 -0
- package/dist/components/layout/topnav/navlinks/card/card.d.ts +6 -0
- package/dist/components/layout/topnav/navlinks/card/card.js +7 -0
- package/dist/components/layout/topnav/navlinks/card/card.module.scss +34 -0
- package/dist/components/layout/topnav/navlinks/dropdown-menu-trigger/dropdown-menu-trigger.d.ts +6 -0
- package/dist/components/layout/topnav/navlinks/dropdown-menu-trigger/dropdown-menu-trigger.js +13 -0
- package/dist/components/layout/topnav/navlinks/dropdown-menu-trigger/dropdown-menu-trigger.module.scss +33 -0
- package/dist/components/layout/topnav/navlinks/more/more.d.ts +5 -0
- package/dist/components/layout/topnav/navlinks/more/more.js +14 -0
- package/dist/components/layout/topnav/navlinks/more/more.module.scss +60 -0
- package/dist/components/layout/topnav/navlinks/navlinks.d.ts +1 -0
- package/dist/components/layout/topnav/navlinks/navlinks.js +29 -0
- package/dist/components/layout/topnav/navlinks/resources/resources-card/resources-card.d.ts +6 -0
- package/dist/components/layout/topnav/navlinks/resources/resources-card/resources-card.js +6 -0
- package/dist/components/layout/topnav/navlinks/resources/resources-card/resources-card.module.scss +26 -0
- package/dist/components/layout/topnav/navlinks/resources/resources.d.ts +5 -0
- package/dist/components/layout/topnav/navlinks/resources/resources.js +63 -0
- package/dist/components/layout/topnav/navlinks/resources/resources.module.scss +132 -0
- package/dist/components/layout/topnav/navlinks/segments/segments.d.ts +5 -0
- package/dist/components/layout/topnav/navlinks/segments/segments.js +13 -0
- package/dist/components/layout/topnav/navlinks/segments/segments.module.scss +62 -0
- package/dist/components/layout/topnav/navtrailing/navtrailing.d.ts +1 -0
- package/dist/components/layout/topnav/navtrailing/navtrailing.js +8 -0
- package/dist/components/layout/topnav/navtrailing/navtrailing.module.scss +51 -0
- package/dist/components/layout/topnav/topnav.d.ts +1 -0
- package/dist/components/layout/topnav/topnav.js +10 -0
- package/dist/components/layout/topnav/topnav.module.scss +56 -0
- package/dist/components/shared/feature-card/feature-card.d.ts +13 -0
- package/dist/components/shared/feature-card/feature-card.js +9 -0
- package/dist/components/shared/feature-card/feature-card.module.scss +15 -0
- package/dist/components/shared/footer-banner/footer-banner.js +1 -1
- package/dist/components/shared/newsletter-strip/newsletter-strip.d.ts +3 -3
- package/dist/components/shared/newsletter-strip/newsletter-strip.js +2 -7
- package/dist/components/shared/success-cases/success-cases.d.ts +1 -5
- package/dist/components/shared/success-cases/success-cases.js +2 -2
- package/dist/components/ui/button/default-button.module.scss +22 -0
- package/dist/components/ui/span-label/span-label.d.ts +5 -0
- package/dist/components/ui/span-label/span-label.js +15 -0
- package/dist/components/ui/span-label/span-label.module.scss +11 -0
- package/dist/index.js.map +1 -0
- package/package.json +5 -7
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export default function MobileNav(): import("react/jsx-runtime").JSX.Element;
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
|
+
import styles from './mobile-nav.module.scss';
|
|
3
|
+
import * as Dialog from '@radix-ui/react-dialog';
|
|
4
|
+
import Image from 'next/image';
|
|
5
|
+
import NavAccordion from './nav-accordion/nav-accordion';
|
|
6
|
+
import NavAccordionLink from './nav-accordion/nav-accordion-link/nav-accordion-link';
|
|
7
|
+
import { CaretDownIcon, ListIcon, UserCircleIcon, XIcon } from '@phosphor-icons/react/dist/ssr';
|
|
8
|
+
import Button from '../../../ui/button/button';
|
|
9
|
+
export default function MobileNav() {
|
|
10
|
+
return (_jsx("div", { className: styles['mobile-nav'], children: _jsxs(Dialog.Root, { children: [_jsx(Dialog.Trigger, { className: styles['dialog-trigger'], asChild: true, children: _jsx(ListIcon, { size: 32, color: 'white', cursor: 'pointer' }) }), _jsx(Dialog.Portal, { children: _jsx(Dialog.Overlay, { className: styles['dialog-overlay'], children: _jsxs(Dialog.Content, { className: styles['dialog-content'], children: [_jsxs("div", { className: styles['dialog-header'], children: [_jsx(Dialog.Title, { children: _jsx(Image, { src: "/logos/sca/sca-blue.svg", width: 50, height: 25, alt: "Logo do Sistema SCA", className: styles['sca-logo'] }) }), _jsx(Dialog.Close, { className: styles['dialog-close'], asChild: true, children: _jsx(XIcon, { size: 32, color: 'var(--auxiliary-orange)' }) })] }), _jsxs("div", { className: styles['dialog-content-bottom'], children: [_jsxs("div", { className: styles['dialog-buttons'], children: [_jsxs(NavAccordion, { title: 'Recursos', children: [_jsx(NavAccordionLink, { title: 'Controle financeiro', href: '/recursos' }), _jsx(NavAccordionLink, { title: 'Controle de acesso', href: '/recursos' }), _jsx(NavAccordionLink, { title: 'Ficha de treino', href: '/recursos' }), _jsx(NavAccordionLink, { title: 'Avalia\u00E7\u00E3o f\u00EDsica', href: '/recursos' }), _jsx(NavAccordionLink, { title: 'Relacionamento com Alunos', href: '/recursos' }), _jsx(NavAccordionLink, { title: 'Ger\u00EAncia de turma', href: '/recursos' }), _jsx(NavAccordionLink, { title: 'Vitrine de produtos', href: '/recursos' })] }), _jsxs(NavAccordion, { title: 'Segmentos', children: [_jsx(NavAccordionLink, { title: 'Academia', href: 'TODO' }), _jsx(NavAccordionLink, { title: 'Box Cross', href: 'TODO' }), _jsx(NavAccordionLink, { title: 'Escola de Nata\u00E7\u00E3o', href: 'TODO' }), _jsx(NavAccordionLink, { title: 'Pilates', href: 'TODO' }), _jsx(NavAccordionLink, { title: 'Studio', href: 'TODO' })] }), _jsx("a", { href: 'TODO', className: styles['nav-link'], children: _jsx("p", { children: "Planos" }) }), _jsx("a", { href: 'TODO', className: styles['nav-link'], children: _jsx("p", { children: "Blog" }) }), _jsxs(NavAccordion, { title: 'Mais', children: [_jsx(NavAccordionLink, { title: 'Quem somos', href: '/quem-somos' }), _jsx(NavAccordionLink, { title: 'Cases de sucesso', href: '/cases-de-sucesso' }), _jsx(NavAccordionLink, { title: 'Equipamentos', href: '/equipamentos' }), _jsx(NavAccordionLink, { title: 'Vers\u00E3o Desktop', href: '/desktop' }), _jsx(NavAccordionLink, { title: 'Atendimento', href: '/contato' })] })] }), _jsxs("div", { className: styles['account-test-wrapper'], children: [_jsxs("a", { className: styles['account-wrapper'], children: [_jsx(UserCircleIcon, { size: 24, color: 'var(--primary)' }), _jsx("p", { children: "Acessar conta" }), _jsx(CaretDownIcon, { size: 12, color: 'var(--light500)' })] }), _jsx("a", { href: 'https://app.sistemasca.com/cadastro', target: '_blank', children: _jsx(Button, { label: 'Teste agora', className: styles['test-button'] }) })] })] })] }) }) })] }) }));
|
|
11
|
+
}
|
|
@@ -0,0 +1,128 @@
|
|
|
1
|
+
.mobile-nav {
|
|
2
|
+
display: none;
|
|
3
|
+
|
|
4
|
+
@media (max-width: 900px) {
|
|
5
|
+
display: inline;
|
|
6
|
+
}
|
|
7
|
+
}
|
|
8
|
+
|
|
9
|
+
.dialog-overlay {
|
|
10
|
+
position: fixed;
|
|
11
|
+
top: 0;
|
|
12
|
+
left: 0;
|
|
13
|
+
right: 0;
|
|
14
|
+
bottom: 0;
|
|
15
|
+
|
|
16
|
+
background: rgba(0 0 0 / 0.5);
|
|
17
|
+
height: 100%;
|
|
18
|
+
width: 100%;
|
|
19
|
+
|
|
20
|
+
z-index: 1;
|
|
21
|
+
overflow-y: scroll;
|
|
22
|
+
|
|
23
|
+
.dialog-content {
|
|
24
|
+
display: flex;
|
|
25
|
+
flex-direction: column;
|
|
26
|
+
|
|
27
|
+
width: 100%;
|
|
28
|
+
background: white;
|
|
29
|
+
z-index: 1;
|
|
30
|
+
border-radius: 0 0 16px 16px;
|
|
31
|
+
padding: 0 64px 64px 64px;
|
|
32
|
+
|
|
33
|
+
@media (max-width: 768px) {
|
|
34
|
+
padding: 0 24px 24px 24px;
|
|
35
|
+
}
|
|
36
|
+
|
|
37
|
+
.dialog-header {
|
|
38
|
+
height: 108px;
|
|
39
|
+
width: 100%;
|
|
40
|
+
|
|
41
|
+
display: flex;
|
|
42
|
+
justify-content: space-between;
|
|
43
|
+
align-items: center;
|
|
44
|
+
|
|
45
|
+
|
|
46
|
+
.dialog-close {
|
|
47
|
+
cursor: pointer;
|
|
48
|
+
}
|
|
49
|
+
}
|
|
50
|
+
|
|
51
|
+
.dialog-content-bottom {
|
|
52
|
+
display: flex;
|
|
53
|
+
flex-direction: column;
|
|
54
|
+
gap: 64px;
|
|
55
|
+
|
|
56
|
+
|
|
57
|
+
.dialog-buttons {
|
|
58
|
+
display: flex;
|
|
59
|
+
flex-direction: column;
|
|
60
|
+
gap: 16px;
|
|
61
|
+
|
|
62
|
+
.nav-link {
|
|
63
|
+
background: var(--neutral100);
|
|
64
|
+
padding: 16px;
|
|
65
|
+
border-radius: 8px;
|
|
66
|
+
|
|
67
|
+
color: var(--neutral600);
|
|
68
|
+
font-size: 18px;
|
|
69
|
+
font-weight: 600;
|
|
70
|
+
}
|
|
71
|
+
}
|
|
72
|
+
|
|
73
|
+
.account-test-wrapper {
|
|
74
|
+
display: flex;
|
|
75
|
+
flex-direction: column;
|
|
76
|
+
|
|
77
|
+
align-items: center;
|
|
78
|
+
justify-content: center;
|
|
79
|
+
gap: 16px;
|
|
80
|
+
|
|
81
|
+
.account-wrapper {
|
|
82
|
+
display: flex;
|
|
83
|
+
align-items: center;
|
|
84
|
+
justify-content: center;
|
|
85
|
+
gap: 8px;
|
|
86
|
+
padding: 16px;
|
|
87
|
+
|
|
88
|
+
color: var(--neutral700);
|
|
89
|
+
font-size: 16px;
|
|
90
|
+
font-weight: 600;
|
|
91
|
+
}
|
|
92
|
+
|
|
93
|
+
.test-button {
|
|
94
|
+
width: 100%;
|
|
95
|
+
padding: 16px 32px;
|
|
96
|
+
}
|
|
97
|
+
}
|
|
98
|
+
}
|
|
99
|
+
}
|
|
100
|
+
}
|
|
101
|
+
|
|
102
|
+
.dialog-overlay[data-state="open"] {
|
|
103
|
+
animation: overlayAppear .3s;
|
|
104
|
+
}
|
|
105
|
+
|
|
106
|
+
.dialog-overlay[data-state="closed"] {
|
|
107
|
+
animation: overlayHide .3s;
|
|
108
|
+
}
|
|
109
|
+
|
|
110
|
+
@keyframes overlayAppear {
|
|
111
|
+
from {
|
|
112
|
+
opacity: 0;
|
|
113
|
+
}
|
|
114
|
+
|
|
115
|
+
to {
|
|
116
|
+
opacity: 0.5;
|
|
117
|
+
}
|
|
118
|
+
}
|
|
119
|
+
|
|
120
|
+
@keyframes overlayHide {
|
|
121
|
+
from {
|
|
122
|
+
opacity: 0.5;
|
|
123
|
+
}
|
|
124
|
+
|
|
125
|
+
to {
|
|
126
|
+
opacity: 0;
|
|
127
|
+
}
|
|
128
|
+
}
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
import { jsx as _jsx } from "react/jsx-runtime";
|
|
2
|
+
import styles from './nav-accordion-link.module.scss';
|
|
3
|
+
export default function ({ title, href, }) {
|
|
4
|
+
return (_jsx("a", { href: href, children: _jsx("div", { className: styles['nav-accordion-link'], children: _jsx("p", { children: title }) }) }));
|
|
5
|
+
}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
|
+
import styles from './nav-accordion.module.scss';
|
|
3
|
+
import * as Accordion from '@radix-ui/react-accordion';
|
|
4
|
+
import { CaretDown } from '@phosphor-icons/react/dist/ssr';
|
|
5
|
+
export default function NavAccordion({ title, children }) {
|
|
6
|
+
return (_jsx(Accordion.Root, { type: "single", collapsible: true, className: styles['nav-accordion'], children: _jsxs(Accordion.Item, { value: "item-1", children: [_jsxs(Accordion.Trigger, { className: styles['nav-accordion-trigger'], children: [_jsx(Accordion.Header, { className: styles['nav-accordion-header'], children: _jsx("p", { children: title }) }), _jsx(CaretDown, { size: 18, className: styles['caret-down'] })] }), _jsx(Accordion.Content, { className: styles['nav-accordion-content'], children: _jsx("div", { className: styles['nav-accordion-links-wrapper'], children: children }) })] }) }));
|
|
7
|
+
}
|
|
@@ -0,0 +1,125 @@
|
|
|
1
|
+
.nav-accordion {
|
|
2
|
+
width: 100%;
|
|
3
|
+
background: var(--neutral100);
|
|
4
|
+
border-radius: 8px;
|
|
5
|
+
|
|
6
|
+
.nav-accordion-trigger {
|
|
7
|
+
border: none;
|
|
8
|
+
width: 100%;
|
|
9
|
+
|
|
10
|
+
background: var(--neutral100);
|
|
11
|
+
border-radius: 8px;
|
|
12
|
+
padding: 16px;
|
|
13
|
+
|
|
14
|
+
display: flex;
|
|
15
|
+
justify-content: space-between;
|
|
16
|
+
align-items: center;
|
|
17
|
+
|
|
18
|
+
cursor: pointer;
|
|
19
|
+
position: relative;
|
|
20
|
+
|
|
21
|
+
.caret-down {
|
|
22
|
+
color: var(--light500);
|
|
23
|
+
}
|
|
24
|
+
|
|
25
|
+
.caret-down:focus-visible {
|
|
26
|
+
outline: 1px solid var(--light500);
|
|
27
|
+
outline-offset: 2px;
|
|
28
|
+
border-radius: 4px;
|
|
29
|
+
}
|
|
30
|
+
|
|
31
|
+
.nav-accordion-header {
|
|
32
|
+
display: flex;
|
|
33
|
+
justify-content: space-between;
|
|
34
|
+
align-items: center;
|
|
35
|
+
gap: 64px;
|
|
36
|
+
|
|
37
|
+
color: var(--neutral600);
|
|
38
|
+
font-size: 18px;
|
|
39
|
+
font-weight: 600;
|
|
40
|
+
|
|
41
|
+
}
|
|
42
|
+
}
|
|
43
|
+
|
|
44
|
+
|
|
45
|
+
.nav-accordion-content {
|
|
46
|
+
font-size: 14px;
|
|
47
|
+
color: var(--neutral400);
|
|
48
|
+
overflow: hidden;
|
|
49
|
+
|
|
50
|
+
|
|
51
|
+
.nav-accordion-links-wrapper {
|
|
52
|
+
display: flex;
|
|
53
|
+
flex-direction: column;
|
|
54
|
+
gap: 8px;
|
|
55
|
+
padding: 0 16px 16px 16px;
|
|
56
|
+
}
|
|
57
|
+
|
|
58
|
+
}
|
|
59
|
+
|
|
60
|
+
.nav-accordion-content[data-state="open"] {
|
|
61
|
+
animation: slideDown .3s cubic-bezier(0.87, 0, 0.13, 1);
|
|
62
|
+
}
|
|
63
|
+
|
|
64
|
+
.nav-accordion-content[data-state="closed"] {
|
|
65
|
+
animation: slideUp .3s cubic-bezier(0.87, 0, 0.13, 1);
|
|
66
|
+
}
|
|
67
|
+
}
|
|
68
|
+
|
|
69
|
+
.nav-accordion-trigger[data-state="open"] {
|
|
70
|
+
.caret-down {
|
|
71
|
+
animation: turnDown .3s forwards;
|
|
72
|
+
}
|
|
73
|
+
}
|
|
74
|
+
|
|
75
|
+
.nav-accordion-trigger[data-state="closed"] {
|
|
76
|
+
.caret-down {
|
|
77
|
+
animation: turnUp .3s forwards;
|
|
78
|
+
}
|
|
79
|
+
}
|
|
80
|
+
|
|
81
|
+
|
|
82
|
+
@keyframes slideDown {
|
|
83
|
+
from {
|
|
84
|
+
height: 0;
|
|
85
|
+
opacity: 0;
|
|
86
|
+
}
|
|
87
|
+
|
|
88
|
+
to {
|
|
89
|
+
height: var(--radix-accordion-content-height);
|
|
90
|
+
opacity: 1;
|
|
91
|
+
}
|
|
92
|
+
}
|
|
93
|
+
|
|
94
|
+
@keyframes slideUp {
|
|
95
|
+
from {
|
|
96
|
+
opacity: 1;
|
|
97
|
+
height: var(--radix-accordion-content-height);
|
|
98
|
+
}
|
|
99
|
+
|
|
100
|
+
to {
|
|
101
|
+
height: 0;
|
|
102
|
+
opacity: 0;
|
|
103
|
+
}
|
|
104
|
+
}
|
|
105
|
+
|
|
106
|
+
@keyframes turnDown {
|
|
107
|
+
from {
|
|
108
|
+
transform: rotate(0deg);
|
|
109
|
+
}
|
|
110
|
+
|
|
111
|
+
to {
|
|
112
|
+
transform: rotate(180deg);
|
|
113
|
+
}
|
|
114
|
+
}
|
|
115
|
+
|
|
116
|
+
|
|
117
|
+
@keyframes turnUp {
|
|
118
|
+
from {
|
|
119
|
+
transform: rotate(180deg);
|
|
120
|
+
}
|
|
121
|
+
|
|
122
|
+
to {
|
|
123
|
+
transform: rotate(0deg);
|
|
124
|
+
}
|
|
125
|
+
}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
|
+
import styles from './card.module.scss';
|
|
3
|
+
import IconWithBackground from '../../../../ui/icon-with-background/icon-with-background';
|
|
4
|
+
import { ArrowUpRightIcon } from '@phosphor-icons/react';
|
|
5
|
+
export default function Card({ label, iconSize = 22, icon: Icon, }) {
|
|
6
|
+
return (_jsxs("div", { className: styles.card, children: [_jsx(IconWithBackground, { icon: Icon, iconClassName: styles['icon'], iconSize: iconSize }), _jsxs("div", { className: styles['label-icon-wrapper'], children: [_jsx("p", { children: label }), _jsx(ArrowUpRightIcon, { weight: 'bold', size: 14, className: styles['card-icon'] })] })] }));
|
|
7
|
+
}
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
.card {
|
|
2
|
+
padding: 16px 0 16px 16px;
|
|
3
|
+
display: flex;
|
|
4
|
+
flex-wrap: nowrap;
|
|
5
|
+
align-items: center;
|
|
6
|
+
gap: 12px;
|
|
7
|
+
font-variation-settings: 'wght' 400;
|
|
8
|
+
cursor: pointer;
|
|
9
|
+
transition: font-variation-settings 0.3s;
|
|
10
|
+
}
|
|
11
|
+
|
|
12
|
+
.card:hover {
|
|
13
|
+
font-variation-settings: 'wght' 500;
|
|
14
|
+
}
|
|
15
|
+
|
|
16
|
+
.card-icon {
|
|
17
|
+
color: transparent;
|
|
18
|
+
transition: color 0.3s;
|
|
19
|
+
}
|
|
20
|
+
|
|
21
|
+
.icon {
|
|
22
|
+
color: var(--primary);
|
|
23
|
+
}
|
|
24
|
+
|
|
25
|
+
.card:hover .card-icon {
|
|
26
|
+
color: var(--primary);
|
|
27
|
+
}
|
|
28
|
+
|
|
29
|
+
.label-icon-wrapper {
|
|
30
|
+
display: flex;
|
|
31
|
+
flex-wrap: nowrap;
|
|
32
|
+
align-items: center;
|
|
33
|
+
gap: 6px;
|
|
34
|
+
}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
|
+
import * as DropdownMenu from '@radix-ui/react-dropdown-menu';
|
|
3
|
+
import styles from './dropdown-menu-trigger.module.scss';
|
|
4
|
+
import { inter } from '../../../../../fonts';
|
|
5
|
+
import { CaretDownIcon } from '@phosphor-icons/react';
|
|
6
|
+
export default function DropdownMenuTrigger({ label, open, setOpen, handleMouseEnter = () => {
|
|
7
|
+
setOpen(true);
|
|
8
|
+
}, }) {
|
|
9
|
+
return (_jsxs(DropdownMenu.Trigger, { onMouseEnter: handleMouseEnter, className: `
|
|
10
|
+
${styles['dropdown-trigger']}
|
|
11
|
+
${open ? styles['dropdown-trigger-open'] : ''}
|
|
12
|
+
`, children: [_jsx("p", { className: inter.className, children: label }), _jsx(CaretDownIcon, { color: 'var(--light500)', size: 16, className: `${styles['dropdown-trigger-icon']} ${open ? styles['dropdown-trigger-icon-open'] : ''}` })] }));
|
|
13
|
+
}
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
.dropdown-trigger {
|
|
2
|
+
font-size: 14px;
|
|
3
|
+
font-weight: 500;
|
|
4
|
+
border-radius: 4px;
|
|
5
|
+
background-color: transparent;
|
|
6
|
+
border: none;
|
|
7
|
+
outline: none;
|
|
8
|
+
cursor: pointer;
|
|
9
|
+
color: white;
|
|
10
|
+
|
|
11
|
+
display: flex;
|
|
12
|
+
align-items: center;
|
|
13
|
+
gap: 8px;
|
|
14
|
+
transition: color 0.3s;
|
|
15
|
+
|
|
16
|
+
@media (max-width: 1024px) {
|
|
17
|
+
font-size: 12px;
|
|
18
|
+
}
|
|
19
|
+
}
|
|
20
|
+
|
|
21
|
+
.dropdown-trigger-open {
|
|
22
|
+
color: var(--auxiliary-orange);
|
|
23
|
+
cursor: pointer;
|
|
24
|
+
}
|
|
25
|
+
|
|
26
|
+
.dropdown-trigger-icon {
|
|
27
|
+
transition: color 0.3s, transform 0.3s;
|
|
28
|
+
}
|
|
29
|
+
|
|
30
|
+
.dropdown-trigger-icon-open {
|
|
31
|
+
color: var(--auxiliary-orange);
|
|
32
|
+
transform: rotate(180deg);
|
|
33
|
+
}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
'use client';
|
|
2
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
3
|
+
import styles from './more.module.scss';
|
|
4
|
+
import * as DropdownMenu from '@radix-ui/react-dropdown-menu';
|
|
5
|
+
import Link from 'next/link';
|
|
6
|
+
import Card from '../card/card';
|
|
7
|
+
import DropdownMenuTrigger from '../dropdown-menu-trigger/dropdown-menu-trigger';
|
|
8
|
+
import { BarbellIcon, ChatCircleIcon, PhoneIncomingIcon, QuestionIcon, SmileyIcon, } from '@phosphor-icons/react';
|
|
9
|
+
export default function More({ open, setOpen, handleOpen, }) {
|
|
10
|
+
const handleMouseExit = () => {
|
|
11
|
+
setOpen(false);
|
|
12
|
+
};
|
|
13
|
+
return (_jsxs(DropdownMenu.Root, { open: open, onOpenChange: setOpen, modal: false, children: [_jsx(DropdownMenuTrigger, { label: "Mais", open: open, setOpen: setOpen, handleMouseEnter: handleOpen }), _jsxs(DropdownMenu.Content, { onMouseLeave: handleMouseExit, className: styles['dropdown-content'], sideOffset: 44, children: [_jsxs("div", { className: styles['left'], children: [_jsx(Link, { href: '/quem-somos', children: _jsx(Card, { label: "Quem somos", icon: "/logos/sca/sca-s-outlined.svg", iconSize: 24 }) }), _jsx(Link, { href: '/cases-de-sucesso', children: _jsx(Card, { label: "Cases de sucesso", icon: SmileyIcon }) }), _jsx(Link, { href: '/equipamentos', children: _jsx(Card, { label: "Equipamentos", icon: BarbellIcon }) })] }), _jsxs("div", { className: styles['right'], children: [_jsx(Link, { href: '/contato', children: _jsx(Card, { label: "Atendimento", icon: PhoneIncomingIcon }) }), _jsx("a", { href: 'https://app.sistemasca.com/ajuda/', target: '_blank', children: _jsx(Card, { label: "Central de ajuda", icon: QuestionIcon }) }), _jsx(Link, { href: '/desktop', children: _jsx(Card, { label: "Vers\u00E3o Desktop", icon: ChatCircleIcon }) })] })] })] }));
|
|
14
|
+
}
|
|
@@ -0,0 +1,60 @@
|
|
|
1
|
+
.dropdown-content {
|
|
2
|
+
/* Pra garantir que n vai ficar por baixo do carrossel ;) */
|
|
3
|
+
z-index: 2;
|
|
4
|
+
padding: 24px;
|
|
5
|
+
border-radius: 16px;
|
|
6
|
+
box-shadow: 0px 28px 58px 0px rgba(3, 0, 70, 0.3);
|
|
7
|
+
background: var(--neutral100);
|
|
8
|
+
color: var(--neutral600);
|
|
9
|
+
|
|
10
|
+
display: flex;
|
|
11
|
+
flex-wrap: nowrap;
|
|
12
|
+
gap: 16px;
|
|
13
|
+
}
|
|
14
|
+
|
|
15
|
+
@keyframes fadeSlideIn {
|
|
16
|
+
0% {
|
|
17
|
+
opacity: 0;
|
|
18
|
+
transform: translateY(-15px);
|
|
19
|
+
}
|
|
20
|
+
|
|
21
|
+
100% {
|
|
22
|
+
opacity: 1;
|
|
23
|
+
transform: translateY(0);
|
|
24
|
+
}
|
|
25
|
+
}
|
|
26
|
+
|
|
27
|
+
@keyframes fadeSlideOut {
|
|
28
|
+
0% {
|
|
29
|
+
opacity: 1;
|
|
30
|
+
transform: translateY(0);
|
|
31
|
+
}
|
|
32
|
+
|
|
33
|
+
100% {
|
|
34
|
+
opacity: 0;
|
|
35
|
+
transform: translateY(-15px);
|
|
36
|
+
}
|
|
37
|
+
}
|
|
38
|
+
|
|
39
|
+
.dropdown-content[data-state='closed'] {
|
|
40
|
+
animation: fadeSlideOut 0.3s forwards;
|
|
41
|
+
transform: translateY(-15px);
|
|
42
|
+
opacity: 0;
|
|
43
|
+
}
|
|
44
|
+
|
|
45
|
+
.dropdown-content[data-state='open'] {
|
|
46
|
+
animation: fadeSlideIn 0.3s;
|
|
47
|
+
transform: translateY(0);
|
|
48
|
+
opacity: 1;
|
|
49
|
+
}
|
|
50
|
+
|
|
51
|
+
.left .right {
|
|
52
|
+
display: inline-flex;
|
|
53
|
+
flex-direction: column;
|
|
54
|
+
align-items: flex-start;
|
|
55
|
+
gap: 4px;
|
|
56
|
+
}
|
|
57
|
+
|
|
58
|
+
.left {
|
|
59
|
+
width: 205px;
|
|
60
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export default function NavLinks(): import("react/jsx-runtime").JSX.Element;
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
'use client';
|
|
2
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
3
|
+
import styles from '../topnav.module.scss';
|
|
4
|
+
import { useState } from 'react';
|
|
5
|
+
import Link from 'next/link';
|
|
6
|
+
import More from './more/more';
|
|
7
|
+
import Segments from './segments/segments';
|
|
8
|
+
import Resources from './resources/resources';
|
|
9
|
+
export default function NavLinks() {
|
|
10
|
+
const [openResources, setOpenResources] = useState(false);
|
|
11
|
+
const [openSegments, setOpenSegments] = useState(false);
|
|
12
|
+
const [openMore, setOpenMore] = useState(false);
|
|
13
|
+
function handleOpenResources() {
|
|
14
|
+
setOpenResources(true);
|
|
15
|
+
setOpenSegments(false);
|
|
16
|
+
setOpenMore(false);
|
|
17
|
+
}
|
|
18
|
+
function handleOpenSegments() {
|
|
19
|
+
setOpenResources(false);
|
|
20
|
+
setOpenSegments(true);
|
|
21
|
+
setOpenMore(false);
|
|
22
|
+
}
|
|
23
|
+
function handleOpenMore() {
|
|
24
|
+
setOpenResources(false);
|
|
25
|
+
setOpenSegments(false);
|
|
26
|
+
setOpenMore(true);
|
|
27
|
+
}
|
|
28
|
+
return (_jsxs("div", { className: styles.navlinks, children: [_jsx(Resources, { open: openResources, setOpen: setOpenResources, handleOpen: handleOpenResources }), _jsx(Segments, { open: openSegments, setOpen: setOpenSegments, handleOpen: handleOpenSegments }), _jsx(Link, { href: "/", className: styles['plans-link'], children: _jsx("p", { children: "Planos" }) }), _jsx(Link, { href: "/", className: styles['blog-link'], children: _jsx("p", { children: "Blog" }) }), _jsx(More, { open: openMore, setOpen: setOpenMore, handleOpen: handleOpenMore })] }));
|
|
29
|
+
}
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
|
+
import styles from './resources-card.module.scss';
|
|
3
|
+
import IconWithBackground from '../../../../../ui/icon-with-background/icon-with-background';
|
|
4
|
+
export default function ResourcesCard({ title, subtitle, icon: Icon, }) {
|
|
5
|
+
return (_jsxs("div", { className: styles.card, children: [_jsxs("div", { className: styles.top, children: [_jsx(IconWithBackground, { icon: Icon, iconClassName: styles['icon'], iconSize: 22 }), _jsx("p", { children: title })] }), _jsx("div", { className: styles.bottom, children: _jsx("p", { children: subtitle }) })] }));
|
|
6
|
+
}
|
package/dist/components/layout/topnav/navlinks/resources/resources-card/resources-card.module.scss
ADDED
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
.card {
|
|
2
|
+
display: flex;
|
|
3
|
+
flex-direction: column;
|
|
4
|
+
justify-content: space-between;
|
|
5
|
+
height: 82px;
|
|
6
|
+
}
|
|
7
|
+
|
|
8
|
+
.top {
|
|
9
|
+
display: flex;
|
|
10
|
+
flex-wrap: nowrap;
|
|
11
|
+
gap: 16px;
|
|
12
|
+
min-height: 32px;
|
|
13
|
+
align-items: center;
|
|
14
|
+
|
|
15
|
+
font-size: 16px;
|
|
16
|
+
font-weight: 600;
|
|
17
|
+
}
|
|
18
|
+
|
|
19
|
+
.bottom {
|
|
20
|
+
font-size: 14px;
|
|
21
|
+
font-weight: 400;
|
|
22
|
+
}
|
|
23
|
+
|
|
24
|
+
.icon {
|
|
25
|
+
color: var(--primary);
|
|
26
|
+
}
|
|
@@ -0,0 +1,63 @@
|
|
|
1
|
+
'use client';
|
|
2
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
3
|
+
import styles from './resources.module.scss';
|
|
4
|
+
import * as DropdownMenu from '@radix-ui/react-dropdown-menu';
|
|
5
|
+
import Button from '../../../../ui/button/button';
|
|
6
|
+
import ResourcesCard from './resources-card/resources-card';
|
|
7
|
+
import DropdownMenuTrigger from '../dropdown-menu-trigger/dropdown-menu-trigger';
|
|
8
|
+
import { ArrowRightIcon, ClipboardTextIcon, CoinsIcon, CreditCardIcon, FileTextIcon, MoneyIcon, StackIcon } from '@phosphor-icons/react';
|
|
9
|
+
import Link from 'next/link';
|
|
10
|
+
const links = [
|
|
11
|
+
{ title: 'Controle financeiro' },
|
|
12
|
+
{ title: 'Ficha de treino' },
|
|
13
|
+
{ title: 'Avaliação física' },
|
|
14
|
+
{ title: 'Relacionamento com Alunos' },
|
|
15
|
+
{ title: 'Gerência de turmas' },
|
|
16
|
+
{ title: 'Vitrine de produtos' },
|
|
17
|
+
];
|
|
18
|
+
const leftCards = [
|
|
19
|
+
{
|
|
20
|
+
title: 'Pacote de aulas',
|
|
21
|
+
subtitle: 'Crie e controle pacotes de aulas por sessão ou período.',
|
|
22
|
+
icon: ClipboardTextIcon,
|
|
23
|
+
},
|
|
24
|
+
{
|
|
25
|
+
title: 'Contratos personalizados',
|
|
26
|
+
subtitle: 'Crie modelos de contratos e use como precisar.',
|
|
27
|
+
icon: FileTextIcon,
|
|
28
|
+
},
|
|
29
|
+
{
|
|
30
|
+
title: 'Caixas simultâneos',
|
|
31
|
+
subtitle: 'Controle dos caixas de todas unidades em um único lugar.',
|
|
32
|
+
icon: CoinsIcon,
|
|
33
|
+
},
|
|
34
|
+
];
|
|
35
|
+
const rightCards = [
|
|
36
|
+
{
|
|
37
|
+
title: 'Mensalidades',
|
|
38
|
+
subtitle: 'Deixe que o sistema crie as cobranças por você.',
|
|
39
|
+
icon: MoneyIcon,
|
|
40
|
+
},
|
|
41
|
+
{
|
|
42
|
+
title: 'Controle de estoque',
|
|
43
|
+
subtitle: 'Controle a entrada e saída dos seus produtos de diversas formas.',
|
|
44
|
+
icon: StackIcon,
|
|
45
|
+
},
|
|
46
|
+
{
|
|
47
|
+
title: 'Controle financeiro',
|
|
48
|
+
subtitle: 'O SCA cria e envia as mensalidades automaticamente.',
|
|
49
|
+
icon: CreditCardIcon,
|
|
50
|
+
},
|
|
51
|
+
];
|
|
52
|
+
export default function Resources({ open, setOpen, handleOpen, }) {
|
|
53
|
+
const handleMouseExit = () => {
|
|
54
|
+
setOpen(false);
|
|
55
|
+
};
|
|
56
|
+
return (_jsxs(DropdownMenu.Root, { open: open, onOpenChange: setOpen, modal: false, children: [_jsx(DropdownMenuTrigger, { label: "Recursos", open: open, setOpen: setOpen, handleMouseEnter: handleOpen }), _jsxs(DropdownMenu.Content, { onMouseLeave: handleMouseExit, className: `${styles['dropdown-content']}`, sideOffset: 44, children: [_jsx("div", { className: styles['links'], children: links.map((link, index) => {
|
|
57
|
+
return (_jsx(Link, { href: '/recursos', className: styles['dropdown-item-link'], children: _jsxs(DropdownMenu.Item, { className: styles['dropdown-item'], children: [link.title, _jsx(ArrowRightIcon, { weight: 'bold', size: 16, className: styles['dropdown-icon'] })] }, index) }, index));
|
|
58
|
+
}) }), _jsxs("div", { className: styles['cards-wrapper'], children: [_jsxs("div", { className: styles['cards'], children: [_jsx("div", { className: styles['left-section'], children: leftCards.map((card, index) => {
|
|
59
|
+
return (_jsx(ResourcesCard, { title: card.title, subtitle: card.subtitle, icon: card.icon }, index));
|
|
60
|
+
}) }), _jsx("div", { className: styles['right-section'], children: rightCards.map((card, index) => {
|
|
61
|
+
return (_jsx(ResourcesCard, { title: card.title, subtitle: card.subtitle, icon: card.icon }, index));
|
|
62
|
+
}) })] }), _jsx(Link, { href: '/recursos', className: styles['button-wrapper'], children: _jsx(Button, { label: "Ver todos", className: styles['button'] }) })] })] })] }));
|
|
63
|
+
}
|