@alto-avios/alto-ui 5.1.2 → 5.2.0

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 (140) hide show
  1. package/dist/CalendarDate-uEuHKGse.js +2 -0
  2. package/dist/CalendarDate-uEuHKGse.js.map +1 -0
  3. package/dist/{DateField-oLDKE7Lh.js → DateField-rBq9QuR6.js} +4 -4
  4. package/dist/DateField-rBq9QuR6.js.map +1 -0
  5. package/dist/DatePicker.module-DlLCFGCM.js +2 -0
  6. package/dist/DatePicker.module-DlLCFGCM.js.map +1 -0
  7. package/dist/assets/Accordion.css +1 -1
  8. package/dist/assets/AviosCurrency.css +1 -1
  9. package/dist/assets/AviosCurrencyBadge.css +1 -1
  10. package/dist/assets/AviosCurrencySymbol.css +1 -1
  11. package/dist/assets/Badge.css +1 -1
  12. package/dist/assets/Button.css +1 -1
  13. package/dist/assets/CalloutBanner.css +1 -1
  14. package/dist/assets/Checkbox.css +1 -1
  15. package/dist/assets/ClearFieldButton.css +1 -1
  16. package/dist/assets/Dialog.css +1 -1
  17. package/dist/assets/ErrorSummary.css +1 -1
  18. package/dist/assets/Link.css +1 -1
  19. package/dist/assets/Radio.css +1 -1
  20. package/dist/assets/SelectCard.css +1 -1
  21. package/dist/assets/Tag.css +1 -1
  22. package/dist/components/Accordion/Accordion.js +12 -12
  23. package/dist/components/Accordion/Accordion.js.map +1 -1
  24. package/dist/components/AviosBadge/AviosBadge.js.map +1 -1
  25. package/dist/components/AviosCurrency/AviosCurrency.js +4 -4
  26. package/dist/components/AviosCurrency/AviosCurrency.js.map +1 -1
  27. package/dist/components/AviosCurrencyBadge/AviosCurrencyBadge.js +2 -2
  28. package/dist/components/AviosCurrencyBadge/AviosCurrencyBadge.js.map +1 -1
  29. package/dist/components/AviosCurrencySymbol/AviosCurrencySymbol.js +6 -6
  30. package/dist/components/AviosCurrencySymbol/AviosCurrencySymbol.js.map +1 -1
  31. package/dist/components/Badge/Badge.js +2 -2
  32. package/dist/components/Badge/Badge.js.map +1 -1
  33. package/dist/components/Box/Box.js +2 -2
  34. package/dist/components/Button/Button.d.ts +12 -83
  35. package/dist/components/Button/Button.js +3 -3
  36. package/dist/components/Button/Button.js.map +1 -1
  37. package/dist/components/ButtonGroup/ButtonGroup.js +1 -1
  38. package/dist/components/Calendar/Calendar.js +1 -1
  39. package/dist/components/CalendarRange/CalendarRange.js +1 -1
  40. package/dist/components/CalendarRange/CalendarRange.js.map +1 -1
  41. package/dist/components/CalloutBanner/CalloutBanner.js +9 -9
  42. package/dist/components/CardSection/CardSection.js +1 -1
  43. package/dist/components/Carousel/Carousel.js +4 -4
  44. package/dist/components/Checkbox/Checkbox.d.ts +1 -1
  45. package/dist/components/Checkbox/Checkbox.js +5 -5
  46. package/dist/components/Checkbox/Checkbox.js.map +1 -1
  47. package/dist/components/ClearFieldButton/ClearFieldButton.js +2 -1
  48. package/dist/components/ClearFieldButton/ClearFieldButton.js.map +1 -1
  49. package/dist/components/CreditCardNumberField/CreditCardNumberField.js +1 -1
  50. package/dist/components/CreditCardSecurityCodeField/CreditCardSecurityCodeField.js +1 -1
  51. package/dist/components/Currency/Currency.js +1 -1
  52. package/dist/components/DateField/DateField.d.ts +5 -1
  53. package/dist/components/DateField/DateField.js +1 -1
  54. package/dist/components/DateField/index.js +1 -1
  55. package/dist/components/DatePicker/DatePicker.js +3 -3
  56. package/dist/components/DatePicker/DatePicker.js.map +1 -1
  57. package/dist/components/DateRangePicker/DateRangePicker.js +3 -3
  58. package/dist/components/DateRangePicker/DateRangePicker.js.map +1 -1
  59. package/dist/components/Dialog/Dialog.js +5 -5
  60. package/dist/components/ErrorSummary/ErrorSummary.js +2 -2
  61. package/dist/components/Eyebrow/Eyebrow.js +1 -1
  62. package/dist/components/Form/Form.js +1 -1
  63. package/dist/components/Grid/Grid.d.ts +3 -3
  64. package/dist/components/Grid/Grid.js.map +1 -1
  65. package/dist/components/Heading/Heading.js +2 -2
  66. package/dist/components/Icon/Icon.js +1 -1
  67. package/dist/components/IconBackdrop/IconBackdrop.js +1 -1
  68. package/dist/components/IconButton/IconButton.js +1 -1
  69. package/dist/components/IconButton/IconButton.js.map +1 -1
  70. package/dist/components/Image/Image.js +1 -1
  71. package/dist/components/Label/Label.js +1 -1
  72. package/dist/components/Link/Link.d.ts +7 -2
  73. package/dist/components/Link/Link.js +3 -3
  74. package/dist/components/Link/Link.js.map +1 -1
  75. package/dist/components/LoadingSpinner/LoadingSpinner.js +1 -1
  76. package/dist/components/Menu/Menu.d.ts +8 -36
  77. package/dist/components/Menu/Menu.js +1 -1
  78. package/dist/components/Menu/Menu.js.map +1 -1
  79. package/dist/components/NumberField/NumberField.js +2 -2
  80. package/dist/components/NumberField/NumberField.js.map +1 -1
  81. package/dist/components/Paragraph/Paragraph.js +1 -1
  82. package/dist/components/PasswordField/PasswordField.js +1 -1
  83. package/dist/components/PhoneNumberField/PhoneNumberField.js +1 -1
  84. package/dist/components/Radio/Radio.js +1 -1
  85. package/dist/components/Section/Section.js +1 -1
  86. package/dist/components/SelectCard/SelectCard.js +5 -5
  87. package/dist/components/Spacer/Spacer.js +1 -1
  88. package/dist/components/SubHeading/SubHeading.js +1 -1
  89. package/dist/components/Tabs/TabList.js +1 -1
  90. package/dist/components/Tabs/Tabs.js +1 -1
  91. package/dist/components/Tag/Tag.js +2 -2
  92. package/dist/components/ToggleButton/ToggleButton.js +1 -1
  93. package/dist/components/ToggleIconButton/ToggleIconButton.js +1 -1
  94. package/dist/components/_base/Calendar/Calendar.js +1 -1
  95. package/dist/components/_base/Input/Input.js +1 -1
  96. package/dist/components/index.js +1 -1
  97. package/dist/{flex-D0sfBoFP.js → flex-BJOhaXnU.js} +2 -2
  98. package/dist/{flex-D0sfBoFP.js.map → flex-BJOhaXnU.js.map} +1 -1
  99. package/dist/index-CCUt_dAN.js +2 -0
  100. package/dist/{index-DiYWUa65.js.map → index-CCUt_dAN.js.map} +1 -1
  101. package/dist/index.js +1 -1
  102. package/dist/{input-DoPyN5PO.js → input-Ct1NB1lu.js} +2 -2
  103. package/dist/{input-DoPyN5PO.js.map → input-Ct1NB1lu.js.map} +1 -1
  104. package/dist/{padding-BPweMQaC.js → padding-nClUzhWp.js} +2 -2
  105. package/dist/{padding-BPweMQaC.js.map → padding-nClUzhWp.js.map} +1 -1
  106. package/dist/react-number-format.es-kdABQClE.js +2 -0
  107. package/dist/react-number-format.es-kdABQClE.js.map +1 -0
  108. package/dist/useCalendarState-BKam8aTi.js +2 -0
  109. package/dist/useCalendarState-BKam8aTi.js.map +1 -0
  110. package/dist/useControlledState-CLJIwghQ.js +2 -0
  111. package/dist/useControlledState-CLJIwghQ.js.map +1 -0
  112. package/dist/useGlobalListeners-CGYK0FZ8.js +2 -0
  113. package/dist/useGlobalListeners-CGYK0FZ8.js.map +1 -0
  114. package/dist/utils/backgroundColor/backgroundColor.js +1 -1
  115. package/dist/utils/border/border.js +1 -1
  116. package/dist/utils/date/date.js +1 -1
  117. package/dist/utils/flex/flex.js +1 -1
  118. package/dist/utils/focus/focusStyles.js +1 -1
  119. package/dist/utils/foregroundColour/foregroundColor.js +1 -1
  120. package/dist/utils/forms/field.js +1 -1
  121. package/dist/utils/forms/input/input.js +1 -1
  122. package/dist/utils/padding/padding.js +1 -1
  123. package/dist/utils/position/position.js +1 -1
  124. package/dist/utils/stories/DraggableContainer.js +2 -2
  125. package/dist/utils/stories/DraggableContainer.js.map +1 -1
  126. package/package.json +10 -5
  127. package/dist/CalendarDate-B7n_TjYa.js +0 -2
  128. package/dist/CalendarDate-B7n_TjYa.js.map +0 -1
  129. package/dist/DateField-oLDKE7Lh.js.map +0 -1
  130. package/dist/DatePicker.module-CGXPuf59.js +0 -2
  131. package/dist/DatePicker.module-CGXPuf59.js.map +0 -1
  132. package/dist/index-DiYWUa65.js +0 -2
  133. package/dist/react-number-format.es-7RDg5nwN.js +0 -2
  134. package/dist/react-number-format.es-7RDg5nwN.js.map +0 -1
  135. package/dist/useCalendarState-C9LlCwg-.js +0 -2
  136. package/dist/useCalendarState-C9LlCwg-.js.map +0 -1
  137. package/dist/useControlledState-DCczKDCM.js +0 -2
  138. package/dist/useControlledState-DCczKDCM.js.map +0 -1
  139. package/dist/useFormValidationState-CqKt4CQY.js +0 -2
  140. package/dist/useFormValidationState-CqKt4CQY.js.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"file":"CalendarRange.js","sources":["../../../node_modules/@react-stately/calendar/dist/useRangeCalendarState.mjs","../../../src/components/CalendarRange/CalendarRange.tsx"],"sourcesContent":["import {alignCenter as $f62d864046160412$export$f4a51ff076cc9a09, constrainValue as $f62d864046160412$export$4f5203c0d889109e, isInvalid as $f62d864046160412$export$eac50920cf2fd59a, previousAvailableDate as $f62d864046160412$export$a1d3911297b952d7} from \"./utils.mjs\";\nimport {useCalendarState as $131cf43a05231e1e$export$6d095e787d2b5e1f} from \"./useCalendarState.mjs\";\nimport {toCalendarDate as $d0gbl$toCalendarDate, maxDate as $d0gbl$maxDate, minDate as $d0gbl$minDate, isEqualDay as $d0gbl$isEqualDay, toCalendar as $d0gbl$toCalendar, GregorianCalendar as $d0gbl$GregorianCalendar} from \"@internationalized/date\";\nimport {useControlledState as $d0gbl$useControlledState} from \"@react-stately/utils\";\nimport {useState as $d0gbl$useState, useRef as $d0gbl$useRef, useMemo as $d0gbl$useMemo} from \"react\";\n\n/*\n * Copyright 2020 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */ \n\n\n\n\nfunction $9a36b6ba2fb1a7c5$export$9a987164d97ecc90(props) {\n let { value: valueProp, defaultValue: defaultValue, onChange: onChange, createCalendar: createCalendar, locale: locale, visibleDuration: visibleDuration = {\n months: 1\n }, minValue: minValue, maxValue: maxValue, ...calendarProps } = props;\n let [value, setValue] = (0, $d0gbl$useControlledState)(valueProp, defaultValue || null, onChange);\n let [anchorDate, setAnchorDateState] = (0, $d0gbl$useState)(null);\n let alignment = 'center';\n if (value && value.start && value.end) {\n let start = (0, $f62d864046160412$export$f4a51ff076cc9a09)((0, $d0gbl$toCalendarDate)(value.start), visibleDuration, locale, minValue, maxValue);\n let end = start.add(visibleDuration).subtract({\n days: 1\n });\n if (value.end.compare(end) > 0) alignment = 'start';\n }\n // Available range must be stored in a ref so we have access to the updated version immediately in `isInvalid`.\n let availableRangeRef = (0, $d0gbl$useRef)(null);\n let [availableRange, setAvailableRange] = (0, $d0gbl$useState)(null);\n let min = (0, $d0gbl$useMemo)(()=>(0, $d0gbl$maxDate)(minValue, availableRange === null || availableRange === void 0 ? void 0 : availableRange.start), [\n minValue,\n availableRange\n ]);\n let max = (0, $d0gbl$useMemo)(()=>(0, $d0gbl$minDate)(maxValue, availableRange === null || availableRange === void 0 ? void 0 : availableRange.end), [\n maxValue,\n availableRange\n ]);\n let calendar = (0, $131cf43a05231e1e$export$6d095e787d2b5e1f)({\n ...calendarProps,\n value: value && value.start,\n createCalendar: createCalendar,\n locale: locale,\n visibleDuration: visibleDuration,\n minValue: min,\n maxValue: max,\n selectionAlignment: props.selectionAlignment || alignment\n });\n let updateAvailableRange = (date)=>{\n if (date && props.isDateUnavailable && !props.allowsNonContiguousRanges) {\n const nextAvailableStartDate = $9a36b6ba2fb1a7c5$var$nextUnavailableDate(date, calendar, -1);\n const nextAvailableEndDate = $9a36b6ba2fb1a7c5$var$nextUnavailableDate(date, calendar, 1);\n availableRangeRef.current = {\n start: nextAvailableStartDate,\n end: nextAvailableEndDate\n };\n setAvailableRange(availableRangeRef.current);\n } else {\n availableRangeRef.current = null;\n setAvailableRange(null);\n }\n };\n // If the visible range changes, we need to update the available range.\n let [lastVisibleRange, setLastVisibleRange] = (0, $d0gbl$useState)(calendar.visibleRange);\n if (!(0, $d0gbl$isEqualDay)(calendar.visibleRange.start, lastVisibleRange.start) || !(0, $d0gbl$isEqualDay)(calendar.visibleRange.end, lastVisibleRange.end)) {\n updateAvailableRange(anchorDate);\n setLastVisibleRange(calendar.visibleRange);\n }\n let setAnchorDate = (date)=>{\n if (date) {\n setAnchorDateState(date);\n updateAvailableRange(date);\n } else {\n setAnchorDateState(null);\n updateAvailableRange(null);\n }\n };\n let highlightedRange = anchorDate ? $9a36b6ba2fb1a7c5$var$makeRange(anchorDate, calendar.focusedDate) : value && $9a36b6ba2fb1a7c5$var$makeRange(value.start, value.end);\n let selectDate = (date)=>{\n if (props.isReadOnly) return;\n const constrainedDate = (0, $f62d864046160412$export$4f5203c0d889109e)(date, min, max);\n const previousAvailableConstrainedDate = (0, $f62d864046160412$export$a1d3911297b952d7)(constrainedDate, calendar.visibleRange.start, props.isDateUnavailable);\n if (!previousAvailableConstrainedDate) return;\n if (!anchorDate) setAnchorDate(previousAvailableConstrainedDate);\n else {\n let range = $9a36b6ba2fb1a7c5$var$makeRange(anchorDate, previousAvailableConstrainedDate);\n if (range) setValue({\n start: $9a36b6ba2fb1a7c5$var$convertValue(range.start, value === null || value === void 0 ? void 0 : value.start),\n end: $9a36b6ba2fb1a7c5$var$convertValue(range.end, value === null || value === void 0 ? void 0 : value.end)\n });\n setAnchorDate(null);\n }\n };\n let [isDragging, setDragging] = (0, $d0gbl$useState)(false);\n let { isDateUnavailable: isDateUnavailable } = props;\n let isInvalidSelection = (0, $d0gbl$useMemo)(()=>{\n if (!value || anchorDate) return false;\n if (isDateUnavailable && (isDateUnavailable(value.start) || isDateUnavailable(value.end))) return true;\n return (0, $f62d864046160412$export$eac50920cf2fd59a)(value.start, minValue, maxValue) || (0, $f62d864046160412$export$eac50920cf2fd59a)(value.end, minValue, maxValue);\n }, [\n isDateUnavailable,\n value,\n anchorDate,\n minValue,\n maxValue\n ]);\n let isValueInvalid = props.isInvalid || props.validationState === 'invalid' || isInvalidSelection;\n let validationState = isValueInvalid ? 'invalid' : null;\n return {\n ...calendar,\n value: value,\n setValue: setValue,\n anchorDate: anchorDate,\n setAnchorDate: setAnchorDate,\n highlightedRange: highlightedRange,\n validationState: validationState,\n isValueInvalid: isValueInvalid,\n selectFocusedDate () {\n selectDate(calendar.focusedDate);\n },\n selectDate: selectDate,\n highlightDate (date) {\n if (anchorDate) calendar.setFocusedDate(date);\n },\n isSelected (date) {\n return Boolean(highlightedRange && date.compare(highlightedRange.start) >= 0 && date.compare(highlightedRange.end) <= 0 && !calendar.isCellDisabled(date) && !calendar.isCellUnavailable(date));\n },\n isInvalid (date) {\n var _availableRangeRef_current, _availableRangeRef_current1;\n return calendar.isInvalid(date) || (0, $f62d864046160412$export$eac50920cf2fd59a)(date, (_availableRangeRef_current = availableRangeRef.current) === null || _availableRangeRef_current === void 0 ? void 0 : _availableRangeRef_current.start, (_availableRangeRef_current1 = availableRangeRef.current) === null || _availableRangeRef_current1 === void 0 ? void 0 : _availableRangeRef_current1.end);\n },\n isDragging: isDragging,\n setDragging: setDragging\n };\n}\nfunction $9a36b6ba2fb1a7c5$var$makeRange(start, end) {\n if (!start || !end) return null;\n if (end.compare(start) < 0) [start, end] = [\n end,\n start\n ];\n return {\n start: (0, $d0gbl$toCalendarDate)(start),\n end: (0, $d0gbl$toCalendarDate)(end)\n };\n}\nfunction $9a36b6ba2fb1a7c5$var$convertValue(newValue, oldValue) {\n // The display calendar should not have any effect on the emitted value.\n // Emit dates in the same calendar as the original value, if any, otherwise gregorian.\n newValue = (0, $d0gbl$toCalendar)(newValue, (oldValue === null || oldValue === void 0 ? void 0 : oldValue.calendar) || new (0, $d0gbl$GregorianCalendar)());\n // Preserve time if the input value had one.\n if (oldValue && 'hour' in oldValue) return oldValue.set(newValue);\n return newValue;\n}\nfunction $9a36b6ba2fb1a7c5$var$nextUnavailableDate(anchorDate, state, dir) {\n let nextDate = anchorDate.add({\n days: dir\n });\n while((dir < 0 ? nextDate.compare(state.visibleRange.start) >= 0 : nextDate.compare(state.visibleRange.end) <= 0) && !state.isCellUnavailable(nextDate))nextDate = nextDate.add({\n days: dir\n });\n if (state.isCellUnavailable(nextDate)) return nextDate.add({\n days: -dir\n });\n}\n\n\nexport {$9a36b6ba2fb1a7c5$export$9a987164d97ecc90 as useRangeCalendarState};\n//# sourceMappingURL=useRangeCalendarState.module.js.map\n","import { forwardRef } from 'react';\nimport { useLocale, DateValue } from 'react-aria-components';\nimport { type RangeValue } from 'react-aria';\nimport { useRangeCalendarState } from '@react-stately/calendar';\nimport {\n AriaCalendarProps,\n AriaRangeCalendarProps,\n useRangeCalendar,\n} from '@react-aria/calendar';\nimport { useObjectRef } from '@react-aria/utils';\nimport { DateFieldProps } from '../DateField';\nimport {\n CalendarDate,\n createCalendar,\n DateDuration,\n} from '@internationalized/date';\n\nimport BaseCalendar, { type CalendarProps } from '../_base/Calendar';\nimport { useDatePickerContext } from '../DatePicker/DatePickerContext';\nimport { getVisibleDuration, parseDateValue } from '../../utils/date/date';\n\nexport interface CalendarRangeProps\n extends Omit<\n CalendarProps,\n | 'defaultValue'\n | 'value'\n | 'minValue'\n | 'maxValue'\n | 'onChange'\n | 'isDateUnavailable'\n | 'defaultFocusedValue'\n | 'onFocusChange'\n | 'focusedValue'\n > {\n /**\n * Default selected calendar date (uncontrolled)\n */\n defaultValue?: RangeValue<string>;\n /**\n * Default focused calendar date cell (uncontrolled)\n */\n defaultFocusedValue?: DateFieldProps['defaultValue'];\n /**\n * Selected calendar date (controlled)\n */\n value?: RangeValue<string>;\n /**\n * Focused calendar date cell (controlled)\n */\n focusedValue?: DateFieldProps['value'];\n /**\n * Handler that is called when the value changes\n */\n onChange?: (range: RangeValue<string>) => void;\n /**\n * Handler that is called when the focused cell changes\n */\n onFocusChange?: DateFieldProps['onChange'];\n /**\n * Earliest selectable date. All dates before this will be disabled\n */\n minValue?: DateFieldProps['minValue'];\n /**\n * Latest selectable date. All dates after this will be disabled\n */\n maxValue?: DateFieldProps['maxValue'];\n /**\n * Visible duration before pagination\n * @default { months: 1 }\n */\n visibleDuration?: DateDuration;\n /**\n * Callback function to mark cells as unavailable. Unavailable cells will have `aria-disabled=\"true\"`\n */\n isDateUnavailable?: DateFieldProps['isDateUnavailable'];\n /**\n * When combined with `isDateUnavailable`, determines whether ranges containing unavailable dates may be selected.\n */\n allowsNonContiguousRanges?: boolean;\n /**\n * Whether the calendar is disabled\n */\n isDisabled?: boolean;\n /**\n * Whether the calendar is invalid\n */\n isInvalid?: boolean;\n}\n\nexport const CalendarRange = forwardRef<HTMLDivElement, CalendarRangeProps>(\n function CalendarRange(props, forwardedRef) {\n const { locale } = useLocale();\n const { isInDatePicker, isInDateRangePicker } = useDatePickerContext();\n const calendarRangeRef = useObjectRef(forwardedRef);\n\n // Convert any date string values to DateValue\n const parsedProps = {\n ...props,\n visibleDuration: getVisibleDuration(props?.visibleDuration),\n // date value\n defaultValue: (() => {\n if (!props?.defaultValue) return undefined;\n if (!props.defaultValue?.start || !props.defaultValue?.end)\n return undefined;\n return {\n start: parseDateValue(props.defaultValue.start),\n end: parseDateValue(props.defaultValue.end),\n };\n })(),\n value: (() => {\n if (!props?.value) return undefined;\n if (!props.value?.start || !props.value?.end) return undefined;\n return {\n start: parseDateValue(props.value.start),\n end: parseDateValue(props.value.end),\n };\n })(),\n onChange: (rangeValue: RangeValue<DateValue>) => {\n if (!props?.onChange) return;\n /**\n * If the Calendar is in the datepicker we need the 'dateValue' to be a DateValue type\n * otherwise it needs to be string type\n */\n if (isInDatePicker || isInDateRangePicker) {\n const onChange = props.onChange as unknown as NonNullable<\n AriaRangeCalendarProps<DateValue>['onChange']\n >;\n return onChange(rangeValue);\n } else {\n if (!rangeValue?.start || !rangeValue?.end) return;\n const range = {\n start: rangeValue.start.toDate('UTC').toISOString(),\n end: rangeValue.end.toDate('UTC').toISOString(),\n };\n const onChange = props.onChange as NonNullable<\n CalendarRangeProps['onChange']\n >;\n return onChange(range);\n }\n },\n // focused value\n focusedValue: parseDateValue(props?.focusedValue),\n defaultFocusedValue: parseDateValue(props.defaultFocusedValue),\n onFocusChange: (dateValue: CalendarDate) => {\n if (!props?.onFocusChange) return;\n /**\n * If the Calendar is in the datepicker we need the 'dateValue' to be a DateValue type\n * otherwise it needs to be string type\n */\n if (isInDatePicker || isInDateRangePicker) {\n const onFocusChange = props.onFocusChange as unknown as NonNullable<\n AriaCalendarProps<DateValue>['onFocusChange']\n >;\n return onFocusChange(dateValue);\n } else {\n const onFocusChange = props.onFocusChange as NonNullable<\n CalendarProps['onFocusChange']\n >;\n return onFocusChange(dateValue.toDate('UTC').toISOString());\n }\n },\n // config\n minValue: parseDateValue(props?.minValue),\n maxValue: parseDateValue(props?.maxValue),\n isDateUnavailable: (dateValue: DateValue) => {\n if (!props?.isDateUnavailable) return false;\n /**\n * If the Calendar is in the datepicker we need the 'dateValue' to be a DateValue type\n * otherwise it needs to be string type\n */\n if (isInDatePicker || isInDateRangePicker) {\n const isDateUnavailable =\n props.isDateUnavailable as unknown as NonNullable<\n AriaCalendarProps<DateValue>['isDateUnavailable']\n >;\n return isDateUnavailable(dateValue);\n } else {\n const isDateUnavailable = props.isDateUnavailable as NonNullable<\n CalendarProps['isDateUnavailable']\n >;\n return isDateUnavailable(dateValue.toDate('UTC').toISOString());\n }\n },\n } as unknown as CalendarProps;\n\n // Create the calendar state\n const state = useRangeCalendarState({\n createCalendar,\n ...(parsedProps as unknown as AriaRangeCalendarProps<DateValue>),\n locale,\n });\n // Get ReactAria Calendar props\n const { calendarProps, prevButtonProps, nextButtonProps } =\n useRangeCalendar(\n parsedProps as unknown as AriaRangeCalendarProps<DateValue>,\n state,\n calendarRangeRef,\n );\n\n return (\n <BaseCalendar\n ref={calendarRangeRef}\n state={state}\n calendarProps={calendarProps}\n prevButtonProps={prevButtonProps}\n nextButtonProps={nextButtonProps}\n {...parsedProps}\n />\n );\n },\n);\n\nexport default CalendarRange;\n"],"names":["$9a36b6ba2fb1a7c5$var$makeRange","start","end","compare","$d0gbl$toCalendarDate","$9a36b6ba2fb1a7c5$var$convertValue","newValue","oldValue","$d0gbl$toCalendar","calendar","$d0gbl$GregorianCalendar","set","$9a36b6ba2fb1a7c5$var$nextUnavailableDate","anchorDate","state","dir","nextDate","add","days","visibleRange","isCellUnavailable","CalendarRange","forwardRef","props","forwardedRef","locale","useLocale","isInDatePicker","isInDateRangePicker","useDatePickerContext","calendarRangeRef","useObjectRef","parsedProps","visibleDuration","getVisibleDuration","defaultValue","parseDateValue","value","onChange","rangeValue","range","toDate","toISOString","focusedValue","defaultFocusedValue","onFocusChange","dateValue","minValue","maxValue","isDateUnavailable","valueProp","createCalendar","months","calendarProps","setValue","$d0gbl$useControlledState","setAnchorDateState","$d0gbl$useState","alignment","$f62d864046160412$export$f4a51ff076cc9a09","subtract","availableRangeRef","$d0gbl$useRef","availableRange","setAvailableRange","min","$d0gbl$useMemo","$d0gbl$maxDate","max","$d0gbl$minDate","$131cf43a05231e1e$export$6d095e787d2b5e1f","selectionAlignment","updateAvailableRange","date","allowsNonContiguousRanges","nextAvailableStartDate","nextAvailableEndDate","current","lastVisibleRange","setLastVisibleRange","$d0gbl$isEqualDay","setAnchorDate","highlightedRange","focusedDate","selectDate","isReadOnly","constrainedDate","$f62d864046160412$export$4f5203c0d889109e","previousAvailableConstrainedDate","$f62d864046160412$export$a1d3911297b952d7","isDragging","setDragging","isInvalidSelection","$f62d864046160412$export$eac50920cf2fd59a","isValueInvalid","isInvalid","validationState","selectFocusedDate","highlightDate","setFocusedDate","isSelected","Boolean","isCellDisabled","_availableRangeRef_current","_availableRangeRef_current1","useRangeCalendarState","prevButtonProps","nextButtonProps","useRangeCalendar","jsx","BaseCalendar","ref"],"mappings":"2sBA+IA,SAASA,EAAgCC,EAAOC,GAC5C,OAAKD,GAAUC,GACXA,EAAIC,QAAQF,GAAS,KAAIA,EAAOC,GAAO,CACvCA,EACAD,IAEG,CACHA,MAAWG,EAAuBH,GAClCC,IAASE,EAAuBF,KAPT,IAS/B,CACA,SAASG,EAAmCC,EAAUC,GAKlD,OAFAD,EAAeE,EAAmBF,GAAWC,aAA2C,EAASA,EAASE,WAAa,IAAQC,GAE3HH,GAAY,SAAUA,EAAiBA,EAASI,IAAIL,GACjDA,CACX,CACA,SAASM,EAA0CC,EAAYC,EAAOC,GAClE,IAAIC,EAAWH,EAAWI,IAAI,CAC1BC,KAAMH,IAEV,MAAOA,EAAM,EAAIC,EAASb,QAAQW,EAAMK,aAAalB,QAAU,EAAIe,EAASb,QAAQW,EAAMK,aAAajB,MAAQ,KAAOY,EAAMM,kBAAkBJ,IAAUA,EAAWA,EAASC,IAAI,CAC5KC,KAAMH,IAEV,GAAID,EAAMM,kBAAkBJ,GAAW,OAAOA,EAASC,IAAI,CACvDC,MAAOH,GAEf,CCnFO,MAAMM,EAAgBC,EAC3B,SAAuBC,EAAOC,GAC5B,MAAMC,OAAEA,GAAWC,KACbC,eAAEA,EAAAC,oBAAgBA,GAAwBC,IAC1CC,EAAmBC,EAAaP,GAGhCQ,EAAc,IACfT,EACHU,gBAAiBC,EAAmBX,GAAOU,iBAE3CE,mBACE,GAAKZ,GAAOY,cACPZ,EAAMY,cAAclC,OAAUsB,EAAMY,cAAcjC,IAEvD,MAAO,CACLD,MAAOmC,EAAeb,EAAMY,aAAalC,OACzCC,IAAKkC,EAAeb,EAAMY,aAAajC,KAE3C,KACAmC,YACE,GAAKd,GAAOc,OACPd,EAAMc,OAAOpC,OAAUsB,EAAMc,OAAOnC,IACzC,MAAO,CACLD,MAAOmC,EAAeb,EAAMc,MAAMpC,OAClCC,IAAKkC,EAAeb,EAAMc,MAAMnC,KAEpC,KACAoC,SAAWC,IACT,GAAKhB,GAAOe,SAAZ,CAKA,GAAIX,GAAkBC,EAAqB,CAIzC,OAAOU,EAHUf,EAAMe,UAGPC,EAClB,CAAO,CACL,IAAKA,GAAYtC,QAAUsC,GAAYrC,IAAK,OAC5C,MAAMsC,EAAQ,CACZvC,MAAOsC,EAAWtC,MAAMwC,OAAO,OAAOC,cACtCxC,IAAKqC,EAAWrC,IAAIuC,OAAO,OAAOC,eAKpC,OAAOJ,EAHUf,EAAMe,UAGPE,EAClB,CApBsB,GAuBxBG,aAAcP,EAAeb,GAAOoB,cACpCC,oBAAqBR,EAAeb,EAAMqB,qBAC1CC,cAAgBC,IACd,GAAKvB,GAAOsB,cAAZ,CAKA,GAAIlB,GAAkBC,EAAqB,CAIzC,OAAOiB,EAHetB,EAAMsB,eAGPC,EACvB,CAIE,OAAOD,EAHetB,EAAMsB,eAGPC,EAAUL,OAAO,OAAOC,cAdpB,GAkB7BK,SAAUX,EAAeb,GAAOwB,UAChCC,SAAUZ,EAAeb,GAAOyB,UAChCC,kBAAoBH,IAClB,IAAKvB,GAAO0B,kBAAmB,OAAO,EAKtC,GAAItB,GAAkBC,EAAqB,CAKzC,OAAOqB,EAHL1B,EAAM0B,mBAGiBH,EAC3B,CAIE,OAAOG,EAHmB1B,EAAM0B,mBAGPH,EAAUL,OAAO,OAAOC,iBAMjD5B,EDrKV,SAAmDS,GAC/C,IAAMc,MAAOa,EAAAf,aAAWA,WAA4BG,EAAAa,eAAoBA,EAAA1B,OAAgCA,kBAAgBQ,EAAmC,CACvJmB,OAAQ,GAChBL,SAAOA,EAAAC,SAAoBA,KAAuBK,GAAkB9B,GAC3Dc,EAAOiB,GAAgBC,EAA2BL,EAAWf,GAAgB,KAAMG,IACnFzB,EAAY2C,GAA0BC,EAAiB,MACxDC,EAAY,SAChB,GAAIrB,GAASA,EAAMpC,OAASoC,EAAMnC,IAAK,CACnC,IACIA,EADYyD,EAA+CvD,EAAuBiC,EAAMpC,OAAQgC,EAAiBR,EAAQsB,EAAUC,GACvH/B,IAAIgB,GAAiB2B,SAAS,CAC1C1C,KAAM,IAENmB,EAAMnC,IAAIC,QAAQD,GAAO,IAAGwD,EAAY,QAChD,CAEA,IAAIG,EAAwBC,EAAe,OACtCC,EAAgBC,GAAyBP,EAAiB,MAC3DQ,EAAUC,EAAgB,IAAQC,EAAgBpB,EAAUgB,aAAuD,EAASA,EAAe9D,OAAQ,CACnJ8C,EACAgB,IAEAK,EAAUF,EAAgB,IAAQG,EAAgBrB,EAAUe,aAAuD,EAASA,EAAe7D,KAAM,CACjJ8C,EACAe,IAEAtD,EAAe6D,EAA2C,IACvDjB,EACHhB,MAAOA,GAASA,EAAMpC,MACtBkD,iBACA1B,SACAQ,kBACAc,SAAUkB,EACVjB,SAAUoB,EACVG,mBAAoBhD,EAAMgD,oBAAsBb,IAEhDc,EAAwBC,IACxB,GAAIA,GAAQlD,EAAM0B,oBAAsB1B,EAAMmD,0BAA2B,CACrE,MAAMC,EAAyB/D,EAA0C6D,EAAMhE,GAAU,GACnFmE,EAAuBhE,EAA0C6D,EAAMhE,EAAU,GACvFoD,EAAkBgB,QAAU,CACxB5E,MAAO0E,EACPzE,IAAK0E,GAETZ,EAAkBH,EAAkBgB,QACxC,MACIhB,EAAkBgB,QAAU,KAC5Bb,EAAkB,QAIrBc,EAAkBC,GAA2BtB,EAAiBhD,EAASU,cACnE6D,EAAmBvE,EAASU,aAAalB,MAAO6E,EAAiB7E,QAAe+E,EAAmBvE,EAASU,aAAajB,IAAK4E,EAAiB5E,OACpJsE,EAAqB3D,GACrBkE,EAAoBtE,EAASU,eAEjC,IAAI8D,EAAiBR,IACbA,GACAjB,EAAmBiB,GACnBD,EAAqBC,KAErBjB,EAAmB,MACnBgB,EAAqB,QAGzBU,EAAmBrE,EAAab,EAAgCa,EAAYJ,EAAS0E,aAAe9C,GAASrC,EAAgCqC,EAAMpC,MAAOoC,EAAMnC,KAChKkF,EAAcX,IACd,GAAIlD,EAAM8D,WAAY,OACtB,MAAMC,EAAsBC,EAA2Cd,EAAMR,EAAKG,GAC5EoB,EAAuCC,EAA2CH,EAAiB7E,EAASU,aAAalB,MAAOsB,EAAM0B,mBAC5I,GAAKuC,EACL,GAAK3E,EACA,CACD,IAAI2B,EAAQxC,EAAgCa,EAAY2E,GACpDhD,GAAOc,EAAS,CAChBrD,MAAOI,EAAmCmC,EAAMvC,MAAOoC,aAAqC,EAASA,EAAMpC,OAC3GC,IAAKG,EAAmCmC,EAAMtC,IAAKmC,aAAqC,EAASA,EAAMnC,OAE3G+E,EAAc,KAClB,MARiBA,EAAcO,KAU9BE,EAAYC,GAAmBlC,GAAiB,IACjDR,kBAAEA,GAAyC1B,EAC3CqE,EAAyB1B,EAAgB,OACpC7B,GAASxB,QACVoC,IAAsBA,EAAkBZ,EAAMpC,SAAUgD,EAAkBZ,EAAMnC,OACzE2F,EAA2CxD,EAAMpC,MAAO8C,EAAUC,IAAiB6C,EAA2CxD,EAAMnC,IAAK6C,EAAUC,IAC/J,CACCC,EACAZ,EACAxB,EACAkC,EACAC,IAEA8C,EAAiBvE,EAAMwE,WAAuC,YAA1BxE,EAAMyE,iBAAiCJ,EAC3EI,EAAkBF,EAAiB,UAAY,KACnD,MAAO,IACArF,EACH4B,QACAiB,WACAzC,aACAoE,gBACAC,mBACAc,kBACAF,iBACA,iBAAAG,GACIb,EAAW3E,EAAS0E,YACxB,EACAC,aACA,aAAAc,CAAezB,GACP5D,GAAYJ,EAAS0F,eAAe1B,EAC5C,EACA2B,WAAY3B,GACD4B,QAAQnB,GAAoBT,EAAKtE,QAAQ+E,EAAiBjF,QAAU,GAAKwE,EAAKtE,QAAQ+E,EAAiBhF,MAAQ,IAAMO,EAAS6F,eAAe7B,KAAUhE,EAASW,kBAAkBqD,IAE7L,SAAAsB,CAAWtB,GACP,IAAI8B,EAA4BC,EAChC,OAAO/F,EAASsF,UAAUtB,IAAaoB,EAA2CpB,EAAmE,QAA5D8B,EAA6B1C,EAAkBgB,mBAAqB0B,OAAwC,EAASA,EAA2BtG,MAAqE,QAA7DuG,EAA8B3C,EAAkBgB,eAAqD,IAAhC2B,OAAyC,EAASA,EAA4BtG,IACxY,EACAwF,aACAC,cAER,CC4CkBc,CAAsB,CAAAtD,eAClCA,KACInB,EACJP,YAGI4B,cAAEA,EAAAqD,gBAAeA,EAAAC,gBAAiBA,GACtCC,EACE5E,EACAlB,EACAgB;AAGJ,OACE+E,EAACC,EAAA,CACCC,IAAKjF,EACLhB,QACAuC,gBACAqD,kBACAC,qBACI3E,GAGV","x_google_ignoreList":[0]}
