@axos-web-dev/shared-components 1.0.100-dev.67 → 1.0.100-dev.69

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.
@@ -0,0 +1,12 @@
1
+ import { FormProps } from './FormProps';
2
+
3
+ export type ConstructionLendingDynamicInputs = {
4
+ User_Type__c: string;
5
+ first_name: string;
6
+ last_name: string;
7
+ email: string;
8
+ phone: string;
9
+ description: string;
10
+ Company_NMLS_ID__c: string;
11
+ };
12
+ export declare const ConstructionLendingDynamic: ({ icon, children, onSubmit, disclosure, variant: fullVariant, headline, callToAction, validateEmail, onValidate, description, id, }: FormProps) => import("react/jsx-runtime").JSX.Element;
@@ -0,0 +1,301 @@
1
+ "use client";
2
+ import { jsx, jsxs, Fragment } from "react/jsx-runtime";
3
+ import { zodResolver } from "@hookform/resolvers/zod";
4
+ import { Button } from "../Button/Button.js";
5
+ import "../Button/Button.css.js";
6
+ import "react";
7
+ import "react-use";
8
+ import "../Input/Checkbox.js";
9
+ import "../Input/CurrencyInput.js";
10
+ import { Dropdown } from "../Input/Dropdown.js";
11
+ import "../Input/Dropdown.css.js";
12
+ import { Input } from "../Input/Input.js";
13
+ import "../Input/Input.css.js";
14
+ import "../Input/InputAmount.js";
15
+ import { InputPhone } from "../Input/InputPhone.js";
16
+ import { InputTextArea } from "../Input/InputTextArea.js";
17
+ import "../Input/DownPaymentInput.js";
18
+ import "../Input/RadioButton.js";
19
+ import { LoadingIndicator } from "../LoadingIndicator/index.js";
20
+ import "../icons/ArrowIcon/ArrowIcon.css.js";
21
+ import SvgAxosX from "../icons/AxosX/index.js";
22
+ import SvgComponent from "../icons/AxosX/Blue.js";
23
+ import "../icons/CheckIcon/CheckIcon.css.js";
24
+ import '../assets/icons/FollowIcon/FollowIcon.css';import '../assets/icons/DownloadIcon/DownloadIcon.css';import '../assets/themes/victorie.css';import '../assets/themes/ufb.css';import '../assets/themes/premier.css';import '../assets/themes/axos.css';/* empty css */
25
+ /* empty css */
26
+ /* empty css */
27
+ /* empty css */
28
+ /* empty css */
29
+ /* empty css */
30
+ import "../utils/allowedAxosDomains.js";
31
+ import * as z from "zod";
32
+ import { associatedEmail } from "../utils/EverestValidity.js";
33
+ import { getVariant } from "../utils/getVariant.js";
34
+ import { useCachedEmailValidator } from "../utils/useCachedValidators.js";
35
+ import clsx from "clsx";
36
+ import { useForm, FormProvider } from "react-hook-form";
37
+ import { iconForm, headerContainer, headerForm, form, descriptionField, fullRowForm, formWrapper, disclosureForm, actions, formContainer } from "./Forms.css.js";
38
+ import { honeyPotSchema, isValidHoneyPot, HoneyPot } from "./HoneyPot/index.js";
39
+ import { SalesforceSchema } from "./SalesforceFieldsForm.js";
40
+ const HOMEOWNER_VALUE = "I am a homeowner.";
41
+ const BROKER_VALUE = "I am a broker.";
42
+ const ConstructionLendingDynamic = ({
43
+ icon = false,
44
+ children,
45
+ onSubmit = (values) => {
46
+ console.log(values);
47
+ },
48
+ disclosure,
49
+ variant: fullVariant = "primary",
50
+ headline,
51
+ callToAction,
52
+ validateEmail,
53
+ onValidate,
54
+ description,
55
+ id
56
+ }) => {
57
+ const cachedEmailValidator = useCachedEmailValidator(validateEmail);
58
+ const schema = z.object({
59
+ User_Type__c: z.string({
60
+ required_error: "Please select whether you are a homeowner or a broker.",
61
+ invalid_type_error: "Invalid selection"
62
+ }).min(1, {
63
+ message: "Please select whether you are a homeowner or a broker."
64
+ }),
65
+ first_name: z.string({
66
+ required_error: "First name is required",
67
+ invalid_type_error: "Invalid first name"
68
+ }).regex(/^[A-Za-z][^0-9_!¡?÷?¿/\\+=@#$%ˆ&*,.^(){}|~<>;:[\]]{1,}$/g, {
69
+ message: "Invalid first name"
70
+ }).trim().min(1, { message: "First Name is required." }),
71
+ last_name: z.string({
72
+ required_error: "Last name is required",
73
+ invalid_type_error: "Invalid last name"
74
+ }).regex(/^[A-Za-z][^0-9_!¡?÷?¿/\\+=@#$%ˆ&*,.^(){}|~<>;:[\]]{1,}$/g, {
75
+ message: "Invalid last name"
76
+ }).trim().min(1, { message: "Last Name is required." }),
77
+ email: z.string().email({ message: "Email is required." }).refine(cachedEmailValidator, { message: "Invalid email address." }),
78
+ phone: z.string({ message: "Phone is required." }).regex(/[\d-]{10}/, "Invalid phone number.").min(10, { message: "Phone is required." }).max(12, { message: "Phone is required." }).transform((val, ctx) => {
79
+ const removeDashes = val.replace(/-/gi, "");
80
+ if (removeDashes.length !== 10) {
81
+ ctx.addIssue({
82
+ code: z.ZodIssueCode.custom,
83
+ message: "Phone must have at least 10 and no more than 10 characters."
84
+ });
85
+ return z.NEVER;
86
+ }
87
+ if (removeDashes.endsWith("00000") || removeDashes.startsWith("999") || removeDashes.length === 10 && /^[01]/.test(removeDashes)) {
88
+ ctx.addIssue({
89
+ code: z.ZodIssueCode.custom,
90
+ message: "Invalid phone number."
91
+ });
92
+ return z.NEVER;
93
+ }
94
+ return removeDashes;
95
+ }),
96
+ description: z.string().trim().optional().or(z.literal("")),
97
+ Company_NMLS_ID__c: z.string().min(6).max(7).optional().or(z.literal(""))
98
+ });
99
+ const gen_schema = schema.merge(SalesforceSchema).merge(honeyPotSchema).superRefine((data, ctx) => {
100
+ if (!isValidHoneyPot(data)) {
101
+ ctx.addIssue({
102
+ code: z.ZodIssueCode.custom,
103
+ message: "fields are not valid."
104
+ });
105
+ }
106
+ if (data.User_Type__c === BROKER_VALUE) {
107
+ const nmls = data.Company_NMLS_ID__c ?? "";
108
+ if (!nmls || nmls.length < 6 || nmls.length > 7) {
109
+ ctx.addIssue({
110
+ code: z.ZodIssueCode.custom,
111
+ message: "NMLS ID is required for brokers and must be 6-7 characters.",
112
+ path: ["Company_NMLS_ID__c"]
113
+ });
114
+ }
115
+ }
116
+ });
117
+ const methods = useForm({
118
+ resolver: zodResolver(gen_schema, {
119
+ async: true
120
+ }),
121
+ mode: "all",
122
+ defaultValues: {
123
+ User_Type__c: "",
124
+ email: ""
125
+ },
126
+ shouldUnregister: true
127
+ });
128
+ const {
129
+ handleSubmit,
130
+ register,
131
+ watch,
132
+ formState: { errors, isValid, isSubmitting }
133
+ } = methods;
134
+ const userType = watch("User_Type__c");
135
+ const isBroker = userType === BROKER_VALUE;
136
+ const isExpanded = userType === HOMEOWNER_VALUE || userType === BROKER_VALUE;
137
+ const submitForm = async (data) => {
138
+ await onSubmit(data);
139
+ };
140
+ const variant = getVariant(fullVariant);
141
+ return /* @__PURE__ */ jsx("section", { id, className: clsx(formContainer({ variant })), children: /* @__PURE__ */ jsx("div", { className: clsx("containment"), children: /* @__PURE__ */ jsxs(FormProvider, { ...methods, children: [
142
+ icon && /* @__PURE__ */ jsx("div", { className: clsx("text_center", iconForm), children: ["primary", "secondary"].includes(variant) ? /* @__PURE__ */ jsx(SvgComponent, {}) : /* @__PURE__ */ jsx(SvgAxosX, {}) }),
143
+ /* @__PURE__ */ jsxs("div", { className: `${headerContainer} text_center`, children: [
144
+ /* @__PURE__ */ jsx("h2", { className: clsx("header_2", headerForm({ variant })), children: headline }),
145
+ description && /* @__PURE__ */ jsx(
146
+ "div",
147
+ {
148
+ className: clsx(
149
+ "text_center",
150
+ form,
151
+ descriptionField({ variant })
152
+ ),
153
+ children: description
154
+ }
155
+ )
156
+ ] }),
157
+ /* @__PURE__ */ jsxs(
158
+ "form",
159
+ {
160
+ className: form,
161
+ onSubmit: async (e) => {
162
+ onValidate && onValidate(e);
163
+ await handleSubmit(submitForm)(e);
164
+ e.preventDefault();
165
+ },
166
+ children: [
167
+ /* @__PURE__ */ jsxs("div", { className: clsx(formWrapper({ variant })), children: [
168
+ /* @__PURE__ */ jsx("div", { className: fullRowForm, children: /* @__PURE__ */ jsxs(
169
+ Dropdown,
170
+ {
171
+ id: "User_Type__c",
172
+ ...register("User_Type__c", { required: true }),
173
+ label: "Are you a homeowner or a broker?",
174
+ sizes: "medium",
175
+ required: true,
176
+ error: !!errors.User_Type__c,
177
+ helperText: errors.User_Type__c?.message,
178
+ variant,
179
+ children: [
180
+ /* @__PURE__ */ jsx("option", { value: "", disabled: isExpanded, children: "Select Option" }),
181
+ /* @__PURE__ */ jsx("option", { value: HOMEOWNER_VALUE, children: HOMEOWNER_VALUE }),
182
+ /* @__PURE__ */ jsx("option", { value: BROKER_VALUE, children: BROKER_VALUE })
183
+ ]
184
+ }
185
+ ) }),
186
+ isExpanded && /* @__PURE__ */ jsxs(Fragment, { children: [
187
+ /* @__PURE__ */ jsx("div", { children: /* @__PURE__ */ jsx(
188
+ Input,
189
+ {
190
+ id: "first_name",
191
+ ...register("first_name", { required: true }),
192
+ label: "First Name",
193
+ sizes: "medium",
194
+ required: true,
195
+ error: !!errors.first_name,
196
+ helperText: errors.first_name?.message,
197
+ variant
198
+ }
199
+ ) }),
200
+ /* @__PURE__ */ jsx("div", { children: /* @__PURE__ */ jsx(
201
+ Input,
202
+ {
203
+ id: "last_name",
204
+ ...register("last_name", { required: true }),
205
+ label: "Last Name",
206
+ sizes: "medium",
207
+ required: true,
208
+ error: !!errors.last_name,
209
+ helperText: errors.last_name?.message,
210
+ variant
211
+ }
212
+ ) }),
213
+ /* @__PURE__ */ jsx("div", { children: /* @__PURE__ */ jsx(
214
+ Input,
215
+ {
216
+ id: "email",
217
+ ...register("email", {
218
+ required: true,
219
+ validate: {
220
+ isValid: associatedEmail
221
+ }
222
+ }),
223
+ label: "Email",
224
+ sizes: "medium",
225
+ required: true,
226
+ error: !!errors.email,
227
+ helperText: errors.email?.message,
228
+ variant
229
+ }
230
+ ) }),
231
+ /* @__PURE__ */ jsx("div", { children: /* @__PURE__ */ jsx(
232
+ InputPhone,
233
+ {
234
+ id: "phone",
235
+ ...register("phone", {
236
+ required: true,
237
+ maxLength: 12
238
+ }),
239
+ label: "Phone",
240
+ sizes: "medium",
241
+ required: true,
242
+ error: !!errors.phone,
243
+ helperText: errors.phone?.message,
244
+ variant
245
+ }
246
+ ) }),
247
+ /* @__PURE__ */ jsx("div", { className: fullRowForm, children: /* @__PURE__ */ jsx(
248
+ InputTextArea,
249
+ {
250
+ id: "description",
251
+ ...register("description"),
252
+ label: "Message",
253
+ sizes: "medium",
254
+ error: !!errors.description,
255
+ helperText: errors.description?.message,
256
+ variant,
257
+ rows: 2
258
+ }
259
+ ) }),
260
+ isBroker && /* @__PURE__ */ jsx("div", { children: /* @__PURE__ */ jsx(
261
+ Input,
262
+ {
263
+ id: "Company_NMLS_ID__c",
264
+ ...register("Company_NMLS_ID__c"),
265
+ label: "Company NMLS ID",
266
+ sizes: "medium",
267
+ required: true,
268
+ error: !!errors.Company_NMLS_ID__c,
269
+ helperText: errors.Company_NMLS_ID__c?.message,
270
+ variant
271
+ }
272
+ ) }),
273
+ /* @__PURE__ */ jsx(HoneyPot, { register, variant })
274
+ ] })
275
+ ] }),
276
+ children,
277
+ /* @__PURE__ */ jsx("div", { className: disclosureForm({ variant }), children: disclosure }),
278
+ /* @__PURE__ */ jsx("div", { className: actions, children: isSubmitting ? /* @__PURE__ */ jsx(
279
+ LoadingIndicator,
280
+ {
281
+ style: { marginInline: "auto" },
282
+ variant
283
+ }
284
+ ) : /* @__PURE__ */ jsx(
285
+ Button,
286
+ {
287
+ color: getVariant(callToAction?.variant),
288
+ as: "button",
289
+ type: "submit",
290
+ disabled: !isExpanded || !isValid || isSubmitting,
291
+ children: callToAction?.displayText
292
+ }
293
+ ) })
294
+ ]
295
+ }
296
+ )
297
+ ] }) }) }, id);
298
+ };
299
+ export {
300
+ ConstructionLendingDynamic
301
+ };
@@ -6,6 +6,7 @@ export * from './CommercialDeposits';
6
6
  export * from './CommercialDepositsNoLendingOption';
