diff --git a/.deco/blocks/Abertura%20Home.json b/.deco/blocks/Abertura%20Home.json
index 604e8be..ad18759 100644
--- a/.deco/blocks/Abertura%20Home.json
+++ b/.deco/blocks/Abertura%20Home.json
@@ -2,5 +2,20 @@
"__resolveType": "site/sections/Final/Headers/Openning.tsx",
"title": "Gestão inteligente para sonhar mais",
"highlight": "sonhar mais",
- "subtitleDescription": "A Linked entende as dores do seu negócio e pode te ajudar a economizar e lucrar"
+ "subtitleDescription": "A Linked entende as dores do seu negócio e pode te ajudar a economizar e lucrar",
+ "open": [
+ {
+ "title": "Gestão inteligente para sonhar mais",
+ "highlight": "sonhar mais",
+ "subtitleDescription": "A Linked entende as dores do seu negócio e pode te ajudar a economizar e lucrar"
+ },
+ {
+ "title": "Gestão inteligente para sonhar mais",
+ "highlight": "sonhar mais"
+ },
+ {
+ "title": "Gestão inteligente para sonhar mais",
+ "highlight": "sonhar mais"
+ }
+ ]
}
\ No newline at end of file
diff --git a/.deco/blocks/pages-My%2520New%2520Page-461078.json b/.deco/blocks/pages-My%2520New%2520Page-461078.json
index 06366ee..a5b69b1 100644
--- a/.deco/blocks/pages-My%2520New%2520Page-461078.json
+++ b/.deco/blocks/pages-My%2520New%2520Page-461078.json
@@ -29,7 +29,8 @@
"section": {
"__resolveType": "site/sections/Final/Form/InputText.tsx",
"title": "Por favor, diga o seu nome.",
- "placeholder": "Por favor, diga o seu nome."
+ "placeholder": "Por favor, diga o seu nome.",
+ "name": "name"
},
"title": "Por favor, diga o seu nome.",
"text": "Por favor, diga o seu nome.",
@@ -73,12 +74,13 @@
{
"section": {
"__resolveType": "site/sections/Final/Form/InputText.tsx",
- "title": "Por favor, diga o seu nome.",
- "placeholder": "Por favor, diga o seu nome."
+ "title": "Por favor, diga o seu sobrenome.",
+ "placeholder": "Por favor, diga o seu sobrenome.",
+ "name": "lastname"
},
- "title": "Por favor, diga o seu nome.",
- "text": "Por favor, diga o seu nome.",
- "description": "Por favor, diga o seu nome."
+ "title": "Por favor, diga o seu sobrenome.",
+ "text": "Por favor, diga o seu sobrenome.",
+ "description": "Por favor, diga o seu sobrenome."
},
{
"section": {
@@ -127,7 +129,7 @@
}
],
"text": "Teste",
- "name": "Teste"
+ "name": "radio"
},
"title": "Teste",
"text": "Teste",
diff --git a/components/ui/Content/Benefits/index.tsx b/components/ui/Content/Benefits/index.tsx
index 84506b8..c1a1c55 100644
--- a/components/ui/Content/Benefits/index.tsx
+++ b/components/ui/Content/Benefits/index.tsx
@@ -228,4 +228,4 @@ function Benefits({ benefits, collapse, colorTheme }: Props) {
}
}
-export default Benefits;
\ No newline at end of file
+export default Benefits;
diff --git a/components/ui/Content/BigNumber/index.tsx b/components/ui/Content/BigNumber/index.tsx
index 1962358..925e1fa 100644
--- a/components/ui/Content/BigNumber/index.tsx
+++ b/components/ui/Content/BigNumber/index.tsx
@@ -29,12 +29,6 @@ function setClass(value: string) {
}
}
-/* Descrição do component
-*asdasd
-*asd
-*asd
-*/
-
function BigNumber(
{ number, description, colorTheme }: JSX.IntrinsicElements["div"] & Props,
) {
diff --git a/components/ui/Content/ComparisonBody/index.tsx b/components/ui/Content/ComparisonBody/index.tsx
index c5b9a67..2ed7c83 100644
--- a/components/ui/Content/ComparisonBody/index.tsx
+++ b/components/ui/Content/ComparisonBody/index.tsx
@@ -96,4 +96,4 @@ function ExampleComponent({ body }: JSX.IntrinsicElements["div"] & Props) {
);
}
-export default ExampleComponent;
\ No newline at end of file
+export default ExampleComponent;
diff --git a/components/ui/Content/ComparisonFooter/index.tsx b/components/ui/Content/ComparisonFooter/index.tsx
index 1bd9dd1..1f0f390 100644
--- a/components/ui/Content/ComparisonFooter/index.tsx
+++ b/components/ui/Content/ComparisonFooter/index.tsx
@@ -17,7 +17,12 @@ function ComparisonFooter(
)}
{left.button && (
-
+
)}
)}
@@ -31,7 +36,12 @@ function ComparisonFooter(
)}
{right.button && (
-
+
)}
)}
diff --git a/components/ui/Content/Conection/index.tsx b/components/ui/Content/Conection/index.tsx
index 7369543..9ea9ec8 100644
--- a/components/ui/Content/Conection/index.tsx
+++ b/components/ui/Content/Conection/index.tsx
@@ -38,7 +38,9 @@ function Conection({
diff --git a/components/ui/Content/CustomDropdown/index.tsx b/components/ui/Content/CustomDropdown/index.tsx
index 0b8a844..64329c6 100644
--- a/components/ui/Content/CustomDropdown/index.tsx
+++ b/components/ui/Content/CustomDropdown/index.tsx
@@ -110,4 +110,4 @@ function CustomDropdown({
);
}
-export default CustomDropdown;
\ No newline at end of file
+export default CustomDropdown;
diff --git a/components/ui/Content/Dropdown/index.tsx b/components/ui/Content/Dropdown/index.tsx
index 8414de3..3963cad 100644
--- a/components/ui/Content/Dropdown/index.tsx
+++ b/components/ui/Content/Dropdown/index.tsx
@@ -109,12 +109,10 @@ function Dropdown({
))
)
- : (
-
- )}
+ :
}
);
}
-export default Dropdown;
+export default Dropdown;
\ No newline at end of file
diff --git a/components/ui/Content/Lead/index.tsx b/components/ui/Content/Lead/index.tsx
index ed5d01b..babd0e1 100644
--- a/components/ui/Content/Lead/index.tsx
+++ b/components/ui/Content/Lead/index.tsx
@@ -4,24 +4,36 @@ import type { JSX } from "preact";
import ButtonComponent from "../../Button/index.tsx";
import TitleComponent from "../Title/index.tsx";
-function Lead({ title, button, placeholder }: JSX.IntrinsicElements["div"] & Props) {
+function Lead(
+ { title, button, placeholder }: JSX.IntrinsicElements["div"] & Props,
+) {
return (
<>
-
-
+
>
);
}
diff --git a/components/ui/Content/List/index.tsx b/components/ui/Content/List/index.tsx
index 7faf086..3f85615 100644
--- a/components/ui/Content/List/index.tsx
+++ b/components/ui/Content/List/index.tsx
@@ -50,4 +50,4 @@ function List({ items, colorTheme, isFirst, isLast }: Props) {
);
}
-export default List;
\ No newline at end of file
+export default List;
diff --git a/components/ui/Content/LogoGroup/index.tsx b/components/ui/Content/LogoGroup/index.tsx
index 09f5a42..a2b4cec 100644
--- a/components/ui/Content/LogoGroup/index.tsx
+++ b/components/ui/Content/LogoGroup/index.tsx
@@ -43,4 +43,4 @@ function LogoGroupComponent(
);
}
-export default LogoGroupComponent;
\ No newline at end of file
+export default LogoGroupComponent;
diff --git a/components/ui/Content/Openning/index.tsx b/components/ui/Content/Openning/index.tsx
new file mode 100644
index 0000000..a68bced
--- /dev/null
+++ b/components/ui/Content/Openning/index.tsx
@@ -0,0 +1,95 @@
+import Script, { type Props } from "./script.tsx";
+
+export interface Open {
+ /**
+ * @title Título
+ * @description Escreva aqui o título da abertura
+ */
+ title?: string;
+ /**
+ * @title Palavra ou Frase com Cor
+ * @description Escreva a palavra ou frase com cor
+ */
+ highlight?: string;
+ /**
+ * @title Subtítulo
+ * @description Escreva aqui o subtítulo da abertura
+ */
+ subtitleDescription?: string;
+}
+
+/**
+ * @title {{{title}}}
+ */
+export interface Props {
+ /**
+ * @title Título do Bloco
+ * @description Escreva aqui o título do bloco
+ */
+ title?: string;
+ /**
+ * @title Títulos de Abertura
+ * @description Lista de títulos de abertura com suas propriedades
+ */
+ open?: Open[];
+}
+
+export default function Section({
+ title = "",
+ open = [],
+}: Props) {
+ const getHighlightedText = (text: string, highlight?: string) => {
+ if (!highlight) return text;
+
+ const parts = text.split(new RegExp(`(${highlight})`, "gi"));
+ return parts.map((part, index) =>
+ part.toLowerCase() === highlight.toLowerCase()
+ ? (
+
+ {part}
+
+ )
+ : part
+ );
+ };
+
+ return (
+ <>
+
+
+ {open.map((item, index) => (
+
+
+ {item.title && (
+
+
+ {getHighlightedText(item.title, item.highlight)}
+
+
+ )}
+ {item.subtitleDescription && (
+
+
+ {item.subtitleDescription}
+
+
+ )}
+
+
+ ))}
+
+
+
+ >
+ );
+}
\ No newline at end of file
diff --git a/components/ui/Content/Openning/script.tsx b/components/ui/Content/Openning/script.tsx
new file mode 100644
index 0000000..b0ec8b8
--- /dev/null
+++ b/components/ui/Content/Openning/script.tsx
@@ -0,0 +1,65 @@
+import { useScript } from "@deco/deco/hooks";
+
+export interface Props {}
+
+const setup = () => {
+ let currentIndex = 0;
+ const slides = Array.from(document.querySelectorAll("[data-slide]"));
+ const totalSlides = slides.length;
+
+ console.log("TOTAL SLIDES: " + totalSlides);
+
+ const showSlide = (index: number) => {
+ slides.forEach((slide, idx) => {
+ if (idx === index) {
+ slide.classList.remove("translate-x-full", "opacity-0", "hidden");
+ slide.classList.add("translate-x-0", "opacity-100", "block");
+ } else {
+ slide.classList.remove("translate-x-0", "opacity-100", "block");
+ slide.classList.add("translate-x-full", "opacity-0", "hidden");
+ }
+ });
+ };
+
+ const nextSlide = () => {
+ currentIndex = (currentIndex + 1) % totalSlides;
+ console.log("INDEX ATUAL: " + currentIndex);
+ showSlide(currentIndex);
+ };
+
+ const prevSlide = () => {
+ currentIndex = (currentIndex - 1 + totalSlides) % totalSlides;
+ console.log("INDEX ATUAL: " + currentIndex);
+ showSlide(currentIndex);
+ };
+
+ document.addEventListener("DOMContentLoaded", () => {
+ if (slides.length === 0) return;
+
+ showSlide(currentIndex);
+
+ document.addEventListener("keydown", (event) => {
+ if (event.key === "ArrowRight") {
+ nextSlide();
+ }
+ if (event.key === "ArrowLeft") {
+ prevSlide();
+ }
+ });
+
+ setInterval(nextSlide, 5000);
+ });
+};
+
+function Open({}: Props) {
+ return (
+
+ );
+}
+
+export default Open;
\ No newline at end of file
diff --git a/components/ui/Content/OptionalCollappse/index.tsx b/components/ui/Content/OptionalCollappse/index.tsx
index 82a2674..e3c5905 100644
--- a/components/ui/Content/OptionalCollappse/index.tsx
+++ b/components/ui/Content/OptionalCollappse/index.tsx
@@ -153,4 +153,4 @@ function OptionalCollappseComponent({ optional, colorTheme }: Props) {
);
}
-export default OptionalCollappseComponent;
\ No newline at end of file
+export default OptionalCollappseComponent;
diff --git a/components/ui/Content/Product/index.tsx b/components/ui/Content/Product/index.tsx
index 8070302..ac47167 100644
--- a/components/ui/Content/Product/index.tsx
+++ b/components/ui/Content/Product/index.tsx
@@ -24,7 +24,7 @@ function setClass(value) {
function Product(
{ icon, title, description, button, colorTheme }:
- & JSX.IntrinsicElements["div"]
+ JSX.IntrinsicElements["div"],
) {
return (
<>
@@ -63,7 +63,8 @@ function Product(
)}
- {/*
@@ -81,4 +89,4 @@ function Product(
);
}
-export default Product;
\ No newline at end of file
+export default Product;
diff --git a/components/ui/Content/Title/index.tsx b/components/ui/Content/Title/index.tsx
index 4b80e48..874342b 100644
--- a/components/ui/Content/Title/index.tsx
+++ b/components/ui/Content/Title/index.tsx
@@ -42,7 +42,9 @@ function Title(
{content}
diff --git a/components/ui/Content/TitleMedium/index.tsx b/components/ui/Content/TitleMedium/index.tsx
index db206d9..c0a7b40 100644
--- a/components/ui/Content/TitleMedium/index.tsx
+++ b/components/ui/Content/TitleMedium/index.tsx
@@ -133,7 +133,9 @@ function TitleMedium(
) {
return (
{
- if (!highlight) return text;
+ const getHighlightedText = (text: string, highlight: string) => {
+ if (!highlight) return text;
- const regex = new RegExp(`(${highlight})`, "giu");
+ const regex = new RegExp(`(${highlight})`, "giu");
+ const parts = text.split(regex);
- const parts = text.split(regex);
+ return parts.map((part, index) => {
+ if (part.toLowerCase() === highlight.toLowerCase()) {
+ return (
+
+ {part}
+
+ );
+ }
+ return part;
+ });
+ };
- return parts.map((part, index) => {
- if (part.toLowerCase() === highlight.toLowerCase()) {
- return (
-
- {part}
-
- );
- }
- return part;
- });
- };
-
- return (
- <>
-
+
+
+
+
+
+
+
+
+ {getHighlightedText(description, highlight)}
+
+
+
+
+ {ImageWidget && (
+
+
+
+ )}
+
-
- >
- );
+
+
+
+ >
+ );
}
export default FixedSectionForm;
\ No newline at end of file
diff --git a/components/ui/Form/Input/index.tsx b/components/ui/Form/Input/index.tsx
index cbb1c4c..47459cc 100644
--- a/components/ui/Form/Input/index.tsx
+++ b/components/ui/Form/Input/index.tsx
@@ -1,26 +1,22 @@
interface InputComponentProps {
+ name?: string;
placeholder?: string;
- onValidate?: (isValid: boolean) => void;
}
-function InputComponent({ placeholder, onValidate }: InputComponentProps) {
- const handleChange = (e: Event) => {
- const input = e.target as HTMLInputElement;
- if (onValidate) {
- onValidate(input.value.trim().length > 0);
- }
- };
+function InputComponent(
+ { name, placeholder }: InputComponentProps,
+) {
return (
<>
diff --git a/components/ui/Form/InputRadio/index.tsx b/components/ui/Form/InputRadio/index.tsx
index ac50b1b..1e9a6b5 100644
--- a/components/ui/Form/InputRadio/index.tsx
+++ b/components/ui/Form/InputRadio/index.tsx
@@ -11,68 +11,59 @@ function InputRadioComponent({
text,
name,
inputRadio,
- onValidate,
}: InputRadioComponentProps) {
- const handleChange = () => {
- if (onValidate) {
- onValidate(true);
- }
- };
-
return (
- <>
-
-
-
{text}
- {inputRadio.map((item, index) => (
-
-
+
+
{text}
+ {inputRadio.map((item, index) => (
+
+
+
- ))}
-
+
+
+
+
+
+
+
+ ))}
- >
+
);
}
-export default InputRadioComponent;
+export default InputRadioComponent;
\ No newline at end of file
diff --git a/components/ui/Form/TitleForm/index.tsx b/components/ui/Form/TitleForm/index.tsx
index bea85e7..9f2b47e 100644
--- a/components/ui/Form/TitleForm/index.tsx
+++ b/components/ui/Form/TitleForm/index.tsx
@@ -1,139 +1,135 @@
import type { JSX } from "preact";
function setClass(value: string) {
- switch (value) {
- case "primary":
- return "text-primary";
- case "Secondary":
- return "text-secondary";
- case "White":
- return "text-white";
- case "Accent":
- return "text-accent";
- case "Sacramento-State":
- return "text-sacramentoState";
- case "Sacramento-State-10":
- return "text-sacramentoState-10";
- case "Mint-Cream":
- return "text-mintCream";
- default:
- return "text-primary";
- }
+ switch (value) {
+ case "primary":
+ return "text-primary";
+ case "Secondary":
+ return "text-secondary";
+ case "White":
+ return "text-white";
+ case "Accent":
+ return "text-accent";
+ case "Sacramento-State":
+ return "text-sacramentoState";
+ case "Sacramento-State-10":
+ return "text-sacramentoState-10";
+ case "Mint-Cream":
+ return "text-mintCream";
+ default:
+ return "text-primary";
+ }
}
function setAlignment(value: string) {
- switch (value) {
- case "Left":
- return "text-left";
- case "Center":
- return "text-center";
- case "Right":
- return "text-right";
- default:
- return "";
- }
+ switch (value) {
+ case "Left":
+ return "text-left";
+ case "Center":
+ return "text-center";
+ case "Right":
+ return "text-right";
+ default:
+ return "";
+ }
}
function setAlignmentContent(value: string) {
- switch (value) {
- case "Start":
- return "justify-start";
- case "Center":
- return "justify-center";
- case "End":
- return "justify-end";
- default:
- return "justify-start";
- }
+ switch (value) {
+ case "Start":
+ return "justify-start";
+ case "Center":
+ return "justify-center";
+ case "End":
+ return "justify-end";
+ default:
+ return "justify-start";
+ }
}
function setFontSize(value: string): string {
- switch (value) {
- case "22px":
- return "text-[22px]";
- case "28px":
- return "text-[28px]";
- case "32px":
- return "text-[32px]";
- default:
- return "text-[28px]";
- }
+ switch (value) {
+ case "22px":
+ return "text-[22px]";
+ case "28px":
+ return "text-[28px]";
+ case "32px":
+ return "text-[32px]";
+ default:
+ return "text-[28px]";
+ }
}
function setContainerWidth(value: string): string {
- switch (value) {
- case "Largura Limitada (290px)":
- return "max-w-[290px] w-full";
- case "Largura Limitada (327px)":
- return "max-w-[327px] w-full";
- case "Largura Limitada (343px)":
- return "max-w-[343px] w-full";
- case "Largura Completa":
- return "w-full";
- default:
- return "max-w-[327px] w-full";
- }
+ switch (value) {
+ case "Largura Limitada (290px)":
+ return "max-w-[290px] w-full";
+ case "Largura Limitada (327px)":
+ return "max-w-[327px] w-full";
+ case "Largura Limitada (343px)":
+ return "max-w-[343px] w-full";
+ case "Largura Completa":
+ return "w-full";
+ default:
+ return "max-w-[327px] w-full";
+ }
}
function setPaddingTop(value: string): string {
- switch (value) {
- case "Espacamento (40px)":
- return "pt-[40px]";
- case "Espacamento (91px)":
- return "pt-[91px]";
- case "Espacamento (95px)":
- return "pt-[95px] ";
- default:
- return "pt-[40px]";
- }
+ switch (value) {
+ case "Espacamento (40px)":
+ return "pt-[40px]";
+ case "Espacamento (91px)":
+ return "pt-[91px]";
+ case "Espacamento (95px)":
+ return "pt-[95px] ";
+ default:
+ return "pt-[40px]";
+ }
}
function TitleForm(
- {
- description,
- content,
- colorTheme,
- alignment,
- fontSize,
- containerWidth,
- contentAlignment,
- paddingTop,
- }:
- & JSX.IntrinsicElements["div"]
- & Props,
+ {
+ description,
+ content,
+ colorTheme,
+ alignment,
+ fontSize,
+ containerWidth,
+ contentAlignment,
+ paddingTop,
+ }:
+ & JSX.IntrinsicElements["div"]
+ & Props,
) {
- return (
- <>
-
+
+
+
+
+ {description}
+
+
-
-
-
- {description}
-
-
- {content}
-
-
-
-
- >
- );
+ {content}
+
+
+
+
+ >
+ );
}
export default TitleForm;
diff --git a/components/ui/Form/index.tsx b/components/ui/Form/index.tsx
index b1e33b9..62ada32 100644
--- a/components/ui/Form/index.tsx
+++ b/components/ui/Form/index.tsx
@@ -16,16 +16,18 @@ function LoadComponent(
);
}
-function FormComponent({ sections }: JSX.IntrinsicElements["div"] & Props) {
+function FormComponent(
+ { sections, step }: JSX.IntrinsicElements["div"] & Props,
+) {
return (
<>
{sections?.map((item, index) => (
- //
-
- {
- /*
-
- {sections[currentStep.value].text} 1 *
- Solicitar plano
-
-
- {sections[currentStep.value].description}
- Primeiramente, qual o seu nome completo?
-
- */
- }
- {
- /* // Renderizando o componente
- // {LoadComponent(item.section)} */
- }
-
+
+
))}
-
+
>
);
}
-export default FormComponent;
+export default FormComponent;
\ No newline at end of file
diff --git a/components/ui/Form/script.tsx b/components/ui/Form/script.tsx
index e4460f6..31cad75 100644
--- a/components/ui/Form/script.tsx
+++ b/components/ui/Form/script.tsx
@@ -1,102 +1,137 @@
import { useScript } from "@deco/deco/hooks";
+export interface Props {
+ step?: number;
+}
-export interface Props {}
-
-const setup = ({}: Props) => {
+const setup = (_: Props) => {
+ const stepElement = Array.from(document.querySelectorAll("[data-step]"));
let currentStep = 0;
- const getFormPages = () => {
- return Array.from(
- document.querySelectorAll('[data-form="formulario"]'),
- ) as HTMLElement[];
- };
+ const totalSteps = () => stepElement.length;
- const totalSteps = () => getFormPages().length;
-
- const showCurrentPage = () => {
- const formPages = getFormPages();
- formPages.forEach((page, index) => {
- if (index === currentStep) {
- page.classList.add("block");
- page.classList.remove("hidden");
- } else {
- page.classList.add("hidden");
- page.classList.remove("block");
- }
+ const showCurrentPage = (): void => {
+ stepElement.forEach((page, index) => {
+ page.classList.toggle("block", index === currentStep);
+ page.classList.toggle("hidden", index !== currentStep);
});
-
- console.log(`Etapa atual: ${currentStep}`);
- console.log(`Total de páginas: ${totalSteps()}`);
+ validateInput();
};
const updateProgressBar = () => {
- const progressBar = document.getElementById("progress-bar") as HTMLElement;
- if (progressBar) {
- const progress = (currentStep / (totalSteps() - 1)) * 100;
- console.log("barra de progresso: " + progress);
+ const progressBars = document.querySelectorAll('[data-bar="progress"]');
+ const total = totalSteps();
- progressBar.style.width = `${progress}%`;
- }
+ const initialProgress = currentStep === 0
+ ? 15
+ : (currentStep / (total - 1)) * 100;
+
+ progressBars.forEach((progressBar) => {
+ const progressBarElement = progressBar as HTMLElement;
+
+ if (!progressBarElement.style.width && currentStep === 0) {
+ progressBarElement.style.width = "15%";
+ }
+
+ progressBarElement.style.background = "#3BEDB2";
+ progressBarElement.style.width = `${initialProgress}%`;
+ });
};
const handleNext = () => {
- const formPages = getFormPages();
-
- if (currentStep < totalSteps() - 1) {
+ const total = totalSteps();
+ if (currentStep < total - 1) {
currentStep++;
- console.log(`Indo para a próxima etapa: ${currentStep}`);
showCurrentPage();
updateProgressBar();
-
- window.scrollTo({
- top: formPages[currentStep]?.offsetTop || 0,
+
+ globalThis.scrollTo({
+ top: stepElement[currentStep]?.offsetTop || 0,
behavior: "smooth",
});
} else {
- alert("Você completou todos os formulários!");
+ window.location.href = '/me-liga/sucesso';
}
};
+
const handleBack = () => {
- const formPages = getFormPages();
-
if (currentStep > 0) {
currentStep--;
- console.log(`Voltando para a etapa anterior: ${currentStep}`);
showCurrentPage();
updateProgressBar();
- window.scrollTo({
- top: formPages[currentStep]?.offsetTop || 0,
+ globalThis.scrollTo({
+ top: stepElement[currentStep]?.offsetTop || 0,
behavior: "smooth",
});
} else {
- alert("Você está na primeira etapa!");
+ window.history.back();
}
};
- document.addEventListener("click", (event) => {
- if ((event.target as HTMLElement)?.id === "botao") {
- handleNext();
- }
- });
+ const validateInput = () => {
+ const inputs = document.querySelectorAll("input");
+ const nextButtons = document.querySelectorAll('[data-next="next"]');
+
+ inputs.forEach((input, index) => {
+ const nextButton = nextButtons[index] as HTMLButtonElement | undefined;
+ if (!nextButton) return;
+
+ const handleInput = () => {
+ let isValid = false;
+
+ if (input.type === "radio") {
+ const radioGroup = document.querySelectorAll(
+ `input[data-radio="${input.getAttribute("data-radio")}"]`,
+ );
+ isValid = Array.from(radioGroup).some((radio) =>
+ (radio as HTMLInputElement).checked
+ );
+ } else {
+ isValid = (input as HTMLInputElement).value.trim().length > 0;
+ }
+
+ nextButton.disabled = !isValid;
+ nextButton.style.backgroundColor = isValid ? "#003330" : "#003330";
+ nextButton.style.opacity = isValid ? "1" : "0.1";
+ nextButton.innerHTML = isValid
+ ? `
+
+ `
+ : `
+
+ `;
+ };
+
+ input.addEventListener("input", handleInput);
+ handleInput();
+ });
+ };
- document.addEventListener("click", (event) => {
- if ((event.target as HTMLElement)?.id === "back") {
- handleBack();
- }
- });
+ const bindEvents = () => {
+ const nextButtons = document.querySelectorAll('[data-next="next"]');
+ const backButtons = document.querySelectorAll('[data-back="back"]');
+
+ nextButtons.forEach((button) => {
+ button.addEventListener("click", handleNext);
+ });
+
+ backButtons.forEach((button) => {
+ button.addEventListener("click", handleBack);
+ });
+ };
+ bindEvents();
showCurrentPage();
updateProgressBar();
};
-function FormSteps({}: Props) {
+function FormSteps({ step }: Props) {
return (
);
diff --git a/components/ui/Galery/GaleryContent/index.tsx b/components/ui/Galery/GaleryContent/index.tsx
index ed12d0f..bcb1352 100644
--- a/components/ui/Galery/GaleryContent/index.tsx
+++ b/components/ui/Galery/GaleryContent/index.tsx
@@ -1,17 +1,19 @@
import type { JSX } from "preact";
+import Script, { type Props } from "./script.tsx";
import Image from "apps/website/components/Image.tsx";
function GaleryContent({ items }: JSX.IntrinsicElements["div"] & Props) {
return (
<>
-
-
+
+
{items.map((item, index) => (
@@ -35,9 +37,11 @@ function GaleryContent({ items }: JSX.IntrinsicElements["div"] & Props) {
))}
-
+
+
+
>
);
}
-export default GaleryContent;
+export default GaleryContent;
\ No newline at end of file
diff --git a/components/ui/Galery/GaleryContent/script.tsx b/components/ui/Galery/GaleryContent/script.tsx
new file mode 100644
index 0000000..c6ac3e3
--- /dev/null
+++ b/components/ui/Galery/GaleryContent/script.tsx
@@ -0,0 +1,63 @@
+import { useScript } from "@deco/deco/hooks";
+
+declare global {
+ var Swiper: any;
+}
+
+export interface Props {}
+
+const setup = () => {
+
+ const getClassSwiper = document.getElementById("swiper-container");
+
+ new Swiper(getClassSwiper, {
+ slidesPerView: 1.8,
+ spaceBetween: 20,
+ breakpoints: {
+ 768: {
+ slidesPerView: 3,
+ spaceBetween: 30,
+ },
+ 1024: {
+ slidesPerView: 4,
+ spaceBetween: 40,
+ },
+ },
+ navigation: {
+ nextEl: ".swiper-button-next",
+ prevEl: ".swiper-button-prev",
+ },
+ pagination: {
+ el: ".swiper-pagination",
+ clickable: true,
+ },
+ });
+};
+
+if (typeof window !== "undefined" && typeof document !== "undefined") {
+ const swiperScript = document.createElement("script");
+ swiperScript.src = "https://unpkg.com/swiper/swiper-bundle.min.js";
+ swiperScript.onload = () => {
+ const swiperStyles = document.createElement("link");
+ swiperStyles.rel = "stylesheet";
+ swiperStyles.href = "https://unpkg.com/swiper/swiper-bundle.min.css";
+ document.head.appendChild(swiperStyles);
+
+ setup();
+ };
+
+ document.body.appendChild(swiperScript);
+}
+
+function Galery({}: Props) {
+ return (
+
+ );
+}
+
+export default Galery;
\ No newline at end of file
diff --git a/components/ui/Galery/GaleryImages/index.tsx b/components/ui/Galery/GaleryImages/index.tsx
index 32f0eab..1a52240 100644
--- a/components/ui/Galery/GaleryImages/index.tsx
+++ b/components/ui/Galery/GaleryImages/index.tsx
@@ -19,7 +19,11 @@ function GaleryImages({ items }: JSX.IntrinsicElements["div"] & Props) {
>
-
+
@@ -36,4 +40,4 @@ function GaleryImages({ items }: JSX.IntrinsicElements["div"] & Props) {
);
}
-export default GaleryImages;
\ No newline at end of file
+export default GaleryImages;
diff --git a/islands/Counter.tsx b/islands/Counter.tsx
index f972146..5134776 100644
--- a/islands/Counter.tsx
+++ b/islands/Counter.tsx
@@ -5,13 +5,19 @@ export default function Counter() {
return (
-
);
-}
\ No newline at end of file
+}
diff --git a/package-lock.json b/package-lock.json
index 9edbf6d..498b7bf 100644
--- a/package-lock.json
+++ b/package-lock.json
@@ -8,7 +8,7 @@
"react": "^18.3.1",
"react-dom": "^18.3.1",
"react-router-dom": "^6.26.2",
- "swiper": "^11.1.14"
+ "swiper": "^11.2.1"
}
},
"node_modules/@remix-run/router": {
@@ -105,9 +105,9 @@
}
},
"node_modules/swiper": {
- "version": "11.1.14",
- "resolved": "https://registry.npmjs.org/swiper/-/swiper-11.1.14.tgz",
- "integrity": "sha512-VbQLQXC04io6AoAjIUWuZwW4MSYozkcP9KjLdrsG/00Q/yiwvhz9RQyt0nHXV10hi9NVnDNy1/wv7Dzq1lkOCQ==",
+ "version": "11.2.1",
+ "resolved": "https://registry.npmjs.org/swiper/-/swiper-11.2.1.tgz",
+ "integrity": "sha512-62G69+iQRIfUqTmJkWpZDcX891Ra8O9050ckt1/JI2H+0483g+gq0m7gINecDqMtDh2zt5dK+uzBRxGhGOOvQA==",
"funding": [
{
"type": "patreon",
diff --git a/package.json b/package.json
index b75ce00..1b7fb72 100644
--- a/package.json
+++ b/package.json
@@ -3,6 +3,6 @@
"react": "^18.3.1",
"react-dom": "^18.3.1",
"react-router-dom": "^6.26.2",
- "swiper": "^11.1.14"
+ "swiper": "^11.2.1"
}
}
diff --git a/sections/Destaques/Duvidas.tsx b/sections/Destaques/Duvidas.tsx
index 20e4b03..fef5f88 100644
--- a/sections/Destaques/Duvidas.tsx
+++ b/sections/Destaques/Duvidas.tsx
@@ -53,14 +53,14 @@ export interface Button {
* @description Selecione o tipo de botão que deseja
*/
buttonTheme?:
- | "Primary dark"
- | "Primary white"
- | "Secondary dark"
- | "Secondary white"
- | "Link dark"
- | "Link white"
- | "Faq"
- | "Nenhuma estilização"
+ | "Primary dark"
+ | "Primary white"
+ | "Secondary dark"
+ | "Secondary white"
+ | "Link dark"
+ | "Link white"
+ | "Faq"
+ | "Nenhuma estilização";
}
export interface Props {
@@ -105,14 +105,20 @@ export default function Section({
- {button?.map((btn, index) => (
-
-
-
- ))}
+ {button?.map((btn, index) => (
+
+
+
+ ))}
- {/*
+ {
+ /*
{button?.map((btn, index) => (
))}
-
*/}
+
*/
+ }
);
diff --git a/sections/Destaques/ModalContent.tsx b/sections/Destaques/ModalContent.tsx
index e2e92c4..a768928 100644
--- a/sections/Destaques/ModalContent.tsx
+++ b/sections/Destaques/ModalContent.tsx
@@ -110,17 +110,28 @@ export default function Section({
return (
{items.map((item, index) => (
- {/* {item.icon && (
+ {
+ /* {item.icon && (
- )} */}
+ )} */
+ }
- {item.header && (
+ {item.header && (
Me Liga
-
{item.header}
+
+ {item.header}
+
)}
@@ -153,7 +167,11 @@ export default function Section({
// }}
// />
//
-
+
))}
))}
diff --git a/sections/Destaques/ModalWithSubTopic.tsx b/sections/Destaques/ModalWithSubTopic.tsx
index c8f55f5..3f91d75 100644
--- a/sections/Destaques/ModalWithSubTopic.tsx
+++ b/sections/Destaques/ModalWithSubTopic.tsx
@@ -5,10 +5,10 @@ interface TableRow {
checks?: boolean[];
}
-interface Table{
+interface Table {
columnName?: string[];
header?: string[];
- tableRows?:TableRow[];
+ tableRows?: TableRow[];
}
interface Tab {
@@ -23,8 +23,7 @@ export interface Item {
descritiveInformative?: string[];
topics?: string[];
tabs?: Tab[];
- table?:Table[];
-
+ table?: Table[];
}
interface Props {
@@ -41,48 +40,69 @@ export default function Section({
{items.map((item, index) => (
-
{item.header}
- {item.descritiveTitle && item.descritiveTitle.map((question, qIndex) => (
-
- {question}
-
- ))}
- {item.descritiveInformative && item.descritiveInformative.map((info, iIndex) => (
-
- {info}
-
- ))}
- {item.topics && item.topics.map((topic, tIndex) => (
-
- • {topic}
-
- ))}
-
-
- {item.tabs.map((tab, tabIndex) => (
-
{tab.name}
- ))}
-
- {item.tabs.map((tab, tabIndex) => (
-
- {tab.steps && tab.steps.length > 0 && (
-
- {tab.steps.map((step, sIndex) => (
-
- {sIndex + 1}. {step}
-
- ))}
-
- )}
- {tab.image && (
-
- )}
-
- ))}
-
- )}
+
+ {item.header}
+
+ {item.descritiveTitle &&
+ item.descritiveTitle.map((question, qIndex) => (
+
+ {question}
+
+ ))}
+ {item.descritiveInformative &&
+ item.descritiveInformative.map((info, iIndex) => (
+
+ {info}
+
+ ))}
+ {item.topics &&
+ item.topics.map((topic, tIndex) => (
+
+ • {topic}
+
+ ))}
+
+
+ {item.tabs.map((tab, tabIndex) => (
+
{tab.name}
+ ))}
- ))}
+ {item.tabs.map((tab, tabIndex) => (
+
+ {tab.steps && tab.steps.length > 0 && (
+
+ {tab.steps.map((step, sIndex) => (
+
+ {sIndex + 1}. {step}
+
+ ))}
+
+ )}
+ {tab.image && (
+
+ )}
+
+ ))}
+
+ )}
+
+ ))}
- );
- }
\ No newline at end of file
+ );
+}
diff --git a/sections/Destaques/Suporte.tsx b/sections/Destaques/Suporte.tsx
index 05cbe3d..3e7e65c 100644
--- a/sections/Destaques/Suporte.tsx
+++ b/sections/Destaques/Suporte.tsx
@@ -164,7 +164,8 @@ export default function Section({
return (
- );
+ return (
+
+ );
}
diff --git a/sections/Final/Content/Clients.tsx b/sections/Final/Content/Clients.tsx
index ebbaf0d..bfc7694 100644
--- a/sections/Final/Content/Clients.tsx
+++ b/sections/Final/Content/Clients.tsx
@@ -6,58 +6,58 @@ import { ImageWidget } from "apps/admin/widgets.ts";
* @title {{{title}}}
*/
export interface Clients {
- /**
- * @title Título do Bloco
- * @description Escreva o título do bloco
- */
- title: string;
- /**
- * @title Ícone do Cliente
- */
- iconClient?: ImageWidget;
- /**
- * @title Nome
- * @description Insira o nome do cliente
- */
- name?: string;
- /**
- * @title Tipo
- * @description Insira o tipo de cliente
- */
- type?: string;
- /**
- * @title Cidade/Estado
- * @description Insira a cidade e/ou estado do cliente
- */
- cityUf?: string;
+ /**
+ * @title Título do Bloco
+ * @description Escreva o título do bloco
+ */
+ title: string;
+ /**
+ * @title Ícone do Cliente
+ */
+ iconClient?: ImageWidget;
+ /**
+ * @title Nome
+ * @description Insira o nome do cliente
+ */
+ name?: string;
+ /**
+ * @title Tipo
+ * @description Insira o tipo de cliente
+ */
+ type?: string;
+ /**
+ * @title Cidade/Estado
+ * @description Insira a cidade e/ou estado do cliente
+ */
+ cityUf?: string;
}
export interface Props {
- /**
- * @title Conteúdo da Dúvida
- */
- clients: Clients[];
- /**
- * @title Cor do Tema
- */
- colorTheme:
- | "Primary"
- | "Secondary"
- | "White"
- | "Accent"
- | "Sacramento-State"
- | "Sacramento-State-10"
- | "Mint-Cream";
+ /**
+ * @title Conteúdo da Dúvida
+ */
+ clients: Clients[];
+ /**
+ * @title Cor do Tema
+ */
+ colorTheme:
+ | "Primary"
+ | "Secondary"
+ | "White"
+ | "Accent"
+ | "Sacramento-State"
+ | "Sacramento-State-10"
+ | "Mint-Cream";
}
export default function Section({
- clients,
- colorTheme,
+ clients,
+ colorTheme,
}: Props) {
- return (
-
- );
-}
\ No newline at end of file
+ return (
+
+ );
+}
diff --git a/sections/Final/Content/Comparison.tsx b/sections/Final/Content/Comparison.tsx
index 1242a11..f6d89be 100644
--- a/sections/Final/Content/Comparison.tsx
+++ b/sections/Final/Content/Comparison.tsx
@@ -212,4 +212,4 @@ export default function Section({
);
-}
\ No newline at end of file
+}
diff --git a/sections/Final/Content/ComparisonPlan.tsx b/sections/Final/Content/ComparisonPlan.tsx
index ae09289..0535610 100644
--- a/sections/Final/Content/ComparisonPlan.tsx
+++ b/sections/Final/Content/ComparisonPlan.tsx
@@ -2,72 +2,72 @@ import { ImageWidget } from "apps/admin/widgets.ts";
import ComparisonPlan from "../../../components/ui/Content/ComparisonPlan/index.tsx";
export interface BenefitsPlan {
- /**
- * @title Benefício do Plano
- * @description Escreva o benefício do plano
- */
- benefitDescription?: string[];
+ /**
+ * @title Benefício do Plano
+ * @description Escreva o benefício do plano
+ */
+ benefitDescription?: string[];
}
/**
* @title {{{title}}}
*/
export interface Props {
- /**
- * @title Título da Seção
- * @description Escreva o título da seção
- */
- title: string;
- /**
- * @title Ícone do Plano Esquerdo
- * @description Insira o ícone do plano da esquerda
- */
- leftPlanIcon: ImageWidget;
- /**
- * @title Nome do Plano Esquerdo
- * @description Insira o nome do plano da esquerda
- */
- leftPlanName: string;
- /**
- * @title Benefícios do Plano Esquerdo
- * @description Insira os benefícios do plano da esquerda
- */
- leftPlanBenefits: BenefitsPlan;
- /**
- * @title Ícone do Plano Direito
- * @description Insira o ícone do plano da direita
- */
- rightPlanIcon: ImageWidget;
- /**
- * @title Nome do Plano Direito
- * @description Insira o nome do plano da direita
- */
- rightPlanName: string;
- /**
- * @title Benefícios do Plano Direito
- * @description Insira os benefícios do plano da direita
- */
- rightPlanBenefits: BenefitsPlan;
+ /**
+ * @title Título da Seção
+ * @description Escreva o título da seção
+ */
+ title: string;
+ /**
+ * @title Ícone do Plano Esquerdo
+ * @description Insira o ícone do plano da esquerda
+ */
+ leftPlanIcon: ImageWidget;
+ /**
+ * @title Nome do Plano Esquerdo
+ * @description Insira o nome do plano da esquerda
+ */
+ leftPlanName: string;
+ /**
+ * @title Benefícios do Plano Esquerdo
+ * @description Insira os benefícios do plano da esquerda
+ */
+ leftPlanBenefits: BenefitsPlan;
+ /**
+ * @title Ícone do Plano Direito
+ * @description Insira o ícone do plano da direita
+ */
+ rightPlanIcon: ImageWidget;
+ /**
+ * @title Nome do Plano Direito
+ * @description Insira o nome do plano da direita
+ */
+ rightPlanName: string;
+ /**
+ * @title Benefícios do Plano Direito
+ * @description Insira os benefícios do plano da direita
+ */
+ rightPlanBenefits: BenefitsPlan;
}
export default function Section({
- title = "",
- leftPlanIcon,
- leftPlanName = "",
- leftPlanBenefits,
- rightPlanIcon,
- rightPlanName = "",
- rightPlanBenefits,
+ title = "",
+ leftPlanIcon,
+ leftPlanName = "",
+ leftPlanBenefits,
+ rightPlanIcon,
+ rightPlanName = "",
+ rightPlanBenefits,
}: Props) {
- return (
-
- );
-}
\ No newline at end of file
+ return (
+
+ );
+}
diff --git a/sections/Final/Content/Doubts.tsx b/sections/Final/Content/Doubts.tsx
index b10f9e1..bd350d0 100644
--- a/sections/Final/Content/Doubts.tsx
+++ b/sections/Final/Content/Doubts.tsx
@@ -7,63 +7,63 @@ import { Section } from "deco/blocks/section.ts";
* @title {{{title}}}
*/
export interface Item {
- title: string;
- /**
- * @title Conteúdo
- */
- section: Section;
+ title: string;
+ /**
+ * @title Conteúdo
+ */
+ section: Section;
}
/**
* @title {{{title}}}
*/
export interface Doubts {
- /**
- * @title Título do Bloco
- * @description Escreva o título do bloco
- */
- title: string;
- /**
- * @title Subtítulo da Dúvida
- * @description Escreva aqui subtítulo da dúvida
- */
- subtitleDoubtAppear: string;
- /**
- * @title Descrição da Dúvida
- * @description Escreva aqui a descrição da dúvida
- */
- descriptionHiddenDoubt: string;
- /**
- * @title Conteúdo
- */
- sections?: Item[];
+ /**
+ * @title Título do Bloco
+ * @description Escreva o título do bloco
+ */
+ title: string;
+ /**
+ * @title Subtítulo da Dúvida
+ * @description Escreva aqui subtítulo da dúvida
+ */
+ subtitleDoubtAppear: string;
+ /**
+ * @title Descrição da Dúvida
+ * @description Escreva aqui a descrição da dúvida
+ */
+ descriptionHiddenDoubt: string;
+ /**
+ * @title Conteúdo
+ */
+ sections?: Item[];
}
export interface Props {
- /**
- * @title Conteúdo da Dúvida
- */
- doubt: Doubts[];
- /**
- * @title Cor do Tema
- */
- colorTheme:
- | "Primary"
- | "Secondary"
- | "White"
- | "Accent"
- | "Sacramento-State"
- | "Sacramento-State-10"
- | "Mint-Cream";
+ /**
+ * @title Conteúdo da Dúvida
+ */
+ doubt: Doubts[];
+ /**
+ * @title Cor do Tema
+ */
+ colorTheme:
+ | "Primary"
+ | "Secondary"
+ | "White"
+ | "Accent"
+ | "Sacramento-State"
+ | "Sacramento-State-10"
+ | "Mint-Cream";
}
export default function Section(
- { doubt, colorTheme }: Props,
+ { doubt, colorTheme }: Props,
) {
- return (
-
- );
-}
\ No newline at end of file
+ return (
+
+ );
+}
diff --git a/sections/Final/Content/Dropdown.tsx b/sections/Final/Content/Dropdown.tsx
index 29bd1bc..82a9665 100644
--- a/sections/Final/Content/Dropdown.tsx
+++ b/sections/Final/Content/Dropdown.tsx
@@ -6,67 +6,67 @@ import { ImageWidget } from "apps/admin/widgets.ts";
* @title {{{title}}}
*/
export interface filteredCategories {
- /**
- * @title Título do Bloco
- * @description Escreva o título do bloco
- */
- title: string;
+ /**
+ * @title Título do Bloco
+ * @description Escreva o título do bloco
+ */
+ title: string;
- /**
- * @title Nome
- * @description Nome da categoria filtrada
- */
- name: string;
+ /**
+ * @title Nome
+ * @description Nome da categoria filtrada
+ */
+ name: string;
}
/**
* @title {{{title}}}
*/
export interface Props {
- /**
- * @title Título do Bloco
- * @description Escreva o título do bloco
- */
- title: string;
+ /**
+ * @title Título do Bloco
+ * @description Escreva o título do bloco
+ */
+ title: string;
- /**
- * @title Texto do Dropdown
- * @description Insira o texto do dropdown
- */
- dropdownText: string;
+ /**
+ * @title Texto do Dropdown
+ * @description Insira o texto do dropdown
+ */
+ dropdownText: string;
- /**
- * @title Ícone de Seta
- * @description Insira o ícone de seta
- */
- arrowIcon: ImageWidget;
+ /**
+ * @title Ícone de Seta
+ * @description Insira o ícone de seta
+ */
+ arrowIcon: ImageWidget;
- /**
- * @title Categorias Filtradas
- * @description Insira as categorias de integração filtradas
- */
- button?: filteredCategories[];
- /**
- * @title Função de Mudança de Categoria
- * @description Função chamada ao mudar a categoria no Dropdown
- */
- onCategoryChange: (selected: string) => void;
+ /**
+ * @title Categorias Filtradas
+ * @description Insira as categorias de integração filtradas
+ */
+ button?: filteredCategories[];
+ /**
+ * @title Função de Mudança de Categoria
+ * @description Função chamada ao mudar a categoria no Dropdown
+ */
+ onCategoryChange: (selected: string) => void;
}
export default function Section({
- title = "",
- dropdownText = "",
- arrowIcon,
- button,
- onCategoryChange,
+ title = "",
+ dropdownText = "",
+ arrowIcon,
+ button,
+ onCategoryChange,
}: Props) {
- return (
-
- );
-}
\ No newline at end of file
+ return (
+
+ );
+}
diff --git a/sections/Final/Content/DropdownWithLogos.tsx b/sections/Final/Content/DropdownWithLogos.tsx
index c9fa22f..ef1b57d 100644
--- a/sections/Final/Content/DropdownWithLogos.tsx
+++ b/sections/Final/Content/DropdownWithLogos.tsx
@@ -6,95 +6,95 @@ import { ImageWidget } from "apps/admin/widgets.ts";
* @title {{{title}}}
*/
export interface FilteredCategories {
- /**
- * @title Título do Bloco
- * @description Escreva o título do bloco
- */
- title: string;
+ /**
+ * @title Título do Bloco
+ * @description Escreva o título do bloco
+ */
+ title: string;
- /**
- * @title Nome
- * @description Nome da categoria filtrada
- */
- name: string;
+ /**
+ * @title Nome
+ * @description Nome da categoria filtrada
+ */
+ name: string;
- /**
- * @title ID da Categoria
- * @description ID único associado à categoria
- */
- id: string;
+ /**
+ * @title ID da Categoria
+ * @description ID único associado à categoria
+ */
+ id: string;
}
/**
* @title {{{title}}}
*/
export interface Logos {
- /**
- * @title Nome da Categoria
- * @description Nome da categoria a qual o logo pertence
- */
- category: string;
+ /**
+ * @title Nome da Categoria
+ * @description Nome da categoria a qual o logo pertence
+ */
+ category: string;
- /**
- * @title Nome do Logo
- * @description Título do logo
- */
- title: string;
+ /**
+ * @title Nome do Logo
+ * @description Título do logo
+ */
+ title: string;
- /**
- * @title Imagens
- * @description Adicione as imagens do logotipo
- */
- logo: ImageWidget[];
+ /**
+ * @title Imagens
+ * @description Adicione as imagens do logotipo
+ */
+ logo: ImageWidget[];
- /**
- * @title ID único do logo
- * @description ID único associado ao logo e suas imagens
- */
- id: string;
+ /**
+ * @title ID único do logo
+ * @description ID único associado ao logo e suas imagens
+ */
+ id: string;
}
/**
* @title {{{title}}}
*/
export interface Props extends JSX.HTMLAttributes
{
- /**
- * @title Texto do Dropdown
- * @description Insira o texto do dropdown
- */
- dropdownText: string;
+ /**
+ * @title Texto do Dropdown
+ * @description Insira o texto do dropdown
+ */
+ dropdownText: string;
- /**
- * @title Ícone de Seta
- * @description Insira o ícone de seta
- */
- arrowIcon: ImageWidget;
+ /**
+ * @title Ícone de Seta
+ * @description Insira o ícone de seta
+ */
+ arrowIcon: ImageWidget;
- /**
- * @title Categorias Filtradas
- * @description Insira as categorias de integração filtradas
- */
- button?: FilteredCategories[];
+ /**
+ * @title Categorias Filtradas
+ * @description Insira as categorias de integração filtradas
+ */
+ button?: FilteredCategories[];
- /**
- * @title Logos
- * @description Lista de logos associados às categorias
- */
- logos: Logos[];
+ /**
+ * @title Logos
+ * @description Lista de logos associados às categorias
+ */
+ logos: Logos[];
}
export default function Section({
- dropdownText = "",
- arrowIcon = "",
- button,
- logos,
+ dropdownText = "",
+ arrowIcon = "",
+ button,
+ logos,
}: Props) {
- return (
-
- );
+ return (
+
+ );
}
diff --git a/sections/Final/Content/Lead.tsx b/sections/Final/Content/Lead.tsx
index 218dc72..2db940f 100644
--- a/sections/Final/Content/Lead.tsx
+++ b/sections/Final/Content/Lead.tsx
@@ -1,65 +1,64 @@
import React from "react";
import Lead from "../../../components/ui/Content/Lead/index.tsx";
-
/**
* @title {{{title}}}
*/
export interface Title {
- title: string;
- /**
- * @title Texto
- * @description Escreva aqui o seu conteúdo
- */
- content: string;
- /**
- * @title Alinhamento
- * @format button-group
- * @options site/loaders/icons.ts
- */
- textAlignment?: "Left" | "Center" | "Right";
- colorTheme: "Primary" | "Secondary" | "White" | "Accent";
- }
+ title: string;
+ /**
+ * @title Texto
+ * @description Escreva aqui o seu conteúdo
+ */
+ content: string;
+ /**
+ * @title Alinhamento
+ * @format button-group
+ * @options site/loaders/icons.ts
+ */
+ textAlignment?: "Left" | "Center" | "Right";
+ colorTheme: "Primary" | "Secondary" | "White" | "Accent";
+}
/**
* @title {{{title}}}
*/
export interface Button {
- title: string;
- /**
- * @title Texto
- * @description Escreva o texto do botão
- */
- text: string;
- /**
- * @title Link
- * @description Escreva o link de redirecionamento
- */
- link: string;
- /**
- * @title Icone
- * @description Selecione o ícone que deseja
- */
- icon?: string;
- /**
- * @title Botão
- * @description Selecione o tipo de botão que deseja
- */
- buttonTheme?:
- | "Primary dark"
- | "Primary white"
- | "Secondary dark"
- | "Secondary white"
- | "Link dark"
- | "Link white"
- | "Faq"
- | "Nenhuma estilização"
-
- /**
- * @title Tamanho do botão
- * @description Selecione o tamanho do botão
- */
- tamanho?:
+ title: string;
+ /**
+ * @title Texto
+ * @description Escreva o texto do botão
+ */
+ text: string;
+ /**
+ * @title Link
+ * @description Escreva o link de redirecionamento
+ */
+ link: string;
+ /**
+ * @title Icone
+ * @description Selecione o ícone que deseja
+ */
+ icon?: string;
+ /**
+ * @title Botão
+ * @description Selecione o tipo de botão que deseja
+ */
+ buttonTheme?:
+ | "Primary dark"
+ | "Primary white"
+ | "Secondary dark"
+ | "Secondary white"
+ | "Link dark"
+ | "Link white"
+ | "Faq"
+ | "Nenhuma estilização";
+
+ /**
+ * @title Tamanho do botão
+ * @description Selecione o tamanho do botão
+ */
+ tamanho?:
| "Máximo (100%)"
| "Mínimo (Tamanho do conteúdo)";
}
diff --git a/sections/Final/Content/OptionalCollapse.tsx b/sections/Final/Content/OptionalCollapse.tsx
index 5c8c6a1..13f0077 100644
--- a/sections/Final/Content/OptionalCollapse.tsx
+++ b/sections/Final/Content/OptionalCollapse.tsx
@@ -7,73 +7,73 @@ import { Section } from "deco/blocks/section.ts";
* @title {{{title}}}
*/
export interface Item {
- title: string;
- /**
- * @title Conteúdo
- */
- section: Section;
+ title: string;
+ /**
+ * @title Conteúdo
+ */
+ section: Section;
}
/**
* @title {{{title}}}
*/
export interface Optional {
- /**
- * @title Título do Bloco
- * @description Escreva o título do bloco
- */
- title: string;
- /**
- * @title Ícone da Marca
- * @description Ícone da marca no collapse
- */
- iconBrand?: ImageWidget;
- /**
- * @title Nome da Marca
- * @description Insira o nome da marca
- */
- brandNameSubtitle?: string;
- /**
- * @title Ícone (Fechado)
- * @description Ícone exibido quando o collapse está fechado
- */
- closedIcon?: ImageWidget;
- /**
- * @title Ícone (Aberto)
- * @description Ícone exibido quando o collapse está aberto
- */
- openIcon?: ImageWidget;
- /**
- * @title Conteúdo
- */
- sections?: Item[];
+ /**
+ * @title Título do Bloco
+ * @description Escreva o título do bloco
+ */
+ title: string;
+ /**
+ * @title Ícone da Marca
+ * @description Ícone da marca no collapse
+ */
+ iconBrand?: ImageWidget;
+ /**
+ * @title Nome da Marca
+ * @description Insira o nome da marca
+ */
+ brandNameSubtitle?: string;
+ /**
+ * @title Ícone (Fechado)
+ * @description Ícone exibido quando o collapse está fechado
+ */
+ closedIcon?: ImageWidget;
+ /**
+ * @title Ícone (Aberto)
+ * @description Ícone exibido quando o collapse está aberto
+ */
+ openIcon?: ImageWidget;
+ /**
+ * @title Conteúdo
+ */
+ sections?: Item[];
}
export interface Props {
- /**
- * @title Conteúdo de Opcional
- */
- optional: Optional[];
- /**
- * @title Cor do Tema
- */
- colorTheme:
- | "Primary"
- | "Secondary"
- | "White"
- | "Accent"
- | "Sacramento-State"
- | "Sacramento-State-10"
- | "Mint-Cream";
+ /**
+ * @title Conteúdo de Opcional
+ */
+ optional: Optional[];
+ /**
+ * @title Cor do Tema
+ */
+ colorTheme:
+ | "Primary"
+ | "Secondary"
+ | "White"
+ | "Accent"
+ | "Sacramento-State"
+ | "Sacramento-State-10"
+ | "Mint-Cream";
}
export default function Section(
- { optional, colorTheme }: Props,
+ { optional, colorTheme }: Props,
) {
- return (
-
- );
+ return (
+
+ );
}
diff --git a/sections/Final/Content/OrderTracking.tsx b/sections/Final/Content/OrderTracking.tsx
index cf3d5c5..9d12683 100644
--- a/sections/Final/Content/OrderTracking.tsx
+++ b/sections/Final/Content/OrderTracking.tsx
@@ -6,66 +6,66 @@ import OrderTracking from "../../../components/ui/Content/OrderTracking/index.ts
* @title {{{title}}}
*/
export interface OrderStatus {
- /**
- * @title Título do Bloco
- * @description Escreva o título do bloco
- */
- title: string;
- /**
- * @title Subtítulo do Status
- * @description Escreva aqui subtítulo do status do pedido
- */
- subtitleOrderStatus: string;
- /**
- * @title Descrição do Status
- * @description Escreva aqui a descrição do status do pedido
- */
- description: string;
- /**
- * @title Imagem do Status
- * @description Insira aqui a imagem do status do pedido
- */
- imageStatus?: ImageWidget;
+ /**
+ * @title Título do Bloco
+ * @description Escreva o título do bloco
+ */
+ title: string;
+ /**
+ * @title Subtítulo do Status
+ * @description Escreva aqui subtítulo do status do pedido
+ */
+ subtitleOrderStatus: string;
+ /**
+ * @title Descrição do Status
+ * @description Escreva aqui a descrição do status do pedido
+ */
+ description: string;
+ /**
+ * @title Imagem do Status
+ * @description Insira aqui a imagem do status do pedido
+ */
+ imageStatus?: ImageWidget;
}
export interface Props {
- /**
- * @title Conteúdo do Status do Pedido
- */
- order: OrderStatus[];
- /**
- * @title Cor do Tema
- */
- colorTheme:
- | "Primary"
- | "Secondary"
- | "White"
- | "Accent"
- | "Sacramento-State"
- | "Sacramento-State-10"
- | "Mint-Cream";
+ /**
+ * @title Conteúdo do Status do Pedido
+ */
+ order: OrderStatus[];
+ /**
+ * @title Cor do Tema
+ */
+ colorTheme:
+ | "Primary"
+ | "Secondary"
+ | "White"
+ | "Accent"
+ | "Sacramento-State"
+ | "Sacramento-State-10"
+ | "Mint-Cream";
- /**
- * @title Cor do Tema do Ícone de Status
- */
- colorThemeBackgroundIcon:
- | "Primary"
- | "Secondary"
- | "White"
- | "Accent"
- | "Sacramento-State"
- | "Sacramento-State-10"
- | "Mint-Cream";
+ /**
+ * @title Cor do Tema do Ícone de Status
+ */
+ colorThemeBackgroundIcon:
+ | "Primary"
+ | "Secondary"
+ | "White"
+ | "Accent"
+ | "Sacramento-State"
+ | "Sacramento-State-10"
+ | "Mint-Cream";
}
export default function Section(
- { order, colorTheme, colorThemeBackgroundIcon }: Props,
+ { order, colorTheme, colorThemeBackgroundIcon }: Props,
) {
- return (
-
- );
-}
\ No newline at end of file
+ return (
+
+ );
+}
diff --git a/sections/Final/Content/ParentComponent.tsx b/sections/Final/Content/ParentComponent.tsx
index 7a0b743..9766609 100644
--- a/sections/Final/Content/ParentComponent.tsx
+++ b/sections/Final/Content/ParentComponent.tsx
@@ -3,30 +3,30 @@ import Dropdown from "../../../components/ui/Content/Dropdown/index.tsx";
import LogoGroupComponent from "../../../components/ui/Content/LogoGroup/index.tsx";
function ParentComponent({ title, dropdownText, arrowIcon, button, logos }) {
- const [selectedCategory, setSelectedCategory] = useState("");
+ const [selectedCategory, setSelectedCategory] = useState("");
- const handleCategoryChange = (category: string) => {
- console.log(`[ParentComponent] Categoria selecionada: ${category}`);
- setSelectedCategory(category);
- };
+ const handleCategoryChange = (category: string) => {
+ console.log(`[ParentComponent] Categoria selecionada: ${category}`);
+ setSelectedCategory(category);
+ };
- console.log("[ParentComponent] Categoria atual:", selectedCategory);
+ console.log("[ParentComponent] Categoria atual:", selectedCategory);
- return (
-
-
-
-
- );
+ return (
+
+
+
+
+ );
}
-export default ParentComponent;
\ No newline at end of file
+export default ParentComponent;
diff --git a/sections/Final/Content/Product.tsx b/sections/Final/Content/Product.tsx
index 79c8cc9..743f30a 100644
--- a/sections/Final/Content/Product.tsx
+++ b/sections/Final/Content/Product.tsx
@@ -11,14 +11,14 @@ export interface Button {
* @description Escreva o texto do botão
*/
text: string;
-
+
/**
* @title Tamanho do botão
* @description Selecione o tamanho do botão
*/
- tamanho?:
- | "Máximo (100%)"
- | "Mínimo (Tamanho do conteúdo)";
+ tamanho?:
+ | "Máximo (100%)"
+ | "Mínimo (Tamanho do conteúdo)";
/**
* @title Link
@@ -35,14 +35,14 @@ export interface Button {
* @description Selecione o tipo de botão que deseja
*/
buttonTheme?:
- | "Primary dark"
- | "Primary white"
- | "Secondary dark"
- | "Secondary white"
- | "Link dark"
- | "Link white"
- | "Faq"
- | "Nenhuma estilização"
+ | "Primary dark"
+ | "Primary white"
+ | "Secondary dark"
+ | "Secondary white"
+ | "Link dark"
+ | "Link white"
+ | "Faq"
+ | "Nenhuma estilização";
}
export interface Props {
diff --git a/sections/Final/Content/Spacer.tsx b/sections/Final/Content/Spacer.tsx
index 2df6256..5ea7e40 100644
--- a/sections/Final/Content/Spacer.tsx
+++ b/sections/Final/Content/Spacer.tsx
@@ -3,28 +3,29 @@ import Chip from "../../../components/ui/Content/Chip/index.tsx";
import { ImageWidget } from "apps/admin/widgets.ts";
export interface Props {
- /**
- * @title Alinhamento
- * @description Selecione o alinhamento
- */
- contentAlign:
- | "Vertical"
- | "Horizontal"
+ /**
+ * @title Alinhamento
+ * @description Selecione o alinhamento
+ */
+ contentAlign:
+ | "Vertical"
+ | "Horizontal";
}
export default function Section({
- contentAlign = "Vertical",
- }: Props) {
+ contentAlign = "Vertical",
+}: Props) {
return (
-
- { contentAlign == "Vertical" && (
-
- )}
- { contentAlign == "Horizontal" && (
-
- )}
-
+
+ {contentAlign == "Vertical" && (
+
+
+ )}
+ {contentAlign == "Horizontal" && (
+
+ )}
+
);
}
diff --git a/sections/Final/Counter/Counter.tsx b/sections/Final/Counter/Counter.tsx
index 6763d69..99cb531 100644
--- a/sections/Final/Counter/Counter.tsx
+++ b/sections/Final/Counter/Counter.tsx
@@ -2,15 +2,15 @@ import type { JSX } from "preact";
import CounterComponent from "../../../islands/Counter.tsx";
import Script, { type Props } from "./script.tsx";
-function Counter({ }: JSX.IntrinsicElements["div"] & Props) {
+function Counter({}: JSX.IntrinsicElements["div"] & Props) {
return (
<>
-
>
);
}
-export default Counter;
\ No newline at end of file
+export default Counter;
diff --git a/sections/Final/Counter/script.tsx b/sections/Final/Counter/script.tsx
index 185cdd7..e3a5e3c 100644
--- a/sections/Final/Counter/script.tsx
+++ b/sections/Final/Counter/script.tsx
@@ -1,53 +1,47 @@
import { useScript as useScript } from "@deco/deco/hooks";
-export interface Props { }
-
-const setup = ({ }: Props) => {
-
- const toggleIcon = document.getElementById('toggle-icon')
- const mobileMenu = document.getElementById('mobile-menu')
- const hamburguerIcon = document.getElementById('hamburger-icon')
- const closeIcon = document.getElementById('close-icon')
- const body = document.querySelector('body')
- // const heightElement1 = element1.getBoundingClientRect().height;
- const nav = document.getElementById('nav')
- const heightNav = nav?.getBoundingClientRect().height
-
- toggleIcon?.addEventListener('click', () => {
-
- if (mobileMenu) {
-
- const currentTop = globalThis.getComputedStyle(mobileMenu).top;
-
- if (currentTop === '0px' && mobileMenu) {
- mobileMenu.style.top = `${heightNav}px`;
- } else {
- mobileMenu.style.top = `0px`;
- }
-
- mobileMenu?.classList.toggle('-translate-y-full')
- mobileMenu?.classList.toggle('translate-y-0')
-
- hamburguerIcon?.classList.toggle('opacity-0')
- closeIcon?.classList.toggle('opacity-0')
- body?.classList.toggle('overflow-hidden')
-
- }
-
- });
-
-}
+export interface Props {}
+
+const setup = ({}: Props) => {
+ const toggleIcon = document.getElementById("toggle-icon");
+ const mobileMenu = document.getElementById("mobile-menu");
+ const hamburguerIcon = document.getElementById("hamburger-icon");
+ const closeIcon = document.getElementById("close-icon");
+ const body = document.querySelector("body");
+ // const heightElement1 = element1.getBoundingClientRect().height;
+ const nav = document.getElementById("nav");
+ const heightNav = nav?.getBoundingClientRect().height;
+
+ toggleIcon?.addEventListener("click", () => {
+ if (mobileMenu) {
+ const currentTop = globalThis.getComputedStyle(mobileMenu).top;
+
+ if (currentTop === "0px" && mobileMenu) {
+ mobileMenu.style.top = `${heightNav}px`;
+ } else {
+ mobileMenu.style.top = `0px`;
+ }
+
+ mobileMenu?.classList.toggle("-translate-y-full");
+ mobileMenu?.classList.toggle("translate-y-0");
+
+ hamburguerIcon?.classList.toggle("opacity-0");
+ closeIcon?.classList.toggle("opacity-0");
+ body?.classList.toggle("overflow-hidden");
+ }
+ });
+};
function HeaderOnlyTextToWork(
- { }: Props,
+ {}: Props,
) {
return (
);
}
-export default HeaderOnlyTextToWork;
\ No newline at end of file
+export default HeaderOnlyTextToWork;
diff --git a/sections/Final/DropDown/DropDownComponent.tsx b/sections/Final/DropDown/DropDownComponent.tsx
index aa0c159..588118e 100644
--- a/sections/Final/DropDown/DropDownComponent.tsx
+++ b/sections/Final/DropDown/DropDownComponent.tsx
@@ -41,4 +41,4 @@ export default function Section({
hoverColor={hoverColor}
/>
);
-}
\ No newline at end of file
+}
diff --git a/sections/Final/Form/Form.tsx b/sections/Final/Form/Form.tsx
index 913140e..8c5581e 100644
--- a/sections/Final/Form/Form.tsx
+++ b/sections/Final/Form/Form.tsx
@@ -5,29 +5,26 @@ import FormComponent from "../../../components/ui/Button/index.tsx";
* @title {{{title}}}
*/
export interface Input {
- title: string;
- /**
- * @title Texto
- * @description Escreva o texto do input
- */
- placeholder: string;
- /**
- * @title ID
- * @description Selecione o texto do input
- */
- id_input: string;
+ title: string;
+ /**
+ * @title Texto
+ * @description Escreva o texto do input
+ */
+ placeholder: string;
+ /**
+ * @title ID
+ * @description Selecione o texto do input
+ */
+ id_input: string;
}
/**
* @title {{{title}}}
*/
export interface Props {
- title: string;
- input: Input;
+ title: string;
+ input: Input;
}
-export default function Section({
-}: Props) {
- return (
-
- );
+export default function Section({}: Props) {
+ return ;
}
diff --git a/sections/Final/Form/InputRadio.tsx b/sections/Final/Form/InputRadio.tsx
index 6221a1d..b7aef28 100644
--- a/sections/Final/Form/InputRadio.tsx
+++ b/sections/Final/Form/InputRadio.tsx
@@ -2,37 +2,41 @@ import React from "react";
import InputRadioComponent from "../../../components/ui/Form/InputRadio/index.tsx";
export interface InputRadio {
- /**
- * @title Etiqueta
- * @description Escreva a etiqueta do input
- */
- label: string;
+ /**
+ * @title Etiqueta
+ * @description Escreva a etiqueta do input
+ */
+ label: string;
}
export interface Props {
- /**
- * @title Texto
- * @description Escreva o título
- */
- text: string;
- /**
- * @title Nome do formulário
- * @description Escreva o nome do formulário (Necessário que seja um nome único no site)
- */
- name: string;
- /**
- * @title Input
- * @description Escreva o título
- */
- inputRadio: InputRadio[];
+ /**
+ * @title Texto
+ * @description Escreva o título
+ */
+ text: string;
+ /**
+ * @title Chave
+ * @description Escreva o identificador do campo
+ */
+ name: string;
+ /**
+ * @title Input
+ * @description Escreva o título
+ */
+ inputRadio: InputRadio[];
}
export default function Section({
- text,
- name,
- inputRadio,
+ text,
+ name = "name",
+ inputRadio,
}: Props) {
return (
-
+
);
}
diff --git a/sections/Final/Form/InputText.tsx b/sections/Final/Form/InputText.tsx
index 5c6c0a2..b8af449 100644
--- a/sections/Final/Form/InputText.tsx
+++ b/sections/Final/Form/InputText.tsx
@@ -5,20 +5,26 @@ import InputComponent from "../../../components/ui/Form/Input/index.tsx";
* @title {{{title}}}
*/
export interface Props {
- title: string;
- /**
- * @title Texto
- * @description Escreva o texto do input
- */
- placeholder: string;
+ title: string;
+ /**
+ * @title Texto
+ * @description Escreva o texto do input
+ */
+ placeholder: string;
+ /**
+ * @title Chave
+ * @description Escreva o identificador do campo
+ */
+ name: string;
}
export default function Section({
placeholder = "texto",
+ name = "name",
}: Props) {
return (
-
+
);
}
diff --git a/sections/Final/Form/TItleForm.tsx b/sections/Final/Form/TItleForm.tsx
index ea7cb38..531a160 100644
--- a/sections/Final/Form/TItleForm.tsx
+++ b/sections/Final/Form/TItleForm.tsx
@@ -2,91 +2,91 @@ import React from "react";
import TitleForm from "../../../components/ui/Form/TitleForm/index.tsx";
export interface Props {
- /**
- * @title Descrição
- * @description Escreva aqui a descrição que ficara em cima do título
- */
- description?: string;
- /**
- * @title Texto
- * @description Escreva aqui o seu conteúdo
- */
- content: string;
- /**
- * @title Alinhamento
- * @format button-group
- * @options site/loaders/icons.ts
- */
- textAlignment?: "Left" | "Center" | "Right";
- /**
- * @title Tema de Cor
- * @description Escolha o tema de cor do texto
- */
- colorTheme:
- | "Primary"
- | "Secondary"
- | "White"
- | "Accent"
- | "Sacramento-State"
- | "Sacramento-State-10"
- | "Mint-Cream";
- /**
- * @title Tamanho da Fonte
- * @description Escolha o tamanho da fonte (22px, 28px ou 32px)
- * @format select
- * @default 28px
- */
- fontSize?: "22px" | "28px" | "32px";
- /**
- * @title Largura do Contêiner
- * @description Escolha como o contêiner será exibido: Largura Limitada (290px), Largura Limitada (327px), Largura Limitada (343px) ou largura completa.
- * @format select
- * @default Largura Limitada (327px)
- */
- containerWidth?:
- | "Largura Limitada (290px)"
- | "Largura Limitada (327px)"
- | "Largura Limitada (343px)"
- | "Largura Completa";
- /**
- * @title Alinhamento do Conteúdo
- * @description Alinhe o conteúdo dentro do contêiner.
- * @format select
- * @default Start
- */
- contentAlignment?: "Start" | "Center" | "End";
- /**
- * @title Espaçamento Superior
- * @description Defina o espaçamento do contêiner.
- * @format select
- * @default Espacamento (40px)
- */
- paddingTop?:
- | "Espacamento (40px)"
- | "Espacamento (91px)"
- | "Espaçamento (95px)";
+ /**
+ * @title Descrição
+ * @description Escreva aqui a descrição que ficara em cima do título
+ */
+ description?: string;
+ /**
+ * @title Texto
+ * @description Escreva aqui o seu conteúdo
+ */
+ content: string;
+ /**
+ * @title Alinhamento
+ * @format button-group
+ * @options site/loaders/icons.ts
+ */
+ textAlignment?: "Left" | "Center" | "Right";
+ /**
+ * @title Tema de Cor
+ * @description Escolha o tema de cor do texto
+ */
+ colorTheme:
+ | "Primary"
+ | "Secondary"
+ | "White"
+ | "Accent"
+ | "Sacramento-State"
+ | "Sacramento-State-10"
+ | "Mint-Cream";
+ /**
+ * @title Tamanho da Fonte
+ * @description Escolha o tamanho da fonte (22px, 28px ou 32px)
+ * @format select
+ * @default 28px
+ */
+ fontSize?: "22px" | "28px" | "32px";
+ /**
+ * @title Largura do Contêiner
+ * @description Escolha como o contêiner será exibido: Largura Limitada (290px), Largura Limitada (327px), Largura Limitada (343px) ou largura completa.
+ * @format select
+ * @default Largura Limitada (327px)
+ */
+ containerWidth?:
+ | "Largura Limitada (290px)"
+ | "Largura Limitada (327px)"
+ | "Largura Limitada (343px)"
+ | "Largura Completa";
+ /**
+ * @title Alinhamento do Conteúdo
+ * @description Alinhe o conteúdo dentro do contêiner.
+ * @format select
+ * @default Start
+ */
+ contentAlignment?: "Start" | "Center" | "End";
+ /**
+ * @title Espaçamento Superior
+ * @description Defina o espaçamento do contêiner.
+ * @format select
+ * @default Espacamento (40px)
+ */
+ paddingTop?:
+ | "Espacamento (40px)"
+ | "Espacamento (91px)"
+ | "Espaçamento (95px)";
}
export default function Section({
- description,
- content,
- colorTheme,
- textAlignment,
- fontSize = "28px",
- containerWidth = "Largura Limitada (327px)",
- contentAlignment = "Start",
- paddingTop = "Espacamento (40px)",
+ description,
+ content,
+ colorTheme,
+ textAlignment,
+ fontSize = "28px",
+ containerWidth = "Largura Limitada (327px)",
+ contentAlignment = "Start",
+ paddingTop = "Espacamento (40px)",
}: Props) {
- return (
-
- );
+ return (
+
+ );
}
diff --git a/sections/Final/Form/fixedSectionForm.tsx b/sections/Final/Form/fixedSectionForm.tsx
index 68a8d28..22c3818 100644
--- a/sections/Final/Form/fixedSectionForm.tsx
+++ b/sections/Final/Form/fixedSectionForm.tsx
@@ -3,48 +3,48 @@ import Image from "apps/website/components/Image.tsx";
import FixedSectionForm from "../../../components/ui/Form/FixedSectionForm/index.tsx";
export type Link = {
- /**
- * @title Nome
- * @description Nome visível para clique
- */
- name: string;
- /**
- * @title Destino
- * @description Insira a URL ou o caminho de destino
- */
- url: string;
+ /**
+ * @title Nome
+ * @description Nome visível para clique
+ */
+ name: string;
+ /**
+ * @title Destino
+ * @description Insira a URL ou o caminho de destino
+ */
+ url: string;
};
export interface Props {
- /**
- * @title Descrição
- * @description Insira a descrição
- */
- description?: string;
- /**
- * @title Palavra ou Frase com Cor
- * @description Escreva a palavra ou frase com cor
- */
- highlight?: string;
- /**
- * @title Ícone do Botão
- * @description Insisra o Ícone do Botão
- */
- ImageWidget: ImageWidget;
+ /**
+ * @title Descrição
+ * @description Insira a descrição
+ */
+ description?: string;
+ /**
+ * @title Palavra ou Frase com Cor
+ * @description Escreva a palavra ou frase com cor
+ */
+ highlight?: string;
+ /**
+ * @title Ícone do Botão
+ * @description Insisra o Ícone do Botão
+ */
+ ImageWidget: ImageWidget;
}
export default function Section({
- description = "",
- highlight = "",
- ImageWidget,
+ description = "",
+ highlight = "",
+ ImageWidget,
}: Props) {
- return (
-
-
-
- );
+ return (
+
+
+
+ );
}
diff --git a/sections/Final/Headers/Openning.tsx b/sections/Final/Headers/Openning.tsx
index cdf76d2..c794be2 100644
--- a/sections/Final/Headers/Openning.tsx
+++ b/sections/Final/Headers/Openning.tsx
@@ -1,4 +1,11 @@
-export interface Props {
+import React from "react";
+import Openning from "../../../components/ui/Content/Openning/index.tsx";
+import { Section } from "deco/blocks/section.ts";
+
+/**
+ * @title {{{title}}}
+ */
+export interface Open {
/**
* @title Título
* @description Escreva aqui o título da abertura
@@ -9,11 +16,6 @@ export interface Props {
* @description Escreva a palavra ou frase com cor
*/
highlight?: string;
- // /**
- // * @title Subtítulo
- // * @description Escreva aqui o subtítulo da abertura - Desktop
- // */
- // subtitleDesktop?: string;
/**
* @title Subtítulo
* @description Escreva aqui o subtítulo da abertura
@@ -21,78 +23,27 @@ export interface Props {
subtitleDescription?: string;
}
-// const texts = [
-// "Gestão inteligente para economizar",
-// "Gestão inteligente para lucrar",
-// "Gestão inteligente para sonhar mais"
-// ];
+export interface Props {
+ /**
+ * @title Título Principal
+ * @description Escreva aqui o título principal da seção
+ */
+ title?: string;
+ /**
+ * @title Títulos de Abertura
+ * @description Lista de títulos de abertura com suas propriedades
+ */
+ open?: Open[];
+}
export default function Section({
title = "",
- highlight = "",
- // subtitleDesktop = "",
- subtitleDescription = "",
+ open = [],
}: Props) {
- // const [currentTextIndex, setCurrentTextIndex] = useState(0);
- // const [animatedText, setAnimatedText] = useState(texts[0]);
- // const navigate = useNavigate();
-
- // useEffect(() => {
- // const intervalId = setInterval(() => {
- // setCurrentTextIndex((prevIndex: number) => {
- // const nextIndex = (prevIndex + 1) % texts.length;
- // setAnimatedText(texts[nextIndex]);
- // return nextIndex;
- // });
- // }, 3000);
-
- // const timeoutId = setTimeout(() => {
- // navigate('/');
- // }, 9000);
-
- // return () => {
- // clearInterval(intervalId);
- // clearTimeout(timeoutId);
- // };
- // }, [navigate]);
-
- const getHighlightedText = (text: string, highlight: string) => {
- if (!highlight) return text;
-
- const parts = text.split(new RegExp(`(${highlight})`, "gi"));
- return parts.map((part, index) =>
- part.toLowerCase() === highlight.toLowerCase()
- ? {part}
- : part
- );
- };
-
return (
-
-
-
-
- {getHighlightedText(title, highlight)}
-
-
-
-
- {subtitleDescription}
-
- {
- /*
- {subtitleDesktop}
-
- */
- }
-
- {
- /* texto animado
-
*/
- }
-
-
+
);
-}
+}
\ No newline at end of file
diff --git a/sections/Final/Icons/IconGrid.tsx b/sections/Final/Icons/IconGrid.tsx
index 5ef6c7e..1201949 100644
--- a/sections/Final/Icons/IconGrid.tsx
+++ b/sections/Final/Icons/IconGrid.tsx
@@ -95,4 +95,4 @@ export default function Section({
);
-}
\ No newline at end of file
+}
diff --git a/sections/Final/Navbar/index.tsx b/sections/Final/Navbar/index.tsx
index 2933ef2..363b3d7 100644
--- a/sections/Final/Navbar/index.tsx
+++ b/sections/Final/Navbar/index.tsx
@@ -6,190 +6,190 @@ import ButtonComponent from "../Button/ButtonComponent.tsx";
import Script, { type Props } from "./script.tsx";
function Menu(
- { logo, icon, close_icon, menu, button, subMenu, linkIcons }:
- & JSX.IntrinsicElements["div"]
- & Props,
+ { logo, icon, close_icon, menu, button, subMenu, linkIcons }:
+ & JSX.IntrinsicElements["div"]
+ & Props,
) {
- return (
- <>
-
-
+
+
+ >
+ );
}
export default Menu;
diff --git a/sections/Final/Navbar/script.tsx b/sections/Final/Navbar/script.tsx
index 185cdd7..e3a5e3c 100644
--- a/sections/Final/Navbar/script.tsx
+++ b/sections/Final/Navbar/script.tsx
@@ -1,53 +1,47 @@
import { useScript as useScript } from "@deco/deco/hooks";
-export interface Props { }
-
-const setup = ({ }: Props) => {
-
- const toggleIcon = document.getElementById('toggle-icon')
- const mobileMenu = document.getElementById('mobile-menu')
- const hamburguerIcon = document.getElementById('hamburger-icon')
- const closeIcon = document.getElementById('close-icon')
- const body = document.querySelector('body')
- // const heightElement1 = element1.getBoundingClientRect().height;
- const nav = document.getElementById('nav')
- const heightNav = nav?.getBoundingClientRect().height
-
- toggleIcon?.addEventListener('click', () => {
-
- if (mobileMenu) {
-
- const currentTop = globalThis.getComputedStyle(mobileMenu).top;
-
- if (currentTop === '0px' && mobileMenu) {
- mobileMenu.style.top = `${heightNav}px`;
- } else {
- mobileMenu.style.top = `0px`;
- }
-
- mobileMenu?.classList.toggle('-translate-y-full')
- mobileMenu?.classList.toggle('translate-y-0')
-
- hamburguerIcon?.classList.toggle('opacity-0')
- closeIcon?.classList.toggle('opacity-0')
- body?.classList.toggle('overflow-hidden')
-
- }
-
- });
-
-}
+export interface Props {}
+
+const setup = ({}: Props) => {
+ const toggleIcon = document.getElementById("toggle-icon");
+ const mobileMenu = document.getElementById("mobile-menu");
+ const hamburguerIcon = document.getElementById("hamburger-icon");
+ const closeIcon = document.getElementById("close-icon");
+ const body = document.querySelector("body");
+ // const heightElement1 = element1.getBoundingClientRect().height;
+ const nav = document.getElementById("nav");
+ const heightNav = nav?.getBoundingClientRect().height;
+
+ toggleIcon?.addEventListener("click", () => {
+ if (mobileMenu) {
+ const currentTop = globalThis.getComputedStyle(mobileMenu).top;
+
+ if (currentTop === "0px" && mobileMenu) {
+ mobileMenu.style.top = `${heightNav}px`;
+ } else {
+ mobileMenu.style.top = `0px`;
+ }
+
+ mobileMenu?.classList.toggle("-translate-y-full");
+ mobileMenu?.classList.toggle("translate-y-0");
+
+ hamburguerIcon?.classList.toggle("opacity-0");
+ closeIcon?.classList.toggle("opacity-0");
+ body?.classList.toggle("overflow-hidden");
+ }
+ });
+};
function HeaderOnlyTextToWork(
- { }: Props,
+ {}: Props,
) {
return (
);
}
-export default HeaderOnlyTextToWork;
\ No newline at end of file
+export default HeaderOnlyTextToWork;
diff --git a/sections/Footer.tsx b/sections/Footer.tsx
index b962da7..7f4ad5e 100644
--- a/sections/Footer.tsx
+++ b/sections/Footer.tsx
@@ -62,7 +62,6 @@ export default function Footer({