@elliemae/ds-controlled-form 2.0.0-alpha.8 → 2.0.0-next.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 (128) hide show
  1. package/cjs/controlled-date-range-picker/parts/ControlledDateRangeContent.js +6 -2
  2. package/cjs/controlled-date-time-picker/ControlledDateTimePickerDatatestid.js +26 -4
  3. package/cjs/controlled-date-time-picker/config/useControlledDateTimePicker.js +54 -3
  4. package/cjs/controlled-date-time-picker/config/useGetDestructuredValues.js +146 -0
  5. package/cjs/controlled-date-time-picker/index.js +1 -1
  6. package/cjs/controlled-date-time-picker/parts/ClearButton/ClearButton.js +8 -7
  7. package/cjs/controlled-date-time-picker/parts/DateInputs/DDInput.js +3 -2
  8. package/cjs/controlled-date-time-picker/parts/DateInputs/DateInputs.js +8 -4
  9. package/cjs/controlled-date-time-picker/parts/DateInputs/MMInput.js +3 -2
  10. package/cjs/controlled-date-time-picker/parts/DateInputs/YYYYInput.js +3 -2
  11. package/cjs/controlled-date-time-picker/parts/DateInputs/useDateInputs.js +3 -25
  12. package/cjs/controlled-date-time-picker/parts/Pickers/Calendar/CalendarBody.js +7 -4
  13. package/cjs/controlled-date-time-picker/parts/Pickers/Calendar/CalendarContent.js +11 -6
  14. package/cjs/controlled-date-time-picker/parts/Pickers/Calendar/CalendarContext.js +4 -0
  15. package/cjs/controlled-date-time-picker/parts/Pickers/Calendar/CalendarDaysList.js +24 -5
  16. package/cjs/controlled-date-time-picker/parts/Pickers/Calendar/CalendarHead.js +34 -32
  17. package/cjs/controlled-date-time-picker/parts/Pickers/Calendar/CalendarIconTrigger.js +13 -11
  18. package/cjs/controlled-date-time-picker/parts/Pickers/Calendar/CalendarMonthDays.js +6 -2
  19. package/cjs/controlled-date-time-picker/parts/Pickers/Calendar/CalendarWeekDays.js +34 -2
  20. package/cjs/controlled-date-time-picker/parts/Pickers/Calendar/CalendarWrapper.js +2 -0
  21. package/cjs/controlled-date-time-picker/parts/Pickers/Calendar/Day.js +39 -20
  22. package/cjs/controlled-date-time-picker/parts/Pickers/Calendar/Styleds.js +56 -37
  23. package/cjs/controlled-date-time-picker/parts/Pickers/Calendar/useConfigCalendarCTX.js +34 -3
  24. package/cjs/controlled-date-time-picker/parts/Pickers/CalendarWithTimeWheel/CalendarWithTimeWheelContent.js +3 -1
  25. package/cjs/controlled-date-time-picker/parts/Pickers/CalendarWithTimeWheel/CalendarWithTimeWheelContext.js +1 -0
  26. package/cjs/controlled-date-time-picker/parts/Pickers/CalendarWithTimeWheel/CalendarWithTimeWheelIconTrigger.js +13 -11
  27. package/cjs/controlled-date-time-picker/parts/Pickers/CalendarWithTimeWheel/CalendarWithTimeWheelWrapper.js +2 -0
  28. package/cjs/controlled-date-time-picker/parts/Pickers/CalendarWithTimeWheel/Styleds.js +11 -4
  29. package/cjs/controlled-date-time-picker/parts/Pickers/CalendarWithTimeWheel/useConfigCalendarWithTimeWheelCTX.js +5 -3
  30. package/cjs/controlled-date-time-picker/parts/Pickers/TimeWheel/HoursList.js +17 -18
  31. package/cjs/controlled-date-time-picker/parts/Pickers/TimeWheel/MeridiemList.js +15 -22
  32. package/cjs/controlled-date-time-picker/parts/Pickers/TimeWheel/MinutesList.js +18 -19
  33. package/cjs/controlled-date-time-picker/parts/Pickers/TimeWheel/SecondsList.js +9 -10
  34. package/cjs/controlled-date-time-picker/parts/Pickers/TimeWheel/Styleds.js +33 -34
  35. package/cjs/controlled-date-time-picker/parts/Pickers/TimeWheel/TimeWheelContent.js +3 -1
  36. package/cjs/controlled-date-time-picker/parts/Pickers/TimeWheel/TimeWheelContext.js +1 -0
  37. package/cjs/controlled-date-time-picker/parts/Pickers/TimeWheel/TimeWheelIconTrigger.js +11 -10
  38. package/cjs/controlled-date-time-picker/parts/Pickers/TimeWheel/TimeWheelWrapper.js +2 -0
  39. package/cjs/controlled-date-time-picker/parts/Pickers/TimeWheel/useConfigTimePickerCTX.js +5 -3
  40. package/cjs/controlled-date-time-picker/parts/Styleds.js +4 -5
  41. package/cjs/controlled-date-time-picker/parts/TimeInputs/HHInput.js +2 -1
  42. package/cjs/controlled-date-time-picker/parts/TimeInputs/MeridiemInput.js +2 -1
  43. package/cjs/controlled-date-time-picker/parts/TimeInputs/MinutesInput.js +2 -1
  44. package/cjs/controlled-date-time-picker/parts/TimeInputs/TimeInputs.js +7 -3
  45. package/cjs/controlled-date-time-picker/parts/TimeInputs/useTimeInputs.js +7 -30
  46. package/cjs/controlled-date-time-picker/utils/constants.js +43 -0
  47. package/cjs/controlled-date-time-picker/utils/dateHelpers.js +2 -2
  48. package/cjs/controlled-date-time-picker/utils/dateTimeHelpers.js +2 -2
  49. package/cjs/controlled-date-time-picker/utils/stringHelpers.js +16 -0
  50. package/cjs/index.js +1 -1
  51. package/esm/controlled-date-range-picker/parts/ControlledDateRangeContent.js +6 -2
  52. package/esm/controlled-date-time-picker/ControlledDateTimePickerDatatestid.js +26 -4
  53. package/esm/controlled-date-time-picker/config/useControlledDateTimePicker.js +54 -3
  54. package/esm/controlled-date-time-picker/config/useGetDestructuredValues.js +140 -0
  55. package/esm/controlled-date-time-picker/index.js +1 -1
  56. package/esm/controlled-date-time-picker/parts/ClearButton/ClearButton.js +7 -6
  57. package/esm/controlled-date-time-picker/parts/DateInputs/DDInput.js +3 -2
  58. package/esm/controlled-date-time-picker/parts/DateInputs/DateInputs.js +8 -4
  59. package/esm/controlled-date-time-picker/parts/DateInputs/MMInput.js +3 -2
  60. package/esm/controlled-date-time-picker/parts/DateInputs/YYYYInput.js +3 -2
  61. package/esm/controlled-date-time-picker/parts/DateInputs/useDateInputs.js +6 -27
  62. package/esm/controlled-date-time-picker/parts/Pickers/Calendar/CalendarBody.js +7 -4
  63. package/esm/controlled-date-time-picker/parts/Pickers/Calendar/CalendarContent.js +12 -7
  64. package/esm/controlled-date-time-picker/parts/Pickers/Calendar/CalendarContext.js +4 -0
  65. package/esm/controlled-date-time-picker/parts/Pickers/Calendar/CalendarDaysList.js +26 -7
  66. package/esm/controlled-date-time-picker/parts/Pickers/Calendar/CalendarHead.js +34 -32
  67. package/esm/controlled-date-time-picker/parts/Pickers/Calendar/CalendarIconTrigger.js +12 -9
  68. package/esm/controlled-date-time-picker/parts/Pickers/Calendar/CalendarMonthDays.js +6 -2
  69. package/esm/controlled-date-time-picker/parts/Pickers/Calendar/CalendarWeekDays.js +35 -3
  70. package/esm/controlled-date-time-picker/parts/Pickers/Calendar/CalendarWrapper.js +2 -0
  71. package/esm/controlled-date-time-picker/parts/Pickers/Calendar/Day.js +38 -20
  72. package/esm/controlled-date-time-picker/parts/Pickers/Calendar/Styleds.js +54 -36
  73. package/esm/controlled-date-time-picker/parts/Pickers/Calendar/useConfigCalendarCTX.js +35 -4
  74. package/esm/controlled-date-time-picker/parts/Pickers/CalendarWithTimeWheel/CalendarWithTimeWheelContent.js +3 -1
  75. package/esm/controlled-date-time-picker/parts/Pickers/CalendarWithTimeWheel/CalendarWithTimeWheelContext.js +1 -0
  76. package/esm/controlled-date-time-picker/parts/Pickers/CalendarWithTimeWheel/CalendarWithTimeWheelIconTrigger.js +12 -9
  77. package/esm/controlled-date-time-picker/parts/Pickers/CalendarWithTimeWheel/CalendarWithTimeWheelWrapper.js +2 -0
  78. package/esm/controlled-date-time-picker/parts/Pickers/CalendarWithTimeWheel/Styleds.js +11 -5
  79. package/esm/controlled-date-time-picker/parts/Pickers/CalendarWithTimeWheel/useConfigCalendarWithTimeWheelCTX.js +5 -3
  80. package/esm/controlled-date-time-picker/parts/Pickers/TimeWheel/HoursList.js +17 -16
  81. package/esm/controlled-date-time-picker/parts/Pickers/TimeWheel/MeridiemList.js +15 -20
  82. package/esm/controlled-date-time-picker/parts/Pickers/TimeWheel/MinutesList.js +18 -17
  83. package/esm/controlled-date-time-picker/parts/Pickers/TimeWheel/SecondsList.js +9 -10
  84. package/esm/controlled-date-time-picker/parts/Pickers/TimeWheel/Styleds.js +33 -34
  85. package/esm/controlled-date-time-picker/parts/Pickers/TimeWheel/TimeWheelContent.js +3 -1
  86. package/esm/controlled-date-time-picker/parts/Pickers/TimeWheel/TimeWheelContext.js +1 -0
  87. package/esm/controlled-date-time-picker/parts/Pickers/TimeWheel/TimeWheelIconTrigger.js +11 -9
  88. package/esm/controlled-date-time-picker/parts/Pickers/TimeWheel/TimeWheelWrapper.js +2 -0
  89. package/esm/controlled-date-time-picker/parts/Pickers/TimeWheel/useConfigTimePickerCTX.js +5 -3
  90. package/esm/controlled-date-time-picker/parts/Styleds.js +4 -4
  91. package/esm/controlled-date-time-picker/parts/TimeInputs/HHInput.js +2 -1
  92. package/esm/controlled-date-time-picker/parts/TimeInputs/MeridiemInput.js +2 -1
  93. package/esm/controlled-date-time-picker/parts/TimeInputs/MinutesInput.js +2 -1
  94. package/esm/controlled-date-time-picker/parts/TimeInputs/TimeInputs.js +7 -3
  95. package/esm/controlled-date-time-picker/parts/TimeInputs/useTimeInputs.js +8 -31
  96. package/esm/controlled-date-time-picker/utils/constants.js +37 -0
  97. package/esm/controlled-date-time-picker/utils/dateHelpers.js +1 -1
  98. package/esm/controlled-date-time-picker/utils/dateTimeHelpers.js +2 -2
  99. package/esm/controlled-date-time-picker/utils/stringHelpers.js +16 -1
  100. package/esm/index.js +1 -1
  101. package/package.json +12 -4
  102. package/types/controlled-date-time-picker/ControlledDateTimePickerDatatestid.d.ts +25 -3
  103. package/types/controlled-date-time-picker/config/useGetDestructuredValues.d.ts +4 -0
  104. package/types/controlled-date-time-picker/index.d.ts +1 -1
  105. package/types/controlled-date-time-picker/parts/DateInputs/DDInput.d.ts +2 -1
  106. package/types/controlled-date-time-picker/parts/DateInputs/MMInput.d.ts +2 -1
  107. package/types/controlled-date-time-picker/parts/DateInputs/YYYYInput.d.ts +2 -1
  108. package/types/controlled-date-time-picker/parts/DateInputs/useDateInputs.d.ts +0 -9
  109. package/types/controlled-date-time-picker/parts/Pickers/Calendar/CalendarBody.d.ts +5 -1
  110. package/types/controlled-date-time-picker/parts/Pickers/Calendar/CalendarContext.d.ts +9 -5
  111. package/types/controlled-date-time-picker/parts/Pickers/Calendar/CalendarDaysList.d.ts +5 -3
  112. package/types/controlled-date-time-picker/parts/Pickers/Calendar/Day.d.ts +5 -3
  113. package/types/controlled-date-time-picker/parts/Pickers/Calendar/Styleds.d.ts +48 -103
  114. package/types/controlled-date-time-picker/parts/Pickers/Calendar/useFocusLogic.d.ts +2 -2
  115. package/types/controlled-date-time-picker/parts/Pickers/Calendar/useKeyboardHandlers.d.ts +4 -4
  116. package/types/controlled-date-time-picker/parts/Pickers/Calendar/usePopperTriggerLogic.d.ts +2 -2
  117. package/types/controlled-date-time-picker/parts/Pickers/CalendarWithTimeWheel/CalendarWithTimeWheelContext.d.ts +1 -0
  118. package/types/controlled-date-time-picker/parts/Pickers/CalendarWithTimeWheel/Styleds.d.ts +21 -0
  119. package/types/controlled-date-time-picker/parts/Pickers/TimeWheel/Styleds.d.ts +65 -4
  120. package/types/controlled-date-time-picker/parts/Pickers/TimeWheel/TimeWheelContext.d.ts +1 -0
  121. package/types/controlled-date-time-picker/parts/Styleds.d.ts +21 -1
  122. package/types/controlled-date-time-picker/parts/TimeInputs/HHInput.d.ts +2 -1
  123. package/types/controlled-date-time-picker/parts/TimeInputs/MeridiemInput.d.ts +2 -1
  124. package/types/controlled-date-time-picker/parts/TimeInputs/MinutesInput.d.ts +2 -1
  125. package/types/controlled-date-time-picker/utils/constants.d.ts +35 -0
  126. package/types/controlled-date-time-picker/utils/dateHelpers.d.ts +2 -2
  127. package/types/controlled-date-time-picker/utils/dateTimeHelpers.d.ts +1 -1
  128. package/types/controlled-date-time-picker/utils/stringHelpers.d.ts +1 -0