7
7
  export * from './CommercialLending';
8
8
  export * from './CommercialPremiumFinance';
9
+ export * from './ConstructionLendingDynamic';
9
10
  export * from './ContactCompany';
10
11
  export * from './ContactCompanyTitle';
11
12
  export * from './ContactUs';
@@ -7,6 +7,7 @@ import { CommercialDeposits } from "./CommercialDeposits.js";
7
7
  import { CommercialDepositsNoLendingOption } from "./CommercialDepositsNoLendingOption.js";
8
8
  import { CommercialLending } from "./CommercialLending.js";
9
9
  import { CommercialPremiumFinance } from "./CommercialPremiumFinance.js";
10
+ import { ConstructionLendingDynamic } from "./ConstructionLendingDynamic.js";
10
11
  import { ContactCompany } from "./ContactCompany.js";
11
12
  import { ContactCompanyTitle } from "./ContactCompanyTitle.js";
12
13
  import { ContactUs } from "./ContactUs.js";
@@ -49,6 +50,7 @@ export {
49
50
  CommercialDepositsNoLendingOption,
50
51
  CommercialLending,
51
52
  CommercialPremiumFinance,
53
+ ConstructionLendingDynamic,
52
54
  ContactCompany,
53
55
  ContactCompanyTitle,
54
56
  ContactUs,
@@ -26,7 +26,7 @@ const IconBillboard = (props) => {
26
26
  const [headingLevel, setHeadingLevel] = useState("h2");
27
27
  useEffect(() => {
28
28
  if (headingRef.current) {
29
- const section = headingRef.current.closest(".section_spacer");
29
+ const section = headingRef.current.closest(".page_body_contents > div");
30
30
  if (section) {
31
31
  const existingH2 = section.querySelector("h2.header_1");
32
32
  if (existingH2) {
@@ -61,7 +61,7 @@ export declare const TableCell: ({ children, as, variant, highlighted, colSpan,
61
61
  is?: string | undefined;
62
62
  exportparts?: string | undefined;
63
63
  part?: string | undefined;
64
- popover?: "" | "auto" | "manual" | "hint" | undefined;
64
+ popover?: "" | "auto" | "manual" | undefined;
65
65
  popoverTargetAction?: "toggle" | "show" | "hide" | undefined;
66
66
  popoverTarget?: string | undefined;
67
67
  onToggle?: import('react').ToggleEventHandler<HTMLTableCellElement> | undefined;
@@ -29,9 +29,12 @@
29
29
  white-space: nowrap;
30
30
  font-size: 18px;
31
31
  }
32
- .section_spacer:has(._1jmmqba4) {
32
+ .page_body_contents > div:has(._1jmmqba4) {
33
33
  margin-top: 0;
34
34
  }
35
+ .page_body_contents > div:has(._1jmmqba4) + div > section {
36
+ margin-top: -3.5rem;
37
+ }
35
38
  @media screen and (max-width:1919px) {
36
39
  ._1jmmqba0 {
37
40
  padding: 16px 40px;
@@ -9,9 +9,6 @@
9
9
  max-width: 1392px;
10
10
  width: calc(100% - 48px);
11
11
  }
12
- .section_spacer:has(._1amgyqo0) {
13
- margin-top: 0px;
14
- }
15
12
  ._1amgyqo1 {
16
13
  min-height: 54px;
17
14
  }
@@ -167,7 +167,7 @@
167
167
  ._1xynjwx4 ._1xynjwxh {
168
168
  background-color: var(--_1073cm88);
169
169
  }
170
- .section_spacer:has(._1xynjwxr) {
170
+ .page_body_contents > div:has(._1xynjwxr) {
171
171
  margin-top: 0px;
172
172
  }
173
173
  @media screen and (max-width: 1023px) {
@@ -96,7 +96,7 @@
96
96
  margin-right: 15px;
97
97
  margin-top: 24px;
98
98
  }
99
- .section_spacer:has(._1ye8k3f6) {
99
+ .page_body_contents > div:has(._1ye8k3f6) {
100
100
  margin-top: 0;
101
101
  }
102
102
  ._1ye8k3fq {
@@ -163,7 +163,7 @@
163
163
  align-items: center;
164
164
  border: none !important;
165
165
  }
166
- .section_spacer ._1m7m2ax {
166
+ .page_body_contents > div:has(._1m7m2ax) {
167
167
  background: none;
168
168
  }
169
169
  ._1m7m2ax ._1m7m2aj {
@@ -269,40 +269,40 @@ main > div:nth-last-child(2) > ._1m7m2a0:not(._1m7m2ax) {
269
269
  .stacked ._1m7m2ao {
270
270
  height: auto;
271
271
  }
272
- .section_spacer:has(._1m7m2ax._1m7m2a1) {
272
+ .page_body_contents > div:has(._1m7m2ax._1m7m2a1) {
273
273
  background: var(--_1073cm81);
274
274
  }
275
- .section_spacer:has(._1m7m2ax._1m7m2a1) + .section_spacer:has(._1m7m2ax._1m7m2a1) {
275
+ .page_body_contents > div:has(._1m7m2ax._1m7m2a1) + div:has(._1m7m2ax._1m7m2a1) {
276
276
  padding-top: 0;
277
277
  }
278
- .section_spacer:has(._1m7m2ax._1m7m2a2) {
278
+ .page_body_contents > div:has(._1m7m2ax._1m7m2a2) {
279
279
  background: var(--_1073cm88);
280
280
  }
281
- .section_spacer:has(._1m7m2ax._1m7m2a2) + .section_spacer:has(._1m7m2ax._1m7m2a2) {
281
+ .page_body_contents > div:has(._1m7m2ax._1m7m2a2) + div:has(._1m7m2ax._1m7m2a2) {
282
282
  padding-top: 0;
283
283
  }
284
- .section_spacer:has(._1m7m2ax._1m7m2a3) {
284
+ .page_body_contents > div:has(._1m7m2ax._1m7m2a3) {
285
285
  background: var(--_1073cm8f);
286
286
  }
287
- .section_spacer:has(._1m7m2ax._1m7m2a3) + .section_spacer:has(._1m7m2ax._1m7m2a3) {
287
+ .page_body_contents > div:has(._1m7m2ax._1m7m2a3) + div:has(._1m7m2ax._1m7m2a3) {
288
288
  padding-top: 0;
289
289
  }
290
- .section_spacer:has(._1m7m2ax._1m7m2a4) {
290
+ .page_body_contents > div:has(._1m7m2ax._1m7m2a4) {
291
291
  background: var(--_1073cm8m);
292
292
  }
293
- .section_spacer:has(._1m7m2ax._1m7m2a4) + .section_spacer:has(._1m7m2ax._1m7m2a4) {
293
+ .page_body_contents > div:has(._1m7m2ax._1m7m2a4) + div:has(._1m7m2ax._1m7m2a4) {
294
294
  padding-top: 0;
295
295
  }
296
- .section_spacer:has(.stacked) {
296
+ .page_body_contents > div:has(.stacked) {
297
297
  padding-bottom: 40px;
298
298
  }
299
- .section_spacer:has(> ._1m7m2ax) {
299
+ .page_body_contents > div:has(> ._1m7m2ax) {
300
300
  padding-block: 56px;
301
301
  }
302
- .section_spacer:has(._1m7m2ax) + .section_spacer:has(._1m7m2ax) {
302
+ .page_body_contents > div:has(._1m7m2ax) + .div:has(._1m7m2ax) {
303
303
  margin-top: 0;
304
304
  }
305
- .section_spacer:has(._1m7m2ax) ._1m7m2an {
305
+ .page_body_contents > div:has(._1m7m2ax) ._1m7m2an {
306
306
  margin-top: 1.7rem;
307
307
  }
308
308
  ._1m7m2a1f {
@@ -465,7 +465,7 @@ main > div:nth-last-child(2) > ._1m7m2a0:not(._1m7m2ax) {
465
465
  .stacked:first-child {
466
466
  padding-top: 42px;
467
467
  }
468
- .section_spacer:has(> ._1m7m2ax) {
468
+ .page_body_contents > div:has(> ._1m7m2ax) {
469
469
  padding-block: 42px;
470
470
  }
471
471
  }
@@ -485,7 +485,7 @@ main > div:nth-last-child(2) > ._1m7m2a0:not(._1m7m2ax) {
485
485
  .stacked:first-child {
486
486
  padding-top: 2rem;
487
487
  }
488
- .section_spacer:has(> ._1m7m2ax) {
488
+ .page_body_contents > div:has(> ._1m7m2ax) {
489
489
  padding-block: 2rem;
490
490
  }
491
491
  }
@@ -498,7 +498,7 @@ main > div:nth-last-child(2) > ._1m7m2a0:not(._1m7m2ax) {
498
498
  }
499
499
  }
500
500
  @media screen and (min-width: 768px) {
501
- .section_spacer:has(._1m7m2ax) ._1m7m2an {
501
+ .page_body_contents > div:has(._1m7m2ax) ._1m7m2an {
502
502
  margin-top: 2.5rem;
503
503
  }
504
504
  }
@@ -519,7 +519,7 @@ main > div:nth-last-child(2) > ._1m7m2a0:not(._1m7m2ax) {
519
519
  ._18ygy9m5.stacked ._1m7m2av {
520
520
  min-height: 1px !important;
521
521
  }
522
- .section_spacer:has(._1m7m2ax) ._1m7m2an {
522
+ .page_body_contents > div:has(._1m7m2ax) ._1m7m2an {
523
523
  justify-content: flex-start;
524
524
  }
525
525
  ._1m7m2a1g .billboard {
@@ -548,7 +548,7 @@ main > div:nth-last-child(2) > ._1m7m2a0:not(._1m7m2ax) {
548
548
  }
549
549
  }
550
550
  @media screen and (min-width: 1280px) {
551
- .section_spacer:has(._1m7m2ax) ._1m7m2an {
551
+ .page_body_contents > div:has(._1m7m2ax) ._1m7m2an {
552
552
  margin-top: 3rem;
553
553
  }
554
554
  }
@@ -18,14 +18,15 @@
18
18
  .slick-slide {
19
19
  margin-left: 8px;
20
20
  }
21
- .section_spacer:has(#pageNav) {
21
+ .page_body_contents > div:has(#pageNav) {
22
22
  margin-top: 0;
23
23
  position: sticky;
24
24
  top: 0;
25
25
  z-index: 999;
26
+ margin-bottom: -3.5rem;
26
27
  }
27
- .section_spacer:has(#pageNav) + .section_spacer {
28
- margin-top: 0px !important;
28
+ .page_body_contents > div:has(#pageNav) + div > section {
29
+ margin-top: 0;
29
30
  }
30
31
  @media screen and (max-width:1023px) {
31
32
  .slick-slide + .slick-slide {
@@ -17,6 +17,9 @@
17
17
  grid-template-columns: repeat(auto-fit, minmax(min(250px, 100%), 1fr));
18
18
  gap: 24px;
19
19
  }
20
+ .containment > ._18ygy9m5:first-child {
21
+ padding-top: 2rem;
22
+ }
20
23
  ._18ygy9m6 {
21
24
  display: grid;
22
25
  gap: 24px;
@@ -2,8 +2,8 @@
2
2
  -webkit-box-shadow: 0 7px 10px rgba(0,0,0,0.08);
3
3
  box-shadow: 0 7px 10px rgba(0,0,0,0.08);
4
4
  }
5
- .section_spacer:has(.xbzzeo0) {
6
- margin-top: 0px;
5
+ .page_body_contents > div:has(.xbzzeo0) {
6
+ margin-top: -3.5rem;
7
7
  }
8
8
  .xbzzeo1 {
9
9
  max-width: 88.2rem;
@@ -32,6 +32,17 @@ li p, p:last-child, p:only-child {
32
32
  .section_spacer {
33
33
  margin-top: 3.5rem;
34
34
  }
35
+ .page_body_contents {
36
+ display: flex;
37
+ flex-direction: column;
38
+ gap: 3.5rem;
39
+ }
40
+ span#personalized-refi-table:has(*) {
41
+ margin-bottom: 3.5rem;
42
+ }
43
+ .page_body_contents > div:first-child > .billboard {
44
+ margin-top: 3.5rem;
45
+ }
35
46
  .flex, [class*='flex_'] {
36
47
  display: flex;
37
48
  }
package/dist/main.js CHANGED
@@ -70,6 +70,7 @@ import { CommercialDeposits } from "./Forms/CommercialDeposits.js";
70
70
  import { CommercialDepositsNoLendingOption } from "./Forms/CommercialDepositsNoLendingOption.js";
71
71
  import { CommercialLending } from "./Forms/CommercialLending.js";
72
72
  import { CommercialPremiumFinance } from "./Forms/CommercialPremiumFinance.js";
73
+ import { ConstructionLendingDynamic } from "./Forms/ConstructionLendingDynamic.js";
73
74
  import { ContactCompany } from "./Forms/ContactCompany.js";
74
75
  import { ContactCompanyTitle } from "./Forms/ContactCompanyTitle.js";
75
76
  import { ContactUs } from "./Forms/ContactUs.js";
@@ -276,6 +277,7 @@ export {
276
277
  CommercialLending,
277
278
  CommercialPremiumFinance,
278
279
  ComparisonSet,
280
+ ConstructionLendingDynamic,
279
281
  ContactCompany,
280
282
  ContactCompanyTitle,
281
283
  ContactUs,
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@axos-web-dev/shared-components",
3
3
  "description": "Axos shared components library for web.",
4
- "version": "1.0.100-dev.67",
4
+ "version": "1.0.100-dev.69",
5
5
  "type": "module",
6
6
  "module": "dist/main.js",
7
7
  "types": "dist/main.d.ts",