mitre-form-component 0.0.23 → 0.0.25

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.cjs CHANGED
@@ -30,7 +30,7 @@ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: tru
30
30
  // src/index.ts
31
31
  var index_exports = {};
32
32
  __export(index_exports, {
33
- default: () => index_default
33
+ MitreFormComponent: () => Form_default
34
34
  });
35
35
  module.exports = __toCommonJS(index_exports);
36
36
 
@@ -84,6 +84,10 @@ var FormContainer = import_styled_components.default.div`
84
84
  overflow-x: hidden;
85
85
  overflow-y: auto;
86
86
 
87
+ background: ${(props) => props.$backgroundColor || " #cecece"};
88
+
89
+ padding: ${(props) => props.$innerPadding || "1rem"};
90
+
87
91
  /* Hide scrollbars for WebKit browsers */
88
92
  ::-webkit-scrollbar {
89
93
  display: none;
@@ -121,6 +125,7 @@ var Form = import_styled_components.default.form`
121
125
  font-style: italic;
122
126
  font-weight: 200;
123
127
  font-size: 0.8rem;
128
+ color: ${(props) => props.$textColor || "var(--black)"};
124
129
  text-align: start;
125
130
  }
126
131
 
@@ -129,11 +134,13 @@ var Form = import_styled_components.default.form`
129
134
  font-style: italic;
130
135
  font-weight: 200;
131
136
  font-size: 0.8rem;
137
+ color: ${(props) => props.$textColor || "var(--black)"};
132
138
  }
133
139
 
134
140
  h6 {
135
141
  text-align: start;
136
142
  margin-left: 10px;
143
+ color: ${(props) => props.$textColor || "var(--black)"};
137
144
  }
138
145
 
139
146
  & > div {
@@ -156,6 +163,7 @@ var Title = import_styled_components.default.h2`
156
163
  font-weight: 700;
157
164
  line-height: 24px;
158
165
  letter-spacing: 0em;
166
+ color: ${(props) => props.$textColor || "var(--black)"};
159
167
  `;
160
168
  var Text = import_styled_components.default.p`
161
169
  font-size: 1rem;
@@ -163,6 +171,7 @@ var Text = import_styled_components.default.p`
163
171
  line-height: 23px;
164
172
  letter-spacing: 0em;
165
173
  margin-top: 10px;
174
+ color: ${(props) => props.$textColor || "var(--black)"};
166
175
  `;
167
176
 
168
177
  // src/components/styles/global.ts
