@codecademy/gamut

73.6.173.6.2-alpha.3e37cd.0
dist/DatePicker/DatePicker.js
~dist/DatePicker/DatePicker.jsModified
+10
Index: package/dist/DatePicker/DatePicker.js
===================================================================
--- package/dist/DatePicker/DatePicker.js
+++ package/dist/DatePicker/DatePicker.js
@@ -1,6 +1,7 @@
 import { MiniArrowLeftIcon, MiniArrowRightIcon } from '@codecademy/gamut-icons';
 import { useElementDir } from '@codecademy/gamut-styles';
+import omit from 'lodash/omit';
 import { useCallback, useEffect, useId, useMemo, useRef, useState } from 'react';
 import { Box, FlexBox } from '../Box';
 import { PopoverContainer } from '../PopoverContainer';
 import { DatePickerCalendar } from './DatePickerCalendar';
@@ -20,8 +21,16 @@
     inputSize,
     quickActions,
     placement = 'inline'
   } = props;
+
+  /*
+   * `props` is a discriminated union, so the mode-specific fields
+   * (selectedDate/onSelected or startDate/endDate/onStartSelected/onEndSelected)
+   * can't be destructured directly without narrowing. Strip them out at
+   * runtime instead so only real DOM attributes reach the wrapper below.
+   */
+  const rest = omit(props, ['locale', 'disableDate', 'children', 'mode', 'translations', 'inputSize', 'quickActions', 'placement', 'selectedDate', 'onSelected', 'startDate', 'endDate', 'onStartSelected', 'onEndSelected']);
   const [isCalendarOpen, setIsCalendarOpen] = useState(false);
   const [focusGridSignal, setFocusGridSignal] = useState(false);
   const [gridFocusRequested, setGridFocusRequested] = useState(false);
   const [activeRangePart, setActiveRangePart] = useState(null);
@@ -100,8 +109,9 @@
     };
   }, [translationsProp, quickActions, mode, resolvedLocale, isCalendarOpen, openCalendar, focusCalendar, focusGridSignal, gridFocusRequested, clearGridFocusRequest, closeCalendar, disableDate, props, activeRangePart, hasError, setHasError]);
   const content = children !== undefined ? children : /*#__PURE__*/_jsxs(_Fragment, {
     children: [/*#__PURE__*/_jsx(FlexBox, {
+      ...rest,
       gap: inputSize === 'small' ? 4 : 8,
       ref: inputRef,
       width: "fit-content",
       children: mode === 'range' ? /*#__PURE__*/_jsxs(_Fragment, {