1
+ {"version":3,"file":"CalendarRange.js","sources":["../../../node_modules/@react-stately/calendar/node_modules/react-stately/dist/private/calendar/useRangeCalendarState.mjs","../../../src/components/CalendarRange/CalendarRange.tsx"],"sourcesContent":["import {alignCenter as $dd602d3c757202f2$export$f4a51ff076cc9a09, constrainValue as $dd602d3c757202f2$export$4f5203c0d889109e, isInvalid as $dd602d3c757202f2$export$eac50920cf2fd59a, previousAvailableDate as $dd602d3c757202f2$export$a1d3911297b952d7} from \"./utils.mjs\";\nimport {useCalendarState as $ea0ea6e62ae0d7ca$export$6d095e787d2b5e1f} from \"./useCalendarState.mjs\";\nimport {useControlledState as $3e6197669829fe11$export$40bfa8c7b0832715} from \"../utils/useControlledState.mjs\";\nimport {toCalendarDate as $1ppdM$toCalendarDate, maxDate as $1ppdM$maxDate, minDate as $1ppdM$minDate, isEqualDay as $1ppdM$isEqualDay, toCalendar as $1ppdM$toCalendar, GregorianCalendar as $1ppdM$GregorianCalendar} from \"@internationalized/date\";\nimport {useState as $1ppdM$useState, useRef as $1ppdM$useRef, useMemo as $1ppdM$useMemo} from \"react\";\n\n/*\n * Copyright 2020 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */ \n\n\n\n\nfunction $a0a87fb6fcfb22ec$export$9a987164d97ecc90(props) {\n let { value: valueProp, defaultValue: defaultValue, onChange: onChange, createCalendar: createCalendar, locale: locale, visibleDuration: visibleDuration = {\n months: 1\n }, minValue: minValue, maxValue: maxValue, ...calendarProps } = props;\n let [value, setValue] = (0, $3e6197669829fe11$export$40bfa8c7b0832715)(valueProp, defaultValue || null, onChange);\n let [anchorDate, setAnchorDateState] = (0, $1ppdM$useState)(null);\n let alignment = 'center';\n if (value && value.start && value.end) {\n let start = (0, $dd602d3c757202f2$export$f4a51ff076cc9a09)((0, $1ppdM$toCalendarDate)(value.start), visibleDuration, locale, minValue, maxValue);\n let end = start.add(visibleDuration).subtract({\n days: 1\n });\n if (value.end.compare(end) > 0) alignment = 'start';\n }\n // Available range must be stored in a ref so we have access to the updated version immediately in `isInvalid`.\n let availableRangeRef = (0, $1ppdM$useRef)(null);\n let [availableRange, setAvailableRange] = (0, $1ppdM$useState)(null);\n let min = (0, $1ppdM$useMemo)(()=>(0, $1ppdM$maxDate)(minValue, availableRange?.start), [\n minValue,\n availableRange\n ]);\n let max = (0, $1ppdM$useMemo)(()=>(0, $1ppdM$minDate)(maxValue, availableRange?.end), [\n maxValue,\n availableRange\n ]);\n let calendar = (0, $ea0ea6e62ae0d7ca$export$6d095e787d2b5e1f)({\n ...calendarProps,\n value: value && value.start,\n createCalendar: createCalendar,\n locale: locale,\n visibleDuration: visibleDuration,\n minValue: min,\n maxValue: max,\n selectionAlignment: props.selectionAlignment || alignment\n });\n let updateAvailableRange = (date)=>{\n if (date && props.isDateUnavailable && !props.allowsNonContiguousRanges) {\n const nextAvailableStartDate = $a0a87fb6fcfb22ec$var$nextUnavailableDate(date, calendar, -1);\n const nextAvailableEndDate = $a0a87fb6fcfb22ec$var$nextUnavailableDate(date, calendar, 1);\n availableRangeRef.current = {\n start: nextAvailableStartDate,\n end: nextAvailableEndDate\n };\n setAvailableRange(availableRangeRef.current);\n } else {\n availableRangeRef.current = null;\n setAvailableRange(null);\n }\n };\n // If the visible range changes, we need to update the available range.\n let [lastVisibleRange, setLastVisibleRange] = (0, $1ppdM$useState)(calendar.visibleRange);\n if (!(0, $1ppdM$isEqualDay)(calendar.visibleRange.start, lastVisibleRange.start) || !(0, $1ppdM$isEqualDay)(calendar.visibleRange.end, lastVisibleRange.end)) {\n updateAvailableRange(anchorDate);\n setLastVisibleRange(calendar.visibleRange);\n }\n let setAnchorDate = (date)=>{\n if (date) {\n setAnchorDateState(date);\n updateAvailableRange(date);\n } else {\n setAnchorDateState(null);\n updateAvailableRange(null);\n }\n };\n let highlightedRange = anchorDate ? $a0a87fb6fcfb22ec$var$makeRange(anchorDate, calendar.focusedDate) : value && $a0a87fb6fcfb22ec$var$makeRange(value.start, value.end);\n let selectDate = (date)=>{\n if (props.isReadOnly) return;\n const constrainedDate = (0, $dd602d3c757202f2$export$4f5203c0d889109e)(date, min, max);\n const previousAvailableConstrainedDate = (0, $dd602d3c757202f2$export$a1d3911297b952d7)(constrainedDate, calendar.visibleRange.start, props.isDateUnavailable);\n if (!previousAvailableConstrainedDate) return;\n if (!anchorDate) setAnchorDate(previousAvailableConstrainedDate);\n else {\n let range = $a0a87fb6fcfb22ec$var$makeRange(anchorDate, previousAvailableConstrainedDate);\n if (range) setValue({\n start: $a0a87fb6fcfb22ec$var$convertValue(range.start, value?.start),\n end: $a0a87fb6fcfb22ec$var$convertValue(range.end, value?.end)\n });\n setAnchorDate(null);\n }\n };\n let [isDragging, setDragging] = (0, $1ppdM$useState)(false);\n let { isDateUnavailable: isDateUnavailable } = props;\n let isInvalidSelection = (0, $1ppdM$useMemo)(()=>{\n if (!value || anchorDate) return false;\n if (isDateUnavailable && (isDateUnavailable(value.start) || isDateUnavailable(value.end))) return true;\n return (0, $dd602d3c757202f2$export$eac50920cf2fd59a)(value.start, minValue, maxValue) || (0, $dd602d3c757202f2$export$eac50920cf2fd59a)(value.end, minValue, maxValue);\n }, [\n isDateUnavailable,\n value,\n anchorDate,\n minValue,\n maxValue\n ]);\n let isValueInvalid = props.isInvalid || props.validationState === 'invalid' || isInvalidSelection;\n let validationState = isValueInvalid ? 'invalid' : null;\n return {\n ...calendar,\n value: value,\n setValue: setValue,\n anchorDate: anchorDate,\n setAnchorDate: setAnchorDate,\n highlightedRange: highlightedRange,\n validationState: validationState,\n isValueInvalid: isValueInvalid,\n selectFocusedDate () {\n selectDate(calendar.focusedDate);\n },\n selectDate: selectDate,\n highlightDate (date) {\n if (anchorDate) calendar.setFocusedDate(date);\n },\n isSelected (date) {\n return Boolean(highlightedRange && date.compare(highlightedRange.start) >= 0 && date.compare(highlightedRange.end) <= 0 && !calendar.isCellDisabled(date) && !calendar.isCellUnavailable(date));\n },\n isInvalid (date) {\n return calendar.isInvalid(date) || (0, $dd602d3c757202f2$export$eac50920cf2fd59a)(date, availableRangeRef.current?.start, availableRangeRef.current?.end);\n },\n isDragging: isDragging,\n setDragging: setDragging,\n clearSelection () {\n setAnchorDate(null);\n setValue(null);\n }\n };\n}\nfunction $a0a87fb6fcfb22ec$var$makeRange(start, end) {\n if (!start || !end) return null;\n if (end.compare(start) < 0) [start, end] = [\n end,\n start\n ];\n return {\n start: (0, $1ppdM$toCalendarDate)(start),\n end: (0, $1ppdM$toCalendarDate)(end)\n };\n}\nfunction $a0a87fb6fcfb22ec$var$convertValue(newValue, oldValue) {\n // The display calendar should not have any effect on the emitted value.\n // Emit dates in the same calendar as the original value, if any, otherwise gregorian.\n newValue = (0, $1ppdM$toCalendar)(newValue, oldValue?.calendar || new (0, $1ppdM$GregorianCalendar)());\n // Preserve time if the input value had one.\n if (oldValue && 'hour' in oldValue) return oldValue.set(newValue);\n return newValue;\n}\nfunction $a0a87fb6fcfb22ec$var$nextUnavailableDate(anchorDate, state, dir) {\n let nextDate = anchorDate.add({\n days: dir\n });\n while((dir < 0 ? nextDate.compare(state.visibleRange.start) >= 0 : nextDate.compare(state.visibleRange.end) <= 0) && !state.isCellUnavailable(nextDate))nextDate = nextDate.add({\n days: dir\n });\n if (state.isCellUnavailable(nextDate)) return nextDate.add({\n days: -dir\n });\n}\n\n\nexport {$a0a87fb6fcfb22ec$export$9a987164d97ecc90 as useRangeCalendarState};\n//# sourceMappingURL=useRangeCalendarState.mjs.map\n","import { forwardRef } from 'react';\nimport { useLocale, DateValue } from 'react-aria-components';\nimport { type RangeValue } from 'react-aria';\nimport { useRangeCalendarState } from '@react-stately/calendar';\nimport {\n AriaCalendarProps,\n AriaRangeCalendarProps,\n useRangeCalendar,\n} from '@react-aria/calendar';\nimport { useObjectRef } from '@react-aria/utils';\nimport { DateFieldProps } from '../DateField';\nimport {\n CalendarDate,\n createCalendar,\n DateDuration,\n} from '@internationalized/date';\n\nimport BaseCalendar, { type CalendarProps } from '../_base/Calendar';\nimport { useDatePickerContext } from '../DatePicker/DatePickerContext';\nimport { getVisibleDuration, parseDateValue } from '../../utils/date/date';\n\nexport interface CalendarRangeProps\n extends Omit<\n CalendarProps,\n | 'defaultValue'\n | 'value'\n | 'minValue'\n | 'maxValue'\n | 'onChange'\n | 'isDateUnavailable'\n | 'defaultFocusedValue'\n | 'onFocusChange'\n | 'focusedValue'\n > {\n /**\n * Default selected calendar date (uncontrolled)\n */\n defaultValue?: RangeValue<string>;\n /**\n * Default focused calendar date cell (uncontrolled)\n */\n defaultFocusedValue?: DateFieldProps['defaultValue'];\n /**\n * Selected calendar date (controlled)\n */\n value?: RangeValue<string>;\n /**\n * Focused calendar date cell (controlled)\n */\n focusedValue?: DateFieldProps['value'];\n /**\n * Handler that is called when the value changes\n */\n onChange?: (range: RangeValue<string>) => void;\n /**\n * Handler that is called when the focused cell changes\n */\n onFocusChange?: DateFieldProps['onChange'];\n /**\n * Earliest selectable date. All dates before this will be disabled\n */\n minValue?: DateFieldProps['minValue'];\n /**\n * Latest selectable date. All dates after this will be disabled\n */\n maxValue?: DateFieldProps['maxValue'];\n /**\n * Visible duration before pagination\n * @default { months: 1 }\n */\n visibleDuration?: DateDuration;\n /**\n * Callback function to mark cells as unavailable. Unavailable cells will have `aria-disabled=\"true\"`\n */\n isDateUnavailable?: DateFieldProps['isDateUnavailable'];\n /**\n * When combined with `isDateUnavailable`, determines whether ranges containing unavailable dates may be selected.\n */\n allowsNonContiguousRanges?: boolean;\n /**\n * Whether the calendar is disabled\n */\n isDisabled?: boolean;\n /**\n * Whether the calendar is invalid\n */\n isInvalid?: boolean;\n}\n\nexport const CalendarRange = forwardRef<HTMLDivElement, CalendarRangeProps>(\n function CalendarRange(props, forwardedRef) {\n const { locale } = useLocale();\n const { isInDatePicker, isInDateRangePicker } = useDatePickerContext();\n const calendarRangeRef = useObjectRef(forwardedRef);\n\n // Convert any date string values to DateValue\n const parsedProps = {\n ...props,\n visibleDuration: getVisibleDuration(props?.visibleDuration),\n // date value\n defaultValue: (() => {\n if (!props?.defaultValue) return undefined;\n if (!props.defaultValue?.start || !props.defaultValue?.end)\n return undefined;\n return {\n start: parseDateValue(props.defaultValue.start),\n end: parseDateValue(props.defaultValue.end),\n };\n })(),\n value: (() => {\n if (!props?.value) return undefined;\n if (!props.value?.start || !props.value?.end) return undefined;\n return {\n start: parseDateValue(props.value.start),\n end: parseDateValue(props.value.end),\n };\n })(),\n onChange: (rangeValue: RangeValue<DateValue>) => {\n if (!props?.onChange) return;\n /**\n * If the Calendar is in the datepicker we need the 'dateValue' to be a DateValue type\n * otherwise it needs to be string type\n */\n if (isInDatePicker || isInDateRangePicker) {\n const onChange = props.onChange as unknown as NonNullable<\n AriaRangeCalendarProps<DateValue>['onChange']\n >;\n return onChange(rangeValue);\n } else {\n if (!rangeValue?.start || !rangeValue?.end) return;\n const range = {\n start: rangeValue.start.toDate('UTC').toISOString(),\n end: rangeValue.end.toDate('UTC').toISOString(),\n };\n const onChange = props.onChange as NonNullable<\n CalendarRangeProps['onChange']\n >;\n return onChange(range);\n }\n },\n // focused value\n focusedValue: parseDateValue(props?.focusedValue),\n defaultFocusedValue: parseDateValue(props.defaultFocusedValue),\n onFocusChange: (dateValue: CalendarDate) => {\n if (!props?.onFocusChange) return;\n /**\n * If the Calendar is in the datepicker we need the 'dateValue' to be a DateValue type\n * otherwise it needs to be string type\n */\n if (isInDatePicker || isInDateRangePicker) {\n const onFocusChange = props.onFocusChange as unknown as NonNullable<\n AriaCalendarProps<DateValue>['onFocusChange']\n >;\n return onFocusChange(dateValue);\n } else {\n const onFocusChange = props.onFocusChange as NonNullable<\n CalendarProps['onFocusChange']\n >;\n return onFocusChange(dateValue.toDate('UTC').toISOString());\n }\n },\n // config\n minValue: parseDateValue(props?.minValue),\n maxValue: parseDateValue(props?.maxValue),\n isDateUnavailable: (dateValue: DateValue) => {\n if (!props?.isDateUnavailable) return false;\n /**\n * If the Calendar is in the datepicker we need the 'dateValue' to be a DateValue type\n * otherwise it needs to be string type\n */\n if (isInDatePicker || isInDateRangePicker) {\n const isDateUnavailable =\n props.isDateUnavailable as unknown as NonNullable<\n AriaCalendarProps<DateValue>['isDateUnavailable']\n >;\n return isDateUnavailable(dateValue);\n } else {\n const isDateUnavailable = props.isDateUnavailable as NonNullable<\n CalendarProps['isDateUnavailable']\n >;\n return isDateUnavailable(dateValue.toDate('UTC').toISOString());\n }\n },\n } as unknown as CalendarProps;\n\n // Create the calendar state\n const state = useRangeCalendarState({\n createCalendar,\n ...(parsedProps as unknown as AriaRangeCalendarProps<DateValue>),\n locale,\n });\n // Get ReactAria Calendar props\n const { calendarProps, prevButtonProps, nextButtonProps } =\n useRangeCalendar(\n parsedProps as unknown as AriaRangeCalendarProps<DateValue>,\n state,\n calendarRangeRef,\n );\n\n return (\n <BaseCalendar\n ref={calendarRangeRef}\n state={state}\n calendarProps={calendarProps}\n prevButtonProps={prevButtonProps}\n nextButtonProps={nextButtonProps}\n {...parsedProps}\n />\n );\n },\n);\n\nexport default CalendarRange;\n"],"names":["$a0a87fb6fcfb22ec$var$makeRange","start","end","compare","$1ppdM$toCalendarDate","$a0a87fb6fcfb22ec$var$convertValue","newValue","oldValue","$1ppdM$toCalendar","calendar","$1ppdM$GregorianCalendar","set","$a0a87fb6fcfb22ec$var$nextUnavailableDate","anchorDate","state","dir","nextDate","add","days","visibleRange","isCellUnavailable","CalendarRange","forwardRef","props","forwardedRef","locale","useLocale","isInDatePicker","isInDateRangePicker","useDatePickerContext","calendarRangeRef","useObjectRef","parsedProps","visibleDuration","getVisibleDuration","defaultValue","parseDateValue","value","onChange","rangeValue","range","toDate","toISOString","focusedValue","defaultFocusedValue","onFocusChange","dateValue","minValue","maxValue","isDateUnavailable","valueProp","createCalendar","months","calendarProps","setValue","$3e6197669829fe11$export$40bfa8c7b0832715","setAnchorDateState","$1ppdM$useState","alignment","$dd602d3c757202f2$export$f4a51ff076cc9a09","subtract","availableRangeRef","$1ppdM$useRef","availableRange","setAvailableRange","min","$1ppdM$useMemo","$1ppdM$maxDate","max","$1ppdM$minDate","$ea0ea6e62ae0d7ca$export$6d095e787d2b5e1f","selectionAlignment","updateAvailableRange","date","allowsNonContiguousRanges","nextAvailableStartDate","nextAvailableEndDate","current","lastVisibleRange","setLastVisibleRange","$1ppdM$isEqualDay","setAnchorDate","highlightedRange","focusedDate","selectDate","isReadOnly","constrainedDate","$dd602d3c757202f2$export$4f5203c0d889109e","previousAvailableConstrainedDate","$dd602d3c757202f2$export$a1d3911297b952d7","isDragging","setDragging","isInvalidSelection","$dd602d3c757202f2$export$eac50920cf2fd59a","isValueInvalid","isInvalid","validationState","selectFocusedDate","highlightDate","setFocusedDate","isSelected","Boolean","isCellDisabled","clearSelection","useRangeCalendarState","prevButtonProps","nextButtonProps","useRangeCalendar","jsx","BaseCalendar","ref"],"mappings":"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","x_google_ignoreList":[0]}
@@ -1,10 +1,10 @@
1
- import{jsxs as a,jsx as e}from"react/jsx-runtime";import l from"react";import{Icon as n}from"../Icon/Icon.js";import{c as t}from"../../index-DiYWUa65.js";import{IconButton as r}from"../IconButton/IconButton.js";import '../../assets/CalloutBanner.css';const c={calloutBanner:"_calloutBanner_6h1y8_1",calloutBanner__icon:"_calloutBanner__icon_6h1y8_12","calloutBanner__meta-title":"_calloutBanner__meta-title_6h1y8_21","calloutBanner__meta-label":"_calloutBanner__meta-label_6h1y8_19",calloutBanner__start:"_calloutBanner__start_6h1y8_17",calloutBanner__end:"_calloutBanner__end_6h1y8_38",calloutBanner__dismiss:"_calloutBanner__dismiss_6h1y8_45",calloutBanner__meta:"_calloutBanner__meta_6h1y8_19","calloutBanner__meta-content":"_calloutBanner__meta-content_6h1y8_62","calloutBanner__header--row":"_calloutBanner__header--row_6h1y8_74","calloutBanner__meta-top":"_calloutBanner__meta-top_6h1y8_79","calloutBanner__custom-asset":"_calloutBanner__custom-asset_6h1y8_89","calloutBanner__meta-description":"_calloutBanner__meta-description_6h1y8_103","calloutBanner__severity-label":"_calloutBanner__severity-label_6h1y8_108","calloutBanner__default-asset--center":"_calloutBanner__default-asset--center_6h1y8_119","calloutBanner--critical":"_calloutBanner--critical_6h1y8_125","calloutBanner--primary":"_calloutBanner--primary_6h1y8_129","calloutBanner--secondary":"_calloutBanner--secondary_6h1y8_133","calloutBanner--tertiary":"_calloutBanner--tertiary_6h1y8_142","calloutBanner--success":"_calloutBanner--success_6h1y8_151","calloutBanner--information":"_calloutBanner--information_6h1y8_177","calloutBanner--neutral":"_calloutBanner--neutral_6h1y8_203"},o=t(c.calloutBanner,{variants:{emphasis:{primary:c["calloutBanner--primary"],secondary:c["calloutBanner--secondary"],tertiary:c["calloutBanner--tertiary"]},styleVariant:{critical:c["calloutBanner--critical"],success:c["calloutBanner--success"],information:c["calloutBanner--information"],neutral:c["calloutBanner--neutral"]},headerLayout:{row:c["calloutBanner__header--row"],column:c["calloutBanner__header-column"]}},defaultVariants:{emphasis:"primary",styleVariant:"critical"}}),i={critical:{icon:"circle-exclamation",severityLabel:"Critical",role:"alert"},success:{icon:"check-circle",severityLabel:"Success",role:"status"},information:{icon:"info-circle",severityLabel:"Information",role:"status"},neutral:{icon:"check-circle",severityLabel:"",role:"region"}},_=({title:t,description:_,label:u,children:m,styleVariant:d="critical",emphasis:B="primary",headingLevel:h="h3",dismissButtonTooltipLabel:y,onDismiss:p,customAsset:f,hideIllustration:v=!1,alignButtons:b="left",headerLayout:N="column",severityLabel:L,role:x,dismissButtonProps:I={"aria-label":"Dismiss banner"},...V})=>{const g="function"==typeof p,{icon:w,severityLabel:j,role:P}=i[d],z=h,A=l.useId(),S=l.useId(),k=L??j,C=x||P,D=l.Children.toArray(m),E=D.find(a=>l.isValidElement(a)&&a.type===s),$=D.filter(a=>!(l.isValidElement(a)&&a.type===s)),q=!_;/* @__PURE__ */
2
- return a("div",{className:o({emphasis:B,styleVariant:d}),role:C,"aria-labelledby":A,"aria-describedby":_?S:void 0,...V,children:[
3
- /* @__PURE__ */a("div",{className:c.calloutBanner__start,children:[!v&&/* @__PURE__ */e("div",f?{className:c["calloutBanner__custom-asset"],children:f}:{className:q?c["calloutBanner__default-asset--center"]:void 0,children:/* @__PURE__ */e(n,{iconName:w,iconPrefix:"fas",className:c.calloutBanner__icon,iconSize:"1.25x",padding:"roomy"})}),
4
- /* @__PURE__ */a("div",{className:c.calloutBanner__meta,children:[g&&/* @__PURE__ */e("div",{className:c.calloutBanner__dismiss,children:/* @__PURE__ */e(r,{onPress:p,styleVariant:"white",emphasis:"quaternary",size:"sm",iconProps:{iconName:"close",iconPrefix:"far",iconSize:"1x"},tooltipLabel:y,...I})}),
5
- /* @__PURE__ */a("div",{className:[c["calloutBanner__meta-content"],"right"===b?c["calloutBanner__meta-right"]:"","row"===N?c["calloutBanner__header--row"]:""].filter(Boolean).join(" "),children:[
6
- /* @__PURE__ */e("div",{children:/* @__PURE__ */a("div",{className:`${c["calloutBanner__meta-top"]} ${g?c["calloutBanner__meta-top-dismiss"]:""}`,children:[
7
- /* @__PURE__ */a(z,{id:A,className:c["calloutBanner__meta-title"],children:[
8
- /* @__PURE__ */a("span",{className:c["calloutBanner__severity-label"],dir:"auto",children:[k,k?": ":""]}),
9
- /* @__PURE__ */e("bdi",{dir:"auto",children:t})]}),_&&/* @__PURE__ */e("p",{id:S,className:c["calloutBanner__meta-description"],children:_||null})]})}),u&&/* @__PURE__ */e("div",{className:c["calloutBanner__meta-label"],children:u}),E&&/* @__PURE__ */e("div",{className:c["calloutBanner__meta-label"],children:E.props.children})]})]})]}),$.length>0&&/* @__PURE__ */e("div",{className:c.calloutBanner__end,children:$})]})},s=({children:a})=>/* @__PURE__ */e("div",{className:c["calloutBanner__meta-label"],children:a});_.Action=s;export{_ as CalloutBanner,s as CalloutBannerAction,_ as default};
1
+ import{jsxs as a,jsx as e}from"react/jsx-runtime";import l from"react";import{Icon as n}from"../Icon/Icon.js";import{c as t}from"../../index-CCUt_dAN.js";import{IconButton as r}from"../IconButton/IconButton.js";import '../../assets/CalloutBanner.css';const c={calloutBanner:"_calloutBanner_8kmdu_1",calloutBanner__icon:"_calloutBanner__icon_8kmdu_12","calloutBanner__meta-title":"_calloutBanner__meta-title_8kmdu_21","calloutBanner__meta-label":"_calloutBanner__meta-label_8kmdu_19",calloutBanner__start:"_calloutBanner__start_8kmdu_17",calloutBanner__end:"_calloutBanner__end_8kmdu_38",calloutBanner__dismiss:"_calloutBanner__dismiss_8kmdu_45",calloutBanner__meta:"_calloutBanner__meta_8kmdu_19","calloutBanner__meta-content":"_calloutBanner__meta-content_8kmdu_62","calloutBanner__header--row":"_calloutBanner__header--row_8kmdu_74","calloutBanner__meta-top":"_calloutBanner__meta-top_8kmdu_79","calloutBanner__custom-asset":"_calloutBanner__custom-asset_8kmdu_89","calloutBanner__meta-description":"_calloutBanner__meta-description_8kmdu_103","calloutBanner__severity-label":"_calloutBanner__severity-label_8kmdu_108","calloutBanner__default-asset--center":"_calloutBanner__default-asset--center_8kmdu_119","calloutBanner--critical":"_calloutBanner--critical_8kmdu_125","calloutBanner--primary":"_calloutBanner--primary_8kmdu_129","calloutBanner--secondary":"_calloutBanner--secondary_8kmdu_133","calloutBanner--tertiary":"_calloutBanner--tertiary_8kmdu_142","calloutBanner--success":"_calloutBanner--success_8kmdu_151","calloutBanner--information":"_calloutBanner--information_8kmdu_177","calloutBanner--neutral":"_calloutBanner--neutral_8kmdu_203"},o=t(c.calloutBanner,{variants:{emphasis:{primary:c["calloutBanner--primary"],secondary:c["calloutBanner--secondary"],tertiary:c["calloutBanner--tertiary"]},styleVariant:{critical:c["calloutBanner--critical"],success:c["calloutBanner--success"],information:c["calloutBanner--information"],neutral:c["calloutBanner--neutral"]},headerLayout:{row:c["calloutBanner__header--row"],column:c["calloutBanner__header-column"]}},defaultVariants:{emphasis:"primary",styleVariant:"critical"}}),i={critical:{icon:"circle-exclamation",severityLabel:"Critical",role:"alert"},success:{icon:"check-circle",severityLabel:"Success",role:"status"},information:{icon:"info-circle",severityLabel:"Information",role:"status"},neutral:{icon:"check-circle",severityLabel:"",role:"region"}},_=({title:t,description:_,label:u,children:m,styleVariant:d="critical",emphasis:B="primary",headingLevel:h="h3",dismissButtonTooltipLabel:y,onDismiss:p,customAsset:f,hideIllustration:v=!1,alignButtons:b="left",headerLayout:k="column",severityLabel:N,role:L,dismissButtonProps:x={"aria-label":"Dismiss banner"},...I})=>{const V="function"==typeof p,{icon:g,severityLabel:w,role:j}=i[d],P=h,z=l.useId(),A=l.useId(),S=N??w,C=L||j,D=l.Children.toArray(m),E=D.find(a=>l.isValidElement(a)&&a.type===s),$=D.filter(a=>!(l.isValidElement(a)&&a.type===s)),q=!_;/* @__PURE__ */
2
+ return a("div",{className:o({emphasis:B,styleVariant:d}),role:C,"aria-labelledby":z,"aria-describedby":_?A:void 0,...I,children:[
3
+ /* @__PURE__ */a("div",{className:c.calloutBanner__start,children:[!v&&/* @__PURE__ */e("div",f?{className:c["calloutBanner__custom-asset"],children:f}:{className:q?c["calloutBanner__default-asset--center"]:void 0,children:/* @__PURE__ */e(n,{iconName:g,iconPrefix:"fas",className:c.calloutBanner__icon,iconSize:"1.25x",padding:"roomy"})}),
4
+ /* @__PURE__ */a("div",{className:c.calloutBanner__meta,children:[V&&/* @__PURE__ */e("div",{className:c.calloutBanner__dismiss,children:/* @__PURE__ */e(r,{onPress:p,styleVariant:"white",emphasis:"quaternary",size:"sm",iconProps:{iconName:"close",iconPrefix:"far",iconSize:"1x"},tooltipLabel:y,...x})}),
5
+ /* @__PURE__ */a("div",{className:[c["calloutBanner__meta-content"],"right"===b?c["calloutBanner__meta-right"]:"","row"===k?c["calloutBanner__header--row"]:""].filter(Boolean).join(" "),children:[
6
+ /* @__PURE__ */e("div",{children:/* @__PURE__ */a("div",{className:`${c["calloutBanner__meta-top"]} ${V?c["calloutBanner__meta-top-dismiss"]:""}`,children:[
7
+ /* @__PURE__ */a(P,{id:z,className:c["calloutBanner__meta-title"],children:[
8
+ /* @__PURE__ */a("span",{className:c["calloutBanner__severity-label"],dir:"auto",children:[S,S?": ":""]}),
9
+ /* @__PURE__ */e("bdi",{dir:"auto",children:t})]}),_&&/* @__PURE__ */e("p",{id:A,className:c["calloutBanner__meta-description"],children:_||null})]})}),u&&/* @__PURE__ */e("div",{className:c["calloutBanner__meta-label"],children:u}),E&&/* @__PURE__ */e("div",{className:c["calloutBanner__meta-label"],children:E.props.children})]})]})]}),$.length>0&&/* @__PURE__ */e("div",{className:c.calloutBanner__end,children:$})]})},s=({children:a})=>/* @__PURE__ */e("div",{className:c["calloutBanner__meta-label"],children:a});_.Action=s;export{_ as CalloutBanner,s as CalloutBannerAction,_ as default};
10
10
  //# sourceMappingURL=CalloutBanner.js.map
