@lets-events/react 12.8.1 → 12.8.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.
@@ -1,6 +1,6 @@
1
1
 
2
2
 
3
- > @lets-events/react@12.8.1 build
3
+ > @lets-events/react@12.8.2 build
4
4
  > tsup src/index.tsx --format esm,cjs --dts --external react
5
5
 
6
6
  CLI Building entry: src/index.tsx
@@ -10,12 +10,12 @@
10
10
  CLI Target: es6
11
11
  ESM Build start
12
12
  CJS Build start
13
- ESM dist/index.mjs 394.44 KB
14
- ESM ⚡️ Build success in 296ms
15
- CJS dist/index.js 409.79 KB
16
- CJS ⚡️ Build success in 296ms
13
+ CJS dist/index.js 410.67 KB
14
+ CJS ⚡️ Build success in 289ms
15
+ ESM dist/index.mjs 395.31 KB
16
+ ESM ⚡️ Build success in 291ms
17
17
  DTS Build start
18
- DTS ⚡️ Build success in 6147ms
19
- DTS dist/index.d.mts 403.74 KB
20
- DTS dist/index.d.ts 403.74 KB
18
+ DTS ⚡️ Build success in 6018ms
19
+ DTS dist/index.d.mts 403.89 KB
20
+ DTS dist/index.d.ts 403.89 KB
21
21
  ⠙
package/CHANGELOG.md CHANGED
@@ -1,5 +1,11 @@
1
1
  # @lets-events/react
2
2
 
3
+ ## 12.8.2
4
+
5
+ ### Patch Changes
6
+
7
+ - Calendar maxDate propo
8
+
3
9
  ## 12.8.1
4
10
 
5
11
  ### Patch Changes
package/dist/index.d.mts CHANGED
@@ -4725,9 +4725,10 @@ type CalendarProps = ComponentProps<typeof CalendarStyled> & {
4725
4725
  hasError?: boolean;
4726
4726
  expand?: boolean;
4727
4727
  allowPastDates?: boolean;
4728
+ maxDate?: Date;
4728
4729
  maxYearsFromNow?: number;
4729
4730
  };
4730
- declare function Calendar({ action, actionText, calendarLayout, selected, setSelected, position, hasError, expand, allowPastDates, maxYearsFromNow, ...props }: CalendarProps): react_jsx_runtime.JSX.Element;
4731
+ declare function Calendar({ action, actionText, calendarLayout, selected, setSelected, position, hasError, expand, allowPastDates, maxDate, maxYearsFromNow, ...props }: CalendarProps): react_jsx_runtime.JSX.Element;
4731
4732
 
