@razorpay/blade 12.49.6 → 12.49.7

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 (43) hide show
  1. package/build/lib/native/components/DatePicker/DatePickerContext.js +7 -0
  2. package/build/lib/native/components/DatePicker/DatePickerContext.js.map +1 -0
  3. package/build/lib/native/components/Input/BaseInput/BaseInput.js +1 -1
  4. package/build/lib/native/components/Input/BaseInput/BaseInput.js.map +1 -1
  5. package/build/lib/native/components/Input/TextInput/TextInput.js +2 -1
  6. package/build/lib/native/components/Input/TextInput/TextInput.js.map +1 -1
  7. package/build/lib/web/development/components/DatePicker/BaseDatePicker.web.js +27 -11
  8. package/build/lib/web/development/components/DatePicker/BaseDatePicker.web.js.map +1 -1
  9. package/build/lib/web/development/components/DatePicker/DateInput.web.js +15 -10
  10. package/build/lib/web/development/components/DatePicker/DateInput.web.js.map +1 -1
  11. package/build/lib/web/development/components/DatePicker/DatePickerContext.js +22 -0
  12. package/build/lib/web/development/components/DatePicker/DatePickerContext.js.map +1 -0
  13. package/build/lib/web/development/components/DatePicker/QuickSelection/PresetSideBar.web.js +2 -4
  14. package/build/lib/web/development/components/DatePicker/QuickSelection/PresetSideBar.web.js.map +1 -1
  15. package/build/lib/web/{production/components/DatePicker/QuickSelection/PresetDropdown.web.js → development/components/DatePicker/QuickSelection/renderPresetDropdown.web.js} +10 -9
  16. package/build/lib/web/development/components/DatePicker/QuickSelection/renderPresetDropdown.web.js.map +1 -0
  17. package/build/lib/web/development/components/DatePicker/QuickSelection/{PresetContext.js → usePresetState.js} +6 -21
  18. package/build/lib/web/development/components/DatePicker/QuickSelection/usePresetState.js.map +1 -0
  19. package/build/lib/web/development/components/Input/BaseInput/BaseInput.js +7 -3
  20. package/build/lib/web/development/components/Input/BaseInput/BaseInput.js.map +1 -1
  21. package/build/lib/web/development/components/Input/TextInput/TextInput.js +5 -2
  22. package/build/lib/web/development/components/Input/TextInput/TextInput.js.map +1 -1
  23. package/build/lib/web/production/components/DatePicker/BaseDatePicker.web.js +27 -11
  24. package/build/lib/web/production/components/DatePicker/BaseDatePicker.web.js.map +1 -1
  25. package/build/lib/web/production/components/DatePicker/DateInput.web.js +15 -10
  26. package/build/lib/web/production/components/DatePicker/DateInput.web.js.map +1 -1
  27. package/build/lib/web/production/components/DatePicker/DatePickerContext.js +22 -0
  28. package/build/lib/web/production/components/DatePicker/DatePickerContext.js.map +1 -0
  29. package/build/lib/web/production/components/DatePicker/QuickSelection/PresetSideBar.web.js +2 -4
  30. package/build/lib/web/production/components/DatePicker/QuickSelection/PresetSideBar.web.js.map +1 -1
  31. package/build/lib/web/{development/components/DatePicker/QuickSelection/PresetDropdown.web.js → production/components/DatePicker/QuickSelection/renderPresetDropdown.web.js} +10 -9
  32. package/build/lib/web/production/components/DatePicker/QuickSelection/renderPresetDropdown.web.js.map +1 -0
  33. package/build/lib/web/production/components/DatePicker/QuickSelection/{PresetContext.js → usePresetState.js} +6 -21
  34. package/build/lib/web/production/components/DatePicker/QuickSelection/usePresetState.js.map +1 -0
  35. package/build/lib/web/production/components/Input/BaseInput/BaseInput.js +7 -3
  36. package/build/lib/web/production/components/Input/BaseInput/BaseInput.js.map +1 -1
  37. package/build/lib/web/production/components/Input/TextInput/TextInput.js +5 -2
  38. package/build/lib/web/production/components/Input/TextInput/TextInput.js.map +1 -1
  39. package/package.json +1 -1
  40. package/build/lib/web/development/components/DatePicker/QuickSelection/PresetContext.js.map +0 -1
  41. package/build/lib/web/development/components/DatePicker/QuickSelection/PresetDropdown.web.js.map +0 -1
  42. package/build/lib/web/production/components/DatePicker/QuickSelection/PresetContext.js.map +0 -1
  43. package/build/lib/web/production/components/DatePicker/QuickSelection/PresetDropdown.web.js.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"file":"DateInput.web.js","sources":["../../../../../../src/components/DatePicker/DateInput.web.tsx"],"sourcesContent":["/* eslint-disable jsx-a11y/no-autofocus */\n/* eslint-disable @typescript-eslint/no-unnecessary-type-assertion */\n/* eslint-disable @typescript-eslint/no-explicit-any */\nimport React from 'react';\nimport { useDatesContext } from '@mantine/dates';\nimport type { DatePickerInputProps, DateInputProps } from './types';\nimport {\n getFormattedDate,\n rangeFormattedValue,\n rangeInputPlaceHolder,\n finalInputFormat,\n getTextInputFormat,\n validateAndParseDateInput,\n stripDelimiters,\n} from './utils';\nimport { usePresetContext } from './QuickSelection/PresetContext';\nimport BaseBox from '~components/Box/BaseBox';\nimport { TextInput } from '~components/Input/TextInput';\nimport { isReactNative } from '~utils';\nimport type { BladeElementRef, DataAnalyticsAttribute } from '~utils/types';\nimport { CalendarIcon } from '~components/Icons';\nimport { makeAnalyticsAttribute } from '~utils/makeAnalyticsAttribute';\n\n/**\n * CRITICAL BEHAVIOR CASES - Verify when making changes:\n *\n * 1. VALUE PROP: Already formatted by getFormattedDate() - avoid double formatting\n * 2. USER TYPING: Should format input AND sync with calendar selection\n * 3. CALENDAR SELECTION: Should apply formatted value to input without re-formatting\n * 4. SUBMIT (no footer): Blur/Enter should select current value\n */\nconst _DateInput = (\n props: DateInputProps,\n ref: React.ForwardedRef<BladeElementRef>,\n): React.ReactElement => {\n const { format, date, setControlledValue, leadingDropdown, tags, id, ...textInputProps } = props;\n const [inputValue, setInputValue] = React.useState(['']);\n const [validationError, setValidationError] = React.useState<string | undefined>(undefined);\n\n const presetContext = usePresetContext();\n\n // Determine selection type: prefer preset context calculation over props\n // This handles \"Today\" presets that should display as single even though data is range\n const isRange =\n presetContext?.effectiveSelectionType === 'single'\n ? false\n : presetContext?.effectiveSelectionType === 'range' || props.selectionType === 'range';\n\n // Sync internal input state with external formatted values from parent component\n // textInputProps.value comes from DatePickerInput as formatted strings: [\"25/12/2024\", \"31/12/2024\"]\n // We strip delimiters for internal processing: [\"25122024\", \"31122024\"]\n // This prevents double formatting and helps to validate the input easier during user typing\n React.useEffect(() => {\n if (textInputProps.value) {\n setInputValue(\n isRange\n ? [stripDelimiters(textInputProps.value[0]), stripDelimiters(textInputProps.value[1])]\n : [stripDelimiters(textInputProps.value[0])],\n );\n }\n }, [textInputProps.value, isRange, format]);\n\n // Clear validation error only when the actual selected date changes\n // (e.g., user selected a valid date from the calendar). This avoids\n // clearing errors during typing/blur unless the value truly updated.\n React.useEffect(() => {\n setValidationError(undefined);\n }, [date]);\n\n const applyDateValue = React.useCallback(\n (inputValue: string, shouldClearWhenEmpty = false): void => {\n if (inputValue?.trim()) {\n // Validate input and get parsed dates in one atomic operation (includes all constraints)\n const validation = validateAndParseDateInput(inputValue, isRange, format, {\n excludeDate: props.excludeDate,\n minDate: props.minDate,\n maxDate: props.maxDate,\n });\n if (validation.shouldBlock) {\n return; // Block invalid input to prevent data corruption\n }\n\n // Apply the pre-parsed date values to controlled state (no redundant parsing)\n if (validation.parsedValue !== undefined) {\n let finalValue = validation.parsedValue;\n\n // Special handling: if preset context shows single but props expect range\n // (like \"Today\" preset), convert single date back to same-day range\n if (\n presetContext?.effectiveSelectionType === 'single' &&\n props.selectionType === 'range' &&\n validation.parsedValue instanceof Date\n ) {\n finalValue = [validation.parsedValue, validation.parsedValue] as [Date, Date];\n }\n\n setControlledValue?.(finalValue);\n }\n } else if (shouldClearWhenEmpty) {\n // Clear controlled value when input is emptied (onChange only, not onBlur)\n setControlledValue?.(isRange ? ([null, null] as [Date | null, Date | null]) : null);\n }\n },\n [\n isRange,\n setControlledValue,\n presetContext?.effectiveSelectionType,\n props.selectionType,\n format,\n props.excludeDate,\n props.minDate,\n props.maxDate,\n ],\n );\n\n const handleInputChange = ({ value }: { value?: string }): void => {\n const inputValue = value ?? '';\n setValidationError(undefined);\n\n if (inputValue?.trim()) {\n const validation = validateAndParseDateInput(inputValue, isRange, format, {\n excludeDate: props.excludeDate,\n minDate: props.minDate,\n maxDate: props.maxDate,\n });\n\n if (validation.shouldBlock && validation.error) {\n setValidationError(validation.error);\n }\n }\n\n // Apply changes immediately during typing (with empty clearing enabled)\n applyDateValue(inputValue, true);\n };\n\n const handleBlur = React.useCallback(\n (params: { name?: string; value?: string; event?: React.FocusEvent<HTMLInputElement> }) => {\n const currentInputValue = params.event?.target.value ?? params.value ?? '';\n setValidationError(undefined);\n\n if (currentInputValue?.trim()) {\n // Validate complete input and show errors to user on blur (includes all constraints)\n const validation = validateAndParseDateInput(currentInputValue, isRange, format, {\n excludeDate: props.excludeDate,\n minDate: props.minDate,\n maxDate: props.maxDate,\n });\n\n if (validation.shouldBlock && validation.error) {\n setValidationError(validation.error);\n return; // Don't apply invalid values\n }\n }\n\n // Apply final value on blur (without empty clearing to preserve existing dates)\n applyDateValue(currentInputValue, false);\n },\n [applyDateValue, isRange],\n );\n\n return (\n <TextInput\n {...textInputProps}\n ref={ref}\n type=\"number\"\n value={isRange ? rangeFormattedValue(inputValue[0], inputValue[1]) : inputValue[0]}\n leadingIcon={CalendarIcon}\n leading={leadingDropdown}\n format={\n isRange\n ? getTextInputFormat(finalInputFormat(inputValue[0], inputValue[1], format), true)\n : getTextInputFormat(format, false)\n }\n validationState={validationError ? 'error' : textInputProps.validationState}\n errorText={textInputProps.errorText ?? validationError}\n onChange={handleInputChange}\n onBlur={handleBlur}\n onClick={(e) => {\n if (textInputProps.isDisabled) {\n return;\n }\n textInputProps.onClick?.(e);\n }}\n onKeyDown={({ event }) => {\n // @ts-expect-error\n textInputProps.onKeyDown?.(event);\n }}\n />\n );\n};\n\nconst DateInput = React.forwardRef(_DateInput);\n\nconst HiddenInput = ({\n value,\n name,\n isRequired,\n isDisabled,\n ...rest\n}: {\n value: string;\n name?: string;\n isRequired?: boolean;\n isDisabled?: boolean;\n} & DataAnalyticsAttribute): React.ReactElement => {\n if (isReactNative()) return <></>;\n\n return (\n <input\n hidden={true}\n name={name}\n value={value}\n required={isRequired}\n disabled={isDisabled}\n readOnly\n {...makeAnalyticsAttribute(rest)}\n />\n );\n};\n\nconst _DatePickerInput = (\n {\n selectionType,\n referenceProps,\n inputRef,\n date,\n label,\n labelPosition,\n labelSuffix,\n labelTrailing,\n autoFocus,\n name,\n size = 'medium',\n necessityIndicator,\n successText,\n errorText,\n helpText,\n format,\n placeholder,\n setControlledValue,\n leadingDropdown,\n selectedPreset,\n excludeDate,\n minDate,\n maxDate,\n ...props\n }: DatePickerInputProps,\n ref: React.ForwardedRef<any>,\n): React.ReactElement => {\n const { locale } = useDatesContext();\n\n if (selectionType == 'single') {\n const dateValue = getFormattedDate({\n date,\n format,\n labelSeparator: '-',\n locale,\n type: 'default',\n });\n return (\n <BaseBox width=\"100%\">\n <HiddenInput\n value={dateValue}\n name={name}\n isRequired={props.isRequired}\n isDisabled={props.isDisabled}\n />\n <DateInput\n ref={ref as never}\n id=\"start-date\"\n labelPosition={labelPosition}\n label={label}\n placeholder={placeholder || format}\n popupId={referenceProps['aria-controls']}\n isPopupExpanded={referenceProps['aria-expanded']}\n size={size}\n autoFocus={autoFocus}\n value={[dateValue]}\n componentName=\"DatePickerInput\"\n necessityIndicator={necessityIndicator}\n successText={successText}\n errorText={errorText}\n helpText={helpText}\n labelSuffix={labelSuffix}\n labelTrailing={labelTrailing}\n leadingDropdown={leadingDropdown}\n date={date as Date | null}\n setControlledValue={setControlledValue}\n format={format}\n selectionType={selectionType}\n excludeDate={excludeDate}\n minDate={minDate}\n maxDate={maxDate}\n {...props}\n {...referenceProps}\n />\n </BaseBox>\n );\n }\n\n if (selectionType == 'range') {\n const startValue = getFormattedDate({\n type: 'default',\n date: date[0],\n format,\n labelSeparator: '-',\n locale,\n });\n const endValue = getFormattedDate({\n type: 'default',\n date: date[1],\n format,\n labelSeparator: '-',\n locale,\n });\n\n return (\n <BaseBox width=\"100%\">\n <HiddenInput\n value={`${startValue}`}\n name={name?.start}\n isRequired={props.isRequired}\n isDisabled={props.isDisabled}\n />\n\n <HiddenInput\n value={endValue}\n name={name?.end}\n isRequired={props.isRequired}\n isDisabled={props.isDisabled}\n {...makeAnalyticsAttribute(props)}\n />\n\n <DateInput\n ref={ref as never}\n id=\"range-date\"\n labelPosition={labelPosition}\n label={typeof label === 'object' ? label?.start : label}\n placeholder={rangeInputPlaceHolder(placeholder, format)}\n popupId={referenceProps['aria-controls']}\n isPopupExpanded={referenceProps['aria-expanded']}\n size={size}\n autoFocus={autoFocus}\n value={[startValue, endValue]}\n componentName=\"DatePickerInputRange\"\n necessityIndicator={necessityIndicator}\n successText={\n typeof successText === 'object'\n ? (successText as { start: string })?.start\n : successText\n }\n errorText={\n typeof errorText === 'object' ? (errorText as { start: string })?.start : errorText\n }\n helpText={\n typeof helpText === 'object' ? (helpText as { start: string })?.start : helpText\n }\n labelSuffix={labelSuffix}\n labelTrailing={labelTrailing}\n format={format}\n leadingDropdown={leadingDropdown}\n date={date as [Date | null, Date | null]}\n setControlledValue={setControlledValue}\n selectionType={selectionType}\n excludeDate={excludeDate}\n minDate={minDate}\n maxDate={maxDate}\n {...props}\n {...referenceProps}\n />\n </BaseBox>\n );\n }\n\n return <></>;\n};\n\nconst DatePickerInput = React.forwardRef(_DatePickerInput);\nexport { DatePickerInput };\n"],"names":["_DateInput","props","ref","_textInputProps$error","format","date","setControlledValue","leadingDropdown","tags","id","textInputProps","_objectWithoutProperties","_excluded","_React$useState","React","useState","_React$useState2","_slicedToArray","inputValue","setInputValue","_React$useState3","undefined","_React$useState4","validationError","setValidationError","presetContext","usePresetContext","isRange","effectiveSelectionType","selectionType","useEffect","value","stripDelimiters","applyDateValue","useCallback","shouldClearWhenEmpty","arguments","length","trim","validation","validateAndParseDateInput","excludeDate","minDate","maxDate","shouldBlock","parsedValue","finalValue","Date","handleInputChange","_ref","error","handleBlur","params","_ref2","_params$event$target$","_params$event","currentInputValue","event","target","_jsx","TextInput","_objectSpread","type","rangeFormattedValue","leadingIcon","CalendarIcon","leading","getTextInputFormat","finalInputFormat","validationState","errorText","onChange","onBlur","onClick","e","_textInputProps$onCli","isDisabled","call","onKeyDown","_ref3","_textInputProps$onKey","DateInput","forwardRef","HiddenInput","_ref4","name","isRequired","rest","_excluded2","isReactNative","_Fragment","hidden","required","disabled","readOnly","makeAnalyticsAttribute","_DatePickerInput","_ref5","referenceProps","inputRef","label","labelPosition","labelSuffix","labelTrailing","autoFocus","_ref5$size","size","necessityIndicator","successText","helpText","placeholder","selectedPreset","_excluded3","_useDatesContext","useDatesContext","locale","dateValue","getFormattedDate","labelSeparator","_jsxs","BaseBox","width","children","popupId","isPopupExpanded","componentName","startValue","endValue","concat","start","end","_typeof","rangeInputPlaceHolder","DatePickerInput"],"mappings":"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"}