@@ -1,8 +1,40 @@
1
1
  import _jsx from '@babel/runtime/helpers/esm/jsx';
2
2
  import React from 'react';
3
- import { StyledWeekDaysUList } from './Styleds.js';
3
+ import { StyledWeekDaysListWrapper, StyledWeekDaysHeaderItem } from './Styleds.js';
4
4
 
5
- var _StyledWeekDaysUList;
6
- const CalendarWeekDays = /*#__PURE__*/React.memo(() => _StyledWeekDaysUList || (_StyledWeekDaysUList = /*#__PURE__*/_jsx(StyledWeekDaysUList, {}, void 0, /*#__PURE__*/_jsx("li", {}, void 0, "sun"), /*#__PURE__*/_jsx("li", {}, void 0, "mon"), /*#__PURE__*/_jsx("li", {}, void 0, "tue"), /*#__PURE__*/_jsx("li", {}, void 0, "wed"), /*#__PURE__*/_jsx("li", {}, void 0, "thu"), /*#__PURE__*/_jsx("li", {}, void 0, "fri"), /*#__PURE__*/_jsx("li", {}, void 0, "sat"))));
5
+ var _StyledWeekDaysHeader, _StyledWeekDaysHeader2, _StyledWeekDaysHeader3, _StyledWeekDaysHeader4, _StyledWeekDaysHeader5, _StyledWeekDaysHeader6, _StyledWeekDaysHeader7;
6
+ const CalendarWeekDays = /*#__PURE__*/React.memo(() => /*#__PURE__*/_jsx("span", {
7
+ role: "rowgroup"
8
+ }, void 0, /*#__PURE__*/_jsx(StyledWeekDaysListWrapper, {
9
+ role: "row",
10
+ cols: ['32px', '32px', '32px', '32px', '32px', '32px', '32px'],
11
+ rows: ['22px'],
12
+ py: "xxxs",
13
+ px: "6px",
14
+ justifyContent: "space-between",
15
+ alignItems: "center",
16
+ isHeader: true
17
+ }, void 0, _StyledWeekDaysHeader || (_StyledWeekDaysHeader = /*#__PURE__*/_jsx(StyledWeekDaysHeaderItem, {
18
+ role: "columnheader",
19
+ "aria-colindex": 1
20
+ }, void 0, "sun")), _StyledWeekDaysHeader2 || (_StyledWeekDaysHeader2 = /*#__PURE__*/_jsx(StyledWeekDaysHeaderItem, {
21
+ role: "columnheader",
22
+ "aria-colindex": 2
23
+ }, void 0, "mon")), _StyledWeekDaysHeader3 || (_StyledWeekDaysHeader3 = /*#__PURE__*/_jsx(StyledWeekDaysHeaderItem, {
24
+ role: "columnheader",
25
+ "aria-colindex": 3
26
+ }, void 0, "tue")), _StyledWeekDaysHeader4 || (_StyledWeekDaysHeader4 = /*#__PURE__*/_jsx(StyledWeekDaysHeaderItem, {
27
+ role: "columnheader",
28
+ "aria-colindex": 4
29
+ }, void 0, "wed")), _StyledWeekDaysHeader5 || (_StyledWeekDaysHeader5 = /*#__PURE__*/_jsx(StyledWeekDaysHeaderItem, {
30
+ role: "columnheader",
31
+ "aria-colindex": 5
32
+ }, void 0, "thu")), _StyledWeekDaysHeader6 || (_StyledWeekDaysHeader6 = /*#__PURE__*/_jsx(StyledWeekDaysHeaderItem, {
33
+ role: "columnheader",
34
+ "aria-colindex": 6
35
+ }, void 0, "fri")), _StyledWeekDaysHeader7 || (_StyledWeekDaysHeader7 = /*#__PURE__*/_jsx(StyledWeekDaysHeaderItem, {
36
+ role: "columnheader",
37
+ "aria-colindex": 7
38
+ }, void 0, "sat")))));
7
39
 