4732
4733
  type DateRange = {
4733
4734
  from?: Date;
@@ -4744,9 +4745,10 @@ type DoubleCalendarProps = ComponentProps<typeof CalendarStyled> & {
4744
4745
  expand?: boolean;
4745
4746
  allowPastDates?: boolean;
4746
4747
  maxYearsFromNow?: number;
4748
+ maxDate?: Date;
4747
4749
  disabled?: boolean;
4748
4750
  };
4749
- declare function DoubleCalendar({ action, actionText, calendarLayout, selected, setSelected, position, hasError, expand, allowPastDates, maxYearsFromNow, disabled, ...props }: DoubleCalendarProps): react_jsx_runtime.JSX.Element;
4751
+ declare function DoubleCalendar({ action, actionText, calendarLayout, selected, setSelected, position, hasError, expand, allowPastDates, maxYearsFromNow, maxDate, disabled, ...props }: DoubleCalendarProps): react_jsx_runtime.JSX.Element;
4750
4752
 
4751
4753
  declare const DrawerOverlayStyled: _stitches_react_types_styled_component.StyledComponent<"div", {
4752
4754
  open?: boolean | "false" | "true" | undefined;
@@ -15325,8 +15327,9 @@ type CalendarFormFieldProps = Omit<CalendarProps, "selected" | "setSelected"> &
15325
15327
  rules?: Omit<RegisterOptions<FieldValues, string>, "valueAsNumber" | "valueAsDate" | "setValueAs" | "disabled">;
15326
15328
  allowPastDates?: boolean;
15327
15329
  maxYearsFromNow?: number;
15330
+ maxDate?: Date;
15328
15331
  };
15329
- declare const CalendarFormField: ({ name, label, required, validate, validationErrorMessage, rules, onChange, allowPastDates, maxYearsFromNow, ...calendarProps }: CalendarFormFieldProps) => react_jsx_runtime.JSX.Element;
15332
+ declare const CalendarFormField: ({ name, label, required, validate, validationErrorMessage, rules, onChange, allowPastDates, maxYearsFromNow, maxDate, ...calendarProps }: CalendarFormFieldProps) => react_jsx_runtime.JSX.Element;
15330
15333
 
15331
15334
  type DoubleCalendarFormFieldProps = Omit<DoubleCalendarProps, "selected" | "setSelected"> & {
15332
15335
  name: string;
@@ -15338,8 +15341,9 @@ type DoubleCalendarFormFieldProps = Omit<DoubleCalendarProps, "selected" | "setS
15338
15341
  disabled?: boolean;
15339
15342
  allowPastDates?: boolean;
15340
15343
  maxYearsFromNow?: number;
15344
+ maxDate?: Date;
15341
15345
  };
15342
- declare const DoubleCalendarFormField: ({ name, label, required, validate, validationErrorMessage, rules, allowPastDates, maxYearsFromNow, disabled, ...calendarProps }: DoubleCalendarFormFieldProps) => react_jsx_runtime.JSX.Element;
15346
+ declare const DoubleCalendarFormField: ({ name, label, required, validate, validationErrorMessage, rules, allowPastDates, maxYearsFromNow, maxDate, disabled, ...calendarProps }: DoubleCalendarFormFieldProps) => react_jsx_runtime.JSX.Element;
15343
15347
 
15344
15348
  type TimePickerFormFieldProps = Omit<TimePickerProps, "selected" | "setSelected"> & {
15345
15349
  name: string;
@@ -15360,8 +15364,9 @@ type DateAndTimeFormFieldProps = Omit<CalendarProps, "selected" | "setSelected">
15360
15364
  rules?: Omit<RegisterOptions<FieldValues, string>, "valueAsNumber" | "valueAsDate" | "setValueAs" | "disabled">;
15361
15365
  allowPastDates?: boolean;
15362
15366
  maxYearsFromNow?: number;
15367
+ maxDate?: Date;
15363
15368
  };
15364
- declare const DateAndTimeFormField: ({ name, label, required, validate, validationErrorMessage, rules, allowPastDates, maxYearsFromNow, ...props }: DateAndTimeFormFieldProps) => react_jsx_runtime.JSX.Element;
15369
+ declare const DateAndTimeFormField: ({ name, label, required, validate, validationErrorMessage, rules, allowPastDates, maxYearsFromNow, maxDate, ...props }: DateAndTimeFormFieldProps) => react_jsx_runtime.JSX.Element;
15365
15370
 
15366
15371
  interface UploadConfig {
15367
15372
  apiUrl: string;
package/dist/index.d.ts CHANGED
@@ -4725,9 +4725,10 @@ type CalendarProps = ComponentProps<typeof CalendarStyled> & {
4725
4725
  hasError?: boolean;
4726
4726
  expand?: boolean;
4727
4727
  allowPastDates?: boolean;
4728
+ maxDate?: Date;
4728
4729
  maxYearsFromNow?: number;
4729
4730
  };
4730
- declare function Calendar({ action, actionText, calendarLayout, selected, setSelected, position, hasError, expand, allowPastDates, maxYearsFromNow, ...props }: CalendarProps): react_jsx_runtime.JSX.Element;
4731
+ declare function Calendar({ action, actionText, calendarLayout, selected, setSelected, position, hasError, expand, allowPastDates, maxDate, maxYearsFromNow, ...props }: CalendarProps): react_jsx_runtime.JSX.Element;
4731
4732
 
4732
4733
  type DateRange = {
4733
4734
  from?: Date;
@@ -4744,9 +4745,10 @@ type DoubleCalendarProps = ComponentProps<typeof CalendarStyled> & {
4744
4745
  expand?: boolean;
4745
4746
  allowPastDates?: boolean;
4746
4747
  maxYearsFromNow?: number;
4748
+ maxDate?: Date;
4747
4749
  disabled?: boolean;
4748
4750
  };
4749
- declare function DoubleCalendar({ action, actionText, calendarLayout, selected, setSelected, position, hasError, expand, allowPastDates, maxYearsFromNow, disabled, ...props }: DoubleCalendarProps): react_jsx_runtime.JSX.Element;
4751
+ declare function DoubleCalendar({ action, actionText, calendarLayout, selected, setSelected, position, hasError, expand, allowPastDates, maxYearsFromNow, maxDate, disabled, ...props }: DoubleCalendarProps): react_jsx_runtime.JSX.Element;
4750
4752
 
4751
4753
  declare const DrawerOverlayStyled: _stitches_react_types_styled_component.StyledComponent<"div", {
4752
4754
  open?: boolean | "false" | "true" | undefined;
@@ -15325,8 +15327,9 @@ type CalendarFormFieldProps = Omit<CalendarProps, "selected" | "setSelected"> &
15325
15327
  rules?: Omit<RegisterOptions<FieldValues, string>, "valueAsNumber" | "valueAsDate" | "setValueAs" | "disabled">;
15326
15328
  allowPastDates?: boolean;
15327
15329
  maxYearsFromNow?: number;
15330
+ maxDate?: Date;
15328
15331
  };
15329
- declare const CalendarFormField: ({ name, label, required, validate, validationErrorMessage, rules, onChange, allowPastDates, maxYearsFromNow, ...calendarProps }: CalendarFormFieldProps) => react_jsx_runtime.JSX.Element;
15332
+ declare const CalendarFormField: ({ name, label, required, validate, validationErrorMessage, rules, onChange, allowPastDates, maxYearsFromNow, maxDate, ...calendarProps }: CalendarFormFieldProps) => react_jsx_runtime.JSX.Element;
15330
15333
 
15331
15334
  type DoubleCalendarFormFieldProps = Omit<DoubleCalendarProps, "selected" | "setSelected"> & {
15332
15335
  name: string;
@@ -15338,8 +15341,9 @@ type DoubleCalendarFormFieldProps = Omit<DoubleCalendarProps, "selected" | "setS
15338
15341
  disabled?: boolean;
15339
15342
  allowPastDates?: boolean;
15340
15343
  maxYearsFromNow?: number;
15344
+ maxDate?: Date;
15341
15345
  };
15342
- declare const DoubleCalendarFormField: ({ name, label, required, validate, validationErrorMessage, rules, allowPastDates, maxYearsFromNow, disabled, ...calendarProps }: DoubleCalendarFormFieldProps) => react_jsx_runtime.JSX.Element;
15346
+ declare const DoubleCalendarFormField: ({ name, label, required, validate, validationErrorMessage, rules, allowPastDates, maxYearsFromNow, maxDate, disabled, ...calendarProps }: DoubleCalendarFormFieldProps) => react_jsx_runtime.JSX.Element;
15343
15347
 
15344
15348
  type TimePickerFormFieldProps = Omit<TimePickerProps, "selected" | "setSelected"> & {
15345
15349
  name: string;
@@ -15360,8 +15364,9 @@ type DateAndTimeFormFieldProps = Omit<CalendarProps, "selected" | "setSelected">
15360
15364
  rules?: Omit<RegisterOptions<FieldValues, string>, "valueAsNumber" | "valueAsDate" | "setValueAs" | "disabled">;
15361
15365
  allowPastDates?: boolean;
15362
15366
  maxYearsFromNow?: number;
15367
+ maxDate?: Date;
15363
15368
  };
15364
- declare const DateAndTimeFormField: ({ name, label, required, validate, validationErrorMessage, rules, allowPastDates, maxYearsFromNow, ...props }: DateAndTimeFormFieldProps) => react_jsx_runtime.JSX.Element;
15369
+ declare const DateAndTimeFormField: ({ name, label, required, validate, validationErrorMessage, rules, allowPastDates, maxYearsFromNow, maxDate, ...props }: DateAndTimeFormFieldProps) => react_jsx_runtime.JSX.Element;
15365
15370
 
15366
15371
  interface UploadConfig {
15367
15372
  apiUrl: string;
package/dist/index.js CHANGED
@@ -8101,7 +8101,8 @@ function Calendar(_a) {
8101
8101
  hasError,
8102
8102
  expand,
8103
8103
  allowPastDates = false,
8104
- maxYearsFromNow = 20
8104
+ maxDate,
8105
+ maxYearsFromNow
8105
8106
  } = _b, props = __objRest(_b, [
8106
8107
  "action",
8107
8108
  "actionText",
@@ -8112,6 +8113,7 @@ function Calendar(_a) {
8112
8113
  "hasError",
8113
8114
  "expand",
8114
8115
  "allowPastDates",
8116
+ "maxDate",
8115
8117
  "maxYearsFromNow"
8116
8118
  ]);
8117
8119
  const [inputValue, setInputValue] = (0, import_react8.useState)("");
@@ -8121,7 +8123,14 @@ function Calendar(_a) {
8121
8123
  setShowCalendar(false);
8122
8124
  });
8123
8125
  const today = /* @__PURE__ */ new Date();
8124
- const maxDate = addYears(today, maxYearsFromNow);
8126
+ const resolvedMaxDate = maxDate != null ? maxDate : typeof maxYearsFromNow === "number" ? addYears(today, maxYearsFromNow) : void 0;
8127
+ const disabledDays = [];
8128
+ if (!allowPastDates) {
8129
+ disabledDays.push({ before: today });
8130
+ }
8131
+ if (resolvedMaxDate) {
8132
+ disabledDays.push({ after: resolvedMaxDate });
8133
+ }
8125
8134
  (0, import_react8.useEffect)(() => {
8126
8135
  if (selected) {
8127
8136
  setInputValue(format2(selected, "dd/MM/yyyy"));
@@ -8138,6 +8147,10 @@ function Calendar(_a) {
8138
8147
  console.warn("Datas passadas n\xE3o s\xE3o permitidas:", masked);
8139
8148
  return;
8140
8149
  }
8150
+ if (resolvedMaxDate && parsed > resolvedMaxDate) {
8151
+ console.warn("Data maior que o limite m\xE1ximo permitido:", masked);
8152
+ return;
8153
+ }
8141
8154
  setSelected(parsed);
8142
8155
  } else {
8143
8156
  console.warn("Data inv\xE1lida inserida no input:", masked);
@@ -8175,9 +8188,9 @@ function Calendar(_a) {
8175
8188
  onSelect: setSelected,
8176
8189
  required: true,
8177
8190
  locale: ptBR,
8178
- disabled: allowPastDates ? void 0 : { before: today },
8191
+ disabled: disabledDays.length > 0 ? disabledDays : void 0,
8179
8192
  startMonth: allowPastDates ? void 0 : today,
8180
- endMonth: maxDate
8193
+ endMonth: resolvedMaxDate
8181
8194
  }
8182
8195
  ) }) }),
8183
8196
  action && /* @__PURE__ */ (0, import_jsx_runtime15.jsx)(CalendarFooterStyled, { children: /* @__PURE__ */ (0, import_jsx_runtime15.jsx)(
@@ -8214,6 +8227,7 @@ function DoubleCalendar(_a) {
8214
8227
  expand,
8215
8228
  allowPastDates = false,
8216
8229
  maxYearsFromNow = 20,
8230
+ maxDate,
8217
8231
  disabled = false
8218
8232
  } = _b, props = __objRest(_b, [
8219
8233
  "action",
@@ -8226,6 +8240,7 @@ function DoubleCalendar(_a) {
8226
8240
  "expand",
8227
8241
  "allowPastDates",
8228
8242
  "maxYearsFromNow",
8243
+ "maxDate",
8229
8244
  "disabled"
8230
8245
  ]);
8231
8246
  const [startValue, setStartValue] = (0, import_react9.useState)("");
@@ -8237,7 +8252,14 @@ function DoubleCalendar(_a) {
8237
8252
  setShowCalendar(false);
8238
8253
  });
8239
8254
  const today = /* @__PURE__ */ new Date();
8240
- const maxDate = addYears(today, maxYearsFromNow);
8255
+ const resolvedMaxDate = maxDate != null ? maxDate : typeof maxYearsFromNow === "number" ? addYears(today, maxYearsFromNow) : void 0;
8256
+ const disabledDays = [];
8257
+ if (!allowPastDates) {
8258
+ disabledDays.push({ before: today });
8259
+ }
8260
+ if (resolvedMaxDate) {
8261
+ disabledDays.push({ after: resolvedMaxDate });
8262
+ }
8241
8263
  (0, import_react9.useEffect)(() => {
8242
8264
  if (selected && selected.from) {
8243
8265
  setStartValue(format2(selected.from, "dd/MM/yyyy"));
@@ -8289,9 +8311,9 @@ function DoubleCalendar(_a) {
8289
8311
  onSelect: setSelected,
8290
8312
  required: true,
8291
8313
  locale: ptBR,
8292
- disabled: allowPastDates ? void 0 : { before: today },
8314
+ disabled: disabledDays.length > 0 ? disabledDays : void 0,
8293
8315
  fromMonth: allowPastDates ? void 0 : today,
8294
- toMonth: maxDate
8316
+ toMonth: resolvedMaxDate
8295
8317
  }
8296
8318
  ) }) }),
8297
8319
  action && /* @__PURE__ */ (0, import_jsx_runtime16.jsxs)(CalendarFooterStyled, { children: [
@@ -13066,7 +13088,8 @@ var CalendarFormField = (_a) => {
13066
13088
  rules,
13067
13089
  onChange,
13068
13090
  allowPastDates,
13069
- maxYearsFromNow = 20
13091
+ maxYearsFromNow = 20,
13092
+ maxDate
13070
13093
  } = _b, calendarProps = __objRest(_b, [
13071
13094
  "name",
13072
13095
  "label",
@@ -13076,7 +13099,8 @@ var CalendarFormField = (_a) => {
13076
13099
  "rules",
13077
13100
  "onChange",
13078
13101
  "allowPastDates",
13079
- "maxYearsFromNow"
13102
+ "maxYearsFromNow",
13103
+ "maxDate"
13080
13104
  ]);
13081
13105
  const handleValidate = (0, import_react25.useCallback)(
13082
13106
  (value) => {
@@ -13124,6 +13148,7 @@ var CalendarFormField = (_a) => {
13124
13148
  },
13125
13149
  hasError: haveError,
13126
13150
  allowPastDates,
13151
+ maxDate,
13127
13152
  maxYearsFromNow
13128
13153
  }, calendarProps)
13129
13154
  ),
@@ -13145,6 +13170,7 @@ var DoubleCalendarFormField = (_a) => {
13145
13170
  rules,
13146
13171
  allowPastDates,
13147
13172
  maxYearsFromNow = 20,
13173
+ maxDate,
13148
13174
  disabled
13149
13175
  } = _b, calendarProps = __objRest(_b, [
13150
13176
  "name",
@@ -13155,6 +13181,7 @@ var DoubleCalendarFormField = (_a) => {
13155
13181
  "rules",
13156
13182
  "allowPastDates",
13157
13183
  "maxYearsFromNow",
13184
+ "maxDate",
13158
13185
  "disabled"
13159
13186
  ]);
13160
13187
  const handleValidate = (0, import_react26.useCallback)(
@@ -13196,7 +13223,8 @@ var DoubleCalendarFormField = (_a) => {
13196
13223
  disabled,
13197
13224
  hasError: haveError,
13198
13225
  allowPastDates,
13199
- maxYearsFromNow
13226
+ maxYearsFromNow,
13227
+ maxDate
13200
13228
  }, calendarProps)
13201
13229
  ),
13202
13230
  /* @__PURE__ */ (0, import_jsx_runtime57.jsx)(ErrorFormMessage, { message: errorMsg })
@@ -13287,7 +13315,8 @@ var DateAndTimeFormField = (_a) => {
13287
13315
  validationErrorMessage = "Este campo \xE9 obrigat\xF3rio.",
13288
13316
  rules,
13289
13317
  allowPastDates,
13290
- maxYearsFromNow = 20
13318
+ maxYearsFromNow = 20,
13319
+ maxDate
13291
13320
  } = _b, props = __objRest(_b, [
13292
13321
  "name",
13293
13322
  "label",
@@ -13296,7 +13325,8 @@ var DateAndTimeFormField = (_a) => {
13296
13325
  "validationErrorMessage",
13297
13326
  "rules",
13298
13327
  "allowPastDates",
13299
- "maxYearsFromNow"
13328
+ "maxYearsFromNow",
13329
+ "maxDate"
13300
13330
  ]);
13301
13331
  const handleValidate = (0, import_react28.useCallback)(
13302
13332
  (value) => {
@@ -13376,7 +13406,8 @@ var DateAndTimeFormField = (_a) => {
13376
13406
  },
13377
13407
  hasError: haveError,
13378
13408
  allowPastDates,
13379
- maxYearsFromNow
13409
+ maxYearsFromNow,
13410
+ maxDate
13380
13411
  }, props)
13381
13412
  ) }),
13382
13413
  /* @__PURE__ */ (0, import_jsx_runtime59.jsx)(Flex, { direction: "column", children: /* @__PURE__ */ (0, import_jsx_runtime59.jsx)(
package/dist/index.mjs CHANGED
@@ -7985,7 +7985,8 @@ function Calendar(_a) {
7985
7985
  hasError,
7986
7986
  expand,
7987
7987
  allowPastDates = false,
7988
- maxYearsFromNow = 20
7988
+ maxDate,
7989
+ maxYearsFromNow
7989
7990
  } = _b, props = __objRest(_b, [
7990
7991
  "action",
7991
7992
  "actionText",
@@ -7996,6 +7997,7 @@ function Calendar(_a) {
7996
7997
  "hasError",
7997
7998
  "expand",
7998
7999
  "allowPastDates",
8000
+ "maxDate",
7999
8001
  "maxYearsFromNow"
8000
8002
  ]);
8001
8003
  const [inputValue, setInputValue] = useState2("");
@@ -8005,7 +8007,14 @@ function Calendar(_a) {
8005
8007
  setShowCalendar(false);
8006
8008
  });
8007
8009
  const today = /* @__PURE__ */ new Date();
8008
- const maxDate = addYears(today, maxYearsFromNow);
8010
+ const resolvedMaxDate = maxDate != null ? maxDate : typeof maxYearsFromNow === "number" ? addYears(today, maxYearsFromNow) : void 0;
8011
+ const disabledDays = [];
8012
+ if (!allowPastDates) {
8013
+ disabledDays.push({ before: today });
8014
+ }
8015
+ if (resolvedMaxDate) {
8016
+ disabledDays.push({ after: resolvedMaxDate });
8017
+ }
8009
8018
  useEffect3(() => {
8010
8019
  if (selected) {
8011
8020
  setInputValue(format2(selected, "dd/MM/yyyy"));
@@ -8022,6 +8031,10 @@ function Calendar(_a) {
8022
8031
  console.warn("Datas passadas n\xE3o s\xE3o permitidas:", masked);
8023
8032
  return;
8024
8033
  }
8034
+ if (resolvedMaxDate && parsed > resolvedMaxDate) {
8035
+ console.warn("Data maior que o limite m\xE1ximo permitido:", masked);
8036
+ return;
8037
+ }
8025
8038
  setSelected(parsed);
8026
8039
  } else {
8027
8040
  console.warn("Data inv\xE1lida inserida no input:", masked);
@@ -8059,9 +8072,9 @@ function Calendar(_a) {
8059
8072
  onSelect: setSelected,
8060
8073
  required: true,
8061
8074
  locale: ptBR,
8062
- disabled: allowPastDates ? void 0 : { before: today },
8075
+ disabled: disabledDays.length > 0 ? disabledDays : void 0,
8063
8076
  startMonth: allowPastDates ? void 0 : today,
8064
- endMonth: maxDate
8077
+ endMonth: resolvedMaxDate
8065
8078
  }
8066
8079
  ) }) }),
8067
8080
  action && /* @__PURE__ */ jsx15(CalendarFooterStyled, { children: /* @__PURE__ */ jsx15(
@@ -8098,6 +8111,7 @@ function DoubleCalendar(_a) {
8098
8111
  expand,
8099
8112
  allowPastDates = false,
8100
8113
  maxYearsFromNow = 20,
8114
+ maxDate,
8101
8115
  disabled = false
8102
8116
  } = _b, props = __objRest(_b, [
8103
8117
  "action",
@@ -8110,6 +8124,7 @@ function DoubleCalendar(_a) {
8110
8124
  "expand",
8111
8125
  "allowPastDates",
8112
8126
  "maxYearsFromNow",
8127
+ "maxDate",
8113
8128
  "disabled"
8114
8129
  ]);
8115
8130
  const [startValue, setStartValue] = useState3("");
@@ -8121,7 +8136,14 @@ function DoubleCalendar(_a) {
8121
8136
  setShowCalendar(false);
8122
8137
  });
8123
8138
  const today = /* @__PURE__ */ new Date();
8124
- const maxDate = addYears(today, maxYearsFromNow);
8139
+ const resolvedMaxDate = maxDate != null ? maxDate : typeof maxYearsFromNow === "number" ? addYears(today, maxYearsFromNow) : void 0;
8140
+ const disabledDays = [];
8141
+ if (!allowPastDates) {
8142
+ disabledDays.push({ before: today });
8143
+ }
8144
+ if (resolvedMaxDate) {
8145
+ disabledDays.push({ after: resolvedMaxDate });
8146
+ }
8125
8147
  useEffect4(() => {
8126
8148
  if (selected && selected.from) {
8127
8149
  setStartValue(format2(selected.from, "dd/MM/yyyy"));
@@ -8173,9 +8195,9 @@ function DoubleCalendar(_a) {
8173
8195
  onSelect: setSelected,
8174
8196
  required: true,
8175
8197
  locale: ptBR,
8176
- disabled: allowPastDates ? void 0 : { before: today },
8198
+ disabled: disabledDays.length > 0 ? disabledDays : void 0,
8177
8199
  fromMonth: allowPastDates ? void 0 : today,
8178
- toMonth: maxDate
8200
+ toMonth: resolvedMaxDate
8179
8201
  }
8180
8202
  ) }) }),
8181
8203
  action && /* @__PURE__ */ jsxs8(CalendarFooterStyled, { children: [
@@ -12959,7 +12981,8 @@ var CalendarFormField = (_a) => {
12959
12981
  rules,
12960
12982
  onChange,
12961
12983
  allowPastDates,
12962
- maxYearsFromNow = 20
12984
+ maxYearsFromNow = 20,
12985
+ maxDate
12963
12986
  } = _b, calendarProps = __objRest(_b, [
12964
12987
  "name",
12965
12988
  "label",
@@ -12969,7 +12992,8 @@ var CalendarFormField = (_a) => {
12969
12992
  "rules",
12970
12993
  "onChange",
12971
12994
  "allowPastDates",
12972
- "maxYearsFromNow"
12995
+ "maxYearsFromNow",
12996
+ "maxDate"
12973
12997
  ]);
12974
12998
  const handleValidate = useCallback5(
12975
12999
  (value) => {
@@ -13017,6 +13041,7 @@ var CalendarFormField = (_a) => {
13017
13041
  },
13018
13042
  hasError: haveError,
13019
13043
  allowPastDates,
13044
+ maxDate,
13020
13045
  maxYearsFromNow
13021
13046
  }, calendarProps)
13022
13047
  ),
@@ -13038,6 +13063,7 @@ var DoubleCalendarFormField = (_a) => {
13038
13063
  rules,
13039
13064
  allowPastDates,
13040
13065
  maxYearsFromNow = 20,
13066
+ maxDate,
13041
13067
  disabled
13042
13068
  } = _b, calendarProps = __objRest(_b, [
13043
13069
  "name",
@@ -13048,6 +13074,7 @@ var DoubleCalendarFormField = (_a) => {
13048
13074
  "rules",
13049
13075
  "allowPastDates",
13050
13076
  "maxYearsFromNow",
13077
+ "maxDate",
13051
13078
  "disabled"
13052
13079
  ]);
13053
13080
  const handleValidate = useCallback6(
@@ -13089,7 +13116,8 @@ var DoubleCalendarFormField = (_a) => {
13089
13116
  disabled,
13090
13117
  hasError: haveError,
13091
13118
  allowPastDates,
13092
- maxYearsFromNow
13119
+ maxYearsFromNow,
13120
+ maxDate
13093
13121
  }, calendarProps)
13094
13122
  ),
13095
13123
  /* @__PURE__ */ jsx57(ErrorFormMessage, { message: errorMsg })
@@ -13180,7 +13208,8 @@ var DateAndTimeFormField = (_a) => {
13180
13208
  validationErrorMessage = "Este campo \xE9 obrigat\xF3rio.",
13181
13209
  rules,
13182
13210
  allowPastDates,
13183
- maxYearsFromNow = 20
13211
+ maxYearsFromNow = 20,
13212
+ maxDate
13184
13213
  } = _b, props = __objRest(_b, [
13185
13214
  "name",
13186
13215
  "label",
@@ -13189,7 +13218,8 @@ var DateAndTimeFormField = (_a) => {
13189
13218
  "validationErrorMessage",
13190
13219
  "rules",
13191
13220
  "allowPastDates",
13192
- "maxYearsFromNow"
13221
+ "maxYearsFromNow",
13222
+ "maxDate"
13193
13223
  ]);
13194
13224
  const handleValidate = useCallback8(
13195
13225
  (value) => {
@@ -13269,7 +13299,8 @@ var DateAndTimeFormField = (_a) => {
13269
13299
  },
13270
13300
  hasError: haveError,
13271
13301
  allowPastDates,
13272
- maxYearsFromNow
13302
+ maxYearsFromNow,
13303
+ maxDate
13273
13304
  }, props)
13274
13305
  ) }),
13275
13306
  /* @__PURE__ */ jsx59(Flex, { direction: "column", children: /* @__PURE__ */ jsx59(
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@lets-events/react",
3
- "version": "12.8.1",
3
+ "version": "12.8.2",
4
4
  "description": "",
5
5
  "main": "./dist/index.js",
6
6
  "module": "./dist/index.mjs",
@@ -1,6 +1,6 @@
1
1
  import React, { ComponentProps, useRef, useEffect, useState } from "react";
2
2
  import { useOnClickOutside } from "../../hooks/useOnClickOutside";
3
- import { DayPicker } from "react-day-picker";
3
+ import { DayPicker, Matcher } from "react-day-picker";
4
4
  import { ptBR } from "date-fns/locale";
5
5
  import { parse, isValid, format, addYears } from "date-fns";
6
6
  import { Button } from "../Button";
@@ -25,6 +25,7 @@ export type CalendarProps = ComponentProps<typeof CalendarStyled> & {
25
25
  hasError?: boolean;
26
26
  expand?: boolean;
27
27
  allowPastDates?: boolean;
28
+ maxDate?: Date;
28
29
  maxYearsFromNow?: number;
29
30
  };
30
31
 
@@ -46,7 +47,8 @@ export function Calendar({
46
47
  hasError,
47
48
  expand,
48
49
  allowPastDates = false,
49
- maxYearsFromNow = 20,
50
+ maxDate,
51
+ maxYearsFromNow,
50
52
  ...props
51
53
  }: CalendarProps) {
52
54
  const [inputValue, setInputValue] = useState("");
@@ -58,7 +60,16 @@ export function Calendar({
58
60
  setShowCalendar(false);
59
61
  });
60
62
  const today = new Date();
61
- const maxDate = addYears(today, maxYearsFromNow);
63
+ const resolvedMaxDate =
64
+ maxDate ?? (typeof maxYearsFromNow === "number" ? addYears(today, maxYearsFromNow) : undefined);
65
+ const disabledDays: Matcher[] = [];
66
+
67
+ if (!allowPastDates) {
68
+ disabledDays.push({ before: today });
69
+ }
70
+ if (resolvedMaxDate) {
71
+ disabledDays.push({ after: resolvedMaxDate });
72
+ }
62
73
 
63
74
  useEffect(() => {
64
75
  if (selected) {
@@ -78,6 +89,10 @@ export function Calendar({
78
89
  console.warn("Datas passadas não são permitidas:", masked);
79
90
  return;
80
91
  }
92
+ if (resolvedMaxDate && parsed > resolvedMaxDate) {
93
+ console.warn("Data maior que o limite máximo permitido:", masked);
94
+ return;
95
+ }
81
96
  setSelected(parsed);
82
97
  } else {
83
98
  console.warn("Data inválida inserida no input:", masked);
@@ -117,9 +132,9 @@ export function Calendar({
117
132
  onSelect={setSelected}
118
133
  required
119
134
  locale={ptBR}
120
- disabled={allowPastDates ? undefined : { before: today }}
135
+ disabled={disabledDays.length > 0 ? disabledDays : undefined}
121
136
  startMonth={allowPastDates ? undefined : today}
122
- endMonth={maxDate}
137
+ endMonth={resolvedMaxDate}
123
138
  />
124
139
  </DayPickerWrapperStyled>
125
140
  </Box>
@@ -1,6 +1,6 @@
1
1
  import React, { ComponentProps, useRef, useEffect, useState } from "react";
2
2
  import { useOnClickOutside } from "../../hooks/useOnClickOutside";
3
- import { DayPicker } from "react-day-picker";
3
+ import { DayPicker, Matcher } from "react-day-picker";
4
4
  import { ptBR } from "date-fns/locale";
5
5
  import { format, addYears } from "date-fns";
6
6
  import { Button } from "../Button";
@@ -28,6 +28,7 @@ export type DoubleCalendarProps = ComponentProps<typeof CalendarStyled> & {
28
28
  expand?: boolean;
29
29
  allowPastDates?: boolean;
30
30
  maxYearsFromNow?: number;
31
+ maxDate?: Date;
31
32
  disabled?: boolean;
32
33
  };
33
34
 
@@ -42,6 +43,7 @@ export function DoubleCalendar({
42
43
  expand,
43
44
  allowPastDates = false,
44
45
  maxYearsFromNow = 20,
46
+ maxDate,
45
47
  disabled = false,
46
48
  ...props
47
49
  }: DoubleCalendarProps) {
@@ -56,7 +58,17 @@ export function DoubleCalendar({
56
58
  setShowCalendar(false);
57
59
  });
58
60
  const today = new Date();
59
- const maxDate = addYears(today, maxYearsFromNow);
61
+ const resolvedMaxDate =
62
+ maxDate ??
63
+ (typeof maxYearsFromNow === "number" ? addYears(today, maxYearsFromNow) : undefined);
64
+ const disabledDays: Matcher[] = [];
65
+
66
+ if (!allowPastDates) {
67
+ disabledDays.push({ before: today });
68
+ }
69
+ if (resolvedMaxDate) {
70
+ disabledDays.push({ after: resolvedMaxDate });
71
+ }
60
72
 
61
73
  useEffect(() => {
62
74
  if (selected && selected.from) {
@@ -117,9 +129,9 @@ export function DoubleCalendar({
117
129
  onSelect={setSelected}
118
130
  required
119
131
  locale={ptBR}
120
- disabled={allowPastDates ? undefined : { before: today }}
132
+ disabled={disabledDays.length > 0 ? disabledDays : undefined}
121
133
  fromMonth={allowPastDates ? undefined : today}
122
- toMonth={maxDate}
134
+ toMonth={resolvedMaxDate}
123
135
  />
124
136
  </DayPickerWrapperStyled>
125
137
  </Box>
@@ -21,6 +21,7 @@ export type CalendarFormFieldProps = Omit<
21
21
  >;
22
22
  allowPastDates?: boolean;
23
23
  maxYearsFromNow?: number;
24
+ maxDate?: Date;
24
25
  };
25
26
 
26
27
  export const CalendarFormField = ({
@@ -33,6 +34,7 @@ export const CalendarFormField = ({
33
34
  onChange,
34
35
  allowPastDates,
35
36
  maxYearsFromNow = 20,
37
+ maxDate,
36
38
  ...calendarProps
37
39
  }: CalendarFormFieldProps) => {
38
40
  const handleValidate = useCallback(
@@ -85,6 +87,7 @@ export const CalendarFormField = ({
85
87
  }}
86
88
  hasError={haveError}
87
89
  allowPastDates={allowPastDates}
90
+ maxDate={maxDate}
88
91
  maxYearsFromNow={maxYearsFromNow}
89
92
  {...calendarProps}
90
93
  />
@@ -24,6 +24,7 @@ export type DateAndTimeFormFieldProps = Omit<
24
24
  >;
25
25
  allowPastDates?: boolean;
26
26
  maxYearsFromNow?: number;
27
+ maxDate?: Date;
27
28
  };
28
29
 
29
30
  export const DateAndTimeFormField = ({
@@ -35,6 +36,7 @@ export const DateAndTimeFormField = ({
35
36
  rules,
36
37
  allowPastDates,
37
38
  maxYearsFromNow = 20,
39
+ maxDate,
38
40
  ...props
39
41
  }: DateAndTimeFormFieldProps) => {
40
42
  const handleValidate = useCallback(
@@ -129,6 +131,7 @@ export const DateAndTimeFormField = ({
129
131
  hasError={haveError}
130
132
  allowPastDates={allowPastDates}
131
133
  maxYearsFromNow={maxYearsFromNow}
134
+ maxDate={maxDate}
132
135
  {...(props as Omit<CalendarProps, "selected" | "setSelected">)}
133
136
  />
134
137
  </Flex>
@@ -21,6 +21,7 @@ export type DoubleCalendarFormFieldProps = Omit<
21
21
  disabled?: boolean;
22
22
  allowPastDates?: boolean;
23
23
  maxYearsFromNow?: number;
24
+ maxDate?: Date;
24
25
  };
25
26
 
26
27
  export const DoubleCalendarFormField = ({
@@ -32,6 +33,7 @@ export const DoubleCalendarFormField = ({
32
33
  rules,
33
34
  allowPastDates,
34
35
  maxYearsFromNow = 20,
36
+ maxDate,
35
37
  disabled,
36
38
  ...calendarProps
37
39
  }: DoubleCalendarFormFieldProps) => {
@@ -82,6 +84,7 @@ export const DoubleCalendarFormField = ({
82
84
  hasError={haveError}
83
85
  allowPastDates={allowPastDates}
84
86
  maxYearsFromNow={maxYearsFromNow}
87
+ maxDate={maxDate}
85
88
  {...calendarProps}
86
89
  />
87
90