jcicl 2.0.2 → 4.0.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/utils.js CHANGED
@@ -1,10 +1,10 @@
1
1
  import i from "./theme.js";
2
2
  import { formattersByType as m } from "./formatters.js";
3
- import { formatAddress as T, formatCurrency as h, formatDate as k, formatDateTime as x, formatPhoneNumber as D, formatSSN as M, formatTimestamp as V, formatZipCode as Z } from "./formatters.js";
3
+ import { formatAddress as T, formatCurrency as h, formatDate as k, formatDateTime as x, formatPhoneNumber as D, formatSSN as V, formatTimestamp as M, formatZipCode as Z } from "./formatters.js";
4
4
  import { maskersByType as l } from "./maskers.js";
5
5
  import { defaultMasker as w, maskSSN as A } from "./maskers.js";
6
- import { states as z } from "./constants.js";
7
- import { inputValidatorsByType as B, isValidCityName as O, isValidEmail as P, isValidPhoneNumber as j, isValidSSN as E, isValidZipCode as F, validateEmail as I, validatePhoneNumber as Y, validateSSN as K, validateZipCode as L } from "./validators.js";
6
+ import { states as v } from "./constants.js";
7
+ import { inputValidatorsByType as B, isValidCityName as O, isValidDate as P, isValidEmail as j, isValidPhoneNumber as E, isValidSSN as F, isValidZipCode as I, validateDate as Y, validateEmail as K, validatePhoneNumber as L, validateSSN as Q, validateZipCode as q } from "./validators.js";
8
8
  import { u as s } from "./.chunks/useMediaQuery.js";
9
9
  const p = /* @__PURE__ */ new Set([
10
10
  ...Object.keys(m),
@@ -30,24 +30,26 @@ export {
30
30
  k as formatDate,
31
31
  x as formatDateTime,
32
32
  D as formatPhoneNumber,
33
- M as formatSSN,
34
- V as formatTimestamp,
33
+ V as formatSSN,
34
+ M as formatTimestamp,
35
35
  Z as formatZipCode,
36
36
  p as formattedOrMaskedTypes,
37
37
  m as formattersByType,
38
38
  B as inputValidatorsByType,
39
39
  O as isValidCityName,
40
- P as isValidEmail,
41
- j as isValidPhoneNumber,
42
- E as isValidSSN,
43
- F as isValidZipCode,
40
+ P as isValidDate,
41
+ j as isValidEmail,
42
+ E as isValidPhoneNumber,
43
+ F as isValidSSN,
44
+ I as isValidZipCode,
44
45
  A as maskSSN,
45
46
  l as maskersByType,
46
- z as states,
47
+ v as states,
47
48
  u as useIsMobile,
48
49
  y as useIsTablet,
49
- I as validateEmail,
50
- Y as validatePhoneNumber,
51
- K as validateSSN,
52
- L as validateZipCode
50
+ Y as validateDate,
51
+ K as validateEmail,
52
+ L as validatePhoneNumber,
53
+ Q as validateSSN,
54
+ q as validateZipCode
53
55
  };
package/validators.d.ts CHANGED
@@ -4,10 +4,12 @@ export declare const isValidPhoneNumber: (phone: string) => boolean;
4
4
  export declare const isValidZipCode: (zip: string) => boolean;
5
5
  export declare const isValidCityName: (city: string) => boolean;
6
6
  export declare const isValidSSN: (ssn: string) => boolean;
7
+ export declare const isValidDate: (date: string) => boolean;
7
8
  export type InputValidationFunction = (value: string) => string | undefined;
8
9
  export declare const validateEmail: InputValidationFunction;
9
10
  export declare const validatePhoneNumber: InputValidationFunction;
10
11
  export declare const validateSSN: InputValidationFunction;
11
12
  export declare const validateZipCode: InputValidationFunction;
13
+ export declare const validateDate: InputValidationFunction;
12
14
  /** Input validation functions that are automatically applied to FormInput based on the type */
13
15
  export declare const inputValidatorsByType: Partial<Record<FormInputType, InputValidationFunction>>;
package/validators.js CHANGED
@@ -1,22 +1,30 @@
1
- const s = (e) => /^[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,}$/.test(e.trim()), i = (e) => {
1
+ const d = (e) => /^[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,}$/.test(e.trim()), r = (e) => {
2
2
  if (!e) return !1;
3
3
  const t = e.replace(/\D/g, "");
4
4
  return !!(e.trim() == t && t.length >= 10 && t.length <= 16 || /^\s*(?:\+?1\s*(?:[-\s]\s*)?)?(?:\(\s*\d{3}\s*\)|\d{3})(?:\s*[-\s]\s*)?\d{3}(?:\s*[-\s]\s*)?\d{4}(?:\s*(?:#|x\.?|ext\.?|extension)\s*\d{1,6})?\s*$/.test(e.trim()));
5
- }, n = (e) => /^\d{5}(?:\s*-?\s*\d{4})?$/.test(e), m = (e) => /^[a-zA-Z\s'.-]+$/.test(e), a = (e) => /^\d{3}-\d{2}-\d{4}$|^\d{9}$/.test(e), d = (e) => s(e) ? void 0 : "Invalid email format (e.g., name@example.com).", o = (e) => i(e) ? void 0 : "Enter a valid phone number.", r = (e) => a(e) ? void 0 : "SSN must be 9 digits.", l = (e) => n(e) ? void 0 : "Zip code must be 5 or 9 digits.", g = {
6
- email: d,
7
- phone: o,
8
- zip: l,
9
- ssn: r
5
+ }, o = (e) => /^\d{5}(?:\s*-?\s*\d{4})?$/.test(e), v = (e) => /^[a-zA-Z\s'.-]+$/.test(e), l = (e) => /^\d{3}-\d{2}-\d{4}$|^\d{9}$/.test(e), c = (e) => {
6
+ const t = /^(\d{4})-(\d{2})-(\d{2})$/.exec(e.trim());
7
+ if (!t) return !1;
8
+ const [s, a, n] = t.slice(1).map(Number), i = new Date(s, a - 1, n);
9
+ return i.getFullYear() === s && i.getMonth() === a - 1 && i.getDate() === n;
10
+ }, m = (e) => d(e) ? void 0 : "Invalid email format (e.g., name@example.com).", u = (e) => r(e) ? void 0 : "Enter a valid phone number.", g = (e) => l(e) ? void 0 : "SSN must be 9 digits.", x = (e) => o(e) ? void 0 : "Zip code must be 5 or 9 digits.", p = (e) => c(e) ? void 0 : "Enter a valid date (mm/dd/yyyy).", y = {
11
+ email: m,
12
+ phone: u,
13
+ zip: x,
14
+ ssn: g,
15
+ date: p
10
16
  };
11
17
  export {
12
- g as inputValidatorsByType,
13
- m as isValidCityName,
14
- s as isValidEmail,
15
- i as isValidPhoneNumber,
16
- a as isValidSSN,
17
- n as isValidZipCode,
18
- d as validateEmail,
19
- o as validatePhoneNumber,
20
- r as validateSSN,
21
- l as validateZipCode
18
+ y as inputValidatorsByType,
19
+ v as isValidCityName,
20
+ c as isValidDate,
21
+ d as isValidEmail,
22
+ r as isValidPhoneNumber,
23
+ l as isValidSSN,
24
+ o as isValidZipCode,
25
+ p as validateDate,
26
+ m as validateEmail,
27
+ u as validatePhoneNumber,
28
+ g as validateSSN,
29
+ x as validateZipCode
22
30
  };