@axos-web-dev/shared-components 1.0.100-dev.47 → 1.0.100-dev.49

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.
@@ -159,7 +159,6 @@ const MortgageRate = ({
159
159
  const [downPaymentPercentage, setDownPaymentPercentage] = useState(10);
160
160
  const [_downPayment, setDownPayment] = useState(0);
161
161
  const [isTypingDownPayment, setIsTypingDownPayment] = useState(false);
162
- const [salesPriceVal, setSalesPriceVal] = useState(0);
163
162
  const cachedEmailValidator = useCachedEmailValidator(validateEmail);
164
163
  const schema = z.object({
165
164
  firstName: z.string({ message: "First Name is required." }).regex(/^[A-Za-z][^0-9_!¡?÷?¿/\\+=@#$%ˆ&*,.^(){}|~<>;:[\]]{1,}$/g, {
@@ -195,19 +194,9 @@ const MortgageRate = ({
195
194
  ),
196
195
  downPayment: z.number({ message: "Down Payment is required." }).optional().refine((val) => loanPurpose === 1 ? val != null : true, {
197
196
  message: "Down Payment is required."
198
- }).refine(
199
- (val) => {
200
- if (loanPurpose === 1) {
201
- return val != null && val >= salesPriceVal * 0.01 && val <= salesPriceVal;
202
- }
203
- return true;
204
- },
205
- {
206
- message: `Value must be between ${salesPriceVal * 0.01} and ${salesPriceVal}.`
207
- }
208
- ),
197
+ }),
209
198
  creditScore: z.number({ message: "Credit Score is required." }).positive({ message: "Credit Score is required." }),
210
- zipCode: z.number({ message: "Zip Code is required." }).positive({ message: "Zip Code is required." }),
199
+ zipCode: z.string().trim().min(1, { message: "Zip Code is required." }).regex(/^\d{5}$/, { message: "ZIP code must be 5 digits." }),
211
200
  appraisedValue: z.number({ message: "Home Price is required." }).optional().refine(
212
201
  (val) => {
213
202
  if (loanPurpose === 2 && val == null) {
@@ -215,7 +204,7 @@ const MortgageRate = ({
215
204
  }
216
205
  return true;
217
206
  },
218
- { message: "Appraised Value is required for refinance" }
207
+ { message: "Appraised Value is required for refinance." }
219
208
  ),
220
209
  mortgageBalance: z.number({ message: "Mortgage Balance is required." }).optional().refine(
221
210
  (val) => {
@@ -224,7 +213,7 @@ const MortgageRate = ({
224
213
  }
225
214
  return true;
226
215
  },
227
- { message: "Mortgage Balance is required for refinance" }
216
+ { message: "Mortgage Balance is required for refinance." }
228
217
  ),
229
218
  cashOut: z.number({ message: "Cash Out is required." }).optional(),
230
219
  loanPurpose: z.number({ message: "Loan Purpose is required." })
@@ -236,12 +225,28 @@ const MortgageRate = ({
236
225
  message: "fields are not valid."
237
226
  });
238
227
  }
228
+ if (loanPurpose === 1 && data.salesPrice != null && data.downPayment != null) {
229
+ const minDownPayment = data.salesPrice * 0.01;
230
+ const maxDownPayment = data.salesPrice;
231
+ if (data.downPayment < minDownPayment || data.downPayment > maxDownPayment) {
232
+ ctx.addIssue({
233
+ code: z.ZodIssueCode.custom,
234
+ path: ["downPayment"],
235
+ message: `Value must be between ${minDownPayment.toLocaleString()} and ${maxDownPayment.toLocaleString()}.`
236
+ });
237
+ }
238
+ }
239
239
  });
240
240
  const methods = useForm({
241
- resolver: zodResolver(gen_schema, {
242
- async: true
243
- }),
244
- mode: "all",
241
+ resolver: zodResolver(
242
+ gen_schema,
243
+ {
244
+ async: true
245
+ },
246
+ { mode: "async" }
247
+ ),
248
+ mode: "onChange",
249
+ reValidateMode: "onChange",
245
250
  defaultValues: {
246
251
  loanPurpose: 1,
247
252
  AlternativeEmail: "bestbank@axos.com",
@@ -282,13 +287,11 @@ const MortgageRate = ({
282
287
  const {
283
288
  handleSubmit,
284
289
  register,
285
- formState: { errors, isValid, isSubmitting },
290
+ formState: { errors, isValid, isSubmitting, isValidating },
286
291
  watch
287
292
  } = methods;
293
+ const shouldDisable = !isValid || isSubmitting || isValidating;
288
294
  const salesPrice = watch("salesPrice");
289
- useEffect(() => {
290
- setSalesPriceVal(salesPrice);
291
- });
292
295
  useEffect(() => {
293
296
  if (salesPrice > 0 && !isTypingDownPayment) {
294
297
  const calculatedDownPayment = Math.round(
@@ -297,7 +300,7 @@ const MortgageRate = ({
297
300
  if (!isTypingDownPayment) setDownPayment(calculatedDownPayment);
298
301
  methods.setValue("downPayment", calculatedDownPayment);
299
302
  }
300
- }, [salesPrice, downPaymentPercentage]);
303
+ }, [salesPrice, downPaymentPercentage, isTypingDownPayment, methods]);
301
304
  const submitForm = async (data) => {
302
305
  const processData = {
303
306
  ...data
@@ -544,7 +547,8 @@ const MortgageRate = ({
544
547
  type: "text",
545
548
  ...register("downPayment", {
546
549
  required: true,
547
- setValueAs: (value) => parseCurrency(value)
550
+ setValueAs: (value) => parseCurrency(value),
551
+ deps: ["salesPrice"]
548
552
  }),
549
553
  salesPrice: watch("salesPrice"),
550
554
  downPaymentPercentage,
@@ -652,17 +656,23 @@ const MortgageRate = ({
652
656
  Input,
653
657
  {
654
658
  id: "zipCode",
655
- type: "number",
659
+ type: "text",
660
+ inputMode: "numeric",
656
661
  ...register("zipCode", {
657
662
  required: true,
658
- setValueAs: (value) => Number(value)
663
+ pattern: /^\d{5}$/
659
664
  }),
660
665
  label: "Zip Code",
661
666
  sizes: "medium",
662
667
  required: true,
663
668
  error: !!errors.zipCode,
664
669
  helperText: errors.zipCode?.message,
665
- variant
670
+ variant,
671
+ maxLength: 5,
672
+ onInput: (e) => {
673
+ const target = e.target;
674
+ target.value = target.value.replace(/\D/g, "");
675
+ }
666
676
  }
667
677
  ) }),
668
678
  loanPurpose === 2 ? /* @__PURE__ */ jsx(Fragment, { children: /* @__PURE__ */ jsx("div", { className: fullRowForm, children: /* @__PURE__ */ jsx(
@@ -775,12 +785,12 @@ const MortgageRate = ({
775
785
  "button",
776
786
  {
777
787
  type: "submit",
778
- disabled: !isValid,
788
+ disabled: shouldDisable,
779
789
  className: button({
780
790
  color: "secondary",
781
791
  size: "large",
782
792
  rounded: "medium",
783
- disabled: !isValid
793
+ disabled: shouldDisable
784
794
  }),
785
795
  children: "Get My Rate"
786
796
  }
@@ -16,12 +16,12 @@ import "../../Input/InputPhone.js";
16
16
  import "../../Input/InputTextArea.js";
17
17
  import { DownPaymentInput } from "../../Input/DownPaymentInput.js";
18
18
  import "../../Input/RadioButton.js";
19
+ import { LoadingIndicator } from "../../LoadingIndicator/index.js";
19
20
  import clsx from "clsx";
20
21
  import { useForm, FormProvider } from "react-hook-form";
21
22
  import * as z from "zod";
22
23
  import { headerForm, headerContainer, form, fullRowForm, formWrapper, actions, formContainer } from "../Forms.css.js";
23
24
  import { SalesforceSchema } from "../SalesforceFieldsForm.js";
24
- import { LoadingIndicator } from "../../LoadingIndicator/index.js";
25
25
  const MortgageRateFilters = ({
26
26
  formData,
27
27
  onSubmit
@@ -62,7 +62,7 @@ const MortgageRateFilters = ({
62
62
  }
63
63
  ),
64
64
  creditScore: z.number({ message: "Credit Score is required." }).positive({ message: "Credit Score is required." }),
65
- zipCode: z.number().positive({ message: "Zip Code is required." }),
65
+ zipCode: z.string().trim().min(1, { message: "Zip Code is required." }).regex(/^\d{5}$/, { message: "ZIP code must be 5 digits." }),
66
66
  appraisedValue: z.number({ message: "Home Price is required." }).optional().refine(
67
67
  (val) => {
68
68
  if (loanPurpose === 2) {
@@ -390,10 +390,11 @@ const MortgageRateFilters = ({
390
390
  Input,
391
391
  {
392
392
  id: "zipCode",
393
- type: "number",
393
+ type: "text",
394
+ inputMode: "numeric",
394
395
  ...register("zipCode", {
395
396
  required: true,
396
- setValueAs: (value) => Number(value)
397
+ pattern: /^\d{5}$/
397
398
  }),
398
399
  label: "Zip Code",
399
400
  sizes: "medium",
@@ -401,7 +402,12 @@ const MortgageRateFilters = ({
401
402
  error: !!errors.zipCode,
402
403
  helperText: errors.zipCode?.message,
403
404
  variant: "tertiary",
404
- defaultValue: formData.zipCode
405
+ defaultValue: formData.zipCode,
406
+ maxLength: 5,
407
+ onInput: (e) => {
408
+ const target = e.target;
409
+ target.value = target.value.replace(/\D/g, "");
410
+ }
405
411
  }
406
412
  ) }),
407
413
  loanPurpose === 2 ? /* @__PURE__ */ jsx(Fragment, { children: /* @__PURE__ */ jsx("div", { children: /* @__PURE__ */ jsx(
@@ -58,5 +58,6 @@ export declare const bs_image: string;
58
58
  export declare const bs_video: string;
59
59
  export declare const steps_wrapper: string;
60
60
  export declare const ol: string;
61
+ export declare const ul: string;
61
62
  export declare const bs_btns: string;
62
63
  export declare const bs_add_details: string;
@@ -16,8 +16,9 @@ var bs_image = "_18par6fj";
16
16
  var bs_video = "_18par6fk";
17
17
  var steps_wrapper = "_18par6fl";
18
18
  var ol = "_18par6fm";
19
- var bs_btns = "_18par6fn";
20
- var bs_add_details = "_18par6fo";
19
+ var ul = "_18par6fn _18par6fm";
20
+ var bs_btns = "_18par6fo";
21
+ var bs_add_details = "_18par6fp";
21
22
  export {
22
23
  bs_add_details,
23
24
  bs_btns,
@@ -31,5 +32,6 @@ export {
31
32
  sec_title,
32
33
  steps_wrapper,
33
34
  svg_logo,
34
- tablet_col
35
+ tablet_col,
36
+ ul
35
37
  };
@@ -7,9 +7,11 @@ import { StepItemProps } from '../StepItem';
7
7
  export interface StepItemSetProps {
8
8
  id: string;
9
9
  variant?: QuaternaryTypes;
10
+ logo?: boolean;
10
11
  title?: string | ReactNode;
11
12
  description?: string | ReactNode;
12
13
  image?: ImageInterface;
14
+ numbered?: boolean;
13
15
  stepItems?: StepItemProps[];
14
16
  callToActionRow?: boolean | ChevronProps[];
15
17
  additionalDetails?: string | ReactNode;
@@ -15,13 +15,15 @@ import '../assets/VideoTile/VideoTile.css';import '../assets/themes/victorie.css
15
15
  /* empty css */
16
16
  /* empty css */
17
17
  /* empty css */
18
- import { bs_section, bs_wrapper, svg_logo, modifier, sec_title, sec_subtitle, tablet_col, bs_image, bs_video, steps_wrapper, ol, bs_btns, bs_add_details } from "./StepItemSet.css.js";
18
+ import { bs_section, bs_wrapper, svg_logo, modifier, sec_title, sec_subtitle, tablet_col, bs_image, bs_video, steps_wrapper, ol, ul, bs_btns, bs_add_details } from "./StepItemSet.css.js";
19
19
  const StepItemSet = ({
20
20
  id,
21
21
  variant: fullVariant = "primary",
22
+ logo = true,
22
23
  title,
23
24
  description,
24
25
  image,
26
+ numbered = true,
25
27
  stepItems,
26
28
  callToActionRow,
27
29
  additionalDetails,
@@ -30,7 +32,7 @@ const StepItemSet = ({
30
32
  const variant = getVariant(fullVariant);
31
33
  return /* @__PURE__ */ jsx("section", { className: `${bs_section({ variant })}`, id, children: /* @__PURE__ */ jsxs("div", { className: `${bs_wrapper} containment`, children: [
32
34
  (title || description) && /* @__PURE__ */ jsxs("div", { className: "text_center", children: [
33
- /* @__PURE__ */ jsxs(
35
+ logo && /* @__PURE__ */ jsxs(
34
36
  "svg",
35
37
  {
36
38
  className: svg_logo,
@@ -75,17 +77,20 @@ const StepItemSet = ({
75
77
  enableModal: true
76
78
  }
77
79
  ) }),
78
- /* @__PURE__ */ jsx("div", { className: steps_wrapper, children: /* @__PURE__ */ jsx("ol", { className: ol, children: stepItems?.map((step, index) => /* @__PURE__ */ jsx(
79
- StepItem,
80
- {
81
- id: `id_${step.id}`,
82
- counter: index + 1,
83
- title: step?.title,
84
- description: step?.description,
85
- variant
86
- },
87
- step?.id
88
- )) }) })
80
+ /* @__PURE__ */ jsx("div", { className: steps_wrapper, children: (() => {
81
+ const listItems = stepItems?.map((step, index) => /* @__PURE__ */ jsx(
82
+ StepItem,
83
+ {
84
+ id: `id_${step.id}`,
85
+ counter: index + 1,
86
+ title: step?.title,
87
+ description: step?.description,
88
+ variant
89
+ },
90
+ step?.id
91
+ ));
92
+ return numbered ? /* @__PURE__ */ jsx("ol", { className: ol, children: listItems }) : /* @__PURE__ */ jsx("ul", { className: ul, children: listItems });
93
+ })() })
89
94
  ] }),
90
95
  Array.isArray(callToActionRow) && callToActionRow?.length > 0 && /* @__PURE__ */ jsx(
91
96
  "div",
@@ -1,5 +1,5 @@
1
1
  import { StepItemSet } from "./StepItemSet.js";
2
- import { bs_add_details, bs_btns, bs_image, bs_section, bs_video, bs_wrapper, modifier, ol, sec_subtitle, sec_title, steps_wrapper, svg_logo, tablet_col } from "./StepItemSet.css.js";
2
+ import { bs_add_details, bs_btns, bs_image, bs_section, bs_video, bs_wrapper, modifier, ol, sec_subtitle, sec_title, steps_wrapper, svg_logo, tablet_col, ul } from "./StepItemSet.css.js";
3
3
  export {
4
4
  StepItemSet,
5
5
  bs_add_details,
@@ -14,5 +14,6 @@ export {
14
14
  sec_title,
15
15
  steps_wrapper,
16
16
  svg_logo,
17
- tablet_col
17
+ tablet_col,
18
+ ul
18
19
  };
@@ -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;
@@ -89,22 +89,31 @@
89
89
  list-style: none;
90
90
  margin: 0;
91
91
  }
92
+ ._18par6fn {
93
+ position: relative;
94
+ }
92
95
  ._18par6fm > li + li > :first-child > :first-child {
93
96
  padding-top: 24px;
94
97
  }
95
98
  ._18par6fm > li + li > :last-child {
96
99
  padding-top: 24px;
97
100
  }
98
- ._18par6fn > * + * {
99
- margin-left: 48px;
101
+ ._18par6fn > li > :first-child {
102
+ display: none;
103
+ }
104
+ ._18par6fn > li > :last-child {
105
+ margin-left: 0;
100
106
  }
101
107
  ._18par6fo {
108
+ gap: 48px;
109
+ }
110
+ ._18par6fp {
102
111
  margin-left: auto;
103
112
  margin-right: auto;
104
113
  text-align: center;
105
114
  max-width: 800px;
106
115
  }
107
- ._18par6fo > * {
116
+ ._18par6fp > * {
108
117
  line-height: 1.5;
109
118
  }
110
119
  @media screen and (min-width:1024px) {
@@ -136,12 +145,8 @@
136
145
  padding: 0px;
137
146
  margin-top: 24px;
138
147
  }
139
- ._18par6fn {
148
+ ._18par6fo {
140
149
  flex-direction: column;
141
- margin-top: 24px;
142
- }
143
- ._18par6fn > * + * {
144
- margin-left: 0px;
145
- margin-top: 24px;
150
+ gap: 24px;
146
151
  }
147
152
  }
package/dist/main.js CHANGED
@@ -184,7 +184,7 @@ import { SocialMediaBar } from "./SocialMediaBar/index.js";
184
184
  import { StepItem } from "./StepItem/StepItem.js";
185
185
  import { bs_copy, bs_topic, bullet_details, li, line_points, point, step_num } from "./StepItem/StepItem.css.js";
186
186
  import { StepItemSet } from "./StepItemSet/StepItemSet.js";
187
- import { bs_add_details, bs_btns, bs_image, bs_section, bs_video, bs_wrapper, modifier, ol, sec_subtitle, sec_title, steps_wrapper, svg_logo, tablet_col } from "./StepItemSet/StepItemSet.css.js";
187
+ import { bs_add_details, bs_btns, bs_image, bs_section, bs_video, bs_wrapper, modifier, ol, sec_subtitle, sec_title, steps_wrapper, svg_logo, tablet_col, ul } from "./StepItemSet/StepItemSet.css.js";
188
188
  import { Table, TableBody, TableCell, TableContainer, TableHead, TableRow } from "./Table/Table.js";
189
189
  import { alternate_color_rows, apy_table, bodyHeader, headerCell, headerVariants, highlight_cell, highlight_first_row, highlight_last_row, highlight_th, table, tableWrapper, table_container, table_container_text, table_description_text, table_headline, table_section, td, th } from "./Table/Table.css.js";
190
190
  import { TextBlock } from "./TextBlock/TextBlock.js";
@@ -807,6 +807,7 @@ export {
807
807
  transcript_container,
808
808
  transcript_content,
809
809
  two_inline,
810
+ ul,
810
811
  up_to,
811
812
  url_row,
812
813
  useCachedEmailValidator,
package/package.json CHANGED
@@ -1,136 +1,136 @@
1
- {
2
- "name": "@axos-web-dev/shared-components",
3
- "description": "Axos shared components library for web.",
4
- "version": "1.0.100-dev.47",
5
- "type": "module",
6
- "module": "dist/main.js",
7
- "types": "dist/main.d.ts",
8
- "files": [
9
- "dist"
10
- ],
11
- "sideEffects": [
12
- "dist/assets/**/*.css"
13
- ],
14
- "scripts": {
15
- "dev": "vite",
16
- "build": "tsc --p ./tsconfig.build.json && vite build",
17
- "lint": "eslint . --ext ts,tsx --report-unused-disable-directives --max-warnings 0",
18
- "preview": "vite preview",
19
- "prepublishOnly": "npm run build",
20
- "check-types": "tsc --pretty --noEmit",
21
- "check-format": "prettier --check .",
22
- "check-lint": "eslint . --ext ts --ext tsx --ext js",
23
- "format": "prettier --write .",
24
- "test-all": "npm run check-format && npm run check-lint && npm run check-types && npm run build",
25
- "prepare": "husky",
26
- "storybook": "storybook dev -p 6006",
27
- "build-storybook": "storybook build",
28
- "npm:link": "npm run build && npm link"
29
- },
30
- "dependencies": {
31
- "@headlessui/react": "^2.2.0",
32
- "@hookform/resolvers": "^3.10.0",
33
- "@next-safe-action/adapter-react-hook-form": "^2.0.0",
34
- "@react-input/mask": "^1.2.15",
35
- "@react-input/number-format": "^1.1.3",
36
- "@storybook/icons": "^1.3.0",
37
- "@storybook/preview-api": "^8.4.7",
38
- "@ts-stack/markdown": "^1.5.0",
39
- "@types/iframe-resizer": "3.5.13",
40
- "@ujet/websdk-headless": "^3.41.4",
41
- "@vanilla-extract/css": "^1.16.1",
42
- "@vanilla-extract/recipes": "^0.5.1",
43
- "antd": "^5.22.5",
44
- "clsx": "^2.1.1",
45
- "framer-motion": "^12.9.2",
46
- "iframe-resizer": "^3.6.6",
47
- "lodash": "^4.17.21",
48
- "moment": "^2.30.1",
49
- "next-safe-action": "^8.0.2",
50
- "react-date-picker": "^11.0.0",
51
- "react-date-range": "^2.0.1",
52
- "react-hook-form": "^7.54.2",
53
- "react-markdown": "^9.1.0",
54
- "react-popper": "^2.3.0",
55
- "react-slick": "^0.30.2",
56
- "react-use": "^17.6.0",
57
- "react-wrap-balancer": "^1.1.1",
58
- "remark-gfm": "^4.0.1",
59
- "rsuite": "^5.75.0",
60
- "slick-carousel": "^1.8.1",
61
- "typed-css-modules": "^0.9.1",
62
- "vite-plugin-svgr": "^4.3.0",
63
- "zod": "^3.24.1",
64
- "zustand": "^4.5.5"
65
- },
66
- "peerDependencies": {
67
- "@vanilla-extract/css-utils": "^0.1.3",
68
- "@vanilla-extract/recipes": "^0.5.1",
69
- "@vanilla-extract/vite-plugin": "^4.0.3",
70
- "next": "^14.1.4",
71
- "react": "^18.2.0",
72
- "react-date-range": "^2.0.1",
73
- "react-dom": "^18.2.0",
74
- "react-popper": "^2.3.0",
75
- "react-slick": "^0.30.2",
76
- "slick-carousel": "^1.8.1"
77
- },
78
- "devDependencies": {
79
- "@chromatic-com/storybook": "^1.9.0",
80
- "@rollup/plugin-alias": "^5.1.1",
81
- "@storybook/addon-essentials": "^8.4.7",
82
- "@storybook/addon-interactions": "^8.4.7",
83
- "@storybook/addon-links": "^8.4.7",
84
- "@storybook/addon-mdx-gfm": "^8.4.7",
85
- "@storybook/addon-onboarding": "^8.4.7",
86
- "@storybook/addon-themes": "^8.4.7",
87
- "@storybook/blocks": "^8.4.7",
88
- "@storybook/react": "^8.6.14",
89
- "@storybook/react-vite": "^8.4.7",
90
- "@storybook/test": "^8.6.14",
91
- "@svgr/core": "^8.1.0",
92
- "@svgr/plugin-prettier": "^8.1.0",
93
- "@svgr/plugin-svgo": "^8.1.0",
94
- "@types/lodash": "^4.17.17",
95
- "@types/node": "^20.19.0",
96
- "@types/react": "^18.3.23",
97
- "@types/react-date-range": "^1.4.9",
98
- "@types/react-datepicker": "^6.2.0",
99
- "@types/react-dom": "^18.3.7",
100
- "@types/react-slick": "^0.23.13",
101
- "@typescript-eslint/eslint-plugin": "^7.18.0",
102
- "@typescript-eslint/parser": "^7.18.0",
103
- "@vanilla-extract/css-utils": "^0.1.4",
104
- "@vanilla-extract/recipes": "^0.5.5",
105
- "@vanilla-extract/vite-plugin": "^4.0.18",
106
- "@vitejs/plugin-react-swc": "^3.7.2",
107
- "esbuild-vanilla-image-loader": "^0.1.3",
108
- "eslint": "^8.57.1",
109
- "eslint-plugin-react-hooks": "^4.6.2",
110
- "eslint-plugin-react-refresh": "^0.4.16",
111
- "eslint-plugin-storybook": "^0.8.0",
112
- "glob": "^10.4.5",
113
- "husky": "^9.1.7",
114
- "next": "^14.1.4",
115
- "prettier": "3.2.5",
116
- "react": "^18.3.1",
117
- "react-dom": "^18.3.1",
118
- "rollup-plugin-preserve-directives": "^0.4.0",
119
- "rollup-plugin-svg-import": "^3.0.0",
120
- "rollup-plugin-svgo": "^2.0.0",
121
- "storybook": "^8.4.7",
122
- "typescript": "^5.7.2",
123
- "typescript-plugin-css-modules": "^5.1.0",
124
- "vite": "^5.4.11",
125
- "vite-plugin-dts": "^3.9.1",
126
- "vite-plugin-lib-inject-css": "^2.1.1",
127
- "vite-plugin-setting-css-module": "^1.1.4",
128
- "vite-tsconfig-paths": "^4.3.2"
129
- },
130
- "main": "index.js",
131
- "directories": {
132
- "lib": "lib"
133
- },
134
- "author": "axos-web-dev",
135
- "license": "ISC"
136
- }
1
+ {
2
+ "name": "@axos-web-dev/shared-components",
3
+ "description": "Axos shared components library for web.",
4
+ "version": "1.0.100-dev.49",
5
+ "type": "module",
6
+ "module": "dist/main.js",
7
+ "types": "dist/main.d.ts",
8
+ "files": [
9
+ "dist"
10
+ ],
11
+ "sideEffects": [
12
+ "dist/assets/**/*.css"
13
+ ],
14
+ "scripts": {
15
+ "dev": "vite",
16
+ "build": "tsc --p ./tsconfig.build.json && vite build",
17
+ "lint": "eslint . --ext ts,tsx --report-unused-disable-directives --max-warnings 0",
18
+ "preview": "vite preview",
19
+ "prepublishOnly": "npm run build",
20
+ "check-types": "tsc --pretty --noEmit",
21
+ "check-format": "prettier --check .",
22
+ "check-lint": "eslint . --ext ts --ext tsx --ext js",
23
+ "format": "prettier --write .",
24
+ "test-all": "npm run check-format && npm run check-lint && npm run check-types && npm run build",
25
+ "prepare": "husky",
26
+ "storybook": "storybook dev -p 6006",
27
+ "build-storybook": "storybook build",
28
+ "npm:link": "npm run build && npm link"
29
+ },
30
+ "dependencies": {
31
+ "@headlessui/react": "^2.2.0",
32
+ "@hookform/resolvers": "^3.10.0",
33
+ "@next-safe-action/adapter-react-hook-form": "^2.0.0",
34
+ "@react-input/mask": "^1.2.15",
35
+ "@react-input/number-format": "^1.1.3",
36
+ "@storybook/icons": "^1.3.0",
37
+ "@storybook/preview-api": "^8.4.7",
38
+ "@ts-stack/markdown": "^1.5.0",
39
+ "@types/iframe-resizer": "3.5.13",
40
+ "@ujet/websdk-headless": "^3.41.4",
41
+ "@vanilla-extract/css": "^1.16.1",
42
+ "@vanilla-extract/recipes": "^0.5.1",
43
+ "antd": "^5.22.5",
44
+ "clsx": "^2.1.1",
45
+ "framer-motion": "^12.9.2",
46
+ "iframe-resizer": "^3.6.6",
47
+ "lodash": "^4.17.21",
48
+ "moment": "^2.30.1",
49
+ "next-safe-action": "^8.0.2",
50
+ "react-date-picker": "^11.0.0",
51
+ "react-date-range": "^2.0.1",
52
+ "react-hook-form": "^7.54.2",
53
+ "react-markdown": "^9.1.0",
54
+ "react-popper": "^2.3.0",
55
+ "react-slick": "^0.30.2",
56
+ "react-use": "^17.6.0",
57
+ "react-wrap-balancer": "^1.1.1",
58
+ "remark-gfm": "^4.0.1",
59
+ "rsuite": "^5.75.0",
60
+ "slick-carousel": "^1.8.1",
61
+ "typed-css-modules": "^0.9.1",
62
+ "vite-plugin-svgr": "^4.3.0",
63
+ "zod": "^3.24.1",
64
+ "zustand": "^4.5.5"
65
+ },
66
+ "peerDependencies": {
67
+ "@vanilla-extract/css-utils": "^0.1.3",
68
+ "@vanilla-extract/recipes": "^0.5.1",
69
+ "@vanilla-extract/vite-plugin": "^4.0.3",
70
+ "next": "^14.1.4",
71
+ "react": "^18.2.0",
72
+ "react-date-range": "^2.0.1",
73
+ "react-dom": "^18.2.0",
74
+ "react-popper": "^2.3.0",
75
+ "react-slick": "^0.30.2",
76
+ "slick-carousel": "^1.8.1"
77
+ },
78
+ "devDependencies": {
79
+ "@chromatic-com/storybook": "^1.9.0",
80
+ "@rollup/plugin-alias": "^5.1.1",
81
+ "@storybook/addon-essentials": "^8.4.7",
82
+ "@storybook/addon-interactions": "^8.4.7",
83
+ "@storybook/addon-links": "^8.4.7",
84
+ "@storybook/addon-mdx-gfm": "^8.4.7",
85
+ "@storybook/addon-onboarding": "^8.4.7",
86
+ "@storybook/addon-themes": "^8.4.7",
87
+ "@storybook/blocks": "^8.4.7",
88
+ "@storybook/react": "^8.6.14",
89
+ "@storybook/react-vite": "^8.4.7",
90
+ "@storybook/test": "^8.6.14",
91
+ "@svgr/core": "^8.1.0",
92
+ "@svgr/plugin-prettier": "^8.1.0",
93
+ "@svgr/plugin-svgo": "^8.1.0",
94
+ "@types/lodash": "^4.17.17",
95
+ "@types/node": "^20.19.0",
96
+ "@types/react": "^18.3.23",
97
+ "@types/react-date-range": "^1.4.9",
98
+ "@types/react-datepicker": "^6.2.0",
99
+ "@types/react-dom": "^18.3.7",
100
+ "@types/react-slick": "^0.23.13",
101
+ "@typescript-eslint/eslint-plugin": "^7.18.0",
102
+ "@typescript-eslint/parser": "^7.18.0",
103
+ "@vanilla-extract/css-utils": "^0.1.4",
104
+ "@vanilla-extract/recipes": "^0.5.5",
105
+ "@vanilla-extract/vite-plugin": "^4.0.18",
106
+ "@vitejs/plugin-react-swc": "^3.7.2",
107
+ "esbuild-vanilla-image-loader": "^0.1.3",
108
+ "eslint": "^8.57.1",
109
+ "eslint-plugin-react-hooks": "^4.6.2",
110
+ "eslint-plugin-react-refresh": "^0.4.16",
111
+ "eslint-plugin-storybook": "^0.8.0",
112
+ "glob": "^10.4.5",
113
+ "husky": "^9.1.7",
114
+ "next": "^14.1.4",
115
+ "prettier": "3.2.5",
116
+ "react": "^18.3.1",
117
+ "react-dom": "^18.3.1",
118
+ "rollup-plugin-preserve-directives": "^0.4.0",
119
+ "rollup-plugin-svg-import": "^3.0.0",
120
+ "rollup-plugin-svgo": "^2.0.0",
121
+ "storybook": "^8.4.7",
122
+ "typescript": "^5.7.2",
123
+ "typescript-plugin-css-modules": "^5.1.0",
124
+ "vite": "^5.4.11",
125
+ "vite-plugin-dts": "^3.9.1",
126
+ "vite-plugin-lib-inject-css": "^2.1.1",
127
+ "vite-plugin-setting-css-module": "^1.1.4",
128
+ "vite-tsconfig-paths": "^4.3.2"
129
+ },
130
+ "main": "index.js",
131
+ "directories": {
132
+ "lib": "lib"
133
+ },
134
+ "author": "axos-web-dev",
135
+ "license": "ISC"
136
+ }