@elliemae/ds-form-date-time-picker 3.60.0-next.60 → 3.60.0-next.62

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 (28) hide show
  1. package/dist/cjs/constants/index.js +15 -1
  2. package/dist/cjs/constants/index.js.map +2 -2
  3. package/dist/cjs/parts/Pickers/Calendar/Styleds.js +167 -95
  4. package/dist/cjs/parts/Pickers/Calendar/Styleds.js.map +2 -2
  5. package/dist/cjs/parts/Pickers/TimeWheel/HoursList.js +9 -6
  6. package/dist/cjs/parts/Pickers/TimeWheel/HoursList.js.map +2 -2
  7. package/dist/cjs/parts/Pickers/TimeWheel/MeridiemList.js +11 -4
  8. package/dist/cjs/parts/Pickers/TimeWheel/MeridiemList.js.map +2 -2
  9. package/dist/cjs/parts/Pickers/TimeWheel/MinutesList.js +12 -5
  10. package/dist/cjs/parts/Pickers/TimeWheel/MinutesList.js.map +2 -2
  11. package/dist/cjs/parts/Pickers/TimeWheel/Styleds.js +38 -42
  12. package/dist/cjs/parts/Pickers/TimeWheel/Styleds.js.map +2 -2
  13. package/dist/esm/constants/index.js +15 -1
  14. package/dist/esm/constants/index.js.map +2 -2
  15. package/dist/esm/parts/Pickers/Calendar/Styleds.js +167 -95
  16. package/dist/esm/parts/Pickers/Calendar/Styleds.js.map +2 -2
  17. package/dist/esm/parts/Pickers/TimeWheel/HoursList.js +9 -6
  18. package/dist/esm/parts/Pickers/TimeWheel/HoursList.js.map +2 -2
  19. package/dist/esm/parts/Pickers/TimeWheel/MeridiemList.js +11 -4
  20. package/dist/esm/parts/Pickers/TimeWheel/MeridiemList.js.map +2 -2
  21. package/dist/esm/parts/Pickers/TimeWheel/MinutesList.js +12 -5
  22. package/dist/esm/parts/Pickers/TimeWheel/MinutesList.js.map +2 -2
  23. package/dist/esm/parts/Pickers/TimeWheel/Styleds.js +38 -42
  24. package/dist/esm/parts/Pickers/TimeWheel/Styleds.js.map +2 -2
  25. package/dist/types/constants/index.d.ts +6 -0
  26. package/dist/types/parts/Pickers/Calendar/Styleds.d.ts +12 -11
  27. package/dist/types/tests/custom-props/customProps.d.ts +4 -4
  28. package/package.json +10 -10