@@ -1,2 +1,2 @@
1
- import{jsx as e}from"react/jsx-runtime";import{c as a}from"../../index-DiYWUa65.js";import{forwardRef as i}from"react";import '../../assets/CardSection.css';const r="_cardContainer_1uwwa_12",c="_cardGrid_1uwwa_24",d="_contentCell_1uwwa_33",s="_contentBox_1uwwa_40",t="_mediaCell_1uwwa_51",n=a("_cardSection_1uwwa_1",{variants:{isReversed:{true:"_isReversed_1uwwa_65"}},defaultVariants:{}}),l=i(({isReversed:a=!1,children:i},d)=>/* @__PURE__ */e("section",{ref:d,className:n({isReversed:a}),"data-testid":"card-section",children:/* @__PURE__ */e("div",{className:r,children:/* @__PURE__ */e("div",{className:c,children:i})})}));l.displayName="CardSection";const o=({children:a})=>/* @__PURE__ */e("div",{className:d,children:/* @__PURE__ */e("article",{className:s,children:a})});o.displayName="CardSection.Content";const _=({children:a})=>/* @__PURE__ */e("figure",{className:t,children:a});_.displayName="CardSection.Media",l.Content=o,l.Media=_;export{l as default};
1
+ import{jsx as e}from"react/jsx-runtime";import{c as a}from"../../index-CCUt_dAN.js";import{forwardRef as i}from"react";import '../../assets/CardSection.css';const r="_cardContainer_1uwwa_12",d="_cardGrid_1uwwa_24",s="_contentCell_1uwwa_33",c="_contentBox_1uwwa_40",t="_mediaCell_1uwwa_51",n=a("_cardSection_1uwwa_1",{variants:{isReversed:{true:"_isReversed_1uwwa_65"}},defaultVariants:{}}),l=i(({isReversed:a=!1,children:i},s)=>/* @__PURE__ */e("section",{ref:s,className:n({isReversed:a}),"data-testid":"card-section",children:/* @__PURE__ */e("div",{className:r,children:/* @__PURE__ */e("div",{className:d,children:i})})}));l.displayName="CardSection";const o=({children:a})=>/* @__PURE__ */e("div",{className:s,children:/* @__PURE__ */e("article",{className:c,children:a})});o.displayName="CardSection.Content";const _=({children:a})=>/* @__PURE__ */e("figure",{className:t,children:a});_.displayName="CardSection.Media",l.Content=o,l.Media=_;export{l as default};
2
2
  //# sourceMappingURL=CardSection.js.map
