@danske/sapphire-react-lab 0.89.0 → 0.90.2

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 (141) hide show
  1. package/build/cjs/index.js +296 -3054
  2. package/build/cjs/index.js.map +1 -1
  3. package/build/esm/Accordion/index.js.map +1 -1
  4. package/build/esm/Accordion/src/Accordion.js +2 -2
  5. package/build/esm/Accordion/src/Accordion.js.map +1 -1
  6. package/build/esm/Accordion/src/AccordionHeading.js +1 -1
  7. package/build/esm/Accordion/src/AccordionHeading.js.map +1 -1
  8. package/build/esm/Accordion/src/AccordionItem.js.map +1 -1
  9. package/build/esm/FileDropzone/src/FileDropzone.js +3 -4
  10. package/build/esm/FileDropzone/src/FileDropzone.js.map +1 -1
  11. package/build/esm/Filtering/src/FilterDropdown.js +9 -8
  12. package/build/esm/Filtering/src/FilterDropdown.js.map +1 -1
  13. package/build/esm/LabeledValue/src/LabeledValue.js +2 -2
  14. package/build/esm/LabeledValue/src/LabeledValue.js.map +1 -1
  15. package/build/esm/NumberField/src/NumberField.js +11 -11
  16. package/build/esm/NumberField/src/NumberField.js.map +1 -1
  17. package/build/esm/NumberField/src/StepperButton.js +1 -1
  18. package/build/esm/NumberField/src/StepperButton.js.map +1 -1
  19. package/build/esm/TagGroup/src/Tag.js +2 -2
  20. package/build/esm/TagGroup/src/Tag.js.map +1 -1
  21. package/build/esm/TagGroup/src/TagGroup.js.map +1 -1
  22. package/build/esm/index.js +0 -17
  23. package/build/esm/index.js.map +1 -1
  24. package/build/index.d.ts +28 -756
  25. package/package.json +5 -13
  26. package/build/esm/AlertDialog/src/AlertDialog.js +0 -75
  27. package/build/esm/AlertDialog/src/AlertDialog.js.map +0 -1
  28. package/build/esm/Avatar/src/Avatar.js +0 -76
  29. package/build/esm/Avatar/src/Avatar.js.map +0 -1
  30. package/build/esm/Calendar/i18n/da-DK.js +0 -9
  31. package/build/esm/Calendar/i18n/da-DK.js.map +0 -1
  32. package/build/esm/Calendar/i18n/de-DE.js +0 -9
  33. package/build/esm/Calendar/i18n/de-DE.js.map +0 -1
  34. package/build/esm/Calendar/i18n/en-US.js +0 -9
  35. package/build/esm/Calendar/i18n/en-US.js.map +0 -1
  36. package/build/esm/Calendar/i18n/fi-FI.js +0 -9
  37. package/build/esm/Calendar/i18n/fi-FI.js.map +0 -1
  38. package/build/esm/Calendar/i18n/index.js +0 -20
  39. package/build/esm/Calendar/i18n/index.js.map +0 -1
  40. package/build/esm/Calendar/i18n/nb-NO.js +0 -9
  41. package/build/esm/Calendar/i18n/nb-NO.js.map +0 -1
  42. package/build/esm/Calendar/i18n/pl-PL.js +0 -9
  43. package/build/esm/Calendar/i18n/pl-PL.js.map +0 -1
  44. package/build/esm/Calendar/i18n/sv-SE.js +0 -9
  45. package/build/esm/Calendar/i18n/sv-SE.js.map +0 -1
  46. package/build/esm/Calendar/src/Calendar.js +0 -121
  47. package/build/esm/Calendar/src/Calendar.js.map +0 -1
  48. package/build/esm/Calendar/src/CalendarButtons.js +0 -96
  49. package/build/esm/Calendar/src/CalendarButtons.js.map +0 -1
  50. package/build/esm/Calendar/src/CalendarDaysGrid.js +0 -169
  51. package/build/esm/Calendar/src/CalendarDaysGrid.js.map +0 -1
  52. package/build/esm/Calendar/src/CalendarHeader.js +0 -58
  53. package/build/esm/Calendar/src/CalendarHeader.js.map +0 -1
  54. package/build/esm/Calendar/src/CalendarMonthOrYearCell.js +0 -79
  55. package/build/esm/Calendar/src/CalendarMonthOrYearCell.js.map +0 -1
  56. package/build/esm/Calendar/src/CalendarMonthsGrid.js +0 -58
  57. package/build/esm/Calendar/src/CalendarMonthsGrid.js.map +0 -1
  58. package/build/esm/Calendar/src/CalendarPageAnimation.js +0 -67
  59. package/build/esm/Calendar/src/CalendarPageAnimation.js.map +0 -1
  60. package/build/esm/Calendar/src/CalendarYearsGrid.js +0 -52
  61. package/build/esm/Calendar/src/CalendarYearsGrid.js.map +0 -1
  62. package/build/esm/Calendar/src/RangeCalendar.js +0 -119
  63. package/build/esm/Calendar/src/RangeCalendar.js.map +0 -1
  64. package/build/esm/Calendar/src/useCustomDurationCalendarGrid.js +0 -57
  65. package/build/esm/Calendar/src/useCustomDurationCalendarGrid.js.map +0 -1
  66. package/build/esm/Calendar/src/useRangeCalendarState.js +0 -57
  67. package/build/esm/Calendar/src/useRangeCalendarState.js.map +0 -1
  68. package/build/esm/Calendar/src/useSapphireCalendarState.js +0 -86
  69. package/build/esm/Calendar/src/useSapphireCalendarState.js.map +0 -1
  70. package/build/esm/Calendar/src/utils.js +0 -12
  71. package/build/esm/Calendar/src/utils.js.map +0 -1
  72. package/build/esm/DateField/i18n/da-DK.js +0 -7
  73. package/build/esm/DateField/i18n/da-DK.js.map +0 -1
  74. package/build/esm/DateField/i18n/de-DE.js +0 -7
  75. package/build/esm/DateField/i18n/de-DE.js.map +0 -1
  76. package/build/esm/DateField/i18n/en-US.js +0 -7
  77. package/build/esm/DateField/i18n/en-US.js.map +0 -1
  78. package/build/esm/DateField/i18n/fi-FI.js +0 -7
  79. package/build/esm/DateField/i18n/fi-FI.js.map +0 -1
  80. package/build/esm/DateField/i18n/index.js +0 -20
  81. package/build/esm/DateField/i18n/index.js.map +0 -1
  82. package/build/esm/DateField/i18n/nb-NO.js +0 -7
  83. package/build/esm/DateField/i18n/nb-NO.js.map +0 -1
  84. package/build/esm/DateField/i18n/pl-PL.js +0 -7
  85. package/build/esm/DateField/i18n/pl-PL.js.map +0 -1
  86. package/build/esm/DateField/i18n/sv-SE.js +0 -7
  87. package/build/esm/DateField/i18n/sv-SE.js.map +0 -1
  88. package/build/esm/DateField/src/DateField.js +0 -129
  89. package/build/esm/DateField/src/DateField.js.map +0 -1
  90. package/build/esm/DateField/src/DateFieldButton.js +0 -44
  91. package/build/esm/DateField/src/DateFieldButton.js.map +0 -1
  92. package/build/esm/DateField/src/DateInput.js +0 -81
  93. package/build/esm/DateField/src/DateInput.js.map +0 -1
  94. package/build/esm/DateField/src/DateRangeField.js +0 -154
  95. package/build/esm/DateField/src/DateRangeField.js.map +0 -1
  96. package/build/esm/DateField/src/DateRangeInput.js +0 -90
  97. package/build/esm/DateField/src/DateRangeInput.js.map +0 -1
  98. package/build/esm/DateField/src/DateSegment.js +0 -52
  99. package/build/esm/DateField/src/DateSegment.js.map +0 -1
  100. package/build/esm/DateField/src/helpers.js +0 -14
  101. package/build/esm/DateField/src/helpers.js.map +0 -1
  102. package/build/esm/DateField/src/useDateRangePickerState.js +0 -57
  103. package/build/esm/DateField/src/useDateRangePickerState.js.map +0 -1
  104. package/build/esm/DateField/src/utils/placeholders.js +0 -91
  105. package/build/esm/DateField/src/utils/placeholders.js.map +0 -1
  106. package/build/esm/DateField/src/utils/segments.js +0 -46
  107. package/build/esm/DateField/src/utils/segments.js.map +0 -1
  108. package/build/esm/FeedbackMessage/src/FeedbackMessage.js +0 -87
  109. package/build/esm/FeedbackMessage/src/FeedbackMessage.js.map +0 -1
  110. package/build/esm/Fieldset/src/Fieldset.js +0 -81
  111. package/build/esm/Fieldset/src/Fieldset.js.map +0 -1
  112. package/build/esm/NotificationBadge/src/NotificationBadge.js +0 -74
  113. package/build/esm/NotificationBadge/src/NotificationBadge.js.map +0 -1
  114. package/build/esm/SearchField/src/SearchField.js +0 -130
  115. package/build/esm/SearchField/src/SearchField.js.map +0 -1
  116. package/build/esm/SearchField/src/useComboBoxState.js +0 -42
  117. package/build/esm/SearchField/src/useComboBoxState.js.map +0 -1
  118. package/build/esm/Toast/src/Toast.js +0 -77
  119. package/build/esm/Toast/src/Toast.js.map +0 -1
  120. package/build/esm/Toast/src/ToastCloseButton.js +0 -50
  121. package/build/esm/Toast/src/ToastCloseButton.js.map +0 -1
  122. package/build/esm/Toast/src/ToastProvider.js +0 -60
  123. package/build/esm/Toast/src/ToastProvider.js.map +0 -1
  124. package/build/esm/Toast/src/ToastRegion.js +0 -66
  125. package/build/esm/Toast/src/ToastRegion.js.map +0 -1
  126. package/build/esm/Toast/src/context.js +0 -10
  127. package/build/esm/Toast/src/context.js.map +0 -1
  128. package/build/esm/Toast/src/useShowToast.js +0 -25
  129. package/build/esm/Toast/src/useShowToast.js.map +0 -1
  130. package/build/esm/ToggleButton/src/ToggleButton.js +0 -85
  131. package/build/esm/ToggleButton/src/ToggleButton.js.map +0 -1
  132. package/build/esm/Typography/index.js +0 -14
  133. package/build/esm/Typography/index.js.map +0 -1
  134. package/build/esm/Typography/src/Body.js +0 -66
  135. package/build/esm/Typography/src/Body.js.map +0 -1
  136. package/build/esm/Typography/src/Caption.js +0 -59
  137. package/build/esm/Typography/src/Caption.js.map +0 -1
  138. package/build/esm/Typography/src/Heading.js +0 -53
  139. package/build/esm/Typography/src/Heading.js.map +0 -1
  140. package/build/esm/Typography/src/Subheading.js +0 -63
  141. package/build/esm/Typography/src/Subheading.js.map +0 -1