8
40
  export { CalendarWeekDays };
@@ -1,6 +1,7 @@
1
1
  import _defineProperty from '@babel/runtime/helpers/esm/defineProperty';
2
2
  import _jsx from '@babel/runtime/helpers/esm/jsx';
3
3
  import { useContext } from 'react';
4
+ import { ControlledDateTimePickerDatatestid } from '../../../ControlledDateTimePickerDatatestid.js';
4
5
  import { CalendarContent } from './CalendarContent.js';
5
6
  import { CalendarContext } from './CalendarContext.js';
6
7
  import { jsxs, jsx } from 'react/jsx-runtime';
@@ -28,6 +29,7 @@ const CalendarWrapper = () => {
28
29
  zIndex: 110
29
30
  })
30
31
  }, attributes.popper), {}, {
32
+ "data-testid": ControlledDateTimePickerDatatestid.CONTEXTUAL_MENU.CALENDAR,
31
33
  children: [_CalendarContent2 || (_CalendarContent2 = /*#__PURE__*/_jsx(CalendarContent, {})), /*#__PURE__*/jsx("div", {
32
34
  ref: setArrowElement,
33
35
  style: styles.arrow
@@ -1,16 +1,25 @@
1
+ import _defineProperty from '@babel/runtime/helpers/esm/defineProperty';
1
2
  import _jsx from '@babel/runtime/helpers/esm/jsx';
2
3
  import { useContext, useMemo, useCallback } from 'react';
3
4
  import { compareTwoDatesDayEquality, getDayFromDateString, isSameDateMoment, getDateStringFromDay, getDateValuesFromDate } from '../../../utils/dateHelpers.js';
5
+ import { weekDays } from '../../../utils/constants.js';
6
+ import { getAriaDayFromDateString } from '../../../utils/stringHelpers.js';
4
7
  import { ControlledDateTimePickerDatatestid } from '../../../ControlledDateTimePickerDatatestid.js';
5
8
  import { ControlledDateTimePickerContext } from '../../../ControlledDateTimePickerCTX.js';
6
9
  import { CalendarContext } from './CalendarContext.js';
7
10
  import { StyledDayBtn } from './Styleds.js';
11
+ import { jsx } from 'react/jsx-runtime';
8
12
 
13
+ function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) { symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); } keys.push.apply(keys, symbols); } return keys; }
14
+
15
+ function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }
9
16
  const displayNone = {
10
17
  display: 'none'
11
18
  };