1
+ {"version":3,"file":"DateInput.web.js","sources":["../../../../../../src/components/DatePicker/DateInput.web.tsx"],"sourcesContent":["/* eslint-disable jsx-a11y/no-autofocus */\n/* eslint-disable @typescript-eslint/no-unnecessary-type-assertion */\n/* eslint-disable @typescript-eslint/no-explicit-any */\nimport React from 'react';\nimport { useDatesContext } from '@mantine/dates';\nimport type { DatePickerInputProps, DateInputProps } from './types';\nimport {\n getFormattedDate,\n rangeFormattedValue,\n rangeInputPlaceHolder,\n finalInputFormat,\n getTextInputFormat,\n validateAndParseDateInput,\n stripDelimiters,\n} from './utils';\nimport BaseBox from '~components/Box/BaseBox';\nimport { TextInput } from '~components/Input/TextInput';\nimport { isReactNative } from '~utils';\nimport type { BladeElementRef, DataAnalyticsAttribute } from '~utils/types';\nimport { CalendarIcon } from '~components/Icons';\nimport { makeAnalyticsAttribute } from '~utils/makeAnalyticsAttribute';\n\n/**\n * CRITICAL BEHAVIOR CASES - Verify when making changes:\n *\n * 1. VALUE PROP: Already formatted by getFormattedDate() - avoid double formatting\n * 2. USER TYPING: Should format input AND sync with calendar selection\n * 3. CALENDAR SELECTION: Should apply formatted value to input without re-formatting\n * 4. SUBMIT (no footer): Blur/Enter should select current value\n */\nconst _DateInput = (\n props: DateInputProps,\n ref: React.ForwardedRef<BladeElementRef>,\n): React.ReactElement => {\n const {\n format,\n date,\n setControlledValue,\n effectiveSelectionType,\n leadingDropdown,\n tags,\n id,\n ...textInputProps\n } = props;\n const [inputValue, setInputValue] = React.useState(['']);\n const [validationError, setValidationError] = React.useState<string | undefined>(undefined);\n const shouldShowCalendarIcon = !Boolean(leadingDropdown);\n\n // Determine selection type: prefer preset context calculation over props\n // This handles \"Today\" presets that should display as single even though data is range\n const isRange =\n effectiveSelectionType === 'single'\n ? false\n : effectiveSelectionType === 'range' || props.selectionType === 'range';\n\n // Sync internal input state with external formatted values from parent component\n // textInputProps.value comes from DatePickerInput as formatted strings: [\"25/12/2024\", \"31/12/2024\"]\n // We strip delimiters for internal processing: [\"25122024\", \"31122024\"]\n // This prevents double formatting and helps to validate the input easier during user typing\n React.useEffect(() => {\n if (textInputProps.value) {\n setInputValue(\n isRange\n ? [stripDelimiters(textInputProps.value[0]), stripDelimiters(textInputProps.value[1])]\n : [stripDelimiters(textInputProps.value[0])],\n );\n }\n }, [textInputProps.value, isRange, format]);\n\n // Clear validation error only when the actual selected date changes\n // (e.g., user selected a valid date from the calendar). This avoids\n // clearing errors during typing/blur unless the value truly updated.\n React.useEffect(() => {\n setValidationError(undefined);\n }, [date]);\n\n const applyDateValue = React.useCallback(\n (inputValue: string, shouldClearWhenEmpty = false): void => {\n if (inputValue?.trim()) {\n // Validate input and get parsed dates in one atomic operation (includes all constraints)\n const validation = validateAndParseDateInput(inputValue, isRange, format, {\n excludeDate: props.excludeDate,\n minDate: props.minDate,\n maxDate: props.maxDate,\n });\n if (validation.shouldBlock) {\n return; // Block invalid input to prevent data corruption\n }\n\n // Apply the pre-parsed date values to controlled state (no redundant parsing)\n if (validation.parsedValue !== undefined) {\n let finalValue = validation.parsedValue;\n\n // Special handling: if preset context shows single but props expect range\n // (like \"Today\" preset), convert single date back to same-day range\n if (\n effectiveSelectionType === 'single' &&\n props.selectionType === 'range' &&\n validation.parsedValue instanceof Date\n ) {\n finalValue = [validation.parsedValue, validation.parsedValue] as [Date, Date];\n }\n\n setControlledValue?.(finalValue);\n }\n } else if (shouldClearWhenEmpty) {\n // Clear controlled value when input is emptied (onChange only, not onBlur)\n setControlledValue?.(isRange ? ([null, null] as [Date | null, Date | null]) : null);\n }\n },\n [\n isRange,\n setControlledValue,\n effectiveSelectionType,\n props.selectionType,\n format,\n props.excludeDate,\n props.minDate,\n props.maxDate,\n ],\n );\n\n const handleInputChange = ({ value }: { value?: string }): void => {\n const inputValue = value ?? '';\n setValidationError(undefined);\n\n if (inputValue?.trim()) {\n const validation = validateAndParseDateInput(inputValue, isRange, format, {\n excludeDate: props.excludeDate,\n minDate: props.minDate,\n maxDate: props.maxDate,\n });\n\n if (validation.shouldBlock && validation.error) {\n setValidationError(validation.error);\n }\n }\n\n // Apply changes immediately during typing (with empty clearing enabled)\n applyDateValue(inputValue, true);\n };\n\n const handleBlur = React.useCallback(\n (params: { name?: string; value?: string; event?: React.FocusEvent<HTMLInputElement> }) => {\n const currentInputValue = params.event?.target.value ?? params.value ?? '';\n setValidationError(undefined);\n\n if (currentInputValue?.trim()) {\n // Validate complete input and show errors to user on blur (includes all constraints)\n const validation = validateAndParseDateInput(currentInputValue, isRange, format, {\n excludeDate: props.excludeDate,\n minDate: props.minDate,\n maxDate: props.maxDate,\n });\n\n if (validation.shouldBlock && validation.error) {\n setValidationError(validation.error);\n return; // Don't apply invalid values\n }\n }\n\n // Apply final value on blur (without empty clearing to preserve existing dates)\n applyDateValue(currentInputValue, false);\n },\n [applyDateValue, isRange],\n );\n\n return (\n <TextInput\n {...textInputProps}\n ref={ref}\n type=\"number\"\n value={isRange ? rangeFormattedValue(inputValue[0], inputValue[1]) : inputValue[0]}\n leadingIcon={shouldShowCalendarIcon ? CalendarIcon : undefined}\n leading={leadingDropdown}\n format={\n isRange\n ? getTextInputFormat(finalInputFormat(inputValue[0], inputValue[1], format), true)\n : getTextInputFormat(format, false)\n }\n validationState={validationError ? 'error' : textInputProps.validationState}\n errorText={textInputProps.errorText ?? validationError}\n onChange={handleInputChange}\n onBlur={handleBlur}\n onClick={(e) => {\n if (textInputProps.isDisabled) {\n return;\n }\n textInputProps.onClick?.(e);\n }}\n onKeyDown={({ event }) => {\n // @ts-expect-error\n textInputProps.onKeyDown?.(event);\n }}\n />\n );\n};\n\nconst DateInput = React.forwardRef(_DateInput);\n\nconst HiddenInput = ({\n value,\n name,\n isRequired,\n isDisabled,\n ...rest\n}: {\n value: string;\n name?: string;\n isRequired?: boolean;\n isDisabled?: boolean;\n} & DataAnalyticsAttribute): React.ReactElement => {\n if (isReactNative()) return <></>;\n\n return (\n <input\n hidden={true}\n name={name}\n value={value}\n required={isRequired}\n disabled={isDisabled}\n readOnly\n {...makeAnalyticsAttribute(rest)}\n />\n );\n};\n\nconst _DatePickerInput = (\n {\n selectionType,\n referenceProps,\n inputRef,\n date,\n label,\n labelPosition,\n labelSuffix,\n labelTrailing,\n autoFocus,\n name,\n size = 'medium',\n necessityIndicator,\n successText,\n errorText,\n helpText,\n format,\n placeholder,\n setControlledValue,\n leadingDropdown,\n selectedPreset,\n excludeDate,\n minDate,\n maxDate,\n effectiveSelectionType,\n ...props\n }: DatePickerInputProps,\n ref: React.ForwardedRef<any>,\n): React.ReactElement => {\n const { locale } = useDatesContext();\n\n if (selectionType == 'single') {\n const dateValue = getFormattedDate({\n date,\n format,\n labelSeparator: '-',\n locale,\n type: 'default',\n });\n return (\n <BaseBox width=\"100%\">\n <HiddenInput\n value={dateValue}\n name={name}\n isRequired={props.isRequired}\n isDisabled={props.isDisabled}\n />\n <DateInput\n ref={ref as never}\n id=\"start-date\"\n labelPosition={labelPosition}\n label={label}\n placeholder={placeholder || format}\n popupId={referenceProps['aria-controls']}\n isPopupExpanded={referenceProps['aria-expanded']}\n hasPopup={referenceProps['aria-haspopup']}\n size={size}\n autoFocus={autoFocus}\n value={[dateValue]}\n componentName=\"DatePickerInput\"\n necessityIndicator={necessityIndicator}\n successText={successText}\n errorText={errorText}\n helpText={helpText}\n labelSuffix={labelSuffix}\n labelTrailing={labelTrailing}\n leadingDropdown={leadingDropdown}\n date={date as Date | null}\n setControlledValue={setControlledValue}\n format={format}\n selectionType={selectionType}\n excludeDate={excludeDate}\n minDate={minDate}\n maxDate={maxDate}\n effectiveSelectionType={effectiveSelectionType}\n {...props}\n {...referenceProps}\n />\n </BaseBox>\n );\n }\n\n if (selectionType == 'range') {\n const startValue = getFormattedDate({\n type: 'default',\n date: date[0],\n format,\n labelSeparator: '-',\n locale,\n });\n const endValue = getFormattedDate({\n type: 'default',\n date: date[1],\n format,\n labelSeparator: '-',\n locale,\n });\n\n return (\n <BaseBox width=\"100%\">\n <HiddenInput\n value={`${startValue}`}\n name={name?.start}\n isRequired={props.isRequired}\n isDisabled={props.isDisabled}\n />\n\n <HiddenInput\n value={endValue}\n name={name?.end}\n isRequired={props.isRequired}\n isDisabled={props.isDisabled}\n {...makeAnalyticsAttribute(props)}\n />\n\n <DateInput\n ref={ref as never}\n id=\"range-date\"\n labelPosition={labelPosition}\n label={typeof label === 'object' ? label?.start : label}\n placeholder={rangeInputPlaceHolder(placeholder, format)}\n popupId={referenceProps['aria-controls']}\n isPopupExpanded={referenceProps['aria-expanded']}\n hasPopup={referenceProps['aria-haspopup']}\n size={size}\n autoFocus={autoFocus}\n value={[startValue, endValue]}\n componentName=\"DatePickerInputRange\"\n necessityIndicator={necessityIndicator}\n successText={\n typeof successText === 'object'\n ? (successText as { start: string })?.start\n : successText\n }\n errorText={\n typeof errorText === 'object' ? (errorText as { start: string })?.start : errorText\n }\n helpText={\n typeof helpText === 'object' ? (helpText as { start: string })?.start : helpText\n }\n labelSuffix={labelSuffix}\n labelTrailing={labelTrailing}\n format={format}\n leadingDropdown={leadingDropdown}\n date={date as [Date | null, Date | null]}\n setControlledValue={setControlledValue}\n selectionType={selectionType}\n excludeDate={excludeDate}\n minDate={minDate}\n maxDate={maxDate}\n effectiveSelectionType={effectiveSelectionType}\n {...props}\n {...referenceProps}\n />\n </BaseBox>\n );\n }\n\n return <></>;\n};\n\nconst DatePickerInput = React.forwardRef(_DatePickerInput);\nexport { DatePickerInput };\n"],"names":["_DateInput","props","ref","_textInputProps$error","format","date","setControlledValue","effectiveSelectionType","leadingDropdown","tags","id","textInputProps","_objectWithoutProperties","_excluded","_React$useState","React","useState","_React$useState2","_slicedToArray","inputValue","setInputValue","_React$useState3","undefined","_React$useState4","validationError","setValidationError","shouldShowCalendarIcon","Boolean","isRange","selectionType","useEffect","value","stripDelimiters","applyDateValue","useCallback","shouldClearWhenEmpty","arguments","length","trim","validation","validateAndParseDateInput","excludeDate","minDate","maxDate","shouldBlock","parsedValue","finalValue","Date","handleInputChange","_ref","error","handleBlur","params","_ref2","_params$event$target$","_params$event","currentInputValue","event","target","_jsx","TextInput","_objectSpread","type","rangeFormattedValue","leadingIcon","CalendarIcon","leading","getTextInputFormat","finalInputFormat","validationState","errorText","onChange","onBlur","onClick","e","_textInputProps$onCli","isDisabled","call","onKeyDown","_ref3","_textInputProps$onKey","DateInput","forwardRef","HiddenInput","_ref4","name","isRequired","rest","_excluded2","isReactNative","_Fragment","hidden","required","disabled","readOnly","makeAnalyticsAttribute","_DatePickerInput","_ref5","referenceProps","inputRef","label","labelPosition","labelSuffix","labelTrailing","autoFocus","_ref5$size","size","necessityIndicator","successText","helpText","placeholder","selectedPreset","_excluded3","_useDatesContext","useDatesContext","locale","dateValue","getFormattedDate","labelSeparator","_jsxs","BaseBox","width","children","popupId","isPopupExpanded","hasPopup","componentName","startValue","endValue","concat","start","end","_typeof","rangeInputPlaceHolder","DatePickerInput"],"mappings":"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"}
@@ -0,0 +1,22 @@
1
+ import { createContext, useContext } from 'react';
2
+ import { jsx } from 'react/jsx-runtime';
3
+
4
+ var DatePickerContext = /*#__PURE__*/createContext(undefined);
5
+ var DatePickerProvider = function DatePickerProvider(_ref) {
6
+ var children = _ref.children,
7
+ isDatePickerBodyOpen = _ref.isDatePickerBodyOpen;
8
+ var value = {
9
+ isDatePickerBodyOpen: isDatePickerBodyOpen
10
+ };
11
+ return /*#__PURE__*/jsx(DatePickerContext.Provider, {
12
+ value: value,
13
+ children: children
14
+ });
15
+ };
16
+ var useDatePickerContext = function useDatePickerContext() {
17
+ var context = useContext(DatePickerContext);
18
+ return context;
19
+ };
20
+
21
+ export { DatePickerProvider, useDatePickerContext };
22
+ //# sourceMappingURL=DatePickerContext.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"DatePickerContext.js","sources":["../../../../../../src/components/DatePicker/DatePickerContext.tsx"],"sourcesContent":["import React, { createContext, useContext } from 'react';\nimport type { ReactNode } from 'react';\n\ninterface DatePickerContextType {\n isDatePickerBodyOpen: boolean;\n}\n\nconst DatePickerContext = createContext<DatePickerContextType | undefined>(undefined);\n\ninterface DatePickerProviderProps {\n children: ReactNode;\n isDatePickerBodyOpen: boolean;\n}\n\nexport const DatePickerProvider: React.FC<DatePickerProviderProps> = ({\n children,\n isDatePickerBodyOpen,\n}) => {\n const value: DatePickerContextType = {\n isDatePickerBodyOpen,\n };\n\n return <DatePickerContext.Provider value={value}>{children}</DatePickerContext.Provider>;\n};\n\nexport const useDatePickerContext = (): DatePickerContextType | undefined => {\n const context = useContext(DatePickerContext);\n\n return context;\n};\n"],"names":["DatePickerContext","createContext","undefined","DatePickerProvider","_ref","children","isDatePickerBodyOpen","value","_jsx","Provider","useDatePickerContext","context","useContext"],"mappings":";;;AAOA,IAAMA,iBAAiB,gBAAGC,aAAa,CAAoCC,SAAS,CAAC,CAAA;IAOxEC,kBAAqD,GAAG,SAAxDA,kBAAqDA,CAAAC,IAAA,EAG5D;AAAA,EAAA,IAFJC,QAAQ,GAAAD,IAAA,CAARC,QAAQ;IACRC,oBAAoB,GAAAF,IAAA,CAApBE,oBAAoB,CAAA;AAEpB,EAAA,IAAMC,KAA4B,GAAG;AACnCD,IAAAA,oBAAoB,EAApBA,oBAAAA;GACD,CAAA;AAED,EAAA,oBAAOE,GAAA,CAACR,iBAAiB,CAACS,QAAQ,EAAA;AAACF,IAAAA,KAAK,EAAEA,KAAM;AAAAF,IAAAA,QAAA,EAAEA,QAAAA;AAAQ,GAA6B,CAAC,CAAA;AAC1F,EAAC;IAEYK,oBAAoB,GAAG,SAAvBA,oBAAoBA,GAA4C;AAC3E,EAAA,IAAMC,OAAO,GAAGC,UAAU,CAACZ,iBAAiB,CAAC,CAAA;AAE7C,EAAA,OAAOW,OAAO,CAAA;AAChB;;;;"}
@@ -1,5 +1,4 @@
1
1
  import _defineProperty from '@babel/runtime/helpers/defineProperty';
