@danske/sapphire-react-lab 0.89.0 → 0.90.3

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,119 +0,0 @@
1
- import React, { useMemo } from 'react';
2
- import { createCalendar, toCalendarDate } from '@internationalized/date';
3
- import { useRangeCalendar } from '@react-aria/calendar';
4
- import { useObjectRef, mergeProps, filterDOMProps } from '@react-aria/utils';
5
- import { useThemeCheck, useSapphireStyleProps, Button } from '@danske/sapphire-react';
6
- import styles from '@danske/sapphire-css/components/calendar/calendar.module.css';
7
- import { CalendarDaysGrid } from './CalendarDaysGrid.js';
8
- import { useLocale, useDateFormatter } from '@react-aria/i18n';
9
- import clsx from 'clsx';
10
- import { useRangeCalendarState } from './useRangeCalendarState.js';
11
- import { CalendarHeader } from './CalendarHeader.js';
12
- import { useCalendarAnimationState, CalendarPageAnimation } from './CalendarPageAnimation.js';
13
- import { sentenceCase } from './utils.js';
14
-
15
- var __defProp = Object.defineProperty;
16
- var __defProps = Object.defineProperties;
17
- var __getOwnPropDescs = Object.getOwnPropertyDescriptors;
18
- var __getOwnPropSymbols = Object.getOwnPropertySymbols;
19
- var __hasOwnProp = Object.prototype.hasOwnProperty;
20
- var __propIsEnum = Object.prototype.propertyIsEnumerable;
21
- var __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
22
- var __spreadValues = (a, b) => {
23
- for (var prop in b || (b = {}))
24
- if (__hasOwnProp.call(b, prop))
25
- __defNormalProp(a, prop, b[prop]);
26
- if (__getOwnPropSymbols)
27
- for (var prop of __getOwnPropSymbols(b)) {
28
- if (__propIsEnum.call(b, prop))
29
- __defNormalProp(a, prop, b[prop]);
30
- }
31
- return a;
32
- };
33
- var __spreadProps = (a, b) => __defProps(a, __getOwnPropDescs(b));
34
- var __objRest = (source, exclude) => {
35
- var target = {};
36
- for (var prop in source)
37
- if (__hasOwnProp.call(source, prop) && exclude.indexOf(prop) < 0)
38
- target[prop] = source[prop];
39
- if (source != null && __getOwnPropSymbols)
40
- for (var prop of __getOwnPropSymbols(source)) {
41
- if (exclude.indexOf(prop) < 0 && __propIsEnum.call(source, prop))
42
- target[prop] = source[prop];
43
- }
44
- return target;
45
- };
46
- const _RangeCalendar = function RangeCalendar2(_a, forwardedRef) {
47
- var _b = _a, {
48
- showWeekNumbers,
49
- showTwoMonths = false,
50
- allowUnavailableDatesWithinRange = false,
51
- predefinedRanges
52
- } = _b, props = __objRest(_b, [
53
- "showWeekNumbers",
54
- "showTwoMonths",
55
- "allowUnavailableDatesWithinRange",
56
- "predefinedRanges"
57
- ]);
58
- useThemeCheck();
59
- const { styleProps } = useSapphireStyleProps(props);
60
- const ref = useObjectRef(forwardedRef);
61
- const { locale } = useLocale();
62
- const state = useCalendarAnimationState(useRangeCalendarState(__spreadProps(__spreadValues({}, props), {
63
- locale,
64
- allowsNonContiguousRanges: allowUnavailableDatesWithinRange,
65
- visibleDuration: useMemo(() => ({ months: showTwoMonths ? 2 : 1 }), [showTwoMonths]),
66
- createCalendar
67
- })));
68
- const { calendarProps, prevButtonProps, nextButtonProps } = useRangeCalendar(props, state, ref);
69
- const monthDateFormatter = useDateFormatter({
70
- month: "long",
71
- year: "numeric",
72
- era: state.visibleRange.start.calendar.identifier === "gregory" && state.visibleRange.start.era === "BC" ? "short" : void 0,
73
- calendar: state.visibleRange.start.calendar.identifier,
74
- timeZone: state.timeZone
75
- });
76
- return /* @__PURE__ */ React.createElement("div", __spreadValues({
77
- ref,
78
- className: clsx(styles["sapphire-calendar"], styleProps.className),
79
- style: styleProps.style
80
- }, mergeProps(calendarProps, filterDOMProps(props))), /* @__PURE__ */ React.createElement("div", {
81
- className: styles["sapphire-calendar__tables-row"]
82
- }, [state.visibleRange.start].concat(showTwoMonths ? state.visibleRange.start.add({ months: 1 }) : []).map((startOfMonth, index, visibleMonths) => {
83
- const isLeft = visibleMonths.length > 1 && index === 0;
84
- const isRight = visibleMonths.length > 1 && index === visibleMonths.length - 1;
85
- const shouldAnimate = visibleMonths.length === 1;
86
- const daysGrid = /* @__PURE__ */ React.createElement(CalendarDaysGrid, {
87
- startDate: startOfMonth,
88
- state,
89
- showWeekNumbers
90
- });
91
- return /* @__PURE__ */ React.createElement("div", {
92
- key: index,
93
- className: styles["sapphire-calendar__table-container"]
94
- }, /* @__PURE__ */ React.createElement(CalendarHeader, {
95
- prevButtonProps,
96
- nextButtonProps,
97
- isLeft,
98
- isRight
99
- }, sentenceCase(monthDateFormatter.format(startOfMonth.toDate(state.timeZone)))), shouldAnimate ? /* @__PURE__ */ React.createElement(CalendarPageAnimation, {
100
- state: state.animationState
101
- }, daysGrid) : daysGrid);
102
- })), predefinedRanges && /* @__PURE__ */ React.createElement("div", {
103
- className: styles["sapphire-calendar__custom-ranges"]
104
- }, Object.entries(predefinedRanges).map(([key, { label, dateRange }]) => /* @__PURE__ */ React.createElement("div", {
105
- key
106
- }, /* @__PURE__ */ React.createElement(Button, {
107
- variant: "secondary",
108
- appearance: "ghost",
109
- onPress: () => {
110
- state.setValue(dateRange, key);
111
- state.setAnchorDate(null);
112
- state.setFocusedDate(toCalendarDate(dateRange.end));
113
- }
114
- }, label)))));
115
- };
116
- const RangeCalendar = React.forwardRef(_RangeCalendar);
117
-
118
- export { RangeCalendar };
119
- //# sourceMappingURL=RangeCalendar.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"RangeCalendar.js","sources":["../../../../src/Calendar/src/RangeCalendar.tsx"],"sourcesContent":["import React, { useMemo } from 'react';\nimport {\n createCalendar,\n DateValue,\n toCalendarDate,\n} from '@internationalized/date';\nimport { AriaRangeCalendarProps, useRangeCalendar } from '@react-aria/calendar';\nimport { filterDOMProps, mergeProps, useObjectRef } from '@react-aria/utils';\n\nimport {\n Button,\n SapphireStyleProps,\n useSapphireStyleProps,\n useThemeCheck,\n} from '@danske/sapphire-react';\nimport styles from '@danske/sapphire-css/components/calendar/calendar.module.css';\n\nimport { CalendarDaysGrid } from './CalendarDaysGrid';\nimport { useDateFormatter, useLocale } from '@react-aria/i18n';\nimport clsx from 'clsx';\nimport { useRangeCalendarState } from './useRangeCalendarState';\nimport type { RangeCalendarStateOptions } from './useRangeCalendarState';\nimport { CalendarHeader } from './CalendarHeader';\nimport {\n CalendarPageAnimation,\n useCalendarAnimationState,\n} from './CalendarPageAnimation';\nimport { sentenceCase } from './utils';\n\nexport interface PredefinedDateRange {\n label: string;\n dateRange: { start: DateValue; end: DateValue };\n}\n\nexport interface SapphireRangeCalendarProps<\n T extends DateValue = DateValue,\n P extends string = string\n> extends SapphireStyleProps,\n Omit<\n AriaRangeCalendarProps<T>,\n | 'validationState'\n | 'errorMessage'\n | 'allowsNonContiguousRanges'\n | 'onChange'\n > {\n /**\n * This callback also gives you the information if the selected range was a\n * predefined date according to the `predefinedRanges` prop.\n */\n onChange?: RangeCalendarStateOptions<DateValue, P>['onChange'];\n /**\n * Whether week numbers are visible as a first column\n */\n showWeekNumbers?: boolean;\n\n /**\n * Whether to show two months at the same time.\n */\n showTwoMonths?: boolean;\n\n /**\n * A set of predefined date ranges the user can more conveniently select.\n */\n predefinedRanges?: Record<P, PredefinedDateRange>;\n\n /**\n * Whether range is allowed to span unavailable dates.\n */\n allowUnavailableDatesWithinRange?: boolean;\n}\n\nconst _RangeCalendar = function RangeCalendar<\n T extends DateValue = DateValue,\n P extends string = string\n>(\n {\n showWeekNumbers,\n showTwoMonths = false,\n allowUnavailableDatesWithinRange = false,\n predefinedRanges,\n ...props\n }: SapphireRangeCalendarProps<T, P>,\n forwardedRef: React.ForwardedRef<HTMLDivElement>\n): JSX.Element {\n useThemeCheck();\n const { styleProps } = useSapphireStyleProps(props);\n\n const ref = useObjectRef(forwardedRef);\n const { locale } = useLocale();\n const state = useCalendarAnimationState(\n useRangeCalendarState({\n ...props,\n locale,\n allowsNonContiguousRanges: allowUnavailableDatesWithinRange,\n visibleDuration: useMemo(\n () => ({ months: showTwoMonths ? 2 : 1 }),\n [showTwoMonths]\n ),\n createCalendar,\n })\n );\n const { calendarProps, prevButtonProps, nextButtonProps } = useRangeCalendar(\n props,\n state,\n ref\n );\n\n const monthDateFormatter = useDateFormatter({\n month: 'long',\n year: 'numeric',\n era:\n state.visibleRange.start.calendar.identifier === 'gregory' &&\n state.visibleRange.start.era === 'BC'\n ? 'short'\n : undefined,\n calendar: state.visibleRange.start.calendar.identifier,\n timeZone: state.timeZone,\n });\n\n return (\n <div\n ref={ref}\n className={clsx(styles['sapphire-calendar'], styleProps.className)}\n style={styleProps.style}\n {...mergeProps(calendarProps, filterDOMProps(props))}\n >\n <div className={styles['sapphire-calendar__tables-row']}>\n {[state.visibleRange.start]\n .concat(\n showTwoMonths ? state.visibleRange.start.add({ months: 1 }) : []\n )\n .map((startOfMonth, index, visibleMonths) => {\n const isLeft = visibleMonths.length > 1 && index === 0;\n const isRight =\n visibleMonths.length > 1 && index === visibleMonths.length - 1;\n const shouldAnimate = visibleMonths.length === 1;\n const daysGrid = (\n <CalendarDaysGrid\n startDate={startOfMonth}\n state={state}\n showWeekNumbers={showWeekNumbers}\n />\n );\n return (\n <div\n key={index}\n className={styles['sapphire-calendar__table-container']}\n >\n <CalendarHeader\n prevButtonProps={prevButtonProps}\n nextButtonProps={nextButtonProps}\n isLeft={isLeft}\n isRight={isRight}\n >\n {sentenceCase(\n monthDateFormatter.format(\n startOfMonth.toDate(state.timeZone)\n )\n )}\n </CalendarHeader>\n {shouldAnimate ? (\n <CalendarPageAnimation state={state.animationState}>\n {daysGrid}\n </CalendarPageAnimation>\n ) : (\n daysGrid\n )}\n </div>\n );\n })}\n </div>\n {predefinedRanges && (\n <div className={styles['sapphire-calendar__custom-ranges']}>\n {(\n Object.entries(predefinedRanges) as Array<[P, PredefinedDateRange]>\n ).map(([key, { label, dateRange }]) => (\n <div key={key}>\n <Button\n variant=\"secondary\"\n appearance=\"ghost\"\n onPress={() => {\n state.setValue(dateRange, key);\n state.setAnchorDate(null);\n state.setFocusedDate(toCalendarDate(dateRange.end));\n }}\n >\n {label}\n </Button>\n </div>\n ))}\n </div>\n )}\n </div>\n );\n};\n\n/**\n * Displays a calendar and allow users to select a consecutive range of dates.\n * One or two months can be visible at the same time.\n */\n// eslint-disable-next-line\n// @ts-ignore Union type too complex to represent (TODO: check if this is still\n// an issue when we use TS@5.\nexport const RangeCalendar = React.forwardRef(_RangeCalendar) as <\n T extends DateValue,\n P extends string\n>(\n props: SapphireRangeCalendarProps<T, P> & {\n ref?: React.ForwardedRef<HTMLDivElement>;\n }\n) => ReturnType<typeof _RangeCalendar>;\n"],"names":[],"mappings":"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"}
@@ -1,57 +0,0 @@
1
- import { useLocale } from '@react-aria/i18n';
2
-
3
- function useCustomDurationCalendarGrid({
4
- cellsDuration,
5
- perRow = 3
6
- }, state) {
7
- const { direction } = useLocale();
8
- const onKeyDown = (e) => {
9
- switch (e.key) {
10
- case "Enter":
11
- case " ":
12
- e.preventDefault();
13
- state.selectFocusedDate();
14
- break;
15
- case "ArrowLeft":
16
- e.preventDefault();
17
- e.stopPropagation();
18
- if (direction === "rtl") {
19
- state.setFocusedDate(state.focusedDate.add({ [cellsDuration]: 1 }));
20
- } else {
21
- state.setFocusedDate(state.focusedDate.add({ [cellsDuration]: -1 }));
22
- }
23
- break;
24
- case "ArrowUp":
25
- e.preventDefault();
26
- e.stopPropagation();
27
- state.setFocusedDate(state.focusedDate.add({ [cellsDuration]: -perRow }));
28
- break;
29
- case "ArrowRight":
30
- e.preventDefault();
31
- e.stopPropagation();
32
- if (direction === "rtl") {
33
- state.setFocusedDate(state.focusedDate.add({ [cellsDuration]: -1 }));
34
- } else {
35
- state.setFocusedDate(state.focusedDate.add({ [cellsDuration]: 1 }));
36
- }
37
- break;
38
- case "ArrowDown":
39
- e.preventDefault();
40
- e.stopPropagation();
41
- state.setFocusedDate(state.focusedDate.add({ [cellsDuration]: perRow }));
42
- break;
43
- }
44
- };
45
- const gridProps = {
46
- role: "grid",
47
- "aria-readonly": state.isReadOnly || void 0,
48
- "aria-disabled": state.isDisabled || void 0,
49
- onKeyDown,
50
- onFocus: () => state.setFocused(true),
51
- onBlur: () => state.setFocused(false)
52
- };
53
- return { gridProps };
54
- }
55
-
56
- export { useCustomDurationCalendarGrid };
57
- //# sourceMappingURL=useCustomDurationCalendarGrid.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"useCustomDurationCalendarGrid.js","sources":["../../../../src/Calendar/src/useCustomDurationCalendarGrid.tsx"],"sourcesContent":["import { CalendarState } from '@react-stately/calendar';\nimport { DateDuration } from '@internationalized/date';\nimport React from 'react';\nimport { DOMAttributes } from '@react-types/shared';\nimport { useLocale } from '@react-aria/i18n';\n\n/**\n * A little generalized but also simplified version of useCalendarGrid, to be used for months and\n * years view. The keyboard navigation in useCalendarGrid is around the assumption of grid cells\n * representing days, but not other durations like month or year.\n *\n * NOTE: only simple arrow key navigation is supported in this hook, and Home/End PageUp/PageDown\n * are left out to keep it simple.\n */\nexport function useCustomDurationCalendarGrid(\n {\n cellsDuration,\n perRow = 3,\n }: {\n cellsDuration: keyof DateDuration;\n perRow?: number;\n },\n state: CalendarState\n): { gridProps: DOMAttributes } {\n const { direction } = useLocale();\n\n const onKeyDown = (e: React.KeyboardEvent) => {\n switch (e.key) {\n case 'Enter':\n case ' ':\n e.preventDefault();\n state.selectFocusedDate();\n break;\n case 'ArrowLeft':\n e.preventDefault();\n e.stopPropagation();\n if (direction === 'rtl') {\n state.setFocusedDate(state.focusedDate.add({ [cellsDuration]: 1 }));\n } else {\n state.setFocusedDate(state.focusedDate.add({ [cellsDuration]: -1 }));\n }\n break;\n case 'ArrowUp':\n e.preventDefault();\n e.stopPropagation();\n state.setFocusedDate(\n state.focusedDate.add({ [cellsDuration]: -perRow })\n );\n break;\n case 'ArrowRight':\n e.preventDefault();\n e.stopPropagation();\n if (direction === 'rtl') {\n state.setFocusedDate(state.focusedDate.add({ [cellsDuration]: -1 }));\n } else {\n state.setFocusedDate(state.focusedDate.add({ [cellsDuration]: 1 }));\n }\n break;\n case 'ArrowDown':\n e.preventDefault();\n e.stopPropagation();\n state.setFocusedDate(\n state.focusedDate.add({ [cellsDuration]: perRow })\n );\n break;\n }\n };\n const gridProps = {\n role: 'grid',\n 'aria-readonly': state.isReadOnly || undefined,\n 'aria-disabled': state.isDisabled || undefined,\n onKeyDown,\n onFocus: () => state.setFocused(true),\n onBlur: () => state.setFocused(false),\n };\n return { gridProps };\n}\n"],"names":[],"mappings":";;AAeE,SAAA,6BAAA,CAAA;AAAA,EACE,aAAA;AAAA,EACA,MAAS,GAAA,CAAA;AAAA,CAAA,EAKX,KAC8B,EAAA;AAC9B,EAAA,MAAM,EAAE,SAAc,EAAA,GAAA,SAAA,EAAA,CAAA;AAEtB,EAAM,MAAA,SAAA,GAAY,CAAC,CAA2B,KAAA;AAC5C,IAAA,QAAQ,CAAE,CAAA,GAAA;AAAA,MACH,KAAA,OAAA,CAAA;AAAA,MACA,KAAA,GAAA;AACH,QAAE,CAAA,CAAA,cAAA,EAAA,CAAA;AACF,QAAM,KAAA,CAAA,iBAAA,EAAA,CAAA;AACN,QAAA,MAAA;AAAA,MACG,KAAA,WAAA;AACH,QAAE,CAAA,CAAA,cAAA,EAAA,CAAA;AACF,QAAE,CAAA,CAAA,eAAA,EAAA,CAAA;AACF,QAAA,IAAI,cAAc,KAAO,EAAA;AACvB,UAAA,KAAA,CAAM,cAAe,CAAA,KAAA,CAAM,WAAY,CAAA,GAAA,CAAI,GAAG,aAAgB,GAAA,CAAA,EAAA,CAAA,CAAA,CAAA;AAAA,SACzD,MAAA;AACL,UAAA,KAAA,CAAM,cAAe,CAAA,KAAA,CAAM,WAAY,CAAA,GAAA,CAAI,GAAG,aAAgB,GAAA,CAAA,CAAA,EAAA,CAAA,CAAA,CAAA;AAAA,SAAA;AAEhE,QAAA,MAAA;AAAA,MACG,KAAA,SAAA;AACH,QAAE,CAAA,CAAA,cAAA,EAAA,CAAA;AACF,QAAE,CAAA,CAAA,eAAA,EAAA,CAAA;AACF,QAAA,KAAA,CAAM,eACJ,KAAM,CAAA,WAAA,CAAY,GAAI,CAAA,EAAA,CAAG,gBAAgB,CAAC,MAAA,EAAA,CAAA,CAAA,CAAA;AAE5C,QAAA,MAAA;AAAA,MACG,KAAA,YAAA;AACH,QAAE,CAAA,CAAA,cAAA,EAAA,CAAA;AACF,QAAE,CAAA,CAAA,eAAA,EAAA,CAAA;AACF,QAAA,IAAI,cAAc,KAAO,EAAA;AACvB,UAAA,KAAA,CAAM,cAAe,CAAA,KAAA,CAAM,WAAY,CAAA,GAAA,CAAI,GAAG,aAAgB,GAAA,CAAA,CAAA,EAAA,CAAA,CAAA,CAAA;AAAA,SACzD,MAAA;AACL,UAAA,KAAA,CAAM,cAAe,CAAA,KAAA,CAAM,WAAY,CAAA,GAAA,CAAI,GAAG,aAAgB,GAAA,CAAA,EAAA,CAAA,CAAA,CAAA;AAAA,SAAA;AAEhE,QAAA,MAAA;AAAA,MACG,KAAA,WAAA;AACH,QAAE,CAAA,CAAA,cAAA,EAAA,CAAA;AACF,QAAE,CAAA,CAAA,eAAA,EAAA,CAAA;AACF,QAAA,KAAA,CAAM,cACJ,CAAA,KAAA,CAAM,WAAY,CAAA,GAAA,CAAI,GAAG,aAAgB,GAAA,MAAA,EAAA,CAAA,CAAA,CAAA;AAE3C,QAAA,MAAA;AAAA,KAAA;AAAA,GAAA,CAAA;AAGN,EAAA,MAAM,SAAY,GAAA;AAAA,IAChB,IAAM,EAAA,MAAA;AAAA,IACN,eAAA,EAAiB,MAAM,UAAc,IAAA,KAAA,CAAA;AAAA,IACrC,eAAA,EAAiB,MAAM,UAAc,IAAA,KAAA,CAAA;AAAA,IACrC,SAAA;AAAA,IACA,OAAA,EAAS,MAAM,KAAA,CAAM,UAAW,CAAA,IAAA,CAAA;AAAA,IAChC,MAAA,EAAQ,MAAM,KAAA,CAAM,UAAW,CAAA,KAAA,CAAA;AAAA,GAAA,CAAA;AAEjC,EAAA,OAAO,EAAE,SAAA,EAAA,CAAA;AAAA;;;;"}
@@ -1,57 +0,0 @@
1
- import { useRangeCalendarState as useRangeCalendarState$1 } from '@react-stately/calendar';
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 useRangeCalendarState = (_a) => {
36
- var _b = _a, {
37
- onChange
38
- } = _b, options = __objRest(_b, [
39
- "onChange"
40
- ]);
41
- const lastPredefinedRange = useRef(void 0);
42
- const state = useRangeCalendarState$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
- setValue: (value, predefinedRange) => {
50
- lastPredefinedRange.current = predefinedRange;
51
- state.setValue(value);
52
- }
53
- });
54
- };
55
-
56
- export { useRangeCalendarState };
57
- //# sourceMappingURL=useRangeCalendarState.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"useRangeCalendarState.js","sources":["../../../../src/Calendar/src/useRangeCalendarState.ts"],"sourcesContent":["import { useRangeCalendarState as originalUseRangeCalendarState } from '@react-stately/calendar';\nimport type {\n RangeCalendarStateOptions as OriginalRangeCalendarStateOptions,\n RangeCalendarState as OriginalRangeCalendarState,\n} from '@react-stately/calendar';\nimport { DateValue } from '@internationalized/date';\nimport { useRef } from 'react';\n\ntype OriginalOnChange<T extends DateValue> = NonNullable<\n OriginalRangeCalendarStateOptions<T>['onChange']\n>;\n\nexport type RangeCalendarStateOptions<\n T extends DateValue,\n P extends string\n> = Omit<OriginalRangeCalendarStateOptions<T>, 'onChange'> & {\n onChange?: (\n value: Parameters<OriginalOnChange<T>>[0],\n predefinedRange?: P\n ) => ReturnType<OriginalOnChange<T>>;\n};\n\ntype OriginalSetValue = OriginalRangeCalendarState['setValue'];\n\nexport type RangeCalendarState<P extends string> = Omit<\n OriginalRangeCalendarState,\n 'setValue'\n> & {\n setValue: (\n value: Parameters<OriginalSetValue>[0],\n predefinedRange?: P\n ) => ReturnType<OriginalSetValue>;\n};\n\n/**\n * A wrapper to allow for the onChange callback to have extra info\n **/\nexport const useRangeCalendarState = <P extends string>({\n onChange,\n ...options\n}: RangeCalendarStateOptions<DateValue, P>): RangeCalendarState<P> => {\n const lastPredefinedRange = useRef<P | undefined>(undefined);\n\n const state = originalUseRangeCalendarState({\n ...options,\n onChange: (value) => {\n onChange?.(value, lastPredefinedRange.current);\n lastPredefinedRange.current = undefined;\n },\n });\n\n return {\n ...state,\n setValue: (value, predefinedRange) => {\n lastPredefinedRange.current = predefinedRange;\n state.setValue(value);\n },\n };\n};\n"],"names":["originalUseRangeCalendarState"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAqCa,MAAA,qBAAA,GAAwB,CAAmB,EAGc,KAAA;AAHd,EACtD,IAAA,EAAA,GAAA,EAAA,EAAA;AAAA,IAAA,QAAA;AAAA,GADsD,GAAA,EAAA,EAEnD,oBAFmD,EAEnD,EAAA;AAAA,IADH,UAAA;AAAA,GAAA,CAAA,CAAA;AAGA,EAAA,MAAM,sBAAsB,MAAsB,CAAA,KAAA,CAAA,CAAA,CAAA;AAElD,EAAM,MAAA,KAAA,GAAQA,uBAA8B,CAAA,aAAA,CAAA,cAAA,CAAA,EAAA,EACvC,OADuC,CAAA,EAAA;AAAA,IAE1C,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,QAAA,EAAU,CAAC,KAAA,EAAO,eAAoB,KAAA;AACpC,MAAA,mBAAA,CAAoB,OAAU,GAAA,eAAA,CAAA;AAC9B,MAAA,KAAA,CAAM,QAAS,CAAA,KAAA,CAAA,CAAA;AAAA,KAAA;AAAA,GAAA,CAAA,CAAA;AAAA;;;;"}
@@ -1,86 +0,0 @@
1
- import { useCalendarState } from '@react-stately/calendar';
2
- import { useControlledState } from '@react-stately/utils';
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 viewToVisibleDuration = {
36
- days: {
37
- months: 1
38
- },
39
- months: {
40
- years: 1
41
- },
42
- years: {
43
- years: 12
44
- }
45
- };
46
- function useSapphireCalendarState(_a) {
47
- var _b = _a, {
48
- view: viewProp,
49
- defaultView = "days",
50
- onViewChange
51
- } = _b, otherOptions = __objRest(_b, [
52
- "view",
53
- "defaultView",
54
- "onViewChange"
55
- ]);
56
- const [view, setView] = useControlledState(viewProp, defaultView, onViewChange);
57
- const state = useCalendarState(__spreadProps(__spreadValues({}, otherOptions), {
58
- visibleDuration: viewToVisibleDuration[view]
59
- }));
60
- const broadenView = () => {
61
- switch (view) {
62
- case "days":
63
- return setView("months");
64
- case "months":
65
- return setView("years");
66
- }
67
- };
68
- const narrowView = () => {
69
- switch (view) {
70
- case "months":
71
- return setView("days");
72
- case "years":
73
- return setView("months");
74
- }
75
- };
76
- const canDrillUp = !state.isReadOnly && ["days", "months"].includes(view);
77
- return __spreadProps(__spreadValues({}, state), {
78
- view,
79
- narrowView,
80
- broadenView,
81
- canBroadenView: canDrillUp
82
- });
83
- }
84
-
85
- export { useSapphireCalendarState };
86
- //# sourceMappingURL=useSapphireCalendarState.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"useSapphireCalendarState.js","sources":["../../../../src/Calendar/src/useSapphireCalendarState.tsx"],"sourcesContent":["import { DateDuration, DateValue } from '@internationalized/date';\nimport {\n CalendarState,\n CalendarStateOptions,\n useCalendarState,\n} from '@react-stately/calendar';\nimport { useControlledState } from '@react-stately/utils';\n\nexport type CalendarView = 'days' | 'months' | 'years';\nconst viewToVisibleDuration: Record<CalendarView, DateDuration> = {\n days: {\n months: 1,\n },\n months: {\n years: 1,\n },\n years: {\n years: 12,\n },\n};\n\nexport interface SapphireCalendarStateOptions<T extends DateValue>\n extends CalendarStateOptions<T> {\n /**\n * Controls the calendar's view (day, month, year).\n */\n view?: CalendarView;\n\n /**\n * The view of the calendar when it first mounts (uncontrolled).\n */\n defaultView?: CalendarView;\n /**\n * Handler that is called when the view is changed.\n */\n onViewChange?: (value: CalendarView) => void;\n}\n\nexport type SapphireCalendarState = CalendarState & {\n view: CalendarView;\n narrowView: () => void;\n broadenView: () => void;\n canBroadenView: boolean;\n};\n\nexport function useSapphireCalendarState<T extends DateValue>({\n view: viewProp,\n defaultView = 'days',\n onViewChange,\n ...otherOptions\n}: SapphireCalendarStateOptions<T> &\n CalendarStateOptions<T>): SapphireCalendarState {\n const [view, setView] = useControlledState<CalendarView>(\n viewProp,\n defaultView,\n onViewChange\n );\n const state = useCalendarState({\n ...otherOptions,\n visibleDuration: viewToVisibleDuration[view],\n });\n const broadenView = () => {\n switch (view) {\n case 'days':\n return setView('months');\n case 'months':\n return setView('years');\n }\n };\n const narrowView = () => {\n switch (view) {\n case 'months':\n return setView('days');\n case 'years':\n return setView('months');\n }\n };\n const canDrillUp = !state.isReadOnly && ['days', 'months'].includes(view);\n return {\n ...state,\n view: view,\n narrowView,\n broadenView,\n canBroadenView: canDrillUp,\n };\n}\n"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AASA,MAAM,qBAA4D,GAAA;AAAA,EAChE,IAAM,EAAA;AAAA,IACJ,MAAQ,EAAA,CAAA;AAAA,GAAA;AAAA,EAEV,MAAQ,EAAA;AAAA,IACN,KAAO,EAAA,CAAA;AAAA,GAAA;AAAA,EAET,KAAO,EAAA;AAAA,IACL,KAAO,EAAA,EAAA;AAAA,GAAA;AAAA,CAAA,CAAA;AA4BJ,SAAA,wBAAA,CAAuD,EAMZ,EAAA;AANY,EAC5D,IAAA,EAAA,GAAA,EAAA,EAAA;AAAA,IAAM,IAAA,EAAA,QAAA;AAAA,IACN,WAAc,GAAA,MAAA;AAAA,IACd,YAAA;AAAA,GAH4D,GAAA,EAAA,EAIzD,yBAJyD,EAIzD,EAAA;AAAA,IAHH,MAAA;AAAA,IACA,aAAA;AAAA,IACA,cAAA;AAAA,GAAA,CAAA,CAAA;AAIA,EAAA,MAAM,CAAC,IAAA,EAAM,OAAW,CAAA,GAAA,kBAAA,CACtB,UACA,WACA,EAAA,YAAA,CAAA,CAAA;AAEF,EAAM,MAAA,KAAA,GAAQ,gBAAiB,CAAA,aAAA,CAAA,cAAA,CAAA,EAAA,EAC1B,YAD0B,CAAA,EAAA;AAAA,IAE7B,iBAAiB,qBAAsB,CAAA,IAAA,CAAA;AAAA,GAAA,CAAA,CAAA,CAAA;AAEzC,EAAA,MAAM,cAAc,MAAM;AACxB,IAAQ,QAAA,IAAA;AAAA,MACD,KAAA,MAAA;AACH,QAAA,OAAO,OAAQ,CAAA,QAAA,CAAA,CAAA;AAAA,MACZ,KAAA,QAAA;AACH,QAAA,OAAO,OAAQ,CAAA,OAAA,CAAA,CAAA;AAAA,KAAA;AAAA,GAAA,CAAA;AAGrB,EAAA,MAAM,aAAa,MAAM;AACvB,IAAQ,QAAA,IAAA;AAAA,MACD,KAAA,QAAA;AACH,QAAA,OAAO,OAAQ,CAAA,MAAA,CAAA,CAAA;AAAA,MACZ,KAAA,OAAA;AACH,QAAA,OAAO,OAAQ,CAAA,QAAA,CAAA,CAAA;AAAA,KAAA;AAAA,GAAA,CAAA;AAGrB,EAAA,MAAM,aAAa,CAAC,KAAA,CAAM,cAAc,CAAC,MAAA,EAAQ,UAAU,QAAS,CAAA,IAAA,CAAA,CAAA;AACpE,EAAA,OAAO,iCACF,KADE,CAAA,EAAA;AAAA,IAEL,IAAA;AAAA,IACA,UAAA;AAAA,IACA,WAAA;AAAA,IACA,cAAgB,EAAA,UAAA;AAAA,GAAA,CAAA,CAAA;AAAA;;;;"}
@@ -1,12 +0,0 @@
1
- function range(start, end) {
2
- return Array(end - start + 1).fill(null).map((_, index) => start + index);
3
- }
4
- function* chunks(array, chunkSize) {
5
- for (let i = 0; i < array.length; i += chunkSize) {
6
- yield array.slice(i, i + chunkSize);
7
- }
8
- }
9
- const sentenceCase = (sentence) => sentence.slice(0, 1).toLocaleUpperCase() + sentence.slice(1);
10
-
11
- export { chunks, range, sentenceCase };
12
- //# sourceMappingURL=utils.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"utils.js","sources":["../../../../src/Calendar/src/utils.ts"],"sourcesContent":["/**\n * Creates an array filled with numbers from {@param start} to {@param end}\n */\nexport function range(start: number, end: number): number[] {\n return Array(end - start + 1)\n .fill(null)\n .map((_, index) => start + index);\n}\n\n/**\n * Converts an array into chunks\n * @returns iterator of the chunks\n */\nexport function* chunks<T>(\n array: T[],\n chunkSize: number\n): Generator<T[], void> {\n for (let i = 0; i < array.length; i += chunkSize) {\n yield array.slice(i, i + chunkSize);\n }\n}\n\n/**\n * Uppercases the first letter in the string\n * @param sentence\n * @returns sentence with first letter upper cased\n */\nexport const sentenceCase = (sentence: string): string =>\n sentence.slice(0, 1).toLocaleUpperCase() + sentence.slice(1);\n"],"names":[],"mappings":"AAGO,SAAA,KAAA,CAAe,OAAe,GAAuB,EAAA;AAC1D,EAAO,OAAA,KAAA,CAAM,GAAM,GAAA,KAAA,GAAQ,CACxB,CAAA,CAAA,IAAA,CAAK,MACL,GAAI,CAAA,CAAC,CAAG,EAAA,KAAA,KAAU,KAAQ,GAAA,KAAA,CAAA,CAAA;AAAA,CAAA;AAOxB,UAAA,MAAA,CACL,OACA,SACsB,EAAA;AACtB,EAAA,KAAA,IAAS,IAAI,CAAG,EAAA,CAAA,GAAI,KAAM,CAAA,MAAA,EAAQ,KAAK,SAAW,EAAA;AAChD,IAAM,MAAA,KAAA,CAAM,KAAM,CAAA,CAAA,EAAG,CAAI,GAAA,SAAA,CAAA,CAAA;AAAA,GAAA;AAAA,CAAA;AAShB,MAAA,YAAA,GAAe,CAAC,QAC3B,KAAA,QAAA,CAAS,MAAM,CAAG,EAAA,CAAA,CAAA,CAAG,iBAAsB,EAAA,GAAA,QAAA,CAAS,KAAM,CAAA,CAAA;;;;"}
@@ -1,7 +0,0 @@
1
- var clear = "Nulstil";
2
- var da = {
3
- clear: clear
4
- };
5
-
6
- export { clear, da as default };
7
- //# sourceMappingURL=da-DK.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"da-DK.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;"}
@@ -1,7 +0,0 @@
1
- var clear = "Zurücksetzen";
2
- var de = {
3
- clear: clear
4
- };
5
-
6
- export { clear, de as default };
7
- //# sourceMappingURL=de-DE.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"de-DE.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;"}
@@ -1,7 +0,0 @@
1
- var clear = "Clear";
2
- var en = {
3
- clear: clear
4
- };
5
-
6
- export { clear, en as default };
7
- //# sourceMappingURL=en-US.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"en-US.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;"}
@@ -1,7 +0,0 @@
1
- var clear = "Nollaa";
2
- var fi = {
3
- clear: clear
4
- };
5
-
6
- export { clear, fi as default };
7
- //# sourceMappingURL=fi-FI.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"fi-FI.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;"}
@@ -1,20 +0,0 @@
1
- import da from './da-DK.js';
2
- import en from './en-US.js';
3
- import de from './de-DE.js';
4
- import fi from './fi-FI.js';
5
- import no from './nb-NO.js';
6
- import pl from './pl-PL.js';
7
- import se from './sv-SE.js';
8
-
9
- var intlMessages = {
10
- "da-DK": da,
11
- "en-US": en,
12
- "de-DE": de,
13
- "fi-FI": fi,
14
- "nb-NO": no,
15
- "pl-PL": pl,
16
- "sv-SE": se
17
- };
18
-
19
- export { intlMessages as default };
20
- //# sourceMappingURL=index.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.js","sources":["../../../../src/DateField/i18n/index.ts"],"sourcesContent":["import da from './da-DK.json';\nimport en from './en-US.json';\nimport de from './de-DE.json';\nimport fi from './fi-FI.json';\nimport no from './nb-NO.json';\nimport pl from './pl-PL.json';\nimport se from './sv-SE.json';\n\nexport default {\n 'da-DK': da,\n 'en-US': en,\n 'de-DE': de,\n 'fi-FI': fi,\n 'nb-NO': no,\n 'pl-PL': pl,\n 'sv-SE': se,\n};\n"],"names":[],"mappings":";;;;;;;;AAQA,mBAAe;AAAA,EACb,OAAS,EAAA,EAAA;AAAA,EACT,OAAS,EAAA,EAAA;AAAA,EACT,OAAS,EAAA,EAAA;AAAA,EACT,OAAS,EAAA,EAAA;AAAA,EACT,OAAS,EAAA,EAAA;AAAA,EACT,OAAS,EAAA,EAAA;AAAA,EACT,OAAS,EAAA,EAAA;AAAA,CAAA;;;;"}
@@ -1,7 +0,0 @@
1
- var clear = "Nullstill";
2
- var no = {
3
- clear: clear
4
- };
5
-
6
- export { clear, no as default };
7
- //# sourceMappingURL=nb-NO.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"nb-NO.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;"}
@@ -1,7 +0,0 @@
1
- var clear = "Zresetuj";
2
- var pl = {
3
- clear: clear
4
- };
5
-
6
- export { clear, pl as default };
7
- //# sourceMappingURL=pl-PL.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"pl-PL.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;"}
@@ -1,7 +0,0 @@
1
- var clear = "Återställ";
2
- var se = {
3
- clear: clear
4
- };
5
-
6
- export { clear, se as default };
7
- //# sourceMappingURL=sv-SE.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"sv-SE.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;"}
@@ -1,129 +0,0 @@
1
- import React, { forwardRef, useRef } from 'react';
2
- import { useDatePicker } from '@react-aria/datepicker';
3
- import { useDatePickerState } from '@react-stately/datepicker';
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 { DateInput } from './DateInput.js';
9
- import { Calendar as Calendar$1 } from '../../Calendar/src/Calendar.js';
10
- import '../../Calendar/src/RangeCalendar.js';
11
- import '@react-stately/calendar';
12
- import '@react-stately/utils';
13
- import { DateFieldButton } from './DateFieldButton.js';
14
- import { PressResponder } from '@react-aria/interactions';
15
- import { useDialog } from '@react-aria/dialog';
16
-
17
- var __defProp = Object.defineProperty;
18
- var __defProps = Object.defineProperties;
19
- var __getOwnPropDescs = Object.getOwnPropertyDescriptors;
20
- var __getOwnPropSymbols = Object.getOwnPropertySymbols;
21
- var __hasOwnProp = Object.prototype.hasOwnProperty;
22
- var __propIsEnum = Object.prototype.propertyIsEnumerable;
23
- var __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
24
- var __spreadValues = (a, b) => {
25
- for (var prop in b || (b = {}))
26
- if (__hasOwnProp.call(b, prop))
27
- __defNormalProp(a, prop, b[prop]);
28
- if (__getOwnPropSymbols)
29
- for (var prop of __getOwnPropSymbols(b)) {
30
- if (__propIsEnum.call(b, prop))
31
- __defNormalProp(a, prop, b[prop]);
32
- }
33
- return a;
34
- };
35
- var __spreadProps = (a, b) => __defProps(a, __getOwnPropDescs(b));
36
- var __objRest = (source, exclude) => {
37
- var target = {};
38
- for (var prop in source)
39
- if (__hasOwnProp.call(source, prop) && exclude.indexOf(prop) < 0)
40
- target[prop] = source[prop];
41
- if (source != null && __getOwnPropSymbols)
42
- for (var prop of __getOwnPropSymbols(source)) {
43
- if (exclude.indexOf(prop) < 0 && __propIsEnum.call(source, prop))
44
- target[prop] = source[prop];
45
- }
46
- return target;
47
- };
48
- function _DateField(_a, ref) {
49
- var _b = _a, {
50
- error,
51
- note,
52
- contextualHelp,
53
- noClearButton = false,
54
- showWeekNumbers,
55
- size = "large",
56
- labelPlacement = "above",
57
- necessityIndicator = false
58
- } = _b, otherProps = __objRest(_b, [
59
- "error",
60
- "note",
61
- "contextualHelp",
62
- "noClearButton",
63
- "showWeekNumbers",
64
- "size",
65
- "labelPlacement",
66
- "necessityIndicator"
67
- ]);
68
- useThemeCheck();
69
- const groupRef = useRef(null);
70
- const dialogRef = useRef(null);
71
- const { styleProps } = useSapphireStyleProps(otherProps);
72
- const { dialogProps } = useDialog({}, dialogRef);
73
- const state = useDatePickerState(__spreadValues(__spreadValues({}, otherProps), error ? { validationState: "invalid" } : {}));
74
- const {
75
- groupProps,
76
- labelProps,
77
- fieldProps,
78
- buttonProps,
79
- dialogProps: dialogPropsFromDatePicker,
80
- calendarProps,
81
- descriptionProps,
82
- errorMessageProps
83
- } = useDatePicker(__spreadProps(__spreadValues({}, otherProps), {
84
- description: note
85
- }), state, groupRef);
86
- const isMedium = size === "medium";
87
- return /* @__PURE__ */ React.createElement(Field, __spreadProps(__spreadValues({}, otherProps), {
88
- noShrink: true,
89
- isDisabled: otherProps.isDisabled,
90
- error: state.validationState === "invalid",
91
- size,
92
- ref,
93
- labelPlacement
94
- }), otherProps.label && /* @__PURE__ */ React.createElement(Field.Label, null, /* @__PURE__ */ React.createElement(Label, __spreadProps(__spreadValues({}, labelProps), {
95
- size,
96
- necessityIndicator: otherProps.isRequired && necessityIndicator ? "required" : !otherProps.isRequired && necessityIndicator ? "optional" : void 0,
97
- contextualHelp
98
- }), otherProps.label)), /* @__PURE__ */ React.createElement(Field.Control, null, /* @__PURE__ */ React.createElement("div", __spreadValues(__spreadProps(__spreadValues({}, groupProps), {
99
- ref: groupRef,
100
- className: clsx(styles["sapphire-date-field"], {
101
- [styles["sapphire-date-field--error"]]: state.validationState === "invalid",
102
- [styles["sapphire-date-field--medium"]]: isMedium
103
- })
104
- }), styleProps.style.width ? { style: { width: styleProps.style.width } } : {}), /* @__PURE__ */ React.createElement(PressResponder, __spreadProps(__spreadValues({}, buttonProps), {
105
- isPressed: state.isOpen
106
- }), /* @__PURE__ */ React.createElement(DateFieldButton, {
107
- isDisabled: otherProps.isDisabled || otherProps.isReadOnly
108
- }, /* @__PURE__ */ React.createElement(Icon, {
109
- size: isMedium ? "m" : "l"
110
- }, /* @__PURE__ */ React.createElement(Calendar, null)))), /* @__PURE__ */ React.createElement(DateInput, __spreadProps(__spreadValues({}, fieldProps), {
111
- noClearButton,
112
- size
113
- })))), (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, {
114
- state,
115
- triggerRef: groupRef,
116
- placement: "bottom start"
117
- }, /* @__PURE__ */ React.createElement("div", __spreadValues(__spreadValues({
118
- ref: dialogRef
119
- }, dialogProps), dialogPropsFromDatePicker), /* @__PURE__ */ React.createElement(View, {
120
- padding: tokens.size.spacing50
121
- }, /* @__PURE__ */ React.createElement(Calendar$1, __spreadProps(__spreadValues({}, calendarProps), {
122
- defaultFocusedValue: state.dateValue,
123
- showWeekNumbers
124
- }))))));
125
- }
126
- const DateField = forwardRef(_DateField);
127
-
128
- export { DateField };
129
- //# sourceMappingURL=DateField.js.map