12
19
  const Day = ({
13
- metaDay
20
+ metaDay,
21
+ colIndex,
22
+ isInvisible
14
23
  }) => {
15
24
  const {
16
25
  day,
@@ -81,26 +90,35 @@ const Day = ({
81
90
  const handleOnDayFocus = useCallback(() => {
82
91
  setLatestInteractionRegion('calendar-days');
83
92
  }, [setLatestInteractionRegion]);
84
- const dayClassModifiers = useMemo(() => `${isSelected ? 'selectedDay ' : ''}${isDisabled ? 'disabledDay ' : ''}${isOutOfRange ? 'outOfRangeDay ' : ''}${isFocused ? 'focusedDay ' : ''}${isStartRangeDay ? 'startRangeDay ' : ''}${isDayInRange ? 'inRangeDay ' : ''}${isEndRangeDay ? 'endRangeDay ' : ''}${isCurrMonthDay ? '' : 'notCurrentMonth'}`, [isSelected, isDisabled, isOutOfRange, isFocused, isStartRangeDay, isDayInRange, isEndRangeDay, isCurrMonthDay]);
85
- return /*#__PURE__*/_jsx("li", {
93
+ const dayClassModifiers = useMemo(() => `dayWrapper ${isSelected ? 'selectedDay ' : ''}${isDisabled ? 'disabledDay ' : ''}${isOutOfRange ? 'outOfRangeDay ' : ''}${isFocused ? 'focusedDay ' : ''}${isStartRangeDay ? 'startRangeDay ' : ''}${isDayInRange ? 'inRangeDay ' : ''}${isEndRangeDay ? 'endRangeDay ' : ''}${isCurrMonthDay ? '' : 'notCurrentMonth'}`, [isSelected, isDisabled, isOutOfRange, isFocused, isStartRangeDay, isDayInRange, isEndRangeDay, isCurrMonthDay]);
94
+ let dataTestid = ControlledDateTimePickerDatatestid.CALENDAR.DAY;
95
+ if (isSelected) dataTestid = ControlledDateTimePickerDatatestid.CALENDAR.SELECTED_DAY;
96
+ if (isFocused) dataTestid = ControlledDateTimePickerDatatestid.CALENDAR.FOCUSED_DAY;
97
+ if (isFocused && isSelected) dataTestid = ControlledDateTimePickerDatatestid.CALENDAR.SELECTED_FOCUSED_DAY;
98
+ return /*#__PURE__*/jsx("div", _objectSpread(_objectSpread({
86
99
  className: dayClassModifiers,
87
- style: isHidden ? displayNone : undefined
88
- }, void 0, /*#__PURE__*/_jsx(StyledDayBtn, {
89
- "aria-label": `Date Picker ${dayAsString}`,
90
- role: "gridcell",
91
- buttonType: "text",
92
- labelText: `${day.getDate()}`,
93
- size: "m",
94
- onClick: handleOnDayClick // DSButton triggers this with "spacebar" and "enter" too...
95
- ,
96
- onFocus: handleOnDayFocus,
97
- onKeyDown: e => {
98
- handleDayOnKeyDown(e, metaDay);
99
- },
100
- innerRef: dayBtnRef,
101
- tabIndex: isSelected ? 0 : -1,
102
- "data-isfocused": isFocused,
103
- "data-testid": ControlledDateTimePickerDatatestid.CALENDAR[isFocused ? 'FOCUSED_DAY' : 'DAY']
100
+ style: isHidden ? displayNone : undefined,
101
+ role: !isInvisible ? 'gridcell' : undefined
102
+ }, Number.isInteger(colIndex) && {
103
+ 'aria-colindex': colIndex
104
+ }), {}, {
105
+ children: /*#__PURE__*/_jsx(StyledDayBtn, {
106
+ "aria-label": `${getAriaDayFromDateString(dayAsString)}, ${weekDays[metaDay.day.getDay()]}`,
107
+ "aria-disabled": isOutOfRange || isDisabled,
108
+ "aria-hidden": !!isInvisible,
109
+ buttonType: "raw",
110
+ size: "m",
111
+ onClick: handleOnDayClick // DSButton triggers this with "spacebar" and "enter" too...
112
+ ,
113
+ onFocus: handleOnDayFocus,
114
+ onKeyDown: e => {
115
+ handleDayOnKeyDown(e, metaDay);
116
+ },
117
+ innerRef: dayBtnRef,
118
+ tabIndex: isSelected ? 0 : -1,
119
+ "data-isfocused": isFocused,
120
+ "data-testid": dataTestid
121
+ }, void 0, `${day.getDate()}`)
104
122
  }));
105
123
  };
106
124
 
@@ -1,48 +1,50 @@
1
1
  import styled from 'styled-components';
2
- import { DSButton } from '@elliemae/ds-button';
2
+ import { Grid } from '@elliemae/ds-grid';
3
+ import { DSButtonV2 } from '@elliemae/ds-button';
3
4
 
4
5
  /* eslint-disable max-lines */
5
- const StyledSpacingResetter = /*#__PURE__*/styled.div.withConfig({
6
+ const focusBorder = `
7
+ border-style: solid;
8
+ border-width: 2px;
9
+ border-radius: 50%;
10
+ `;
11
+ const StyledIconTriggerButton = /*#__PURE__*/styled(DSButtonV2).withConfig({
6
12
  componentId: "sc-18gg4kd-0"
7
- })(["*{margin:0;padding:0;box-sizing:border-box;}ul{list-style:none;}", ""], ({
13
+ })(["color:", ";width:26px;height:26px;"], ({
14
+ theme
15
+ }) => theme.colors.brand['600']);
16
+ const StyledShadowWrapper = /*#__PURE__*/styled.div.withConfig({
17
+ componentId: "sc-18gg4kd-1"
18
+ })(["", ""], ({
8
19
  isControllerOnly
9
20
  }) => isControllerOnly ? undefined : 'box-shadow: 0 6px 20px 0 rgb(0 0 0 / 24%), 0 8px 17px 0 rgb(0 0 0 / 19%);');
10
21
  const StyledCalendarWrapper = /*#__PURE__*/styled.div.withConfig({
11
- componentId: "sc-18gg4kd-1"
22
+ componentId: "sc-18gg4kd-2"
12
23
  })(["display:grid;width:260px;background-color:", ";grid-template-rows:auto auto;"], ({
13
24
  theme
14
25
  }) => theme.colors.neutral['000']);
15
26
  const StyledHeader = /*#__PURE__*/styled.section.withConfig({
16
- componentId: "sc-18gg4kd-2"
17
- })(["display:grid;padding:", ";grid-template-columns:min-content min-content 1fr min-content min-content;grid-template-rows:1fr;align-items:center;justify-content:center;text-align:center;background:", ";h3{font-size:1rem;}"], ({
27
+ componentId: "sc-18gg4kd-3"
28
+ })(["*{margin:0;padding:0;box-sizing:border-box;}display:grid;padding:", ";grid-template-columns:min-content min-content 1fr min-content min-content;grid-template-rows:1fr;align-items:center;justify-content:center;text-align:center;background:", ";h3{font-size:1rem;}"], ({
18
29
  theme
19
30
  }) => theme.space.xxxs, ({
20
31
  theme
21
32
  }) => theme.colors.neutral['050']);
22
- const StyledHeaderButton = /*#__PURE__*/styled(DSButton).withConfig({
23
- componentId: "sc-18gg4kd-3"
24
- })(["position:relative;&:focus{&:after{content:'';position:absolute;top:0;left:0;width:100%;height:100%;border:2px solid ", ";border-radius:2px;pointer-events:none;}}&:hover{background:", ";}"], ({
33
+ const StyledHeaderButton = /*#__PURE__*/styled(DSButtonV2).withConfig({
34
+ componentId: "sc-18gg4kd-4"
35
+ })(["position:relative;width:28px;height:28px;&:focus{&:after{content:'';position:absolute;top:0;left:0;width:100%;height:100%;border:2px solid ", ";border-radius:2px;pointer-events:none;}}&:hover{background:", ";}"], ({
25
36
  theme
26
37
  }) => theme.colors.brand[700], ({
27
38
  theme
28
39
  }) => theme.colors.brand[200]);
29
40
  const StyledBody = /*#__PURE__*/styled.section.withConfig({
30
- componentId: "sc-18gg4kd-4"
41
+ componentId: "sc-18gg4kd-5"
31
42
  })(["padding:", ";"], ({
32
43
  theme
33
44
  }) => theme.space.xxxs);
34
- const StyledWeekDaysUList = /*#__PURE__*/styled.ul.withConfig({
35
- componentId: "sc-18gg4kd-5"
36
- })(["display:flex;justify-content:space-between;align-items:center;padding:", ";height:30px;font-size:", ";background-color:", ";li{flex:1;text-transform:capitalize;text-align:center;color:$gray;margin:0 1px;}"], ({
37
- theme
38
- }) => theme.space.xxxs, ({
39
- theme
40
- }) => theme.fontSizes.label[400], ({
41
- theme
42
- }) => theme.colors.neutral['050']);
43
- const StyledDayBtn = /*#__PURE__*/styled(DSButton).withConfig({
45
+ const StyledDayBtn = /*#__PURE__*/styled(DSButtonV2).withConfig({
44
46
  componentId: "sc-18gg4kd-6"
45
- })(["height:", ";width:", ";min-width:", ";border-radius:50%;color:", ";font-size:", ";font-weight:", ";position:relative;&:hover{color:", ";}&:focus:not(:hover){background-color:", ";color:", ";}&.em-ds-button--text{&:focus{&:after{border-radius:50%;top:-2px;left:-2px;width:calc(100% + 4px);height:calc(100% + 4px);}}}"], ({
47
+ })(["height:", ";width:", ";min-width:", ";border-radius:50%;color:", ";font-weight:", ";position:relative;&:hover{color:", ";}&:focus:not(:hover){background-color:", ";color:", ";}&:focus{&:after{border-radius:50%;top:-2px;left:-2px;width:calc(100% + 4px);height:calc(100% + 4px);}}"], ({
46
48
  theme
47
49
  }) => theme.space.s, ({
48
50
  theme
@@ -52,8 +54,6 @@ const StyledDayBtn = /*#__PURE__*/styled(DSButton).withConfig({
52
54
  theme
53
55
  }) => theme.colors.neutral[800], ({
54
56
  theme
55
- }) => theme.fontSizes.label[400], ({
56
- theme
57
57
  }) => theme.fontWeights.regular, ({
58
58
  theme
59
59
  }) => theme.colors.brand[700], ({
@@ -61,53 +61,71 @@ const StyledDayBtn = /*#__PURE__*/styled(DSButton).withConfig({
61
61
  }) => theme.colors.neutral['000'], ({
62
62
  theme
63
63
  }) => theme.colors.brand[600]);
64
- const StyledMonthDaysUList = /*#__PURE__*/styled.ul.withConfig({
64
+ const StyledWeekDaysListWrapper = /*#__PURE__*/styled(Grid).withConfig({
65
65
  componentId: "sc-18gg4kd-7"
66
- })(["display:grid;grid-template-columns:repeat(7,36px);justify-items:center;li{width:36px;height:36px;display:grid;justify-content:center;align-items:center;position:relative;}li.startRangeDay{border-radius:50% 0 0 50%;background-color:", ";}li.inRangeDay{border-radius:0;background-color:", ";}li.endRangeDay{border-radius:0 50% 50% 0;background-color:", ";}li.focusedDay{", "{&.em-ds-button--text{&:focus{&:before{position:absolute;content:'';top:0;left:0;width:100%;height:100%;border-radius:50%;border:2px solid ", ";pointer-events:none;}}}}}li.startRangeDay,li.endRangeDay,li.selectedDay{", "{color:", ";background-color:", ";font-weight:", ";}}li.notCurrentMonth{", "{font-weight:", ";&:not(:hover){color:", ";}}&.selectedDay,&.startRangeDay,&.endRangeDay{", "{color:", ";}}}li.disabledDay,li.outOfRangeDay{", "{color:", ";font-weight:", ";&.em-ds-button--text{cursor:not-allowed;&:focus{&:after{border-radius:50%;top:-2px;left:-2px;width:calc(100% + 4px);height:calc(100% + 4px);border-color:", ";}}}&:hover{background:", ";}}&:after{cursor:not-allowed;position:absolute;content:'';top:47%;left:3px;width:calc(100% - 5px);height:1px;background-color:", ";transform:rotate(45deg);pointer-events:none;}&.focusedDay{", "{color:", ";font-weight:", ";}&:after{background-color:", ";}}&.selectedDay,&.startRangeDay,&.endRangeDay,&.inRangeDay{", "{color:", ";background-color:", ";}&:after{background-color:", ";}}}"], ({
66
+ })(["font-size:", ";text-align:center;", ";", ";.dayWrapper{position:relative;width:36px;button:focus{&:before{position:absolute;content:'';top:0;left:0;width:100%;height:100%;border-radius:50%;border:2px solid ", ";pointer-events:none;}&:after{position:absolute;content:'';top:-2px;left:-2px;", " border-color:", ";width:calc(100% + 4px);height:calc(100% + 4px);}}&.disabledDay,&.outOfRangeDay{button:focus{&:after{border-color:", ";}}}}.dayWrapper.startRangeDay{border-radius:50% 0 0 50%;background-color:", ";}.dayWrapper.inRangeDay{border-radius:0;background-color:", ";}.dayWrapper.endRangeDay{border-radius:0 50% 50% 0;background-color:", ";}.dayWrapper.startRangeDay.endRangeDay{background:unset;}.dayWrapper.startRangeDay,.dayWrapper.endRangeDay,.dayWrapper.selectedDay{button{color:", ";background-color:", ";font-weight:", ";}}.dayWrapper.notCurrentMonth{button{font-weight:", ";&:not(:hover){color:", ";}}&.selectedDay,&.startRangeDay,&.endRangeDay{button{color:", ";}}}.dayWrapper.disabledDay,.dayWrapper.outOfRangeDay{button{color:", ";font-weight:", ";cursor:not-allowed;&:focus{", " border-color:", ";}&:hover{background:", ";}}&:after{cursor:not-allowed;position:absolute;content:'';top:47%;left:3px;width:calc(100% - 5px);height:1px;background-color:", ";transform:rotate(45deg);pointer-events:none;}&.focusedDay{button{color:", ";font-weight:", ";}&:after{background-color:", ";}}&.selectedDay,&.startRangeDay,&.endRangeDay,&.inRangeDay{button{color:", ";background-color:", ";}&:after{background-color:", ";}}}"], ({
67
67
  theme
68
- }) => theme.colors.brand[200], ({
68
+ }) => theme.fontSizes.label[400], ({
69
+ isHeader,
70
+ theme
71
+ }) => isHeader ? `background: ${theme.colors.neutral['050']}` : '', ({
72
+ isHeader
73
+ }) => isHeader ? 'text-transform: capitalize' : '', ({
74
+ theme
75
+ }) => theme.colors.neutral['000'], focusBorder, ({
76
+ theme
77
+ }) => theme.colors.brand[700], ({
78
+ theme
79
+ }) => theme.colors.danger[900], ({
69
80
  theme
70
81
  }) => theme.colors.brand[200], ({
71
82
  theme
72
- }) => theme.colors.brand[200], StyledDayBtn, ({
83
+ }) => theme.colors.brand[200], ({
73
84
  theme
74
- }) => theme.colors.neutral['000'], StyledDayBtn, ({
85
+ }) => theme.colors.brand[200], ({
75
86
  theme
76
87
  }) => theme.colors.neutral['000'], ({
77
88
  theme
78
89
  }) => theme.colors.brand[700], ({
79
90
  theme
80
- }) => theme.fontWeights.semibold, StyledDayBtn, ({
91
+ }) => theme.fontWeights.semibold, ({
81
92
  theme
82
93
  }) => theme.fontWeights.light, ({
83
94
  theme
84
- }) => theme.colors.neutral[500], StyledDayBtn, ({
95
+ }) => theme.colors.neutral[500], ({
85
96
  theme
86
- }) => theme.colors.neutral['000'], StyledDayBtn, ({
97
+ }) => theme.colors.neutral['000'], ({
87
98
  theme
88
99
  }) => theme.colors.neutral[500], ({
89
100
  theme
90
- }) => theme.fontWeights.light, ({
101
+ }) => theme.fontWeights.light, focusBorder, ({
91
102
  theme
92
103
  }) => theme.colors.danger[900], ({
93
104
  theme
94
105
  }) => theme.colors.neutral['000'], ({
95
106
  theme
96
- }) => theme.colors.neutral[500], StyledDayBtn, ({
107
+ }) => theme.colors.neutral[500], ({
97
108
  theme
98
109
  }) => theme.colors.danger[900], ({
99
110
  theme
100
111
  }) => theme.fontWeights.regular, ({
101
112
  theme
102
- }) => theme.colors.danger[900], StyledDayBtn, ({
113
+ }) => theme.colors.danger[900], ({
103
114
  theme
104
115
  }) => theme.colors.neutral['000'], ({
105
116
  theme
106
117
  }) => theme.colors.danger[900], ({
107
118
  theme
108
119
  }) => theme.colors.neutral['000']);
109
- const CalendarFooterMessage = /*#__PURE__*/styled.footer.withConfig({
120
+ const StyledWeekDaysHeaderItem = /*#__PURE__*/styled.div.withConfig({
110
121
  componentId: "sc-18gg4kd-8"
122
+ })(["width:", ";min-width:", ";"], ({
123
+ theme
124
+ }) => theme.space.s, ({
125
+ theme
126
+ }) => theme.space.s);
127
+ const CalendarFooterMessage = /*#__PURE__*/styled.footer.withConfig({
128
+ componentId: "sc-18gg4kd-9"
111
129
  })(["border-top:solid 1px ", ";margin:0 ", ";padding:", " 0;color:", ";font-style:italic;font-weight:", ";font-size:", ";text-align:right;"], ({
112
130
  theme
113
131
  }) => theme.colors.neutral[300], ({
@@ -122,4 +140,4 @@ const CalendarFooterMessage = /*#__PURE__*/styled.footer.withConfig({
122
140
  theme
123
141
  }) => theme.fontSizes.microText[200]);
124
142
 
125
- export { CalendarFooterMessage, StyledBody, StyledCalendarWrapper, StyledDayBtn, StyledHeader, StyledHeaderButton, StyledMonthDaysUList, StyledSpacingResetter, StyledWeekDaysUList };
143
+ export { CalendarFooterMessage, StyledBody, StyledCalendarWrapper, StyledDayBtn, StyledHeader, StyledHeaderButton, StyledIconTriggerButton, StyledShadowWrapper, StyledWeekDaysHeaderItem, StyledWeekDaysListWrapper };
@@ -1,4 +1,4 @@
1
- import { useContext, useState, useCallback, useMemo } from 'react';
1
+ import { useContext, useState, useMemo, useCallback } from 'react';
2
2
  import { ControlledDateTimePickerContext } from '../../../ControlledDateTimePickerCTX.js';
3
3
  import { useKeyboardHandlers } from './useKeyboardHandlers.js';
4
4
  import { useFocusLogic } from './useFocusLogic.js';
@@ -6,6 +6,19 @@ import { usePopperTriggerLogic } from './usePopperTriggerLogic.js';
6
6
  import { useCurrentDisplayedMonthYearLogic } from './useCurrentDisplayedMonthYearLogic.js';
7
7
 
8
8
  /* eslint-disable complexity */
9
+
10
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
11
+ function sliceIntoChunks(arr, chunkSize) {
12
+ const res = [];
13
+
14
+ for (let i = 0; i < arr.length; i += chunkSize) {
15
+ const chunk = arr.slice(i, i + chunkSize);
16
+ res.push(chunk);
17
+ }
18
+
19
+ return res;
20
+ }
21
+
9
22
  const useConfigCalendarCTX = () => {
10
23
  const {
11
24
  pickerButtonRef,
@@ -28,7 +41,8 @@ const useConfigCalendarCTX = () => {
28
41
  isControllerOnly,
29
42
  isWithTimeWheelToo,
30
43
  setLatestInteractionRegion,
31
- autoFocusPrevMonthArrow
44
+ autoFocusPrevMonthArrow,
45
+ ariaCurrentValueForInputs
32
46
  } = useContext(ControlledDateTimePickerContext);
33
47
  const [showCalendar, setShowCalendar] = useState(false);
34
48
  const {
@@ -40,6 +54,19 @@ const useConfigCalendarCTX = () => {
40
54
  handleNextMonth,
41
55
  handleNextYear
42
56
  } = useCurrentDisplayedMonthYearLogic();
57
+ const {
58
+ invisibleFirstDay,
59
+ daysMatrixByWeekday,
60
+ invisibleLastDay
61
+ } = useMemo(() => {
62
+ const [invisible1stDay, ...otherDays] = [...daysArray];
63
+ const invisibleDayLast = otherDays.pop();
64
+ return {
65
+ invisibleFirstDay: invisible1stDay,
66
+ daysMatrixByWeekday: sliceIntoChunks(otherDays, 7),
67
+ invisibleLastDay: invisibleDayLast
68
+ };
69
+ }, [daysArray]);
43
70
  const setLatestInteractionRegionCalendarHead = useCallback(() => {
44
71
  setLatestInteractionRegion('calendar-head');
45
72
  }, [setLatestInteractionRegion]);
@@ -142,6 +169,9 @@ const useConfigCalendarCTX = () => {
142
169
  currentMonth,
143
170
  currentYear,
144
171
  daysArray,
172
+ invisibleFirstDay,
173
+ daysMatrixByWeekday,
174
+ invisibleLastDay,
145
175
  focusedDay,
146
176
  tryToFocusCurrentlyDataIsFocusedDay,
147
177
  handleFocusMetaDay,
@@ -162,8 +192,9 @@ const useConfigCalendarCTX = () => {
162
192
  onNextMonthFocus,
163
193
  onNextYearFocus,
164
194
  isWithTimeWheelToo,
165
- autoFocusPrevMonthArrow
166
- }), [showCalendar, closeCalendar, setPopperElement, setArrowElement, usePopperHelpers, handleToggleCalendar, handleSetTriggerRef, handleMenuWrapperKeyDown, isControllerOnly, calendarDaysWrapperRef, prevYearBtnRef, prevMonthBtnRef, nextMonthBtnRef, nextYearBtnRef, currentMonth, currentYear, daysArray, focusedDay, tryToFocusCurrentlyDataIsFocusedDay, handleFocusMetaDay, handleFocusMetaDayByDay, resetFocusedDayToStartDate, handlePrevMonth, handlePrevYear, handleNextMonth, handleNextYear, handleDayOnKeyDown, handlePrevYearKeyDown, handlePrevMonthKeyDown, handleNextMonthKeyDown, handleNextYearKeyDown, handlePickerIconKeyDown, onPrevYearFocus, onPrevMonthFocus, onNextMonthFocus, onNextYearFocus, isWithTimeWheelToo, autoFocusPrevMonthArrow]);
195
+ autoFocusPrevMonthArrow,
196
+ ariaCurrentValueForInputs
197
+ }), [showCalendar, closeCalendar, setPopperElement, setArrowElement, usePopperHelpers, handleToggleCalendar, handleSetTriggerRef, handleMenuWrapperKeyDown, isControllerOnly, calendarDaysWrapperRef, prevYearBtnRef, prevMonthBtnRef, nextMonthBtnRef, nextYearBtnRef, currentMonth, currentYear, daysArray, invisibleFirstDay, daysMatrixByWeekday, invisibleLastDay, focusedDay, tryToFocusCurrentlyDataIsFocusedDay, handleFocusMetaDay, handleFocusMetaDayByDay, resetFocusedDayToStartDate, handlePrevMonth, handlePrevYear, handleNextMonth, handleNextYear, handleDayOnKeyDown, handlePrevYearKeyDown, handlePrevMonthKeyDown, handleNextMonthKeyDown, handleNextYearKeyDown, handlePickerIconKeyDown, onPrevYearFocus, onPrevMonthFocus, onNextMonthFocus, onNextYearFocus, isWithTimeWheelToo, autoFocusPrevMonthArrow, ariaCurrentValueForInputs]);
167
198
  };
168
199
 
169
200
  export { useConfigCalendarCTX };
@@ -1,5 +1,6 @@
1
1
  import _jsx from '@babel/runtime/helpers/esm/jsx';
2
2
  import { useContext } from 'react';
3
+ import { ControlledDateTimePickerDatatestid } from '../../../ControlledDateTimePickerDatatestid.js';
3
4
  import { StyledCalendarWithTimeWheelWrapper, StyledCalendar } from './Styleds.js';
4
5
  import { CalendarWithTimeWheelFooter } from './CalendarWithTimeWheelFooter.js';
5
6
  import { TimeWheelContent } from '../TimeWheel/TimeWheelContent.js';
@@ -11,7 +12,8 @@ const CalendarWithTimeWheelContent = () => {
11
12
  isControllerOnly
12
13
  } = useContext(ControlledDateTimePickerContext);
13
14
  return /*#__PURE__*/_jsx(StyledCalendarWithTimeWheelWrapper, {
14
- isControllerOnly: isControllerOnly
15
+ isControllerOnly: isControllerOnly,
16
+ "data-testid": ControlledDateTimePickerDatatestid.CONTROLLER_COMPONENT.CALENDAR_TIMEWHEEL
15
17
  }, void 0, _StyledCalendar || (_StyledCalendar = /*#__PURE__*/_jsx(StyledCalendar, {})), _TimeWheelContent || (_TimeWheelContent = /*#__PURE__*/_jsx(TimeWheelContent, {})), _CalendarWithTimeWhee || (_CalendarWithTimeWhee = /*#__PURE__*/_jsx(CalendarWithTimeWheelFooter, {})));
16
18
  };
17
19
 
@@ -4,6 +4,7 @@ import { createContext } from 'react';
4
4
  const noop = () => {};
5
5
 
6
6
  const defaultCalendarWithTimeWheelContext = {
7
+ ariaCurrentValueForInputs: '',
7
8
  showCalendarWithTimeWheel: false,
8
9
  setPopperElement: noop,
9
10
  setArrowElement: noop,
@@ -1,11 +1,12 @@
1
1
  import _jsx from '@babel/runtime/helpers/esm/jsx';
2
2
  import { useContext, useMemo } from 'react';
3
- import DSButton, { BUTTON_VARIANT } from '@elliemae/ds-basic/Button';
3
+ import { DSIconColors } from '@elliemae/ds-icon';
4
+ import { BUTTON_SIZES, BUTTON_VARIANT } from '@elliemae/ds-button';
4
5
  import DatePicker from '@elliemae/ds-icons/DatePicker';
5
6
  import { CalendarWithTimeWheelContext } from './CalendarWithTimeWheelContext.js';
7
+ import { StyledIconTriggerButton } from './Styleds.js';
6
8
  import { ControlledDateTimePickerDatatestid } from '../../../ControlledDateTimePickerDatatestid.js';
7
9
 
8
- var _DatePicker;
9
10
  // this is particularly useful due to how usePopper needs to check the references
10
11
  // since references are saved in a immutable way, we make sure to shortcircuit useless-re-renders
11
12
 
@@ -13,19 +14,21 @@ const CalendarWithTimeWheelIconTrigger = () => {
13
14
  const {
14
15
  handleSetTriggerRef,
15
16
  handleToggleCalendarWithTimeWheel,
16
- handlePickerIconKeyDown
17
+ handlePickerIconKeyDown,
18
+ ariaCurrentValueForInputs
17
19
  } = useContext(CalendarWithTimeWheelContext);
18
- return useMemo(() => /*#__PURE__*/_jsx(DSButton, {
19
- "aria-label": "date time picker context menu trigger",
20
- buttonType: "text",
21
- leftIcon: _DatePicker || (_DatePicker = /*#__PURE__*/_jsx(DatePicker, {})),
22
- size: "m",
20
+ return useMemo(() => /*#__PURE__*/_jsx(StyledIconTriggerButton, {
21
+ "aria-label": `date time picker context menu trigger, ${ariaCurrentValueForInputs}`,
22
+ buttonType: "icon",
23
+ size: BUTTON_SIZES.M,
23
24
  variant: BUTTON_VARIANT.DEFAULT,
24
25
  innerRef: handleSetTriggerRef,
25
26
  onClick: handleToggleCalendarWithTimeWheel,
26
27
  onKeyDown: handlePickerIconKeyDown,
27
28
  "data-testid": ControlledDateTimePickerDatatestid.PICKER_ICONS.CALENDAR_TIMEWHEEL
28
- }), [handlePickerIconKeyDown, handleSetTriggerRef, handleToggleCalendarWithTimeWheel]);
29
+ }, void 0, /*#__PURE__*/_jsx(DatePicker, {
30
+ color: DSIconColors.PRIMARY
31
+ })), [ariaCurrentValueForInputs, handlePickerIconKeyDown, handleSetTriggerRef, handleToggleCalendarWithTimeWheel]);
29
32
  };
30
33
 
31
34
  export { CalendarWithTimeWheelIconTrigger };
@@ -1,6 +1,7 @@
1
1
  import _defineProperty from '@babel/runtime/helpers/esm/defineProperty';
2
2
  import _jsx from '@babel/runtime/helpers/esm/jsx';
3
3
  import { useContext } from 'react';
4
+ import { ControlledDateTimePickerDatatestid } from '../../../ControlledDateTimePickerDatatestid.js';
4
5
  import { CalendarWithTimeWheelContent } from './CalendarWithTimeWheelContent.js';
5
6
  import { CalendarWithTimeWheelContext } from './CalendarWithTimeWheelContext.js';
6
7
  import { jsxs, jsx } from 'react/jsx-runtime';
@@ -28,6 +29,7 @@ const CalendarWithTimeWheelWrapper = () => {
28
29
  zIndex: 110
29
30
  })
30
31
  }, attributes.popper), {}, {
32
+ "data-testid": ControlledDateTimePickerDatatestid.CONTEXTUAL_MENU.CALENDAR_TIMEWHEEL,
31
33
  children: [_CalendarWithTimeWhee2 || (_CalendarWithTimeWhee2 = /*#__PURE__*/_jsx(CalendarWithTimeWheelContent, {})), /*#__PURE__*/jsx("div", {
32
34
  ref: setArrowElement,
33
35
  style: styles.arrow
@@ -1,9 +1,15 @@
1
1
  import styled from 'styled-components';
2
+ import { DSButtonV2 } from '@elliemae/ds-button';
2
3
  import { CalendarContent } from '../Calendar/CalendarContent.js';
3
4
 
4
- const StyledCalendarWithTimeWheelWrapper = /*#__PURE__*/styled.div.withConfig({
5
+ const StyledIconTriggerButton = /*#__PURE__*/styled(DSButtonV2).withConfig({
5
6
  componentId: "sc-h2xj8r-0"
6
- })(["background:", ";", " display:grid;grid-template-columns:260px 192px;grid-template-rows:1fr;column-gap:0;& > div:last-of-type{box-shadow:-1px 0 0 0 ", ";}"], ({
7
+ })(["color:", ";width:26px;height:26px;"], ({
8
+ theme
9
+ }) => theme.colors.brand['600']);
10
+ const StyledCalendarWithTimeWheelWrapper = /*#__PURE__*/styled.div.withConfig({
11
+ componentId: "sc-h2xj8r-1"
12
+ })(["background:", ";", " display:grid;grid-template-columns:260px 192px;grid-template-rows:1fr;column-gap:0;& > div:last-of-type{box-shadow:-1px 0 0 0 ", ";margin-left:1px;}"], ({
7
13
  theme
8
14
  }) => theme.colors.neutral['000'], ({
9
15
  isControllerOnly
@@ -11,10 +17,10 @@ const StyledCalendarWithTimeWheelWrapper = /*#__PURE__*/styled.div.withConfig({
11
17
  theme
12
18
  }) => theme.colors.neutral[200]);
13
19
  const StyledCalendar = /*#__PURE__*/styled(CalendarContent).withConfig({
14
- componentId: "sc-h2xj8r-1"
20
+ componentId: "sc-h2xj8r-2"
15
21
  })(["box-shadow:none;"]);
16
22
  const CalendarWithTimeWheelFooterMessage = /*#__PURE__*/styled.footer.withConfig({
17
- componentId: "sc-h2xj8r-2"
23
+ componentId: "sc-h2xj8r-3"
18
24
  })(["border-top:solid 1px ", ";margin:0 ", ";padding:", " 0;color:", ";font-style:italic;font-weight:", ";font-size:", ";text-align:right;grid-column:1/3;"], ({
19
25
  theme
20
26
  }) => theme.colors.neutral[300], ({
@@ -29,4 +35,4 @@ const CalendarWithTimeWheelFooterMessage = /*#__PURE__*/styled.footer.withConfig
29
35
  theme
30
36
  }) => theme.fontSizes.microText[200]);
31
37
 
32
- export { CalendarWithTimeWheelFooterMessage, StyledCalendar, StyledCalendarWithTimeWheelWrapper };
38
+ export { CalendarWithTimeWheelFooterMessage, StyledCalendar, StyledCalendarWithTimeWheelWrapper, StyledIconTriggerButton };
@@ -18,7 +18,8 @@ const useConfigCalendarWithTimeWheelCTX = () => {
18
18
  hideDate,
19
19
  hideTime,
20
20
  monthInputRef,
21
- hourInputRef
21
+ hourInputRef,
22
+ ariaCurrentValueForInputs
22
23
  } = useContext(ControlledDateTimePickerContext);
23
24
  const {
24
25
  handleToggleCalendar
@@ -99,8 +100,9 @@ const useConfigCalendarWithTimeWheelCTX = () => {
99
100
  handleSetTriggerRef,
100
101
  handleMenuWrapperKeyDown,
101
102
  handlePickerIconKeyDown,
102
- isControllerOnly
103
- }), [showCalendarWithTimeWheel, usePopperHelpers, handleToggleCalendarWithTimeWheel, handleSetTriggerRef, handleMenuWrapperKeyDown, handlePickerIconKeyDown, isControllerOnly]);
103
+ isControllerOnly,
104
+ ariaCurrentValueForInputs
105
+ }), [showCalendarWithTimeWheel, usePopperHelpers, handleToggleCalendarWithTimeWheel, handleSetTriggerRef, handleMenuWrapperKeyDown, handlePickerIconKeyDown, isControllerOnly, ariaCurrentValueForInputs]);
104
106
  };
105
107
 
106
108
  export { useConfigCalendarWithTimeWheelCTX };
@@ -1,8 +1,7 @@
1
1
  import _defineProperty from '@babel/runtime/helpers/esm/defineProperty';
2
2
  import _jsx from '@babel/runtime/helpers/esm/jsx';
3
3
  import { useContext } from 'react';
4
- import ChevronSmallUp from '@elliemae/ds-icons/ChevronSmallUp';
5
- import ChevronSmallDown from '@elliemae/ds-icons/ChevronSmallDown';
4
+ import { ChevronSmallUp, ChevronSmallDown } from '@elliemae/ds-icons';
6
5
  import { ControlledDateTimePickerDatatestid } from '../../../ControlledDateTimePickerDatatestid.js';
7
6
  import { convertToPositiveNumberIfPossible } from '../../../utils/numberHelpers.js';
8
7
  import { StyledWheelList, StyledWheelListItem, StyledWheelChangeTimeBtn, StyledTimeBtn } from './Styleds.js';
@@ -35,14 +34,14 @@ const HoursList = () => {
35
34
  } = useContext(TimeWheelContext);
36
35
  return /*#__PURE__*/_jsx(StyledWheelList, {}, void 0, /*#__PURE__*/_jsx(StyledWheelListItem, {}, void 0, /*#__PURE__*/_jsx(StyledWheelChangeTimeBtn, {
37
36
  "aria-label": "subtract one hour",
38
- buttonType: "text",
39
- leftIcon: _ChevronSmallUp || (_ChevronSmallUp = /*#__PURE__*/_jsx(ChevronSmallUp, {})),
37
+ buttonType: "raw",
40
38
  size: "m",
41
39
  onClick: handlePrevHour,
42
40
  onKeyDown: handlePrevHourBtnOnKeyDown,
43
41
  innerRef: prevHourBtnRef,
42
+ "data-testid": ControlledDateTimePickerDatatestid.TIMEWHEEL.PREV_HOUR,
44
43
  tabIndex: -1
45
- })), visibleHours.map(hourString => {
44
+ }, void 0, _ChevronSmallUp || (_ChevronSmallUp = /*#__PURE__*/_jsx(ChevronSmallUp, {})))), visibleHours.map(hourString => {
46
45
  const key = `timewheel-hour-${hourString}`;
47
46
  if (!hourString) return /*#__PURE__*/_jsx(StyledWheelListItem, {}, key);
48
47
  const currHourTimeString = `${hourString}:${minutes || '00'} ${meridiem || 'AM'}`;
@@ -56,34 +55,36 @@ const HoursList = () => {
56
55
  };
57
56
  return /*#__PURE__*/_jsx(StyledWheelListItem, {
58
57
  isCurrentListItem: isCurrentListItem
59
- }, key, /*#__PURE__*/jsx(StyledTimeBtn, _objectSpread({
58
+ }, key, /*#__PURE__*/jsx(StyledTimeBtn, _objectSpread(_objectSpread({
60
59
  isCurrentListItem: isCurrentListItem,
61
60
  autoFocus: autoFocusHourTimeWheel && isCurrentListItem,
62
- "data-testid": ControlledDateTimePickerDatatestid.TIMEWHEEL[isCurrentListItem ? 'SELECTED_HOUR' : 'HOUR'],
61
+ "data-testid": ControlledDateTimePickerDatatestid.TIMEWHEEL[isCurrentListItem ? 'CURRENT_HOUR' : 'HOUR'],
63
62
  selected: hours.length === 2 && convertToPositiveNumberIfPossible(hourString) === currHourNum,
64
63
  "aria-label": `${hourString} hours`,
65
64
  "aria-disabled": isDisabled,
66
65
  isDisabled: isDisabled,
67
- buttonType: "text",
68
- labelText: hourString,
66
+ buttonType: "raw",
69
67
  size: "m",
70
68
  onClick: e => handleTimeWheelBtnChangeHours(hourString, e),
71
69
  tabIndex: tabIndex,
72
70
  role: "spinbutton",
73
71
  "aria-valuemax": "12",
74
- "aria-valuemin": "01",
75
- "aria-valuenow": hourString
76
- }, btnProps)));
72
+ "aria-valuemin": "1",
73
+ "aria-valuenow": currHourNum,
74
+ "aria-valuetext": `${hourString} hours`
75
+ }, btnProps), {}, {
76
+ children: hourString
77
+ })));
77
78
  }), /*#__PURE__*/_jsx(StyledWheelListItem, {}, void 0, /*#__PURE__*/_jsx(StyledWheelChangeTimeBtn, {
78
79
  "aria-label": "add one hour",
79
- buttonType: "text",
80
- leftIcon: _ChevronSmallDown || (_ChevronSmallDown = /*#__PURE__*/_jsx(ChevronSmallDown, {})),
80
+ buttonType: "raw",
81
81
  size: "m",
82
82
  onClick: handleNextHour,
83
83
  onKeyDown: handleNextHourBtnOnKeyDown,
84
84
  innerRef: nextHourBtnRef,
85
- tabIndex: -1
86
- })));
85
+ tabIndex: -1,
86
+ "data-testid": ControlledDateTimePickerDatatestid.TIMEWHEEL.NEXT_HOUR
87
+ }, void 0, _ChevronSmallDown || (_ChevronSmallDown = /*#__PURE__*/_jsx(ChevronSmallDown, {})))));
87
88
  };
88
89
 
89
90
  export { HoursList };