@lets-events/react 12.8.1 → 12.8.3

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.3 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 411.36 KB
14
+ CJS ⚡️ Build success in 459ms
15
+ ESM dist/index.mjs 395.98 KB
16
+ ESM ⚡️ Build success in 460ms
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 8332ms
19
+ DTS dist/index.d.mts 404.05 KB
20
+ DTS dist/index.d.ts 404.05 KB
21
21
  ⠙
package/CHANGELOG.md CHANGED
@@ -1,5 +1,17 @@
1
1
  # @lets-events/react
2
2
 
3
+ ## 12.8.3
4
+
5
+ ### Patch Changes
6
+
7
+ - Select Show More Button
8
+
9
+ ## 12.8.2
10
+
11
+ ### Patch Changes
12
+
13
+ - Calendar maxDate propo
14
+
3
15
  ## 12.8.1
4
16
 
5
17
  ### 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;
@@ -15247,13 +15249,16 @@ type SelectFormFieldProps = {
15247
15249
  required?: boolean;
15248
15250
  placeholder?: string;
15249
15251
  options: Option[];
15252
+ showMoreButton?: boolean;
15253
+ showMoreButtonLabel?: string;
15254
+ showMoreButtonOnClick?: () => void;
15250
15255
  validation?: {
15251
15256
  validate?: (value: string) => boolean | string;
15252
15257
  };
15253
15258
  validationErrorMessage?: string;
15254
15259
  defaultValue?: string;
15255
15260
  };
15256
- declare const SelectFormField: ({ name, label, required, placeholder, options, validation, validationErrorMessage, defaultValue, }: SelectFormFieldProps) => react_jsx_runtime.JSX.Element;
15261
+ declare const SelectFormField: ({ name, label, required, placeholder, options, showMoreButton, showMoreButtonLabel, showMoreButtonOnClick, validation, validationErrorMessage, defaultValue, }: SelectFormFieldProps) => react_jsx_runtime.JSX.Element;
15257
15262
 
15258
15263
  type SwitchFormFieldProps = {
15259
15264
  name: string;
@@ -15325,8 +15330,9 @@ type CalendarFormFieldProps = Omit<CalendarProps, "selected" | "setSelected"> &
15325
15330
  rules?: Omit<RegisterOptions<FieldValues, string>, "valueAsNumber" | "valueAsDate" | "setValueAs" | "disabled">;
15326
15331
  allowPastDates?: boolean;
15327
15332
  maxYearsFromNow?: number;
15333
+ maxDate?: Date;
15328
15334
  };
15329
- declare const CalendarFormField: ({ name, label, required, validate, validationErrorMessage, rules, onChange, allowPastDates, maxYearsFromNow, ...calendarProps }: CalendarFormFieldProps) => react_jsx_runtime.JSX.Element;
15335
+ declare const CalendarFormField: ({ name, label, required, validate, validationErrorMessage, rules, onChange, allowPastDates, maxYearsFromNow, maxDate, ...calendarProps }: CalendarFormFieldProps) => react_jsx_runtime.JSX.Element;
15330
15336
 
15331
15337
  type DoubleCalendarFormFieldProps = Omit<DoubleCalendarProps, "selected" | "setSelected"> & {
15332
15338
  name: string;
@@ -15338,8 +15344,9 @@ type DoubleCalendarFormFieldProps = Omit<DoubleCalendarProps, "selected" | "setS
15338
15344
  disabled?: boolean;
15339
15345
  allowPastDates?: boolean;
15340
15346
  maxYearsFromNow?: number;
15347
+ maxDate?: Date;
15341
15348
  };
15342
- declare const DoubleCalendarFormField: ({ name, label, required, validate, validationErrorMessage, rules, allowPastDates, maxYearsFromNow, disabled, ...calendarProps }: DoubleCalendarFormFieldProps) => react_jsx_runtime.JSX.Element;
15349
+ declare const DoubleCalendarFormField: ({ name, label, required, validate, validationErrorMessage, rules, allowPastDates, maxYearsFromNow, maxDate, disabled, ...calendarProps }: DoubleCalendarFormFieldProps) => react_jsx_runtime.JSX.Element;
15343
15350
 