@@ -616,21 +625,176 @@ var InputBase = ({ id, label, error, showErrorMessage = true, borderColor, textC
616
625
  };
617
626
  var Input2 = (0, import_react3.forwardRef)(InputBase);
618
627
 
628
+ // src/components/Button/styles.ts
629
+ var import_polished = require("polished");
630
+ var import_styled_components4 = __toESM(require("styled-components"), 1);
631
+ var Icon = import_styled_components4.default.span`
632
+ font-size: 0;
633
+ line-height: 0;
634
+ transition: all 0.25s ease;
635
+
636
+ transform: translate3d(-30px, 0px, 0px);
637
+ visibility: hidden;
638
+ opacity: 0;
639
+ margin-right: 0.625rem;
640
+ `;
641
+ var Text2 = import_styled_components4.default.span`
642
+ font-family: "Montserrat", sans-serif;
643
+ font-size: 1rem;
644
+ line-height: 1.5rem;
645
+ margin-bottom: -2px;
646
+
647
+ transition: all 0.25s ease;
648
+ `;
649
+ var TextSubmitting = import_styled_components4.default.span`
650
+ font-family: "Montserrat", sans-serif;
651
+ font-weight: 400;
652
+ font-size: 1rem;
653
+
654
+ transition: all 0.25s ease;
655
+ `;
656
+ var LoadingIcon = import_styled_components4.default.span.withConfig({
657
+ shouldForwardProp: (prop) => prop !== "hasText"
658
+ })`
659
+ display: block;
660
+
661
+ width: 1rem;
662
+ height: 1rem;
663
+ border: 0.125rem solid var(--white);
664
+ border-radius: 50%;
665
+ animation: loadingAnimation 1.2s cubic-bezier(0.5, 0, 0.5, 1) infinite;
666
+ border-color: var(--white) transparent transparent transparent;
667
+
668
+ margin-right: ${(props) => props.hasText ? "0.625rem" : "0"};
669
+
670
+ @keyframes loadingAnimation {
671
+ 0% {
672
+ transform: rotate(0deg);
673
+ }
674
+ 100% {
675
+ transform: rotate(360deg);
676
+ }
677
+ }
678
+ `;
679
+ var Button = import_styled_components4.default.button.withConfig({
680
+ shouldForwardProp: (prop) => ![
681
+ "hasIcon",
682
+ "isSubmitting",
683
+ "hasSubmittingMessage",
684
+ "bgColor",
685
+ "bordercolor",
686
+ "color",
687
+ "height"
688
+ ].includes(prop)
689
+ })`
690
+ background: ${(props) => (0, import_polished.darken)(0.1, props?.bgColor || "#F6C76B")};
691
+ color: ${(props) => props?.color || "#2F2F2F"};
692
+ border: 1px solid ${(props) => (0, import_polished.darken)(0.1, props?.bordercolor || "#F6C76B")};
693
+ border-radius: 2px;
694
+
695
+ display: inline-flex;
696
+ align-items: center;
697
+ justify-content: center;
698
+ padding: 0 0.75rem;
699
+ height: ${(props) => props?.height || "3.125rem"};
700
+ position: relative;
701
+ font-size: 0;
702
+ line-height: 0;
703
+
704
+ transition: all 0.25s;
705
+
706
+ ${Icon} {
707
+ display: ${(props) => props?.hasIcon ? "block" : ""};
708
+ }
709
+
710
+ ${Text2} {
711
+ transform: ${(props) => props?.hasIcon ? "translate3d(-4.5px, 0px, 0px)" : "unset"};
712
+
713
+ @media print, screen and (min-width: 40em) {
714
+ transform: ${(props) => props?.hasIcon ? "translate3d(-14.5px, 0px, 0px)" : "unset"};
715
+ }
716
+
717
+ color: ${(props) => props?.color || "#2F2F2F"};
718
+ }
719
+
720
+ &:hover {
721
+ background: ${(props) => (0, import_polished.darken)(0.2, props?.bgColor || "#F6C76B")};
722
+ border-color: ${(props) => (0, import_polished.darken)(0.2, props?.bordercolor || "#F6C76B")};
723
+
724
+ ${Icon} {
725
+ opacity: 1;
726
+ visibility: visible;
727
+ transform: translate3d(0px, 0px, 0px);
728
+ }
729
+
730
+ ${Text2} {
731
+ transform: ${(props) => props?.hasIcon ? "translate3d(-5px, 0px, 0px)" : "unset"};
732
+ }
733
+ }
734
+
735
+ ${Text2} {
736
+ ${(props) => props.isSubmitting && !props.hasSubmittingMessage && import_styled_components4.css`
737
+ transform: unset;
738
+ opacity: 0;
739
+ `}
740
+ }
741
+
742
+ ${LoadingIcon} {
743
+ ${(props) => props.isSubmitting && !props.hasSubmittingMessage && import_styled_components4.css`
744
+ display: flex;
745
+ -webkit-box-align: center;
746
+ align-items: center;
747
+ position: absolute;
748
+ `}
749
+ }
750
+ `;
751
+
752
+ // src/components/Button/index.tsx
753
+ var import_jsx_runtime2 = require("react/jsx-runtime");
754
+ function Button2({
755
+ children,
756
+ icon,
757
+ isSubmitting = false,
758
+ submittingMessage = "",
759
+ disabled = false,
760
+ color = "#2F2F2F",
761
+ ...rest
762
+ }) {
763
+ return /* @__PURE__ */ (0, import_jsx_runtime2.jsxs)(
764
+ Button,
765
+ {
766
+ isSubmitting,
767
+ hasSubmittingMessage: submittingMessage.length > 0,
768
+ disabled: isSubmitting || disabled,
769
+ "aria-disabled": isSubmitting || disabled,
770
+ hasIcon: !!icon,
771
+ color,
772
+ ...rest,
773
+ children: [
774
+ icon && !isSubmitting && /* @__PURE__ */ (0, import_jsx_runtime2.jsx)(Icon, { "data-testid": "button-icon", children: icon }),
775
+ isSubmitting && /* @__PURE__ */ (0, import_jsx_runtime2.jsx)(LoadingIcon, { hasText: submittingMessage.length > 0 }),
776
+ (!isSubmitting || submittingMessage.length === 0) && /* @__PURE__ */ (0, import_jsx_runtime2.jsx)(Text2, { className: "text", children }),
777
+ isSubmitting && submittingMessage.length > 0 && /* @__PURE__ */ (0, import_jsx_runtime2.jsx)(TextSubmitting, { children: submittingMessage })
778
+ ]
779
+ }
780
+ );
781
+ }
782
+
619
783
  // src/components/Alert/index.tsx
620
784
  var import_react4 = require("react");
621
785
 
622
786
  // src/components/Alert/styles.ts
623
- var import_styled_components4 = __toESM(require("styled-components"), 1);
624
- var fadeIn = import_styled_components4.keyframes`
787
+ var import_styled_components5 = __toESM(require("styled-components"), 1);
788
+ var fadeIn = import_styled_components5.keyframes`
625
789
  from { opacity: 0; transform: translateY(-10px); }
626
790
  to { opacity: 1; transform: translateY(0); }
627
791
  `;
628
- var fadeOut = import_styled_components4.keyframes`
792
+ var fadeOut = import_styled_components5.keyframes`
629
793
  from { opacity: 1; transform: translateY(0); }
630
794
  to { opacity: 0; transform: translateY(-10px); }
631
795
  `;
632
796
  var typeStyles = {
633
- error: import_styled_components4.css`
797
+ error: import_styled_components5.css`
634
798
  background-color: var(--red);
635
799
  border: 1px solid var(--red);
636
800
  color: var(--white);
@@ -638,7 +802,7 @@ var typeStyles = {
638
802
  color: var(--white);
639
803
  }
640
804
  `,
641
- warning: import_styled_components4.css`
805
+ warning: import_styled_components5.css`
642
806
  background-color: var(--yellow-500);
643
807
  border: 1px solid var(--yellow-400);
644
808
  color: var(--black);
@@ -646,7 +810,7 @@ var typeStyles = {
646
810
  color: var(--black);
647
811
  }
648
812
  `,
649
- info: import_styled_components4.css`
813
+ info: import_styled_components5.css`
650
814
  background-color: var(--blue);
651
815
  border: 1px solid var(--blue);
652
816
  color: var(--white);
@@ -654,7 +818,7 @@ var typeStyles = {
654
818
  color: var(--white);
655
819
  }
656
820
  `,
657
- success: import_styled_components4.css`
821
+ success: import_styled_components5.css`
658
822
  background-color: var(--green);
659
823
  border: 1px solid var(--green-2);
660
824
  color: var(--white);
@@ -663,7 +827,7 @@ var typeStyles = {
663
827
  }
664
828
  `
665
829
  };
666
- var AlertContainer = import_styled_components4.default.div`
830
+ var AlertContainer = import_styled_components5.default.div`
667
831
  position: fixed;
668
832
  width: 500px;
669
833
  top: 15px;
@@ -683,7 +847,7 @@ var AlertContainer = import_styled_components4.default.div`
683
847
 
684
848
  ${({ $type }) => typeStyles[$type]}
685
849
  `;
686
- var DismissButton = import_styled_components4.default.button`
850
+ var DismissButton = import_styled_components5.default.button`
687
851
  position: absolute;
688
852
  background: transparent;
689
853
  right: 10px;
@@ -705,7 +869,7 @@ var DismissButton = import_styled_components4.default.button`
705
869
 
706
870
  // src/components/Alert/index.tsx
707
871
  var import_hi = require("react-icons/hi");
708
- var import_jsx_runtime2 = require("react/jsx-runtime");
872
+ var import_jsx_runtime3 = require("react/jsx-runtime");
709
873
  var Alert = ({
710
874
  type = "info",
711
875
  children,
@@ -725,7 +889,7 @@ var Alert = ({
725
889
  return () => clearTimeout(timer);
726
890
  }
727
891
  }, [autoDismiss, handleDismiss]);
728
- return /* @__PURE__ */ (0, import_jsx_runtime2.jsxs)(
892
+ return /* @__PURE__ */ (0, import_jsx_runtime3.jsxs)(
729
893
  AlertContainer,
730
894
  {
731
895
  $type: type,
@@ -735,12 +899,12 @@ var Alert = ({
735
899
  role: "alert",
736
900
  children: [
737
901
  children,
738
- dismissible && /* @__PURE__ */ (0, import_jsx_runtime2.jsx)(
902
+ dismissible && /* @__PURE__ */ (0, import_jsx_runtime3.jsx)(
739
903
  DismissButton,
740
904
  {
741
905
  onClick: handleDismiss,
742
906
  "aria-label": "Dismiss alert",
743
- children: /* @__PURE__ */ (0, import_jsx_runtime2.jsx)(import_hi.HiX, {})
907
+ children: /* @__PURE__ */ (0, import_jsx_runtime3.jsx)(import_hi.HiX, {})
744
908
  }
745
909
  )
746
910
  ]
@@ -749,7 +913,7 @@ var Alert = ({
749
913
  };
750
914
 
751
915
  // src/components/Form/index.tsx
752
- var import_jsx_runtime3 = require("react/jsx-runtime");
916
+ var import_jsx_runtime4 = require("react/jsx-runtime");
753
917
  var schema = yup.object().shape({
754
918
  name: yup.string().required("Nome \xE9 obrigat\xF3rio"),
755
919
  email: yup.string().required("Email \xE9 obrigat\xF3rio").email("Email inv\xE1lido"),
@@ -820,10 +984,10 @@ var MitreFormComponent = import_react5.default.forwardRef(({
820
984
  setIsLoading(false);
821
985
  }
822
986
  };
823
- return /* @__PURE__ */ (0, import_jsx_runtime3.jsxs)(import_jsx_runtime3.Fragment, { children: [
824
- /* @__PURE__ */ (0, import_jsx_runtime3.jsx)(global_default, {}),
825
- /* @__PURE__ */ (0, import_jsx_runtime3.jsx)(GlobalStyles, {}),
826
- error && /* @__PURE__ */ (0, import_jsx_runtime3.jsx)(
987
+ return /* @__PURE__ */ (0, import_jsx_runtime4.jsxs)(import_jsx_runtime4.Fragment, { children: [
988
+ /* @__PURE__ */ (0, import_jsx_runtime4.jsx)(global_default, {}),
989
+ /* @__PURE__ */ (0, import_jsx_runtime4.jsx)(GlobalStyles, {}),
990
+ error && /* @__PURE__ */ (0, import_jsx_runtime4.jsx)(
827
991
  Alert,
828
992
  {
829
993
  type: "error",
@@ -833,7 +997,7 @@ var MitreFormComponent = import_react5.default.forwardRef(({
833
997
  children: error.message
834
998
  }
835
999
  ),
836
- successMessage && /* @__PURE__ */ (0, import_jsx_runtime3.jsx)(
1000
+ successMessage && /* @__PURE__ */ (0, import_jsx_runtime4.jsx)(
837
1001
  Alert,
838
1002
  {
839
1003
  type: "success",
@@ -843,66 +1007,69 @@ var MitreFormComponent = import_react5.default.forwardRef(({
843
1007
  children: successMessage
844
1008
  }
845
1009
  ),
846
- /* @__PURE__ */ (0, import_jsx_runtime3.jsxs)(FormContainer, { ref, children: [
847
- showHeader && /* @__PURE__ */ (0, import_jsx_runtime3.jsxs)(HeaderContainer, { children: [
848
- /* @__PURE__ */ (0, import_jsx_runtime3.jsx)(Title, { children: "Atendimento por mensagem" }),
849
- /* @__PURE__ */ (0, import_jsx_runtime3.jsx)(Text, { children: "Informe seus dados e retornaremos a mensagem." })
1010
+ /* @__PURE__ */ (0, import_jsx_runtime4.jsxs)(FormContainer, { $backgroundColor: backgroundColor, $innerPadding: innerPadding, ref, children: [
1011
+ showHeader && /* @__PURE__ */ (0, import_jsx_runtime4.jsxs)(HeaderContainer, { children: [
1012
+ /* @__PURE__ */ (0, import_jsx_runtime4.jsx)(Title, { $textColor: textColor, children: "Atendimento por mensagem" }),
1013
+ /* @__PURE__ */ (0, import_jsx_runtime4.jsx)(Text, { $textColor: textColor, children: "Informe seus dados e retornaremos a mensagem." })
850
1014
  ] }),
851
- /* @__PURE__ */ (0, import_jsx_runtime3.jsx)(
852
- Input2,
853
- {
854
- id: "name",
855
- label: "Nome *",
856
- placeholder: "Digite seu nome",
857
- ...register("name"),
858
- borderColor: colorPrimary,
859
- textColor,
860
- error: errors.name?.message,
861
- autoComplete: "name",
862
- required: true
863
- }
864
- ),
865
- /* @__PURE__ */ (0, import_jsx_runtime3.jsx)(
866
- Input2,
867
- {
868
- id: "email",
869
- label: "Email *",
870
- type: "email",
871
- placeholder: "exemplo@email.com",
872
- ...register("email"),
873
- borderColor: colorPrimary,
874
- textColor,
875
- error: errors.email?.message,
876
- autoComplete: "email",
877
- required: true
878
- }
879
- ),
880
- /* @__PURE__ */ (0, import_jsx_runtime3.jsx)("h6", { children: "* Campos de preenchimento obrigat\xF3rio." }),
881
- /* @__PURE__ */ (0, import_jsx_runtime3.jsx)(ButtonContainer, {}),
882
- /* @__PURE__ */ (0, import_jsx_runtime3.jsxs)("p", { children: [
883
- "A Mitre Realty respeita a sua privacidade e utiliza os seus dados pessoais para contat\xE1-lo por e-mail ou telefone aqui registrados. Para saber mais, acesse a nossa",
884
- " ",
885
- /* @__PURE__ */ (0, import_jsx_runtime3.jsx)(
886
- "a",
1015
+ /* @__PURE__ */ (0, import_jsx_runtime4.jsxs)(Form, { $textColor: textColor, onSubmit: handleSubmit(sendMessage), noValidate: true, children: [
1016
+ /* @__PURE__ */ (0, import_jsx_runtime4.jsx)(
1017
+ Input2,
1018
+ {
1019
+ id: "name",
1020
+ label: "Nome *",
1021
+ placeholder: "Digite seu nome",
1022
+ ...register("name"),
1023
+ borderColor: colorPrimary,
1024
+ textColor,
1025
+ error: errors.name?.message,
1026
+ autoComplete: "name",
1027
+ required: true
1028
+ }
1029
+ ),
1030
+ /* @__PURE__ */ (0, import_jsx_runtime4.jsx)(
1031
+ Input2,
887
1032
  {
888
- href: "https://www.mitrerealty.com.br/politica-de-privacidade",
889
- target: "_blank",
890
- rel: "noopener noreferrer",
891
- children: "Pol\xEDtica de Privacidade"
1033
+ id: "email",
1034
+ label: "Email *",
1035
+ type: "email",
1036
+ placeholder: "exemplo@email.com",
1037
+ ...register("email"),
1038
+ borderColor: colorPrimary,
1039
+ textColor,
1040
+ error: errors.email?.message,
1041
+ autoComplete: "email",
1042
+ required: true
892
1043
  }
893
1044
  ),
894
- ". Ao clicar em ",
895
- '"',
896
- "enviar",
897
- '"',
898
- ", voc\xEA concorda em permitir que a Mitre Realty, armazene e processe os dados pessoais fornecidos por voc\xEA para finalidade informada"
1045
+ /* @__PURE__ */ (0, import_jsx_runtime4.jsx)("h6", { children: "* Campos de preenchimento obrigat\xF3rio." }),
1046
+ /* @__PURE__ */ (0, import_jsx_runtime4.jsx)(ButtonContainer, { children: /* @__PURE__ */ (0, import_jsx_runtime4.jsx)(Button2, { bgColor: colorPrimary, color: textColor, type: "submit", isSubmitting: loading, children: "Enviar mensagem" }) }),
1047
+ /* @__PURE__ */ (0, import_jsx_runtime4.jsxs)("p", { children: [
1048
+ "A Mitre Realty respeita a sua privacidade e utiliza os seus dados pessoais para contat\xE1-lo por e-mail ou telefone aqui registrados. Para saber mais, acesse a nossa",
1049
+ " ",
1050
+ /* @__PURE__ */ (0, import_jsx_runtime4.jsx)(
1051
+ "a",
1052
+ {
1053
+ href: "https://www.mitrerealty.com.br/politica-de-privacidade",
1054
+ target: "_blank",
1055
+ rel: "noopener noreferrer",
1056
+ children: "Pol\xEDtica de Privacidade"
1057
+ }
1058
+ ),
1059
+ ". Ao clicar em ",
1060
+ '"',
1061
+ "enviar",
1062
+ '"',
1063
+ ", voc\xEA concorda em permitir que a Mitre Realty, armazene e processe os dados pessoais fornecidos por voc\xEA para finalidade informada"
1064
+ ] })
899
1065
  ] })
900
1066
  ] })
901
1067
  ] });
902
1068
  });
903
1069
  MitreFormComponent.displayName = "MitreFormComponent";
904
1070
  var Form_default = MitreFormComponent;
905
-
906
- // src/index.ts
907
- var index_default = Form_default;
1071
+ // Annotate the CommonJS export names for ESM import in node:
1072
+ 0 && (module.exports = {
1073
+ MitreFormComponent
1074
+ });
908
1075
  //# sourceMappingURL=index.cjs.map