linear-react-components-ui 2.1.0-beta.1 → 2.1.0-beta.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.
Files changed (44) hide show
  1. package/lib/assets/styles/datepicker2.css +77 -4
  2. package/lib/inputs2/date/calendarbox.d.ts +23 -0
  3. package/lib/inputs2/date/calendarbox.js +254 -0
  4. package/lib/inputs2/date/calendarbox.js.map +1 -0
  5. package/lib/inputs2/date/datefield/base.js +599 -215
  6. package/lib/inputs2/date/datefield/base.js.map +1 -1
  7. package/lib/inputs2/date/datefield/triggers.js +4 -4
  8. package/lib/inputs2/date/datefield/triggers.js.map +1 -1
  9. package/lib/inputs2/date/datefield/types.d.ts +5 -12
  10. package/lib/inputs2/date/dateperiodfield/base.js +645 -751
  11. package/lib/inputs2/date/dateperiodfield/base.js.map +1 -1
  12. package/lib/inputs2/date/dateperiodfield/triggers.js +21 -9
  13. package/lib/inputs2/date/dateperiodfield/triggers.js.map +1 -1
  14. package/lib/inputs2/date/dateperiodfield/types.d.ts +7 -23
  15. package/lib/inputs2/date/helpers.d.ts +25 -4
  16. package/lib/inputs2/date/helpers.js +79 -4
  17. package/lib/inputs2/date/helpers.js.map +1 -1
  18. package/lib/inputs2/date/{base/constants.d.ts → hooks/useCalendarPosition.d.ts} +1 -1
  19. package/lib/inputs2/date/hooks/useCalendarPosition.js +93 -0
  20. package/lib/inputs2/date/hooks/useCalendarPosition.js.map +1 -0
  21. package/lib/inputs2/date/hooks/useDateCalendarState.d.ts +14 -0
  22. package/lib/inputs2/date/hooks/useDateCalendarState.js +250 -0
  23. package/lib/inputs2/date/hooks/useDateCalendarState.js.map +1 -0
  24. package/lib/inputs2/date/hooks/useDateMask.d.ts +22 -0
  25. package/lib/inputs2/date/hooks/useDateMask.js +215 -0
  26. package/lib/inputs2/date/hooks/useDateMask.js.map +1 -0
  27. package/lib/inputs2/date/timeselector.d.ts +15 -0
  28. package/lib/inputs2/date/timeselector.js +228 -0
  29. package/lib/inputs2/date/timeselector.js.map +1 -0
  30. package/lib/inputs2/date/types.d.ts +16 -1
  31. package/lib/inputs2/date/types.js.map +1 -1
  32. package/lib/menus/float/SubMenuContainer.js +8 -16
  33. package/lib/menus/float/SubMenuContainer.js.map +1 -1
  34. package/lib/node_modules/moment/dist/locale/pt-br.js +54 -0
  35. package/lib/node_modules/moment/dist/locale/pt-br.js.map +1 -0
  36. package/package.json +1 -1
  37. package/lib/inputs2/date/base/constants.js +0 -69
  38. package/lib/inputs2/date/base/constants.js.map +0 -1
  39. package/lib/inputs2/date/datefield/calendarbox.d.ts +0 -6
  40. package/lib/inputs2/date/datefield/calendarbox.js +0 -228
  41. package/lib/inputs2/date/datefield/calendarbox.js.map +0 -1
  42. package/lib/inputs2/date/dateperiodfield/calendarbox.d.ts +0 -6
  43. package/lib/inputs2/date/dateperiodfield/calendarbox.js +0 -282
  44. package/lib/inputs2/date/dateperiodfield/calendarbox.js.map +0 -1
@@ -741,7 +741,7 @@
741
741
  background-position: -135% 0%;
742
742
  }
743
743
  }