@@ -1 +0,0 @@
1
- {"version":3,"file":"DateField.js","sources":["../../../../src/DateField/src/DateField.tsx"],"sourcesContent":["import React, {\n ForwardedRef,\n forwardRef,\n ReactNode,\n RefObject,\n useRef,\n} from 'react';\nimport { Validation } from '@react-types/shared';\nimport {\n AriaDatePickerProps,\n DateValue,\n useDatePicker,\n} from '@react-aria/datepicker';\nimport { useDatePickerState } from '@react-stately/datepicker';\nimport {\n SapphireStyleProps,\n useSapphireStyleProps,\n useThemeCheck,\n Icon,\n Popover,\n tokens,\n View,\n Field,\n Label,\n} from '@danske/sapphire-react';\nimport clsx from 'clsx';\nimport styles from '@danske/sapphire-css/components/dateField/dateField.module.css';\nimport { Calendar as CalendarIcon } from '@danske/sapphire-icons/react';\nimport { DateInput } from './DateInput';\nimport { Calendar } from '../../Calendar';\nimport { DateFieldButton } from './DateFieldButton';\nimport { PressResponder } from '@react-aria/interactions';\nimport { useDialog } from '@react-aria/dialog';\n\nexport type DateFieldProps<T extends DateValue> = Omit<\n AriaDatePickerProps<T>,\n | keyof Omit<Validation<unknown>, 'isRequired'>\n | 'errorMessage'\n | 'description'\n // excluding some props about time input. We don't support that yet.\n | 'granularity'\n | 'hourCycle'\n | 'hideTimeZone'\n> &\n SapphireStyleProps & {\n /**\n * Whether week numbers are visible as a first column\n */\n showWeekNumbers?: boolean;\n /**\n * Whether the input should render as having an error and an error message.\n * This also sets the appropriate `aria` attributes on the input.\n *\n * A `boolean` sets the error state.\n * A `string` sets the error state with an additional error message.\n \n * **An error message is strongly recommended because an error should\n * always have an explanation about how to fix it.**\n */\n error?: boolean | string;\n /**\n * A note to show below the input.\n * If the input has an error message, this note will be replaced by that.\n */\n note?: ReactNode;\n /**\n * A ContextualHelp to render next to the label.\n */\n contextualHelp?: ReactNode;\n /**\n * If it should hide the \"clear\" button when input is not empty.\n *\n * @default false\n */\n noClearButton?: boolean;\n /**\n * @default 'large'\n */\n size?: 'large' | 'medium';\n /**\n * To visually indicate if this field is required or optional.\n * @default false\n */\n necessityIndicator?: boolean;\n /**\n * Places the label either above (default) or on the side of the control.\n * @default 'above'\n */\n labelPlacement?: 'side' | 'above';\n };\n\nfunction _DateField<T extends DateValue>(\n {\n error,\n note,\n contextualHelp,\n noClearButton = false,\n showWeekNumbers,\n size = 'large',\n labelPlacement = 'above',\n necessityIndicator = false,\n ...otherProps\n }: DateFieldProps<T>,\n ref: ForwardedRef<HTMLDivElement>\n) {\n useThemeCheck();\n\n const groupRef = useRef(null);\n const dialogRef = useRef(null);\n\n const { styleProps } = useSapphireStyleProps(otherProps);\n\n const { dialogProps } = useDialog({}, dialogRef);\n\n const state = useDatePickerState({\n ...otherProps,\n ...(error ? { validationState: 'invalid' } : {}),\n });\n\n const {\n groupProps,\n labelProps,\n fieldProps,\n buttonProps,\n dialogProps: dialogPropsFromDatePicker,\n calendarProps,\n descriptionProps,\n errorMessageProps,\n } = useDatePicker(\n {\n ...otherProps,\n description: note,\n },\n state,\n groupRef\n );\n\n const isMedium = size === 'medium';\n\n return (\n <Field\n {...otherProps}\n noShrink\n isDisabled={otherProps.isDisabled}\n error={state.validationState === 'invalid'}\n size={size}\n ref={ref}\n labelPlacement={labelPlacement}\n >\n {otherProps.label && (\n <Field.Label>\n <Label\n {...labelProps}\n size={size}\n necessityIndicator={\n otherProps.isRequired && necessityIndicator\n ? 'required'\n : !otherProps.isRequired && necessityIndicator\n ? 'optional'\n : undefined\n }\n contextualHelp={contextualHelp}\n >\n {otherProps.label}\n </Label>\n </Field.Label>\n )}\n <Field.Control>\n <div\n {...groupProps}\n ref={groupRef}\n className={clsx(styles['sapphire-date-field'], {\n [styles['sapphire-date-field--error']]:\n state.validationState === 'invalid',\n [styles['sapphire-date-field--medium']]: isMedium,\n })}\n {...(styleProps.style.width\n ? { style: { width: styleProps.style.width } }\n : {})}\n >\n <PressResponder {...buttonProps} isPressed={state.isOpen}>\n <DateFieldButton\n isDisabled={otherProps.isDisabled || otherProps.isReadOnly}\n >\n <Icon size={isMedium ? 'm' : 'l'}>\n <CalendarIcon />\n </Icon>\n </DateFieldButton>\n </PressResponder>\n <DateInput\n {...fieldProps}\n noClearButton={noClearButton}\n size={size}\n />\n </div>\n </Field.Control>\n {((typeof error === 'string' && error !== '') || note) && (\n <Field.Footer>\n {error ? (\n <Field.Note {...errorMessageProps}>{error}</Field.Note>\n ) : note ? (\n <Field.Note {...descriptionProps}>{note}</Field.Note>\n ) : (\n <></>\n )}\n </Field.Footer>\n )}\n {state.isOpen && (\n <Popover state={state} triggerRef={groupRef} placement=\"bottom start\">\n <div ref={dialogRef} {...dialogProps} {...dialogPropsFromDatePicker}>\n <View padding={tokens.size.spacing50}>\n <Calendar\n {...calendarProps}\n defaultFocusedValue={state.dateValue}\n showWeekNumbers={showWeekNumbers}\n />\n </View>\n </div>\n </Popover>\n )}\n </Field>\n );\n}\n\n/**\n * A date field allows users to enter or edit date values using the keyboard\n * and/or mouse.\n */\nexport const DateField = forwardRef(_DateField) as <T extends DateValue>(\n props: DateFieldProps<T> & { ref?: RefObject<HTMLDivElement> }\n) => React.ReactElement;\n"],"names":["CalendarIcon","Calendar"],"mappings":"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"}
@@ -1,44 +0,0 @@
1
- import React, { useRef } from 'react';
2
- import { useHover } from '@react-aria/interactions';
3
- import { mergeProps } from '@react-aria/utils';
4
- import clsx from 'clsx';
5
- import styles from '@danske/sapphire-css/components/dateField/dateField.module.css';
6
- import { useFocusRing } from '@react-aria/focus';
7
- import { useButton } from '@danske/sapphire-react';
8
-
9
- var __defProp = Object.defineProperty;
10
- var __defProps = Object.defineProperties;
11
- var __getOwnPropDescs = Object.getOwnPropertyDescriptors;
12
- var __getOwnPropSymbols = Object.getOwnPropertySymbols;
13
- var __hasOwnProp = Object.prototype.hasOwnProperty;
14
- var __propIsEnum = Object.prototype.propertyIsEnumerable;
15
- var __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
16
- var __spreadValues = (a, b) => {
17
- for (var prop in b || (b = {}))
18
- if (__hasOwnProp.call(b, prop))
19
- __defNormalProp(a, prop, b[prop]);
20
- if (__getOwnPropSymbols)
21
- for (var prop of __getOwnPropSymbols(b)) {
22
- if (__propIsEnum.call(b, prop))
23
- __defNormalProp(a, prop, b[prop]);
24
- }
25
- return a;
26
- };
27
- var __spreadProps = (a, b) => __defProps(a, __getOwnPropDescs(b));
28
- const DateFieldButton = (props) => {
29
- const ref = useRef(null);
30
- const { buttonProps, isPressed } = useButton(props, ref);
31
- const { hoverProps, isHovered } = useHover({ isDisabled: props.isDisabled });
32
- const { focusProps, isFocusVisible } = useFocusRing();
33
- return /* @__PURE__ */ React.createElement("button", __spreadProps(__spreadValues({}, mergeProps(buttonProps, hoverProps, focusProps)), {
34
- ref,
35
- className: clsx(styles["sapphire-date-field__button"], styles["js-focus"], styles["js-hover"], {
36
- [styles["is-active"]]: isPressed,
37
- [styles["is-hover"]]: isHovered,
38
- [styles["is-focus"]]: isFocusVisible
39
- })
40
- }), props.children);
41
- };
42
-
43
- export { DateFieldButton };
44
- //# sourceMappingURL=DateFieldButton.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"DateFieldButton.js","sources":["../../../../src/DateField/src/DateFieldButton.tsx"],"sourcesContent":["import React, { useRef } from 'react';\nimport { AriaButtonProps } from '@react-aria/button';\nimport { useHover } from '@react-aria/interactions';\nimport { mergeProps } from '@react-aria/utils';\nimport clsx from 'clsx';\nimport styles from '@danske/sapphire-css/components/dateField/dateField.module.css';\nimport { useFocusRing } from '@react-aria/focus';\nimport { useButton } from '@danske/sapphire-react';\n\n/**\n * @internal\n */\nexport const DateFieldButton = (props: AriaButtonProps) => {\n const ref = useRef(null);\n const { buttonProps, isPressed } = useButton(props, ref);\n const { hoverProps, isHovered } = useHover({ isDisabled: props.isDisabled });\n const { focusProps, isFocusVisible } = useFocusRing();\n\n return (\n <button\n {...mergeProps(buttonProps, hoverProps, focusProps)}\n ref={ref}\n className={clsx(\n styles['sapphire-date-field__button'],\n styles['js-focus'],\n styles['js-hover'],\n {\n [styles['is-active']]: isPressed,\n [styles['is-hover']]: isHovered,\n [styles['is-focus']]: isFocusVisible,\n }\n )}\n >\n {props.children}\n </button>\n );\n};\n"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;AAYa,MAAA,eAAA,GAAkB,CAAC,KAA2B,KAAA;AACzD,EAAA,MAAM,MAAM,MAAO,CAAA,IAAA,CAAA,CAAA;AACnB,EAAA,MAAM,EAAE,WAAA,EAAa,SAAc,EAAA,GAAA,SAAA,CAAU,KAAO,EAAA,GAAA,CAAA,CAAA;AACpD,EAAA,MAAM,EAAE,UAAY,EAAA,SAAA,EAAA,GAAc,QAAS,CAAA,EAAE,YAAY,KAAM,CAAA,UAAA,EAAA,CAAA,CAAA;AAC/D,EAAM,MAAA,EAAE,YAAY,cAAmB,EAAA,GAAA,YAAA,EAAA,CAAA;AAEvC,EAAA,2CACG,QAAD,EAAA,aAAA,CAAA,cAAA,CAAA,EAAA,EACM,UAAW,CAAA,WAAA,EAAa,YAAY,UAD1C,CAAA,CAAA,EAAA;AAAA,IAEE,GAAA;AAAA,IACA,WAAW,IACT,CAAA,MAAA,CAAO,gCACP,MAAO,CAAA,UAAA,CAAA,EACP,OAAO,UACP,CAAA,EAAA;AAAA,MAAA,CACG,OAAO,WAAe,CAAA,GAAA,SAAA;AAAA,MAAA,CACtB,OAAO,UAAc,CAAA,GAAA,SAAA;AAAA,MAAA,CACrB,OAAO,UAAc,CAAA,GAAA,cAAA;AAAA,KAAA,CAAA;AAAA,GAAA,CAAA,EAIzB,KAAM,CAAA,QAAA,CAAA,CAAA;AAAA;;;;"}
@@ -1,81 +0,0 @@
1
- import React, { useRef } from 'react';
2
- import { useDateField } from '@react-aria/datepicker';
3
- import { DateSegment } from './DateSegment.js';
4
- import { useMessageFormatter, useLocale } from '@react-aria/i18n';
5
- import { useDateFieldState } from '@react-stately/datepicker';
6
- import { createCalendar } from '@internationalized/date';
7
- import styles from '@danske/sapphire-css/components/dateField/dateField.module.css';
8
- import { useCustomDateFormatLocale, Icon } from '@danske/sapphire-react';
9
- import { CloseCircle } from '@danske/sapphire-icons/react';
10
- import { DateFieldButton } from './DateFieldButton.js';
11
- import intlMessages from '../i18n/index.js';
12
- import { isAnyModified, segmentTypes } from './utils/segments.js';
13
-
14
- var __defProp = Object.defineProperty;
15
- var __defProps = Object.defineProperties;
16
- var __getOwnPropDescs = Object.getOwnPropertyDescriptors;
17
- var __getOwnPropSymbols = Object.getOwnPropertySymbols;
18
- var __hasOwnProp = Object.prototype.hasOwnProperty;
19
- var __propIsEnum = Object.prototype.propertyIsEnumerable;
20
- var __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
21
- var __spreadValues = (a, b) => {
22
- for (var prop in b || (b = {}))
23
- if (__hasOwnProp.call(b, prop))
24
- __defNormalProp(a, prop, b[prop]);
25
- if (__getOwnPropSymbols)
26
- for (var prop of __getOwnPropSymbols(b)) {
27
- if (__propIsEnum.call(b, prop))
28
- __defNormalProp(a, prop, b[prop]);
29
- }
30
- return a;
31
- };
32
- var __spreadProps = (a, b) => __defProps(a, __getOwnPropDescs(b));
33
- var __objRest = (source, exclude) => {
34
- var target = {};
35
- for (var prop in source)
36
- if (__hasOwnProp.call(source, prop) && exclude.indexOf(prop) < 0)
37
- target[prop] = source[prop];
38
- if (source != null && __getOwnPropSymbols)
39
- for (var prop of __getOwnPropSymbols(source)) {
40
- if (exclude.indexOf(prop) < 0 && __propIsEnum.call(source, prop))
41
- target[prop] = source[prop];
42
- }
43
- return target;
44
- };
45
- function DateInput(_a) {
46
- var _b = _a, {
47
- noClearButton = false,
48
- size = "large"
49
- } = _b, props = __objRest(_b, [
50
- "noClearButton",
51
- "size"
52
- ]);
53
- const ref = useRef(null);
54
- const formatMessage = useMessageFormatter(intlMessages);
55
- const { locale } = useLocale();
56
- const customDateFormatLocale = useCustomDateFormatLocale();
57
- const state = useDateFieldState(__spreadProps(__spreadValues({}, props), {
58
- locale: customDateFormatLocale || locale,
59
- createCalendar
60
- }));
61
- const { fieldProps } = useDateField(props, state, ref);
62
- const clear = () => {
63
- segmentTypes.forEach(state.clearSegment);
64
- };
65
- return /* @__PURE__ */ React.createElement(React.Fragment, null, /* @__PURE__ */ React.createElement("div", __spreadProps(__spreadValues({}, fieldProps), {
66
- className: styles["sapphire-date-field__input"],
67
- ref
68
- }), state.segments.map((segment, i) => /* @__PURE__ */ React.createElement(DateSegment, {
69
- key: i,
70
- segment,
71
- state
72
- }))), !noClearButton && !props.isReadOnly && !props.isDisabled && isAnyModified(state.segments) && /* @__PURE__ */ React.createElement(DateFieldButton, {
73
- "aria-label": formatMessage("clear"),
74
- onPress: clear
75
- }, /* @__PURE__ */ React.createElement(Icon, {
76
- size: size === "medium" ? "m" : "l"
77
- }, /* @__PURE__ */ React.createElement(CloseCircle, null))));
78
- }
79
-
80
- export { DateInput };
81
- //# sourceMappingURL=DateInput.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"DateInput.js","sources":["../../../../src/DateField/src/DateInput.tsx"],"sourcesContent":["import React, { useRef } from 'react';\nimport {\n AriaDateFieldOptions,\n useDateField,\n DateValue,\n} from '@react-aria/datepicker';\nimport { DateSegment } from './DateSegment';\nimport { useLocale, useMessageFormatter } from '@react-aria/i18n';\nimport { useDateFieldState } from '@react-stately/datepicker';\nimport { createCalendar } from '@internationalized/date';\nimport styles from '@danske/sapphire-css/components/dateField/dateField.module.css';\nimport { Icon } from '@danske/sapphire-react';\nimport { CloseCircle } from '@danske/sapphire-icons/react';\nimport { DateFieldButton } from './DateFieldButton';\nimport intlMessages from '../i18n';\nimport { segmentTypes, isAnyModified } from './utils/segments';\nimport { useCustomDateFormatLocale } from '@danske/sapphire-react';\n\nexport type DateInputProps<T extends DateValue> = AriaDateFieldOptions<T> & {\n noClearButton?: boolean;\n size?: 'large' | 'medium';\n};\n\n/**\n * @internal\n */\nexport function DateInput<T extends DateValue>({\n noClearButton = false,\n size = 'large',\n ...props\n}: DateInputProps<T>) {\n const ref = useRef(null);\n const formatMessage = useMessageFormatter(intlMessages);\n const { locale } = useLocale();\n const customDateFormatLocale = useCustomDateFormatLocale();\n\n const state = useDateFieldState({\n ...props,\n locale: customDateFormatLocale || locale,\n createCalendar,\n });\n\n const { fieldProps } = useDateField(props, state, ref);\n const clear = () => {\n segmentTypes.forEach(state.clearSegment);\n };\n\n return (\n <>\n <div\n {...fieldProps}\n className={styles['sapphire-date-field__input']}\n ref={ref}\n >\n {state.segments.map((segment, i) => (\n <DateSegment key={i} segment={segment} state={state} />\n ))}\n </div>\n {!noClearButton &&\n !props.isReadOnly &&\n !props.isDisabled &&\n isAnyModified(state.segments) && (\n <DateFieldButton aria-label={formatMessage('clear')} onPress={clear}>\n <Icon size={size === 'medium' ? 'm' : 'l'}>\n <CloseCircle />\n </Icon>\n </DateFieldButton>\n )}\n </>\n );\n}\n"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AA0BO,SAAA,SAAA,CAAwC,EAIzB,EAAA;AAJyB,EAC7C,IAAA,EAAA,GAAA,EAAA,EAAA;AAAA,IAAgB,aAAA,GAAA,KAAA;AAAA,IAChB,IAAO,GAAA,OAAA;AAAA,GAFsC,GAAA,EAAA,EAG1C,kBAH0C,EAG1C,EAAA;AAAA,IAFH,eAAA;AAAA,IACA,MAAA;AAAA,GAAA,CAAA,CAAA;AAGA,EAAA,MAAM,MAAM,MAAO,CAAA,IAAA,CAAA,CAAA;AACnB,EAAA,MAAM,gBAAgB,mBAAoB,CAAA,YAAA,CAAA,CAAA;AAC1C,EAAA,MAAM,EAAE,MAAW,EAAA,GAAA,SAAA,EAAA,CAAA;AACnB,EAAA,MAAM,sBAAyB,GAAA,yBAAA,EAAA,CAAA;AAE/B,EAAM,MAAA,KAAA,GAAQ,iBAAkB,CAAA,aAAA,CAAA,cAAA,CAAA,EAAA,EAC3B,KAD2B,CAAA,EAAA;AAAA,IAE9B,QAAQ,sBAA0B,IAAA,MAAA;AAAA,IAClC,cAAA;AAAA,GAAA,CAAA,CAAA,CAAA;AAGF,EAAA,MAAM,EAAE,UAAA,EAAA,GAAe,YAAa,CAAA,KAAA,EAAO,KAAO,EAAA,GAAA,CAAA,CAAA;AAClD,EAAA,MAAM,QAAQ,MAAM;AAClB,IAAA,YAAA,CAAa,QAAQ,KAAM,CAAA,YAAA,CAAA,CAAA;AAAA,GAAA,CAAA;AAG7B,EAAA,uBAEI,KAAA,CAAA,aAAA,CAAA,KAAA,CAAA,QAAA,EAAA,IAAA,kBAAA,KAAA,CAAA,aAAA,CAAC,KAAD,EAAA,aAAA,CAAA,cAAA,CAAA,EAAA,EACM,UADN,CAAA,EAAA;AAAA,IAEE,WAAW,MAAO,CAAA,4BAAA,CAAA;AAAA,IAClB,GAAA;AAAA,GAAA,CAAA,EAEC,MAAM,QAAS,CAAA,GAAA,CAAI,CAAC,OAAS,EAAA,CAAA,yCAC3B,WAAD,EAAA;AAAA,IAAa,GAAK,EAAA,CAAA;AAAA,IAAG,OAAA;AAAA,IAAkB,KAAA;AAAA,GAAA,CAAA,CAAA,CAAA,EAG1C,CAAC,aAAA,IACA,CAAC,KAAA,CAAM,UACP,IAAA,CAAC,KAAM,CAAA,UAAA,IACP,aAAc,CAAA,KAAA,CAAM,QAClB,CAAA,oBAAA,KAAA,CAAA,aAAA,CAAC,eAAD,EAAA;AAAA,IAAiB,cAAY,aAAc,CAAA,OAAA,CAAA;AAAA,IAAU,OAAS,EAAA,KAAA;AAAA,GAAA,sCAC3D,IAAD,EAAA;AAAA,IAAM,IAAA,EAAM,IAAS,KAAA,QAAA,GAAW,GAAM,GAAA,GAAA;AAAA,GAAA,sCACnC,WAAD,EAAA,IAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AAAA;;;;"}
@@ -1,154 +0,0 @@
1
- import React, { forwardRef, useRef } from 'react';
2
- import { useDateRangePicker } from '@react-aria/datepicker';
3
- import { useDateRangePickerState } from './useDateRangePickerState.js';
4
- import { useThemeCheck, useSapphireStyleProps, Field, Label, Icon, Popover, View, tokens } from '@danske/sapphire-react';
5
- import clsx from 'clsx';
6
- import styles from '@danske/sapphire-css/components/dateField/dateField.module.css';
7
- import { Calendar } from '@danske/sapphire-icons/react';
8
- import { DateRangeInput } from './DateRangeInput.js';
9
- import '@internationalized/date';
10
- import '@react-aria/calendar';
11
- import '@react-aria/utils';
12
- import '@danske/sapphire-css/components/calendar/calendar.module.css';
13
- import { useLocale, I18nProvider } from '@react-aria/i18n';
14
- import '../../Calendar/src/CalendarButtons.js';
15
- import { PressResponder } from '@react-aria/interactions';
16
- import '@react-stately/calendar';
17
- import '@react-stately/utils';
18
- import 'react-transition-group';
19
- import { RangeCalendar } from '../../Calendar/src/RangeCalendar.js';
20
- import { DateFieldButton } from './DateFieldButton.js';
21
- import { useDialog } from '@react-aria/dialog';
22
-
23
- var __defProp = Object.defineProperty;
24
- var __defProps = Object.defineProperties;
25
- var __getOwnPropDescs = Object.getOwnPropertyDescriptors;
26
- var __getOwnPropSymbols = Object.getOwnPropertySymbols;
27
- var __hasOwnProp = Object.prototype.hasOwnProperty;
28
- var __propIsEnum = Object.prototype.propertyIsEnumerable;
29
- var __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
30
- var __spreadValues = (a, b) => {
31
- for (var prop in b || (b = {}))
32
- if (__hasOwnProp.call(b, prop))
33
- __defNormalProp(a, prop, b[prop]);
34
- if (__getOwnPropSymbols)
35
- for (var prop of __getOwnPropSymbols(b)) {
36
- if (__propIsEnum.call(b, prop))
37
- __defNormalProp(a, prop, b[prop]);
38
- }
39
- return a;
40
- };
41
- var __spreadProps = (a, b) => __defProps(a, __getOwnPropDescs(b));
42
- var __objRest = (source, exclude) => {
43
- var target = {};
44
- for (var prop in source)
45
- if (__hasOwnProp.call(source, prop) && exclude.indexOf(prop) < 0)
46
- target[prop] = source[prop];
47
- if (source != null && __getOwnPropSymbols)
48
- for (var prop of __getOwnPropSymbols(source)) {
49
- if (exclude.indexOf(prop) < 0 && __propIsEnum.call(source, prop))
50
- target[prop] = source[prop];
51
- }
52
- return target;
53
- };
54
- function _DateRangeField(_a, ref) {
55
- var _b = _a, {
56
- error,
57
- note,
58
- contextualHelp,
59
- noClearButton = false,
60
- locale,
61
- showWeekNumbers,
62
- showTwoMonths,
63
- allowUnavailableDatesWithinRange,
64
- predefinedRanges,
65
- size = "large",
66
- labelPlacement = "above",
67
- necessityIndicator = false
68
- } = _b, otherProps = __objRest(_b, [
69
- "error",
70
- "note",
71
- "contextualHelp",
72
- "noClearButton",
73
- "locale",
74
- "showWeekNumbers",
75
- "showTwoMonths",
76
- "allowUnavailableDatesWithinRange",
77
- "predefinedRanges",
78
- "size",
79
- "labelPlacement",
80
- "necessityIndicator"
81
- ]);
82
- useThemeCheck();
83
- const groupRef = useRef(null);
84
- const dialogRef = useRef(null);
85
- const { locale: existingLocale } = useLocale();
86
- const preferredLocale = locale || existingLocale;
87
- const { styleProps } = useSapphireStyleProps(otherProps);
88
- const { dialogProps } = useDialog({}, dialogRef);
89
- const state = useDateRangePickerState(__spreadValues(__spreadValues(__spreadValues({}, otherProps), error ? { validationState: "invalid" } : {}), allowUnavailableDatesWithinRange ? { allowsNonContiguousRanges: allowUnavailableDatesWithinRange } : {}));
90
- const {
91
- groupProps,
92
- labelProps,
93
- startFieldProps,
94
- endFieldProps,
95
- buttonProps,
96
- dialogProps: dialogPropsFromDatePicker,
97
- calendarProps,
98
- descriptionProps,
99
- errorMessageProps
100
- } = useDateRangePicker(__spreadProps(__spreadValues({}, otherProps), {
101
- description: note,
102
- allowsNonContiguousRanges: allowUnavailableDatesWithinRange
103
- }), state, groupRef);
104
- const isMedium = size === "medium";
105
- return /* @__PURE__ */ React.createElement(Field, __spreadProps(__spreadValues({}, otherProps), {
106
- noShrink: true,
107
- isDisabled: otherProps.isDisabled,
108
- error: state.validationState === "invalid",
109
- size,
110
- ref,
111
- labelPlacement
112
- }), /* @__PURE__ */ React.createElement(I18nProvider, {
113
- locale: preferredLocale
114
- }, otherProps.label && /* @__PURE__ */ React.createElement(Field.Label, null, /* @__PURE__ */ React.createElement(Label, __spreadProps(__spreadValues({}, labelProps), {
115
- size,
116
- necessityIndicator: otherProps.isRequired && necessityIndicator ? "required" : !otherProps.isRequired && necessityIndicator ? "optional" : void 0,
117
- contextualHelp
118
- }), otherProps.label)), /* @__PURE__ */ React.createElement(Field.Control, null, /* @__PURE__ */ React.createElement("div", __spreadValues(__spreadProps(__spreadValues({}, groupProps), {
119
- ref: groupRef,
120
- className: clsx(styles["sapphire-date-field"], styles["sapphire-date-field--range"], {
121
- [styles["sapphire-date-field--error"]]: state.validationState === "invalid",
122
- [styles["sapphire-date-field--medium"]]: isMedium
123
- })
124
- }), styleProps.style.width ? { style: { width: styleProps.style.width } } : {}), /* @__PURE__ */ React.createElement(PressResponder, __spreadProps(__spreadValues({}, buttonProps), {
125
- isPressed: state.isOpen
126
- }), /* @__PURE__ */ React.createElement(DateFieldButton, {
127
- isDisabled: otherProps.isDisabled || otherProps.isReadOnly
128
- }, /* @__PURE__ */ React.createElement(Icon, {
129
- size: isMedium ? "m" : "l"
130
- }, /* @__PURE__ */ React.createElement(Calendar, null)))), /* @__PURE__ */ React.createElement(DateRangeInput, {
131
- dateRangePickerState: state,
132
- startFieldProps,
133
- endFieldProps,
134
- noClearButton,
135
- size
136
- }))), error !== false && (typeof error === "string" && error !== "" || note) && /* @__PURE__ */ React.createElement(Field.Footer, null, error ? /* @__PURE__ */ React.createElement(Field.Note, __spreadValues({}, errorMessageProps), error) : note ? /* @__PURE__ */ React.createElement(Field.Note, __spreadValues({}, descriptionProps), note) : /* @__PURE__ */ React.createElement(React.Fragment, null)), state.isOpen && /* @__PURE__ */ React.createElement(Popover, {
137
- state,
138
- triggerRef: groupRef,
139
- placement: "bottom start"
140
- }, /* @__PURE__ */ React.createElement("div", __spreadValues(__spreadValues({
141
- ref: dialogRef
142
- }, dialogProps), dialogPropsFromDatePicker), /* @__PURE__ */ React.createElement(View, {
143
- padding: tokens.size.spacing50
144
- }, /* @__PURE__ */ React.createElement(RangeCalendar, __spreadProps(__spreadValues({}, calendarProps), {
145
- allowUnavailableDatesWithinRange,
146
- showWeekNumbers,
147
- showTwoMonths,
148
- predefinedRanges
149
- })))))));
150
- }
151
- const DateRangeField = forwardRef(_DateRangeField);
152
-
153
- export { DateRangeField };
154
- //# sourceMappingURL=DateRangeField.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"DateRangeField.js","sources":["../../../../src/DateField/src/DateRangeField.tsx"],"sourcesContent":["import React, {\n ForwardedRef,\n forwardRef,\n ReactNode,\n RefObject,\n useRef,\n} from 'react';\nimport { Validation } from '@react-types/shared';\nimport {\n AriaDateRangePickerProps,\n DateValue,\n useDateRangePicker,\n} from '@react-aria/datepicker';\nimport {\n DateRangePickerStateOptions,\n useDateRangePickerState,\n} from './useDateRangePickerState';\nimport {\n SapphireStyleProps,\n useSapphireStyleProps,\n useThemeCheck,\n Icon,\n Popover,\n tokens,\n View,\n Field,\n Label,\n} from '@danske/sapphire-react';\nimport clsx from 'clsx';\nimport styles from '@danske/sapphire-css/components/dateField/dateField.module.css';\nimport { Calendar } from '@danske/sapphire-icons/react';\nimport { DateRangeInput } from './DateRangeInput';\nimport { RangeCalendar, PredefinedDateRange } from '../../Calendar';\nimport { DateFieldButton } from './DateFieldButton';\nimport { PressResponder } from '@react-aria/interactions';\nimport { I18nProvider, useLocale } from '@react-aria/i18n';\nimport { useDialog } from '@react-aria/dialog';\n\nexport type DateRangeFieldProps<T extends DateValue, P extends string> = Omit<\n AriaDateRangePickerProps<T>,\n | keyof Omit<Validation<unknown>, 'isRequired'>\n | 'errorMessage'\n | 'description'\n // excluding some props about time input. We don't support that yet.\n | 'granularity'\n | 'hourCycle'\n | 'hideTimeZone'\n | 'allowsNonContiguousRanges'\n | 'onChange'\n> &\n SapphireStyleProps & {\n /**\n * Handler that is called when the value changes.\n */\n onChange?: DateRangePickerStateOptions<DateValue, P>['onChange'];\n /**\n * Whether week numbers are visible as a first column\n */\n showWeekNumbers?: boolean;\n /**\n * Whether to show two months at the same time.\n */\n showTwoMonths?: boolean;\n /**\n * A set of predefined date ranges the user can more conveniently select.\n */\n predefinedRanges?: Record<P, PredefinedDateRange>;\n /**\n * Whether range is allowed to span unavailable dates.\n */\n allowUnavailableDatesWithinRange?: boolean;\n /**\n * Whether the input should render as having an error and an error message.\n * This also sets the appropriate `aria` attributes on the input.\n *\n * A `boolean` sets the error state.\n * A `string` sets the error state with an additional error message.\n \n * **An error message is strongly recommended because an error should\n * always have an explanation about how to fix it.**\n */\n error?: boolean | string;\n /**\n * A note to show below the input.\n * If the input has an error message, this note will be replaced by that.\n */\n note?: ReactNode;\n /**\n * A ContextualHelp to render next to the label.\n */\n contextualHelp?: ReactNode;\n /**\n * If it should hide the \"clear\" button when input is not empty.\n *\n * @default false\n */\n noClearButton?: boolean;\n /**\n * Locale (eg. \"da-DK\", \"en-US\", \"sv-SE\" etc.)\n *\n * THIS IS A TEMPORARY SOLUTION FOR THE INTERFACE OF LOCALIZATION. THIS API\n * MAY CHANGE OR EVEN BE REPLACED WITH SOMETHING DIFFERENT IN A FUTURE VERSION.\n */\n locale?: string;\n /**\n * @default 'large'\n */\n size?: 'large' | 'medium';\n /**\n * To visually indicate if this field is required or optional.\n * @default false\n */\n necessityIndicator?: boolean;\n\n /**\n * Places the label either above (default) or on the side of the control.\n * @default 'above'\n */\n labelPlacement?: 'side' | 'above';\n };\n\nfunction _DateRangeField<T extends DateValue, P extends string>(\n {\n error,\n note,\n contextualHelp,\n noClearButton = false,\n locale,\n showWeekNumbers,\n showTwoMonths,\n allowUnavailableDatesWithinRange,\n predefinedRanges,\n size = 'large',\n labelPlacement = 'above',\n necessityIndicator = false,\n ...otherProps\n }: DateRangeFieldProps<T, P>,\n ref: ForwardedRef<HTMLDivElement>\n) {\n useThemeCheck();\n\n const groupRef = useRef(null);\n const dialogRef = useRef(null);\n\n const { locale: existingLocale } = useLocale();\n\n const preferredLocale = locale || existingLocale;\n\n const { styleProps } = useSapphireStyleProps(otherProps);\n\n const { dialogProps } = useDialog({}, dialogRef);\n\n const state = useDateRangePickerState({\n ...otherProps,\n ...(error ? { validationState: 'invalid' } : {}),\n ...(allowUnavailableDatesWithinRange\n ? { allowsNonContiguousRanges: allowUnavailableDatesWithinRange }\n : {}),\n });\n\n const {\n groupProps,\n labelProps,\n startFieldProps,\n endFieldProps,\n buttonProps,\n dialogProps: dialogPropsFromDatePicker,\n calendarProps,\n descriptionProps,\n errorMessageProps,\n } = useDateRangePicker(\n {\n ...otherProps,\n description: note,\n allowsNonContiguousRanges: allowUnavailableDatesWithinRange,\n },\n state,\n groupRef\n );\n\n const isMedium = size === 'medium';\n\n return (\n <Field\n {...otherProps}\n noShrink\n isDisabled={otherProps.isDisabled}\n error={state.validationState === 'invalid'}\n size={size}\n ref={ref}\n labelPlacement={labelPlacement}\n >\n <I18nProvider locale={preferredLocale}>\n {otherProps.label && (\n <Field.Label>\n <Label\n {...labelProps}\n size={size}\n necessityIndicator={\n otherProps.isRequired && necessityIndicator\n ? 'required'\n : !otherProps.isRequired && necessityIndicator\n ? 'optional'\n : undefined\n }\n contextualHelp={contextualHelp}\n >\n {otherProps.label}\n </Label>\n </Field.Label>\n )}\n <Field.Control>\n <div\n {...groupProps}\n ref={groupRef}\n className={clsx(\n styles['sapphire-date-field'],\n styles['sapphire-date-field--range'],\n {\n [styles['sapphire-date-field--error']]:\n state.validationState === 'invalid',\n [styles['sapphire-date-field--medium']]: isMedium,\n }\n )}\n {...(styleProps.style.width\n ? { style: { width: styleProps.style.width } }\n : {})}\n >\n <PressResponder {...buttonProps} isPressed={state.isOpen}>\n <DateFieldButton\n isDisabled={otherProps.isDisabled || otherProps.isReadOnly}\n >\n <Icon size={isMedium ? 'm' : 'l'}>\n <Calendar />\n </Icon>\n </DateFieldButton>\n </PressResponder>\n <DateRangeInput\n dateRangePickerState={state}\n startFieldProps={startFieldProps}\n endFieldProps={endFieldProps}\n noClearButton={noClearButton}\n size={size}\n />\n </div>\n </Field.Control>\n {error !== false &&\n ((typeof error === 'string' && error !== '') || note) && (\n <Field.Footer>\n {error ? (\n <Field.Note {...errorMessageProps}>{error}</Field.Note>\n ) : note ? (\n <Field.Note {...descriptionProps}>{note}</Field.Note>\n ) : (\n <></>\n )}\n </Field.Footer>\n )}\n {state.isOpen && (\n <Popover state={state} triggerRef={groupRef} placement=\"bottom start\">\n <div\n ref={dialogRef}\n {...dialogProps}\n {...dialogPropsFromDatePicker}\n >\n <View padding={tokens.size.spacing50}>\n <RangeCalendar\n {...calendarProps}\n allowUnavailableDatesWithinRange={\n allowUnavailableDatesWithinRange\n }\n showWeekNumbers={showWeekNumbers}\n showTwoMonths={showTwoMonths}\n predefinedRanges={predefinedRanges}\n />\n </View>\n </div>\n </Popover>\n )}\n </I18nProvider>\n </Field>\n );\n}\n\n/**\n * A date range field allows users to select a range of dates by selecting a to and a from date with keyboard and/or mouse.\n */\nexport const DateRangeField = forwardRef(_DateRangeField) as <\n T extends DateValue,\n P extends string\n>(\n props: DateRangeFieldProps<T, P> & { ref?: RefObject<HTMLDivElement> }\n) => React.ReactElement;\n"],"names":[],"mappings":"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"}
@@ -1,90 +0,0 @@
1
- import React, { useRef } from 'react';
2
- import { useDateField } from '@react-aria/datepicker';
3
- import { DateSegment } from './DateSegment.js';
4
- import { useMessageFormatter, useLocale } from '@react-aria/i18n';
5
- import { useDateFieldState } from '@react-stately/datepicker';
6
- import { createCalendar } from '@internationalized/date';
7
- import styles from '@danske/sapphire-css/components/dateField/dateField.module.css';
8
- import { useCustomDateFormatLocale, Icon } from '@danske/sapphire-react';
9
- import { ArrowRight, CloseCircle } from '@danske/sapphire-icons/react';
10
- import { DateFieldButton } from './DateFieldButton.js';
11
- import { isAnyModified, segmentTypes } from './utils/segments.js';
12
- import intlMessages from '../i18n/index.js';
13
-
14
- var __defProp = Object.defineProperty;
15
- var __defProps = Object.defineProperties;
16
- var __getOwnPropDescs = Object.getOwnPropertyDescriptors;
17
- var __getOwnPropSymbols = Object.getOwnPropertySymbols;
18
- var __hasOwnProp = Object.prototype.hasOwnProperty;
19
- var __propIsEnum = Object.prototype.propertyIsEnumerable;
20
- var __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
21
- var __spreadValues = (a, b) => {
22
- for (var prop in b || (b = {}))
23
- if (__hasOwnProp.call(b, prop))
24
- __defNormalProp(a, prop, b[prop]);
25
- if (__getOwnPropSymbols)
26
- for (var prop of __getOwnPropSymbols(b)) {
27
- if (__propIsEnum.call(b, prop))
28
- __defNormalProp(a, prop, b[prop]);
29
- }
30
- return a;
31
- };
32
- var __spreadProps = (a, b) => __defProps(a, __getOwnPropDescs(b));
33
- function DateRangeInput({
34
- dateRangePickerState,
35
- startFieldProps,
36
- endFieldProps,
37
- noClearButton = false,
38
- size = "large"
39
- }) {
40
- const startFieldRef = useRef(null);
41
- const endFieldRef = useRef(null);
42
- const formatMessage = useMessageFormatter(intlMessages);
43
- const { locale } = useLocale();
44
- const customDateFormatLocale = useCustomDateFormatLocale();
45
- const startFieldState = useDateFieldState(__spreadProps(__spreadValues({}, startFieldProps), {
46
- locale: customDateFormatLocale || locale,
47
- createCalendar
48
- }));
49
- const endFieldState = useDateFieldState(__spreadProps(__spreadValues({}, endFieldProps), {
50
- locale: customDateFormatLocale || locale,
51
- createCalendar
52
- }));
53
- const { fieldProps: startFieldAriaProps } = useDateField(startFieldProps, startFieldState, startFieldRef);
54
- const { fieldProps: endFieldAriaProps } = useDateField(endFieldProps, endFieldState, endFieldRef);
55
- const clearFields = () => {
56
- segmentTypes.forEach((segmentType) => {
57
- startFieldState.clearSegment(segmentType);
58
- endFieldState.clearSegment(segmentType);
59
- });
60
- dateRangePickerState.setValue({ start: null, end: null });
61
- };
62
- return /* @__PURE__ */ React.createElement(React.Fragment, null, /* @__PURE__ */ React.createElement("div", __spreadProps(__spreadValues({}, startFieldAriaProps), {
63
- className: styles["sapphire-date-field__input"],
64
- ref: startFieldRef
65
- }), startFieldState.segments.map((segment, i) => /* @__PURE__ */ React.createElement(DateSegment, {
66
- key: i,
67
- segment,
68
- state: startFieldState
69
- }))), /* @__PURE__ */ React.createElement(Icon, {
70
- size: size == "medium" ? "m" : "l"
71
- }, /* @__PURE__ */ React.createElement(ArrowRight, null)), /* @__PURE__ */ React.createElement("div", __spreadProps(__spreadValues({}, endFieldAriaProps), {
72
- className: styles["sapphire-date-field__input"],
73
- ref: endFieldRef
74
- }), endFieldState.segments.map((segment, i) => /* @__PURE__ */ React.createElement(DateSegment, {
75
- key: i,
76
- segment,
77
- state: endFieldState
78
- }))), !noClearButton && !startFieldProps.isReadOnly && !endFieldProps.isReadOnly && !startFieldProps.isDisabled && !endFieldProps.isDisabled && isAnyModified([
79
- ...startFieldState.segments,
80
- ...endFieldState.segments
81
- ]) && /* @__PURE__ */ React.createElement(DateFieldButton, {
82
- "aria-label": formatMessage("clear"),
83
- onPress: clearFields
84
- }, /* @__PURE__ */ React.createElement(Icon, {
85
- size: size === "medium" ? "m" : "l"
86
- }, /* @__PURE__ */ React.createElement(CloseCircle, null))));
87
- }
88
-
89
- export { DateRangeInput };
90
- //# sourceMappingURL=DateRangeInput.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"DateRangeInput.js","sources":["../../../../src/DateField/src/DateRangeInput.tsx"],"sourcesContent":["import React, { useRef } from 'react';\nimport {\n useDateField,\n DateValue,\n AriaDatePickerProps,\n} from '@react-aria/datepicker';\nimport { DateSegment } from './DateSegment';\nimport { useLocale, useMessageFormatter } from '@react-aria/i18n';\nimport {\n useDateFieldState,\n DateRangePickerState,\n} from '@react-stately/datepicker';\nimport { createCalendar } from '@internationalized/date';\nimport styles from '@danske/sapphire-css/components/dateField/dateField.module.css';\nimport { Icon, useCustomDateFormatLocale } from '@danske/sapphire-react';\nimport { CloseCircle, ArrowRight } from '@danske/sapphire-icons/react';\nimport { DateFieldButton } from './DateFieldButton';\nimport { segmentTypes, isAnyModified } from './utils/segments';\nimport intlMessages from '../i18n';\n\nexport interface DateRangeInputProps<T extends DateValue> {\n dateRangePickerState: DateRangePickerState;\n startFieldProps: AriaDatePickerProps<T>;\n endFieldProps: AriaDatePickerProps<T>;\n noClearButton?: boolean;\n size?: 'large' | 'medium';\n}\n\n/**\n * @internal\n */\nexport function DateRangeInput<T extends DateValue>({\n dateRangePickerState,\n startFieldProps,\n endFieldProps,\n noClearButton = false,\n size = 'large',\n}: DateRangeInputProps<T>) {\n const startFieldRef = useRef(null);\n const endFieldRef = useRef(null);\n const formatMessage = useMessageFormatter(intlMessages);\n\n const { locale } = useLocale();\n const customDateFormatLocale = useCustomDateFormatLocale();\n\n const startFieldState = useDateFieldState({\n ...startFieldProps,\n locale: customDateFormatLocale || locale,\n createCalendar,\n });\n\n const endFieldState = useDateFieldState({\n ...endFieldProps,\n locale: customDateFormatLocale || locale,\n createCalendar,\n });\n\n const { fieldProps: startFieldAriaProps } = useDateField(\n startFieldProps,\n startFieldState,\n startFieldRef\n );\n const { fieldProps: endFieldAriaProps } = useDateField(\n endFieldProps,\n endFieldState,\n endFieldRef\n );\n\n const clearFields = () => {\n segmentTypes.forEach((segmentType) => {\n startFieldState.clearSegment(segmentType);\n endFieldState.clearSegment(segmentType);\n });\n\n /**\n * Workaround for clearing\n *\n * PROBLEM\n * - UI: Setting value in both startField and endField\n * - Code: Sets a placeholder value i useDateRangePickerState ({ start: date, end: date })\n * - UI: Clicking clear button\n * - Code: startFieldState.clearSegment() runs and sets start-prop of placeholder to null\n * - Code: endFieldState.clearSegment() runs and sets end-prop of placeholder to null,\n * BUT THE value INSIDE dateRangePickerState.setDateTime() IS STALE AND STILL HAS DATE VALUES FOR BOTH start AND end\n * - Code: so a placholder value is set to ({ start: date, end: null })\n *\n * POTENTIAL SOLUTION\n * If the value in useDateRangePickerState was saved as a ref\n * (like here: https://github.com/adobe/react-spectrum/pull/2510/commits/ca696af45e1f4548e1ace06e5de6d4f297f46eeb?diff=split&w=0#diff-eb983dc43959711e7dea6f33bcbbe97aa0bab850f24441753cdbd885125f3b71R50-R51)\n * and valueRef.current would be the value used in setDateTime of useDateRangePickerState,\n * both dates would be correctly cleared as the latest start value (which is null) would be known by setDateTime run by endFieldState.clearSegment()\n * And we still want to use clearSegment as that takes care of remembering last selected value for reselection.\n * It's suboptimal to have to call that continuously though, so a clearAllSegments function could be ideal.\n *\n * Without the change in Adobe's hooks, we have to ourselves dateRangePickerState.setValue to null.\n * But we'll be keeping the *FieldState.clearSegment calls as those will make sure to save new date to start from on next selection.\n * Ie if 2026 was selected, that's where a reselection with arrow keys will start from.\n * Only seems to take effect for the later of the calls though – currently endFieldState.\n *\n * Submitted a discussion to Adobe about this: https://github.com/adobe/react-spectrum/issues/4986\n */\n dateRangePickerState.setValue({ start: null!, end: null! }); // null works on runtime\n };\n\n return (\n <>\n <div\n {...startFieldAriaProps}\n className={styles['sapphire-date-field__input']}\n ref={startFieldRef}\n >\n {startFieldState.segments.map((segment, i) => (\n <DateSegment key={i} segment={segment} state={startFieldState} />\n ))}\n </div>\n <Icon size={size == 'medium' ? 'm' : 'l'}>\n <ArrowRight />\n </Icon>\n <div\n {...endFieldAriaProps}\n className={styles['sapphire-date-field__input']}\n ref={endFieldRef}\n >\n {endFieldState.segments.map((segment, i) => (\n <DateSegment key={i} segment={segment} state={endFieldState} />\n ))}\n </div>\n {!noClearButton &&\n !startFieldProps.isReadOnly &&\n !endFieldProps.isReadOnly &&\n !startFieldProps.isDisabled &&\n !endFieldProps.isDisabled &&\n isAnyModified([\n ...startFieldState.segments,\n ...endFieldState.segments,\n ]) && (\n <DateFieldButton\n aria-label={formatMessage('clear')}\n onPress={clearFields}\n >\n <Icon size={size === 'medium' ? 'm' : 'l'}>\n <CloseCircle />\n </Icon>\n </DateFieldButton>\n )}\n </>\n );\n}\n"],"names":[],"mappings":"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"}
@@ -1,52 +0,0 @@
1
- import React, { useRef } from 'react';
2
- import { useDateSegment } from '@react-aria/datepicker';
3
- import styles from '@danske/sapphire-css/components/dateField/dateField.module.css';
4
- import clsx from 'clsx';
5
- import { setPlaceholderLanguage } from './utils/segments.js';
6
- import { useLocale } from '@react-aria/i18n';
7
-
8
- var __defProp = Object.defineProperty;
9
- var __defProps = Object.defineProperties;
10
- var __getOwnPropDescs = Object.getOwnPropertyDescriptors;
11
- var __getOwnPropSymbols = Object.getOwnPropertySymbols;
12
- var __hasOwnProp = Object.prototype.hasOwnProperty;
13
- var __propIsEnum = Object.prototype.propertyIsEnumerable;
14
- var __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
15
- var __spreadValues = (a, b) => {
16
- for (var prop in b || (b = {}))
17
- if (__hasOwnProp.call(b, prop))
18
- __defNormalProp(a, prop, b[prop]);
19
- if (__getOwnPropSymbols)
20
- for (var prop of __getOwnPropSymbols(b)) {
21
- if (__propIsEnum.call(b, prop))
22
- __defNormalProp(a, prop, b[prop]);
23
- }
24
- return a;
25
- };
26
- var __spreadProps = (a, b) => __defProps(a, __getOwnPropDescs(b));
27
- const DateSegment = ({ segment, state }) => segment.type === "literal" ? /* @__PURE__ */ React.createElement(SeparatorSegment, {
28
- segment
29
- }) : /* @__PURE__ */ React.createElement(EditableSegment, {
30
- segment,
31
- state
32
- });
33
- const SeparatorSegment = ({ segment }) => /* @__PURE__ */ React.createElement("span", {
34
- "aria-hidden": "true",
35
- className: clsx(styles["sapphire-date-field__segment"])
36
- }, segment.text);
37
- const EditableSegment = ({ segment, state }) => {
38
- const ref = useRef(null);
39
- const { segmentProps } = useDateSegment(segment, state, ref);
40
- const { locale } = useLocale();
41
- const segmentWithTranslatedPlaceholders = setPlaceholderLanguage(segment, locale);
42
- return /* @__PURE__ */ React.createElement("div", __spreadProps(__spreadValues({}, segmentProps), {
43
- style: segmentProps.style,
44
- ref,
45
- className: clsx(styles["sapphire-date-field__segment"], {
46
- [styles["sapphire-date-field__segment--filled"]]: !segmentWithTranslatedPlaceholders.isPlaceholder
47
- })
48
- }), segmentWithTranslatedPlaceholders.text);
49
- };
50
-
51
- export { DateSegment };
52
- //# sourceMappingURL=DateSegment.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"DateSegment.js","sources":["../../../../src/DateField/src/DateSegment.tsx"],"sourcesContent":["import React, { useRef } from 'react';\nimport { useDateSegment } from '@react-aria/datepicker';\nimport {\n DateFieldState,\n DateSegment as DateSegmentType,\n} from '@react-stately/datepicker';\nimport styles from '@danske/sapphire-css/components/dateField/dateField.module.css';\nimport clsx from 'clsx';\nimport { setPlaceholderLanguage } from './utils/segments';\nimport { useLocale } from '@react-aria/i18n';\n\nexport interface DateSegmentProps {\n segment: DateSegmentType;\n state: DateFieldState;\n}\n\nexport const DateSegment = ({ segment, state }: DateSegmentProps) =>\n segment.type === 'literal' ? (\n <SeparatorSegment segment={segment} />\n ) : (\n <EditableSegment segment={segment} state={state}></EditableSegment>\n );\n\nconst SeparatorSegment = ({ segment }: { segment: DateSegmentType }) => (\n <span\n aria-hidden=\"true\"\n className={clsx(styles['sapphire-date-field__segment'])}\n >\n {segment.text}\n </span>\n);\n\nconst EditableSegment = ({ segment, state }: DateSegmentProps) => {\n const ref = useRef(null);\n const { segmentProps } = useDateSegment(segment, state, ref);\n const { locale } = useLocale();\n const segmentWithTranslatedPlaceholders = setPlaceholderLanguage(\n segment,\n locale\n );\n\n return (\n <div\n {...segmentProps}\n style={segmentProps.style}\n ref={ref}\n className={clsx(styles['sapphire-date-field__segment'], {\n [styles['sapphire-date-field__segment--filled']]:\n !segmentWithTranslatedPlaceholders.isPlaceholder,\n })}\n >\n {segmentWithTranslatedPlaceholders.text}\n </div>\n );\n};\n"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;AAgBa,MAAA,WAAA,GAAc,CAAC,EAAE,OAAA,EAAS,YACrC,OAAQ,CAAA,IAAA,KAAS,SACf,mBAAA,KAAA,CAAA,aAAA,CAAC,gBAAD,EAAA;AAAA,EAAkB,OAAA;AAAA,CAAA,CAAA,uCAEjB,eAAD,EAAA;AAAA,EAAiB,OAAA;AAAA,EAAkB,KAAA;AAAA,CAAA,EAAA;AAGvC,MAAM,gBAAmB,GAAA,CAAC,EAAE,OAAA,EAAA,yCACzB,MAAD,EAAA;AAAA,EACE,aAAY,EAAA,MAAA;AAAA,EACZ,SAAA,EAAW,KAAK,MAAO,CAAA,8BAAA,CAAA,CAAA;AAAA,CAAA,EAEtB,OAAQ,CAAA,IAAA,CAAA,CAAA;AAIb,MAAM,eAAkB,GAAA,CAAC,EAAE,OAAA,EAAS,KAA8B,EAAA,KAAA;AAChE,EAAA,MAAM,MAAM,MAAO,CAAA,IAAA,CAAA,CAAA;AACnB,EAAA,MAAM,EAAE,YAAA,EAAA,GAAiB,cAAe,CAAA,OAAA,EAAS,KAAO,EAAA,GAAA,CAAA,CAAA;AACxD,EAAA,MAAM,EAAE,MAAW,EAAA,GAAA,SAAA,EAAA,CAAA;AACnB,EAAM,MAAA,iCAAA,GAAoC,uBACxC,OACA,EAAA,MAAA,CAAA,CAAA;AAGF,EACE,uBAAA,KAAA,CAAA,aAAA,CAAC,KAAD,EAAA,aAAA,CAAA,cAAA,CAAA,EAAA,EACM,YADN,CAAA,EAAA;AAAA,IAEE,OAAO,YAAa,CAAA,KAAA;AAAA,IACpB,GAAA;AAAA,IACA,SAAA,EAAW,IAAK,CAAA,MAAA,CAAO,8BAAiC,CAAA,EAAA;AAAA,MACrD,CAAA,MAAA,CAAO,sCACN,CAAA,GAAA,CAAC,iCAAkC,CAAA,aAAA;AAAA,KAAA,CAAA;AAAA,GAAA,CAAA,EAGtC,iCAAkC,CAAA,IAAA,CAAA,CAAA;AAAA,CAAA;;;;"}
@@ -1,14 +0,0 @@
1
- const isEndDateBeforeStartDate = (dateRange) => dateRange && dateRange.end && dateRange.start && dateRange.end.compare(dateRange.start) < 0;
2
- const isDateOutsideValidRange = (value, minValue, maxValue) => {
3
- if (value) {
4
- if (minValue && value.compare(minValue) < 0) {
5
- return "before";
6
- }
7
- if (maxValue && value.compare(maxValue) > 0) {
8
- return "after";
9
- }
10
- }
11
- };
12
-
13
- export { isDateOutsideValidRange, isEndDateBeforeStartDate };
14
- //# sourceMappingURL=helpers.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"helpers.js","sources":["../../../../src/DateField/src/helpers.ts"],"sourcesContent":["/**\n * The helpers in this file are meant for external use.\n * We're exporting these.\n */\nimport { DateValue } from '@react-aria/datepicker';\nimport { RangeValue } from '@react-types/shared';\n\nexport const isEndDateBeforeStartDate = (\n dateRange?: RangeValue<DateValue> | null\n) =>\n dateRange &&\n dateRange.end &&\n dateRange.start &&\n dateRange.end.compare(dateRange.start) < 0;\n\nexport const isDateOutsideValidRange = (\n value?: DateValue | null,\n minValue?: DateValue | null,\n maxValue?: DateValue | null\n) => {\n if (value) {\n if (minValue && value.compare(minValue) < 0) {\n return 'before';\n }\n if (maxValue && value.compare(maxValue) > 0) {\n return 'after';\n }\n }\n};\n"],"names":[],"mappings":"AAOO,MAAM,wBAA2B,GAAA,CACtC,SAEA,KAAA,SAAA,IACA,SAAU,CAAA,GAAA,IACV,SAAU,CAAA,KAAA,IACV,SAAU,CAAA,GAAA,CAAI,OAAQ,CAAA,SAAA,CAAU,KAAS,CAAA,GAAA,EAAA;AAEpC,MAAM,uBAA0B,GAAA,CACrC,KACA,EAAA,QAAA,EACA,QACG,KAAA;AACH,EAAA,IAAI,KAAO,EAAA;AACT,IAAA,IAAI,QAAY,IAAA,KAAA,CAAM,OAAQ,CAAA,QAAA,CAAA,GAAY,CAAG,EAAA;AAC3C,MAAO,OAAA,QAAA,CAAA;AAAA,KAAA;AAET,IAAA,IAAI,QAAY,IAAA,KAAA,CAAM,OAAQ,CAAA,QAAA,CAAA,GAAY,CAAG,EAAA;AAC3C,MAAO,OAAA,OAAA,CAAA;AAAA,KAAA;AAAA,GAAA;AAAA;;;;"}
@@ -1,57 +0,0 @@
1
- import { useDateRangePickerState as useDateRangePickerState$1 } from '@react-stately/datepicker';
2
- import { useRef } from 'react';
3
-
4
- var __defProp = Object.defineProperty;
5
- var __defProps = Object.defineProperties;
6
- var __getOwnPropDescs = Object.getOwnPropertyDescriptors;
7
- var __getOwnPropSymbols = Object.getOwnPropertySymbols;
8
- var __hasOwnProp = Object.prototype.hasOwnProperty;
9
- var __propIsEnum = Object.prototype.propertyIsEnumerable;
10
- var __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
11
- var __spreadValues = (a, b) => {
12
- for (var prop in b || (b = {}))
13
- if (__hasOwnProp.call(b, prop))
14
- __defNormalProp(a, prop, b[prop]);
15
- if (__getOwnPropSymbols)
16
- for (var prop of __getOwnPropSymbols(b)) {
17
- if (__propIsEnum.call(b, prop))
18
- __defNormalProp(a, prop, b[prop]);
19
- }
20
- return a;
21
- };
22
- var __spreadProps = (a, b) => __defProps(a, __getOwnPropDescs(b));
23
- var __objRest = (source, exclude) => {
24
- var target = {};
25
- for (var prop in source)
26
- if (__hasOwnProp.call(source, prop) && exclude.indexOf(prop) < 0)
27
- target[prop] = source[prop];
28
- if (source != null && __getOwnPropSymbols)
29
- for (var prop of __getOwnPropSymbols(source)) {
30
- if (exclude.indexOf(prop) < 0 && __propIsEnum.call(source, prop))
31
- target[prop] = source[prop];
32
- }
33
- return target;
34
- };
35
- const useDateRangePickerState = (_a) => {
36
- var _b = _a, {
37
- onChange
38
- } = _b, options = __objRest(_b, [
39
- "onChange"
40
- ]);
41
- const lastPredefinedRange = useRef(void 0);
42
- const state = useDateRangePickerState$1(__spreadProps(__spreadValues({}, options), {
43
- onChange: (value) => {
44
- onChange == null ? void 0 : onChange(value, lastPredefinedRange.current);
45
- lastPredefinedRange.current = void 0;
46
- }
47
- }));
48
- return __spreadProps(__spreadValues({}, state), {
49
- setDateRange: (value, predefinedRange) => {
50
- lastPredefinedRange.current = predefinedRange;
51
- state.setDateRange(value);
52
- }
53
- });
54
- };
55
-
56
- export { useDateRangePickerState };
57
- //# sourceMappingURL=useDateRangePickerState.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"useDateRangePickerState.js","sources":["../../../../src/DateField/src/useDateRangePickerState.ts"],"sourcesContent":["import { useDateRangePickerState as originalUseDateRangePickerState } from '@react-stately/datepicker';\nimport type {\n DateRangePickerStateOptions as OriginalDateRangePickerOptions,\n DateRangePickerState as OriginalDateRangePickerState,\n} from '@react-stately/datepicker';\nimport { DateValue } from '@internationalized/date';\nimport { useRef } from 'react';\n\ntype OriginalOnChange<T extends DateValue> = NonNullable<\n OriginalDateRangePickerOptions<T>['onChange']\n>;\n\nexport type DateRangePickerStateOptions<\n T extends DateValue,\n P extends string,\n O extends OriginalOnChange<T> = OriginalOnChange<T>\n> = Omit<OriginalDateRangePickerOptions<T>, 'onChange'> & {\n // We allow clearing the DateRangeField and thus have to allow a null value\n // which is currently not part of the DateRangePickerProps type:\n // https://unpkg.com/browse/@react-types/datepicker@3.5.0/src/index.d.ts#:~:text=ValueBase%3CRangeValue%3CT%3E%20%7C%20null%2C%20RangeValue%3CMappedDateValue%3CT%3E%3E\n onChange?: (\n value: Parameters<O>[0] | null,\n predefinedRange?: P\n ) => ReturnType<O>;\n};\n\ntype OriginalSetDate = OriginalDateRangePickerState['setDateRange'];\n\nexport type DateRangePickerState<P extends string> = Omit<\n OriginalDateRangePickerState,\n 'setDateRange'\n> & {\n setDateRange: (\n value: Parameters<OriginalSetDate>[0],\n predefinedRange?: P\n ) => ReturnType<OriginalSetDate>;\n};\n\n/**\n * A wrapper to allow for the onChange callback to have extra info\n **/\nexport const useDateRangePickerState = <P extends string>({\n onChange,\n ...options\n}: DateRangePickerStateOptions<DateValue, P>): DateRangePickerState<P> => {\n const lastPredefinedRange = useRef<P | undefined>(undefined);\n\n const state = originalUseDateRangePickerState({\n ...options,\n onChange: (value) => {\n onChange?.(value, lastPredefinedRange.current);\n lastPredefinedRange.current = undefined;\n },\n });\n\n return {\n ...state,\n setDateRange: (value, predefinedRange) => {\n lastPredefinedRange.current = predefinedRange;\n state.setDateRange(value);\n },\n };\n};\n"],"names":["originalUseDateRangePickerState"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAyCa,MAAA,uBAAA,GAA0B,CAAmB,EAGgB,KAAA;AAHhB,EACxD,IAAA,EAAA,GAAA,EAAA,EAAA;AAAA,IAAA,QAAA;AAAA,GADwD,GAAA,EAAA,EAErD,oBAFqD,EAErD,EAAA;AAAA,IADH,UAAA;AAAA,GAAA,CAAA,CAAA;AAGA,EAAA,MAAM,sBAAsB,MAAsB,CAAA,KAAA,CAAA,CAAA,CAAA;AAElD,EAAM,MAAA,KAAA,GAAQA,yBAAgC,CAAA,aAAA,CAAA,cAAA,CAAA,EAAA,EACzC,OADyC,CAAA,EAAA;AAAA,IAE5C,QAAA,EAAU,CAAC,KAAU,KAAA;AACnB,MAAA,QAAA,IAAA,IAAA,GAAA,KAAA,CAAA,GAAA,QAAA,CAAW,OAAO,mBAAoB,CAAA,OAAA,CAAA,CAAA;AACtC,MAAA,mBAAA,CAAoB,OAAU,GAAA,KAAA,CAAA,CAAA;AAAA,KAAA;AAAA,GAAA,CAAA,CAAA,CAAA;AAIlC,EAAA,OAAO,iCACF,KADE,CAAA,EAAA;AAAA,IAEL,YAAA,EAAc,CAAC,KAAA,EAAO,eAAoB,KAAA;AACxC,MAAA,mBAAA,CAAoB,OAAU,GAAA,eAAA,CAAA;AAC9B,MAAA,KAAA,CAAM,YAAa,CAAA,KAAA,CAAA,CAAA;AAAA,KAAA;AAAA,GAAA,CAAA,CAAA;AAAA;;;;"}