@mrshmllw/smores-react 11.0.0 → 11.0.1-crumbs-feature-adjust-package.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/dist/index.d.ts CHANGED
@@ -46,6 +46,6 @@ export * from './theme';
46
46
  export * from './Toggle';
47
47
  export * from './Tooltip';
48
48
  export * from './utils/dateOfBirth/dateOfBirthValidator';
49
- export * from './utils/dateOfBirth/dateOfBirthValidator.utils';
49
+ export * from './utils/dateOfBirth/dateOfBirthValidatorUtils';
50
50
  export * from './utils/dateOfBirth/schema';
51
51
  export * from './utils/space';
package/dist/index.js CHANGED
@@ -46,7 +46,7 @@ export * from './theme';
46
46
  export * from './Toggle';
47
47
  export * from './Tooltip';
48
48
  export * from './utils/dateOfBirth/dateOfBirthValidator';
49
- export * from './utils/dateOfBirth/dateOfBirthValidator.utils';
49
+ export * from './utils/dateOfBirth/dateOfBirthValidatorUtils';
50
50
  export * from './utils/dateOfBirth/schema';
51
51
  export * from './utils/space';
52
52
  //# sourceMappingURL=index.js.map
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,aAAa,CAAA;AAC3B,cAAc,kBAAkB,CAAA;AAChC,cAAc,SAAS,CAAA;AACvB,cAAc,aAAa,CAAA;AAC3B,cAAc,UAAU,CAAA;AACxB,cAAc,OAAO,CAAA;AACrB,cAAc,UAAU,CAAA;AACxB,cAAc,QAAQ,CAAA;AACtB,cAAc,YAAY,CAAA;AAC1B,cAAc,iBAAiB,CAAA;AAC/B,cAAc,QAAQ,CAAA;AACtB,cAAc,iBAAiB,CAAA;AAC/B,cAAc,cAAc,CAAA;AAC5B,cAAc,WAAW,CAAA;AACzB,cAAc,YAAY,CAAA;AAC1B,cAAc,gBAAgB,CAAA;AAC9B,cAAc,mBAAmB,CAAA;AACjC,cAAc,aAAa,CAAA;AAC3B,cAAc,SAAS,CAAA;AACvB,cAAc,QAAQ,CAAA;AACtB,cAAc,cAAc,CAAA;AAC5B,cAAc,eAAe,CAAA;AAC7B,cAAc,gBAAgB,CAAA;AAC9B,cAAc,QAAQ,CAAA;AACtB,cAAc,UAAU,CAAA;AACxB,cAAc,QAAQ,CAAA;AACtB,cAAc,SAAS,CAAA;AACvB,cAAc,eAAe,CAAA;AAC7B,cAAc,cAAc,CAAA;AAC5B,cAAc,cAAc,CAAA;AAC5B,cAAc,YAAY,CAAA;AAC1B,cAAc,kBAAkB,CAAA;AAChC,cAAc,OAAO,CAAA;AACrB,cAAc,eAAe,CAAA;AAC7B,cAAc,oBAAoB,CAAA;AAClC,cAAc,eAAe,CAAA;AAC7B,cAAc,YAAY,CAAA;AAC1B,cAAc,kBAAkB,CAAA;AAChC,cAAc,SAAS,CAAA;AACvB,cAAc,OAAO,CAAA;AACrB,cAAc,QAAQ,CAAA;AACtB,cAAc,YAAY,CAAA;AAC1B,cAAc,wBAAwB,CAAA;AACtC,cAAc,aAAa,CAAA;AAC3B,cAAc,SAAS,CAAA;AACvB,cAAc,UAAU,CAAA;AACxB,cAAc,WAAW,CAAA;AACzB,cAAc,0CAA0C,CAAA;AACxD,cAAc,gDAAgD,CAAA;AAC9D,cAAc,4BAA4B,CAAA;AAC1C,cAAc,eAAe,CAAA","sourcesContent":["export * from './Accordion'\nexport * from './ActionDropdown'\nexport * from './Badge'\nexport * from './BadgeList'\nexport * from './Banner'\nexport * from './Box'\nexport * from './Button'\nexport * from './Card'\nexport * from './CheckBox'\nexport * from './CheckBoxGroup'\nexport * from './Chip'\nexport * from './CurrencyInput'\nexport * from './Datepicker'\nexport * from './Divider'\nexport * from './Dropdown'\nexport * from './fields/Field'\nexport * from './fields/Fieldset'\nexport * from './fontStyle'\nexport * from './hooks'\nexport * from './Icon'\nexport * from './IconStrict'\nexport * from './IconWrapper'\nexport * from './LabelledText'\nexport * from './Link'\nexport * from './Loader'\nexport * from './Logo'\nexport * from './Modal'\nexport * from './NumberInput'\nexport * from './Pagination'\nexport * from './RadioGroup'\nexport * from './RichText'\nexport * from './RichTextEditor'\nexport * from './Row'\nexport * from './SearchInput'\nexport * from './SegmentedControl'\nexport * from './SliderInput'\nexport * from './Snackbar'\nexport * from './SupportMessage'\nexport * from './Table'\nexport * from './Tag'\nexport * from './Text'\nexport * from './Textarea'\nexport * from './TextDateOfBirthInput'\nexport * from './TextInput'\nexport * from './theme'\nexport * from './Toggle'\nexport * from './Tooltip'\nexport * from './utils/dateOfBirth/dateOfBirthValidator'\nexport * from './utils/dateOfBirth/dateOfBirthValidator.utils'\nexport * from './utils/dateOfBirth/schema'\nexport * from './utils/space'\n"]}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,aAAa,CAAA;AAC3B,cAAc,kBAAkB,CAAA;AAChC,cAAc,SAAS,CAAA;AACvB,cAAc,aAAa,CAAA;AAC3B,cAAc,UAAU,CAAA;AACxB,cAAc,OAAO,CAAA;AACrB,cAAc,UAAU,CAAA;AACxB,cAAc,QAAQ,CAAA;AACtB,cAAc,YAAY,CAAA;AAC1B,cAAc,iBAAiB,CAAA;AAC/B,cAAc,QAAQ,CAAA;AACtB,cAAc,iBAAiB,CAAA;AAC/B,cAAc,cAAc,CAAA;AAC5B,cAAc,WAAW,CAAA;AACzB,cAAc,YAAY,CAAA;AAC1B,cAAc,gBAAgB,CAAA;AAC9B,cAAc,mBAAmB,CAAA;AACjC,cAAc,aAAa,CAAA;AAC3B,cAAc,SAAS,CAAA;AACvB,cAAc,QAAQ,CAAA;AACtB,cAAc,cAAc,CAAA;AAC5B,cAAc,eAAe,CAAA;AAC7B,cAAc,gBAAgB,CAAA;AAC9B,cAAc,QAAQ,CAAA;AACtB,cAAc,UAAU,CAAA;AACxB,cAAc,QAAQ,CAAA;AACtB,cAAc,SAAS,CAAA;AACvB,cAAc,eAAe,CAAA;AAC7B,cAAc,cAAc,CAAA;AAC5B,cAAc,cAAc,CAAA;AAC5B,cAAc,YAAY,CAAA;AAC1B,cAAc,kBAAkB,CAAA;AAChC,cAAc,OAAO,CAAA;AACrB,cAAc,eAAe,CAAA;AAC7B,cAAc,oBAAoB,CAAA;AAClC,cAAc,eAAe,CAAA;AAC7B,cAAc,YAAY,CAAA;AAC1B,cAAc,kBAAkB,CAAA;AAChC,cAAc,SAAS,CAAA;AACvB,cAAc,OAAO,CAAA;AACrB,cAAc,QAAQ,CAAA;AACtB,cAAc,YAAY,CAAA;AAC1B,cAAc,wBAAwB,CAAA;AACtC,cAAc,aAAa,CAAA;AAC3B,cAAc,SAAS,CAAA;AACvB,cAAc,UAAU,CAAA;AACxB,cAAc,WAAW,CAAA;AACzB,cAAc,0CAA0C,CAAA;AACxD,cAAc,+CAA+C,CAAA;AAC7D,cAAc,4BAA4B,CAAA;AAC1C,cAAc,eAAe,CAAA","sourcesContent":["export * from './Accordion'\nexport * from './ActionDropdown'\nexport * from './Badge'\nexport * from './BadgeList'\nexport * from './Banner'\nexport * from './Box'\nexport * from './Button'\nexport * from './Card'\nexport * from './CheckBox'\nexport * from './CheckBoxGroup'\nexport * from './Chip'\nexport * from './CurrencyInput'\nexport * from './Datepicker'\nexport * from './Divider'\nexport * from './Dropdown'\nexport * from './fields/Field'\nexport * from './fields/Fieldset'\nexport * from './fontStyle'\nexport * from './hooks'\nexport * from './Icon'\nexport * from './IconStrict'\nexport * from './IconWrapper'\nexport * from './LabelledText'\nexport * from './Link'\nexport * from './Loader'\nexport * from './Logo'\nexport * from './Modal'\nexport * from './NumberInput'\nexport * from './Pagination'\nexport * from './RadioGroup'\nexport * from './RichText'\nexport * from './RichTextEditor'\nexport * from './Row'\nexport * from './SearchInput'\nexport * from './SegmentedControl'\nexport * from './SliderInput'\nexport * from './Snackbar'\nexport * from './SupportMessage'\nexport * from './Table'\nexport * from './Tag'\nexport * from './Text'\nexport * from './Textarea'\nexport * from './TextDateOfBirthInput'\nexport * from './TextInput'\nexport * from './theme'\nexport * from './Toggle'\nexport * from './Tooltip'\nexport * from './utils/dateOfBirth/dateOfBirthValidator'\nexport * from './utils/dateOfBirth/dateOfBirthValidatorUtils'\nexport * from './utils/dateOfBirth/schema'\nexport * from './utils/space'\n"]}
@@ -1,5 +1,5 @@
1
1
  import { isValid, parse } from 'date-fns';