@@ -1,7 +1,7 @@
1
- import{jsx as e,jsxs as t}from"react/jsx-runtime";import r,{useRef as a,useState as s,useEffect as o}from"react";import{c as i}from"../../index-DiYWUa65.js";import{C as n,a as l,b as d,c as u,d as c}from"../../IconButton.module-C7YCy-MU.js";import{CarouselButton as m}from"./CarouselButton/CarouselButton.js";import{CarouselDots as p}from"./CarouselDots/CarouselDots.js";import{AutoplayControl as f}from"./AutoplayControl/AutoplayControl.js";import{focusStyleVariants as v}from"../../utils/focus/focusStyles.js";import{useFocusRing as g}from"@react-aria/focus";import{resolveResponsiveProp as _}from"../../utils/breakpoint/responsive.js";import{useBreakpoint as h}from"../../utils/breakpoint/hooks/useBreakpoint.js";import '../../assets/Carousel.css';const y={carouselWrapper:"_carouselWrapper_gzlsx_2",showPartialItems:"_showPartialItems_gzlsx_14",carousel:"_carousel_gzlsx_2",hasScrollPadding:"_hasScrollPadding_gzlsx_25",scroller:"_scroller_gzlsx_43",item:"_item_gzlsx_84",slideLeft:"_slideLeft_gzlsx_122",slideRight:"_slideRight_gzlsx_126",controls:"_controls_gzlsx_149",defaultPrevButton:"_defaultPrevButton_gzlsx_160",defaultNextButton:"_defaultNextButton_gzlsx_168",defaultDotsContainer:"_defaultDotsContainer_gzlsx_177",defaultCarouselWrapper:"_defaultCarouselWrapper_gzlsx_188",defaultAutoplayControl:"_defaultAutoplayControl_gzlsx_195",showOnHover:"_showOnHover_gzlsx_204",hidden:"_hidden_gzlsx_214",hiddenTabs:"_hiddenTabs_gzlsx_245",infinite:"_infinite_gzlsx_264",native:"_native_gzlsx_269",autoplayControlWrapper:"_autoplayControlWrapper_gzlsx_273"},x=i(y.carousel,{variants:{looping:{infinite:y.infinite,backToStart:y.native,off:void 0}}}),b=({children:i=[],"aria-label":b,"aria-describedby":C,looping:N="off",itemsPerPage:P=1,spaceBetweenItems:w=0,scrollPadding:z,iconType:S="chevron",arrowStyleVariant:D="neutral",arrowSize:$="md",hideDisabledArrow:A=!1,showArrowsOnHover:L=!1,focusStyle:k="default",dotsSize:E="md",dotsVariant:T="standard",hideDots:I=!1,autoPlay:B=!1,autoPlayInterval:W=2e3,autoPlayStyleVariant:j="neutralVibrant",autoPlayControlSize:M="md",mouseDragging:q=!0,carouselWrapperClassName:H="",prevArrowClassName:O="",nextArrowClassName:R="",autoplayControlClassName:V="",dotsContainerClassName:F="",dotsWrapperClassName:X="",dotClassName:Y="",activeDotClassName:K="",itemWrapperClassName:G="",activeItemClassName:J="",onArrowPress:Q,onDotPress:U,onAutoplayPress:Z})=>{const ee=r.Children.toArray(i),te=ee.length,re=h(),ae=_(P,re)??1,se=_(w,re)??0,oe=_(z,re)??void 0,ie=_($,re)??"md",ne=_(I,re)??!1,le=Math.max(1,ae),de=Math.ceil(te/le),ue=!ne&&de>1,ce=a(null),me=a(null),[pe,fe]=s(0),[ve,ge]=s(0),[_e,he]=s(!1),[ye,xe]=s(!1),[be,Ce]=s(!1),[Ne]=s(!1),[Pe,we]=s(null),ze=(e,t)=>e||t,Se=e=>{if(!(e===pe||e<0||e>=de)&&ce.current){const t=ce.current.querySelector(`[data-slide-tab="true"][data-index="${e}"]`);t&&t.click()}};o(()=>{if(!ce.current||!q)return;const e=e=>{_e&&(e.preventDefault(),e.stopPropagation(),setTimeout(()=>{he(!1)},0))},t=e=>{we({x:e.clientX,y:e.clientY})},r=e=>{if(null===Pe)return;const t=Math.abs(e.clientX-Pe.x),r=Math.abs(e.clientY-Pe.y);Math.sqrt(t*t+r*r)>5&&he(!0)},a=()=>{_e?setTimeout(()=>{he(!1),we(null)},50):we(null)},s=ce.current;return s.addEventListener("mousedown",t,!0),s.addEventListener("mousemove",r,!0),s.addEventListener("mouseup",a,!0),s.addEventListener("click",e,!0),()=>{s.removeEventListener("mousedown",t,!0),s.removeEventListener("mousemove",r,!0),s.removeEventListener("mouseup",a,!0),s.removeEventListener("click",e,!0)}},[q,_e,Pe,5]),o(()=>{if(ce.current){const e=ce.current.querySelector(`.${y.scroller}`);e&&e instanceof HTMLElement&&(ve<pe?(e.classList.remove(y.slideLeft),e.classList.add(y.slideRight)):ve>pe&&(e.classList.remove(y.slideRight),e.classList.add(y.slideLeft)))}},[pe,ve]),o(()=>{if(!ce.current)return;const e=()=>{if(!ce.current)return;const e=ce.current.querySelector('[data-slide-tab="true"][aria-selected="true"]');if(e){const t=e.dataset.index;if("string"==typeof t&&t.length>0){const e=parseInt(t,10);!isNaN(e)&&e!==pe&&e>=0&&e<de&&(ge(pe),fe(e))}}},t=new MutationObserver(t=>{let r=!1;t.forEach(e=>{"attributes"===e.type&&"aria-selected"===e.attributeName&&(r=!0)}),r&&setTimeout(e,10)});ce.current.querySelectorAll('[data-slide-tab="true"]').forEach(e=>{t.observe(e,{attributes:!0,attributeFilter:["aria-selected"]})}),e();const r=setInterval(e,500);return()=>{t.disconnect(),clearInterval(r)}},[pe,de]);const De=L?{onMouseEnter:()=>xe(!0),onMouseLeave:()=>xe(!1),onFocus:()=>Ce(!0),onBlur:e=>{e.currentTarget.contains(e.relatedTarget)||Ce(!1)}}:{},$e=de>1&&(!L||ye||be),Ae=(()=>{const e={};return 1!==ae&&(e["--items-per-page"]=String(le)),se>0&&(e["--space-between-items"]=`${se}px`),oe&&(e["--scroll-padding"]=oe),Object.keys(e).length>0?e:void 0})(),{focusProps:Le,isFocusVisible:ke}=g(),Ee=(()=>{const e=pe*Math.floor(le),t=Math.min(e+Math.ceil(le),te),r=[];for(let a=e;a<t;a++)r.push(a);return r})();/* @__PURE__ */
2
- return e("div",{className:(()=>{const e=[y.carouselWrapper];return Number.isInteger(le)||e.push(y.showPartialItems),oe&&e.push(y.hasScrollPadding),H&&H.trim()?e.push(H):e.push(y.defaultCarouselWrapper),e.join(" ")})(),ref:ce,style:Ae,"data-dots-size":E,...De,"data-arrows-visible":$e?"true":"false","data-transitioning":Ne?"true":void 0,"data-scroll-padding":oe,role:"region","aria-label":(()=>{if(b)return b;return`Carousel with ${te} items, currently showing slide ${pe+1} of ${de}${B?", autoplay enabled":""}`})(),"aria-describedby":C,"aria-roledescription":"carousel",children:/* @__PURE__ */t(n,{className:`${x({looping:N})}`,loop:"infinite"===N?"infinite":"backToStart"===N?"native":"off"!==N?N:void 0,ref:me,autoplay:B,autoplayInterval:W,mouseDragging:q&&!Ne,onDragStart:e=>{he(!0),e&&e.nativeEvent&&we({x:e.nativeEvent.clientX,y:e.nativeEvent.clientY})},onDragEnd:()=>{setTimeout(()=>{he(!1)},50)},"data-dragging":_e?"true":"false",itemsPerPage:le,scrollPadding:oe,"data-has-space-between":se>0?"true":void 0,"data-items-per-page":1!==ae?le.toString():void 0,children:[
3
- /* @__PURE__ */e(l,{className:`${y.scroller} ${v({focusStyle:k})}`,...Le,"data-focused":!!ke||void 0,"data-focus-visible":!!ke||void 0,"data-transitioning":Ne?"true":void 0,style:(()=>{const e={};if(se>=0&&(e.gap=`${se}px`),ae>1&&se>0){const t=se*(le-1)/le;e.gridAutoColumns=`calc(${100/le}% - ${t}px)`}else ae>1&&(e.gridAutoColumns=100/le+"%");return e})(),tabIndex:0,role:"region","aria-label":"Carousel content",onKeyDown:e=>{if("ArrowLeft"===e.key){e.preventDefault();const t=ce.current?.querySelector('[dir="prev"]');t&&!t.disabled&&t.click()}else if("ArrowRight"===e.key){e.preventDefault();const t=ce.current?.querySelector('[dir="next"]');t&&!t.disabled&&t.click()}else"Home"===e.key?(e.preventDefault(),Se(0)):"End"===e.key&&(e.preventDefault(),Se(de-1))},children:ee.map((t,r)=>{const a=Ee.includes(r),s=[G||"",y.item,a&&J?J:""].filter(Boolean).join(" ");/* @__PURE__ */
4
- return e(d,{className:s,"data-is-active":a?"true":void 0,"data-item-index":r,"aria-label":`Slide ${r+1} of ${te}`,children:t},r)})}),
1
+ import{jsx as e,jsxs as t}from"react/jsx-runtime";import a,{useRef as r,useState as s,useEffect as o}from"react";import{c as i}from"../../index-CCUt_dAN.js";import{C as n,a as l,b as d,c as u,d as c}from"../../IconButton.module-C7YCy-MU.js";import{CarouselButton as m}from"./CarouselButton/CarouselButton.js";import{CarouselDots as p}from"./CarouselDots/CarouselDots.js";import{AutoplayControl as f}from"./AutoplayControl/AutoplayControl.js";import{focusStyleVariants as v}from"../../utils/focus/focusStyles.js";import{useFocusRing as g}from"@react-aria/focus";import{resolveResponsiveProp as _}from"../../utils/breakpoint/responsive.js";import{useBreakpoint as h}from"../../utils/breakpoint/hooks/useBreakpoint.js";import '../../assets/Carousel.css';const y={carouselWrapper:"_carouselWrapper_gzlsx_2",showPartialItems:"_showPartialItems_gzlsx_14",carousel:"_carousel_gzlsx_2",hasScrollPadding:"_hasScrollPadding_gzlsx_25",scroller:"_scroller_gzlsx_43",item:"_item_gzlsx_84",slideLeft:"_slideLeft_gzlsx_122",slideRight:"_slideRight_gzlsx_126",controls:"_controls_gzlsx_149",defaultPrevButton:"_defaultPrevButton_gzlsx_160",defaultNextButton:"_defaultNextButton_gzlsx_168",defaultDotsContainer:"_defaultDotsContainer_gzlsx_177",defaultCarouselWrapper:"_defaultCarouselWrapper_gzlsx_188",defaultAutoplayControl:"_defaultAutoplayControl_gzlsx_195",showOnHover:"_showOnHover_gzlsx_204",hidden:"_hidden_gzlsx_214",hiddenTabs:"_hiddenTabs_gzlsx_245",infinite:"_infinite_gzlsx_264",native:"_native_gzlsx_269",autoplayControlWrapper:"_autoplayControlWrapper_gzlsx_273"},x=i(y.carousel,{variants:{looping:{infinite:y.infinite,backToStart:y.native,off:void 0}}}),b=({children:i=[],"aria-label":b,"aria-describedby":C,looping:N="off",itemsPerPage:P=1,spaceBetweenItems:w=0,scrollPadding:z,iconType:S="chevron",arrowStyleVariant:D="neutral",arrowSize:$="md",hideDisabledArrow:A=!1,showArrowsOnHover:L=!1,focusStyle:k="default",dotsSize:E="md",dotsVariant:T="standard",hideDots:I=!1,autoPlay:B=!1,autoPlayInterval:W=2e3,autoPlayStyleVariant:j="neutralVibrant",autoPlayControlSize:M="md",mouseDragging:q=!0,carouselWrapperClassName:H="",prevArrowClassName:O="",nextArrowClassName:R="",autoplayControlClassName:V="",dotsContainerClassName:F="",dotsWrapperClassName:X="",dotClassName:Y="",activeDotClassName:K="",itemWrapperClassName:G="",activeItemClassName:J="",onArrowPress:Q,onDotPress:U,onAutoplayPress:Z})=>{const ee=a.Children.toArray(i),te=ee.length,ae=h(),re=_(P,ae)??1,se=_(w,ae)??0,oe=_(z,ae)??void 0,ie=_($,ae)??"md",ne=_(I,ae)??!1,le=Math.max(1,re),de=Math.ceil(te/le),ue=!ne&&de>1,ce=r(null),me=r(null),[pe,fe]=s(0),[ve,ge]=s(0),[_e,he]=s(!1),[ye,xe]=s(!1),[be,Ce]=s(!1),[Ne]=s(!1),[Pe,we]=s(null),ze=(e,t)=>e||t,Se=e=>{if(!(e===pe||e<0||e>=de)&&ce.current){const t=ce.current.querySelector(`[data-slide-tab="true"][data-index="${e}"]`);t&&t.click()}};o(()=>{if(!ce.current||!q)return;const e=e=>{_e&&(e.preventDefault(),e.stopPropagation(),setTimeout(()=>{he(!1)},0))},t=e=>{we({x:e.clientX,y:e.clientY})},a=e=>{if(null===Pe)return;const t=Math.abs(e.clientX-Pe.x),a=Math.abs(e.clientY-Pe.y);Math.sqrt(t*t+a*a)>5&&he(!0)},r=()=>{_e?setTimeout(()=>{he(!1),we(null)},50):we(null)},s=ce.current;return s.addEventListener("mousedown",t,!0),s.addEventListener("mousemove",a,!0),s.addEventListener("mouseup",r,!0),s.addEventListener("click",e,!0),()=>{s.removeEventListener("mousedown",t,!0),s.removeEventListener("mousemove",a,!0),s.removeEventListener("mouseup",r,!0),s.removeEventListener("click",e,!0)}},[q,_e,Pe,5]),o(()=>{if(ce.current){const e=ce.current.querySelector(`.${y.scroller}`);e&&e instanceof HTMLElement&&(ve<pe?(e.classList.remove(y.slideLeft),e.classList.add(y.slideRight)):ve>pe&&(e.classList.remove(y.slideRight),e.classList.add(y.slideLeft)))}},[pe,ve]),o(()=>{if(!ce.current)return;const e=()=>{if(!ce.current)return;const e=ce.current.querySelector('[data-slide-tab="true"][aria-selected="true"]');if(e){const t=e.dataset.index;if("string"==typeof t&&t.length>0){const e=parseInt(t,10);!isNaN(e)&&e!==pe&&e>=0&&e<de&&(ge(pe),fe(e))}}},t=new MutationObserver(t=>{let a=!1;t.forEach(e=>{"attributes"===e.type&&"aria-selected"===e.attributeName&&(a=!0)}),a&&setTimeout(e,10)});ce.current.querySelectorAll('[data-slide-tab="true"]').forEach(e=>{t.observe(e,{attributes:!0,attributeFilter:["aria-selected"]})}),e();const a=setInterval(e,500);return()=>{t.disconnect(),clearInterval(a)}},[pe,de]);const De=L?{onMouseEnter:()=>xe(!0),onMouseLeave:()=>xe(!1),onFocus:()=>Ce(!0),onBlur:e=>{e.currentTarget.contains(e.relatedTarget)||Ce(!1)}}:{},$e=de>1&&(!L||ye||be),Ae=(()=>{const e={};return 1!==re&&(e["--items-per-page"]=String(le)),se>0&&(e["--space-between-items"]=`${se}px`),oe&&(e["--scroll-padding"]=oe),Object.keys(e).length>0?e:void 0})(),{focusProps:Le,isFocusVisible:ke}=g(),Ee=(()=>{const e=pe*Math.floor(le),t=Math.min(e+Math.ceil(le),te),a=[];for(let r=e;r<t;r++)a.push(r);return a})();/* @__PURE__ */
2
+ return e("div",{className:(()=>{const e=[y.carouselWrapper];return Number.isInteger(le)||e.push(y.showPartialItems),oe&&e.push(y.hasScrollPadding),H&&H.trim()?e.push(H):e.push(y.defaultCarouselWrapper),e.join(" ")})(),ref:ce,style:Ae,"data-dots-size":E,...De,"data-arrows-visible":$e?"true":"false","data-transitioning":Ne?"true":void 0,"data-scroll-padding":oe,role:"region","aria-label":(()=>{if(b)return b;return`Carousel with ${te} items, currently showing slide ${pe+1} of ${de}${B?", autoplay enabled":""}`})(),"aria-describedby":C,"aria-roledescription":"carousel",children:/* @__PURE__ */t(n,{className:`${x({looping:N})}`,loop:"infinite"===N?"infinite":"backToStart"===N?"native":"off"!==N?N:void 0,ref:me,autoplay:B,autoplayInterval:W,mouseDragging:q&&!Ne,onDragStart:e=>{he(!0),e&&e.nativeEvent&&we({x:e.nativeEvent.clientX,y:e.nativeEvent.clientY})},onDragEnd:()=>{setTimeout(()=>{he(!1)},50)},"data-dragging":_e?"true":"false",itemsPerPage:le,scrollPadding:oe,"data-has-space-between":se>0?"true":void 0,"data-items-per-page":1!==re?le.toString():void 0,children:[
3
+ /* @__PURE__ */e(l,{className:`${y.scroller} ${v({focusStyle:k})}`,...Le,"data-focused":!!ke||void 0,"data-focus-visible":!!ke||void 0,"data-transitioning":Ne?"true":void 0,style:(()=>{const e={};if(se>=0&&(e.gap=`${se}px`),re>1&&se>0){const t=se*(le-1)/le;e.gridAutoColumns=`calc(${100/le}% - ${t}px)`}else re>1&&(e.gridAutoColumns=100/le+"%");return e})(),tabIndex:0,role:"region","aria-label":"Carousel content",onKeyDown:e=>{if("ArrowLeft"===e.key){e.preventDefault();const t=ce.current?.querySelector('[dir="prev"]');t&&!t.disabled&&t.click()}else if("ArrowRight"===e.key){e.preventDefault();const t=ce.current?.querySelector('[dir="next"]');t&&!t.disabled&&t.click()}else"Home"===e.key?(e.preventDefault(),Se(0)):"End"===e.key&&(e.preventDefault(),Se(de-1))},children:ee.map((t,a)=>{const r=Ee.includes(a),s=[G||"",y.item,r&&J?J:""].filter(Boolean).join(" ");/* @__PURE__ */
4
+ return e(d,{className:s,"data-is-active":r?"true":void 0,"data-item-index":a,"aria-label":`Slide ${a+1} of ${te}`,children:t},a)})}),
5
5
  /* @__PURE__ */t("div",{className:`${y.controls} ${L?y.showOnHover:""}`,children:[
6
6
  /* @__PURE__ */e(m,{dir:"prev",variant:D,size:ie,focusStyle:k,iconType:S,hideDisabledArrow:A,onPress:()=>Q?.("prev"),className:`${ze(O,y.defaultPrevButton)} ${$e?"":y.hidden}`}),
7
7
  /* @__PURE__ */e(m,{dir:"next",variant:D,size:ie,focusStyle:k,iconType:S,hideDisabledArrow:A,onPress:()=>Q?.("next"),className:`${ze(R,y.defaultNextButton)} ${$e?"":y.hidden}`})]}),
@@ -34,7 +34,7 @@ export interface CheckboxProps extends AriaCheckboxProps {
34
34
  */
35
35
  validationBehavior?: 'native' | 'aria';
36
36
  /** Description text for the checkbox */
37
- description?: string;
37
+ description?: React.ReactNode;
38
38
  /** Alternate way to provide label content */
39
39
  children?: React.ReactNode;
40
40
  /** Focus style variant */
@@ -1,6 +1,6 @@
1
- import{jsxs as e,jsx as i,Fragment as a}from"react/jsx-runtime";import{useId as l,useMemo as r}from"react";import{Checkbox as t}from"react-aria-components";import{c as s}from"../../index-DiYWUa65.js";import d from"../FieldDescription/FieldDescription.js";import{FieldError as o}from"../FieldError/FieldError.js";import '../../assets/Checkbox.css';const c="_checkboxContainer_zuklp_24",n="_checkboxLabel_zuklp_29",u="_checkboxDescription_zuklp_33",p="_checkboxSvgWrapper_zuklp_38",_="_svg_zuklp_52",m="_checkboxLabelWrapper_zuklp_179",h={isInvalid:!0,validationErrors:["Invalid"],validationDetails:{valid:!1}},v=s("_checkbox_zuklp_2",{variants:{focusStyle:{default:"_defaultFocus_zuklp_80",white:"_whiteFocus_zuklp_84"}},defaultVariants:{focusStyle:"default"}}),f=({label:s,isIndeterminate:f,defaultSelected:k,isSelected:b,value:x,isDisabled:y,isReadOnly:z,isRequired:I,isInvalid:S,validate:F,autoFocus:N,name:D,validationBehavior:g,description:j,children:w,errorMessage:B,errorPrefix:E="Error:",testId:R,focusStyle:q="default",...C})=>{const L=l(),O=l(),P=r(()=>S?"function"==typeof B?B(h):B:null,[B,S]),W=[j?O:null,S&&P?L:null].filter(Boolean).join(" "),M=s||w;/* @__PURE__ */
2
- return e("div",{className:c,"data-testid":R,children:[S&&P&&/* @__PURE__ */i(o,{id:L,errorPrefix:E,isInvalid:S,children:P}),
3
- /* @__PURE__ */e("div",{className:m,children:[
4
- /* @__PURE__ */i(t,{className:v({focusStyle:q}),isIndeterminate:f,defaultSelected:k,isSelected:b,value:x,isDisabled:y,isReadOnly:z,isRequired:I,isInvalid:S,validate:F,autoFocus:N,name:D,validationBehavior:g,"aria-describedby":W||void 0,...C,children:({isIndeterminate:l})=>/* @__PURE__ */e(a,{children:[
5
- /* @__PURE__ */i("div",{className:`${p}`,"data-disabled":y,children:/* @__PURE__ */i("svg",{className:_,viewBox:"0 0 18 18","aria-hidden":"true",children:l?/* @__PURE__ */i("rect",{x:1,y:7.5,width:15,height:3}):/* @__PURE__ */i("polyline",{points:"1 9 7 14 15 4"})})}),M?/* @__PURE__ */i("span",{className:n,children:M}):null]})}),j&&/* @__PURE__ */i(d,{id:O,className:u,children:j})]})]})};export{f as Checkbox,f as default};
1
+ import{jsxs as e,jsx as i,Fragment as a}from"react/jsx-runtime";import{useId as r,useMemo as l}from"react";import{Checkbox as t}from"react-aria-components";import{c as s}from"../../index-CCUt_dAN.js";import d from"../FieldDescription/FieldDescription.js";import{FieldError as o}from"../FieldError/FieldError.js";import '../../assets/Checkbox.css';const c="_checkboxContainer_195a9_24",n="_checkboxLabel_195a9_29",u="_checkboxDescription_195a9_33",_="_checkboxSvgWrapper_195a9_38",m="_svg_195a9_52",h="_checkboxLabelWrapper_195a9_179",v={isInvalid:!0,validationErrors:["Invalid"],validationDetails:{valid:!1}},f=s("_checkbox_195a9_2",{variants:{focusStyle:{default:"_defaultFocus_195a9_80",white:"_whiteFocus_195a9_84"}},defaultVariants:{focusStyle:"default"}}),p=({label:s,isIndeterminate:p,defaultSelected:b,isSelected:x,value:y,isDisabled:I,isReadOnly:S,isRequired:F,isInvalid:k,validate:N,autoFocus:D,name:g,validationBehavior:j,description:w,children:B,errorMessage:E,errorPrefix:R="Error:",testId:q,focusStyle:C="default",...L})=>{const O=r(),P=r(),W=l(()=>k?"function"==typeof E?E(v):E:null,[E,k]),M=[w?P:null,k&&W?O:null].filter(Boolean).join(" "),V=s||B;/* @__PURE__ */
2
+ return e("div",{className:c,"data-testid":q,children:[k&&W&&/* @__PURE__ */i(o,{id:O,errorPrefix:R,isInvalid:k,children:W}),
3
+ /* @__PURE__ */e("div",{className:h,children:[
4
+ /* @__PURE__ */i(t,{className:f({focusStyle:C}),isIndeterminate:p,defaultSelected:b,isSelected:x,value:y,isDisabled:I,isReadOnly:S,isRequired:F,isInvalid:k,validate:N,autoFocus:D,name:g,validationBehavior:j,"aria-describedby":M||void 0,...L,children:({isIndeterminate:r})=>/* @__PURE__ */e(a,{children:[
5
+ /* @__PURE__ */i("div",{className:`${_}`,"data-disabled":I,children:/* @__PURE__ */i("svg",{className:m,viewBox:"0 0 18 18","aria-hidden":"true",children:r?/* @__PURE__ */i("rect",{x:1,y:7.5,width:15,height:3}):/* @__PURE__ */i("polyline",{points:"1 9 7 14 15 4"})})}),V?/* @__PURE__ */i("span",{className:n,children:V}):null]})}),w&&/* @__PURE__ */i(d,{id:P,className:u,children:w})]})]})};export{p as Checkbox,p as default};
6
6
  //# sourceMappingURL=Checkbox.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"Checkbox.js","sources":["../../../src/components/Checkbox/Checkbox.tsx"],"sourcesContent":["import React, { useMemo, useId } from 'react';\nimport { ValidationError } from '@react-types/shared';\nimport {\n ValidationResult,\n Checkbox as AriaCheckbox,\n CheckboxProps as AriaCheckboxProps,\n} from 'react-aria-components';\nimport { cva } from 'class-variance-authority';\n\nimport FieldDescription from '../FieldDescription';\nimport FieldError from '../FieldError';\nimport styles from './Checkbox.module.css';\n\n// Extracted constant to avoid recreation on every render\nconst DEFAULT_VALIDATION_RESULT: ValidationResult = {\n isInvalid: true,\n validationErrors: ['Invalid'],\n validationDetails: { valid: false } as unknown as ValidityState,\n};\n\nexport interface CheckboxProps extends AriaCheckboxProps {\n /** The label of the checkbox, can be a string or a React node. */\n label?: string | React.ReactNode;\n /** Indeterminism is presentational only. The indeterminate visual representation remains regardless of user interaction. */\n isIndeterminate?: boolean;\n /** Whether the element should be selected (uncontrolled). */\n defaultSelected?: boolean;\n /** Whether the element should be selected (controlled). */\n isSelected?: boolean;\n /** The value of the input element, used when submitting an HTML form. See MDN. */\n value?: string;\n /** Whether the input is disabled. */\n isDisabled?: boolean;\n /** Whether the input can be selected but not changed by the user. */\n isReadOnly?: boolean;\n /** Whether user input is required on the input before form submission. */\n isRequired?: boolean;\n /** Whether the input value is invalid. */\n isInvalid?: boolean;\n /** A function that returns an error message if a given value is invalid. Validation errors are displayed to the user when the form is submitted if validationBehavior=\"native\". For realtime validation, use the isInvalid prop instead. */\n validate?: (value: unknown) => ValidationError | true | null | undefined;\n /** Whether the element should receive focus on render. */\n autoFocus?: boolean;\n /** The name of the input element, used when submitting an HTML form. See MDN. */\n name?: string;\n /**\n * Whether to use native HTML form validation to prevent form submission\n * when the value is missing or invalid, or mark the field as required\n * or invalid via ARIA.\n * @default 'aria'\n */\n validationBehavior?: 'native' | 'aria';\n /** Description text for the checkbox */\n description?: string;\n /** Alternate way to provide label content */\n children?: React.ReactNode;\n /** Focus style variant */\n focusStyle?: 'default' | 'white';\n /**\n * Error message to display when the checkbox is invalid\n * Can be a static string or a function that returns an error message\n * @default undefined\n */\n errorMessage?: string | ((validation: ValidationResult) => string);\n /**\n * Prefix text for screen readers only in error messages\n * @default 'Error:'\n */\n errorPrefix?: string;\n /**\n * Custom test ID for testing purposes\n * @default undefined\n */\n testId?: string;\n}\n\nconst checkbox = cva(styles.checkbox, {\n variants: {\n focusStyle: {\n default: styles.defaultFocus,\n white: styles.whiteFocus,\n },\n },\n defaultVariants: {\n focusStyle: 'default',\n },\n});\n\nexport const Checkbox = ({\n label,\n isIndeterminate,\n defaultSelected,\n isSelected,\n value,\n isDisabled,\n isReadOnly,\n isRequired,\n isInvalid,\n validate,\n autoFocus,\n name,\n validationBehavior,\n description,\n children,\n errorMessage,\n errorPrefix = 'Error:',\n testId,\n focusStyle = 'default',\n ...props\n}: CheckboxProps) => {\n // Generate unique IDs for accessibility\n const errorId = useId();\n const descriptionId = useId();\n\n // Resolve error message with memoization\n const resolvedErrorMessage = useMemo(() => {\n if (!isInvalid) return null;\n\n if (typeof errorMessage === 'function') {\n return errorMessage(DEFAULT_VALIDATION_RESULT);\n }\n\n return errorMessage;\n }, [errorMessage, isInvalid]);\n\n // Determine aria-describedby based on description, error, or both\n const describedById = [\n description ? descriptionId : null,\n isInvalid && resolvedErrorMessage ? errorId : null,\n ]\n .filter(Boolean)\n .join(' ');\n\n // Determine the final label content\n const labelContent = label || children;\n\n return (\n <div className={styles.checkboxContainer} data-testid={testId}>\n {isInvalid && resolvedErrorMessage && (\n <FieldError\n id={errorId}\n errorPrefix={errorPrefix}\n isInvalid={isInvalid}\n >\n {resolvedErrorMessage}\n </FieldError>\n )}\n <div className={styles.checkboxLabelWrapper}>\n <AriaCheckbox\n className={checkbox({ focusStyle })}\n isIndeterminate={isIndeterminate}\n defaultSelected={defaultSelected}\n isSelected={isSelected}\n value={value}\n isDisabled={isDisabled}\n isReadOnly={isReadOnly}\n isRequired={isRequired}\n isInvalid={isInvalid}\n validate={validate}\n autoFocus={autoFocus}\n name={name}\n validationBehavior={validationBehavior}\n aria-describedby={describedById || undefined}\n {...props}\n >\n {({ isIndeterminate }: { isIndeterminate: boolean }) => (\n <>\n <div\n className={`${styles.checkboxSvgWrapper}`}\n data-disabled={isDisabled}\n >\n <svg\n className={styles.svg}\n viewBox=\"0 0 18 18\"\n aria-hidden=\"true\"\n >\n {isIndeterminate ? (\n <rect x={1} y={7.5} width={15} height={3} />\n ) : (\n <polyline points=\"1 9 7 14 15 4\" />\n )}\n </svg>\n </div>\n {labelContent ? (\n <span className={styles.checkboxLabel}>{labelContent}</span>\n ) : null}\n </>\n )}\n </AriaCheckbox>\n {description && (\n <FieldDescription\n id={descriptionId}\n className={styles.checkboxDescription}\n >\n {description}\n </FieldDescription>\n )}\n </div>\n </div>\n );\n};\n\nexport default Checkbox;\n"],"names":["DEFAULT_VALIDATION_RESULT","isInvalid","validationErrors","validationDetails","valid","checkbox","cva","variants","focusStyle","default","white","defaultVariants","Checkbox","label","isIndeterminate","defaultSelected","isSelected","value","isDisabled","isReadOnly","isRequired","validate","autoFocus","name","validationBehavior","description","children","errorMessage","errorPrefix","testId","props","errorId","useId","descriptionId","resolvedErrorMessage","useMemo","describedById","filter","Boolean","join","labelContent","className","styles","jsx","FieldError","id","AriaCheckbox","jsxs","Fragment","viewBox","x","y","width","height","points","FieldDescription"],"mappings":"mfAcMA,EAA8C,CAClDC,WAAW,EACXC,iBAAkB,CAAC,WACnBC,kBAAmB,CAAEC,OAAO,IA2DxBC,EAAWC,sBAAqB,CACpCC,SAAU,CACRC,WAAY,CACVC,iCACAC,+BAGJC,gBAAiB,CACfH,WAAY,aAIHI,EAAW,EACtBC,QACAC,kBACAC,kBACAC,aACAC,QACAC,aACAC,aACAC,aACAnB,YACAoB,WACAC,YACAC,OACAC,qBACAC,cACAC,WACAC,eACAC,cAAc,SACdC,SACArB,aAAa,aACVsB,MAGH,MAAMC,EAAUC,IACVC,EAAgBD,IAGhBE,EAAuBC,EAAQ,IAC9BlC,EAEuB,mBAAjB0B,EACFA,EAAa3B,GAGf2B,EANgB,KAOtB,CAACA,EAAc1B,IAGZmC,EAAgB,CACpBX,EAAcQ,EAAgB,KAC9BhC,GAAaiC,EAAuBH,EAAU,MAE7CM,OAAOC,SACPC,KAAK,KAGFC,EAAe3B,GAASa;AAE9B,SACG,MAAA,CAAIe,UAAWC,EAA0B,cAAab,EACpDH,SAAA,CAAAzB,GAAaiC,kBACZS,EAACC,EAAA,CACCC,GAAId,EACJH,cACA3B,YAECyB,SAAAQ;iBAGJ,MAAA,CAAIO,UAAWC,EACdhB,SAAA;eAAAiB,EAACG,EAAA,CACCL,UAAWpC,EAAS,CAAEG,eACtBM,kBACAC,kBACAC,aACAC,QACAC,aACAC,aACAC,aACAnB,YACAoB,WACAC,YACAC,OACAC,qBACA,mBAAkBY,QAAiB,KAC/BN,EAEHJ,SAAA,EAAGZ,gBAAAA,oBACFiC,EAAAC,EAAA,CACEtB,SAAA;eAAAiB,EAAC,MAAA,CACCF,UAAW,GAAGC,IACd,gBAAexB,EAEfQ,wBAAAiB,EAAC,MAAA,CACCF,UAAWC,EACXO,QAAQ,YACR,cAAY,OAEXvB,SAAAZ,iBACC6B,EAAC,OAAA,CAAKO,EAAG,EAAGC,EAAG,IAAKC,MAAO,GAAIC,OAAQ,mBAEvCV,EAAC,WAAA,CAASW,OAAO,sBAItBd,iBACCG,EAAC,OAAA,CAAKF,UAAWC,EAAuBhB,aACtC,UAITD,kBACCkB,EAACY,EAAA,CACCV,GAAIZ,EACJQ,UAAWC,EAEVhB,SAAAD"}
1
+ {"version":3,"file":"Checkbox.js","sources":["../../../src/components/Checkbox/Checkbox.tsx"],"sourcesContent":["import React, { useMemo, useId } from 'react';\nimport { ValidationError } from '@react-types/shared';\nimport {\n ValidationResult,\n Checkbox as AriaCheckbox,\n CheckboxProps as AriaCheckboxProps,\n} from 'react-aria-components';\nimport { cva } from 'class-variance-authority';\n\nimport FieldDescription from '../FieldDescription';\nimport FieldError from '../FieldError';\nimport styles from './Checkbox.module.css';\n\n// Extracted constant to avoid recreation on every render\nconst DEFAULT_VALIDATION_RESULT: ValidationResult = {\n isInvalid: true,\n validationErrors: ['Invalid'],\n validationDetails: { valid: false } as unknown as ValidityState,\n};\n\nexport interface CheckboxProps extends AriaCheckboxProps {\n /** The label of the checkbox, can be a string or a React node. */\n label?: string | React.ReactNode;\n /** Indeterminism is presentational only. The indeterminate visual representation remains regardless of user interaction. */\n isIndeterminate?: boolean;\n /** Whether the element should be selected (uncontrolled). */\n defaultSelected?: boolean;\n /** Whether the element should be selected (controlled). */\n isSelected?: boolean;\n /** The value of the input element, used when submitting an HTML form. See MDN. */\n value?: string;\n /** Whether the input is disabled. */\n isDisabled?: boolean;\n /** Whether the input can be selected but not changed by the user. */\n isReadOnly?: boolean;\n /** Whether user input is required on the input before form submission. */\n isRequired?: boolean;\n /** Whether the input value is invalid. */\n isInvalid?: boolean;\n /** A function that returns an error message if a given value is invalid. Validation errors are displayed to the user when the form is submitted if validationBehavior=\"native\". For realtime validation, use the isInvalid prop instead. */\n validate?: (value: unknown) => ValidationError | true | null | undefined;\n /** Whether the element should receive focus on render. */\n autoFocus?: boolean;\n /** The name of the input element, used when submitting an HTML form. See MDN. */\n name?: string;\n /**\n * Whether to use native HTML form validation to prevent form submission\n * when the value is missing or invalid, or mark the field as required\n * or invalid via ARIA.\n * @default 'aria'\n */\n validationBehavior?: 'native' | 'aria';\n /** Description text for the checkbox */\n description?: React.ReactNode;\n /** Alternate way to provide label content */\n children?: React.ReactNode;\n /** Focus style variant */\n focusStyle?: 'default' | 'white';\n /**\n * Error message to display when the checkbox is invalid\n * Can be a static string or a function that returns an error message\n * @default undefined\n */\n errorMessage?: string | ((validation: ValidationResult) => string);\n /**\n * Prefix text for screen readers only in error messages\n * @default 'Error:'\n */\n errorPrefix?: string;\n /**\n * Custom test ID for testing purposes\n * @default undefined\n */\n testId?: string;\n}\n\nconst checkbox = cva(styles.checkbox, {\n variants: {\n focusStyle: {\n default: styles.defaultFocus,\n white: styles.whiteFocus,\n },\n },\n defaultVariants: {\n focusStyle: 'default',\n },\n});\n\nexport const Checkbox = ({\n label,\n isIndeterminate,\n defaultSelected,\n isSelected,\n value,\n isDisabled,\n isReadOnly,\n isRequired,\n isInvalid,\n validate,\n autoFocus,\n name,\n validationBehavior,\n description,\n children,\n errorMessage,\n errorPrefix = 'Error:',\n testId,\n focusStyle = 'default',\n ...props\n}: CheckboxProps) => {\n // Generate unique IDs for accessibility\n const errorId = useId();\n const descriptionId = useId();\n\n // Resolve error message with memoization\n const resolvedErrorMessage = useMemo(() => {\n if (!isInvalid) return null;\n\n if (typeof errorMessage === 'function') {\n return errorMessage(DEFAULT_VALIDATION_RESULT);\n }\n\n return errorMessage;\n }, [errorMessage, isInvalid]);\n\n // Determine aria-describedby based on description, error, or both\n const describedById = [\n description ? descriptionId : null,\n isInvalid && resolvedErrorMessage ? errorId : null,\n ]\n .filter(Boolean)\n .join(' ');\n\n // Determine the final label content\n const labelContent = label || children;\n\n return (\n <div className={styles.checkboxContainer} data-testid={testId}>\n {isInvalid && resolvedErrorMessage && (\n <FieldError\n id={errorId}\n errorPrefix={errorPrefix}\n isInvalid={isInvalid}\n >\n {resolvedErrorMessage}\n </FieldError>\n )}\n <div className={styles.checkboxLabelWrapper}>\n <AriaCheckbox\n className={checkbox({ focusStyle })}\n isIndeterminate={isIndeterminate}\n defaultSelected={defaultSelected}\n isSelected={isSelected}\n value={value}\n isDisabled={isDisabled}\n isReadOnly={isReadOnly}\n isRequired={isRequired}\n isInvalid={isInvalid}\n validate={validate}\n autoFocus={autoFocus}\n name={name}\n validationBehavior={validationBehavior}\n aria-describedby={describedById || undefined}\n {...props}\n >\n {({ isIndeterminate }: { isIndeterminate: boolean }) => (\n <>\n <div\n className={`${styles.checkboxSvgWrapper}`}\n data-disabled={isDisabled}\n >\n <svg\n className={styles.svg}\n viewBox=\"0 0 18 18\"\n aria-hidden=\"true\"\n >\n {isIndeterminate ? (\n <rect x={1} y={7.5} width={15} height={3} />\n ) : (\n <polyline points=\"1 9 7 14 15 4\" />\n )}\n </svg>\n </div>\n {labelContent ? (\n <span className={styles.checkboxLabel}>{labelContent}</span>\n ) : null}\n </>\n )}\n </AriaCheckbox>\n {description && (\n <FieldDescription\n id={descriptionId}\n className={styles.checkboxDescription}\n >\n {description}\n </FieldDescription>\n )}\n </div>\n </div>\n );\n};\n\nexport default Checkbox;\n"],"names":["DEFAULT_VALIDATION_RESULT","isInvalid","validationErrors","validationDetails","valid","checkbox","cva","variants","focusStyle","default","white","defaultVariants","Checkbox","label","isIndeterminate","defaultSelected","isSelected","value","isDisabled","isReadOnly","isRequired","validate","autoFocus","name","validationBehavior","description","children","errorMessage","errorPrefix","testId","props","errorId","useId","descriptionId","resolvedErrorMessage","useMemo","describedById","filter","Boolean","join","labelContent","className","styles","jsx","FieldError","id","AriaCheckbox","jsxs","Fragment","viewBox","x","y","width","height","points","FieldDescription"],"mappings":"mfAcMA,EAA8C,CAClDC,WAAW,EACXC,iBAAkB,CAAC,WACnBC,kBAAmB,CAAEC,OAAO,IA2DxBC,EAAWC,sBAAqB,CACpCC,SAAU,CACRC,WAAY,CACVC,iCACAC,+BAGJC,gBAAiB,CACfH,WAAY,aAIHI,EAAW,EACtBC,QACAC,kBACAC,kBACAC,aACAC,QACAC,aACAC,aACAC,aACAnB,YACAoB,WACAC,YACAC,OACAC,qBACAC,cACAC,WACAC,eACAC,cAAc,SACdC,SACArB,aAAa,aACVsB,MAGH,MAAMC,EAAUC,IACVC,EAAgBD,IAGhBE,EAAuBC,EAAQ,IAC9BlC,EAEuB,mBAAjB0B,EACFA,EAAa3B,GAGf2B,EANgB,KAOtB,CAACA,EAAc1B,IAGZmC,EAAgB,CACpBX,EAAcQ,EAAgB,KAC9BhC,GAAaiC,EAAuBH,EAAU,MAE7CM,OAAOC,SACPC,KAAK,KAGFC,EAAe3B,GAASa;AAE9B,SACG,MAAA,CAAIe,UAAWC,EAA0B,cAAab,EACpDH,SAAA,CAAAzB,GAAaiC,kBACZS,EAACC,EAAA,CACCC,GAAId,EACJH,cACA3B,YAECyB,SAAAQ;iBAGJ,MAAA,CAAIO,UAAWC,EACdhB,SAAA;eAAAiB,EAACG,EAAA,CACCL,UAAWpC,EAAS,CAAEG,eACtBM,kBACAC,kBACAC,aACAC,QACAC,aACAC,aACAC,aACAnB,YACAoB,WACAC,YACAC,OACAC,qBACA,mBAAkBY,QAAiB,KAC/BN,EAEHJ,SAAA,EAAGZ,gBAAAA,oBACFiC,EAAAC,EAAA,CACEtB,SAAA;eAAAiB,EAAC,MAAA,CACCF,UAAW,GAAGC,IACd,gBAAexB,EAEfQ,wBAAAiB,EAAC,MAAA,CACCF,UAAWC,EACXO,QAAQ,YACR,cAAY,OAEXvB,SAAAZ,iBACC6B,EAAC,OAAA,CAAKO,EAAG,EAAGC,EAAG,IAAKC,MAAO,GAAIC,OAAQ,mBAEvCV,EAAC,WAAA,CAASW,OAAO,sBAItBd,iBACCG,EAAC,OAAA,CAAKF,UAAWC,EAAuBhB,aACtC,UAITD,kBACCkB,EAACY,EAAA,CACCV,GAAIZ,EACJQ,UAAWC,EAEVhB,SAAAD"}
@@ -1,2 +1,3 @@
1
- import{jsx as o}from"react/jsx-runtime";import{c as e}from"../../index-DiYWUa65.js";import{Button as t}from"react-aria-components";import{Icon as s}from"../Icon/Icon.js";import{focusStyleVariants as a}from"../../utils/focus/focusStyles.js";import '../../assets/ClearFieldButton.css';const m=e("_clearFieldButton_hkevp_1",{variants:{size:{sm:"_sm_hkevp_18",md:"_md_hkevp_23",lg:"_lg_hkevp_28"}},defaultVariants:{size:"md"}}),r=({size:e="md",form:r,formAction:i,formEncType:c,formMethod:f,formNoValidate:l,formTarget:n,name:d,value:u,isDisabled:p,autoFocus:_,type:h,slot:v,onClick:y,className:k,focusStyle:x="default",...z})=>/* @__PURE__ */o(t,{className:`${m({size:e})} ${k||""} ${a({focusStyle:x})}`,form:r,formAction:i,formEncType:c,formMethod:f,formNoValidate:l,formTarget:n,name:d,value:u,isDisabled:p,autoFocus:_,type:h,slot:v,onPress:y,...z,children:/* @__PURE__ */o(s,{iconName:"circle-xmark",iconSize:"1x","data-testid":"icon"})});export{r as ClearFieldButton,r as default};
1
+ import{jsx as s}from"react/jsx-runtime";import{c as e}from"../../index-CCUt_dAN.js";import{Button as i}from"react-aria-components";import{Icon as d}from"../Icon/Icon.js";import{focusStyleVariants as m}from"../../utils/focus/focusStyles.js";import{getBaseValue as l,generateResponsiveClasses as o}from"../../utils/breakpoint/responsiveSSR.js";import '../../assets/ClearFieldButton.css';const _={clearFieldButton:"_clearFieldButton_dnd4g_1","size--sm":"_size--sm_dnd4g_34","size--md":"_size--md_dnd4g_38","size--lg":"_size--lg_dnd4g_42","sm:size--sm":"_sm:size--sm_dnd4g_1","sm:size--md":"_sm:size--md_dnd4g_1","sm:size--lg":"_sm:size--lg_dnd4g_1","md:size--sm":"_md:size--sm_dnd4g_1","md:size--md":"_md:size--md_dnd4g_1","md:size--lg":"_md:size--lg_dnd4g_1","lg:size--sm":"_lg:size--sm_dnd4g_1","lg:size--md":"_lg:size--md_dnd4g_1","lg:size--lg":"_lg:size--lg_dnd4g_1","xl:size--sm":"_xl:size--sm_dnd4g_1","xl:size--md":"_xl:size--md_dnd4g_1","xl:size--lg":"_xl:size--lg_dnd4g_1","xxl:size--sm":"_xxl:size--sm_dnd4g_1","xxl:size--md":"_xxl:size--md_dnd4g_1","xxl:size--lg":"_xxl:size--lg_dnd4g_1"},n=o(_),t=e(_.clearFieldButton,{variants:{size:{sm:_["size--sm"],md:_["size--md"],lg:_["size--lg"]}},defaultVariants:{size:"md"}}),r=({size:e="md",form:o,formAction:_,formEncType:r,formMethod:z,formNoValidate:a,formTarget:g,name:c,value:f,isDisabled:x,autoFocus:u,type:p,slot:y,onClick:j,className:S,focusStyle:F="default",...N})=>{const v=l(e,"md"),B=n(e,"size");/* @__PURE__ */
2
+ return s(i,{className:[t({size:v}),m({focusStyle:F}),...B,S].filter(Boolean).join(" "),form:o,formAction:_,formEncType:r,formMethod:z,formNoValidate:a,formTarget:g,name:c,value:f,isDisabled:x,autoFocus:u,type:p,slot:y,onPress:j,...N,children:/* @__PURE__ */s(d,{iconName:"circle-xmark",iconSize:"1x","data-testid":"icon"})})};export{r as ClearFieldButton,r as default};
2
3
  //# sourceMappingURL=ClearFieldButton.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"ClearFieldButton.js","sources":["../../../src/components/ClearFieldButton/ClearFieldButton.tsx"],"sourcesContent":["import { cva } from 'class-variance-authority';\nimport { Button as AriaButton } from 'react-aria-components';\nimport { ButtonProps } from '../Button/Button';\nimport { Icon } from '../Icon/Icon';\nimport styles from './ClearFieldButton.module.css';\nimport { FormProps } from '../../utils/forms/formProps';\nimport { focusStyleVariants } from '../../utils/focus/focusStyles';\n\nconst clearFieldButton = cva(styles.clearFieldButton, {\n variants: {\n size: {\n sm: styles.sm,\n md: styles.md,\n lg: styles.lg,\n },\n },\n defaultVariants: {\n size: 'md',\n },\n});\n\nexport interface ClearFieldButtonProps\n extends Omit<ButtonProps, '$styleText'>,\n FormProps {\n slot?: string;\n className?: string;\n focusStyle?: 'default' | 'white';\n onClick?: () => void;\n type?: 'button' | 'submit' | 'reset';\n}\n\nexport const ClearFieldButton = ({\n size = 'md',\n form,\n formAction,\n formEncType,\n formMethod,\n formNoValidate,\n formTarget,\n name,\n value,\n isDisabled,\n autoFocus,\n type,\n slot,\n onClick,\n className,\n focusStyle = 'default',\n ...props\n}: ClearFieldButtonProps) => {\n return (\n <AriaButton\n className={`${clearFieldButton({ size })} ${className || ''} ${focusStyleVariants({ focusStyle })}`}\n form={form}\n formAction={formAction}\n formEncType={formEncType}\n formMethod={formMethod}\n formNoValidate={formNoValidate}\n formTarget={formTarget}\n name={name}\n value={value}\n isDisabled={isDisabled}\n autoFocus={autoFocus}\n type={type}\n slot={slot}\n onPress={onClick}\n {...props}\n >\n <Icon iconName={'circle-xmark'} iconSize={'1x'} data-testid=\"icon\" />\n </AriaButton>\n );\n};\n\nexport default ClearFieldButton;\n"],"names":["clearFieldButton","cva","variants","size","sm","md","lg","defaultVariants","ClearFieldButton","form","formAction","formEncType","formMethod","formNoValidate","formTarget","name","value","isDisabled","autoFocus","type","slot","onClick","className","focusStyle","props","jsx","AriaButton","focusStyleVariants","onPress","children","Icon","iconName","iconSize"],"mappings":"sPAQMA,EAAmBC,8BAA6B,CACpDC,SAAU,CACRC,KAAM,CACJC,kBACAC,kBACAC,oBAGJC,gBAAiB,CACfJ,KAAM,QAcGK,EAAmB,EAC9BL,OAAO,KACPM,OACAC,aACAC,cACAC,aACAC,iBACAC,aACAC,OACAC,QACAC,aACAC,YACAC,OACAC,OACAC,UACAC,YACAC,aAAa,aACVC,oBAGDC,EAACC,EAAA,CACCJ,UAAW,GAAGtB,EAAiB,CAAEG,YAAWmB,GAAa,MAAMK,EAAmB,CAAEJ,iBACpFd,OACAC,aACAC,cACAC,aACAC,iBACAC,aACAC,OACAC,QACAC,aACAC,YACAC,OACAC,OACAQ,QAASP,KACLG,EAEJK,0BAACC,EAAA,CAAKC,SAAU,eAAgBC,SAAU,KAAM,cAAY"}
1
+ {"version":3,"file":"ClearFieldButton.js","sources":["../../../src/components/ClearFieldButton/ClearFieldButton.tsx"],"sourcesContent":["import { cva } from 'class-variance-authority';\nimport { Button as AriaButton } from 'react-aria-components';\nimport { ButtonProps } from '../Button/Button';\nimport { Icon } from '../Icon/Icon';\nimport styles from './ClearFieldButton.module.css';\nimport { FormProps } from '../../utils/forms/formProps';\nimport { focusStyleVariants } from '../../utils/focus/focusStyles';\nimport {\n generateResponsiveClasses,\n getBaseValue,\n} from '../../utils/breakpoint/responsiveSSR';\n\nconst getResponsiveClasses = generateResponsiveClasses(styles);\n\nconst clearFieldButton = cva(styles.clearFieldButton, {\n variants: {\n size: {\n sm: styles['size--sm'],\n md: styles['size--md'],\n lg: styles['size--lg'],\n },\n },\n defaultVariants: {\n size: 'md',\n },\n});\n\nexport interface ClearFieldButtonProps\n extends Omit<ButtonProps, '$styleText'>,\n FormProps {\n slot?: string;\n className?: string;\n focusStyle?: 'default' | 'white';\n onClick?: () => void;\n type?: 'button' | 'submit' | 'reset';\n}\n\nexport const ClearFieldButton = ({\n size = 'md',\n form,\n formAction,\n formEncType,\n formMethod,\n formNoValidate,\n formTarget,\n name,\n value,\n isDisabled,\n autoFocus,\n type,\n slot,\n onClick,\n className,\n focusStyle = 'default',\n ...props\n}: ClearFieldButtonProps) => {\n const baseSize = getBaseValue(size, 'md');\n const sizeResponsiveClasses = getResponsiveClasses(size, 'size');\n\n return (\n <AriaButton\n className={[\n clearFieldButton({ size: baseSize }),\n focusStyleVariants({ focusStyle }),\n ...sizeResponsiveClasses,\n className,\n ]\n .filter(Boolean)\n .join(' ')}\n form={form}\n formAction={formAction}\n formEncType={formEncType}\n formMethod={formMethod}\n formNoValidate={formNoValidate}\n formTarget={formTarget}\n name={name}\n value={value}\n isDisabled={isDisabled}\n autoFocus={autoFocus}\n type={type}\n slot={slot}\n onPress={onClick}\n {...props}\n >\n <Icon iconName={'circle-xmark'} iconSize={'1x'} data-testid=\"icon\" />\n </AriaButton>\n );\n};\n\nexport default ClearFieldButton;\n"],"names":["getResponsiveClasses","generateResponsiveClasses","styles","clearFieldButton","cva","variants","size","sm","md","lg","defaultVariants","ClearFieldButton","form","formAction","formEncType","formMethod","formNoValidate","formTarget","name","value","isDisabled","autoFocus","type","slot","onClick","className","focusStyle","props","baseSize","getBaseValue","sizeResponsiveClasses","jsx","AriaButton","focusStyleVariants","filter","Boolean","join","onPress","children","Icon","iconName","iconSize"],"mappings":"8hCAYMA,EAAuBC,EAA0BC,GAEjDC,EAAmBC,EAAIF,EAAOC,iBAAkB,CACpDE,SAAU,CACRC,KAAM,CACJC,GAAIL,EAAO,YACXM,GAAIN,EAAO,YACXO,GAAIP,EAAO,cAGfQ,gBAAiB,CACfJ,KAAM,QAcGK,EAAmB,EAC9BL,OAAO,KACPM,OACAC,aACAC,cACAC,aACAC,iBACAC,aACAC,OACAC,QACAC,aACAC,YACAC,OACAC,OACAC,UACAC,YACAC,aAAa,aACVC,MAEH,MAAMC,EAAWC,EAAavB,EAAM,MAC9BwB,EAAwB9B,EAAqBM,EAAM;AAEzD,OACEyB,EAACC,EAAA,CACCP,UAAW,CACTtB,EAAiB,CAAEG,KAAMsB,IACzBK,EAAmB,CAAEP,kBAClBI,EACHL,GAECS,OAAOC,SACPC,KAAK,KACRxB,OACAC,aACAC,cACAC,aACAC,iBACAC,aACAC,OACAC,QACAC,aACAC,YACAC,OACAC,OACAc,QAASb,KACLG,EAEJW,0BAACC,EAAA,CAAKC,SAAU,eAAgBC,SAAU,KAAM,cAAY"}
@@ -1,4 +1,4 @@
1
- import{jsx as e,jsxs as r}from"react/jsx-runtime";import a from"react";import{TextField as t,Input as o}from"react-aria-components";import{P as c}from"../../react-number-format.es-7RDg5nwN.js";import{Field as i}from"../_base/Field/Field.js";import{Icon as n}from"../Icon/Icon.js";import{getCardIcon as l}from"../../utils/creditCard/creditCard.js";import '../../assets/CreditCardNumberField.css';const m="_creditCardNumberField_12w3r_1",d="_inputWrapper_12w3r_51",s="_iconEnd_12w3r_57",u=({cardIcon:u=l,defaultValue:p,value:f,onChange:_,label:b="Credit card number",...h})=>{const[C,j]=a.useState(p),v=f??C,x=a.useMemo(()=>"function"==typeof u?u(C)||"credit-card":u||"credit-card",[C,u]);/* @__PURE__ */
1
+ import{jsx as e,jsxs as r}from"react/jsx-runtime";import a from"react";import{TextField as t,Input as o}from"react-aria-components";import{P as c}from"../../react-number-format.es-kdABQClE.js";import{Field as i}from"../_base/Field/Field.js";import{Icon as n}from"../Icon/Icon.js";import{getCardIcon as l}from"../../utils/creditCard/creditCard.js";import '../../assets/CreditCardNumberField.css';const m="_creditCardNumberField_12w3r_1",d="_inputWrapper_12w3r_51",s="_iconEnd_12w3r_57",u=({cardIcon:u=l,defaultValue:p,value:f,onChange:_,label:b="Credit card number",...h})=>{const[C,j]=a.useState(p),v=f??C,x=a.useMemo(()=>"function"==typeof u?u(C)||"credit-card":u||"credit-card",[C,u]);/* @__PURE__ */
2
2
  return e(i,{...h,as:t,isRequired:!0,hasEndIcon:!0,label:b,className:m,children:/* @__PURE__ */r("div",{className:d,children:[
3
3
  /* @__PURE__ */e(c,{type:"text",format:"#### #### #### ####",customInput:o,placeholder:h?.placeholder,allowEmptyFormatting:!1,defaultValue:p,value:v,onValueChange:e=>{"function"==typeof _&&_(e.value),j(e.value)},autoComplete:"cc-number","aria-label":b}),
4
4
  /* @__PURE__ */e(n,{iconName:x,iconPrefix:"credit-card"===x?"fas":"fab",className:s,iconSize:"1.25x",padding:"roomy"})]})})};export{u as CreditCardNumberField,u as default};
@@ -1,4 +1,4 @@
1
- import{jsxs as l,jsx as a}from"react/jsx-runtime";import e from"react";import{TextField as h,Input as v}from"react-aria-components";import{P as d}from"../../react-number-format.es-7RDg5nwN.js";import{Field as i}from"../_base/Field/Field.js";import '../../assets/CreditCardSecurityCodeField.css';const t="_creditCardSecurityCodeField_14mb2_1",c="_inputWrapper_14mb2_11",o="_inputChildren_14mb2_54",n=({defaultValue:n,value:m,onChange:p,label:r="Card security code",cardIcon:u="back",digits:f=3,...s})=>{const[z,M]=e.useState(n),R=m??z;/* @__PURE__ */
1
+ import{jsxs as l,jsx as a}from"react/jsx-runtime";import e from"react";import{TextField as h,Input as v}from"react-aria-components";import{P as d}from"../../react-number-format.es-kdABQClE.js";import{Field as i}from"../_base/Field/Field.js";import '../../assets/CreditCardSecurityCodeField.css';const t="_creditCardSecurityCodeField_14mb2_1",c="_inputWrapper_14mb2_11",o="_inputChildren_14mb2_54",n=({defaultValue:n,value:m,onChange:p,label:r="Card security code",cardIcon:u="back",digits:f=3,...s})=>{const[z,M]=e.useState(n),R=m??z;/* @__PURE__ */
2
2
  return l(i,{className:t,as:h,isRequired:!0,label:r,...s,children:[
3
3
  /* @__PURE__ */l("div",{className:c,children:[
4
4
  /* @__PURE__ */a(d,{type:"text",format:`${"#".repeat(f)}`,customInput:v,placeholder:s?.placeholder,defaultValue:n,value:R,onValueChange:l=>{"function"==typeof p&&p(l.value),M(l.value)},autoComplete:"cc-csc"}),
@@ -1,3 +1,3 @@
1
- import{jsx as r}from"react/jsx-runtime";import{useMemo as e}from"react";import{c}from"../../index-DiYWUa65.js";import '../../assets/Currency.css';const n=c("_currency_1w262_1",{variants:{styleVariant:{primary:"_currency-primary_1w262_23",secondary:"_currency-secondary_1w262_27",white:"_currency-white_1w262_31",onSpend:"_currency-onSpend_1w262_35",onCollect:"_currency-onCollect_1w262_39",accentPrimary:"_currency-accentPrimary_1w262_43",accentSecondary:"_currency-accentSecondary_1w262_47"},size:{"5xs":"_currency-5xs_1w262_107","4xs":"_currency-4xs_1w262_100","3xs":"_currency-3xs_1w262_93","2xs":"_currency-2xs_1w262_86",xs:"_currency-xs_1w262_79",sm:"_currency-sm_1w262_72",md:"_currency-md_1w262_65",lg:"_currency-lg_1w262_58",xl:"_currency-xl_1w262_51"},isStrikethrough:{true:"_currency-strikethrough_1w262_11",false:""}},defaultVariants:{styleVariant:"accentSecondary"}}),t=({children:c,locale:t="en-GB",symbol:_,size:i="md",styleVariant:a,isStrikethrough:s=!1,formatOptions:y={style:"currency",minimumFractionDigits:0,maximumFractionDigits:2},formatter:u})=>{const o=e(()=>{if(null==c)return"";if(u)return u(c);const{style:r,currency:e="GBP",...n}=y,i={style:r||"decimal",minimumFractionDigits:0,maximumFractionDigits:0,...n};"currency"===i.style&&(i.currency=e||"GBP");let a=new Intl.NumberFormat(t,i).format(c);return"decimal"===i.style&&(a=_+a),a},[c,t,_,y,u]);/* @__PURE__ */
1
+ import{jsx as r}from"react/jsx-runtime";import{useMemo as e}from"react";import{c}from"../../index-CCUt_dAN.js";import '../../assets/Currency.css';const n=c("_currency_1w262_1",{variants:{styleVariant:{primary:"_currency-primary_1w262_23",secondary:"_currency-secondary_1w262_27",white:"_currency-white_1w262_31",onSpend:"_currency-onSpend_1w262_35",onCollect:"_currency-onCollect_1w262_39",accentPrimary:"_currency-accentPrimary_1w262_43",accentSecondary:"_currency-accentSecondary_1w262_47"},size:{"5xs":"_currency-5xs_1w262_107","4xs":"_currency-4xs_1w262_100","3xs":"_currency-3xs_1w262_93","2xs":"_currency-2xs_1w262_86",xs:"_currency-xs_1w262_79",sm:"_currency-sm_1w262_72",md:"_currency-md_1w262_65",lg:"_currency-lg_1w262_58",xl:"_currency-xl_1w262_51"},isStrikethrough:{true:"_currency-strikethrough_1w262_11",false:""}},defaultVariants:{styleVariant:"accentSecondary"}}),t=({children:c,locale:t="en-GB",symbol:_,size:i="md",styleVariant:a,isStrikethrough:s=!1,formatOptions:y={style:"currency",minimumFractionDigits:0,maximumFractionDigits:2},formatter:u})=>{const o=e(()=>{if(null==c)return"";if(u)return u(c);const{style:r,currency:e="GBP",...n}=y,i={style:r||"decimal",minimumFractionDigits:0,maximumFractionDigits:0,...n};"currency"===i.style&&(i.currency=e||"GBP");let a=new Intl.NumberFormat(t,i).format(c);return"decimal"===i.style&&(a=_+a),a},[c,t,_,y,u]);/* @__PURE__ */
2
2
  return r("span",{className:n({styleVariant:a,size:i,isStrikethrough:s}),...s?{role:"deletion"}:{},children:o})};export{t as Currency,t as default};
3
3
  //# sourceMappingURL=Currency.js.map
@@ -1,7 +1,7 @@
1
1
  import { DateFieldProps as AriaDateFieldBaseProps, DateValue } from 'react-aria-components';
2
2
  import { FieldProps } from '../_base/Field/Field';
3
3
  type AriaDateFieldProps = Omit<AriaDateFieldBaseProps<DateValue>, 'defaultValue' | 'value' | 'onChange' | 'minValue' | 'maxValue' | 'isDateUnavailable' | 'isDisabled' | 'isRequired' | 'isInvalid'>;
4
- export type DateFieldProps = Omit<FieldProps<AriaDateFieldProps>, 'maxWidthByChars'> & {
4
+ export type DateFieldProps = Omit<FieldProps<AriaDateFieldProps>, 'maxWidthByChars' | 'granularity'> & {
5
5
  /**
6
6
  * Label for the date field
7
7
  */
@@ -43,6 +43,10 @@ export type DateFieldProps = Omit<FieldProps<AriaDateFieldProps>, 'maxWidthByCha
43
43
  * The maximum value of the date field.
44
44
  */
45
45
  maxValue?: string | DateValue;
46
+ /**
47
+ * The smallest time division that can be set in the date field.
48
+ */
49
+ granularity?: 'month' | 'day' | 'hour' | 'minute' | 'second';
46
50
  /**
47
51
  * Children for DateField subcomponents
48
52
  */
@@ -1,2 +1,2 @@
1
- import"react/jsx-runtime";import"react-aria-components";import"@react-aria/utils";import{D as t,D as e}from"../../DateField-oLDKE7Lh.js";import"../_base/Field/Field.js";import"react";import"../../utils/date/date.js";import"../DatePicker/DatePickerContext.js";export{t as DateField,e as default};
1
+ import"react/jsx-runtime";import"react-aria-components";import"@react-aria/utils";import{D as t,D as e}from"../../DateField-rBq9QuR6.js";import"../_base/Field/Field.js";import"react";import"../../utils/date/date.js";import"../DatePicker/DatePickerContext.js";export{t as DateField,e as default};
2
2
  //# sourceMappingURL=DateField.js.map
@@ -1,2 +1,2 @@
1
- import{D as e}from"../../DateField-oLDKE7Lh.js";export{e as default};
1
+ import{D as e}from"../../DateField-rBq9QuR6.js";export{e as default};
2
2
  //# sourceMappingURL=index.js.map
@@ -1,4 +1,4 @@
1
- import{jsx as e,jsxs as a}from"react/jsx-runtime";import{useState as l,useMemo as t,useRef as r}from"react";import{$ as i,a as o,b as n,c as s,d as u,e as d}from"../../DatePicker.module-CGXPuf59.js";import{IconButton as m}from"../IconButton/IconButton.js";import{useDatePicker as c}from"@react-aria/datepicker";import{Popover as p}from"../Popover/Popover.js";import{Calendar as f}from"../Calendar/Calendar.js";import{D as h}from"../../DateField-oLDKE7Lh.js";import{parseDateValue as v}from"../../utils/date/date.js";import{DatePickerContext as V}from"./DatePickerContext.js";import{b as g,h as C}from"../../CalendarDate-B7n_TjYa.js";import{f as P}from"../../useCalendarState-C9LlCwg-.js";import{$ as y}from"../../useFormValidationState-CqKt4CQY.js";import{$ as D}from"../../useControlledState-DCczKDCM.js";const b=b=>{const j={...b,defaultValue:v(b?.defaultValue),value:v(b?.value),onChange:e=>b?.onChange?.(e.toDate("UTC").toISOString()),minValue:v(b?.minValue),maxValue:v(b?.maxValue),isDateUnavailable:e=>!!b?.isDateUnavailable&&b.isDateUnavailable(e.toDate("UTC").toISOString())},S=function(e){let a=i(e),[r,d]=D(e.value,e.defaultValue||null,e.onChange),[m]=l(r),c=r||e.placeholderValue||null,[p,f]=o(c,e.granularity),h=null!=r?r.toDate(null!=f?f:"UTC"):null,v="hour"===p||"minute"===p||"second"===p;var V;let b=null===(V=e.shouldCloseOnSelect)||void 0===V||V,[j,S]=l(null),[I,O]=l(null);if(r&&(j=r,"hour"in r&&(I=r)),c&&!(p in c))throw new Error("Invalid granularity "+p+" for value "+c.toString());let T="gregory"===(null==r?void 0:r.calendar.identifier)&&"BC"===r.era,Z=t(()=>({granularity:p,timeZone:f,hideTimeZone:e.hideTimeZone,hourCycle:e.hourCycle,shouldForceLeadingZeros:e.shouldForceLeadingZeros,showEra:T}),[p,e.hourCycle,e.shouldForceLeadingZeros,f,e.hideTimeZone,T]),{minValue:F,maxValue:k,isDateUnavailable:x}=e,U=t(()=>n(r,F,k,x,Z),[r,F,k,x,Z]),w=y({...e,value:r,builtinValidation:U}),B=w.displayValidation.isInvalid,E=e.validationState||(B?"invalid":null),L=(e,a)=>{d("timeZone"in a?a.set(g(e)):C(e,a)),S(null),O(null),w.commitValidation()};var N;return{...w,value:r,defaultValue:null!==(N=e.defaultValue)&&void 0!==N?N:m,setValue:d,dateValue:j,timeValue:I,setDateValue:l=>{let t="function"==typeof b?b():b;v?I||t?L(l,I||u(e.defaultValue||e.placeholderValue)):S(l):(d(l),w.commitValidation()),t&&a.setOpen(!1)},setTimeValue:e=>{j&&e?L(j,e):O(e)},granularity:p,hasTime:v,...a,setOpen(l){!l&&!r&&j&&v&&L(j,I||u(e.defaultValue||e.placeholderValue)),a.setOpen(l)},validationState:E,isInvalid:B,formatValue(e,a){if(!h)return"";let l=s(a,Z);return new P(e,l).format(h)},getDateFormatter(e,a){let l={...Z,...a},t=s({},l);return new P(e,t)}}}(j),I=r(null),O=c(j,S,I),T={...b.dateFieldProps,...O.fieldProps,granularity:"day",hideTimeZone:!0,label:b.label,description:b.description,errorMessage:b.errorMessage},Z={...O.buttonProps,isInvalid:S.isInvalid,styleVariant:S.isInvalid?"critical":S.isOpen?"accent":"neutral",onClick:()=>S.isOpen?S.close():S.open()},F={...b.calendarProps,...O.calendarProps};/* @__PURE__ */
2
- return e("div",{className:d.datePicker,ref:I,children:/* @__PURE__ */a(V.Provider,{value:{isInDatePicker:!0},children:[
3
- /* @__PURE__ */e(h,{...T,children:/* @__PURE__ */e(h.EndSlot,{children:/* @__PURE__ */e(m,{...Z,size:"sm",emphasis:"tertiary",iconProps:{iconName:"calendar-days",iconPrefix:"fas"}})})}),S.isOpen&&/* @__PURE__ */e(p,{state:S,triggerRef:I,placement:"bottom start",hasArrow:!1,shouldFlip:!0,children:/* @__PURE__ */e("div",{role:"dialog",className:d.datePicker__dialog,...O.dialogProps,children:/* @__PURE__ */e(f,{...F})})})]})})};export{b as DatePicker,b as default};
1
+ import{jsx as e,jsxs as a}from"react/jsx-runtime";import{useState as l,useMemo as t,useRef as r}from"react";import{$ as i,a as o,b as n,c as s,d as u,e as d}from"../../DatePicker.module-DlLCFGCM.js";import{IconButton as m}from"../IconButton/IconButton.js";import{useDatePicker as c}from"@react-aria/datepicker";import{Popover as p}from"../Popover/Popover.js";import{Calendar as f}from"../Calendar/Calendar.js";import{D as h}from"../../DateField-rBq9QuR6.js";import{parseDateValue as V}from"../../utils/date/date.js";import{DatePickerContext as g}from"./DatePickerContext.js";import{$ as v,a as C}from"../../useControlledState-CLJIwghQ.js";import{b as P,h as y}from"../../CalendarDate-uEuHKGse.js";import{g as D}from"../../useCalendarState-BKam8aTi.js";const b=b=>{const j={...b,defaultValue:V(b?.defaultValue),value:V(b?.value),onChange:e=>b?.onChange?.(e.toDate("UTC").toISOString()),minValue:V(b?.minValue),maxValue:V(b?.maxValue),isDateUnavailable:e=>!!b?.isDateUnavailable&&b.isDateUnavailable(e.toDate("UTC").toISOString())},I=function(e){let a=i(e),[r,d]=v(e.value,e.defaultValue||null,e.onChange),[m]=l(r),c=r||e.placeholderValue||null,[p,f]=o(c,e.granularity),h=null!=r?r.toDate(f??"UTC"):null,V="hour"===p||"minute"===p||"second"===p,g=e.shouldCloseOnSelect??!0,[b,j]=l(null),[I,S]=l(null);if(r&&(b=r,"hour"in r&&(I=r)),c&&!(p in c))throw new Error("Invalid granularity "+p+" for value "+c.toString());let O="gregory"===r?.calendar.identifier&&"BC"===r.era,T=t(()=>({granularity:p,timeZone:f,hideTimeZone:e.hideTimeZone,hourCycle:e.hourCycle,shouldForceLeadingZeros:e.shouldForceLeadingZeros,showEra:O}),[p,e.hourCycle,e.shouldForceLeadingZeros,f,e.hideTimeZone,O]),{minValue:Z,maxValue:k,isDateUnavailable:x}=e,F=t(()=>n(r,Z,k,x,T),[r,Z,k,x,T]),U=C({...e,value:r,builtinValidation:F}),w=U.displayValidation.isInvalid,B=e.validationState||(w?"invalid":null),E=(e,a)=>{d("timeZone"in a?a.set(P(e)):y(e,a)),j(null),S(null),U.commitValidation()};return{...U,value:r,defaultValue:e.defaultValue??m,setValue:d,dateValue:b,timeValue:I,setDateValue:l=>{let t="function"==typeof g?g():g;V?I||t?E(l,I||u(e.defaultValue||e.placeholderValue)):j(l):(d(l),U.commitValidation()),t&&a.setOpen(!1)},setTimeValue:e=>{b&&e?E(b,e):S(e)},granularity:p,hasTime:V,...a,setOpen(l){!l&&!r&&b&&V&&E(b,I||u(e.defaultValue||e.placeholderValue)),a.setOpen(l)},validationState:B,isInvalid:w,formatValue(e,a){if(!h)return"";let l=s(a,T);return new D(e,l).format(h)},getDateFormatter(e,a){let l={...T,...a},t=s({},l);return new D(e,t)}}}(j),S=r(null),O=c(j,I,S),T={...b.dateFieldProps,...O.fieldProps,granularity:"day",hideTimeZone:!0,label:b.label,description:b.description,errorMessage:b.errorMessage},Z={...O.buttonProps,isInvalid:I.isInvalid,styleVariant:I.isInvalid?"critical":I.isOpen?"accent":"neutral",onClick:()=>I.isOpen?I.close():I.open()},k={...b.calendarProps,...O.calendarProps};/* @__PURE__ */
2
+ return e("div",{className:d.datePicker,ref:S,children:/* @__PURE__ */a(g.Provider,{value:{isInDatePicker:!0},children:[
3
+ /* @__PURE__ */e(h,{...T,children:/* @__PURE__ */e(h.EndSlot,{children:/* @__PURE__ */e(m,{...Z,size:"sm",emphasis:"tertiary",iconProps:{iconName:"calendar-days",iconPrefix:"fas"}})})}),I.isOpen&&/* @__PURE__ */e(p,{state:I,triggerRef:S,placement:"bottom start",hasArrow:!1,shouldFlip:!0,children:/* @__PURE__ */e("div",{role:"dialog",className:d.datePicker__dialog,...O.dialogProps,children:/* @__PURE__ */e(f,{...k})})})]})})};export{b as DatePicker,b as default};
4
4
  //# sourceMappingURL=DatePicker.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"DatePicker.js","sources":["../../../src/components/DatePicker/DatePicker.tsx","../../../node_modules/@react-stately/datepicker/dist/useDatePickerState.mjs"],"sourcesContent":["import { useRef } from 'react';\nimport styles from './DatePicker.module.css';\nimport IconButton, { type IconButtonProps } from '../IconButton';\nimport { useDatePickerState } from 'react-stately';\nimport {\n DateValue,\n useDatePicker,\n type AriaDatePickerProps,\n} from '@react-aria/datepicker';\nimport Popover from '../Popover';\nimport Calendar from '../Calendar';\nimport { type CalendarProps } from '../_base/Calendar';\nimport DateField, { type DateFieldProps } from '../DateField';\nimport { parseDateValue } from '../../utils/date/date';\nimport { DatePickerContext } from './DatePickerContext';\n\ntype WithoutSharedProps<T> = Omit<T, keyof DatePickerProps>;\n\n/**\n * Keys from AriaDatePickerProps that are incompatible with our DatePickerProps\n * They only use 'DateValue' when we need to use 'string | DateValue'\n */\ntype DateValueKeys =\n | 'defaultValue'\n | 'value'\n | 'onChange'\n | 'minValue'\n | 'maxValue'\n | 'isDateUnavailable';\n\nexport interface DatePickerProps\n extends Omit<AriaDatePickerProps<DateValue>, DateValueKeys> {\n /**\n * Label for the date field\n */\n label?: DateFieldProps['label'];\n /**\n * Description for the date field shown below the label\n */\n description?: DateFieldProps['description'];\n /**\n * The default value of the date field.\n */\n defaultValue?: string | DateValue;\n /**\n * The controlled value of the date field.\n */\n value?: string | DateValue;\n /**\n * Function called when the date field value changes\n */\n onChange?: (value: string) => void;\n /**\n * The minimum value of the date field.\n */\n minValue?: string | DateValue;\n /**\n * The maximum value of the date field.\n */\n maxValue?: string | DateValue;\n /**\n * Callback function to mark cells as unavailable. Unavailable cells will have `aria-disabled=\"true\"`\n */\n isDateUnavailable?: (date: string) => boolean;\n /**\n * Whether the date picker is disabled\n */\n isDisabled?: boolean;\n /**\n * Whether the date picker is invalid\n */\n isInvalid?: boolean;\n /**\n * Whether the date field is required\n */\n isRequired?: boolean;\n /**\n * Message shown when the field is invalid\n */\n errorMessage?: DateFieldProps['errorMessage'];\n /**\n * Props passed to the date field component\n */\n dateFieldProps?: WithoutSharedProps<Omit<DateFieldProps, 'children'>>;\n /**\n * Props passed to the calendar component\n */\n calendarProps?: WithoutSharedProps<CalendarProps>;\n}\n\nexport const DatePicker = (props: DatePickerProps) => {\n // Change string props to DateValue for internal manipulation\n const parsedProps = {\n ...props,\n // date value\n defaultValue: parseDateValue(props?.defaultValue),\n value: parseDateValue(props?.value),\n onChange: (dateValue: DateValue) =>\n props?.onChange?.(dateValue.toDate('UTC').toISOString()),\n // config\n minValue: parseDateValue(props?.minValue),\n maxValue: parseDateValue(props?.maxValue),\n isDateUnavailable: (dateValue: DateValue) =>\n props?.isDateUnavailable\n ? props.isDateUnavailable(dateValue.toDate('UTC').toISOString())\n : false,\n } as AriaDatePickerProps<DateValue>;\n\n const state = useDatePickerState(parsedProps);\n const positioningRef = useRef(null);\n\n const datePickerProps = useDatePicker(parsedProps, state, positioningRef);\n\n const dateFieldProps = {\n ...props.dateFieldProps,\n ...datePickerProps.fieldProps,\n granularity: 'day',\n hideTimeZone: true,\n label: props.label,\n description: props.description,\n errorMessage: props.errorMessage,\n } as DateFieldProps;\n\n const iconButtonProps = {\n ...datePickerProps.buttonProps,\n isInvalid: state.isInvalid,\n styleVariant: (() => {\n if (state.isInvalid) return 'critical';\n return state.isOpen ? 'accent' : 'neutral';\n })(),\n onClick: () => (state.isOpen ? state.close() : state.open()),\n } as IconButtonProps;\n\n const calendarComponentProps = {\n ...props.calendarProps,\n ...datePickerProps.calendarProps,\n } as CalendarProps;\n\n return (\n <div className={styles.datePicker} ref={positioningRef}>\n <DatePickerContext.Provider value={{ isInDatePicker: true }}>\n <DateField {...dateFieldProps}>\n <DateField.EndSlot>\n <IconButton\n {...iconButtonProps}\n size=\"sm\"\n emphasis=\"tertiary\"\n iconProps={{ iconName: 'calendar-days', iconPrefix: 'fas' }}\n />\n </DateField.EndSlot>\n </DateField>\n {state.isOpen && (\n <Popover\n state={state}\n triggerRef={positioningRef}\n placement=\"bottom start\"\n hasArrow={false}\n shouldFlip\n >\n <div\n role=\"dialog\"\n className={styles['datePicker__dialog']}\n {...datePickerProps.dialogProps}\n >\n <Calendar {...calendarComponentProps} />\n </div>\n </Popover>\n )}\n </DatePickerContext.Provider>\n </div>\n );\n};\n\nexport default DatePicker;\n","import {getFormatOptions as $35a22f14a1f04b11$export$7e319ea407e63bc0, getPlaceholderTime as $35a22f14a1f04b11$export$c5221a78ef73c5e9, getValidationResult as $35a22f14a1f04b11$export$f18627323ab57ac0, useDefaultProps as $35a22f14a1f04b11$export$2440da353cedad43} from \"./utils.mjs\";\nimport {toCalendarDate as $goopS$toCalendarDate, toCalendarDateTime as $goopS$toCalendarDateTime, DateFormatter as $goopS$DateFormatter} from \"@internationalized/date\";\nimport {useFormValidationState as $goopS$useFormValidationState} from \"@react-stately/form\";\nimport {useOverlayTriggerState as $goopS$useOverlayTriggerState} from \"@react-stately/overlays\";\nimport {useControlledState as $goopS$useControlledState} from \"@react-stately/utils\";\nimport {useState as $goopS$useState, useMemo as $goopS$useMemo} from \"react\";\n\n/*\n * Copyright 2020 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */ \n\n\n\n\n\nfunction $ab5bf3f618090389$export$87194bb378cc3ac2(props) {\n let overlayState = (0, $goopS$useOverlayTriggerState)(props);\n let [value, setValue] = (0, $goopS$useControlledState)(props.value, props.defaultValue || null, props.onChange);\n let [initialValue] = (0, $goopS$useState)(value);\n let v = value || props.placeholderValue || null;\n let [granularity, defaultTimeZone] = (0, $35a22f14a1f04b11$export$2440da353cedad43)(v, props.granularity);\n let dateValue = value != null ? value.toDate(defaultTimeZone !== null && defaultTimeZone !== void 0 ? defaultTimeZone : 'UTC') : null;\n let hasTime = granularity === 'hour' || granularity === 'minute' || granularity === 'second';\n var _props_shouldCloseOnSelect;\n let shouldCloseOnSelect = (_props_shouldCloseOnSelect = props.shouldCloseOnSelect) !== null && _props_shouldCloseOnSelect !== void 0 ? _props_shouldCloseOnSelect : true;\n let [selectedDate, setSelectedDate] = (0, $goopS$useState)(null);\n let [selectedTime, setSelectedTime] = (0, $goopS$useState)(null);\n if (value) {\n selectedDate = value;\n if ('hour' in value) selectedTime = value;\n }\n // props.granularity must actually exist in the value if one is provided.\n if (v && !(granularity in v)) throw new Error('Invalid granularity ' + granularity + ' for value ' + v.toString());\n let showEra = (value === null || value === void 0 ? void 0 : value.calendar.identifier) === 'gregory' && value.era === 'BC';\n let formatOpts = (0, $goopS$useMemo)(()=>({\n granularity: granularity,\n timeZone: defaultTimeZone,\n hideTimeZone: props.hideTimeZone,\n hourCycle: props.hourCycle,\n shouldForceLeadingZeros: props.shouldForceLeadingZeros,\n showEra: showEra\n }), [\n granularity,\n props.hourCycle,\n props.shouldForceLeadingZeros,\n defaultTimeZone,\n props.hideTimeZone,\n showEra\n ]);\n let { minValue: minValue, maxValue: maxValue, isDateUnavailable: isDateUnavailable } = props;\n let builtinValidation = (0, $goopS$useMemo)(()=>(0, $35a22f14a1f04b11$export$f18627323ab57ac0)(value, minValue, maxValue, isDateUnavailable, formatOpts), [\n value,\n minValue,\n maxValue,\n isDateUnavailable,\n formatOpts\n ]);\n let validation = (0, $goopS$useFormValidationState)({\n ...props,\n value: value,\n builtinValidation: builtinValidation\n });\n let isValueInvalid = validation.displayValidation.isInvalid;\n let validationState = props.validationState || (isValueInvalid ? 'invalid' : null);\n let commitValue = (date, time)=>{\n setValue('timeZone' in time ? time.set((0, $goopS$toCalendarDate)(date)) : (0, $goopS$toCalendarDateTime)(date, time));\n setSelectedDate(null);\n setSelectedTime(null);\n validation.commitValidation();\n };\n // Intercept setValue to make sure the Time section is not changed by date selection in Calendar\n let selectDate = (newValue)=>{\n let shouldClose = typeof shouldCloseOnSelect === 'function' ? shouldCloseOnSelect() : shouldCloseOnSelect;\n if (hasTime) {\n if (selectedTime || shouldClose) commitValue(newValue, selectedTime || (0, $35a22f14a1f04b11$export$c5221a78ef73c5e9)(props.defaultValue || props.placeholderValue));\n else setSelectedDate(newValue);\n } else {\n setValue(newValue);\n validation.commitValidation();\n }\n if (shouldClose) overlayState.setOpen(false);\n };\n let selectTime = (newValue)=>{\n if (selectedDate && newValue) commitValue(selectedDate, newValue);\n else setSelectedTime(newValue);\n };\n var _props_defaultValue;\n return {\n ...validation,\n value: value,\n defaultValue: (_props_defaultValue = props.defaultValue) !== null && _props_defaultValue !== void 0 ? _props_defaultValue : initialValue,\n setValue: setValue,\n dateValue: selectedDate,\n timeValue: selectedTime,\n setDateValue: selectDate,\n setTimeValue: selectTime,\n granularity: granularity,\n hasTime: hasTime,\n ...overlayState,\n setOpen (isOpen) {\n // Commit the selected date when the calendar is closed. Use a placeholder time if one wasn't set.\n // If only the time was set and not the date, don't commit. The state will be preserved until\n // the user opens the popover again.\n if (!isOpen && !value && selectedDate && hasTime) commitValue(selectedDate, selectedTime || (0, $35a22f14a1f04b11$export$c5221a78ef73c5e9)(props.defaultValue || props.placeholderValue));\n overlayState.setOpen(isOpen);\n },\n validationState: validationState,\n isInvalid: isValueInvalid,\n formatValue (locale, fieldOptions) {\n if (!dateValue) return '';\n let formatOptions = (0, $35a22f14a1f04b11$export$7e319ea407e63bc0)(fieldOptions, formatOpts);\n let formatter = new (0, $goopS$DateFormatter)(locale, formatOptions);\n return formatter.format(dateValue);\n },\n getDateFormatter (locale, formatOptions) {\n let newOptions = {\n ...formatOpts,\n ...formatOptions\n };\n let newFormatOptions = (0, $35a22f14a1f04b11$export$7e319ea407e63bc0)({}, newOptions);\n return new (0, $goopS$DateFormatter)(locale, newFormatOptions);\n }\n };\n}\n\n\nexport {$ab5bf3f618090389$export$87194bb378cc3ac2 as useDatePickerState};\n//# sourceMappingURL=useDatePickerState.module.js.map\n"],"names":["DatePicker","props","parsedProps","defaultValue","parseDateValue","value","onChange","dateValue","toDate","toISOString","minValue","maxValue","isDateUnavailable","state","overlayState","$goopS$useOverlayTriggerState","setValue","$goopS$useControlledState","initialValue","$goopS$useState","v","placeholderValue","granularity","defaultTimeZone","$35a22f14a1f04b11$export$2440da353cedad43","hasTime","_props_shouldCloseOnSelect","shouldCloseOnSelect","selectedDate","setSelectedDate","selectedTime","setSelectedTime","Error","toString","showEra","calendar","identifier","era","formatOpts","$goopS$useMemo","timeZone","hideTimeZone","hourCycle","shouldForceLeadingZeros","builtinValidation","$35a22f14a1f04b11$export$f18627323ab57ac0","validation","$goopS$useFormValidationState","isValueInvalid","displayValidation","isInvalid","validationState","commitValue","date","time","set","$goopS$toCalendarDate","$goopS$toCalendarDateTime","commitValidation","_props_defaultValue","timeValue","setDateValue","newValue","shouldClose","$35a22f14a1f04b11$export$c5221a78ef73c5e9","setOpen","setTimeValue","isOpen","formatValue","locale","fieldOptions","formatOptions","$35a22f14a1f04b11$export$7e319ea407e63bc0","$goopS$DateFormatter","format","getDateFormatter","newOptions","newFormatOptions","useDatePickerState","positioningRef","useRef","datePickerProps","useDatePicker","dateFieldProps","fieldProps","label","description","errorMessage","iconButtonProps","buttonProps","styleVariant","onClick","close","open","calendarComponentProps","calendarProps","className","styles","datePicker","ref","children","jsxs","DatePickerContext","Provider","isInDatePicker","jsx","DateField","EndSlot","IconButton","size","emphasis","iconProps","iconName","iconPrefix","Popover","triggerRef","placement","hasArrow","shouldFlip","role","dialogProps","Calendar"],"mappings":"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","x_google_ignoreList":[1]}
1
+ {"version":3,"file":"DatePicker.js","sources":["../../../src/components/DatePicker/DatePicker.tsx","../../../node_modules/react-stately/node_modules/react-stately/dist/private/datepicker/useDatePickerState.mjs"],"sourcesContent":["import { useRef } from 'react';\nimport styles from './DatePicker.module.css';\nimport IconButton, { type IconButtonProps } from '../IconButton';\nimport { useDatePickerState } from 'react-stately';\nimport {\n DateValue,\n useDatePicker,\n type AriaDatePickerProps,\n} from '@react-aria/datepicker';\nimport Popover from '../Popover';\nimport Calendar from '../Calendar';\nimport { type CalendarProps } from '../_base/Calendar';\nimport DateField, { type DateFieldProps } from '../DateField';\nimport { parseDateValue } from '../../utils/date/date';\nimport { DatePickerContext } from './DatePickerContext';\n\ntype WithoutSharedProps<T> = Omit<T, keyof DatePickerProps>;\n\n/**\n * Keys from AriaDatePickerProps that are incompatible with our DatePickerProps\n * They only use 'DateValue' when we need to use 'string | DateValue'\n */\ntype DateValueKeys =\n | 'defaultValue'\n | 'value'\n | 'onChange'\n | 'minValue'\n | 'maxValue'\n | 'isDateUnavailable';\n\nexport interface DatePickerProps\n extends Omit<AriaDatePickerProps<DateValue>, DateValueKeys> {\n /**\n * Label for the date field\n */\n label?: DateFieldProps['label'];\n /**\n * Description for the date field shown below the label\n */\n description?: DateFieldProps['description'];\n /**\n * The default value of the date field.\n */\n defaultValue?: string | DateValue;\n /**\n * The controlled value of the date field.\n */\n value?: string | DateValue;\n /**\n * Function called when the date field value changes\n */\n onChange?: (value: string) => void;\n /**\n * The minimum value of the date field.\n */\n minValue?: string | DateValue;\n /**\n * The maximum value of the date field.\n */\n maxValue?: string | DateValue;\n /**\n * Callback function to mark cells as unavailable. Unavailable cells will have `aria-disabled=\"true\"`\n */\n isDateUnavailable?: (date: string) => boolean;\n /**\n * Whether the date picker is disabled\n */\n isDisabled?: boolean;\n /**\n * Whether the date picker is invalid\n */\n isInvalid?: boolean;\n /**\n * Whether the date field is required\n */\n isRequired?: boolean;\n /**\n * Message shown when the field is invalid\n */\n errorMessage?: DateFieldProps['errorMessage'];\n /**\n * Props passed to the date field component\n */\n dateFieldProps?: WithoutSharedProps<Omit<DateFieldProps, 'children'>>;\n /**\n * Props passed to the calendar component\n */\n calendarProps?: WithoutSharedProps<CalendarProps>;\n}\n\nexport const DatePicker = (props: DatePickerProps) => {\n // Change string props to DateValue for internal manipulation\n const parsedProps = {\n ...props,\n // date value\n defaultValue: parseDateValue(props?.defaultValue),\n value: parseDateValue(props?.value),\n onChange: (dateValue: DateValue) =>\n props?.onChange?.(dateValue.toDate('UTC').toISOString()),\n // config\n minValue: parseDateValue(props?.minValue),\n maxValue: parseDateValue(props?.maxValue),\n isDateUnavailable: (dateValue: DateValue) =>\n props?.isDateUnavailable\n ? props.isDateUnavailable(dateValue.toDate('UTC').toISOString())\n : false,\n } as AriaDatePickerProps<DateValue>;\n\n const state = useDatePickerState(parsedProps);\n const positioningRef = useRef(null);\n\n const datePickerProps = useDatePicker(parsedProps, state, positioningRef);\n\n const dateFieldProps = {\n ...props.dateFieldProps,\n ...datePickerProps.fieldProps,\n granularity: 'day',\n hideTimeZone: true,\n label: props.label,\n description: props.description,\n errorMessage: props.errorMessage,\n } as DateFieldProps;\n\n const iconButtonProps = {\n ...datePickerProps.buttonProps,\n isInvalid: state.isInvalid,\n styleVariant: (() => {\n if (state.isInvalid) return 'critical';\n return state.isOpen ? 'accent' : 'neutral';\n })(),\n onClick: () => (state.isOpen ? state.close() : state.open()),\n } as IconButtonProps;\n\n const calendarComponentProps = {\n ...props.calendarProps,\n ...datePickerProps.calendarProps,\n } as CalendarProps;\n\n return (\n <div className={styles.datePicker} ref={positioningRef}>\n <DatePickerContext.Provider value={{ isInDatePicker: true }}>\n <DateField {...dateFieldProps}>\n <DateField.EndSlot>\n <IconButton\n {...iconButtonProps}\n size=\"sm\"\n emphasis=\"tertiary\"\n iconProps={{ iconName: 'calendar-days', iconPrefix: 'fas' }}\n />\n </DateField.EndSlot>\n </DateField>\n {state.isOpen && (\n <Popover\n state={state}\n triggerRef={positioningRef}\n placement=\"bottom start\"\n hasArrow={false}\n shouldFlip\n >\n <div\n role=\"dialog\"\n className={styles['datePicker__dialog']}\n {...datePickerProps.dialogProps}\n >\n <Calendar {...calendarComponentProps} />\n </div>\n </Popover>\n )}\n </DatePickerContext.Provider>\n </div>\n );\n};\n\nexport default DatePicker;\n","import {getFormatOptions as $8b141f2f71e88f85$export$7e319ea407e63bc0, getPlaceholderTime as $8b141f2f71e88f85$export$c5221a78ef73c5e9, getValidationResult as $8b141f2f71e88f85$export$f18627323ab57ac0, useDefaultProps as $8b141f2f71e88f85$export$2440da353cedad43} from \"./utils.mjs\";\nimport {useFormValidationState as $fd2148440a13ec26$export$fc1a364ae1f3ff10} from \"../form/useFormValidationState.mjs\";\nimport {useOverlayTriggerState as $f11fb0bcf1b2687a$export$61c6a8c84e605fb6} from \"../overlays/useOverlayTriggerState.mjs\";\nimport {useControlledState as $3e6197669829fe11$export$40bfa8c7b0832715} from \"../utils/useControlledState.mjs\";\nimport {toCalendarDate as $gC1o7$toCalendarDate, toCalendarDateTime as $gC1o7$toCalendarDateTime, DateFormatter as $gC1o7$DateFormatter} from \"@internationalized/date\";\nimport {useState as $gC1o7$useState, useMemo as $gC1o7$useMemo} from \"react\";\n\n/*\n * Copyright 2020 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */ \n\n\n\n\n\nfunction $28aae683a942e141$export$87194bb378cc3ac2(props) {\n let overlayState = (0, $f11fb0bcf1b2687a$export$61c6a8c84e605fb6)(props);\n let [value, setValue] = (0, $3e6197669829fe11$export$40bfa8c7b0832715)(props.value, props.defaultValue || null, props.onChange);\n let [initialValue] = (0, $gC1o7$useState)(value);\n let v = value || props.placeholderValue || null;\n let [granularity, defaultTimeZone] = (0, $8b141f2f71e88f85$export$2440da353cedad43)(v, props.granularity);\n let dateValue = value != null ? value.toDate(defaultTimeZone ?? 'UTC') : null;\n let hasTime = granularity === 'hour' || granularity === 'minute' || granularity === 'second';\n let shouldCloseOnSelect = props.shouldCloseOnSelect ?? true;\n let [selectedDate, setSelectedDate] = (0, $gC1o7$useState)(null);\n let [selectedTime, setSelectedTime] = (0, $gC1o7$useState)(null);\n if (value) {\n selectedDate = value;\n if ('hour' in value) selectedTime = value;\n }\n // props.granularity must actually exist in the value if one is provided.\n if (v && !(granularity in v)) throw new Error('Invalid granularity ' + granularity + ' for value ' + v.toString());\n let showEra = value?.calendar.identifier === 'gregory' && value.era === 'BC';\n let formatOpts = (0, $gC1o7$useMemo)(()=>({\n granularity: granularity,\n timeZone: defaultTimeZone,\n hideTimeZone: props.hideTimeZone,\n hourCycle: props.hourCycle,\n shouldForceLeadingZeros: props.shouldForceLeadingZeros,\n showEra: showEra\n }), [\n granularity,\n props.hourCycle,\n props.shouldForceLeadingZeros,\n defaultTimeZone,\n props.hideTimeZone,\n showEra\n ]);\n let { minValue: minValue, maxValue: maxValue, isDateUnavailable: isDateUnavailable } = props;\n let builtinValidation = (0, $gC1o7$useMemo)(()=>(0, $8b141f2f71e88f85$export$f18627323ab57ac0)(value, minValue, maxValue, isDateUnavailable, formatOpts), [\n value,\n minValue,\n maxValue,\n isDateUnavailable,\n formatOpts\n ]);\n let validation = (0, $fd2148440a13ec26$export$fc1a364ae1f3ff10)({\n ...props,\n value: value,\n builtinValidation: builtinValidation\n });\n let isValueInvalid = validation.displayValidation.isInvalid;\n let validationState = props.validationState || (isValueInvalid ? 'invalid' : null);\n let commitValue = (date, time)=>{\n setValue('timeZone' in time ? time.set((0, $gC1o7$toCalendarDate)(date)) : (0, $gC1o7$toCalendarDateTime)(date, time));\n setSelectedDate(null);\n setSelectedTime(null);\n validation.commitValidation();\n };\n // Intercept setValue to make sure the Time section is not changed by date selection in Calendar\n let selectDate = (newValue)=>{\n let shouldClose = typeof shouldCloseOnSelect === 'function' ? shouldCloseOnSelect() : shouldCloseOnSelect;\n if (hasTime) {\n if (selectedTime || shouldClose) commitValue(newValue, selectedTime || (0, $8b141f2f71e88f85$export$c5221a78ef73c5e9)(props.defaultValue || props.placeholderValue));\n else setSelectedDate(newValue);\n } else {\n setValue(newValue);\n validation.commitValidation();\n }\n if (shouldClose) overlayState.setOpen(false);\n };\n let selectTime = (newValue)=>{\n if (selectedDate && newValue) commitValue(selectedDate, newValue);\n else setSelectedTime(newValue);\n };\n return {\n ...validation,\n value: value,\n defaultValue: props.defaultValue ?? initialValue,\n setValue: setValue,\n dateValue: selectedDate,\n timeValue: selectedTime,\n setDateValue: selectDate,\n setTimeValue: selectTime,\n granularity: granularity,\n hasTime: hasTime,\n ...overlayState,\n setOpen (isOpen) {\n // Commit the selected date when the calendar is closed. Use a placeholder time if one wasn't set.\n // If only the time was set and not the date, don't commit. The state will be preserved until\n // the user opens the popover again.\n if (!isOpen && !value && selectedDate && hasTime) commitValue(selectedDate, selectedTime || (0, $8b141f2f71e88f85$export$c5221a78ef73c5e9)(props.defaultValue || props.placeholderValue));\n overlayState.setOpen(isOpen);\n },\n validationState: validationState,\n isInvalid: isValueInvalid,\n formatValue (locale, fieldOptions) {\n if (!dateValue) return '';\n let formatOptions = (0, $8b141f2f71e88f85$export$7e319ea407e63bc0)(fieldOptions, formatOpts);\n let formatter = new (0, $gC1o7$DateFormatter)(locale, formatOptions);\n return formatter.format(dateValue);\n },\n getDateFormatter (locale, formatOptions) {\n let newOptions = {\n ...formatOpts,\n ...formatOptions\n };\n let newFormatOptions = (0, $8b141f2f71e88f85$export$7e319ea407e63bc0)({}, newOptions);\n return new (0, $gC1o7$DateFormatter)(locale, newFormatOptions);\n }\n };\n}\n\n\nexport {$28aae683a942e141$export$87194bb378cc3ac2 as useDatePickerState};\n//# sourceMappingURL=useDatePickerState.mjs.map\n"],"names":["DatePicker","props","parsedProps","defaultValue","parseDateValue","value","onChange","dateValue","toDate","toISOString","minValue","maxValue","isDateUnavailable","state","overlayState","$f11fb0bcf1b2687a$export$61c6a8c84e605fb6","setValue","$3e6197669829fe11$export$40bfa8c7b0832715","initialValue","$gC1o7$useState","v","placeholderValue","granularity","defaultTimeZone","$8b141f2f71e88f85$export$2440da353cedad43","hasTime","shouldCloseOnSelect","selectedDate","setSelectedDate","selectedTime","setSelectedTime","Error","toString","showEra","calendar","identifier","era","formatOpts","$gC1o7$useMemo","timeZone","hideTimeZone","hourCycle","shouldForceLeadingZeros","builtinValidation","$8b141f2f71e88f85$export$f18627323ab57ac0","validation","$fd2148440a13ec26$export$fc1a364ae1f3ff10","isValueInvalid","displayValidation","isInvalid","validationState","commitValue","date","time","set","$gC1o7$toCalendarDate","$gC1o7$toCalendarDateTime","commitValidation","timeValue","setDateValue","newValue","shouldClose","$8b141f2f71e88f85$export$c5221a78ef73c5e9","setOpen","setTimeValue","isOpen","formatValue","locale","fieldOptions","formatOptions","$8b141f2f71e88f85$export$7e319ea407e63bc0","$gC1o7$DateFormatter","format","getDateFormatter","newOptions","newFormatOptions","useDatePickerState","positioningRef","useRef","datePickerProps","useDatePicker","dateFieldProps","fieldProps","label","description","errorMessage","iconButtonProps","buttonProps","styleVariant","onClick","close","open","calendarComponentProps","calendarProps","className","styles","datePicker","ref","children","jsxs","DatePickerContext","Provider","isInDatePicker","jsx","DateField","EndSlot","IconButton","size","emphasis","iconProps","iconName","iconPrefix","Popover","triggerRef","placement","hasArrow","shouldFlip","role","dialogProps","Calendar"],"mappings":"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","x_google_ignoreList":[1]}