744
- .date-calendar-box[aria-expanded=true], .date-field-root .container .input {
744
+ .date-calendar-box[aria-expanded=true] .date-calendar-box-time-selector .time-column .time-column-options, .date-calendar-box[aria-expanded=true], .date-field-root .container .input {
745
745
  color: #666;
746
746
  font-size: 16px;
747
747
  font-family: Roboto;
@@ -1029,9 +1029,10 @@ input::-webkit-inner-spin-button {
1029
1029
  margin: 5px 0;
1030
1030
  font-size: 87.5%;
1031
1031
  z-index: auto;
1032
- position: fixed;
1033
- display: flex;
1034
- flex-direction: column;
1032
+ display: grid;
1033
+ grid-template-columns: minmax(280px, 1fr) auto;
1034
+ grid-template-areas: "header time" "weekdays time" "grid time";
1035
+ min-width: min-content;
1035
1036
  overflow: hidden;
1036
1037
  border: 1px solid #dae1e8;
1037
1038
  background-color: #fff;
@@ -1039,6 +1040,7 @@ input::-webkit-inner-spin-button {
1039
1040
  box-shadow: -6px 6px 50px -12px rgba(51, 51, 51, 0.4);
1040
1041
  }
1041
1042
  .date-calendar-box[aria-expanded=true] .date-calendar-box-header {
1043
+ grid-area: header;
1042
1044
  width: auto;
1043
1045
  height: auto;
1044
1046
  display: flex;
@@ -1070,6 +1072,7 @@ input::-webkit-inner-spin-button {
1070
1072
  font-size: 87.5%;
1071
1073
  }
1072
1074
  .date-calendar-box[aria-expanded=true] .date-calendar-box-days-of-week {
1075
+ grid-area: weekdays;
1073
1076
  height: 28px;
1074
1077
  display: flex;
1075
1078
  flex-flow: nowrap;
@@ -1086,11 +1089,13 @@ input::-webkit-inner-spin-button {
1086
1089
  vertical-align: middle;
1087
1090
  }
1088
1091
  .date-calendar-box[aria-expanded=true] .date-calendar-box-grid-of-days {
1092
+ grid-area: grid;
1089
1093
  padding: 3px;
1090
1094
  }
1091
1095
  .date-calendar-box[aria-expanded=true] .date-calendar-box-grid-of-days table {
1092
1096
  width: 100%;
1093
1097
  height: 100%;
1098
+ min-height: 252px;
1094
1099
  }
1095
1100
  .date-calendar-box[aria-expanded=true] .date-calendar-box-grid-of-days table td[role=gridcell] {
1096
1101
  text-align: center;
@@ -1127,6 +1132,13 @@ input::-webkit-inner-spin-button {
1127
1132
  border-color: #d1d3d4;
1128
1133
  border-style: dashed;
1129
1134
  }
1135
+ .date-calendar-box[aria-expanded=true] .date-calendar-box-grid-of-days table .day-button[data-state-out-of-bounds=true] {
1136
+ color: #cacaca !important;
1137
+ cursor: not-allowed;
1138
+ }
1139
+ .date-calendar-box[aria-expanded=true] .date-calendar-box-grid-of-days table .day-button[data-state-out-of-bounds=true]:hover {
1140
+ background-color: transparent;
1141
+ }
1130
1142
  .date-calendar-box[aria-expanded=true] .date-calendar-box-grid-of-days table .day-button[data-state-is-today=true] {
1131
1143
  position: relative;
1132
1144
  }
@@ -1144,4 +1156,65 @@ input::-webkit-inner-spin-button {
1144
1156
  }
1145
1157
  .date-calendar-box[aria-expanded=true] .date-calendar-box-grid-of-days table .day-button[data-state-is-today=true][aria-selected=true]::after {
1146
1158
  background-color: #fff;
1159
+ }
1160
+ .date-calendar-box[aria-expanded=true] .date-calendar-box-time-selector {
1161
+ grid-area: time;
1162
+ display: flex;
1163
+ flex-direction: row;
1164
+ height: 0;
1165
+ min-height: 100%;
1166
+ }
1167
+ .date-calendar-box[aria-expanded=true] .date-calendar-box-time-selector .time-column {
1168
+ display: flex;
1169
+ flex-direction: column;
1170
+ min-height: 0;
1171
+ width: 52px;
1172
+ border-left: 1px solid #dae1e8;
1173
+ }
1174
+ .date-calendar-box[aria-expanded=true] .date-calendar-box-time-selector .time-column .time-column-label {
1175
+ padding: 6px 0;
1176
+ font-size: 87.5%;
1177
+ text-align: center;
1178
+ white-space: nowrap;
1179
+ background-color: #f0f0f0;
1180
+ border-bottom: 1px solid #e1e1e1;
1181
+ }
1182
+ .date-calendar-box[aria-expanded=true] .date-calendar-box-time-selector .time-column .time-column-options {
1183
+ flex: 1 1 auto;
1184
+ min-height: 0;
1185
+ font-size: 87.5%;
1186
+ overflow: hidden auto;
1187
+ scrollbar-width: none;
1188
+ }
1189
+ .date-calendar-box[aria-expanded=true] .date-calendar-box-time-selector .time-column .time-column-options::-webkit-scrollbar {
1190
+ display: none;
1191
+ }
1192
+ .date-calendar-box[aria-expanded=true] .date-calendar-box-time-selector .time-unit-button {
1193
+ width: 100%;
1194
+ padding: 6px 0;
1195
+ border: none;
1196
+ cursor: pointer;
1197
+ text-align: center;
1198
+ background-color: transparent;
1199
+ }
1200
+ .date-calendar-box[aria-expanded=true] .date-calendar-box-time-selector .time-unit-button:hover {
1201
+ background-color: #dae1e8;
1202
+ }
1203
+ .date-calendar-box[aria-expanded=true] .date-calendar-box-time-selector .time-unit-button[aria-selected=true], .date-calendar-box[aria-expanded=true] .date-calendar-box-time-selector .time-unit-button[aria-selected=true]:hover {
1204
+ color: #fff;
1205
+ background-color: #6C757D;
1206
+ }
1207
+ .date-calendar-box[aria-expanded=true] .date-calendar-box-time-selector .time-unit-button[data-state-out-of-bounds=true] {
1208
+ color: #cacaca !important;
1209
+ cursor: not-allowed;
1210
+ }
1211
+ .date-calendar-box[aria-expanded=true] .date-calendar-box-time-selector .time-unit-button[data-state-out-of-bounds=true]:hover {
1212
+ background-color: transparent;
1213
+ }
1214
+ .date-calendar-box[aria-expanded=true] .date-calendar-box-time-selector[data-state-disabled=true] .time-unit-button {
1215
+ color: #cacaca !important;
1216
+ cursor: not-allowed;
1217
+ }
1218
+ .date-calendar-box[aria-expanded=true] .date-calendar-box-time-selector[data-state-disabled=true] .time-unit-button:hover {
1219
+ background-color: transparent;
1147
1220
  }
@@ -0,0 +1,23 @@
1
+ import { Moment } from 'moment';
2
+ import { ReactNode, RefObject } from 'react';
3
+ interface CalendarDayState {
4
+ isSelected: boolean;
5
+ isInRange?: boolean;
6
+ isDisabled?: boolean;
7
+ }
8
+ interface CalendarBoxProps {
9
+ testIdPrefix: string;
10
+ headerId: string;
11
+ calendarBoxOpen: boolean;
12
+ activeDescendant: string;
13
+ calendarDisplayDate: Moment;
14
+ containerRef: RefObject<HTMLDivElement | null>;
15
+ onNextMonth: () => void;
16
+ onPreviousMonth: () => void;
17
+ getDayState: (day: Moment) => CalendarDayState;
18
+ onSelectDay: (day: Moment) => void;
19
+ children?: ReactNode;
20
+ }
21
+ declare const CalendarBox: import('react').ForwardRefExoticComponent<CalendarBoxProps & import('react').RefAttributes<HTMLDivElement>>;
22
+ export { CalendarBox };
23
+ export type { CalendarBoxProps, CalendarDayState };
@@ -0,0 +1,254 @@
1
+ import { jsx, jsxs } from "react/jsx-runtime";
2
+ import { c as compilerRuntimeExports } from "../../_virtual/compiler-runtime.js";
3
+ import _ from "../../_virtual/lodash.js";
4
+ import hooks from "../../node_modules/moment/dist/moment.js";
5
+ import { forwardRef, useRef } from "react";
6
+ import Button from "../../buttons/Button.js";
7
+ import '../../assets/styles/button.css';/* empty css */
8
+ import { mergeRefs } from "../../form2/helpers.js";
9
+ import TextContent from "../../textContent/index.js";
10
+ import { generateCalendarWeeks, TOKEN_ISO_FORMAT } from "./helpers.js";
11
+ import { useCalendarPosition } from "./hooks/useCalendarPosition.js";
12
+ const CalendarBox = forwardRef((props, ref) => {
13
+ const $ = compilerRuntimeExports.c(69);
14
+ const {
15
+ testIdPrefix,
16
+ headerId,
17
+ calendarBoxOpen,
18
+ activeDescendant,
19
+ calendarDisplayDate,
20
+ containerRef,
21
+ onNextMonth,
22
+ onPreviousMonth,
23
+ getDayState,
24
+ onSelectDay,
25
+ children
26
+ } = props;
27
+ const calendarBoxRef = useRef(null);
28
+ const {
29
+ calendarBoxStyles
30
+ } = useCalendarPosition(calendarBoxOpen, containerRef, calendarBoxRef);
31
+ let t0;
32
+ let t1;
33
+ let t10;
34
+ let t11;
35
+ let t2;
36
+ let t3;
37
+ let t4;
38
+ let t5;
39
+ let t6;
40
+ let t7;
41
+ let t8;
42
+ let t9;
43
+ if ($[0] !== activeDescendant || $[1] !== calendarBoxOpen || $[2] !== calendarBoxStyles || $[3] !== calendarDisplayDate || $[4] !== getDayState || $[5] !== headerId || $[6] !== onNextMonth || $[7] !== onPreviousMonth || $[8] !== onSelectDay || $[9] !== ref || $[10] !== testIdPrefix) {
44
+ const weeks = generateCalendarWeeks(calendarDisplayDate);
45
+ const handleOnMouseDown = _temp;
46
+ if ($[23] !== ref) {
47
+ t5 = mergeRefs(ref, calendarBoxRef);
48
+ $[23] = ref;
49
+ $[24] = t5;
50
+ } else {
51
+ t5 = $[24];
52
+ }
53
+ t6 = calendarBoxStyles;
54
+ t7 = calendarBoxOpen;
55
+ t8 = "date-calendar-box";
56
+ t9 = `${testIdPrefix}-calendar-box`;
57
+ let t122;
58
+ if ($[25] !== onPreviousMonth) {
59
+ t122 = /* @__PURE__ */ jsx(Button, { boxShadow: false, type: "button", iconName: "arrow_left", title: "Mês anterior", className: "previous-month", "aria-label": "Mês anterior", onClick: onPreviousMonth, onMouseDown: handleOnMouseDown });
60
+ $[25] = onPreviousMonth;
61
+ $[26] = t122;
62
+ } else {
63
+ t122 = $[26];
64
+ }
65
+ let t132;
66
+ if ($[27] !== calendarDisplayDate) {
67
+ t132 = calendarDisplayDate.format("MMMM YYYY");
68
+ $[27] = calendarDisplayDate;
69
+ $[28] = t132;
70
+ } else {
71
+ t132 = $[28];
72
+ }
73
+ const t142 = `${testIdPrefix}-calendar-box-month-description`;
74
+ let t152;
75
+ if ($[29] !== calendarDisplayDate) {
76
+ t152 = calendarDisplayDate.format("MMMM YYYY");
77
+ $[29] = calendarDisplayDate;
78
+ $[30] = t152;
79
+ } else {
80
+ t152 = $[30];
81
+ }
82
+ let t16;
83
+ if ($[31] !== t132 || $[32] !== t142 || $[33] !== t152) {
84
+ t16 = /* @__PURE__ */ jsx("div", { "aria-live": "polite", className: "month-year", children: /* @__PURE__ */ jsx(TextContent, { "aria-label": t132, as: "p", "data-testid": t142, children: t152 }) });
85
+ $[31] = t132;
86
+ $[32] = t142;
87
+ $[33] = t152;
88
+ $[34] = t16;
89
+ } else {
90
+ t16 = $[34];
91
+ }
92
+ let t17;
93
+ if ($[35] !== onNextMonth) {
94
+ t17 = /* @__PURE__ */ jsx(Button, { boxShadow: false, type: "button", iconName: "arrow_right", title: "Próximo mês", className: "next-month", "aria-label": "Próximo mês", onClick: onNextMonth, onMouseDown: handleOnMouseDown });
95
+ $[35] = onNextMonth;
96
+ $[36] = t17;
97
+ } else {
98
+ t17 = $[36];
99
+ }
100
+ if ($[37] !== headerId || $[38] !== t122 || $[39] !== t16 || $[40] !== t17) {
101
+ t10 = /* @__PURE__ */ jsxs("div", { id: headerId, className: "date-calendar-box-header", children: [
102
+ t122,
103
+ t16,
104
+ t17
105
+ ] });
106
+ $[37] = headerId;
107
+ $[38] = t122;
108
+ $[39] = t16;
109
+ $[40] = t17;
110
+ $[41] = t10;
111
+ } else {
112
+ t10 = $[41];
113
+ }
114
+ if ($[42] === Symbol.for("react.memo_cache_sentinel")) {
115
+ t11 = /* @__PURE__ */ jsx("div", { "aria-label": "Dias da Semana", role: "grid", className: "date-calendar-box-days-of-week", children: hooks.weekdaysShort(true).map(_temp2) });
116
+ $[42] = t11;
117
+ } else {
118
+ t11 = $[42];
119
+ }
120
+ t4 = "date-calendar-box-grid-of-days";
121
+ t2 = "Calendário";
122
+ t3 = "grid";
123
+ t0 = "weeks";
124
+ let t18;
125
+ if ($[43] !== activeDescendant || $[44] !== calendarDisplayDate || $[45] !== getDayState || $[46] !== onSelectDay || $[47] !== testIdPrefix) {
126
+ t18 = (week, weekIndex) => /* @__PURE__ */ jsx("tr", { role: "row", children: week.map((day_0, dateIndex) => {
127
+ const idActiveDescendant = day_0.format(TOKEN_ISO_FORMAT);
128
+ const {
129
+ isSelected,
130
+ isInRange,
131
+ isDisabled
132
+ } = getDayState(day_0);
133
+ const isToday = _.isEqual(hooks().format(TOKEN_ISO_FORMAT), idActiveDescendant);
134
+ const hasFocus = _.isEqual(activeDescendant, idActiveDescendant);
135
+ const isCurrentMonth = day_0.month() === calendarDisplayDate.month();
136
+ const descriptionDate = day_0.format("LL");
137
+ const rangeAttribute = _.isUndefined(isInRange) ? {} : {
138
+ "data-state-is-in-range": isInRange
139
+ };
140
+ const boundsAttribute = _.isUndefined(isDisabled) ? {} : {
141
+ "data-state-out-of-bounds": isDisabled,
142
+ "aria-disabled": isDisabled
143
+ };
144
+ return /* @__PURE__ */ jsx("td", { role: "gridcell", children: /* @__PURE__ */ jsx(Button, { ...rangeAttribute, ...boundsAttribute, id: idActiveDescendant, type: "button", className: "day-button", boxShadow: false, tabIndex: -1, title: descriptionDate, disabled: isDisabled, "aria-label": descriptionDate, "aria-selected": isSelected, "data-testid": `${testIdPrefix}-day-button`, "data-state-is-today": isToday, "data-state-has-focus": hasFocus, "data-state-is-current-month": isCurrentMonth, label: day_0.date().toString(), onMouseDown: handleOnMouseDown, onClick: () => onSelectDay(day_0) }) }, dateIndex);
145
+ }) }, weekIndex + 1);
146
+ $[43] = activeDescendant;
147
+ $[44] = calendarDisplayDate;
148
+ $[45] = getDayState;
149
+ $[46] = onSelectDay;
150
+ $[47] = testIdPrefix;
151
+ $[48] = t18;
152
+ } else {
153
+ t18 = $[48];
154
+ }
155
+ t1 = weeks.map(t18);
156
+ $[0] = activeDescendant;
157
+ $[1] = calendarBoxOpen;
158
+ $[2] = calendarBoxStyles;
159
+ $[3] = calendarDisplayDate;
160
+ $[4] = getDayState;
161
+ $[5] = headerId;
162
+ $[6] = onNextMonth;
163
+ $[7] = onPreviousMonth;
164
+ $[8] = onSelectDay;
165
+ $[9] = ref;
166
+ $[10] = testIdPrefix;
167
+ $[11] = t0;
168
+ $[12] = t1;
169
+ $[13] = t10;
170
+ $[14] = t11;
171
+ $[15] = t2;
172
+ $[16] = t3;
173
+ $[17] = t4;
174
+ $[18] = t5;
175
+ $[19] = t6;
176
+ $[20] = t7;
177
+ $[21] = t8;
178
+ $[22] = t9;
179
+ } else {
180
+ t0 = $[11];
181
+ t1 = $[12];
182
+ t10 = $[13];
183
+ t11 = $[14];
184
+ t2 = $[15];
185
+ t3 = $[16];
186
+ t4 = $[17];
187
+ t5 = $[18];
188
+ t6 = $[19];
189
+ t7 = $[20];
190
+ t8 = $[21];
191
+ t9 = $[22];
192
+ }
193
+ let t12;
194
+ if ($[49] !== t0 || $[50] !== t1) {
195
+ t12 = /* @__PURE__ */ jsx("tbody", { className: t0, children: t1 });
196
+ $[49] = t0;
197
+ $[50] = t1;
198
+ $[51] = t12;
199
+ } else {
200
+ t12 = $[51];
201
+ }
202
+ let t13;
203
+ if ($[52] !== t12 || $[53] !== t2 || $[54] !== t3) {
204
+ t13 = /* @__PURE__ */ jsx("table", { "aria-label": t2, role: t3, children: t12 });
205
+ $[52] = t12;
206
+ $[53] = t2;
207
+ $[54] = t3;
208
+ $[55] = t13;
209
+ } else {
210
+ t13 = $[55];
211
+ }
212
+ let t14;
213
+ if ($[56] !== t13 || $[57] !== t4) {
214
+ t14 = /* @__PURE__ */ jsx("div", { className: t4, children: t13 });
215
+ $[56] = t13;
216
+ $[57] = t4;
217
+ $[58] = t14;
218
+ } else {
219
+ t14 = $[58];
220
+ }
221
+ let t15;
222
+ if ($[59] !== children || $[60] !== t10 || $[61] !== t11 || $[62] !== t14 || $[63] !== t5 || $[64] !== t6 || $[65] !== t7 || $[66] !== t8 || $[67] !== t9) {
223
+ t15 = /* @__PURE__ */ jsxs("div", { ref: t5, style: t6, "aria-expanded": t7, className: t8, "data-testid": t9, children: [
224
+ t10,
225
+ t11,
226
+ t14,
227
+ children
228
+ ] });
229
+ $[59] = children;
230
+ $[60] = t10;
231
+ $[61] = t11;
232
+ $[62] = t14;
233
+ $[63] = t5;
234
+ $[64] = t6;
235
+ $[65] = t7;
236
+ $[66] = t8;
237
+ $[67] = t9;
238
+ $[68] = t15;
239
+ } else {
240
+ t15 = $[68];
241
+ }
242
+ return t15;
243
+ });
244
+ CalendarBox.displayName = "DateCalendarBox";
245
+ function _temp(event) {
246
+ event?.preventDefault?.();
247
+ }
248
+ function _temp2(day, idx) {
249
+ return /* @__PURE__ */ jsx("span", { title: day, role: "columnheader", children: day }, `day-of-week-${idx + 1}`);
250
+ }
251
+ export {
252
+ CalendarBox
253
+ };
254
+ //# sourceMappingURL=calendarbox.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"calendarbox.js","sources":["../../../src/lib/inputs2/date/calendarbox.tsx"],"sourcesContent":["import _ from 'lodash';\nimport moment, { type Moment } from 'moment';\nimport { forwardRef, MouseEvent, useRef, type ReactNode, type RefObject } from 'react';\nimport Button from '../../buttons';\nimport { mergeRefs } from '../../form2/helpers';\nimport TextContent from '../../textContent';\nimport { generateCalendarWeeks, TOKEN_ISO_FORMAT } from './helpers';\nimport { useCalendarPosition } from './hooks/useCalendarPosition';\n\ninterface CalendarDayState {\n isSelected: boolean;\n isInRange?: boolean;\n isDisabled?: boolean;\n}\n\ninterface CalendarBoxProps {\n testIdPrefix: string;\n headerId: string;\n calendarBoxOpen: boolean;\n activeDescendant: string;\n calendarDisplayDate: Moment;\n containerRef: RefObject<HTMLDivElement | null>;\n onNextMonth: () => void;\n onPreviousMonth: () => void;\n getDayState: (day: Moment) => CalendarDayState;\n onSelectDay: (day: Moment) => void;\n children?: ReactNode;\n}\n\nconst CalendarBox = forwardRef<HTMLDivElement, CalendarBoxProps>((props, ref) => {\n const {\n testIdPrefix, headerId, calendarBoxOpen, activeDescendant, calendarDisplayDate,\n containerRef, onNextMonth, onPreviousMonth, getDayState, onSelectDay, children,\n } = props;\n const calendarBoxRef = useRef<HTMLDivElement | null>(null);\n const { calendarBoxStyles } = useCalendarPosition(calendarBoxOpen, containerRef, calendarBoxRef);\n\n const weeks = generateCalendarWeeks(calendarDisplayDate);\n\n // O calendário fecha no blur do input, então nada aqui dentro pode roubar o foco:\n // segurar o mousedown é o que mantém o campo focado enquanto se clica num dia.\n const handleOnMouseDown = (event: MouseEvent<HTMLButtonElement>) => {\n event?.preventDefault?.();\n };\n\n return (\n <div\n ref={mergeRefs(ref, calendarBoxRef)}\n style={calendarBoxStyles}\n aria-expanded={calendarBoxOpen}\n className=\"date-calendar-box\"\n data-testid={`${testIdPrefix}-calendar-box`}>\n <div id={headerId} className=\"date-calendar-box-header\">\n <Button\n boxShadow={false}\n type=\"button\"\n iconName=\"arrow_left\"\n title=\"Mês anterior\"\n className=\"previous-month\"\n aria-label=\"Mês anterior\"\n onClick={onPreviousMonth}\n onMouseDown={handleOnMouseDown} />\n <div aria-live=\"polite\" className=\"month-year\">\n <TextContent\n aria-label={calendarDisplayDate.format('MMMM YYYY')}\n as=\"p\"\n data-testid={`${testIdPrefix}-calendar-box-month-description`}>\n {calendarDisplayDate.format('MMMM YYYY')}\n </TextContent>\n </div>\n <Button\n boxShadow={false}\n type=\"button\"\n iconName=\"arrow_right\"\n title=\"Próximo mês\"\n className=\"next-month\"\n aria-label=\"Próximo mês\"\n onClick={onNextMonth}\n onMouseDown={handleOnMouseDown} />\n </div>\n <div aria-label=\"Dias da Semana\" role=\"grid\" className=\"date-calendar-box-days-of-week\">\n {moment.weekdaysShort(true).map((day, idx) => (\n <span\n title={day}\n role=\"columnheader\"\n key={`day-of-week-${idx + 1}`}>\n {day}\n </span>\n ))}\n </div>\n <div className=\"date-calendar-box-grid-of-days\">\n <table aria-label=\"Calendário\" role=\"grid\">\n <tbody className=\"weeks\">\n {weeks.map((week, weekIndex) => (\n <tr role=\"row\" key={weekIndex + 1}>\n {week.map((day, dateIndex) => {\n const idActiveDescendant = day.format(TOKEN_ISO_FORMAT);\n const { isSelected, isInRange, isDisabled } = getDayState(day);\n const isToday = _.isEqual(moment().format(TOKEN_ISO_FORMAT), idActiveDescendant);\n const hasFocus = _.isEqual(activeDescendant, idActiveDescendant);\n const isCurrentMonth = day.month() === calendarDisplayDate.month();\n const descriptionDate = day.format('LL');\n // Espalhados condicionalmente para que a variante que não usa o estado\n // não ganhe o atributo no DOM — ausente não é o mesmo que \"false\".\n const rangeAttribute = _.isUndefined(isInRange)\n ? {}\n : { 'data-state-is-in-range': isInRange };\n const boundsAttribute = _.isUndefined(isDisabled)\n ? {}\n : { 'data-state-out-of-bounds': isDisabled, 'aria-disabled': isDisabled };\n return (\n <td role=\"gridcell\" key={dateIndex}>\n <Button\n {...rangeAttribute}\n {...boundsAttribute}\n id={idActiveDescendant}\n type=\"button\"\n className=\"day-button\"\n boxShadow={false}\n tabIndex={-1}\n title={descriptionDate}\n disabled={isDisabled}\n aria-label={descriptionDate}\n aria-selected={isSelected}\n data-testid={`${testIdPrefix}-day-button`}\n data-state-is-today={isToday}\n data-state-has-focus={hasFocus}\n data-state-is-current-month={isCurrentMonth}\n label={day.date().toString()}\n onMouseDown={handleOnMouseDown}\n onClick={() => onSelectDay(day)} />\n </td>\n );\n })}\n </tr>\n ))}\n </tbody>\n </table>\n </div>\n {children}\n </div>\n );\n});\n\nCalendarBox.displayName = 'DateCalendarBox';\n\nexport { CalendarBox };\nexport type { CalendarBoxProps, CalendarDayState };\n"],"names":["CalendarBox","forwardRef","props","ref","$","_c","testIdPrefix","headerId","calendarBoxOpen","activeDescendant","calendarDisplayDate","containerRef","onNextMonth","onPreviousMonth","getDayState","onSelectDay","children","calendarBoxRef","useRef","calendarBoxStyles","useCalendarPosition","t0","t1","t10","t11","t2","t3","t4","t5","t6","t7","t8","t9","weeks","generateCalendarWeeks","handleOnMouseDown","_temp","mergeRefs","t12","t13","format","t14","t15","t16","t17","Symbol","for","moment","weekdaysShort","map","_temp2","t18","week","weekIndex","day_0","dateIndex","idActiveDescendant","day","TOKEN_ISO_FORMAT","isSelected","isInRange","isDisabled","isToday","_","isEqual","hasFocus","isCurrentMonth","month","descriptionDate","rangeAttribute","isUndefined","boundsAttribute","date","toString","displayName","event","preventDefault","idx"],"mappings":"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"}