2
- import { error, getImpossibleFields, getInvalidInputFields, getMissingFields, is17YearsOld, } from './dateOfBirthValidator.utils';
2
+ import { error, getImpossibleFields, getInvalidInputFields, getMissingFields, is17YearsOld, } from './dateOfBirthValidatorUtils';
3
3
  import { FieldValidationError, InputValidationError } from './schema';
4
4
  export const dateOfBirthValidator = (dateObject) => {
5
5
  const invalidFields = getInvalidInputFields(dateObject);
@@ -1 +1 @@
1
- {"version":3,"file":"dateOfBirthValidator.js","sourceRoot":"","sources":["../../../src/utils/dateOfBirth/dateOfBirthValidator.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,UAAU,CAAA;AAEzC,OAAO,EACL,KAAK,EACL,mBAAmB,EACnB,qBAAqB,EACrB,gBAAgB,EAChB,YAAY,GACb,MAAM,8BAA8B,CAAA;AACrC,OAAO,EAAE,oBAAoB,EAAE,oBAAoB,EAAE,MAAM,UAAU,CAAA;AAIrE,MAAM,CAAC,MAAM,oBAAoB,GAAG,CAAC,UAAsB,EAAE,EAAE;IAC7D,MAAM,aAAa,GAAG,qBAAqB,CAAC,UAAU,CAAC,CAAA;IAEvD,IAAI,aAAa,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAC/B,OAAO,KAAK,CAAC,oBAAoB,CAAC,sBAAsB,EAAE,aAAa,CAAC,CAAA;IAC1E,CAAC;IAED,MAAM,aAAa,GAAG,gBAAgB,CAAC,UAAU,CAAC,CAAA;IAElD,IAAI,aAAa,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAC/B,OAAO,KAAK,CAAC,oBAAoB,CAAC,iBAAiB,EAAE,aAAa,CAAC,CAAA;IACrE,CAAC;IAED,MAAM,gBAAgB,GAAG,mBAAmB,CAAC,UAAU,CAAC,CAAA;IAExD,IAAI,gBAAgB,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAClC,OAAO,KAAK,CACV,oBAAoB,CAAC,yBAAyB,EAC9C,gBAAgB,CACjB,CAAA;IACH,CAAC;IAED,MAAM,IAAI,GAAG,KAAK,CAChB,GAAG,UAAU,CAAC,IAAI,IAAI,UAAU,CAAC,KAAK,IAAI,UAAU,CAAC,GAAG,EAAE,EAC1D,YAAY,EACZ,IAAI,IAAI,EAAE,CACX,CAAA;IAED,IAAI,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC;QAClB,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,EAAE,CAAC;YACxB,OAAO,KAAK,CAAC,oBAAoB,CAAC,aAAa,CAAC,CAAA;QAClD,CAAC;QAED,IAAI,IAAI,CAAC,WAAW,EAAE,GAAG,IAAI,EAAE,CAAC;YAC9B,OAAO,KAAK,CAAC,oBAAoB,CAAC,mBAAmB,CAAC,CAAA;QACxD,CAAC;QACD,OAAO,EAAE,SAAS,EAAE,IAAI,EAAE,CAAA;IAC5B,CAAC;IACD,OAAO,KAAK,CAAC,oBAAoB,CAAC,aAAa,CAAC,CAAA;AAClD,CAAC,CAAA","sourcesContent":["import { isValid, parse } from 'date-fns'\n\nimport {\n error,\n getImpossibleFields,\n getInvalidInputFields,\n getMissingFields,\n is17YearsOld,\n} from './dateOfBirthValidator.utils'\nimport { FieldValidationError, InputValidationError } from './schema'\n\nimport { DateObject } from '../../TextDateOfBirthInput'\n\nexport const dateOfBirthValidator = (dateObject: DateObject) => {\n const invalidFields = getInvalidInputFields(dateObject)\n\n if (invalidFields.length !== 0) {\n return error(FieldValidationError.InvalidInputValueError, invalidFields)\n }\n\n const missingFields = getMissingFields(dateObject)\n\n if (missingFields.length !== 0) {\n return error(FieldValidationError.MissingFieldError, missingFields)\n }\n\n const impossibleValues = getImpossibleFields(dateObject)\n\n if (impossibleValues.length !== 0) {\n return error(\n FieldValidationError.ImpossibleFieldValueError,\n impossibleValues,\n )\n }\n\n const date = parse(\n `${dateObject.year}-${dateObject.month}-${dateObject.day}`,\n 'yyyy-MM-dd',\n new Date(),\n )\n\n if (isValid(date)) {\n if (!is17YearsOld(date)) {\n return error(InputValidationError.YoungerThan17)\n }\n\n if (date.getFullYear() < 1900) {\n return error(InputValidationError.DateBefore1900Error)\n }\n return { isSuccess: true }\n }\n return error(InputValidationError.RealDateError)\n}\n"]}
1
+ {"version":3,"file":"dateOfBirthValidator.js","sourceRoot":"","sources":["../../../src/utils/dateOfBirth/dateOfBirthValidator.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,UAAU,CAAA;AAEzC,OAAO,EACL,KAAK,EACL,mBAAmB,EACnB,qBAAqB,EACrB,gBAAgB,EAChB,YAAY,GACb,MAAM,6BAA6B,CAAA;AACpC,OAAO,EAAE,oBAAoB,EAAE,oBAAoB,EAAE,MAAM,UAAU,CAAA;AAIrE,MAAM,CAAC,MAAM,oBAAoB,GAAG,CAAC,UAAsB,EAAE,EAAE;IAC7D,MAAM,aAAa,GAAG,qBAAqB,CAAC,UAAU,CAAC,CAAA;IAEvD,IAAI,aAAa,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAC/B,OAAO,KAAK,CAAC,oBAAoB,CAAC,sBAAsB,EAAE,aAAa,CAAC,CAAA;IAC1E,CAAC;IAED,MAAM,aAAa,GAAG,gBAAgB,CAAC,UAAU,CAAC,CAAA;IAElD,IAAI,aAAa,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAC/B,OAAO,KAAK,CAAC,oBAAoB,CAAC,iBAAiB,EAAE,aAAa,CAAC,CAAA;IACrE,CAAC;IAED,MAAM,gBAAgB,GAAG,mBAAmB,CAAC,UAAU,CAAC,CAAA;IAExD,IAAI,gBAAgB,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAClC,OAAO,KAAK,CACV,oBAAoB,CAAC,yBAAyB,EAC9C,gBAAgB,CACjB,CAAA;IACH,CAAC;IAED,MAAM,IAAI,GAAG,KAAK,CAChB,GAAG,UAAU,CAAC,IAAI,IAAI,UAAU,CAAC,KAAK,IAAI,UAAU,CAAC,GAAG,EAAE,EAC1D,YAAY,EACZ,IAAI,IAAI,EAAE,CACX,CAAA;IAED,IAAI,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC;QAClB,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,EAAE,CAAC;YACxB,OAAO,KAAK,CAAC,oBAAoB,CAAC,aAAa,CAAC,CAAA;QAClD,CAAC;QAED,IAAI,IAAI,CAAC,WAAW,EAAE,GAAG,IAAI,EAAE,CAAC;YAC9B,OAAO,KAAK,CAAC,oBAAoB,CAAC,mBAAmB,CAAC,CAAA;QACxD,CAAC;QACD,OAAO,EAAE,SAAS,EAAE,IAAI,EAAE,CAAA;IAC5B,CAAC;IACD,OAAO,KAAK,CAAC,oBAAoB,CAAC,aAAa,CAAC,CAAA;AAClD,CAAC,CAAA","sourcesContent":["import { isValid, parse } from 'date-fns'\n\nimport {\n error,\n getImpossibleFields,\n getInvalidInputFields,\n getMissingFields,\n is17YearsOld,\n} from './dateOfBirthValidatorUtils'\nimport { FieldValidationError, InputValidationError } from './schema'\n\nimport { DateObject } from '../../TextDateOfBirthInput'\n\nexport const dateOfBirthValidator = (dateObject: DateObject) => {\n const invalidFields = getInvalidInputFields(dateObject)\n\n if (invalidFields.length !== 0) {\n return error(FieldValidationError.InvalidInputValueError, invalidFields)\n }\n\n const missingFields = getMissingFields(dateObject)\n\n if (missingFields.length !== 0) {\n return error(FieldValidationError.MissingFieldError, missingFields)\n }\n\n const impossibleValues = getImpossibleFields(dateObject)\n\n if (impossibleValues.length !== 0) {\n return error(\n FieldValidationError.ImpossibleFieldValueError,\n impossibleValues,\n )\n }\n\n const date = parse(\n `${dateObject.year}-${dateObject.month}-${dateObject.day}`,\n 'yyyy-MM-dd',\n new Date(),\n )\n\n if (isValid(date)) {\n if (!is17YearsOld(date)) {\n return error(InputValidationError.YoungerThan17)\n }\n\n if (date.getFullYear() < 1900) {\n return error(InputValidationError.DateBefore1900Error)\n }\n return { isSuccess: true }\n }\n return error(InputValidationError.RealDateError)\n}\n"]}
@@ -86,4 +86,4 @@ export const is17YearsOld = (date) => {
86
86
  const comparisonDate = subYears(new Date(), 17);
87
87
  return !isAfter(date, comparisonDate);
88
88
  };
89
- //# sourceMappingURL=dateOfBirthValidator.utils.js.map
89
+ //# sourceMappingURL=dateOfBirthValidatorUtils.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"dateOfBirthValidatorUtils.js","sourceRoot":"","sources":["../../../src/utils/dateOfBirth/dateOfBirthValidatorUtils.ts"],"names":[],"mappings":"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","sourcesContent":["import { isAfter, subYears } from 'date-fns'\n\nimport { DateObject } from '../../TextDateOfBirthInput'\n\nconst dateFields = ['day', 'month', 'year'] as const\n\nexport const monthsArray = [\n 'January',\n 'February',\n 'March',\n 'April',\n 'May',\n 'June',\n 'July',\n 'August',\n 'September',\n 'October',\n 'November',\n 'December',\n]\n\nexport const validators: Record<\n (typeof dateFields)[number],\n (dateField: string | undefined | null) => boolean\n> = {\n day: (day) => {\n const dayNumber = Number(day)\n return Boolean(day && dayNumber >= 1 && dayNumber <= 31)\n },\n month: (month) => {\n const monthNumber = Number(month)\n return Boolean(month && monthNumber >= 1 && monthNumber <= 12)\n },\n year: (year) => {\n const yearNumber = Number(year)\n return Boolean(year && yearNumber && year.length === 4 && yearNumber > 0)\n },\n}\n\nexport const isAllowedValue = (value: string | null | undefined) => {\n return value === null || (value && /^\\d+$/.test(value)) || value === ''\n}\n\nexport const getInvalidInputFields = (dateObject: DateObject) => {\n const invalidValues = dateFields.filter((field) => {\n const value = dateObject[field]\n return !isAllowedValue(value)\n })\n\n return invalidValues\n}\n\nexport const getMissingFields = (dateObject: DateObject) => {\n const missingFields = dateFields.filter((field) => {\n return !dateObject[field]\n })\n\n return missingFields\n}\n\nexport const getImpossibleFields = (dateObject: DateObject) => {\n const impossibleValues = dateFields.filter((field) => {\n return !validators[field](dateObject[field])\n })\n\n return impossibleValues\n}\n\nexport const humanReadableJoin = (arr: string[]): string => {\n if (arr.length === 0) {\n return ''\n } else if (arr.length === 1) {\n return arr[0]\n } else if (arr.length === 2) {\n return `${arr[0]} and ${arr[1]}`\n } else {\n const last = arr.pop()\n return `${arr.join(', ')} and ${last}`\n }\n}\n\nexport const createMissingFieldErrorMessage = (missingFields: string[]) => {\n const beginning = 'Date of birth must include '\n const orderedMissingFields = ['day', 'month', 'year'].filter((field) =>\n missingFields.includes(field),\n )\n\n return beginning + humanReadableJoin(orderedMissingFields)\n}\n\nexport const createImpossibleFieldErrorMessage = (\n impossibleFields: string[],\n) => {\n const beginning = 'Please enter a valid '\n const orderedImpossibleFields = ['day', 'month', 'year'].filter((field) =>\n impossibleFields.includes(field),\n )\n\n return beginning + humanReadableJoin(orderedImpossibleFields)\n}\n\nexport const createYoungerThan17ErrorMessage = () => {\n const comparisonDate = subYears(new Date(), 17)\n\n return `Please enter a date of birth on or before ${comparisonDate.getDate()} ${monthsArray[comparisonDate.getMonth()]} ${comparisonDate.getFullYear()}`\n}\n\nexport const error = <T>(\n type: T,\n fields?: string[],\n): {\n error: T\n fields?: string[]\n} => {\n return { error: type, fields }\n}\n\nexport const is17YearsOld = (date: Date) => {\n const comparisonDate = subYears(new Date(), 17)\n\n return !isAfter(date, comparisonDate)\n}\n"]}
@@ -1,4 +1,4 @@
1
- import { createImpossibleFieldErrorMessage, createMissingFieldErrorMessage, createYoungerThan17ErrorMessage, } from './dateOfBirthValidator.utils';
1
+ import { createImpossibleFieldErrorMessage, createMissingFieldErrorMessage, createYoungerThan17ErrorMessage, } from './dateOfBirthValidatorUtils';
2
2
  export var InputValidationError;
3
3
  (function (InputValidationError) {
4
4
  InputValidationError["RealDateError"] = "realDateError";
@@ -1 +1 @@
1
- {"version":3,"file":"schema.js","sourceRoot":"","sources":["../../../src/utils/dateOfBirth/schema.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,iCAAiC,EACjC,8BAA8B,EAC9B,+BAA+B,GAChC,MAAM,8BAA8B,CAAA;AAErC,MAAM,CAAN,IAAY,oBAIX;AAJD,WAAY,oBAAoB;IAC9B,uDAA+B,CAAA;IAC/B,mEAA2C,CAAA;IAC3C,uDAA+B,CAAA;AACjC,CAAC,EAJW,oBAAoB,KAApB,oBAAoB,QAI/B;AAED,MAAM,CAAN,IAAY,oBAIX;AAJD,WAAY,oBAAoB;IAC9B,+DAAuC,CAAA;IACvC,yEAAiD,CAAA;IACjD,+EAAuD,CAAA;AACzD,CAAC,EAJW,oBAAoB,KAApB,oBAAoB,QAI/B;AAED,MAAM,CAAC,MAAM,wBAAwB,GAGjC;IACF,CAAC,oBAAoB,CAAC,aAAa,CAAC,EAAE,GAAG,EAAE,CACzC,oCAAoC;IACtC,CAAC,oBAAoB,CAAC,mBAAmB,CAAC,EAAE,GAAG,EAAE,CAC/C,yCAAyC;IAC3C,CAAC,oBAAoB,CAAC,iBAAiB,CAAC,EAAE,8BAA8B;IACxE,CAAC,oBAAoB,CAAC,sBAAsB,CAAC,EAAE,GAAG,EAAE,CAClD,8BAA8B;IAChC,CAAC,oBAAoB,CAAC,yBAAyB,CAAC,EAC9C,iCAAiC;IACnC,CAAC,oBAAoB,CAAC,aAAa,CAAC,EAAE,+BAA+B;CACtE,CAAA","sourcesContent":["import {\n createImpossibleFieldErrorMessage,\n createMissingFieldErrorMessage,\n createYoungerThan17ErrorMessage,\n} from './dateOfBirthValidator.utils'\n\nexport enum InputValidationError {\n RealDateError = 'realDateError',\n DateBefore1900Error = 'dateBefore1900Error',\n YoungerThan17 = 'youngerThan17',\n}\n\nexport enum FieldValidationError {\n MissingFieldError = 'missingFieldError',\n InvalidInputValueError = 'invalidInputValueError',\n ImpossibleFieldValueError = 'impossibleFieldValueError',\n}\n\nexport const dateOfBirthErrorMessages: Record<\n InputValidationError | FieldValidationError,\n (value: string[]) => string\n> = {\n [InputValidationError.RealDateError]: () =>\n 'Please enter a valid date of birth',\n [InputValidationError.DateBefore1900Error]: () =>\n 'Please enter a date of birth after 1900',\n [FieldValidationError.MissingFieldError]: createMissingFieldErrorMessage,\n [FieldValidationError.InvalidInputValueError]: () =>\n 'Please enter a numeric value',\n [FieldValidationError.ImpossibleFieldValueError]:\n createImpossibleFieldErrorMessage,\n [InputValidationError.YoungerThan17]: createYoungerThan17ErrorMessage,\n}\n"]}
1
+ {"version":3,"file":"schema.js","sourceRoot":"","sources":["../../../src/utils/dateOfBirth/schema.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,iCAAiC,EACjC,8BAA8B,EAC9B,+BAA+B,GAChC,MAAM,6BAA6B,CAAA;AAEpC,MAAM,CAAN,IAAY,oBAIX;AAJD,WAAY,oBAAoB;IAC9B,uDAA+B,CAAA;IAC/B,mEAA2C,CAAA;IAC3C,uDAA+B,CAAA;AACjC,CAAC,EAJW,oBAAoB,KAApB,oBAAoB,QAI/B;AAED,MAAM,CAAN,IAAY,oBAIX;AAJD,WAAY,oBAAoB;IAC9B,+DAAuC,CAAA;IACvC,yEAAiD,CAAA;IACjD,+EAAuD,CAAA;AACzD,CAAC,EAJW,oBAAoB,KAApB,oBAAoB,QAI/B;AAED,MAAM,CAAC,MAAM,wBAAwB,GAGjC;IACF,CAAC,oBAAoB,CAAC,aAAa,CAAC,EAAE,GAAG,EAAE,CACzC,oCAAoC;IACtC,CAAC,oBAAoB,CAAC,mBAAmB,CAAC,EAAE,GAAG,EAAE,CAC/C,yCAAyC;IAC3C,CAAC,oBAAoB,CAAC,iBAAiB,CAAC,EAAE,8BAA8B;IACxE,CAAC,oBAAoB,CAAC,sBAAsB,CAAC,EAAE,GAAG,EAAE,CAClD,8BAA8B;IAChC,CAAC,oBAAoB,CAAC,yBAAyB,CAAC,EAC9C,iCAAiC;IACnC,CAAC,oBAAoB,CAAC,aAAa,CAAC,EAAE,+BAA+B;CACtE,CAAA","sourcesContent":["import {\n createImpossibleFieldErrorMessage,\n createMissingFieldErrorMessage,\n createYoungerThan17ErrorMessage,\n} from './dateOfBirthValidatorUtils'\n\nexport enum InputValidationError {\n RealDateError = 'realDateError',\n DateBefore1900Error = 'dateBefore1900Error',\n YoungerThan17 = 'youngerThan17',\n}\n\nexport enum FieldValidationError {\n MissingFieldError = 'missingFieldError',\n InvalidInputValueError = 'invalidInputValueError',\n ImpossibleFieldValueError = 'impossibleFieldValueError',\n}\n\nexport const dateOfBirthErrorMessages: Record<\n InputValidationError | FieldValidationError,\n (value: string[]) => string\n> = {\n [InputValidationError.RealDateError]: () =>\n 'Please enter a valid date of birth',\n [InputValidationError.DateBefore1900Error]: () =>\n 'Please enter a date of birth after 1900',\n [FieldValidationError.MissingFieldError]: createMissingFieldErrorMessage,\n [FieldValidationError.InvalidInputValueError]: () =>\n 'Please enter a numeric value',\n [FieldValidationError.ImpossibleFieldValueError]:\n createImpossibleFieldErrorMessage,\n [InputValidationError.YoungerThan17]: createYoungerThan17ErrorMessage,\n}\n"]}
package/package.json CHANGED
@@ -1,7 +1,14 @@
1
1
  {
2
2
  "name": "@mrshmllw/smores-react",
3
- "version": "11.0.0",
3
+ "version": "11.0.1-crumbs-feature-adjust-package.2",
4
4
  "main": "./dist/index.js",
5
+ "module": "./dist/index.js",
6
+ "types": "./dist/index.d.ts",
7
+ "exports": {
8
+ ".": {
9
+ "import": "./dist/index.js"
10
+ }
11
+ },
5
12
  "description": "Collection of React components used by Marshmallow Technology",
6
13
  "type": "module",
7
14
  "keywords": [
@@ -41,7 +48,7 @@
41
48
  "@semantic-release/git": "^10.0.1",
42
49
  "@semantic-release/github": "^11.0.1",
43
50
  "@semantic-release/npm": "^12.0.0",
44
- "@snyk/protect": "^1.1295.2",
51
+ "@snyk/protect": "^1.1295.3",
45
52
  "@storybook/addon-a11y": "^8.4.7",
46
53
  "@storybook/addon-coverage": "^1.0.5",
47
54
  "@storybook/addon-essentials": "^8.4.7",
@@ -55,14 +62,14 @@
55
62
  "@testing-library/react": "^16.2.0",
56
63
  "@types/body-scroll-lock": "^3.1.0",
57
64
  "@types/dompurify": "^3.2.0",
58
- "@types/node": "^22.13.1",
65
+ "@types/node": "^22.13.2",
59
66
  "@types/react": "^19.0.8",
60
67
  "@types/react-dom": "^19.0.3",
61
68
  "@typescript-eslint/eslint-plugin": "^8.23.0",
62
69
  "@typescript-eslint/parser": "^8.23.0",
63
- "axe-playwright": "^2.0.3",
70
+ "axe-playwright": "^2.1.0",
64
71
  "conventional-changelog-conventionalcommits": "^8.0.0",
65
- "eslint": "^9.19.0",
72
+ "eslint": "^9.20.1",
66
73
  "eslint-config-prettier": "^10.0.1",
67
74
  "eslint-plugin-prettier": "^5.2.3",
68
75
  "eslint-plugin-react": "^7.37.4",
@@ -71,26 +78,26 @@
71
78
  "jsdom": "^26.0.0",
72
79
  "lint-staged": "^15.4.3",
73
80
  "playwright": "^1.50.1",
74
- "prettier": "^3.4.2",
81
+ "prettier": "^3.5.0",
75
82
  "react": "^19.0.0",
76
83
  "react-dom": "^19.0.0",
77
84
  "rimraf": "^6.0.1",
78
- "semantic-release": "^24.2.1",
85
+ "semantic-release": "^24.2.2",
79
86
  "storybook": "^8.0.4",
80
- "styled-components": "^6.1.14",
87
+ "styled-components": "^6.1.15",
81
88
  "typescript": "^5.7.3",
82
- "typescript-eslint": "^8.23.0",
83
- "vite": "^6.0.11",
89
+ "typescript-eslint": "^8.24.0",
90
+ "vite": "^6.1.0",
84
91
  "vitest": "^3.0.5"
85
92
  },
86
93
  "dependencies": {
87
- "@floating-ui/react": "0.27.3",
88
- "@lexical/react": "^0.23.1",
94
+ "@floating-ui/react": "0.27.4",
95
+ "@lexical/react": "^0.24.0",
89
96
  "body-scroll-lock": "^4.0.0-beta.0",
90
97
  "date-fns": "^4.1.0",
91
98
  "dompurify": "^3.2.4",
92
99
  "fuse.js": "^7.1.0",
93
- "lexical": "^0.23.0",
100
+ "lexical": "^0.24.0",
94
101
  "polished": "^4.1.3"
95
102
  },
96
103
  "peerDependencies": {
@@ -1 +0,0 @@
1
- {"version":3,"file":"dateOfBirthValidator.utils.js","sourceRoot":"","sources":["../../../src/utils/dateOfBirth/dateOfBirthValidator.utils.ts"],"names":[],"mappings":"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","sourcesContent":["import { isAfter, subYears } from 'date-fns'\n\nimport { DateObject } from '../../TextDateOfBirthInput'\n\nconst dateFields = ['day', 'month', 'year'] as const\n\nexport const monthsArray = [\n 'January',\n 'February',\n 'March',\n 'April',\n 'May',\n 'June',\n 'July',\n 'August',\n 'September',\n 'October',\n 'November',\n 'December',\n]\n\nexport const validators: Record<\n (typeof dateFields)[number],\n (dateField: string | undefined | null) => boolean\n> = {\n day: (day) => {\n const dayNumber = Number(day)\n return Boolean(day && dayNumber >= 1 && dayNumber <= 31)\n },\n month: (month) => {\n const monthNumber = Number(month)\n return Boolean(month && monthNumber >= 1 && monthNumber <= 12)\n },\n year: (year) => {\n const yearNumber = Number(year)\n return Boolean(year && yearNumber && year.length === 4 && yearNumber > 0)\n },\n}\n\nexport const isAllowedValue = (value: string | null | undefined) => {\n return value === null || (value && /^\\d+$/.test(value)) || value === ''\n}\n\nexport const getInvalidInputFields = (dateObject: DateObject) => {\n const invalidValues = dateFields.filter((field) => {\n const value = dateObject[field]\n return !isAllowedValue(value)\n })\n\n return invalidValues\n}\n\nexport const getMissingFields = (dateObject: DateObject) => {\n const missingFields = dateFields.filter((field) => {\n return !dateObject[field]\n })\n\n return missingFields\n}\n\nexport const getImpossibleFields = (dateObject: DateObject) => {\n const impossibleValues = dateFields.filter((field) => {\n return !validators[field](dateObject[field])\n })\n\n return impossibleValues\n}\n\nexport const humanReadableJoin = (arr: string[]): string => {\n if (arr.length === 0) {\n return ''\n } else if (arr.length === 1) {\n return arr[0]\n } else if (arr.length === 2) {\n return `${arr[0]} and ${arr[1]}`\n } else {\n const last = arr.pop()\n return `${arr.join(', ')} and ${last}`\n }\n}\n\nexport const createMissingFieldErrorMessage = (missingFields: string[]) => {\n const beginning = 'Date of birth must include '\n const orderedMissingFields = ['day', 'month', 'year'].filter((field) =>\n missingFields.includes(field),\n )\n\n return beginning + humanReadableJoin(orderedMissingFields)\n}\n\nexport const createImpossibleFieldErrorMessage = (\n impossibleFields: string[],\n) => {\n const beginning = 'Please enter a valid '\n const orderedImpossibleFields = ['day', 'month', 'year'].filter((field) =>\n impossibleFields.includes(field),\n )\n\n return beginning + humanReadableJoin(orderedImpossibleFields)\n}\n\nexport const createYoungerThan17ErrorMessage = () => {\n const comparisonDate = subYears(new Date(), 17)\n\n return `Please enter a date of birth on or before ${comparisonDate.getDate()} ${monthsArray[comparisonDate.getMonth()]} ${comparisonDate.getFullYear()}`\n}\n\nexport const error = <T>(\n type: T,\n fields?: string[],\n): {\n error: T\n fields?: string[]\n} => {\n return { error: type, fields }\n}\n\nexport const is17YearsOld = (date: Date) => {\n const comparisonDate = subYears(new Date(), 17)\n\n return !isAfter(date, comparisonDate)\n}\n"]}