@coreui/react-pro 4.11.0-next.0 → 4.11.0-next.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@coreui/react-pro",
3
- "version": "4.11.0-next.0",
3
+ "version": "4.11.0-next.1",
4
4
  "description": "UI Components Library for React.js",
5
5
  "keywords": [
6
6
  "react",
@@ -174,8 +174,10 @@ const Calendar = (props: {
174
174
  onCellKeyDown: (event: KeyboardEvent<HTMLDivElement>, date: Date) => void
175
175
  onCellMouseEnter: (date: Date) => void
176
176
  onCellMouseLeave: () => void
177
- onMonthClick: (month: number, view: string) => void
178
- onYearClick: (date: Date, view: string) => void
177
+ onMonthClick: (month: number) => void
178
+ onMonthKeyDown: (event: KeyboardEvent<HTMLDivElement>, month: number) => void
179
+ onYearClick: (date: Date) => void
180
+ onYearKeyDown: (event: KeyboardEvent<HTMLDivElement>, date: Date) => void
179
181
  selectAdjacementDays: boolean
180
182
  selectEndDate: boolean | undefined
181
183
  showAdjacementDays: boolean
@@ -199,7 +201,9 @@ const Calendar = (props: {
199
201
  onCellMouseEnter,
200
202
  onCellMouseLeave,
201
203
  onMonthClick,
204
+ onMonthKeyDown,
202
205
  onYearClick,
206
+ onYearKeyDown,
203
207
  selectAdjacementDays,
204
208
  selectEndDate,
205
209
  showAdjacementDays,
@@ -258,6 +262,7 @@ const Calendar = (props: {
258
262
  today: month === 'current' && isToday(date),
259
263
  disabled: isDateDisabled(date, minDate, maxDate, disabledDates),
260
264
  [month]: true,
265
+ clickable: month !== 'current' && selectAdjacementDays,
261
266
  last: isLastDayOfMonth(date),
262
267
  'range-hover':
263
268
  month === 'current' &&
@@ -270,7 +275,12 @@ const Calendar = (props: {
270
275
  end: isEndDate(date, startDate, endDate),
271
276
  })}
272
277
  key={idx}
273
- tabIndex={0}
278
+ tabIndex={
279
+ (month === 'current' || selectAdjacementDays) &&
280
+ !isDateDisabled(date, minDate, maxDate, disabledDates)
281
+ ? 0
282
+ : -1
283
+ }
274
284
  title={date.toLocaleDateString(locale)}
275
285
  {...((month === 'current' || selectAdjacementDays) && {
276
286
  onBlur: () => onCellMouseLeave(),
@@ -305,9 +315,11 @@ const Calendar = (props: {
305
315
  {row.map((month, idx) => {
306
316
  return (
307
317
  <td
308
- key={idx}
309
318
  className="calendar-cell month"
310
- onClick={() => onMonthClick(index * 3 + idx - addMonths, 'days')}
319
+ key={idx}
320
+ onClick={() => onMonthClick(index * 3 + idx - addMonths)}
321
+ onKeyDown={(event) => onMonthKeyDown(event, index * 3 + idx - addMonths)}
322
+ tabIndex={0}
311
323
  >
312
324
  <div className="calendar-cell-inner">{month}</div>
313
325
  </td>
@@ -323,14 +335,18 @@ const Calendar = (props: {
323
335
  {row.map((year, idx) => {
324
336
  return (
325
337
  <td
326
- key={idx}
327
338
  className="calendar-cell year"
339
+ key={idx}
328
340
  onClick={() =>
329
- onYearClick(
341
+ onYearClick(new Date(year, date.getMonth() - addMonths, date.getDate()))
342
+ }
343
+ onKeyDown={(event) =>
344
+ onYearKeyDown(
345
+ event,
330
346
  new Date(year, date.getMonth() - addMonths, date.getDate()),
331
- 'months',
332
347
  )
333
348
  }
349
+ tabIndex={0}
334
350
  >
335
351
  <div className="calendar-cell-inner">
336
352
  {new Date(year, 0, 1).toLocaleDateString(locale, { year: 'numeric' })}
@@ -648,6 +664,18 @@ export const CCalendar = forwardRef<HTMLDivElement, CCalendarProps>(
648
664
  }
649
665
  }
650
666
 
667
+ const handleMonthClick = (month: number) => {
668
+ setCalendarPage(0, 0, month)
669
+ setView('days')
670
+ }
671
+
672
+ const handleMonthKeyDown = (event: React.KeyboardEvent<HTMLDivElement>, month: number) => {
673
+ if (event.code === 'Space' || event.key === 'Enter') {
674
+ setCalendarPage(0, 0, month)
675
+ setView('days')
676
+ }
677
+ }
678
+
651
679
  const handleNavigationOnClick = (direction: string, double = false) => {
652
680
  if (direction === 'prev') {
653
681
  if (double) {
@@ -679,6 +707,18 @@ export const CCalendar = forwardRef<HTMLDivElement, CCalendarProps>(
679
707
  }
680
708
  }
681
709
 
710
+ const handleYearClick = (date: Date) => {
711
+ setCalendarDate(date)
712
+ setView('months')
713
+ }
714
+
715
+ const handleYearKeyDown = (event: React.KeyboardEvent<HTMLDivElement>, date: Date) => {
716
+ if (event.code === 'Space' || event.key === 'Enter') {
717
+ setCalendarDate(date)
718
+ setView('months')
719
+ }
720
+ }
721
+
682
722
  return (
683
723
  <div className={classNames('calendars', className)}>
684
724
  {_calendarDate &&
@@ -714,14 +754,10 @@ export const CCalendar = forwardRef<HTMLDivElement, CCalendarProps>(
714
754
  onCellKeyDown={(event, date) => handleCellKeyDown(event, date, index)}
715
755
  onCellMouseEnter={handleCellMouseEnter}
716
756
  onCellMouseLeave={handleCellMouseLeave}
717
- onMonthClick={(month, view) => {
718
- setCalendarPage(0, 0, month)
719
- setView(view)
720
- }}
721
- onYearClick={(date, view) => {
722
- setCalendarDate(date)
723
- setView(view)
724
- }}
757
+ onMonthClick={handleMonthClick}
758
+ onMonthKeyDown={handleMonthKeyDown}
759
+ onYearClick={handleYearClick}
760
+ onYearKeyDown={handleYearKeyDown}
725
761
  selectEndDate={_selectEndDate}
726
762
  selectAdjacementDays={selectAdjacementDays}
727
763
  showAdjacementDays={showAdjacementDays}
@@ -249,6 +249,8 @@ export const CMultiSelect = forwardRef<HTMLDivElement, CMultiSelectProps>(
249
249
 
250
250
  const handleSearchKeyDown = (event: KeyboardEvent<HTMLInputElement>) => {
251
251
  if (event.key === 'Enter' && searchValue && allowCreateOptions) {
252
+ event.preventDefault()
253
+
252
254
  if (userOption) {
253
255
  setSelected([...selected, ...userOption])
254
256
  setUserOptions([...userOptions, ...userOption])