2
- import { usePresetContext } from './PresetContext.js';
3
2
  import { QuickSelectionItem } from './QuickSelectionItem.web.js';
4
3
  import '../../Box/index.js';
5
4
  import '../../Box/BaseBox/index.js';
@@ -22,9 +21,8 @@ function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbol
22
21
  function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
23
22
  var PresetSideBar = function PresetSideBar(_ref) {
24
23
  var onSelection = _ref.onSelection,
25
- isMobile = _ref.isMobile;
26
- var _usePresetContext = usePresetContext(),
27
- presetStates = _usePresetContext.presetStates;
24
+ isMobile = _ref.isMobile,
25
+ presetStates = _ref.presetStates;
28
26
  if (presetStates.length === 0) return /*#__PURE__*/jsx(Fragment, {});
29
27
  if (isMobile) {
30
28
  return /*#__PURE__*/jsxs(Box, {
@@ -1 +1 @@
1
- {"version":3,"file":"PresetSideBar.web.js","sources":["../../../../../../../src/components/DatePicker/QuickSelection/PresetSideBar.web.tsx"],"sourcesContent":["import type { DatesRangeValue } from '../types';\nimport { usePresetContext } from './PresetContext';\nimport { QuickSelectionItem } from './QuickSelectionItem.web';\nimport { Box } from '~components/Box';\nimport BaseBox from '~components/Box/BaseBox';\nimport { Chip, ChipGroup } from '~components/Chip';\nimport { Divider } from '~components/Divider';\nimport { size } from '~tokens/global';\nimport { makeSpace } from '~utils';\nimport { makeAccessible } from '~utils/makeAccessible';\n\ntype PresetSideBarProps = {\n isMobile?: boolean;\n onSelection: (value: (date: Date) => DatesRangeValue) => void;\n};\n\nconst PresetSideBar = ({ onSelection, isMobile }: PresetSideBarProps): React.ReactElement => {\n const { presetStates } = usePresetContext();\n\n if (presetStates.length === 0) return <></>;\n\n if (isMobile) {\n return (\n <Box>\n <Divider marginTop=\"spacing.4\" />\n <ChipGroup\n marginTop=\"spacing.7\"\n size=\"small\"\n selectionType=\"single\"\n accessibilityLabel=\"Select Presets\"\n onChange={({ values }) => {\n const selectedPreset = presetStates.find((state) => state.preset.label === values[0]);\n if (selectedPreset) {\n onSelection(selectedPreset.preset.value);\n }\n }}\n >\n {presetStates.map(({ preset }, index) => {\n return (\n <Chip value={preset.label} key={index} data-analytics-name={preset.label}>\n {preset.label}\n </Chip>\n );\n })}\n </ChipGroup>\n </Box>\n );\n }\n\n return (\n <BaseBox\n padding=\"spacing.5\"\n display=\"flex\"\n flexDirection=\"column\"\n gap=\"spacing.2\"\n backgroundColor=\"surface.background.gray.moderate\"\n minWidth={makeSpace(size[160])}\n borderRightColor=\"surface.border.gray.muted\"\n borderRightStyle=\"solid\"\n borderRightWidth=\"thin\"\n {...makeAccessible({ role: 'listbox', label: 'Select Presets' })}\n >\n {presetStates.map(({ preset, isSelected }, index) => {\n return (\n <QuickSelectionItem\n key={index}\n isSelected={isSelected}\n onClick={() => onSelection(preset.value)}\n >\n {preset.label}\n </QuickSelectionItem>\n );\n })}\n </BaseBox>\n );\n};\n\nexport { PresetSideBar };\n"],"names":["PresetSideBar","_ref","onSelection","isMobile","_usePresetContext","usePresetContext","presetStates","length","_jsx","_Fragment","_jsxs","Box","children","Divider","marginTop","ChipGroup","size","selectionType","accessibilityLabel","onChange","_ref2","values","selectedPreset","find","state","preset","label","value","map","_ref3","index","Chip","BaseBox","_objectSpread","padding","display","flexDirection","gap","backgroundColor","minWidth","makeSpace","borderRightColor","borderRightStyle","borderRightWidth","makeAccessible","role","_ref4","isSelected","QuickSelectionItem","onClick"],"mappings":";;;;;;;;;;;;;;;;;;;;;;AAgBA,IAAMA,aAAa,GAAG,SAAhBA,aAAaA,CAAAC,IAAA,EAA0E;AAAA,EAAA,IAApEC,WAAW,GAAAD,IAAA,CAAXC,WAAW;IAAEC,QAAQ,GAAAF,IAAA,CAARE,QAAQ,CAAA;AAC5C,EAAA,IAAAC,iBAAA,GAAyBC,gBAAgB,EAAE;IAAnCC,YAAY,GAAAF,iBAAA,CAAZE,YAAY,CAAA;EAEpB,IAAIA,YAAY,CAACC,MAAM,KAAK,CAAC,EAAE,oBAAOC,GAAA,CAAAC,QAAA,EAAA,EAAI,CAAC,CAAA;AAE3C,EAAA,IAAIN,QAAQ,EAAE;IACZ,oBACEO,IAAA,CAACC,GAAG,EAAA;MAAAC,QAAA,EAAA,cACFJ,GAAA,CAACK,OAAO,EAAA;AAACC,QAAAA,SAAS,EAAC,WAAA;AAAW,OAAE,CAAC,eACjCN,GAAA,CAACO,SAAS,EAAA;AACRD,QAAAA,SAAS,EAAC,WAAW;AACrBE,QAAAA,IAAI,EAAC,OAAO;AACZC,QAAAA,aAAa,EAAC,QAAQ;AACtBC,QAAAA,kBAAkB,EAAC,gBAAgB;AACnCC,QAAAA,QAAQ,EAAE,SAAVA,QAAQA,CAAAC,KAAA,EAAkB;AAAA,UAAA,IAAbC,MAAM,GAAAD,KAAA,CAANC,MAAM,CAAA;AACjB,UAAA,IAAMC,cAAc,GAAGhB,YAAY,CAACiB,IAAI,CAAC,UAACC,KAAK,EAAA;YAAA,OAAKA,KAAK,CAACC,MAAM,CAACC,KAAK,KAAKL,MAAM,CAAC,CAAC,CAAC,CAAA;WAAC,CAAA,CAAA;AACrF,UAAA,IAAIC,cAAc,EAAE;AAClBpB,YAAAA,WAAW,CAACoB,cAAc,CAACG,MAAM,CAACE,KAAK,CAAC,CAAA;AAC1C,WAAA;SACA;QAAAf,QAAA,EAEDN,YAAY,CAACsB,GAAG,CAAC,UAAAC,KAAA,EAAaC,KAAK,EAAK;AAAA,UAAA,IAApBL,MAAM,GAAAI,KAAA,CAANJ,MAAM,CAAA;UACzB,oBACEjB,GAAA,CAACuB,IAAI,EAAA;YAACJ,KAAK,EAAEF,MAAM,CAACC,KAAM;YAAa,qBAAqBD,EAAAA,MAAM,CAACC,KAAM;YAAAd,QAAA,EACtEa,MAAM,CAACC,KAAAA;AAAK,WAAA,EADiBI,KAE1B,CAAC,CAAA;SAEV,CAAA;AAAC,OACO,CAAC,CAAA;AAAA,KACT,CAAC,CAAA;AAEV,GAAA;AAEA,EAAA,oBACEtB,GAAA,CAACwB,OAAO,EAAAC,aAAA,CAAAA,aAAA,CAAA;AACNC,IAAAA,OAAO,EAAC,WAAW;AACnBC,IAAAA,OAAO,EAAC,MAAM;AACdC,IAAAA,aAAa,EAAC,QAAQ;AACtBC,IAAAA,GAAG,EAAC,WAAW;AACfC,IAAAA,eAAe,EAAC,kCAAkC;AAClDC,IAAAA,QAAQ,EAAEC,SAAS,CAACxB,IAAI,CAAC,GAAG,CAAC,CAAE;AAC/ByB,IAAAA,gBAAgB,EAAC,2BAA2B;AAC5CC,IAAAA,gBAAgB,EAAC,OAAO;AACxBC,IAAAA,gBAAgB,EAAC,MAAA;AAAM,GAAA,EACnBC,cAAc,CAAC;AAAEC,IAAAA,IAAI,EAAE,SAAS;AAAEnB,IAAAA,KAAK,EAAE,gBAAA;AAAiB,GAAC,CAAC,CAAA,EAAA,EAAA,EAAA;IAAAd,QAAA,EAE/DN,YAAY,CAACsB,GAAG,CAAC,UAAAkB,KAAA,EAAyBhB,KAAK,EAAK;AAAA,MAAA,IAAhCL,MAAM,GAAAqB,KAAA,CAANrB,MAAM;QAAEsB,UAAU,GAAAD,KAAA,CAAVC,UAAU,CAAA;MACrC,oBACEvC,GAAA,CAACwC,kBAAkB,EAAA;AAEjBD,QAAAA,UAAU,EAAEA,UAAW;QACvBE,OAAO,EAAE,SAATA,OAAOA,GAAA;AAAA,UAAA,OAAQ/C,WAAW,CAACuB,MAAM,CAACE,KAAK,CAAC,CAAA;SAAC;QAAAf,QAAA,EAExCa,MAAM,CAACC,KAAAA;AAAK,OAAA,EAJRI,KAKa,CAAC,CAAA;KAExB,CAAA;AAAC,GAAA,CACK,CAAC,CAAA;AAEd;;;;"}
1
+ {"version":3,"file":"PresetSideBar.web.js","sources":["../../../../../../../src/components/DatePicker/QuickSelection/PresetSideBar.web.tsx"],"sourcesContent":["import type { PresetSideBarProps } from './types';\nimport { QuickSelectionItem } from './QuickSelectionItem.web';\nimport { Box } from '~components/Box';\nimport BaseBox from '~components/Box/BaseBox';\nimport { Chip, ChipGroup } from '~components/Chip';\nimport { Divider } from '~components/Divider';\nimport { size } from '~tokens/global';\nimport { makeSpace } from '~utils';\nimport { makeAccessible } from '~utils/makeAccessible';\n\nconst PresetSideBar = ({\n onSelection,\n isMobile,\n presetStates,\n}: PresetSideBarProps): React.ReactElement => {\n if (presetStates.length === 0) return <></>;\n\n if (isMobile) {\n return (\n <Box>\n <Divider marginTop=\"spacing.4\" />\n <ChipGroup\n marginTop=\"spacing.7\"\n size=\"small\"\n selectionType=\"single\"\n accessibilityLabel=\"Select Presets\"\n onChange={({ values }) => {\n const selectedPreset = presetStates.find((state) => state.preset.label === values[0]);\n if (selectedPreset) {\n onSelection(selectedPreset.preset.value);\n }\n }}\n >\n {presetStates.map(({ preset }, index) => {\n return (\n <Chip value={preset.label} key={index} data-analytics-name={preset.label}>\n {preset.label}\n </Chip>\n );\n })}\n </ChipGroup>\n </Box>\n );\n }\n\n return (\n <BaseBox\n padding=\"spacing.5\"\n display=\"flex\"\n flexDirection=\"column\"\n gap=\"spacing.2\"\n backgroundColor=\"surface.background.gray.moderate\"\n minWidth={makeSpace(size[160])}\n borderRightColor=\"surface.border.gray.muted\"\n borderRightStyle=\"solid\"\n borderRightWidth=\"thin\"\n {...makeAccessible({ role: 'listbox', label: 'Select Presets' })}\n >\n {presetStates.map(({ preset, isSelected }, index) => {\n return (\n <QuickSelectionItem\n key={index}\n isSelected={isSelected}\n onClick={() => onSelection(preset.value)}\n >\n {preset.label}\n </QuickSelectionItem>\n );\n })}\n </BaseBox>\n );\n};\n\nexport { PresetSideBar };\n"],"names":["PresetSideBar","_ref","onSelection","isMobile","presetStates","length","_jsx","_Fragment","_jsxs","Box","children","Divider","marginTop","ChipGroup","size","selectionType","accessibilityLabel","onChange","_ref2","values","selectedPreset","find","state","preset","label","value","map","_ref3","index","Chip","BaseBox","_objectSpread","padding","display","flexDirection","gap","backgroundColor","minWidth","makeSpace","borderRightColor","borderRightStyle","borderRightWidth","makeAccessible","role","_ref4","isSelected","QuickSelectionItem","onClick"],"mappings":"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"}
@@ -1,23 +1,24 @@
1
1
  import 'react';
2
- import { usePresetContext } from './PresetContext.js';
3
2
  import '../../ActionList/index.js';
4
3
  import '../../Dropdown/index.js';
5
4
  import { InputDropdownButton } from '../../Dropdown/InputDropdownButton.web.js';
5
+ import '../../Icons/index.js';
6
6
  import { jsxs, jsx } from 'react/jsx-runtime';
7
7
  import { Dropdown } from '../../Dropdown/Dropdown.js';
8
+ import CalendarIcon from '../../Icons/CalendarIcon/CalendarIcon.js';
8
9
  import { DropdownOverlay } from '../../Dropdown/DropdownOverlay.web.js';
9
10
  import { ActionList } from '../../ActionList/ActionList.js';
10
11
  import { ActionListItem } from '../../ActionList/ActionListItem.js';
11
12
 
12
- var PresetDropdown = function PresetDropdown(_ref) {
13
+ var renderPresetDropdown = function renderPresetDropdown(_ref) {
13
14
  var onSelection = _ref.onSelection,
14
- onOpenCalendar = _ref.onOpenCalendar;
15
- var _usePresetContext = usePresetContext(),
16
- presetStates = _usePresetContext.presetStates,
17
- selectedPresetLabel = _usePresetContext.selectedPresetLabel;
15
+ onOpenCalendar = _ref.onOpenCalendar,
16
+ presetStates = _ref.presetStates,
17
+ selectedPresetLabel = _ref.selectedPresetLabel;
18
18
  return /*#__PURE__*/jsxs(Dropdown, {
19
19
  children: [/*#__PURE__*/jsx(InputDropdownButton, {
20
- value: selectedPresetLabel !== null && selectedPresetLabel !== void 0 ? selectedPresetLabel : 'Custom'
20
+ value: selectedPresetLabel !== null && selectedPresetLabel !== void 0 ? selectedPresetLabel : 'Custom',
21
+ icon: CalendarIcon
21
22
  }), /*#__PURE__*/jsx(DropdownOverlay, {
22
23
  children: /*#__PURE__*/jsx(ActionList, {
23
24
  children: presetStates.map(function (_ref2) {
@@ -42,5 +43,5 @@ var PresetDropdown = function PresetDropdown(_ref) {
42
43
  });
43
44
  };
44
45
 
45
- export { PresetDropdown };
46
- //# sourceMappingURL=PresetDropdown.web.js.map
46
+ export { renderPresetDropdown };
47
+ //# sourceMappingURL=renderPresetDropdown.web.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"renderPresetDropdown.web.js","sources":["../../../../../../../src/components/DatePicker/QuickSelection/renderPresetDropdown.web.tsx"],"sourcesContent":["import React from 'react';\nimport type { renderPresetDropdownProps } from './types';\nimport { ActionList, ActionListItem } from '~components/ActionList';\nimport { Dropdown, DropdownOverlay } from '~components/Dropdown';\nimport { InputDropdownButton } from '~components/Dropdown/InputDropdownButton';\nimport { CalendarIcon } from '~components/Icons';\n\nconst renderPresetDropdown = ({\n onSelection,\n onOpenCalendar,\n presetStates,\n selectedPresetLabel,\n}: renderPresetDropdownProps): React.ReactElement => {\n return (\n <Dropdown>\n <InputDropdownButton value={selectedPresetLabel ?? 'Custom'} icon={CalendarIcon} />\n <DropdownOverlay>\n <ActionList>\n {presetStates.map(({ preset, isSelected, isCustomType }) => (\n <ActionListItem\n key={preset.label}\n title={preset.label}\n value={preset.label}\n isSelected={isSelected}\n onClick={() => {\n onSelection(preset.value);\n // If this is a custom preset selection, also trigger calendar opening\n if (isCustomType && onOpenCalendar) {\n onOpenCalendar();\n }\n }}\n />\n ))}\n </ActionList>\n </DropdownOverlay>\n </Dropdown>\n );\n};\n\nexport { renderPresetDropdown };\n"],"names":["renderPresetDropdown","_ref","onSelection","onOpenCalendar","presetStates","selectedPresetLabel","_jsxs","Dropdown","children","_jsx","InputDropdownButton","value","icon","CalendarIcon","DropdownOverlay","ActionList","map","_ref2","preset","isSelected","isCustomType","ActionListItem","title","label","onClick"],"mappings":";;;;;;;;;;;;AAOA,IAAMA,oBAAoB,GAAG,SAAvBA,oBAAoBA,CAAAC,IAAA,EAK2B;AAAA,EAAA,IAJnDC,WAAW,GAAAD,IAAA,CAAXC,WAAW;IACXC,cAAc,GAAAF,IAAA,CAAdE,cAAc;IACdC,YAAY,GAAAH,IAAA,CAAZG,YAAY;IACZC,mBAAmB,GAAAJ,IAAA,CAAnBI,mBAAmB,CAAA;EAEnB,oBACEC,IAAA,CAACC,QAAQ,EAAA;IAAAC,QAAA,EAAA,cACPC,GAAA,CAACC,mBAAmB,EAAA;AAACC,MAAAA,KAAK,EAAEN,mBAAmB,KAAA,IAAA,IAAnBA,mBAAmB,KAAnBA,KAAAA,CAAAA,GAAAA,mBAAmB,GAAI,QAAS;AAACO,MAAAA,IAAI,EAAEC,YAAAA;AAAa,KAAE,CAAC,eACnFJ,GAAA,CAACK,eAAe,EAAA;MAAAN,QAAA,eACdC,GAAA,CAACM,UAAU,EAAA;AAAAP,QAAAA,QAAA,EACRJ,YAAY,CAACY,GAAG,CAAC,UAAAC,KAAA,EAAA;AAAA,UAAA,IAAGC,MAAM,GAAAD,KAAA,CAANC,MAAM;YAAEC,UAAU,GAAAF,KAAA,CAAVE,UAAU;YAAEC,YAAY,GAAAH,KAAA,CAAZG,YAAY,CAAA;UAAA,oBACnDX,GAAA,CAACY,cAAc,EAAA;YAEbC,KAAK,EAAEJ,MAAM,CAACK,KAAM;YACpBZ,KAAK,EAAEO,MAAM,CAACK,KAAM;AACpBJ,YAAAA,UAAU,EAAEA,UAAW;AACvBK,YAAAA,OAAO,EAAE,SAATA,OAAOA,GAAQ;AACbtB,cAAAA,WAAW,CAACgB,MAAM,CAACP,KAAK,CAAC,CAAA;AACzB;cACA,IAAIS,YAAY,IAAIjB,cAAc,EAAE;AAClCA,gBAAAA,cAAc,EAAE,CAAA;AAClB,eAAA;AACF,aAAA;WAVKe,EAAAA,MAAM,CAACK,KAWb,CAAC,CAAA;SACH,CAAA;OACS,CAAA;AAAC,KACE,CAAC,CAAA;AAAA,GACV,CAAC,CAAA;AAEf;;;;"}
@@ -1,14 +1,11 @@
1
- import { createContext, useMemo, useContext } from 'react';
1
+ import { useMemo } from 'react';
2
2
  import { isSamePreset } from './utils.js';
3
- import { jsx } from 'react/jsx-runtime';
4
3
 
5
- var PresetContext = /*#__PURE__*/createContext(null);
6
- var PresetProvider = function PresetProvider(_ref) {
7
- var children = _ref.children,
8
- presets = _ref.presets,
4
+ var usePresetState = function usePresetState(_ref) {
5
+ var presets = _ref.presets,
9
6
  selectedPreset = _ref.selectedPreset,
10
7
  currentDate = _ref.currentDate;
11
- var contextValue = useMemo(function () {
8
+ return useMemo(function () {
12
9
  // No presets provided → return empty state
13
10
  if (!presets) {
14
11
  return {
@@ -104,19 +101,7 @@ var PresetProvider = function PresetProvider(_ref) {
104
101
  effectiveSelectionType: effectiveSelectionType // 'single' | 'range' based on preset analysis
105
102
  };
106
103
  }, [presets, selectedPreset, currentDate]); // Recalculate when any of these change
107
-
108
- return /*#__PURE__*/jsx(PresetContext.Provider, {
109
- value: contextValue,
110
- children: children
111
- });
112
- };
113
- var usePresetContext = function usePresetContext() {
114
- var context = useContext(PresetContext);
115
- if (!context) {
116
- throw new Error('usePresetContext must be used within PresetProvider');
117
- }
118
- return context;
119
104
  };
120
105
 
121
- export { PresetProvider, usePresetContext };
122
- //# sourceMappingURL=PresetContext.js.map
106
+ export { usePresetState };
107
+ //# sourceMappingURL=usePresetState.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"usePresetState.js","sources":["../../../../../../../src/components/DatePicker/QuickSelection/usePresetState.ts"],"sourcesContent":["import { useMemo } from 'react';\nimport type { DatesRangeValue } from '../types';\nimport { isSamePreset } from './utils';\nimport type { PresetState, UsePresetStateProps, UsePresetStateReturn } from './types';\n\nexport const usePresetState = ({\n presets,\n selectedPreset,\n currentDate,\n}: UsePresetStateProps): UsePresetStateReturn => {\n return useMemo(() => {\n // No presets provided → return empty state\n if (!presets) {\n return {\n presetStates: [],\n selectedPresetIndex: null,\n selectedPresetLabel: null,\n isCustomSelected: false,\n effectiveSelectionType: null, // Default when no presets\n };\n }\n\n // STEP 1: Calculate each preset's value and type\n // Example: \"Last 7 days\" → [2024-01-01, 2024-01-08], isCustomType: false\n // Example: \"Custom\" → [null, null], isCustomType: true\n const presetStates: PresetState[] = presets.map((preset) => {\n let presetValue: DatesRangeValue | null = null;\n let isCustomType = false;\n\n presetValue = preset.value(currentDate); // Call function: \"Last 7 days\" → [startDate, endDate]\n // Check if preset returns valid dates (defined) or null (custom)\n isCustomType = !(presetValue?.[0] instanceof Date && presetValue?.[1] instanceof Date);\n\n return {\n preset, // Original preset object { label: \"Last 7 days\", value: fn }\n value: presetValue, // Calculated dates [2024-01-01, 2024-01-08] or [null, null]\n isSelected: false, // ⏳ Will calculate this next\n isCustomType, // true = Custom preset, false = Defined preset\n };\n });\n\n // STEP 2: Figure out which preset is currently selected\n // Example: User selected [2024-01-01, 2024-01-08] → matches \"Last 7 days\" preset\n let selectedPresetIndex: number | null = null;\n let isCustomSelected = false;\n\n if (!selectedPreset) {\n // No dates selected → find and select \"Custom\" preset by default\n selectedPresetIndex = presetStates.findIndex((state) => state.isCustomType);\n isCustomSelected = selectedPresetIndex !== -1;\n } else {\n // User has selected dates → see if they match any defined preset\n // Example: selectedPreset = [2024-01-01, 2024-01-08], check if matches \"Last 7 days\"\n selectedPresetIndex = presetStates.findIndex(\n (state) => !state.isCustomType && isSamePreset(selectedPreset, state.value),\n );\n\n if (selectedPresetIndex === -1) {\n // No match found → user made custom selection → select \"Custom\" preset\n selectedPresetIndex = presetStates.findIndex((state) => state.isCustomType);\n isCustomSelected = true;\n }\n }\n\n // STEP 3: Mark the selected preset as selected\n if (selectedPresetIndex !== -1) {\n presetStates[selectedPresetIndex].isSelected = true;\n }\n\n // STEP 4: Get the label for display\n // Example: selectedPresetIndex = 0 → presetStates[0].preset.label = \"Last 7 days\"\n const selectedPresetLabel =\n selectedPresetIndex !== -1 ? presetStates[selectedPresetIndex].preset.label : null;\n\n // STEP 5: Calculate effective selection type based on selected preset\n // If preset returns same-day range (like \"Today\"), display as single date\n let effectiveSelectionType: 'single' | 'range' = 'range'; // Default to range\n\n if (selectedPresetIndex !== -1) {\n const selectedPresetState = presetStates[selectedPresetIndex];\n\n // Check if selected preset represents same day (like \"Today\" preset)\n if (\n selectedPresetState.value?.[0] &&\n selectedPresetState.value?.[1] &&\n selectedPresetState.value[0].toDateString() === selectedPresetState.value[1].toDateString()\n ) {\n effectiveSelectionType = 'single'; // Same day = display as single\n } else {\n effectiveSelectionType = 'range'; // Different days = display as range\n }\n }\n\n // Return final calculated state - this gets shared with all components\n return {\n presetStates, // Array: [{ preset, value, isSelected, isCustomType }, ...]\n selectedPresetIndex, // Number: 0, 1, 2... or null\n selectedPresetLabel, // String: \"Last 7 days\" or \"Custom\" or null\n isCustomSelected, // Boolean: true if custom dates selected\n effectiveSelectionType, // 'single' | 'range' based on preset analysis\n };\n }, [presets, selectedPreset, currentDate]); // Recalculate when any of these change\n};\n"],"names":["usePresetState","_ref","presets","selectedPreset","currentDate","useMemo","presetStates","selectedPresetIndex","selectedPresetLabel","isCustomSelected","effectiveSelectionType","map","preset","_presetValue","_presetValue2","presetValue","isCustomType","value","Date","isSelected","findIndex","state","isSamePreset","label","_selectedPresetState$","_selectedPresetState$2","selectedPresetState","toDateString"],"mappings":"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"}
@@ -291,11 +291,12 @@ var FocusRingWrapper = /*#__PURE__*/styled(BaseBox).withConfig({
291
291
  })(function (_ref1) {
292
292
  var theme = _ref1.theme,
293
293
  currentInteraction = _ref1.currentInteraction,
294
- isTableInputCell = _ref1.isTableInputCell;
294
+ isTableInputCell = _ref1.isTableInputCell,
295
+ shouldAddLimitedFocus = _ref1.shouldAddLimitedFocus;
295
296
  return {
296
297
  borderRadius: makeBorderSize(isTableInputCell ? theme.border.radius.none : theme.border.radius.medium),
297
298
  width: '100%',
298
- '&:focus-within': !isTableInputCell ? _objectSpread(_objectSpread({}, getFocusRingStyles({
299
+ '&:focus-within': !isTableInputCell && (shouldAddLimitedFocus ? currentInteraction === 'focus' : true) ? _objectSpread(_objectSpread({}, getFocusRingStyles({
299
300
  theme: theme
300
301
  })), {}, {
301
302
  transitionDuration: castWebType(makeMotionTime(getIn(theme.motion.duration, baseInputBorderBackgroundMotion[currentInteraction === 'focus' ? 'enter' : 'exit'].duration))),
@@ -476,6 +477,9 @@ var _BaseInput = function _BaseInput(_ref10, ref) {
476
477
  }
477
478
  }
478
479
  var isTextArea = as === 'textarea';
480
+ var hasLeadingDropdown = Boolean(leadingDropDown);
481
+ var hasTrailingDropdown = Boolean(trailingDropDown);
482
+ var shouldAddLimitedFocus = hasLeadingDropdown || hasTrailingDropdown;
479
483
  return /*#__PURE__*/jsxs(BaseBox, _objectSpread(_objectSpread(_objectSpread({
480
484
  ref: getOuterMotionRef({
481
485
  _motionMeta: _motionMeta,
@@ -513,6 +517,7 @@ var _BaseInput = function _BaseInput(_ref10, ref) {
513
517
  currentInteraction: currentInteraction,
514
518
  isTableInputCell: isTableInputCell,
515
519
  className: "focus-ring-wrapper",
520
+ shouldAddLimitedFocus: shouldAddLimitedFocus,
516
521
  children: /*#__PURE__*/jsxs(BaseInputWrapper, {
517
522
  isDropdownTrigger: isDropdownTrigger,
518
523
  isTextArea: isTextArea,
@@ -575,7 +580,6 @@ var _BaseInput = function _BaseInput(_ref10, ref) {
575
580
  size: _size,
576
581
  numberOfLines: numberOfLines,
577
582
  isTextArea: isTextArea,
578
- hasLeadingDropDown: Boolean(leadingDropDown),
579
583
  children: /*#__PURE__*/jsx(StyledBaseInput, _objectSpread(_objectSpread({
580
584
  as: as,
581
585
  id: inputId,