15344
15351
  type TimePickerFormFieldProps = Omit<TimePickerProps, "selected" | "setSelected"> & {
15345
15352
  name: string;
@@ -15360,8 +15367,9 @@ type DateAndTimeFormFieldProps = Omit<CalendarProps, "selected" | "setSelected">
15360
15367
  rules?: Omit<RegisterOptions<FieldValues, string>, "valueAsNumber" | "valueAsDate" | "setValueAs" | "disabled">;
15361
15368
  allowPastDates?: boolean;
15362
15369
  maxYearsFromNow?: number;
15370
+ maxDate?: Date;
15363
15371
  };
15364
- declare const DateAndTimeFormField: ({ name, label, required, validate, validationErrorMessage, rules, allowPastDates, maxYearsFromNow, ...props }: DateAndTimeFormFieldProps) => react_jsx_runtime.JSX.Element;
15372
+ declare const DateAndTimeFormField: ({ name, label, required, validate, validationErrorMessage, rules, allowPastDates, maxYearsFromNow, maxDate, ...props }: DateAndTimeFormFieldProps) => react_jsx_runtime.JSX.Element;
15365
15373
 
15366
15374
  interface UploadConfig {
15367
15375
  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;
@@ -15247,13 +15249,16 @@ type SelectFormFieldProps = {
15247
15249
  required?: boolean;
15248
15250
  placeholder?: string;
15249
15251
  options: Option[];
15252
+ showMoreButton?: boolean;
15253
+ showMoreButtonLabel?: string;
15254
+ showMoreButtonOnClick?: () => void;
15250
15255
  validation?: {
15251
15256
  validate?: (value: string) => boolean | string;
15252
15257
  };
15253
15258
  validationErrorMessage?: string;
15254
15259
  defaultValue?: string;
15255
15260
  };
15256
- declare const SelectFormField: ({ name, label, required, placeholder, options, validation, validationErrorMessage, defaultValue, }: SelectFormFieldProps) => react_jsx_runtime.JSX.Element;
15261
+ declare const SelectFormField: ({ name, label, required, placeholder, options, showMoreButton, showMoreButtonLabel, showMoreButtonOnClick, validation, validationErrorMessage, defaultValue, }: SelectFormFieldProps) => react_jsx_runtime.JSX.Element;
15257
15262
 
15258
15263
  type SwitchFormFieldProps = {
15259
15264
  name: string;
@@ -15325,8 +15330,9 @@ type CalendarFormFieldProps = Omit<CalendarProps, "selected" | "setSelected"> &
15325
15330
  rules?: Omit<RegisterOptions<FieldValues, string>, "valueAsNumber" | "valueAsDate" | "setValueAs" | "disabled">;
15326
15331
  allowPastDates?: boolean;
15327
15332
  maxYearsFromNow?: number;
15333
+ maxDate?: Date;
15328
15334
  };
15329
- declare const CalendarFormField: ({ name, label, required, validate, validationErrorMessage, rules, onChange, allowPastDates, maxYearsFromNow, ...calendarProps }: CalendarFormFieldProps) => react_jsx_runtime.JSX.Element;
15335
+ declare const CalendarFormField: ({ name, label, required, validate, validationErrorMessage, rules, onChange, allowPastDates, maxYearsFromNow, maxDate, ...calendarProps }: CalendarFormFieldProps) => react_jsx_runtime.JSX.Element;
15330
15336
 
15331
15337
  type DoubleCalendarFormFieldProps = Omit<DoubleCalendarProps, "selected" | "setSelected"> & {
15332
15338
  name: string;
@@ -15338,8 +15344,9 @@ type DoubleCalendarFormFieldProps = Omit<DoubleCalendarProps, "selected" | "setS
15338
15344
  disabled?: boolean;
15339
15345
  allowPastDates?: boolean;
15340
15346
  maxYearsFromNow?: number;
15347
+ maxDate?: Date;
15341
15348
  };
15342
- declare const DoubleCalendarFormField: ({ name, label, required, validate, validationErrorMessage, rules, allowPastDates, maxYearsFromNow, disabled, ...calendarProps }: DoubleCalendarFormFieldProps) => react_jsx_runtime.JSX.Element;
15349
+ declare const DoubleCalendarFormField: ({ name, label, required, validate, validationErrorMessage, rules, allowPastDates, maxYearsFromNow, maxDate, disabled, ...calendarProps }: DoubleCalendarFormFieldProps) => react_jsx_runtime.JSX.Element;
15343
15350
 
15344
15351
  type TimePickerFormFieldProps = Omit<TimePickerProps, "selected" | "setSelected"> & {
15345
15352
  name: string;
@@ -15360,8 +15367,9 @@ type DateAndTimeFormFieldProps = Omit<CalendarProps, "selected" | "setSelected">
15360
15367
  rules?: Omit<RegisterOptions<FieldValues, string>, "valueAsNumber" | "valueAsDate" | "setValueAs" | "disabled">;
15361
15368
  allowPastDates?: boolean;
15362
15369
  maxYearsFromNow?: number;
15370
+ maxDate?: Date;
15363
15371
  };
15364
- declare const DateAndTimeFormField: ({ name, label, required, validate, validationErrorMessage, rules, allowPastDates, maxYearsFromNow, ...props }: DateAndTimeFormFieldProps) => react_jsx_runtime.JSX.Element;
15372
+ declare const DateAndTimeFormField: ({ name, label, required, validate, validationErrorMessage, rules, allowPastDates, maxYearsFromNow, maxDate, ...props }: DateAndTimeFormFieldProps) => react_jsx_runtime.JSX.Element;
15365
15373
 
15366
15374
  interface UploadConfig {
15367
15375
  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: [
@@ -10876,6 +10898,9 @@ var SelectFormField = ({
10876
10898
  required,
10877
10899
  placeholder = "Selecione",
10878
10900
  options,
10901
+ showMoreButton = false,
10902
+ showMoreButtonLabel = "Carregar mais",
10903
+ showMoreButtonOnClick,
10879
10904
  validation,
10880
10905
  validationErrorMessage = "Este campo \xE9 obrigat\xF3rio.",
10881
10906
  defaultValue
@@ -10909,24 +10934,38 @@ var SelectFormField = ({
10909
10934
  defaultValue: defaultValue || "",
10910
10935
  render: ({ field: { value, onChange } }) => {
10911
10936
  const selectedOption = options.find((opt) => opt.value === value);
10912
- return /* @__PURE__ */ (0, import_jsx_runtime42.jsx)(
10937
+ return /* @__PURE__ */ (0, import_jsx_runtime42.jsxs)(
10913
10938
  DropdownMenu2,
10914
10939
  {
10915
10940
  placeholder: (selectedOption == null ? void 0 : selectedOption.label) || placeholder,
10916
10941
  fontWeight: "regular",
10917
10942
  typography: "labelLarge",
10918
10943
  color: haveError ? "error" : "default",
10919
- children: options.map((option, index) => /* @__PURE__ */ (0, import_jsx_runtime42.jsx)(
10920
- DropdownMenuItem,
10921
- {
10922
- value: option.value,
10923
- onSelect: () => onChange(option.value),
10924
- fontWeight: "regular",
10925
- typography: "labelLarge",
10926
- children: option.label
10927
- },
10928
- `${option.value}${index}`
10929
- ))
10944
+ children: [
10945
+ options.map((option, index) => /* @__PURE__ */ (0, import_jsx_runtime42.jsx)(
10946
+ DropdownMenuItem,
10947
+ {
10948
+ value: option.value,
10949
+ onSelect: () => onChange(option.value),
10950
+ fontWeight: "regular",
10951
+ typography: "labelLarge",
10952
+ children: option.label
10953
+ },
10954
+ `${option.value}${index}`
10955
+ )),
10956
+ showMoreButton && showMoreButtonOnClick && /* @__PURE__ */ (0, import_jsx_runtime42.jsx)(
10957
+ Button,
10958
+ {
10959
+ variant: "menuDropdownItem",
10960
+ color: "brand",
10961
+ onClick: showMoreButtonOnClick,
10962
+ fontWeight: "semibold",
10963
+ type: "button",
10964
+ css: { justifyContent: "flex-start", color: "var(--colors-brand500)!important" },
10965
+ children: showMoreButtonLabel
10966
+ }
10967
+ )
10968
+ ]
10930
10969
  }
10931
10970
  );
10932
10971
  }
@@ -13066,7 +13105,8 @@ var CalendarFormField = (_a) => {
13066
13105
  rules,
13067
13106
  onChange,
13068
13107
  allowPastDates,
13069
- maxYearsFromNow = 20
13108
+ maxYearsFromNow = 20,
13109
+ maxDate
13070
13110
  } = _b, calendarProps = __objRest(_b, [
13071
13111
  "name",
13072
13112
  "label",
@@ -13076,7 +13116,8 @@ var CalendarFormField = (_a) => {
13076
13116
  "rules",
13077
13117
  "onChange",
13078
13118
  "allowPastDates",
13079
- "maxYearsFromNow"
13119
+ "maxYearsFromNow",
13120
+ "maxDate"
13080
13121
  ]);
13081
13122
  const handleValidate = (0, import_react25.useCallback)(
13082
13123
  (value) => {
@@ -13124,6 +13165,7 @@ var CalendarFormField = (_a) => {
13124
13165
  },
13125
13166
  hasError: haveError,
13126
13167
  allowPastDates,
13168
+ maxDate,
13127
13169
  maxYearsFromNow
13128
13170
  }, calendarProps)
13129
13171
  ),
@@ -13145,6 +13187,7 @@ var DoubleCalendarFormField = (_a) => {
13145
13187
  rules,
13146
13188
  allowPastDates,
13147
13189
  maxYearsFromNow = 20,
13190
+ maxDate,
13148
13191
  disabled
13149
13192
  } = _b, calendarProps = __objRest(_b, [
13150
13193
  "name",
@@ -13155,6 +13198,7 @@ var DoubleCalendarFormField = (_a) => {
13155
13198
  "rules",
13156
13199
  "allowPastDates",
13157
13200
  "maxYearsFromNow",
13201
+ "maxDate",
13158
13202
  "disabled"
13159
13203
  ]);
13160
13204
  const handleValidate = (0, import_react26.useCallback)(
@@ -13196,7 +13240,8 @@ var DoubleCalendarFormField = (_a) => {
13196
13240
  disabled,
13197
13241
  hasError: haveError,
13198
13242
  allowPastDates,
13199
- maxYearsFromNow
13243
+ maxYearsFromNow,
13244
+ maxDate
13200
13245
  }, calendarProps)
13201
13246
  ),
13202
13247
  /* @__PURE__ */ (0, import_jsx_runtime57.jsx)(ErrorFormMessage, { message: errorMsg })
@@ -13287,7 +13332,8 @@ var DateAndTimeFormField = (_a) => {
13287
13332
  validationErrorMessage = "Este campo \xE9 obrigat\xF3rio.",
13288
13333
  rules,
13289
13334
  allowPastDates,
13290
- maxYearsFromNow = 20
13335
+ maxYearsFromNow = 20,
13336
+ maxDate
13291
13337
  } = _b, props = __objRest(_b, [
13292
13338
  "name",
13293
13339
  "label",
@@ -13296,7 +13342,8 @@ var DateAndTimeFormField = (_a) => {
13296
13342
  "validationErrorMessage",
13297
13343
  "rules",
13298
13344
  "allowPastDates",
13299
- "maxYearsFromNow"
13345
+ "maxYearsFromNow",
13346
+ "maxDate"
13300
13347
  ]);
13301
13348
  const handleValidate = (0, import_react28.useCallback)(
13302
13349
  (value) => {
@@ -13376,7 +13423,8 @@ var DateAndTimeFormField = (_a) => {
13376
13423
  },
13377
13424
  hasError: haveError,
13378
13425
  allowPastDates,
13379
- maxYearsFromNow
13426
+ maxYearsFromNow,
13427
+ maxDate
13380
13428
  }, props)
13381
13429
  ) }),
13382
13430
  /* @__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: [
@@ -10769,6 +10791,9 @@ var SelectFormField = ({
10769
10791
  required,
10770
10792
  placeholder = "Selecione",
10771
10793
  options,
10794
+ showMoreButton = false,
10795
+ showMoreButtonLabel = "Carregar mais",
10796
+ showMoreButtonOnClick,
10772
10797
  validation,
10773
10798
  validationErrorMessage = "Este campo \xE9 obrigat\xF3rio.",
10774
10799
  defaultValue
@@ -10802,24 +10827,38 @@ var SelectFormField = ({
10802
10827
  defaultValue: defaultValue || "",
10803
10828
  render: ({ field: { value, onChange } }) => {
10804
10829
  const selectedOption = options.find((opt) => opt.value === value);
10805
- return /* @__PURE__ */ jsx42(
10830
+ return /* @__PURE__ */ jsxs23(
10806
10831
  DropdownMenu2,
10807
10832
  {
10808
10833
  placeholder: (selectedOption == null ? void 0 : selectedOption.label) || placeholder,
10809
10834
  fontWeight: "regular",
10810
10835
  typography: "labelLarge",
10811
10836
  color: haveError ? "error" : "default",
10812
- children: options.map((option, index) => /* @__PURE__ */ jsx42(
10813
- DropdownMenuItem,
10814
- {
10815
- value: option.value,
10816
- onSelect: () => onChange(option.value),
10817
- fontWeight: "regular",
10818
- typography: "labelLarge",
10819
- children: option.label
10820
- },
10821
- `${option.value}${index}`
10822
- ))
10837
+ children: [
10838
+ options.map((option, index) => /* @__PURE__ */ jsx42(
10839
+ DropdownMenuItem,
10840
+ {
10841
+ value: option.value,
10842
+ onSelect: () => onChange(option.value),
10843
+ fontWeight: "regular",
10844
+ typography: "labelLarge",
10845
+ children: option.label
10846
+ },
10847
+ `${option.value}${index}`
10848
+ )),
10849
+ showMoreButton && showMoreButtonOnClick && /* @__PURE__ */ jsx42(
10850
+ Button,
10851
+ {
10852
+ variant: "menuDropdownItem",
10853
+ color: "brand",
10854
+ onClick: showMoreButtonOnClick,
10855
+ fontWeight: "semibold",
10856
+ type: "button",
10857
+ css: { justifyContent: "flex-start", color: "var(--colors-brand500)!important" },
10858
+ children: showMoreButtonLabel
10859
+ }
10860
+ )
10861
+ ]
10823
10862
  }
10824
10863
  );
10825
10864
  }
@@ -12959,7 +12998,8 @@ var CalendarFormField = (_a) => {
12959
12998
  rules,
12960
12999
  onChange,
12961
13000
  allowPastDates,
12962
- maxYearsFromNow = 20
13001
+ maxYearsFromNow = 20,
13002
+ maxDate
12963
13003
  } = _b, calendarProps = __objRest(_b, [
12964
13004
  "name",
12965
13005
  "label",
@@ -12969,7 +13009,8 @@ var CalendarFormField = (_a) => {
12969
13009
  "rules",
12970
13010
  "onChange",
12971
13011
  "allowPastDates",
12972
- "maxYearsFromNow"
13012
+ "maxYearsFromNow",
13013
+ "maxDate"
12973
13014
  ]);
12974
13015
  const handleValidate = useCallback5(
12975
13016
  (value) => {
@@ -13017,6 +13058,7 @@ var CalendarFormField = (_a) => {
13017
13058
  },
13018
13059
  hasError: haveError,
13019
13060
  allowPastDates,
13061
+ maxDate,
13020
13062
  maxYearsFromNow
13021
13063
  }, calendarProps)
13022
13064
  ),
@@ -13038,6 +13080,7 @@ var DoubleCalendarFormField = (_a) => {
13038
13080
  rules,
13039
13081
  allowPastDates,
13040
13082
  maxYearsFromNow = 20,
13083
+ maxDate,
13041
13084
  disabled
13042
13085
  } = _b, calendarProps = __objRest(_b, [
13043
13086
  "name",
@@ -13048,6 +13091,7 @@ var DoubleCalendarFormField = (_a) => {
13048
13091
  "rules",
13049
13092
  "allowPastDates",
13050
13093
  "maxYearsFromNow",
13094
+ "maxDate",
13051
13095
  "disabled"
13052
13096
  ]);
13053
13097
  const handleValidate = useCallback6(
@@ -13089,7 +13133,8 @@ var DoubleCalendarFormField = (_a) => {
13089
13133
  disabled,
13090
13134
  hasError: haveError,
13091
13135
  allowPastDates,
13092
- maxYearsFromNow
13136
+ maxYearsFromNow,
13137
+ maxDate
13093
13138
  }, calendarProps)
13094
13139
  ),
13095
13140
  /* @__PURE__ */ jsx57(ErrorFormMessage, { message: errorMsg })
@@ -13180,7 +13225,8 @@ var DateAndTimeFormField = (_a) => {
13180
13225
  validationErrorMessage = "Este campo \xE9 obrigat\xF3rio.",
13181
13226
  rules,
13182
13227
  allowPastDates,
13183
- maxYearsFromNow = 20
13228
+ maxYearsFromNow = 20,
13229
+ maxDate
13184
13230
  } = _b, props = __objRest(_b, [
13185
13231
  "name",
13186
13232
  "label",
@@ -13189,7 +13235,8 @@ var DateAndTimeFormField = (_a) => {
13189
13235
  "validationErrorMessage",
13190
13236
  "rules",
13191
13237
  "allowPastDates",
13192
- "maxYearsFromNow"
13238
+ "maxYearsFromNow",
13239
+ "maxDate"
13193
13240
  ]);
13194
13241
  const handleValidate = useCallback8(
13195
13242
  (value) => {
@@ -13269,7 +13316,8 @@ var DateAndTimeFormField = (_a) => {
13269
13316
  },
13270
13317
  hasError: haveError,
13271
13318
  allowPastDates,
13272
- maxYearsFromNow
13319
+ maxYearsFromNow,
13320
+ maxDate
13273
13321
  }, props)
13274
13322
  ) }),
13275
13323
  /* @__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.3",
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
 
@@ -4,6 +4,7 @@ import { Flex } from "../Flex";
4
4
  import { FormLabel } from "./subComponents/FormLabel";
5
5
  import { ErrorFormMessage } from "./subComponents/ErrorFormMessage";
6
6
  import { getNestedValue } from "../../utils/getNestedValue";
7
+ import { Button } from "../Button";
7
8
 
8
9
  type Option = {
9
10
  label: string;
@@ -16,6 +17,9 @@ export type SelectFormFieldProps = {
16
17
  required?: boolean;
17
18
  placeholder?: string;
18
19
  options: Option[];
20
+ showMoreButton?: boolean;
21
+ showMoreButtonLabel?: string;
22
+ showMoreButtonOnClick?: () => void;
19
23
  validation?: {
20
24
  validate?: (value: string) => boolean | string;
21
25
  };
@@ -29,6 +33,9 @@ export const SelectFormField = ({
29
33
  required,
30
34
  placeholder = "Selecione",
31
35
  options,
36
+ showMoreButton = false,
37
+ showMoreButtonLabel = "Carregar mais",
38
+ showMoreButtonOnClick,
32
39
  validation,
33
40
  validationErrorMessage = "Este campo é obrigatório.",
34
41
  defaultValue,
@@ -82,6 +89,19 @@ export const SelectFormField = ({
82
89
  {option.label}
83
90
  </DropdownMenuItem>
84
91
  ))}
92
+
93
+ {showMoreButton && showMoreButtonOnClick && (
94
+ <Button
95
+ variant="menuDropdownItem"
96
+ color="brand"
97
+ onClick={showMoreButtonOnClick}
98
+ fontWeight="semibold"
99
+ type="button"
100
+ css={{ justifyContent: "flex-start", color: "var(--colors-brand500)!important" }}
101
+ >
102
+ {showMoreButtonLabel}
103
+ </Button>
104
+ )}
85
105
  </DropdownMenu>
86
106
  );
87
107
  }}