@prosistemas/sca-web-kit 2.2.0 → 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.
Files changed (49) hide show
  1. package/dist/components/layout/topnav/mobile-nav/mobile-nav.d.ts +1 -0
  2. package/dist/components/layout/topnav/mobile-nav/mobile-nav.js +11 -0
  3. package/dist/components/layout/topnav/mobile-nav/mobile-nav.module.scss +128 -0
  4. package/dist/components/layout/topnav/mobile-nav/nav-accordion/nav-accordion-link/nav-accordion-link.d.ts +4 -0
  5. package/dist/components/layout/topnav/mobile-nav/nav-accordion/nav-accordion-link/nav-accordion-link.js +5 -0
  6. package/dist/components/layout/topnav/mobile-nav/nav-accordion/nav-accordion-link/nav-accordion-link.module.scss +5 -0
  7. package/dist/components/layout/topnav/mobile-nav/nav-accordion/nav-accordion.d.ts +4 -0
  8. package/dist/components/layout/topnav/mobile-nav/nav-accordion/nav-accordion.js +7 -0
  9. package/dist/components/layout/topnav/mobile-nav/nav-accordion/nav-accordion.module.scss +125 -0
  10. package/dist/components/layout/topnav/navlinks/card/card.d.ts +6 -0
  11. package/dist/components/layout/topnav/navlinks/card/card.js +7 -0
  12. package/dist/components/layout/topnav/navlinks/card/card.module.scss +34 -0
  13. package/dist/components/layout/topnav/navlinks/dropdown-menu-trigger/dropdown-menu-trigger.d.ts +6 -0
  14. package/dist/components/layout/topnav/navlinks/dropdown-menu-trigger/dropdown-menu-trigger.js +13 -0
  15. package/dist/components/layout/topnav/navlinks/dropdown-menu-trigger/dropdown-menu-trigger.module.scss +33 -0
  16. package/dist/components/layout/topnav/navlinks/more/more.d.ts +5 -0
  17. package/dist/components/layout/topnav/navlinks/more/more.js +14 -0
  18. package/dist/components/layout/topnav/navlinks/more/more.module.scss +60 -0
  19. package/dist/components/layout/topnav/navlinks/navlinks.d.ts +1 -0
  20. package/dist/components/layout/topnav/navlinks/navlinks.js +29 -0
  21. package/dist/components/layout/topnav/navlinks/resources/resources-card/resources-card.d.ts +6 -0
  22. package/dist/components/layout/topnav/navlinks/resources/resources-card/resources-card.js +6 -0
  23. package/dist/components/layout/topnav/navlinks/resources/resources-card/resources-card.module.scss +26 -0
  24. package/dist/components/layout/topnav/navlinks/resources/resources.d.ts +5 -0
  25. package/dist/components/layout/topnav/navlinks/resources/resources.js +63 -0
  26. package/dist/components/layout/topnav/navlinks/resources/resources.module.scss +132 -0
  27. package/dist/components/layout/topnav/navlinks/segments/segments.d.ts +5 -0
  28. package/dist/components/layout/topnav/navlinks/segments/segments.js +13 -0
  29. package/dist/components/layout/topnav/navlinks/segments/segments.module.scss +62 -0
  30. package/dist/components/layout/topnav/navtrailing/navtrailing.d.ts +1 -0
  31. package/dist/components/layout/topnav/navtrailing/navtrailing.js +8 -0
  32. package/dist/components/layout/topnav/navtrailing/navtrailing.module.scss +51 -0
  33. package/dist/components/layout/topnav/topnav.d.ts +1 -0
  34. package/dist/components/layout/topnav/topnav.js +10 -0
  35. package/dist/components/layout/topnav/topnav.module.scss +56 -0
  36. package/dist/components/shared/feature-card/feature-card.d.ts +13 -0
  37. package/dist/components/shared/feature-card/feature-card.js +9 -0
  38. package/dist/components/shared/feature-card/feature-card.module.scss +15 -0
  39. package/dist/components/shared/footer-banner/footer-banner.js +1 -1
  40. package/dist/components/shared/newsletter-strip/newsletter-strip.d.ts +3 -3
  41. package/dist/components/shared/newsletter-strip/newsletter-strip.js +2 -7
  42. package/dist/components/shared/success-cases/success-cases.d.ts +1 -5
  43. package/dist/components/shared/success-cases/success-cases.js +2 -2
  44. package/dist/components/ui/button/default-button.module.scss +22 -0
  45. package/dist/components/ui/span-label/span-label.d.ts +5 -0
  46. package/dist/components/ui/span-label/span-label.js +15 -0
  47. package/dist/components/ui/span-label/span-label.module.scss +11 -0
  48. package/dist/index.js.map +1 -0
  49. 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,4 @@
1
+ export default function ({ title, href, }: {
2
+ title: string;
3
+ href: string;
4
+ }): import("react/jsx-runtime").JSX.Element;
@@ -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,5 @@
1
+ .nav-accordion-link {
2
+ background: white;
3
+ padding: 16px;
4
+ border-radius: 8px;
5
+ }
@@ -0,0 +1,4 @@
1
+ export default function NavAccordion({ title, children }: {
2
+ title: string;
3
+ children?: React.ReactNode;
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 './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,6 @@
1
+ import { IconProps } from '@phosphor-icons/react';
2
+ export default function Card({ label, iconSize, icon: Icon, }: {
3
+ label: string;
4
+ icon: React.ComponentType<IconProps> | string;
5
+ iconSize?: number;
6
+ }): 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 './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,6 @@
1
+ export default function DropdownMenuTrigger({ label, open, setOpen, handleMouseEnter, }: {
2
+ label: string;
3
+ open: boolean;
4
+ setOpen: React.Dispatch<React.SetStateAction<boolean>>;
5
+ handleMouseEnter?: () => void;
6
+ }): import("react/jsx-runtime").JSX.Element;
@@ -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,5 @@
1
+ export default function More({ open, setOpen, handleOpen, }: {
2
+ open: boolean;
3
+ setOpen: React.Dispatch<React.SetStateAction<boolean>>;
4
+ handleOpen: () => void;
5
+ }): import("react/jsx-runtime").JSX.Element;
@@ -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 { IconProps } from '@phosphor-icons/react';
2
+ export default function ResourcesCard({ title, subtitle, icon: Icon, }: {
3
+ title: string;
4
+ subtitle: string;
5
+ icon: React.ComponentType<IconProps>;
6
+ }): import("react/jsx-runtime").JSX.Element;
@@ -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
+ }
@@ -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,5 @@
1
+ export default function Resources({ open, setOpen, handleOpen, }: {
2
+ open: boolean;
3
+ setOpen: React.Dispatch<React.SetStateAction<boolean>>;
4
+ handleOpen: () => void;
5
+ }): import("react/jsx-runtime").JSX.Element;
@@ -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
+ }