@@ -110,6 +110,18 @@ const PRE_EXISTING_DATA_TESTID = {
110
110
  TIMEWHEEL_MERIDIEM: "ds-controlled-date-time-picker-timewheel-meridiem",
111
111
  TIMEWHEEL_CURRENT_MERIDIEM: "ds-controlled-date-time-picker-timewheel-current-meridiem",
112
112
  TIMEWHEEL_NEXT_MERIDIEM: "ds-controlled-date-time-picker-timewheel-next-meridiem",
113
+ // MeridiemList renders a dual-layer pattern (see KNOWN_INTENTIONAL_DEVIATIONS.md DEV-001):
114
+ // - A11y layer: invisible semantic listbox — the real focus target, owns CURRENT_MERIDIEM above.
115
+ // - Visual layer: aria-hidden StyledTimeBtn elements — presentation only, no focus capability.
116
+ //
117
+ // CURRENT_MERIDIEM / MERIDIEM originally lived on the visual elements. When the a11y layer became
118
+ // the focus target, CURRENT_MERIDIEM moved to the listbox. The visual elements received
119
+ // -visual-element-suffixed testids to prevent DOM query duplication (getByTestId would otherwise
120
+ // return two elements with the same testid and throw in most automation frameworks).
121
+ //
122
+ // data-dimsum-slot on StyledTimeBtn (TIMEWHEEL_TIME_BUTTON) is unaffected — theming via slots is unchanged.
123
+ TIMEWHEEL_MERIDIEM_VISUAL_ELEMENT: "ds-controlled-date-time-picker-timewheel-meridiem-visual-element",
124
+ TIMEWHEEL_CURRENT_MERIDIEM_VISUAL_ELEMENT: "ds-controlled-date-time-picker-timewheel-current-meridiem-visual-element",
113
125
  CONTEXTUAL_MENU_CALENDAR: "ds-controlled-date-time-picker-calendar-context-content-wrapper",
114
126
  CONTEXTUAL_MENU_TIMEWHEEL: "ds-controlled-date-time-picker-timewheel-context-content-wrapper",
115
127
  CONTEXTUAL_MENU_CALENDAR_TIMEWHEEL: "ds-controlled-date-time-picker-calendar-timewheel-context-content-wrapper",
@@ -217,7 +229,9 @@ const ControlledDateTimePickerDatatestid = {
217
229
  PREV_MERIDIEM: FORM_DATE_TIME_PICKER_DATA_TESTID.TIMEWHEEL_PREV_MERIDIEM,
218
230
  MERIDIEM: FORM_DATE_TIME_PICKER_DATA_TESTID.TIMEWHEEL_MERIDIEM,
219
231
  CURRENT_MERIDIEM: FORM_DATE_TIME_PICKER_DATA_TESTID.TIMEWHEEL_CURRENT_MERIDIEM,
220
- NEXT_MERIDIEM: FORM_DATE_TIME_PICKER_DATA_TESTID.TIMEWHEEL_NEXT_MERIDIEM
232
+ NEXT_MERIDIEM: FORM_DATE_TIME_PICKER_DATA_TESTID.TIMEWHEEL_NEXT_MERIDIEM,
233
+ MERIDIEM_VISUAL_ELEMENT: FORM_DATE_TIME_PICKER_DATA_TESTID.TIMEWHEEL_MERIDIEM_VISUAL_ELEMENT,
234
+ CURRENT_MERIDIEM_VISUAL_ELEMENT: FORM_DATE_TIME_PICKER_DATA_TESTID.TIMEWHEEL_CURRENT_MERIDIEM_VISUAL_ELEMENT
221
235
  },
222
236
  CONTEXTUAL_MENU: {
223
237
  CALENDAR: FORM_DATE_TIME_PICKER_DATA_TESTID.CONTEXTUAL_MENU_CALENDAR,
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../src/constants/index.ts", "../../../../../../scripts/build/transpile/react-shim.js"],
4
- "sourcesContent": ["/* eslint-disable max-lines */\nimport { slotObjectToDataTestIds } from '@elliemae/ds-system';\n\nexport const DSControlledDateTimePickerName = 'DSControlleddatetimepicker';\n\n// we are naming this with the ${component_name}_slots convention to namespace & avoid errors on duplicate exports variables in aggregators\nexport const FORM_DATE_TIME_PICKER_SLOTS = {\n CONTAINER: 'root',\n // THE SLOT IS ABOUT \"DATE\" EVEN IF THE STRING SAYS \"time-...\"\n // When this was first defined there was a typo in the string, now we can't change because it is a deliverable and would impact application space.\n DATE_INPUTS_MONTH: 'time-picker-month-input',\n DATE_INPUTS_DAY: 'time-picker-day-input',\n DATE_INPUTS_YEAR: 'time-picker-year-input',\n // end of typo\n TIME_INPUTS_HOUR: 'time-picker-hour-input',\n TIME_INPUTS_MINUTE: 'time-picker-minute-input',\n TIME_INPUTS_MERIDIEM: 'time-picker-meridiem-input',\n PICKER_ICONS_CALENDAR: 'calendar-trigger-icon',\n PICKER_ICONS_TIMEWHEEL: 'timewheel-trigger-icon',\n PICKER_ICONS_CALENDAR_TIMEWHEEL: 'calendar-timewheel-trigger-icon',\n CALENDAR_DAY_BUTTON: 'calendar-day',\n CALENDAR_HEADER_LABEL: 'calendar-header-label',\n CALENDAR_HEADER_BUTTON: 'calendar-header-buttons',\n CALENDAR_HEADER_WEEKLY_DAY_LIST: 'calendar-header-weekly-day-list',\n TIMEWHEEL_TIME_BUTTON: 'timewheel-time-button',\n TIMEWHEEL_TIME_CHANGE_BUTTON: 'timewheel-time-change-button',\n TIMEWHEEL_HEADER_LABEL: 'timewheel-header-label',\n CONTEXTUAL_MENU_CALENDAR: 'calendar-context-content-wrapper',\n CONTEXTUAL_MENU_TIMEWHEEL: 'timewheel-context-content-wrapper',\n CONTEXTUAL_MENU_CALENDAR_TIMEWHEEL: 'calendar-timewheel-context-content-wrapper',\n FOOTERS_CALENDAR: 'calendar-context-footer',\n FOOTERS_TIMEWHEEL: 'timewheel-context-footer',\n FOOTERS_CALENDAR_TIMEWHEEL: 'calendar-timewheel-context-footer',\n CONTROLLER_COMPONENT_CALENDAR: 'calendar-controller-wrapper',\n CONTROLLER_COMPONENT_TIMEWHEEL: 'timewheel-controller-wrapper',\n CONTROLLER_COMPONENT_CALENDAR_TIMEWHEEL: 'calendar-timewheel-controller-wrapper',\n CLEAR_BUTTON: 'clear-btn',\n} as const;\n\nconst PRE_EXISTING_DATA_TESTID = {\n // we are keeping the old names for backward compatibility...\n CONTAINER: 'ds-controlled-date-time-picker-container',\n DATE_INPUTS_MONTH: 'ds-controlled-date-time-picker-month-input',\n DATE_INPUTS_DAY: 'ds-controlled-date-time-picker-day-input',\n DATE_INPUTS_YEAR: 'ds-controlled-date-time-picker-year-input',\n TIME_INPUTS_HOUR: 'ds-controlled-date-time-picker-hour-input',\n TIME_INPUTS_MINUTE: 'ds-controlled-date-time-picker-minute-input',\n TIME_INPUTS_MERIDIEM: 'ds-controlled-date-time-picker-meridiem-input',\n PICKER_ICONS_CALENDAR: 'ds-controlled-date-time-picker-calendar-trigger-icon',\n PICKER_ICONS_TIMEWHEEL: 'ds-controlled-date-time-picker-timewheel-trigger-icon',\n PICKER_ICONS_CALENDAR_TIMEWHEEL: 'ds-controlled-date-time-picker-calendar-timewheel-trigger-icon',\n CALENDAR_TABLE_WRAPPER: 'ds-controlled-date-time-picker-calendar-table-wrapper',\n CALENDAR_HEADER_LABEL: 'ds-controlled-date-time-picker-calendar-header-label',\n CALENDAR_PREV_YEAR: 'ds-controlled-date-time-picker-calendar-prev-year',\n CALENDAR_PREV_MONTH: 'ds-controlled-date-time-picker-calendar-prev-month',\n CALENDAR_DAY: 'ds-controlled-date-time-picker-calendar-day',\n CALENDAR_FOCUSED_DAY: 'ds-controlled-date-time-picker-calendar-focused-day',\n CALENDAR_START_RANGE_DAY: 'ds-controlled-date-time-picker-calendar-start-range-day',\n CALENDAR_IN_RANGE_DAY: 'ds-controlled-date-time-picker-calendar-in-range-day',\n CALENDAR_END_RANGE_DAY: 'ds-controlled-date-time-picker-calendar-end-range-day',\n CALENDAR_SELECTED_DAY: 'ds-controlled-date-time-picker-calendar-selected-day',\n CALENDAR_SELECTED_FOCUSED_DAY: 'ds-controlled-date-time-picker-calendar-selected-focused-day',\n CALENDAR_NEXT_MONTH: 'ds-controlled-date-time-picker-calendar-next-month',\n CALENDAR_NEXT_YEAR: 'ds-controlled-date-time-picker-calendar-next-year',\n TIMEWHEEL_HEADER_LABEL: 'ds-controlled-date-time-picker-timewheel-header-label',\n TIMEWHEEL_PREV_HOUR: 'ds-controlled-date-time-picker-timewheel-prev-hour',\n TIMEWHEEL_HOUR: 'ds-controlled-date-time-picker-timewheel-hour',\n TIMEWHEEL_CURRENT_HOUR: 'ds-controlled-date-time-picker-timewheel-current-hour',\n TIMEWHEEL_NEXT_HOUR: 'ds-controlled-date-time-picker-timewheel-next-hour',\n TIMEWHEEL_PREV_MINUTE: 'ds-controlled-date-time-picker-timewheel-prev-minute',\n TIMEWHEEL_MINUTE: 'ds-controlled-date-time-picker-timewheel-minute',\n TIMEWHEEL_CURRENT_MINUTE: 'ds-controlled-date-time-picker-timewheel-current-minute',\n TIMEWHEEL_NEXT_MINUTE: 'ds-controlled-date-time-picker-timewheel-next-minute',\n TIMEWHEEL_PREV_MERIDIEM: 'ds-controlled-date-time-picker-timewheel-prev-meridiem',\n TIMEWHEEL_MERIDIEM: 'ds-controlled-date-time-picker-timewheel-meridiem',\n TIMEWHEEL_CURRENT_MERIDIEM: 'ds-controlled-date-time-picker-timewheel-current-meridiem',\n TIMEWHEEL_NEXT_MERIDIEM: 'ds-controlled-date-time-picker-timewheel-next-meridiem',\n CONTEXTUAL_MENU_CALENDAR: 'ds-controlled-date-time-picker-calendar-context-content-wrapper',\n CONTEXTUAL_MENU_TIMEWHEEL: 'ds-controlled-date-time-picker-timewheel-context-content-wrapper',\n CONTEXTUAL_MENU_CALENDAR_TIMEWHEEL: 'ds-controlled-date-time-picker-calendar-timewheel-context-content-wrapper',\n CONTROLLER_COMPONENT_CALENDAR: 'ds-controlled-date-time-picker-calendar-controller-wrapper',\n CONTROLLER_COMPONENT_TIMEWHEEL: 'ds-controlled-date-time-picker-timewheel-controller-wrapper',\n CONTROLLER_COMPONENT_CALENDAR_TIMEWHEEL: 'ds-controlled-date-time-picker-calendar-timewheel-controller-wrapper',\n FOOTERS_CALENDAR: 'ds-controlled-date-time-picker-calendar-context-footer',\n FOOTERS_TIMEWHEEL: 'ds-controlled-date-time-picker-timewheel-context-footer',\n FOOTERS_CALENDAR_TIMEWHEEL: 'ds-controlled-date-time-picker-calendar-timewheel-context-footer',\n CLEAR_BUTTON: 'ds-controlled-date-time-picker-clear-btn',\n} as const;\n\n// we are naming this with the ${component_name}_data_testid convention to namespace & avoid errors on duplicate exports variables in aggregators\nexport const FORM_DATE_TIME_PICKER_DATA_TESTID = {\n ...slotObjectToDataTestIds(DSControlledDateTimePickerName, FORM_DATE_TIME_PICKER_SLOTS),\n ...PRE_EXISTING_DATA_TESTID,\n};\n\n/* ******************************************************************************************\nThis component was created before the team had a convention for data-testid and slots.\n*********************************************************************************************\n START OF LEGACY CODE (kept to avoid breaking changes)\n****************************************************************************************** */\nexport const DSControlledDateTimePickerSlotsFlatten = FORM_DATE_TIME_PICKER_SLOTS;\nexport const DSControlledDateTimePickerSlots = {\n CONTAINER: FORM_DATE_TIME_PICKER_SLOTS.CONTAINER,\n DATE_INPUTS: {\n MONTH: FORM_DATE_TIME_PICKER_SLOTS.DATE_INPUTS_MONTH,\n DAY: FORM_DATE_TIME_PICKER_SLOTS.DATE_INPUTS_DAY,\n YEAR: FORM_DATE_TIME_PICKER_SLOTS.DATE_INPUTS_YEAR,\n },\n TIME_INPUTS: {\n HOUR: FORM_DATE_TIME_PICKER_SLOTS.TIME_INPUTS_HOUR,\n MINUTE: FORM_DATE_TIME_PICKER_SLOTS.TIME_INPUTS_MINUTE,\n MERIDIEM: FORM_DATE_TIME_PICKER_SLOTS.TIME_INPUTS_MERIDIEM,\n },\n PICKER_ICONS: {\n CALENDAR: FORM_DATE_TIME_PICKER_SLOTS.PICKER_ICONS_CALENDAR,\n TIMEWHEEL: FORM_DATE_TIME_PICKER_SLOTS.PICKER_ICONS_TIMEWHEEL,\n CALENDAR_TIMEWHEEL: FORM_DATE_TIME_PICKER_SLOTS.PICKER_ICONS_CALENDAR_TIMEWHEEL,\n },\n CALENDAR: {\n DAY_BUTTON: FORM_DATE_TIME_PICKER_SLOTS.CALENDAR_DAY_BUTTON,\n HEADER_LABEL: FORM_DATE_TIME_PICKER_SLOTS.CALENDAR_HEADER_LABEL,\n HEADER_BUTTON: FORM_DATE_TIME_PICKER_SLOTS.CALENDAR_HEADER_BUTTON,\n HEADER_WEEKLY_DAY_LIST: FORM_DATE_TIME_PICKER_SLOTS.CALENDAR_HEADER_WEEKLY_DAY_LIST,\n },\n TIMEWHEEL: {\n TIME_BUTTON: FORM_DATE_TIME_PICKER_SLOTS.TIMEWHEEL_TIME_BUTTON,\n TIME_CHANGE_BUTTON: FORM_DATE_TIME_PICKER_SLOTS.TIMEWHEEL_TIME_CHANGE_BUTTON,\n HEADER_LABEL: FORM_DATE_TIME_PICKER_SLOTS.TIMEWHEEL_HEADER_LABEL,\n },\n CONTEXTUAL_MENU: {\n CALENDAR: FORM_DATE_TIME_PICKER_SLOTS.CONTEXTUAL_MENU_CALENDAR,\n TIMEWHEEL: FORM_DATE_TIME_PICKER_SLOTS.CONTEXTUAL_MENU_TIMEWHEEL,\n CALENDAR_TIMEWHEEL: FORM_DATE_TIME_PICKER_SLOTS.CONTEXTUAL_MENU_CALENDAR_TIMEWHEEL,\n },\n FOOTERS: {\n CALENDAR: FORM_DATE_TIME_PICKER_SLOTS.FOOTERS_CALENDAR,\n TIMEWHEEL: FORM_DATE_TIME_PICKER_SLOTS.FOOTERS_TIMEWHEEL,\n CALENDAR_TIMEWHEEL: FORM_DATE_TIME_PICKER_SLOTS.FOOTERS_CALENDAR_TIMEWHEEL,\n },\n CONTROLLER_COMPONENT: {\n CALENDAR: FORM_DATE_TIME_PICKER_SLOTS.CONTROLLER_COMPONENT_CALENDAR,\n TIMEWHEEL: FORM_DATE_TIME_PICKER_SLOTS.CONTROLLER_COMPONENT_TIMEWHEEL,\n CALENDAR_TIMEWHEEL: FORM_DATE_TIME_PICKER_SLOTS.CONTROLLER_COMPONENT_CALENDAR_TIMEWHEEL,\n },\n CLEAR_BUTTON: FORM_DATE_TIME_PICKER_SLOTS.CLEAR_BUTTON,\n};\nexport const ControlledDateTimePickerDatatestidFlattened = FORM_DATE_TIME_PICKER_DATA_TESTID;\nexport const ControlledDateTimePickerDatatestid = {\n CONTAINER: FORM_DATE_TIME_PICKER_DATA_TESTID.CONTAINER,\n DATE_INPUTS: {\n MONTH: FORM_DATE_TIME_PICKER_DATA_TESTID.DATE_INPUTS_MONTH,\n DAY: FORM_DATE_TIME_PICKER_DATA_TESTID.DATE_INPUTS_DAY,\n YEAR: FORM_DATE_TIME_PICKER_DATA_TESTID.DATE_INPUTS_YEAR,\n },\n TIME_INPUTS: {\n HOUR: FORM_DATE_TIME_PICKER_DATA_TESTID.TIME_INPUTS_HOUR,\n MINUTE: FORM_DATE_TIME_PICKER_DATA_TESTID.TIME_INPUTS_MINUTE,\n MERIDIEM: FORM_DATE_TIME_PICKER_DATA_TESTID.TIME_INPUTS_MERIDIEM,\n },\n PICKER_ICONS: {\n CALENDAR: FORM_DATE_TIME_PICKER_DATA_TESTID.PICKER_ICONS_CALENDAR,\n TIMEWHEEL: FORM_DATE_TIME_PICKER_DATA_TESTID.PICKER_ICONS_TIMEWHEEL,\n CALENDAR_TIMEWHEEL: FORM_DATE_TIME_PICKER_DATA_TESTID.PICKER_ICONS_CALENDAR_TIMEWHEEL,\n },\n CALENDAR: {\n TABLE_WRAPPER: FORM_DATE_TIME_PICKER_DATA_TESTID.CALENDAR_TABLE_WRAPPER,\n HEADER_LABEL: FORM_DATE_TIME_PICKER_DATA_TESTID.CALENDAR_HEADER_LABEL,\n PREV_YEAR: FORM_DATE_TIME_PICKER_DATA_TESTID.CALENDAR_PREV_YEAR,\n PREV_MONTH: FORM_DATE_TIME_PICKER_DATA_TESTID.CALENDAR_PREV_MONTH,\n DAY: FORM_DATE_TIME_PICKER_DATA_TESTID.CALENDAR_DAY,\n FOCUSED_DAY: FORM_DATE_TIME_PICKER_DATA_TESTID.CALENDAR_FOCUSED_DAY,\n START_RANGE_DAY: FORM_DATE_TIME_PICKER_DATA_TESTID.CALENDAR_START_RANGE_DAY,\n IN_RANGE_DAY: FORM_DATE_TIME_PICKER_DATA_TESTID.CALENDAR_IN_RANGE_DAY,\n END_RANGE_DAY: FORM_DATE_TIME_PICKER_DATA_TESTID.CALENDAR_END_RANGE_DAY,\n SELECTED_DAY: FORM_DATE_TIME_PICKER_DATA_TESTID.CALENDAR_SELECTED_DAY,\n SELECTED_FOCUSED_DAY: FORM_DATE_TIME_PICKER_DATA_TESTID.CALENDAR_SELECTED_FOCUSED_DAY,\n NEXT_MONTH: FORM_DATE_TIME_PICKER_DATA_TESTID.CALENDAR_NEXT_MONTH,\n NEXT_YEAR: FORM_DATE_TIME_PICKER_DATA_TESTID.CALENDAR_NEXT_YEAR,\n },\n TIMEWHEEL: {\n HEADER_LABEL: FORM_DATE_TIME_PICKER_DATA_TESTID.TIMEWHEEL_HEADER_LABEL,\n PREV_HOUR: FORM_DATE_TIME_PICKER_DATA_TESTID.TIMEWHEEL_PREV_HOUR,\n HOUR: FORM_DATE_TIME_PICKER_DATA_TESTID.TIMEWHEEL_HOUR,\n CURRENT_HOUR: FORM_DATE_TIME_PICKER_DATA_TESTID.TIMEWHEEL_CURRENT_HOUR,\n NEXT_HOUR: FORM_DATE_TIME_PICKER_DATA_TESTID.TIMEWHEEL_NEXT_HOUR,\n PREV_MINUTE: FORM_DATE_TIME_PICKER_DATA_TESTID.TIMEWHEEL_PREV_MINUTE,\n MINUTE: FORM_DATE_TIME_PICKER_DATA_TESTID.TIMEWHEEL_MINUTE,\n CURRENT_MINUTE: FORM_DATE_TIME_PICKER_DATA_TESTID.TIMEWHEEL_CURRENT_MINUTE,\n NEXT_MINUTE: FORM_DATE_TIME_PICKER_DATA_TESTID.TIMEWHEEL_NEXT_MINUTE,\n PREV_MERIDIEM: FORM_DATE_TIME_PICKER_DATA_TESTID.TIMEWHEEL_PREV_MERIDIEM,\n MERIDIEM: FORM_DATE_TIME_PICKER_DATA_TESTID.TIMEWHEEL_MERIDIEM,\n CURRENT_MERIDIEM: FORM_DATE_TIME_PICKER_DATA_TESTID.TIMEWHEEL_CURRENT_MERIDIEM,\n NEXT_MERIDIEM: FORM_DATE_TIME_PICKER_DATA_TESTID.TIMEWHEEL_NEXT_MERIDIEM,\n },\n CONTEXTUAL_MENU: {\n CALENDAR: FORM_DATE_TIME_PICKER_DATA_TESTID.CONTEXTUAL_MENU_CALENDAR,\n TIMEWHEEL: FORM_DATE_TIME_PICKER_DATA_TESTID.CONTEXTUAL_MENU_TIMEWHEEL,\n CALENDAR_TIMEWHEEL: FORM_DATE_TIME_PICKER_DATA_TESTID.CONTEXTUAL_MENU_CALENDAR_TIMEWHEEL,\n },\n CONTROLLER_COMPONENT: {\n CALENDAR: FORM_DATE_TIME_PICKER_DATA_TESTID.CONTROLLER_COMPONENT_CALENDAR,\n TIMEWHEEL: FORM_DATE_TIME_PICKER_DATA_TESTID.CONTROLLER_COMPONENT_TIMEWHEEL,\n CALENDAR_TIMEWHEEL: FORM_DATE_TIME_PICKER_DATA_TESTID.CONTROLLER_COMPONENT_CALENDAR_TIMEWHEEL,\n },\n FOOTERS: {\n CALENDAR: FORM_DATE_TIME_PICKER_DATA_TESTID.FOOTERS_CALENDAR,\n TIMEWHEEL: FORM_DATE_TIME_PICKER_DATA_TESTID.FOOTERS_TIMEWHEEL,\n CALENDAR_TIMEWHEEL: FORM_DATE_TIME_PICKER_DATA_TESTID.FOOTERS_CALENDAR_TIMEWHEEL,\n },\n CLEAR_BUTTON: FORM_DATE_TIME_PICKER_DATA_TESTID.CLEAR_BUTTON,\n} as const;\n/* ******************************************************************************************\n END OF LEGACY CODE (kept to avoid breaking changes)\n****************************************************************************************** */\n", "import * as React from 'react';\nexport { React };\n"],
5
- "mappings": "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",
4
+ "sourcesContent": ["/* eslint-disable max-lines */\nimport { slotObjectToDataTestIds } from '@elliemae/ds-system';\n\nexport const DSControlledDateTimePickerName = 'DSControlleddatetimepicker';\n\n// we are naming this with the ${component_name}_slots convention to namespace & avoid errors on duplicate exports variables in aggregators\nexport const FORM_DATE_TIME_PICKER_SLOTS = {\n CONTAINER: 'root',\n // THE SLOT IS ABOUT \"DATE\" EVEN IF THE STRING SAYS \"time-...\"\n // When this was first defined there was a typo in the string, now we can't change because it is a deliverable and would impact application space.\n DATE_INPUTS_MONTH: 'time-picker-month-input',\n DATE_INPUTS_DAY: 'time-picker-day-input',\n DATE_INPUTS_YEAR: 'time-picker-year-input',\n // end of typo\n TIME_INPUTS_HOUR: 'time-picker-hour-input',\n TIME_INPUTS_MINUTE: 'time-picker-minute-input',\n TIME_INPUTS_MERIDIEM: 'time-picker-meridiem-input',\n PICKER_ICONS_CALENDAR: 'calendar-trigger-icon',\n PICKER_ICONS_TIMEWHEEL: 'timewheel-trigger-icon',\n PICKER_ICONS_CALENDAR_TIMEWHEEL: 'calendar-timewheel-trigger-icon',\n CALENDAR_DAY_BUTTON: 'calendar-day',\n CALENDAR_HEADER_LABEL: 'calendar-header-label',\n CALENDAR_HEADER_BUTTON: 'calendar-header-buttons',\n CALENDAR_HEADER_WEEKLY_DAY_LIST: 'calendar-header-weekly-day-list',\n TIMEWHEEL_TIME_BUTTON: 'timewheel-time-button',\n TIMEWHEEL_TIME_CHANGE_BUTTON: 'timewheel-time-change-button',\n TIMEWHEEL_HEADER_LABEL: 'timewheel-header-label',\n CONTEXTUAL_MENU_CALENDAR: 'calendar-context-content-wrapper',\n CONTEXTUAL_MENU_TIMEWHEEL: 'timewheel-context-content-wrapper',\n CONTEXTUAL_MENU_CALENDAR_TIMEWHEEL: 'calendar-timewheel-context-content-wrapper',\n FOOTERS_CALENDAR: 'calendar-context-footer',\n FOOTERS_TIMEWHEEL: 'timewheel-context-footer',\n FOOTERS_CALENDAR_TIMEWHEEL: 'calendar-timewheel-context-footer',\n CONTROLLER_COMPONENT_CALENDAR: 'calendar-controller-wrapper',\n CONTROLLER_COMPONENT_TIMEWHEEL: 'timewheel-controller-wrapper',\n CONTROLLER_COMPONENT_CALENDAR_TIMEWHEEL: 'calendar-timewheel-controller-wrapper',\n CLEAR_BUTTON: 'clear-btn',\n} as const;\n\nconst PRE_EXISTING_DATA_TESTID = {\n // we are keeping the old names for backward compatibility...\n CONTAINER: 'ds-controlled-date-time-picker-container',\n DATE_INPUTS_MONTH: 'ds-controlled-date-time-picker-month-input',\n DATE_INPUTS_DAY: 'ds-controlled-date-time-picker-day-input',\n DATE_INPUTS_YEAR: 'ds-controlled-date-time-picker-year-input',\n TIME_INPUTS_HOUR: 'ds-controlled-date-time-picker-hour-input',\n TIME_INPUTS_MINUTE: 'ds-controlled-date-time-picker-minute-input',\n TIME_INPUTS_MERIDIEM: 'ds-controlled-date-time-picker-meridiem-input',\n PICKER_ICONS_CALENDAR: 'ds-controlled-date-time-picker-calendar-trigger-icon',\n PICKER_ICONS_TIMEWHEEL: 'ds-controlled-date-time-picker-timewheel-trigger-icon',\n PICKER_ICONS_CALENDAR_TIMEWHEEL: 'ds-controlled-date-time-picker-calendar-timewheel-trigger-icon',\n CALENDAR_TABLE_WRAPPER: 'ds-controlled-date-time-picker-calendar-table-wrapper',\n CALENDAR_HEADER_LABEL: 'ds-controlled-date-time-picker-calendar-header-label',\n CALENDAR_PREV_YEAR: 'ds-controlled-date-time-picker-calendar-prev-year',\n CALENDAR_PREV_MONTH: 'ds-controlled-date-time-picker-calendar-prev-month',\n CALENDAR_DAY: 'ds-controlled-date-time-picker-calendar-day',\n CALENDAR_FOCUSED_DAY: 'ds-controlled-date-time-picker-calendar-focused-day',\n CALENDAR_START_RANGE_DAY: 'ds-controlled-date-time-picker-calendar-start-range-day',\n CALENDAR_IN_RANGE_DAY: 'ds-controlled-date-time-picker-calendar-in-range-day',\n CALENDAR_END_RANGE_DAY: 'ds-controlled-date-time-picker-calendar-end-range-day',\n CALENDAR_SELECTED_DAY: 'ds-controlled-date-time-picker-calendar-selected-day',\n CALENDAR_SELECTED_FOCUSED_DAY: 'ds-controlled-date-time-picker-calendar-selected-focused-day',\n CALENDAR_NEXT_MONTH: 'ds-controlled-date-time-picker-calendar-next-month',\n CALENDAR_NEXT_YEAR: 'ds-controlled-date-time-picker-calendar-next-year',\n TIMEWHEEL_HEADER_LABEL: 'ds-controlled-date-time-picker-timewheel-header-label',\n TIMEWHEEL_PREV_HOUR: 'ds-controlled-date-time-picker-timewheel-prev-hour',\n TIMEWHEEL_HOUR: 'ds-controlled-date-time-picker-timewheel-hour',\n TIMEWHEEL_CURRENT_HOUR: 'ds-controlled-date-time-picker-timewheel-current-hour',\n TIMEWHEEL_NEXT_HOUR: 'ds-controlled-date-time-picker-timewheel-next-hour',\n TIMEWHEEL_PREV_MINUTE: 'ds-controlled-date-time-picker-timewheel-prev-minute',\n TIMEWHEEL_MINUTE: 'ds-controlled-date-time-picker-timewheel-minute',\n TIMEWHEEL_CURRENT_MINUTE: 'ds-controlled-date-time-picker-timewheel-current-minute',\n TIMEWHEEL_NEXT_MINUTE: 'ds-controlled-date-time-picker-timewheel-next-minute',\n TIMEWHEEL_PREV_MERIDIEM: 'ds-controlled-date-time-picker-timewheel-prev-meridiem',\n TIMEWHEEL_MERIDIEM: 'ds-controlled-date-time-picker-timewheel-meridiem',\n TIMEWHEEL_CURRENT_MERIDIEM: 'ds-controlled-date-time-picker-timewheel-current-meridiem',\n TIMEWHEEL_NEXT_MERIDIEM: 'ds-controlled-date-time-picker-timewheel-next-meridiem',\n // MeridiemList renders a dual-layer pattern (see KNOWN_INTENTIONAL_DEVIATIONS.md DEV-001):\n // - A11y layer: invisible semantic listbox \u2014 the real focus target, owns CURRENT_MERIDIEM above.\n // - Visual layer: aria-hidden StyledTimeBtn elements \u2014 presentation only, no focus capability.\n //\n // CURRENT_MERIDIEM / MERIDIEM originally lived on the visual elements. When the a11y layer became\n // the focus target, CURRENT_MERIDIEM moved to the listbox. The visual elements received\n // -visual-element-suffixed testids to prevent DOM query duplication (getByTestId would otherwise\n // return two elements with the same testid and throw in most automation frameworks).\n //\n // data-dimsum-slot on StyledTimeBtn (TIMEWHEEL_TIME_BUTTON) is unaffected \u2014 theming via slots is unchanged.\n TIMEWHEEL_MERIDIEM_VISUAL_ELEMENT: 'ds-controlled-date-time-picker-timewheel-meridiem-visual-element',\n TIMEWHEEL_CURRENT_MERIDIEM_VISUAL_ELEMENT: 'ds-controlled-date-time-picker-timewheel-current-meridiem-visual-element',\n CONTEXTUAL_MENU_CALENDAR: 'ds-controlled-date-time-picker-calendar-context-content-wrapper',\n CONTEXTUAL_MENU_TIMEWHEEL: 'ds-controlled-date-time-picker-timewheel-context-content-wrapper',\n CONTEXTUAL_MENU_CALENDAR_TIMEWHEEL: 'ds-controlled-date-time-picker-calendar-timewheel-context-content-wrapper',\n CONTROLLER_COMPONENT_CALENDAR: 'ds-controlled-date-time-picker-calendar-controller-wrapper',\n CONTROLLER_COMPONENT_TIMEWHEEL: 'ds-controlled-date-time-picker-timewheel-controller-wrapper',\n CONTROLLER_COMPONENT_CALENDAR_TIMEWHEEL: 'ds-controlled-date-time-picker-calendar-timewheel-controller-wrapper',\n FOOTERS_CALENDAR: 'ds-controlled-date-time-picker-calendar-context-footer',\n FOOTERS_TIMEWHEEL: 'ds-controlled-date-time-picker-timewheel-context-footer',\n FOOTERS_CALENDAR_TIMEWHEEL: 'ds-controlled-date-time-picker-calendar-timewheel-context-footer',\n CLEAR_BUTTON: 'ds-controlled-date-time-picker-clear-btn',\n} as const;\n\n// we are naming this with the ${component_name}_data_testid convention to namespace & avoid errors on duplicate exports variables in aggregators\nexport const FORM_DATE_TIME_PICKER_DATA_TESTID = {\n ...slotObjectToDataTestIds(DSControlledDateTimePickerName, FORM_DATE_TIME_PICKER_SLOTS),\n ...PRE_EXISTING_DATA_TESTID,\n};\n\n/* ******************************************************************************************\nThis component was created before the team had a convention for data-testid and slots.\n*********************************************************************************************\n START OF LEGACY CODE (kept to avoid breaking changes)\n****************************************************************************************** */\nexport const DSControlledDateTimePickerSlotsFlatten = FORM_DATE_TIME_PICKER_SLOTS;\nexport const DSControlledDateTimePickerSlots = {\n CONTAINER: FORM_DATE_TIME_PICKER_SLOTS.CONTAINER,\n DATE_INPUTS: {\n MONTH: FORM_DATE_TIME_PICKER_SLOTS.DATE_INPUTS_MONTH,\n DAY: FORM_DATE_TIME_PICKER_SLOTS.DATE_INPUTS_DAY,\n YEAR: FORM_DATE_TIME_PICKER_SLOTS.DATE_INPUTS_YEAR,\n },\n TIME_INPUTS: {\n HOUR: FORM_DATE_TIME_PICKER_SLOTS.TIME_INPUTS_HOUR,\n MINUTE: FORM_DATE_TIME_PICKER_SLOTS.TIME_INPUTS_MINUTE,\n MERIDIEM: FORM_DATE_TIME_PICKER_SLOTS.TIME_INPUTS_MERIDIEM,\n },\n PICKER_ICONS: {\n CALENDAR: FORM_DATE_TIME_PICKER_SLOTS.PICKER_ICONS_CALENDAR,\n TIMEWHEEL: FORM_DATE_TIME_PICKER_SLOTS.PICKER_ICONS_TIMEWHEEL,\n CALENDAR_TIMEWHEEL: FORM_DATE_TIME_PICKER_SLOTS.PICKER_ICONS_CALENDAR_TIMEWHEEL,\n },\n CALENDAR: {\n DAY_BUTTON: FORM_DATE_TIME_PICKER_SLOTS.CALENDAR_DAY_BUTTON,\n HEADER_LABEL: FORM_DATE_TIME_PICKER_SLOTS.CALENDAR_HEADER_LABEL,\n HEADER_BUTTON: FORM_DATE_TIME_PICKER_SLOTS.CALENDAR_HEADER_BUTTON,\n HEADER_WEEKLY_DAY_LIST: FORM_DATE_TIME_PICKER_SLOTS.CALENDAR_HEADER_WEEKLY_DAY_LIST,\n },\n TIMEWHEEL: {\n TIME_BUTTON: FORM_DATE_TIME_PICKER_SLOTS.TIMEWHEEL_TIME_BUTTON,\n TIME_CHANGE_BUTTON: FORM_DATE_TIME_PICKER_SLOTS.TIMEWHEEL_TIME_CHANGE_BUTTON,\n HEADER_LABEL: FORM_DATE_TIME_PICKER_SLOTS.TIMEWHEEL_HEADER_LABEL,\n },\n CONTEXTUAL_MENU: {\n CALENDAR: FORM_DATE_TIME_PICKER_SLOTS.CONTEXTUAL_MENU_CALENDAR,\n TIMEWHEEL: FORM_DATE_TIME_PICKER_SLOTS.CONTEXTUAL_MENU_TIMEWHEEL,\n CALENDAR_TIMEWHEEL: FORM_DATE_TIME_PICKER_SLOTS.CONTEXTUAL_MENU_CALENDAR_TIMEWHEEL,\n },\n FOOTERS: {\n CALENDAR: FORM_DATE_TIME_PICKER_SLOTS.FOOTERS_CALENDAR,\n TIMEWHEEL: FORM_DATE_TIME_PICKER_SLOTS.FOOTERS_TIMEWHEEL,\n CALENDAR_TIMEWHEEL: FORM_DATE_TIME_PICKER_SLOTS.FOOTERS_CALENDAR_TIMEWHEEL,\n },\n CONTROLLER_COMPONENT: {\n CALENDAR: FORM_DATE_TIME_PICKER_SLOTS.CONTROLLER_COMPONENT_CALENDAR,\n TIMEWHEEL: FORM_DATE_TIME_PICKER_SLOTS.CONTROLLER_COMPONENT_TIMEWHEEL,\n CALENDAR_TIMEWHEEL: FORM_DATE_TIME_PICKER_SLOTS.CONTROLLER_COMPONENT_CALENDAR_TIMEWHEEL,\n },\n CLEAR_BUTTON: FORM_DATE_TIME_PICKER_SLOTS.CLEAR_BUTTON,\n};\nexport const ControlledDateTimePickerDatatestidFlattened = FORM_DATE_TIME_PICKER_DATA_TESTID;\nexport const ControlledDateTimePickerDatatestid = {\n CONTAINER: FORM_DATE_TIME_PICKER_DATA_TESTID.CONTAINER,\n DATE_INPUTS: {\n MONTH: FORM_DATE_TIME_PICKER_DATA_TESTID.DATE_INPUTS_MONTH,\n DAY: FORM_DATE_TIME_PICKER_DATA_TESTID.DATE_INPUTS_DAY,\n YEAR: FORM_DATE_TIME_PICKER_DATA_TESTID.DATE_INPUTS_YEAR,\n },\n TIME_INPUTS: {\n HOUR: FORM_DATE_TIME_PICKER_DATA_TESTID.TIME_INPUTS_HOUR,\n MINUTE: FORM_DATE_TIME_PICKER_DATA_TESTID.TIME_INPUTS_MINUTE,\n MERIDIEM: FORM_DATE_TIME_PICKER_DATA_TESTID.TIME_INPUTS_MERIDIEM,\n },\n PICKER_ICONS: {\n CALENDAR: FORM_DATE_TIME_PICKER_DATA_TESTID.PICKER_ICONS_CALENDAR,\n TIMEWHEEL: FORM_DATE_TIME_PICKER_DATA_TESTID.PICKER_ICONS_TIMEWHEEL,\n CALENDAR_TIMEWHEEL: FORM_DATE_TIME_PICKER_DATA_TESTID.PICKER_ICONS_CALENDAR_TIMEWHEEL,\n },\n CALENDAR: {\n TABLE_WRAPPER: FORM_DATE_TIME_PICKER_DATA_TESTID.CALENDAR_TABLE_WRAPPER,\n HEADER_LABEL: FORM_DATE_TIME_PICKER_DATA_TESTID.CALENDAR_HEADER_LABEL,\n PREV_YEAR: FORM_DATE_TIME_PICKER_DATA_TESTID.CALENDAR_PREV_YEAR,\n PREV_MONTH: FORM_DATE_TIME_PICKER_DATA_TESTID.CALENDAR_PREV_MONTH,\n DAY: FORM_DATE_TIME_PICKER_DATA_TESTID.CALENDAR_DAY,\n FOCUSED_DAY: FORM_DATE_TIME_PICKER_DATA_TESTID.CALENDAR_FOCUSED_DAY,\n START_RANGE_DAY: FORM_DATE_TIME_PICKER_DATA_TESTID.CALENDAR_START_RANGE_DAY,\n IN_RANGE_DAY: FORM_DATE_TIME_PICKER_DATA_TESTID.CALENDAR_IN_RANGE_DAY,\n END_RANGE_DAY: FORM_DATE_TIME_PICKER_DATA_TESTID.CALENDAR_END_RANGE_DAY,\n SELECTED_DAY: FORM_DATE_TIME_PICKER_DATA_TESTID.CALENDAR_SELECTED_DAY,\n SELECTED_FOCUSED_DAY: FORM_DATE_TIME_PICKER_DATA_TESTID.CALENDAR_SELECTED_FOCUSED_DAY,\n NEXT_MONTH: FORM_DATE_TIME_PICKER_DATA_TESTID.CALENDAR_NEXT_MONTH,\n NEXT_YEAR: FORM_DATE_TIME_PICKER_DATA_TESTID.CALENDAR_NEXT_YEAR,\n },\n TIMEWHEEL: {\n HEADER_LABEL: FORM_DATE_TIME_PICKER_DATA_TESTID.TIMEWHEEL_HEADER_LABEL,\n PREV_HOUR: FORM_DATE_TIME_PICKER_DATA_TESTID.TIMEWHEEL_PREV_HOUR,\n HOUR: FORM_DATE_TIME_PICKER_DATA_TESTID.TIMEWHEEL_HOUR,\n CURRENT_HOUR: FORM_DATE_TIME_PICKER_DATA_TESTID.TIMEWHEEL_CURRENT_HOUR,\n NEXT_HOUR: FORM_DATE_TIME_PICKER_DATA_TESTID.TIMEWHEEL_NEXT_HOUR,\n PREV_MINUTE: FORM_DATE_TIME_PICKER_DATA_TESTID.TIMEWHEEL_PREV_MINUTE,\n MINUTE: FORM_DATE_TIME_PICKER_DATA_TESTID.TIMEWHEEL_MINUTE,\n CURRENT_MINUTE: FORM_DATE_TIME_PICKER_DATA_TESTID.TIMEWHEEL_CURRENT_MINUTE,\n NEXT_MINUTE: FORM_DATE_TIME_PICKER_DATA_TESTID.TIMEWHEEL_NEXT_MINUTE,\n PREV_MERIDIEM: FORM_DATE_TIME_PICKER_DATA_TESTID.TIMEWHEEL_PREV_MERIDIEM,\n MERIDIEM: FORM_DATE_TIME_PICKER_DATA_TESTID.TIMEWHEEL_MERIDIEM,\n CURRENT_MERIDIEM: FORM_DATE_TIME_PICKER_DATA_TESTID.TIMEWHEEL_CURRENT_MERIDIEM,\n NEXT_MERIDIEM: FORM_DATE_TIME_PICKER_DATA_TESTID.TIMEWHEEL_NEXT_MERIDIEM,\n MERIDIEM_VISUAL_ELEMENT: FORM_DATE_TIME_PICKER_DATA_TESTID.TIMEWHEEL_MERIDIEM_VISUAL_ELEMENT,\n CURRENT_MERIDIEM_VISUAL_ELEMENT: FORM_DATE_TIME_PICKER_DATA_TESTID.TIMEWHEEL_CURRENT_MERIDIEM_VISUAL_ELEMENT,\n },\n CONTEXTUAL_MENU: {\n CALENDAR: FORM_DATE_TIME_PICKER_DATA_TESTID.CONTEXTUAL_MENU_CALENDAR,\n TIMEWHEEL: FORM_DATE_TIME_PICKER_DATA_TESTID.CONTEXTUAL_MENU_TIMEWHEEL,\n CALENDAR_TIMEWHEEL: FORM_DATE_TIME_PICKER_DATA_TESTID.CONTEXTUAL_MENU_CALENDAR_TIMEWHEEL,\n },\n CONTROLLER_COMPONENT: {\n CALENDAR: FORM_DATE_TIME_PICKER_DATA_TESTID.CONTROLLER_COMPONENT_CALENDAR,\n TIMEWHEEL: FORM_DATE_TIME_PICKER_DATA_TESTID.CONTROLLER_COMPONENT_TIMEWHEEL,\n CALENDAR_TIMEWHEEL: FORM_DATE_TIME_PICKER_DATA_TESTID.CONTROLLER_COMPONENT_CALENDAR_TIMEWHEEL,\n },\n FOOTERS: {\n CALENDAR: FORM_DATE_TIME_PICKER_DATA_TESTID.FOOTERS_CALENDAR,\n TIMEWHEEL: FORM_DATE_TIME_PICKER_DATA_TESTID.FOOTERS_TIMEWHEEL,\n CALENDAR_TIMEWHEEL: FORM_DATE_TIME_PICKER_DATA_TESTID.FOOTERS_CALENDAR_TIMEWHEEL,\n },\n CLEAR_BUTTON: FORM_DATE_TIME_PICKER_DATA_TESTID.CLEAR_BUTTON,\n} as const;\n/* ******************************************************************************************\n END OF LEGACY CODE (kept to avoid breaking changes)\n****************************************************************************************** */\n", "import * as React from 'react';\nexport { React };\n"],
5
+ "mappings": "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",
6
6
  "names": []
7
7
  }
@@ -46,7 +46,7 @@ var import_ds_button_v2 = require("@elliemae/ds-button-v2");
46
46
  var import_ds_grid = require("@elliemae/ds-grid");
47
47
  var import_ds_system = require("@elliemae/ds-system");
48
48
  var import_constants = require("../../../constants/index.js");
49
- const diagonalLine = import_ds_system.css`
49
+ const makeDiagonalLine = (getColor) => import_ds_system.css`
50
50
  &:before {
51
51
  position: absolute;
52
52
  content: '';
@@ -55,9 +55,10 @@ const diagonalLine = import_ds_system.css`
55
55
  height: 1px;
56
56
  width: calc(100% + 4px);
57
57
  transform: rotate(45deg);
58
- background-color: ${({ theme }) => theme.colors.neutral[500]};
58
+ background-color: ${getColor};
59
59
  }
60
60
  `;
61
+ const diagonalLine = makeDiagonalLine(({ theme }) => theme.colors.neutral[500]);
61
62
  const focusBorder = import_ds_system.css`
62
63
  &:after {
63
64
  position: absolute;
@@ -71,16 +72,16 @@ const focusBorder = import_ds_system.css`
71
72
  `;
72
73
  const backgroundDateRange = {
73
74
  inRange: import_ds_system.css`
74
- background-color: ${({ theme }) => theme.colors.brand[200]};
75
- box-shadow: 4px 0 0 0 ${({ theme }) => theme.colors.brand[200]};
75
+ background-color: ${({ theme }) => theme.colors.brand[100]};
76
+ box-shadow: 4px 0 0 0 ${({ theme }) => theme.colors.brand[100]};
76
77
  `,
77
78
  startRange: import_ds_system.css`
78
- background-color: ${({ theme }) => theme.colors.brand[200]};
79
+ background-color: ${({ theme }) => theme.colors.brand[100]};
79
80
  border-radius: 50% 0 0 50%;
80
- box-shadow: 4px 0 0 0 ${({ theme }) => theme.colors.brand[200]};
81
+ box-shadow: 4px 0 0 0 ${({ theme }) => theme.colors.brand[100]};
81
82
  `,
82
83
  endRange: import_ds_system.css`
83
- background-color: ${({ theme }) => theme.colors.brand[200]};
84
+ background-color: ${({ theme }) => theme.colors.brand[100]};
84
85
  border-radius: 0 50% 50% 0;
85
86
  `
86
87
  };
@@ -163,28 +164,13 @@ const StyledDayBtn = (0, import_ds_system.styled)(import_ds_button_v2.DSButtonV2
163
164
  border-color: transparent;
164
165
  line-height: 1;
165
166
  color: ${({ theme }) => theme.colors.neutral[800]};
166
- &:hover {
167
- ${({ theme, $readOnlyStyles }) => {
168
- if ($readOnlyStyles) {
169
- return import_ds_system.css`
170
- cursor: not-allowed;
171
- background-color: ${theme.colors.neutral["100"]};
172
- color: ${theme.colors.neutral["700"]};
173
- `;
174
- }
175
- return import_ds_system.css`
176
- cursor: pointer;
177
- background-color: ${theme.colors.brand["200"]};
178
- color: ${theme.colors.brand[700]};
179
- `;
180
- }}
181
- }
182
- &:focus {
183
- ${focusBorder}
184
- }
167
+ cursor: ${({ $readOnlyStyles }) => $readOnlyStyles ? "not-allowed" : "pointer"};
185
168
  display: flex;
186
169
  justify-content: center;
187
170
  align-items: center;
171
+ &:focus {
172
+ ${focusBorder}
173
+ }
188
174
  `;
189
175
  const StyledWeekDaysListWrapper = (0, import_ds_system.styled)(import_ds_grid.Grid, {
190
176
  name: import_constants.DSControlledDateTimePickerName,
@@ -196,40 +182,25 @@ const StyledWeekDaysListWrapper = (0, import_ds_system.styled)(import_ds_grid.Gr
196
182
  ${({ isHeader, theme }) => isHeader ? `background: ${theme.colors.neutral["050"]}` : ""};
197
183
  ${({ isHeader }) => isHeader ? "text-transform: capitalize" : ""};
198
184
 
185
+ /* ─────────────────────────────────────────────────────────────────
186
+ SELECTED (valid) — defect fix: brand-600, was brand-700
187
+ ───────────────────────────────────────────────────────────────── */
199
188
  .dayWrapper.selectedDay,
200
189
  .dayWrapper.startRangeDay,
201
190
  .dayWrapper.endRangeDay {
202
- ${StyledDayBtn} {
203
- color: ${({ theme }) => theme.colors.neutral["000"]};
204
- font-weight: ${({ theme }) => theme.fontWeights.semibold};
205
- }
206
- &:not(.disabledDay),
207
- &:not(.outOfRangeDay) {
191
+ &:not(.disabledDay):not(.outOfRangeDay):not(.readOnly) {
208
192
  ${StyledDayBtn} {
209
- background-color: ${({ theme }) => theme.colors.brand[700]};
193
+ background-color: ${({ theme }) => theme.colors.brand[600]};
194
+ color: ${({ theme }) => theme.colors.neutral["000"]};
195
+ font-weight: ${({ theme }) => theme.fontWeights.semibold};
210
196
  }
211
197
  }
212
198
 
199
+ /* selected invalid: danger-900 background */
213
200
  &.disabledDay,
214
201
  &.outOfRangeDay {
215
202
  ${StyledDayBtn} {
216
- color: ${({ theme }) => theme.colors.neutral["000"]};
217
203
  background-color: ${({ theme }) => theme.colors.danger[900]};
218
- &:before {
219
- background-color: ${({ theme }) => theme.colors.neutral["000"]};
220
- }
221
- }
222
- }
223
-
224
- &.focusedDay {
225
- ${StyledDayBtn} {
226
- color: ${({ theme }) => theme.colors.neutral["000"]};
227
- border-color: ${({ theme }) => theme.colors.neutral["000"]};
228
- }
229
- }
230
-
231
- &.outOfRangeDay.focusedDay {
232
- ${StyledDayBtn} {
233
204
  color: ${({ theme }) => theme.colors.neutral["000"]};
234
205
  &:before {
235
206
  background-color: ${({ theme }) => theme.colors.neutral["000"]};
@@ -238,27 +209,24 @@ const StyledWeekDaysListWrapper = (0, import_ds_system.styled)(import_ds_grid.Gr
238
209
  }
239
210
  }
240
211
 
212
+ /* ─────────────────────────────────────────────────────────────────
213
+ INVALID (disabled / out-of-range) — base colour + diagonal
214
+ ───────────────────────────────────────────────────────────────── */
241
215
  .dayWrapper.disabledDay,
242
216
  .dayWrapper.outOfRangeDay {
243
217
  ${StyledDayBtn} {
218
+ cursor: not-allowed;
244
219
  color: ${({ theme }) => theme.colors.neutral[700]};
245
220
  ${diagonalLine}
246
221
  &:before {
247
222
  background-color: ${({ theme }) => theme.colors.neutral[500]};
248
223
  }
249
- :hover {
250
- color: ${({ theme }) => theme.colors.neutral[700]};
251
- }
252
- }
253
- &.focusedDay {
254
- ${StyledDayBtn} {
255
- &:after {
256
- border: 2px solid ${({ theme }) => theme.colors.danger[900]};
257
- }
258
- }
259
224
  }
260
225
  }
261
226
 
227
+ /* ─────────────────────────────────────────────────────────────────
228
+ FOCUS RING — always brand-700 regardless of day state
229
+ ───────────────────────────────────────────────────────────────── */
262
230
  .dayWrapper.focusedDay {
263
231
  ${StyledDayBtn} {
264
232
  ${focusBorder}
@@ -267,47 +235,123 @@ const StyledWeekDaysListWrapper = (0, import_ds_system.styled)(import_ds_grid.Gr
267
235
  }
268
236
  }
269
237
 
270
- &:not(.readOnly) {
238
+ /* focused valid not-readOnly: brand text */
239
+ &:not(.readOnly):not(.disabledDay):not(.outOfRangeDay):not(.selectedDay):not(.startRangeDay):not(.endRangeDay) {
271
240
  ${StyledDayBtn} {
272
241
  color: ${({ theme }) => theme.colors.brand[600]};
273
242
  }
274
243
  }
275
- &.disabledDay,
276
- &.outOfRangeDay {
244
+
245
+ /* focused invalid not-readOnly: brand text + brand diagonal */
246
+ &.disabledDay:not(.readOnly):not(.selectedDay):not(.startRangeDay):not(.endRangeDay),
247
+ &.outOfRangeDay:not(.readOnly):not(.selectedDay):not(.startRangeDay):not(.endRangeDay) {
277
248
  ${StyledDayBtn} {
278
- color: ${({ theme }) => theme.colors.danger[900]};
249
+ color: ${({ theme }) => theme.colors.brand[600]};
279
250
  &:before {
280
- background-color: ${({ theme }) => theme.colors.danger[900]};
251
+ background-color: ${({ theme }) => theme.colors.brand[600]};
281
252
  }
282
253
  }
283
254
  }
284
- &.selectedDay {
255
+
256
+ /* focused selected: white text, white inner border (gap), blue outer ring from generic rule */
257
+ &.selectedDay,
258
+ &.startRangeDay,
259
+ &.endRangeDay {
285
260
  ${StyledDayBtn} {
286
261
  color: ${({ theme }) => theme.colors.neutral["000"]};
262
+ border-color: ${({ theme }) => theme.colors.neutral["000"]};
287
263
  }
288
264
  }
289
- }
290
265
 
291
- .dayWrapper.selectedDay.disabledDay.focusedDay {
292
- ${StyledDayBtn} {
293
- color: ${({ theme }) => theme.colors.neutral["000"]};
294
- &:before {
295
- background-color: ${({ theme }) => theme.colors.neutral["000"]};
266
+ /* focused valid selected (non-readOnly): brand-800 background matches hover */
267
+ &.selectedDay:not(.disabledDay):not(.outOfRangeDay):not(.readOnly),
268
+ &.startRangeDay:not(.disabledDay):not(.outOfRangeDay):not(.readOnly),
269
+ &.endRangeDay:not(.disabledDay):not(.outOfRangeDay):not(.readOnly) {
270
+ ${StyledDayBtn} {
271
+ background-color: ${({ theme }) => theme.colors.brand[800]};
296
272
  }
297
273
  }
298
- }
299
274
 
300
- .dayWrapper.readOnly {
301
- ${StyledDayBtn} {
302
- :hover {
303
- cursor: not-allowed;
304
- background-color: ${({ theme }) => theme.colors.neutral["100"]};
305
- color: ${({ theme }) => theme.colors.neutral["700"]};
275
+ /* focused selected invalid: white text + white diagonal */
276
+ &.selectedDay.disabledDay,
277
+ &.selectedDay.outOfRangeDay,
278
+ &.startRangeDay.disabledDay,
279
+ &.startRangeDay.outOfRangeDay,
280
+ &.endRangeDay.disabledDay,
281
+ &.endRangeDay.outOfRangeDay {
282
+ ${StyledDayBtn} {
283
+ color: ${({ theme }) => theme.colors.neutral["000"]};
284
+ &:before {
285
+ background-color: ${({ theme }) => theme.colors.neutral["000"]};
286
+ }
306
287
  }
307
288
  }
308
289
  }
309
290
 
310
- .dayWrapper.selectedDay.readOnly {
291
+ /* ─────────────────────────────────────────────────────────────────
292
+ HOVER BACKGROUNDS — new spec
293
+ Semi-bold on hover for all non-selected states.
294
+ Rules ordered low → high specificity so readOnly always wins.
295
+ ───────────────────────────────────────────────────────────────── */
296
+
297
+ /* valid, not selected, not readOnly */
298
+ .dayWrapper:not(.disabledDay):not(.outOfRangeDay):not(.readOnly):not(.selectedDay):not(.startRangeDay):not(
299
+ .endRangeDay
300
+ ) {
301
+ ${StyledDayBtn}:hover {
302
+ background-color: ${({ theme }) => theme.colors.brand[100]};
303
+ color: ${({ theme }) => theme.colors.brand[700]};
304
+ font-weight: ${({ theme }) => theme.fontWeights.semibold};
305
+ }
306
+ }
307
+
308
+ /* invalid, not selected, not readOnly */
309
+ .dayWrapper.disabledDay:not(.selectedDay):not(.readOnly),
310
+ .dayWrapper.outOfRangeDay:not(.selectedDay):not(.readOnly) {
311
+ ${StyledDayBtn}:hover {
312
+ /* TODO: danger[200] and danger[400] are currently the same token and both fail contrast
313
+ against common dimsum color combinations. Hardcoded until the theme token is fixed. */
314
+ background-color: #fffcfc; // this is hardcoded because danger 200 fails contrast, pending theme token fix
315
+ font-weight: ${({ theme }) => theme.fontWeights.semibold};
316
+ }
317
+ }
318
+
319
+ /* selected valid, not readOnly */
320
+ .dayWrapper.selectedDay:not(.disabledDay):not(.outOfRangeDay):not(.readOnly),
321
+ .dayWrapper.startRangeDay:not(.disabledDay):not(.outOfRangeDay):not(.readOnly),
322
+ .dayWrapper.endRangeDay:not(.disabledDay):not(.outOfRangeDay):not(.readOnly) {
323
+ ${StyledDayBtn}:hover {
324
+ background-color: ${({ theme }) => theme.colors.brand[800]};
325
+ }
326
+ }
327
+
328
+ /* selected invalid, not readOnly */
329
+ .dayWrapper.selectedDay.disabledDay:not(.readOnly),
330
+ .dayWrapper.selectedDay.outOfRangeDay:not(.readOnly),
331
+ .dayWrapper.startRangeDay.disabledDay:not(.readOnly),
332
+ .dayWrapper.startRangeDay.outOfRangeDay:not(.readOnly),
333
+ .dayWrapper.endRangeDay.disabledDay:not(.readOnly),
334
+ .dayWrapper.endRangeDay.outOfRangeDay:not(.readOnly) {
335
+ ${StyledDayBtn}:hover {
336
+ background-color: ${({ theme }) => theme.colors.danger[950]};
337
+ }
338
+ }
339
+
340
+ /* readOnly, not selected (any validity) — wins over all non-readOnly hover rules */
341
+ .dayWrapper.readOnly:not(.selectedDay):not(.startRangeDay):not(.endRangeDay) {
342
+ ${StyledDayBtn}:hover {
343
+ background-color: ${({ theme }) => theme.colors.neutral[100]};
344
+ color: ${({ theme }) => theme.colors.neutral[700]};
345
+ font-weight: ${({ theme }) => theme.fontWeights.semibold};
346
+ }
347
+ }
348
+
349
+ /* ─────────────────────────────────────────────────────────────────
350
+ READONLY REST STATES
351
+ ───────────────────────────────────────────────────────────────── */
352
+ .dayWrapper.selectedDay.readOnly,
353
+ .dayWrapper.startRangeDay.readOnly,
354
+ .dayWrapper.endRangeDay.readOnly {
311
355
  ${StyledDayBtn} {
312
356
  background-color: ${({ theme }) => theme.colors.neutral["500"]};
313
357
  font-weight: ${({ theme }) => theme.fontWeights.semibold};
@@ -315,9 +359,9 @@ const StyledWeekDaysListWrapper = (0, import_ds_system.styled)(import_ds_grid.Gr
315
359
  &:before {
316
360
  background-color: ${({ theme }) => theme.colors.neutral["000"]};
317
361
  }
318
- :hover {
362
+ /* (0,6,0) beats DSButtonV2's .liKnyT:hover { background: transparent } at (0,2,0) */
363
+ &:hover {
319
364
  background-color: ${({ theme }) => theme.colors.neutral["700"]};
320
- color: ${({ theme }) => theme.colors.neutral["000"]};
321
365
  }
322
366
  :focus {
323
367
  background-color: ${({ theme }) => theme.colors.neutral["700"]};
@@ -332,9 +376,6 @@ const StyledWeekDaysListWrapper = (0, import_ds_system.styled)(import_ds_grid.Gr
332
376
  &:before {
333
377
  background-color: ${({ theme }) => theme.colors.neutral[700]};
334
378
  }
335
- :hover {
336
- background-color: ${({ theme }) => theme.colors.neutral[100]};
337
- }
338
379
  }
339
380
  &.focusedDay {
340
381
  ${StyledDayBtn} {
@@ -350,14 +391,16 @@ const StyledWeekDaysListWrapper = (0, import_ds_system.styled)(import_ds_grid.Gr
350
391
  }
351
392
 
352
393
  .dayWrapper.selectedDay.disabledDay.readOnly,
353
- .dayWrapper.selectedDay.outOfRangeDay.readOnly {
394
+ .dayWrapper.selectedDay.outOfRangeDay.readOnly,
395
+ .dayWrapper.startRangeDay.disabledDay.readOnly,
396
+ .dayWrapper.startRangeDay.outOfRangeDay.readOnly,
397
+ .dayWrapper.endRangeDay.disabledDay.readOnly,
398
+ .dayWrapper.endRangeDay.outOfRangeDay.readOnly {
354
399
  ${StyledDayBtn} {
355
400
  background-color: ${({ theme }) => theme.colors.neutral["500"]};
356
401
  color: ${({ theme }) => theme.colors.neutral["000"]};
357
- &:before {
358
- background-color: ${({ theme }) => theme.colors.neutral["000"]};
359
- }
360
- :hover {
402
+ ${makeDiagonalLine(({ theme }) => theme.colors.neutral["000"])}
403
+ &:hover {
361
404
  background-color: ${({ theme }) => theme.colors.neutral["700"]};
362
405
  }
363
406
  :focus {
@@ -366,6 +409,32 @@ const StyledWeekDaysListWrapper = (0, import_ds_system.styled)(import_ds_grid.Gr
366
409
  }
367
410
  }
368
411
 
412
+ .dayWrapper.inRangeDay.readOnly {
413
+ background-color: ${({ theme }) => theme.colors.neutral["100"]};
414
+ box-shadow: 4px 0 0 0 ${({ theme }) => theme.colors.neutral["100"]};
415
+ }
416
+
417
+ .dayWrapper.inRangeDay.disabledDay.readOnly,
418
+ .dayWrapper.inRangeDay.outOfRangeDay.readOnly {
419
+ ${StyledDayBtn} {
420
+ background-color: transparent;
421
+ color: ${({ theme }) => theme.colors.neutral[700]};
422
+ ${makeDiagonalLine(({ theme }) => theme.colors.neutral[700])}
423
+ }
424
+ }
425
+
426
+ .dayWrapper.startRangeDay.inRangeImproperDay.readOnly {
427
+ background-color: ${({ theme }) => theme.colors.neutral["100"]};
428
+ box-shadow: 4px 0 0 0 ${({ theme }) => theme.colors.neutral["100"]};
429
+ }
430
+
431
+ .dayWrapper.endRangeDay.inRangeImproperDay.readOnly {
432
+ background-color: ${({ theme }) => theme.colors.neutral["100"]};
433
+ }
434
+
435
+ /* ─────────────────────────────────────────────────────────────────
436
+ NOT CURRENT MONTH
437
+ ───────────────────────────────────────────────────────────────── */
369
438
  .dayWrapper.notCurrentMonth {
370
439
  ${StyledDayBtn} {
371
440
  color: ${({ theme }) => theme.colors.neutral[500]};
@@ -401,20 +470,23 @@ const StyledWeekDaysListWrapper = (0, import_ds_system.styled)(import_ds_grid.Gr
401
470
  }
402
471
  }
403
472
 
473
+ /* ─────────────────────────────────────────────────────────────────
474
+ RANGE DAYS
475
+ ───────────────────────────────────────────────────────────────── */
404
476
  .dayWrapper.inRangeDay {
405
477
  ${backgroundDateRange.inRange}
406
478
  &.disabledDay,
407
479
  &.outOfRangeDay {
408
480
  ${StyledDayBtn} {
409
- color: ${({ theme }) => theme.colors.neutral["000"]};
410
- background-color: ${({ theme }) => theme.colors.danger[900]};
411
- &:before {
412
- background-color: ${({ theme }) => theme.colors.neutral["000"]};
413
- }
481
+ background-color: transparent;
482
+ color: ${({ theme }) => theme.colors.neutral[700]};
483
+ ${makeDiagonalLine(({ theme }) => theme.colors.neutral[700])}
414
484
  }
415
485
  &.focusedDay {
416
486
  ${StyledDayBtn} {
417
- border-color: ${({ theme }) => theme.colors.neutral["000"]};
487
+ &:after {
488
+ border-color: ${({ theme }) => theme.colors.brand[700]};
489
+ }
418
490
  }
419
491
  }
420
492
  }