@vuu-ui/vuu-ui-controls 0.8.81 → 0.8.83

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 (225) hide show
  1. package/cjs/calendar/Calendar.css.js +1 -1
  2. package/cjs/calendar/Calendar.js +28 -9
  3. package/cjs/calendar/Calendar.js.map +1 -1
  4. package/cjs/calendar/internal/CalendarCarousel.css.js +1 -1
  5. package/cjs/calendar/internal/CalendarCarousel.js +9 -31
  6. package/cjs/calendar/internal/CalendarCarousel.js.map +1 -1
  7. package/cjs/calendar/internal/CalendarContext.js.map +1 -1
  8. package/cjs/calendar/internal/CalendarDay.css.js +1 -1
  9. package/cjs/calendar/internal/CalendarDay.js +33 -30
  10. package/cjs/calendar/internal/CalendarDay.js.map +1 -1
  11. package/cjs/calendar/internal/CalendarMonth.css.js +1 -1
  12. package/cjs/calendar/internal/CalendarMonth.js +3 -5
  13. package/cjs/calendar/internal/CalendarMonth.js.map +1 -1
  14. package/cjs/calendar/internal/CalendarNavigation.css.js +1 -1
  15. package/cjs/calendar/internal/CalendarNavigation.js +9 -21
  16. package/cjs/calendar/internal/CalendarNavigation.js.map +1 -1
  17. package/cjs/calendar/internal/CalendarWeekHeader.css.js +1 -1
  18. package/cjs/calendar/internal/CalendarWeekHeader.js +7 -7
  19. package/cjs/calendar/internal/CalendarWeekHeader.js.map +1 -1
  20. package/cjs/calendar/internal/useFocusManagement.js +4 -1
  21. package/cjs/calendar/internal/useFocusManagement.js.map +1 -1
  22. package/cjs/calendar/internal/utils.js +6 -5
  23. package/cjs/calendar/internal/utils.js.map +1 -1
  24. package/cjs/calendar/useCalendar.js +46 -14
  25. package/cjs/calendar/useCalendar.js.map +1 -1
  26. package/cjs/calendar/useCalendarDay.js +15 -5
  27. package/cjs/calendar/useCalendarDay.js.map +1 -1
  28. package/cjs/calendar/useSelection.js +14 -8
  29. package/cjs/calendar/useSelection.js.map +1 -1
  30. package/cjs/common-hooks/useSelection.js.map +1 -1
  31. package/cjs/cycle-state-button/CycleStateButton.js.map +1 -1
  32. package/cjs/date-input/DateInput.css.js +1 -1
  33. package/cjs/date-input/DateInput.js +245 -58
  34. package/cjs/date-input/DateInput.js.map +1 -1
  35. package/cjs/date-picker/DatePicker.js +169 -0
  36. package/cjs/date-picker/DatePicker.js.map +1 -0
  37. package/cjs/date-picker/DatePickerContext.js +26 -0
  38. package/cjs/date-picker/DatePickerContext.js.map +1 -0
  39. package/cjs/date-picker/DatePickerPanel.css.js +6 -0
  40. package/cjs/date-picker/DatePickerPanel.css.js.map +1 -0
  41. package/cjs/date-picker/DatePickerPanel.js +146 -0
  42. package/cjs/date-picker/DatePickerPanel.js.map +1 -0
  43. package/cjs/drag-drop/Draggable.js.map +1 -1
  44. package/cjs/drag-drop/dragDropTypes.js.map +1 -1
  45. package/cjs/drag-drop/drop-target-utils.js.map +1 -1
  46. package/cjs/drag-drop/useDragDisplacers.js.map +1 -1
  47. package/cjs/drag-drop/useDragDrop.js.map +1 -1
  48. package/cjs/drag-drop/useDragDropNaturalMovement.js.map +1 -1
  49. package/cjs/drag-drop/useGlobalDragDrop.js.map +1 -1
  50. package/cjs/dropdown-base/DropdownBase.js.map +1 -1
  51. package/cjs/dropdown-base/useClickAway.js.map +1 -1
  52. package/cjs/editable/editable-utils.js.map +1 -1
  53. package/cjs/editable/useEditableText.js.map +1 -1
  54. package/cjs/index.js +8 -2
  55. package/cjs/index.js.map +1 -1
  56. package/cjs/instrument-picker/InstrumentPicker.js.map +1 -1
  57. package/cjs/instrument-picker/useInstrumentPicker.js.map +1 -1
  58. package/cjs/list/List.js.map +1 -1
  59. package/cjs/list/common-hooks/useKeyboardNavigation.js.map +1 -1
  60. package/cjs/list/useList.js.map +1 -1
  61. package/cjs/list/useListHeight.js.map +1 -1
  62. package/cjs/measured-container/useMeasuredContainer.js.map +1 -1
  63. package/cjs/overflow-container/OverflowContainer.js.map +1 -1
  64. package/cjs/overflow-container/overflow-utils.js.map +1 -1
  65. package/cjs/overflow-container/useOverflowContainer.js.map +1 -1
  66. package/cjs/price-ticker/PriceTicker.js.map +1 -1
  67. package/cjs/split-button/SplitButton.js.map +1 -1
  68. package/cjs/split-button/useSplitButton.js.map +1 -1
  69. package/cjs/tabstrip/Tab.js.map +1 -1
  70. package/cjs/tabstrip/TabMenu.js.map +1 -1
  71. package/cjs/tabstrip/TabMenuOptions.js.map +1 -1
  72. package/cjs/tabstrip/Tabstrip.js.map +1 -1
  73. package/cjs/tabstrip/tabstrip-dom-utils.js.map +1 -1
  74. package/cjs/tabstrip/useAnimatedSelectionThumb.js.map +1 -1
  75. package/cjs/tabstrip/useKeyboardNavigation.js.map +1 -1
  76. package/cjs/tabstrip/useTabstrip.js.map +1 -1
  77. package/cjs/toolbar/Toolbar.js.map +1 -1
  78. package/cjs/toolbar/toolbar-dom-utils.js.map +1 -1
  79. package/cjs/toolbar/useKeyboardNavigation.js.map +1 -1
  80. package/cjs/toolbar/useSelection.js.map +1 -1
  81. package/cjs/toolbar/useToolbar.js.map +1 -1
  82. package/cjs/utils/isPlainObject.js +6 -0
  83. package/cjs/utils/isPlainObject.js.map +1 -0
  84. package/cjs/vuu-date-picker/VuuDatePicker.js +122 -0
  85. package/cjs/vuu-date-picker/VuuDatePicker.js.map +1 -0
  86. package/cjs/vuu-input/VuuInput.js.map +1 -1
  87. package/cjs/vuu-typeahead-input/VuuTypeaheadInput.js +2 -0
  88. package/cjs/vuu-typeahead-input/VuuTypeaheadInput.js.map +1 -1
  89. package/cjs/vuu-typeahead-input/useVuuTypeahead.js +3 -0
  90. package/cjs/vuu-typeahead-input/useVuuTypeahead.js.map +1 -1
  91. package/esm/calendar/Calendar.css.js +1 -1
  92. package/esm/calendar/Calendar.js +28 -9
  93. package/esm/calendar/Calendar.js.map +1 -1
  94. package/esm/calendar/internal/CalendarCarousel.css.js +1 -1
  95. package/esm/calendar/internal/CalendarCarousel.js +10 -32
  96. package/esm/calendar/internal/CalendarCarousel.js.map +1 -1
  97. package/esm/calendar/internal/CalendarContext.js.map +1 -1
  98. package/esm/calendar/internal/CalendarDay.css.js +1 -1
  99. package/esm/calendar/internal/CalendarDay.js +34 -31
  100. package/esm/calendar/internal/CalendarDay.js.map +1 -1
  101. package/esm/calendar/internal/CalendarMonth.css.js +1 -1
  102. package/esm/calendar/internal/CalendarMonth.js +3 -5
  103. package/esm/calendar/internal/CalendarMonth.js.map +1 -1
  104. package/esm/calendar/internal/CalendarNavigation.css.js +1 -1
  105. package/esm/calendar/internal/CalendarNavigation.js +9 -21
  106. package/esm/calendar/internal/CalendarNavigation.js.map +1 -1
  107. package/esm/calendar/internal/CalendarWeekHeader.css.js +1 -1
  108. package/esm/calendar/internal/CalendarWeekHeader.js +7 -7
  109. package/esm/calendar/internal/CalendarWeekHeader.js.map +1 -1
  110. package/esm/calendar/internal/useFocusManagement.js +4 -1
  111. package/esm/calendar/internal/useFocusManagement.js.map +1 -1
  112. package/esm/calendar/internal/utils.js +7 -7
  113. package/esm/calendar/internal/utils.js.map +1 -1
  114. package/esm/calendar/useCalendar.js +48 -16
  115. package/esm/calendar/useCalendar.js.map +1 -1
  116. package/esm/calendar/useCalendarDay.js +15 -5
  117. package/esm/calendar/useCalendarDay.js.map +1 -1
  118. package/esm/calendar/useSelection.js +13 -9
  119. package/esm/calendar/useSelection.js.map +1 -1
  120. package/esm/common-hooks/useSelection.js.map +1 -1
  121. package/esm/cycle-state-button/CycleStateButton.js.map +1 -1
  122. package/esm/date-input/DateInput.css.js +1 -1
  123. package/esm/date-input/DateInput.js +247 -60
  124. package/esm/date-input/DateInput.js.map +1 -1
  125. package/esm/date-picker/DatePicker.js +167 -0
  126. package/esm/date-picker/DatePicker.js.map +1 -0
  127. package/esm/date-picker/DatePickerContext.js +23 -0
  128. package/esm/date-picker/DatePickerContext.js.map +1 -0
  129. package/esm/date-picker/DatePickerPanel.css.js +4 -0
  130. package/esm/date-picker/DatePickerPanel.css.js.map +1 -0
  131. package/esm/date-picker/DatePickerPanel.js +144 -0
  132. package/esm/date-picker/DatePickerPanel.js.map +1 -0
  133. package/esm/drag-drop/Draggable.js.map +1 -1
  134. package/esm/drag-drop/dragDropTypes.js.map +1 -1
  135. package/esm/drag-drop/drop-target-utils.js.map +1 -1
  136. package/esm/drag-drop/useDragDisplacers.js.map +1 -1
  137. package/esm/drag-drop/useDragDrop.js.map +1 -1
  138. package/esm/drag-drop/useDragDropNaturalMovement.js.map +1 -1
  139. package/esm/drag-drop/useGlobalDragDrop.js.map +1 -1
  140. package/esm/dropdown-base/DropdownBase.js.map +1 -1
  141. package/esm/dropdown-base/useClickAway.js.map +1 -1
  142. package/esm/editable/editable-utils.js.map +1 -1
  143. package/esm/editable/useEditableText.js.map +1 -1
  144. package/esm/index.js +4 -2
  145. package/esm/index.js.map +1 -1
  146. package/esm/instrument-picker/InstrumentPicker.js.map +1 -1
  147. package/esm/instrument-picker/useInstrumentPicker.js.map +1 -1
  148. package/esm/list/List.js.map +1 -1
  149. package/esm/list/common-hooks/useKeyboardNavigation.js.map +1 -1
  150. package/esm/list/useList.js.map +1 -1
  151. package/esm/list/useListHeight.js.map +1 -1
  152. package/esm/measured-container/useMeasuredContainer.js.map +1 -1
  153. package/esm/overflow-container/OverflowContainer.js.map +1 -1
  154. package/esm/overflow-container/overflow-utils.js.map +1 -1
  155. package/esm/overflow-container/useOverflowContainer.js.map +1 -1
  156. package/esm/price-ticker/PriceTicker.js.map +1 -1
  157. package/esm/split-button/SplitButton.js.map +1 -1
  158. package/esm/split-button/useSplitButton.js.map +1 -1
  159. package/esm/tabstrip/Tab.js.map +1 -1
  160. package/esm/tabstrip/TabMenu.js.map +1 -1
  161. package/esm/tabstrip/TabMenuOptions.js.map +1 -1
  162. package/esm/tabstrip/Tabstrip.js.map +1 -1
  163. package/esm/tabstrip/tabstrip-dom-utils.js.map +1 -1
  164. package/esm/tabstrip/useAnimatedSelectionThumb.js.map +1 -1
  165. package/esm/tabstrip/useKeyboardNavigation.js.map +1 -1
  166. package/esm/tabstrip/useTabstrip.js.map +1 -1
  167. package/esm/toolbar/Toolbar.js.map +1 -1
  168. package/esm/toolbar/toolbar-dom-utils.js.map +1 -1
  169. package/esm/toolbar/useKeyboardNavigation.js.map +1 -1
  170. package/esm/toolbar/useSelection.js.map +1 -1
  171. package/esm/toolbar/useToolbar.js.map +1 -1
  172. package/esm/utils/isPlainObject.js +4 -0
  173. package/esm/utils/isPlainObject.js.map +1 -0
  174. package/esm/vuu-date-picker/VuuDatePicker.js +120 -0
  175. package/esm/vuu-date-picker/VuuDatePicker.js.map +1 -0
  176. package/esm/vuu-input/VuuInput.js.map +1 -1
  177. package/esm/vuu-typeahead-input/VuuTypeaheadInput.js +2 -0
  178. package/esm/vuu-typeahead-input/VuuTypeaheadInput.js.map +1 -1
  179. package/esm/vuu-typeahead-input/useVuuTypeahead.js +3 -0
  180. package/esm/vuu-typeahead-input/useVuuTypeahead.js.map +1 -1
  181. package/package.json +10 -10
  182. package/types/calendar/Calendar.d.ts +5 -3
  183. package/types/calendar/internal/CalendarCarousel.d.ts +1 -1
  184. package/types/calendar/internal/CalendarContext.d.ts +3 -3
  185. package/types/calendar/internal/CalendarDay.d.ts +4 -4
  186. package/types/calendar/internal/CalendarMonth.d.ts +3 -4
  187. package/types/calendar/internal/CalendarNavigation.d.ts +4 -3
  188. package/types/calendar/internal/CalendarWeekHeader.d.ts +1 -1
  189. package/types/calendar/internal/useFocusManagement.d.ts +2 -2
  190. package/types/calendar/internal/utils.d.ts +2 -1
  191. package/types/calendar/useCalendar.d.ts +9 -12
  192. package/types/calendar/useCalendarDay.d.ts +9 -6
  193. package/types/calendar/useSelection.d.ts +6 -3
  194. package/types/date-input/DateInput.d.ts +59 -11
  195. package/types/date-input/index.d.ts +0 -1
  196. package/types/date-picker/DatePicker.d.ts +66 -0
  197. package/types/date-picker/DatePickerContext.d.ts +20 -0
  198. package/types/date-picker/DatePickerPanel.d.ts +10 -0
  199. package/types/date-picker/index.d.ts +1 -0
  200. package/types/drag-drop/drop-target-utils.d.ts +16 -16
  201. package/types/drag-drop/useAutoScroll.d.ts +1 -1
  202. package/types/index.d.ts +2 -0
  203. package/types/instrument-search/useInstrumentSearch.d.ts +1 -1
  204. package/types/split-button/useSplitButton.d.ts +13 -13
  205. package/types/tabstrip/Tab.d.ts +1 -1
  206. package/types/toolbar/useToolbar.d.ts +1 -1
  207. package/types/utils/index.d.ts +1 -0
  208. package/types/utils/isPlainObject.d.ts +1 -0
  209. package/types/vuu-date-picker/VuuDatePicker.d.ts +9 -0
  210. package/types/vuu-date-picker/index.d.ts +1 -0
  211. package/types/vuu-input/VuuInput.d.ts +3 -3
  212. package/types/vuu-typeahead-input/VuuTypeaheadInput.d.ts +3 -1
  213. package/types/vuu-typeahead-input/useVuuTypeahead.d.ts +2 -2
  214. package/cjs/date-input/DateRangeInput.js +0 -77
  215. package/cjs/date-input/DateRangeInput.js.map +0 -1
  216. package/cjs/date-input/useDatePicker.js +0 -20
  217. package/cjs/date-input/useDatePicker.js.map +0 -1
  218. package/esm/date-input/DateRangeInput.js +0 -75
  219. package/esm/date-input/DateRangeInput.js.map +0 -1
  220. package/esm/date-input/useDatePicker.js +0 -18
  221. package/esm/date-input/useDatePicker.js.map +0 -1
  222. package/types/date-input/DateRangeInput.d.ts +0 -11
  223. package/types/date-input/types.d.ts +0 -16
  224. package/types/date-input/useBaseDatePickerDropdown.d.ts +0 -15
  225. package/types/date-input/useDatePicker.d.ts +0 -7
@@ -1,6 +1,6 @@
1
1
  'use strict';
2
2
 
3
- var calendarCss = ".saltCalendar {\n width: min-content;\n}\n\n.saltCalendar .saltIcon {\n display: inline-block;\n}\n";
3
+ var calendarCss = ".saltCalendar {\n width: min-content;\n background: var(--salt-container-primary-background);\n padding: var(--salt-spacing-100);\n}\n";
4
4
 
5
5
  module.exports = calendarCss;
6
6
  //# sourceMappingURL=Calendar.css.js.map
@@ -2,8 +2,6 @@
2
2
 
3
3
  var jsxRuntime = require('react/jsx-runtime');
4
4
  var core = require('@salt-ds/core');
5
- var styles = require('@salt-ds/styles');
6
- var window = require('@salt-ds/window');
7
5
  var cx = require('clsx');
8
6
  var React = require('react');
9
7
  var CalendarCarousel = require('./internal/CalendarCarousel.js');
@@ -11,25 +9,34 @@ var CalendarContext = require('./internal/CalendarContext.js');
11
9
  var CalendarNavigation = require('./internal/CalendarNavigation.js');
12
10
  var CalendarWeekHeader = require('./internal/CalendarWeekHeader.js');
13
11
  var useCalendar = require('./useCalendar.js');
12
+ var styles = require('@salt-ds/styles');
13
+ var window = require('@salt-ds/window');
14
+ var date = require('@internationalized/date');
14
15
  var Calendar$1 = require('./Calendar.css.js');
16
+ var utils = require('./internal/utils.js');
15
17
 
16
18
  const withBaseName = core.makePrefixer("saltCalendar");
17
19
  const Calendar = React.forwardRef(
18
20
  function Calendar2(props, ref) {
21
+ const {
22
+ className,
23
+ id,
24
+ renderDayContents,
25
+ hideYearDropdown,
26
+ TooltipProps,
27
+ borderedDropdown,
28
+ ...rest
29
+ } = props;
19
30
  const targetWindow = window.useWindow();
20
31
  styles.useComponentCssInjection({
21
32
  testId: "salt-calendar",
22
33
  css: Calendar$1,
23
34
  window: targetWindow
24
35
  });
25
- const {
26
- className,
27
- renderDayContents,
36
+ const { state, helpers } = useCalendar.useCalendar({
28
37
  hideYearDropdown,
29
- TooltipProps,
30
38
  ...rest
31
- } = props;
32
- const { state, helpers } = useCalendar.useCalendar({ hideYearDropdown, ...rest });
39
+ });
33
40
  const { setCalendarFocused } = helpers;
34
41
  const handleFocus = React.useCallback(() => {
35
42
  setCalendarFocused(true);
@@ -37,6 +44,10 @@ const Calendar = React.forwardRef(
37
44
  const handleBlur = React.useCallback(() => {
38
45
  setCalendarFocused(false);
39
46
  }, [setCalendarFocused]);
47
+ const calendarLabel = new date.DateFormatter(utils.getCurrentLocale(), {
48
+ month: "long",
49
+ year: "numeric"
50
+ }).format(state.visibleMonth.toDate(date.getLocalTimeZone()));
40
51
  return /* @__PURE__ */ jsxRuntime.jsx(
41
52
  CalendarContext.CalendarContext.Provider,
42
53
  {
@@ -48,10 +59,18 @@ const Calendar = React.forwardRef(
48
59
  "div",
49
60
  {
50
61
  className: cx.clsx(withBaseName(), className),
62
+ id,
51
63
  role: "application",
64
+ "aria-label": calendarLabel,
52
65
  ref,
53
66
  children: [
54
- /* @__PURE__ */ jsxRuntime.jsx(CalendarNavigation.CalendarNavigation, { hideYearDropdown }),
67
+ /* @__PURE__ */ jsxRuntime.jsx(
68
+ CalendarNavigation.CalendarNavigation,
69
+ {
70
+ borderedDropdown,
71
+ hideYearDropdown
72
+ }
73
+ ),
55
74
  /* @__PURE__ */ jsxRuntime.jsx(CalendarWeekHeader.CalendarWeekHeader, {}),
56
75
  /* @__PURE__ */ jsxRuntime.jsx(
57
76
  CalendarCarousel.CalendarCarousel,
@@ -1 +1 @@
1
- {"version":3,"file":"Calendar.js","sources":["../../src/calendar/Calendar.tsx"],"sourcesContent":["import { makePrefixer } from \"@salt-ds/core\";\nimport { useComponentCssInjection } from \"@salt-ds/styles\";\nimport { useWindow } from \"@salt-ds/window\";\nimport { clsx } from \"clsx\";\nimport { forwardRef, useCallback } from \"react\";\nimport {\n CalendarCarousel,\n CalendarCarouselProps,\n} from \"./internal/CalendarCarousel\";\nimport { CalendarContext } from \"./internal/CalendarContext\";\nimport {\n CalendarNavigation,\n CalendarNavigationProps,\n} from \"./internal/CalendarNavigation\";\nimport { CalendarWeekHeader } from \"./internal/CalendarWeekHeader\";\nimport { useCalendar, useCalendarProps } from \"./useCalendar\";\n\nimport calendarCss from \"./Calendar.css\";\n\nexport type CalendarProps = useCalendarProps & {\n className?: string;\n renderDayContents?: CalendarCarouselProps[\"renderDayContents\"];\n hideYearDropdown?: CalendarNavigationProps[\"hideYearDropdown\"];\n TooltipProps?: CalendarCarouselProps[\"TooltipProps\"];\n hideOutOfRangeDates?: CalendarCarouselProps[\"hideOutOfRangeDates\"];\n};\n\nconst withBaseName = makePrefixer(\"saltCalendar\");\n\nexport const Calendar = forwardRef<HTMLDivElement, CalendarProps>(\n function Calendar(props, ref) {\n const targetWindow = useWindow();\n useComponentCssInjection({\n testId: \"salt-calendar\",\n css: calendarCss,\n window: targetWindow,\n });\n\n const {\n className,\n renderDayContents,\n hideYearDropdown,\n TooltipProps,\n ...rest\n } = props;\n\n const { state, helpers } = useCalendar({ hideYearDropdown, ...rest });\n\n const { setCalendarFocused } = helpers;\n\n const handleFocus = useCallback(() => {\n setCalendarFocused(true);\n }, [setCalendarFocused]);\n\n const handleBlur = useCallback(() => {\n setCalendarFocused(false);\n }, [setCalendarFocused]);\n\n return (\n <CalendarContext.Provider\n value={{\n state,\n helpers,\n }}\n >\n <div\n className={clsx(withBaseName(), className)}\n role=\"application\"\n ref={ref}\n >\n <CalendarNavigation hideYearDropdown={hideYearDropdown} />\n <CalendarWeekHeader />\n <CalendarCarousel\n onFocus={handleFocus}\n onBlur={handleBlur}\n renderDayContents={renderDayContents}\n TooltipProps={TooltipProps}\n />\n </div>\n </CalendarContext.Provider>\n );\n }\n);\n"],"names":["makePrefixer","forwardRef","Calendar","useWindow","useComponentCssInjection","calendarCss","useCalendar","useCallback","jsx","CalendarContext","jsxs","clsx","CalendarNavigation","CalendarWeekHeader","CalendarCarousel"],"mappings":";;;;;;;;;;;;;;;AA2BA,MAAM,YAAA,GAAeA,kBAAa,cAAc,CAAA,CAAA;AAEzC,MAAM,QAAW,GAAAC,gBAAA;AAAA,EACtB,SAASC,SAAS,CAAA,KAAA,EAAO,GAAK,EAAA;AAC5B,IAAA,MAAM,eAAeC,gBAAU,EAAA,CAAA;AAC/B,IAAyBC,+BAAA,CAAA;AAAA,MACvB,MAAQ,EAAA,eAAA;AAAA,MACR,GAAK,EAAAC,UAAA;AAAA,MACL,MAAQ,EAAA,YAAA;AAAA,KACT,CAAA,CAAA;AAED,IAAM,MAAA;AAAA,MACJ,SAAA;AAAA,MACA,iBAAA;AAAA,MACA,gBAAA;AAAA,MACA,YAAA;AAAA,MACA,GAAG,IAAA;AAAA,KACD,GAAA,KAAA,CAAA;AAEJ,IAAM,MAAA,EAAE,OAAO,OAAQ,EAAA,GAAIC,wBAAY,EAAE,gBAAA,EAAkB,GAAG,IAAA,EAAM,CAAA,CAAA;AAEpE,IAAM,MAAA,EAAE,oBAAuB,GAAA,OAAA,CAAA;AAE/B,IAAM,MAAA,WAAA,GAAcC,kBAAY,MAAM;AACpC,MAAA,kBAAA,CAAmB,IAAI,CAAA,CAAA;AAAA,KACzB,EAAG,CAAC,kBAAkB,CAAC,CAAA,CAAA;AAEvB,IAAM,MAAA,UAAA,GAAaA,kBAAY,MAAM;AACnC,MAAA,kBAAA,CAAmB,KAAK,CAAA,CAAA;AAAA,KAC1B,EAAG,CAAC,kBAAkB,CAAC,CAAA,CAAA;AAEvB,IACE,uBAAAC,cAAA;AAAA,MAACC,+BAAgB,CAAA,QAAA;AAAA,MAAhB;AAAA,QACC,KAAO,EAAA;AAAA,UACL,KAAA;AAAA,UACA,OAAA;AAAA,SACF;AAAA,QAEA,QAAA,kBAAAC,eAAA;AAAA,UAAC,KAAA;AAAA,UAAA;AAAA,YACC,SAAW,EAAAC,OAAA,CAAK,YAAa,EAAA,EAAG,SAAS,CAAA;AAAA,YACzC,IAAK,EAAA,aAAA;AAAA,YACL,GAAA;AAAA,YAEA,QAAA,EAAA;AAAA,8BAAAH,cAAA,CAACI,yCAAmB,gBAAoC,EAAA,CAAA;AAAA,6CACvDC,qCAAmB,EAAA,EAAA,CAAA;AAAA,8BACpBL,cAAA;AAAA,gBAACM,iCAAA;AAAA,gBAAA;AAAA,kBACC,OAAS,EAAA,WAAA;AAAA,kBACT,MAAQ,EAAA,UAAA;AAAA,kBACR,iBAAA;AAAA,kBACA,YAAA;AAAA,iBAAA;AAAA,eACF;AAAA,aAAA;AAAA,WAAA;AAAA,SACF;AAAA,OAAA;AAAA,KACF,CAAA;AAAA,GAEJ;AACF;;;;"}
1
+ {"version":3,"file":"Calendar.js","sources":["../../src/calendar/Calendar.tsx"],"sourcesContent":["import { makePrefixer } from \"@salt-ds/core\";\nimport { clsx } from \"clsx\";\nimport { forwardRef, useCallback } from \"react\";\nimport {\n CalendarCarousel,\n type CalendarCarouselProps,\n} from \"./internal/CalendarCarousel\";\nimport { CalendarContext } from \"./internal/CalendarContext\";\nimport {\n CalendarNavigation,\n type CalendarNavigationProps,\n} from \"./internal/CalendarNavigation\";\nimport { CalendarWeekHeader } from \"./internal/CalendarWeekHeader\";\nimport { useCalendar, type useCalendarProps } from \"./useCalendar\";\n\nimport { useComponentCssInjection } from \"@salt-ds/styles\";\nimport { useWindow } from \"@salt-ds/window\";\n\nimport { DateFormatter, getLocalTimeZone } from \"@internationalized/date\";\nimport calendarCss from \"./Calendar.css\";\nimport { getCurrentLocale } from \"./internal/utils\";\n\nexport type CalendarProps = useCalendarProps & {\n className?: string;\n id?: string;\n renderDayContents?: CalendarCarouselProps[\"renderDayContents\"];\n hideYearDropdown?: CalendarNavigationProps[\"hideYearDropdown\"];\n borderedDropdown?: CalendarNavigationProps[\"borderedDropdown\"];\n TooltipProps?: CalendarCarouselProps[\"TooltipProps\"];\n hideOutOfRangeDates?: CalendarCarouselProps[\"hideOutOfRangeDates\"];\n};\n\nconst withBaseName = makePrefixer(\"saltCalendar\");\n\nexport const Calendar = forwardRef<HTMLDivElement, CalendarProps>(\n function Calendar(props, ref) {\n const {\n className,\n id,\n renderDayContents,\n hideYearDropdown,\n TooltipProps,\n borderedDropdown,\n ...rest\n } = props;\n\n const targetWindow = useWindow();\n useComponentCssInjection({\n testId: \"salt-calendar\",\n css: calendarCss,\n window: targetWindow,\n });\n\n const { state, helpers } = useCalendar({\n hideYearDropdown,\n ...rest,\n });\n\n const { setCalendarFocused } = helpers;\n\n const handleFocus = useCallback(() => {\n setCalendarFocused(true);\n }, [setCalendarFocused]);\n\n const handleBlur = useCallback(() => {\n setCalendarFocused(false);\n }, [setCalendarFocused]);\n\n const calendarLabel = new DateFormatter(getCurrentLocale(), {\n month: \"long\",\n year: \"numeric\",\n }).format(state.visibleMonth.toDate(getLocalTimeZone()));\n return (\n <CalendarContext.Provider\n value={{\n state,\n helpers,\n }}\n >\n <div\n className={clsx(withBaseName(), className)}\n id={id}\n role=\"application\"\n aria-label={calendarLabel}\n ref={ref}\n >\n <CalendarNavigation\n borderedDropdown={borderedDropdown}\n hideYearDropdown={hideYearDropdown}\n />\n <CalendarWeekHeader />\n <CalendarCarousel\n onFocus={handleFocus}\n onBlur={handleBlur}\n renderDayContents={renderDayContents}\n TooltipProps={TooltipProps}\n />\n </div>\n </CalendarContext.Provider>\n );\n },\n);\n"],"names":["makePrefixer","forwardRef","Calendar","useWindow","useComponentCssInjection","calendarCss","useCalendar","useCallback","DateFormatter","getCurrentLocale","getLocalTimeZone","jsx","CalendarContext","jsxs","clsx","CalendarNavigation","CalendarWeekHeader","CalendarCarousel"],"mappings":";;;;;;;;;;;;;;;;;AAgCA,MAAM,YAAA,GAAeA,kBAAa,cAAc,CAAA,CAAA;AAEzC,MAAM,QAAW,GAAAC,gBAAA;AAAA,EACtB,SAASC,SAAS,CAAA,KAAA,EAAO,GAAK,EAAA;AAC5B,IAAM,MAAA;AAAA,MACJ,SAAA;AAAA,MACA,EAAA;AAAA,MACA,iBAAA;AAAA,MACA,gBAAA;AAAA,MACA,YAAA;AAAA,MACA,gBAAA;AAAA,MACA,GAAG,IAAA;AAAA,KACD,GAAA,KAAA,CAAA;AAEJ,IAAA,MAAM,eAAeC,gBAAU,EAAA,CAAA;AAC/B,IAAyBC,+BAAA,CAAA;AAAA,MACvB,MAAQ,EAAA,eAAA;AAAA,MACR,GAAK,EAAAC,UAAA;AAAA,MACL,MAAQ,EAAA,YAAA;AAAA,KACT,CAAA,CAAA;AAED,IAAA,MAAM,EAAE,KAAA,EAAO,OAAQ,EAAA,GAAIC,uBAAY,CAAA;AAAA,MACrC,gBAAA;AAAA,MACA,GAAG,IAAA;AAAA,KACJ,CAAA,CAAA;AAED,IAAM,MAAA,EAAE,oBAAuB,GAAA,OAAA,CAAA;AAE/B,IAAM,MAAA,WAAA,GAAcC,kBAAY,MAAM;AACpC,MAAA,kBAAA,CAAmB,IAAI,CAAA,CAAA;AAAA,KACzB,EAAG,CAAC,kBAAkB,CAAC,CAAA,CAAA;AAEvB,IAAM,MAAA,UAAA,GAAaA,kBAAY,MAAM;AACnC,MAAA,kBAAA,CAAmB,KAAK,CAAA,CAAA;AAAA,KAC1B,EAAG,CAAC,kBAAkB,CAAC,CAAA,CAAA;AAEvB,IAAA,MAAM,aAAgB,GAAA,IAAIC,kBAAc,CAAAC,sBAAA,EAAoB,EAAA;AAAA,MAC1D,KAAO,EAAA,MAAA;AAAA,MACP,IAAM,EAAA,SAAA;AAAA,KACP,EAAE,MAAO,CAAA,KAAA,CAAM,aAAa,MAAO,CAAAC,qBAAA,EAAkB,CAAC,CAAA,CAAA;AACvD,IACE,uBAAAC,cAAA;AAAA,MAACC,+BAAgB,CAAA,QAAA;AAAA,MAAhB;AAAA,QACC,KAAO,EAAA;AAAA,UACL,KAAA;AAAA,UACA,OAAA;AAAA,SACF;AAAA,QAEA,QAAA,kBAAAC,eAAA;AAAA,UAAC,KAAA;AAAA,UAAA;AAAA,YACC,SAAW,EAAAC,OAAA,CAAK,YAAa,EAAA,EAAG,SAAS,CAAA;AAAA,YACzC,EAAA;AAAA,YACA,IAAK,EAAA,aAAA;AAAA,YACL,YAAY,EAAA,aAAA;AAAA,YACZ,GAAA;AAAA,YAEA,QAAA,EAAA;AAAA,8BAAAH,cAAA;AAAA,gBAACI,qCAAA;AAAA,gBAAA;AAAA,kBACC,gBAAA;AAAA,kBACA,gBAAA;AAAA,iBAAA;AAAA,eACF;AAAA,6CACCC,qCAAmB,EAAA,EAAA,CAAA;AAAA,8BACpBL,cAAA;AAAA,gBAACM,iCAAA;AAAA,gBAAA;AAAA,kBACC,OAAS,EAAA,WAAA;AAAA,kBACT,MAAQ,EAAA,UAAA;AAAA,kBACR,iBAAA;AAAA,kBACA,YAAA;AAAA,iBAAA;AAAA,eACF;AAAA,aAAA;AAAA,WAAA;AAAA,SACF;AAAA,OAAA;AAAA,KACF,CAAA;AAAA,GAEJ;AACF;;;;"}
@@ -1,6 +1,6 @@
1
1
  'use strict';
2
2
 
3
- var calendarCarouselCss = ".saltCalendarCarousel-track {\n display: grid;\n grid-auto-flow: column;\n}\n\n.saltCalendarCarousel-track > * {\n position: absolute;\n left: 0;\n width: 100%;\n}\n\n.saltCalendarCarousel-track > :nth-child(2) {\n position: relative;\n}\n\n.saltCalendarCarousel-shouldAnimate {\n transition: transform 200ms ease-in-out;\n}\n";
3
+ var calendarCarouselCss = ".saltCalendarCarousel-track {\n display: grid;\n grid-auto-flow: column;\n}\n\n.saltCalendarCarousel-track > * {\n position: absolute;\n left: 0;\n width: 100%;\n}\n\n.saltCalendarCarousel-track > :nth-child(2) {\n position: relative;\n}\n";
4
4
 
5
5
  module.exports = calendarCarouselCss;
6
6
  //# sourceMappingURL=CalendarCarousel.css.js.map
@@ -3,25 +3,21 @@
3
3
  var jsxRuntime = require('react/jsx-runtime');
4
4
  var date = require('@internationalized/date');
5
5
  var core = require('@salt-ds/core');
6
- var styles = require('@salt-ds/styles');
7
- var window$1 = require('@salt-ds/window');
8
6
  var React = require('react');
9
7
  var CalendarContext = require('./CalendarContext.js');
10
8
  var CalendarMonth = require('./CalendarMonth.js');
11
- var utils = require('./utils.js');
9
+ var styles = require('@salt-ds/styles');
10
+ var window = require('@salt-ds/window');
12
11
  var CalendarCarousel$1 = require('./CalendarCarousel.css.js');
12
+ var utils = require('./utils.js');
13
13
 
14
14
  function getMonths(month) {
15
15
  return [month.subtract({ months: 1 }), month, month.add({ months: 1 })];
16
16
  }
17
- function usePreviousMonth(visibleMonth) {
18
- const previous = core.usePrevious(visibleMonth, [utils.formatDate(visibleMonth)]);
19
- return previous ?? date.today(date.getLocalTimeZone());
20
- }
21
17
  const withBaseName = core.makePrefixer("saltCalendarCarousel");
22
18
  const CalendarCarousel = React.forwardRef(function CalendarCarousel2(props, ref) {
23
19
  const { ...rest } = props;
24
- const targetWindow = window$1.useWindow();
20
+ const targetWindow = window.useWindow();
25
21
  styles.useComponentCssInjection({
26
22
  testId: "salt-calendar-carousel",
27
23
  css: CalendarCarousel$1,
@@ -33,17 +29,9 @@ const CalendarCarousel = React.forwardRef(function CalendarCarousel2(props, ref)
33
29
  const containerRef = React.useRef(null);
34
30
  const diffIndex = (a, b) => utils.monthDiff(a, b);
35
31
  const { current: baseIndex } = React.useRef(visibleMonth);
36
- const previousVisibleMonth = usePreviousMonth(visibleMonth);
37
- core.useIsomorphicLayoutEffect(() => {
38
- if (Math.abs(diffIndex(visibleMonth, previousVisibleMonth)) > 1) {
39
- containerRef.current?.classList.remove(withBaseName("shouldAnimate"));
40
- } else {
41
- containerRef.current?.classList.add(withBaseName("shouldAnimate"));
42
- }
43
- }, [utils.formatDate(visibleMonth), utils.formatDate(previousVisibleMonth)]);
44
32
  core.useIsomorphicLayoutEffect(() => {
45
33
  if (containerRef.current) {
46
- containerRef.current.style.transform = `translate3d(${diffIndex(baseIndex, visibleMonth) * 100}%, 0, 0)`;
34
+ containerRef.current.style.transform = `translate3d(${diffIndex(baseIndex, visibleMonth) * -101}%, 0, 0)`;
47
35
  }
48
36
  });
49
37
  const [months, setMonths] = React.useState(() => getMonths(visibleMonth));
@@ -54,24 +42,14 @@ const CalendarCarousel = React.forwardRef(function CalendarCarousel2(props, ref)
54
42
  });
55
43
  return oldMonths.concat(newMonths);
56
44
  });
57
- const finishTransition = () => {
58
- setMonths(getMonths(visibleMonth));
59
- };
60
- const container = containerRef.current;
61
- if (container && parseFloat(window.getComputedStyle(container).transitionDuration) > 0) {
62
- container?.addEventListener("transitionend", finishTransition);
63
- return () => {
64
- container?.removeEventListener("transitionend", finishTransition);
65
- };
66
- } else {
67
- finishTransition();
68
- }
45
+ setMonths(getMonths(visibleMonth));
69
46
  return void 0;
70
47
  }, [utils.formatDate(visibleMonth)]);
71
48
  return /* @__PURE__ */ jsxRuntime.jsx(
72
49
  "div",
73
50
  {
74
51
  className: withBaseName(),
52
+ tabIndex: -1,
75
53
  style: {
76
54
  overflowX: "hidden",
77
55
  position: "relative"
@@ -82,10 +60,10 @@ const CalendarCarousel = React.forwardRef(function CalendarCarousel2(props, ref)
82
60
  {
83
61
  className: withBaseName("slide"),
84
62
  style: {
85
- transform: `translateX(${diffIndex(date, baseIndex) * 100}%)`
63
+ transform: `translateX(${diffIndex(date, baseIndex) * -101}%)`
86
64
  },
87
65
  "aria-hidden": index !== 1 ? "true" : void 0,
88
- children: /* @__PURE__ */ jsxRuntime.jsx(CalendarMonth.CalendarMonth, { isVisible: index === 1, ...rest, date })
66
+ children: /* @__PURE__ */ jsxRuntime.jsx(CalendarMonth.CalendarMonth, { ...rest, date })
89
67
  },
90
68
  utils.formatDate(date)
91
69
  )) })
@@ -1 +1 @@
1
- {"version":3,"file":"CalendarCarousel.js","sources":["../../../src/calendar/internal/CalendarCarousel.tsx"],"sourcesContent":["import {\n DateValue,\n getLocalTimeZone,\n isSameMonth,\n today,\n} from \"@internationalized/date\";\nimport {\n makePrefixer,\n useIsomorphicLayoutEffect,\n usePrevious,\n} from \"@salt-ds/core\";\nimport { useComponentCssInjection } from \"@salt-ds/styles\";\nimport { useWindow } from \"@salt-ds/window\";\nimport { forwardRef, useEffect, useRef, useState } from \"react\";\nimport { useCalendarContext } from \"./CalendarContext\";\nimport { CalendarMonth, CalendarMonthProps } from \"./CalendarMonth\";\nimport { formatDate, monthDiff } from \"./utils\";\n\nimport calendarCarouselCss from \"./CalendarCarousel.css\";\n\nexport type CalendarCarouselProps = Omit<CalendarMonthProps, \"date\">;\n\nfunction getMonths(month: DateValue) {\n return [month.subtract({ months: 1 }), month, month.add({ months: 1 })];\n}\n\nfunction usePreviousMonth(visibleMonth: DateValue) {\n const previous = usePrevious(visibleMonth, [formatDate(visibleMonth)]);\n\n return previous ?? today(getLocalTimeZone());\n}\n\nconst withBaseName = makePrefixer(\"saltCalendarCarousel\");\n\nexport const CalendarCarousel = forwardRef<\n HTMLDivElement,\n CalendarCarouselProps\n>(function CalendarCarousel(props, ref) {\n const { ...rest } = props;\n\n const targetWindow = useWindow();\n useComponentCssInjection({\n testId: \"salt-calendar-carousel\",\n css: calendarCarouselCss,\n window: targetWindow,\n });\n\n const {\n state: { visibleMonth },\n } = useCalendarContext();\n const containerRef = useRef<HTMLDivElement>(null);\n const diffIndex = (a: DateValue, b: DateValue) => monthDiff(a, b);\n\n const { current: baseIndex } = useRef(visibleMonth);\n const previousVisibleMonth = usePreviousMonth(visibleMonth);\n\n useIsomorphicLayoutEffect(() => {\n if (Math.abs(diffIndex(visibleMonth, previousVisibleMonth)) > 1) {\n containerRef.current?.classList.remove(withBaseName(\"shouldAnimate\"));\n } else {\n containerRef.current?.classList.add(withBaseName(\"shouldAnimate\"));\n }\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [formatDate(visibleMonth), formatDate(previousVisibleMonth)]);\n\n useIsomorphicLayoutEffect(() => {\n if (containerRef.current) {\n containerRef.current.style.transform = `translate3d(${\n diffIndex(baseIndex, visibleMonth) * 100\n }%, 0, 0)`;\n }\n });\n\n const [months, setMonths] = useState(() => getMonths(visibleMonth));\n\n useEffect(() => {\n setMonths((oldMonths) => {\n const newMonths = getMonths(visibleMonth).filter((month) => {\n return !oldMonths.find((oldMonth) => isSameMonth(oldMonth, month));\n });\n\n return oldMonths.concat(newMonths);\n });\n const finishTransition = () => {\n setMonths(getMonths(visibleMonth));\n };\n const container = containerRef.current;\n\n if (\n container &&\n parseFloat(window.getComputedStyle(container).transitionDuration) > 0\n ) {\n container?.addEventListener(\"transitionend\", finishTransition);\n\n return () => {\n container?.removeEventListener(\"transitionend\", finishTransition);\n };\n } else {\n finishTransition();\n }\n\n return undefined;\n }, [formatDate(visibleMonth)]); // eslint-disable-line react-hooks/exhaustive-deps\n\n return (\n <div\n className={withBaseName()}\n style={{\n overflowX: \"hidden\",\n position: \"relative\",\n }}\n ref={ref}\n >\n <div className={withBaseName(\"track\")} ref={containerRef}>\n {months.map((date, index) => (\n <div\n key={formatDate(date)}\n className={withBaseName(\"slide\")}\n style={{\n transform: `translateX(${diffIndex(date, baseIndex) * 100}%)`,\n }}\n aria-hidden={index !== 1 ? \"true\" : undefined}\n >\n <CalendarMonth isVisible={index === 1} {...rest} date={date} />\n </div>\n ))}\n </div>\n </div>\n );\n});\n"],"names":["usePrevious","formatDate","today","getLocalTimeZone","makePrefixer","forwardRef","CalendarCarousel","useWindow","useComponentCssInjection","calendarCarouselCss","useCalendarContext","useRef","monthDiff","useIsomorphicLayoutEffect","useState","useEffect","isSameMonth","jsx","CalendarMonth"],"mappings":"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"}
1
+ {"version":3,"file":"CalendarCarousel.js","sources":["../../../src/calendar/internal/CalendarCarousel.tsx"],"sourcesContent":["import { type DateValue, isSameMonth } from \"@internationalized/date\";\nimport { makePrefixer, useIsomorphicLayoutEffect } from \"@salt-ds/core\";\nimport { forwardRef, useEffect, useRef, useState } from \"react\";\nimport { useCalendarContext } from \"./CalendarContext\";\nimport { CalendarMonth, type CalendarMonthProps } from \"./CalendarMonth\";\n\nimport { useComponentCssInjection } from \"@salt-ds/styles\";\nimport { useWindow } from \"@salt-ds/window\";\nimport calendarCarouselCss from \"./CalendarCarousel.css\";\nimport { formatDate, monthDiff } from \"./utils\";\n\nexport type CalendarCarouselProps = Omit<CalendarMonthProps, \"date\">;\n\nfunction getMonths(month: DateValue) {\n return [month.subtract({ months: 1 }), month, month.add({ months: 1 })];\n}\n\nconst withBaseName = makePrefixer(\"saltCalendarCarousel\");\n\nexport const CalendarCarousel = forwardRef<\n HTMLDivElement,\n CalendarCarouselProps\n>(function CalendarCarousel(props, ref) {\n const { ...rest } = props;\n\n const targetWindow = useWindow();\n useComponentCssInjection({\n testId: \"salt-calendar-carousel\",\n css: calendarCarouselCss,\n window: targetWindow,\n });\n\n const {\n state: { visibleMonth },\n } = useCalendarContext();\n const containerRef = useRef<HTMLDivElement>(null);\n const diffIndex = (a: DateValue, b: DateValue) => monthDiff(a, b);\n\n const { current: baseIndex } = useRef(visibleMonth);\n\n useIsomorphicLayoutEffect(() => {\n if (containerRef.current) {\n containerRef.current.style.transform = `translate3d(${\n diffIndex(baseIndex, visibleMonth) * -101 // needs to be higher than 100% so the next month doesn't show on the edges\n }%, 0, 0)`;\n }\n });\n\n const [months, setMonths] = useState(() => getMonths(visibleMonth));\n\n // biome-ignore lint/correctness/useExhaustiveDependencies: uses formatData to change visibleMonth into string\n useEffect(() => {\n setMonths((oldMonths) => {\n const newMonths = getMonths(visibleMonth).filter((month) => {\n return !oldMonths.find((oldMonth) => isSameMonth(oldMonth, month));\n });\n\n return oldMonths.concat(newMonths);\n });\n setMonths(getMonths(visibleMonth));\n return undefined;\n }, [formatDate(visibleMonth)]);\n\n return (\n <div\n className={withBaseName()}\n tabIndex={-1} // https://bugzilla.mozilla.org/show_bug.cgi?id=1069739\n style={{\n overflowX: \"hidden\",\n position: \"relative\",\n }}\n ref={ref}\n >\n <div className={withBaseName(\"track\")} ref={containerRef}>\n {months.map((date, index) => (\n <div\n key={formatDate(date)}\n className={withBaseName(\"slide\")}\n style={{\n transform: `translateX(${diffIndex(date, baseIndex) * -101}%)`,\n }}\n aria-hidden={index !== 1 ? \"true\" : undefined}\n >\n <CalendarMonth {...rest} date={date} />\n </div>\n ))}\n </div>\n </div>\n );\n});\n"],"names":["makePrefixer","forwardRef","CalendarCarousel","useWindow","useComponentCssInjection","calendarCarouselCss","useCalendarContext","useRef","monthDiff","useIsomorphicLayoutEffect","useState","useEffect","isSameMonth","formatDate","jsx","CalendarMonth"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"CalendarContext.js","sources":["../../../src/calendar/internal/CalendarContext.tsx"],"sourcesContent":["import { createContext, useContext } from \"react\";\nimport { useCalendar } from \"../useCalendar\";\n\ntype CalendarState = {\n state: ReturnType<typeof useCalendar>[\"state\"];\n helpers: ReturnType<typeof useCalendar>[\"helpers\"];\n};\n\nconst CalendarContext = createContext<CalendarState | null>(null);\n\nif (process.env.NODE_ENV !== \"production\") {\n CalendarContext.displayName = \"CalendarContext\";\n}\n\nfunction useCalendarContext(): CalendarState {\n const context = useContext(CalendarContext);\n\n if (!context) {\n throw new Error(\"Unexpected usage\");\n }\n\n return context;\n}\n\nexport { CalendarContext, useCalendarContext };\n"],"names":["createContext","useContext"],"mappings":";;;;AAQM,MAAA,eAAA,GAAkBA,oBAAoC,IAAI,EAAA;AAEhE,IAAI,OAAA,CAAQ,GAAI,CAAA,QAAA,KAAa,YAAc,EAAA;AACzC,EAAA,eAAA,CAAgB,WAAc,GAAA,iBAAA,CAAA;AAChC,CAAA;AAEA,SAAS,kBAAoC,GAAA;AAC3C,EAAM,MAAA,OAAA,GAAUC,iBAAW,eAAe,CAAA,CAAA;AAE1C,EAAA,IAAI,CAAC,OAAS,EAAA;AACZ,IAAM,MAAA,IAAI,MAAM,kBAAkB,CAAA,CAAA;AAAA,GACpC;AAEA,EAAO,OAAA,OAAA,CAAA;AACT;;;;;"}
1
+ {"version":3,"file":"CalendarContext.js","sources":["../../../src/calendar/internal/CalendarContext.tsx"],"sourcesContent":["import { createContext, useContext } from \"react\";\nimport type { useCalendar } from \"../useCalendar\";\n\ninterface CalendarState {\n state: ReturnType<typeof useCalendar>[\"state\"];\n helpers: ReturnType<typeof useCalendar>[\"helpers\"];\n}\n\nconst CalendarContext = createContext<CalendarState | null>(null);\n\nif (process.env.NODE_ENV !== \"production\") {\n CalendarContext.displayName = \"CalendarContext\";\n}\n\nfunction useCalendarContext(): CalendarState {\n const context = useContext(CalendarContext);\n\n if (!context) {\n throw new Error(\"Unexpected usage\");\n }\n\n return context;\n}\n\nexport { CalendarContext, useCalendarContext };\n"],"names":["createContext","useContext"],"mappings":";;;;AAQM,MAAA,eAAA,GAAkBA,oBAAoC,IAAI,EAAA;AAEhE,IAAI,OAAA,CAAQ,GAAI,CAAA,QAAA,KAAa,YAAc,EAAA;AACzC,EAAA,eAAA,CAAgB,WAAc,GAAA,iBAAA,CAAA;AAChC,CAAA;AAEA,SAAS,kBAAoC,GAAA;AAC3C,EAAM,MAAA,OAAA,GAAUC,iBAAW,eAAe,CAAA,CAAA;AAE1C,EAAA,IAAI,CAAC,OAAS,EAAA;AACZ,IAAM,MAAA,IAAI,MAAM,kBAAkB,CAAA,CAAA;AAAA,GACpC;AAEA,EAAO,OAAA,OAAA,CAAA;AACT;;;;;"}
@@ -1,6 +1,6 @@
1
1
  'use strict';
2
2
 
3
- var calendarDayCss = "/* TODO: Design need to align characteristics for CalendarDay */\n.saltCalendarDay {\n --calendar-day-text-color: var(--salt-content-primary-foreground);\n --calendar-day-background: var(--salt-selectable-background);\n --calendar-day-background-hover: var(--salt-selectable-background-hover);\n --calendar-day-text-color-hover: var(--salt-content-primary-foreground);\n --calendar-day-outOfRange-text-color: var(--salt-content-secondary-foreground-disabled);\n --calendar-day-blocked-text-color: var(--salt-content-primary-foreground);\n --calendar-day-blocked-cursor: var(--salt-selectable-cursor-disabled);\n --calendar-day-blocked-icon-color: var(--salt-status-error-foreground);\n --calendar-day-blocked-background: var(--calendar-day-background);\n --calendar-day-unselectable-text-color: var(--salt-content-secondary-foreground-disabled);\n --calendar-day-unselectable-background: var(--calendar-day-background);\n --calendar-day-unselectable-cursor: var(--salt-selectable-cursor-disabled);\n\n --calendar-day-selected-background: var(--salt-selectable-background-selected);\n --calendar-day-selected-text-color: var(--salt-content-primary-foreground);\n /* --calendar-day-selected-focused-outlineColor: var(--salt-color-white); TODO: Check with design */\n\n --calendar-day-selectedStart-background: var(--salt-selectable-background-selected);\n --calendar-day-selectedStart-text-color: var(--salt-content-primary-foreground);\n /* --calendar-day-selectedStart-focused-outlineColor: var(--salt-color-white); TODO: Check with design */\n\n --calendar-day-selectedEnd-background: var(--salt-selectable-background-selected);\n --calendar-day-selectedEnd-text-color: var(--salt-content-primary-foreground);\n /* --calendar-day-selectedEnd-focused-outlineColor: var(--salt-color-white); TODO: Check with design */\n\n --calendar-day-selectedSpan-background: var(--salt-selectable-background-blurSelected);\n --calendar-day-selectedSpan-text-color: var(--salt-content-primary-foreground);\n\n --calendar-day-hoveredSpan-background: var(--salt-selectable-background-hover);\n --calendar-day-hoveredSpan-text-color: var(--salt-content-primary-foreground);\n\n --calendar-day-hoveredOffset-background: var(--salt-selectable-background-hover);\n --calendar-day-hoveredOffset-text-color: var(--salt-content-primary-foreground);\n\n --calendar-day-currentDay-borderColor: var(--salt-content-primary-foreground); /* TODO should not be foreground color */\n\n /* Focus */\n --calendar-day-focused-outline: var(--salt-focused-outline);\n --calendar-day-size: var(--salt-size-base);\n --calendar-day-fontSize: var(--salt-text-fontSize);\n}\n\n.saltCalendarDay {\n width: var(--calendar-day-size);\n height: var(--calendar-day-size);\n color: var(--calendar-day-text-color);\n background-color: var(--calendar-day-background);\n font-size: var(--calendar-day-fontSize);\n border: 0;\n cursor: pointer;\n position: relative;\n display: flex;\n justify-content: center;\n align-items: center;\n}\n\n.saltCalendarDay:focus-visible {\n outline: var(--calendar-day-focused-outline);\n outline-offset: calc(0px - var(--salt-focused-outlineWidth));\n}\n\n.saltCalendarDay-outOfRange {\n color: var(--calendar-day-outOfRange-text-color);\n}\n\n.saltCalendarDay:hover {\n background: var(--calendar-day-background-hover);\n color: var(--calendar-day-text-color-hover);\n}\n\n.saltCalendarDay-unselectableMedium,\n.saltCalendarDay-unselectableMedium:hover {\n color: var(--calendar-day-blocked-text-color);\n cursor: var(--calendar-day-blocked-cursor);\n background: var(--calendar-day-blocked-background);\n}\n\n.saltCalendarDay-today {\n border: 1px solid var(--calendar-day-currentDay-borderColor);\n}\n\n.saltCalendarDay-selectedSpan {\n background: var(--calendar-day-selectedSpan-background);\n color: var(--calendar-day-selectedSpan-text-color);\n}\n\n.saltCalendarDay-hoveredSpan,\n.saltCalendarDay-hoveredSpan:hover {\n background: var(--calendar-day-hoveredSpan-background);\n color: var(--calendar-day-hoveredSpan-text-color);\n}\n\n.saltCalendarDay-hoveredOffset,\n.saltCalendarDay-hoveredOffset:hover {\n background: var(--calendar-day-hoveredOffset-background);\n color: var(--calendar-day-hoveredOffset-text-color);\n}\n\n.saltCalendarDay-selected,\n.saltCalendarDay-selected:hover {\n background: var(--calendar-day-selected-background);\n color: var(--calendar-day-selected-text-color);\n}\n\n.saltCalendarDay-selectedStart,\n.saltCalendarDay-selectedStart:hover {\n background: var(--calendar-day-selectedStart-background);\n color: var(--calendar-day-selectedStart-text-color);\n}\n\n.saltCalendarDay-selectedEnd,\n.saltCalendarDay-selectedEnd:hover {\n background: var(--calendar-day-selectedEnd-background);\n color: var(--calendar-day-selectedEnd-text-color);\n}\n\n.saltCalendarDay-selected:focus-visible {\n outline-color: var(--calendar-day-selected-focused-outlineColor);\n}\n\n.saltCalendarDay-selectedStart:focus-visible {\n outline-color: var(--calendar-day-selectedStart-focused-outlineColor);\n}\n\n.saltCalendarDay-selectedEnd:focus-visible {\n outline-color: var(--calendar-day-selectedEnd-focused-outlineColor);\n}\n\n.saltCalendarDay-unselectableLow,\n.saltCalendarDay-unselectableLow:hover {\n color: var(--calendar-day-unselectable-text-color);\n background: var(--calendar-day-unselectable-background);\n cursor: var(--calendar-day-unselectable-cursor);\n text-decoration: line-through;\n}\n\n.salt-density-high {\n --calendar-day-blocked-icon-size: 14px;\n}\n\n.salt-density-medium {\n --calendar-day-blocked-icon-size: 18px;\n}\n\n.salt-density-low {\n --calendar-day-blocked-icon-size: 24px;\n}\n\n.salt-density-touch {\n --calendar-day-blocked-icon-size: 28px;\n}\n\n.saltCalendarDay-blockedIcon {\n fill: var(--calendar-day-blocked-icon-color);\n position: absolute;\n --icon-size: var(--calendar-day-blocked-icon-size);\n pointer-events: none;\n line-height: 1.29;\n}\n\n.saltCalendarDay-hidden {\n visibility: hidden;\n}\n";
3
+ var calendarDayCss = ".saltCalendarDay {\n font-family: var(--salt-text-fontFamily);\n font-weight: var(--salt-text-fontWeight);\n line-height: var(--salt-text-lineHeight);\n font-size: var(--salt-text-fontSize);\n width: var(--salt-size-base);\n height: var(--salt-size-base);\n color: var(--salt-content-primary-foreground);\n background: var(--salt-selectable-background);\n cursor: pointer;\n border: none;\n padding: 0;\n display: flex;\n justify-content: center;\n align-items: center;\n position: relative;\n overflow: hidden;\n}\n.saltCalendarDay-content {\n margin: 0 var(--salt-spacing-50);\n width: 100%;\n}\n\n.saltCalendarDay:focus-visible {\n outline: var(--salt-focused-outline);\n outline-offset: calc(0px - var(--salt-focused-outlineWidth));\n}\n\n.saltCalendarDay-outOfRange {\n color: var(--salt-content-secondary-foreground);\n}\n.saltCalendarDay-outOfRange:hover {\n color: var(--salt-content-primary-foreground);\n}\n.saltCalendarDay-outOfRange .saltCalendarDay-today {\n border-bottom: var(--salt-size-indicator) var(--salt-selectable-borderStyle) var(--salt-content-secondary-foreground);\n}\n\n.saltCalendarDay-outOfRange.saltCalendarDay-highlighted:before {\n background: var(--salt-content-secondary-foreground);\n}\n.saltCalendarDay:hover,\n.saltCalendarDay-hoveredOffset,\n.saltCalendarDay-hoveredOffset:hover {\n background: var(--salt-selectable-background-hover);\n}\n\n.saltCalendarDay-selected {\n border-radius: var(--salt-palette-corner-weak, 0);\n}\n\n.saltCalendarDay-selectedStart {\n z-index: var(--salt-zIndex-default);\n\n border-top-left-radius: var(--salt-palette-corner-weak, 0);\n border-bottom-left-radius: var(--salt-palette-corner-weak, 0);\n}\n\n.saltCalendarDay-selectedEnd {\n border-top-right-radius: var(--salt-palette-corner-weak, 0);\n border-bottom-right-radius: var(--salt-palette-corner-weak, 0);\n}\n\n.saltCalendarDay-selected,\n.saltCalendarDay-selected:hover,\n.saltCalendarDay-selectedStart,\n.saltCalendarDay-selectedStart:hover,\n.saltCalendarDay-selectedEnd,\n.saltCalendarDay-selectedEnd:hover {\n background: var(--salt-selectable-background-selected);\n box-shadow: 0 0 0 var(--salt-size-border) var(--salt-selectable-borderColor-selected);\n}\n\n.saltCalendarDay-hoveredSpan,\n.saltCalendarDay-hoveredSpan:hover,\n.saltCalendarDay-selectedSpan,\n.saltCalendarDay-selectedSpan:hover {\n background: var(--salt-selectable-background-hover);\n box-shadow: calc(var(--salt-size-border) * -2) 0 0 0 var(--salt-selectable-background-hover), calc(var(--salt-size-border) * -1) 0 0 var(--salt-size-border)\n var(--salt-selectable-borderColor-selected), 0 calc(var(--salt-size-border) * -1) 0 var(--salt-selectable-borderColor-selected);\n}\n\n.saltCalendarDay-disabled,\n.saltCalendarDay-disabled:hover,\n.saltCalendarDay-unselectable,\n.saltCalendarDay-unselectable:hover {\n background: var(--salt-selectable-background-disabled);\n cursor: var(--salt-selectable-cursor-disabled);\n}\n\n.saltCalendarDay-highlighted:before,\n.saltCalendarDay-highlighted:hover:before {\n content: \"\";\n height: var(--salt-spacing-200); /* TODO: change for size-modifier when available */\n width: var(--salt-spacing-200);\n top: calc(var(--salt-spacing-100) * -1);\n right: calc(var(--salt-spacing-100) * -1);\n transform: rotate(45deg);\n background: var(--salt-accent-background);\n position: absolute;\n}\n\n.saltCalendarDay-unselectable:after {\n content: \"\";\n height: var(--salt-size-border);\n width: calc(100% - var(--salt-spacing-100));\n background: var(--salt-content-secondary-foreground);\n position: absolute;\n}\n\n.saltCalendarDay-today,\n.saltCalendarDay-today:hover,\n.saltCalendarDay-outOfRange .saltCalendarDay-today:hover {\n border-bottom: var(--salt-size-indicator) var(--salt-selectable-borderStyle) var(--salt-accent-borderColor);\n margin-bottom: calc(var(--salt-size-indicator) * -1);\n}\n\n.saltCalendarDay-disabled,\n.saltCalendarDay-disabled:hover {\n color: var(--salt-content-secondary-foreground-disabled);\n}\n\n.saltCalendarDay-hidden {\n visibility: hidden;\n}\n";
4
4
 
5
5
  module.exports = calendarDayCss;
6
6
  //# sourceMappingURL=CalendarDay.css.js.map
@@ -2,19 +2,18 @@
2
2
 
3
3
  var jsxRuntime = require('react/jsx-runtime');
4
4
  var core = require('@salt-ds/core');
5
- var icons = require('@salt-ds/icons');
5
+ var styles = require('@salt-ds/styles');
6
+ var window = require('@salt-ds/window');
6
7
  var cx = require('clsx');
7
8
  var React = require('react');
8
- var window = require('@salt-ds/window');
9
- var styles = require('@salt-ds/styles');
10
9
  var useCalendarDay = require('../useCalendarDay.js');
11
- var utils = require('./utils.js');
12
10
  var CalendarDay$1 = require('./CalendarDay.css.js');
11
+ var utils = require('./utils.js');
13
12
 
14
13
  const withBaseName = core.makePrefixer("saltCalendarDay");
15
14
  const CalendarDay = React.forwardRef(
16
15
  function CalendarDay2(props, ref) {
17
- const { className, day, renderDayContents, month, TooltipProps: TooltipProps2, ...rest } = props;
16
+ const { className, day, renderDayContents, month, TooltipProps, ...rest } = props;
18
17
  const targetWindow = window.useWindow();
19
18
  styles.useComponentCssInjection({
20
19
  testId: "salt-calendar-day",
@@ -22,56 +21,60 @@ const CalendarDay = React.forwardRef(
22
21
  window: targetWindow
23
22
  });
24
23
  const dayRef = React.useRef(null);
25
- const forkedRef = core.useForkRef(ref, dayRef);
26
- const { status, dayProps, unselectableReason } = useCalendarDay.useCalendarDay(
24
+ const buttonRef = core.useForkRef(ref, dayRef);
25
+ const { status, dayProps, unselectableReason, highlightedReason } = useCalendarDay.useCalendarDay(
27
26
  {
28
27
  date: day,
29
28
  month
30
29
  },
31
30
  dayRef
32
31
  );
33
- const { outOfRange, today, unselectable, hidden } = status;
32
+ const { outOfRange, today, unselectable, highlighted, hidden, disabled } = status;
34
33
  return /* @__PURE__ */ jsxRuntime.jsx(
35
34
  core.Tooltip,
36
35
  {
37
36
  hideIcon: true,
38
- status: "error",
39
- content: unselectableReason,
40
- disabled: !unselectableReason,
37
+ status: unselectableReason ? "error" : "info",
38
+ content: unselectableReason || highlightedReason || "Date is out of range",
39
+ disabled: !unselectableReason && !highlightedReason,
41
40
  placement: "top",
42
- enterDelay: 300,
43
- ...TooltipProps2,
44
- children: /* @__PURE__ */ jsxRuntime.jsxs(
41
+ enterDelay: 0,
42
+ leaveDelay: 0,
43
+ ...TooltipProps,
44
+ children: /* @__PURE__ */ jsxRuntime.jsx(
45
45
  "button",
46
46
  {
47
- "aria-label": utils.formatDate(day),
47
+ "aria-label": utils.formatDate(day, {
48
+ day: "2-digit",
49
+ month: "long",
50
+ year: "numeric"
51
+ }),
52
+ disabled,
53
+ type: "button",
48
54
  ...dayProps,
49
- ref: forkedRef,
55
+ ref: buttonRef,
50
56
  ...rest,
51
57
  className: cx.clsx(
52
58
  withBaseName(),
53
59
  {
54
60
  [withBaseName("hidden")]: hidden,
55
61
  [withBaseName("outOfRange")]: outOfRange,
56
- [withBaseName("today")]: today,
62
+ [withBaseName("disabled")]: disabled,
57
63
  [withBaseName("unselectable")]: !!unselectable,
58
- [withBaseName("unselectableLow")]: unselectable === "low",
59
- [withBaseName("unselectableMedium")]: unselectable === "medium"
64
+ [withBaseName("highlighted")]: !!highlighted
60
65
  },
61
66
  dayProps.className,
62
67
  className
63
68
  ),
64
- children: [
65
- unselectable === "medium" && /* @__PURE__ */ jsxRuntime.jsx(
66
- icons.CloseIcon,
67
- {
68
- "aria-hidden": true,
69
- "aria-label": void 0,
70
- className: withBaseName("blockedIcon")
71
- }
72
- ),
73
- renderDayContents ? renderDayContents(day, status) : utils.formatDate(day, { day: "numeric" })
74
- ]
69
+ children: /* @__PURE__ */ jsxRuntime.jsx(
70
+ "span",
71
+ {
72
+ className: cx.clsx(withBaseName("content"), {
73
+ [withBaseName("today")]: today
74
+ }),
75
+ children: renderDayContents ? renderDayContents(day, status) : utils.formatDate(day, { day: "numeric" })
76
+ }
77
+ )
75
78
  }
76
79
  )
77
80
  }
@@ -1 +1 @@
1
- {"version":3,"file":"CalendarDay.js","sources":["../../../src/calendar/internal/CalendarDay.tsx"],"sourcesContent":["import { makePrefixer, Tooltip, TooltipProps, useForkRef } from \"@salt-ds/core\";\nimport { CloseIcon } from \"@salt-ds/icons\";\nimport { clsx } from \"clsx\";\nimport { ComponentPropsWithRef, forwardRef, ReactElement, useRef } from \"react\";\nimport { DateValue } from \"@internationalized/date\";\nimport { useWindow } from \"@salt-ds/window\";\nimport { useComponentCssInjection } from \"@salt-ds/styles\";\nimport { DayStatus, useCalendarDay } from \"../useCalendarDay\";\nimport { formatDate } from \"./utils\";\n\nimport calendarDayCss from \"./CalendarDay.css\";\n\nexport type DateFormatter = (day: Date) => string | undefined;\n\nexport interface CalendarDayProps\n extends Omit<ComponentPropsWithRef<\"button\">, \"children\"> {\n day: DateValue;\n formatDate?: DateFormatter;\n renderDayContents?: (date: DateValue, status: DayStatus) => ReactElement;\n status?: DayStatus;\n month: DateValue;\n TooltipProps?: Partial<TooltipProps>;\n}\n\nconst withBaseName = makePrefixer(\"saltCalendarDay\");\n\nexport const CalendarDay = forwardRef<HTMLButtonElement, CalendarDayProps>(\n function CalendarDay(props, ref) {\n const { className, day, renderDayContents, month, TooltipProps, ...rest } =\n props;\n\n const targetWindow = useWindow();\n useComponentCssInjection({\n testId: \"salt-calendar-day\",\n css: calendarDayCss,\n window: targetWindow,\n });\n\n const dayRef = useRef<HTMLButtonElement>(null);\n const forkedRef = useForkRef(ref, dayRef);\n\n const { status, dayProps, unselectableReason } = useCalendarDay(\n {\n date: day,\n month,\n },\n dayRef\n );\n const { outOfRange, today, unselectable, hidden } = status;\n\n return (\n <Tooltip\n hideIcon\n status=\"error\"\n content={unselectableReason}\n disabled={!unselectableReason}\n placement=\"top\"\n enterDelay={300}\n {...TooltipProps}\n >\n <button\n aria-label={formatDate(day)}\n {...dayProps}\n ref={forkedRef}\n {...rest}\n className={clsx(\n withBaseName(),\n {\n [withBaseName(\"hidden\")]: hidden,\n [withBaseName(\"outOfRange\")]: outOfRange,\n [withBaseName(\"today\")]: today,\n [withBaseName(\"unselectable\")]: !!unselectable,\n [withBaseName(\"unselectableLow\")]: unselectable === \"low\",\n [withBaseName(\"unselectableMedium\")]: unselectable === \"medium\",\n },\n dayProps.className,\n className\n )}\n >\n {unselectable === \"medium\" && (\n <CloseIcon\n aria-hidden\n aria-label={undefined}\n className={withBaseName(\"blockedIcon\")}\n />\n )}\n\n {renderDayContents\n ? renderDayContents(day, status)\n : formatDate(day, { day: \"numeric\" })}\n </button>\n </Tooltip>\n );\n }\n);\n"],"names":["makePrefixer","forwardRef","CalendarDay","TooltipProps","useWindow","useComponentCssInjection","calendarDayCss","useRef","useForkRef","useCalendarDay","jsx","Tooltip","jsxs","formatDate","clsx","CloseIcon"],"mappings":";;;;;;;;;;;;;AAwBA,MAAM,YAAA,GAAeA,kBAAa,iBAAiB,CAAA,CAAA;AAE5C,MAAM,WAAc,GAAAC,gBAAA;AAAA,EACzB,SAASC,YAAY,CAAA,KAAA,EAAO,GAAK,EAAA;AAC/B,IAAM,MAAA,EAAE,WAAW,GAAK,EAAA,iBAAA,EAAmB,OAAO,YAAAC,EAAAA,aAAAA,EAAc,GAAG,IAAA,EACjE,GAAA,KAAA,CAAA;AAEF,IAAA,MAAM,eAAeC,gBAAU,EAAA,CAAA;AAC/B,IAAyBC,+BAAA,CAAA;AAAA,MACvB,MAAQ,EAAA,mBAAA;AAAA,MACR,GAAK,EAAAC,aAAA;AAAA,MACL,MAAQ,EAAA,YAAA;AAAA,KACT,CAAA,CAAA;AAED,IAAM,MAAA,MAAA,GAASC,aAA0B,IAAI,CAAA,CAAA;AAC7C,IAAM,MAAA,SAAA,GAAYC,eAAW,CAAA,GAAA,EAAK,MAAM,CAAA,CAAA;AAExC,IAAA,MAAM,EAAE,MAAA,EAAQ,QAAU,EAAA,kBAAA,EAAuB,GAAAC,6BAAA;AAAA,MAC/C;AAAA,QACE,IAAM,EAAA,GAAA;AAAA,QACN,KAAA;AAAA,OACF;AAAA,MACA,MAAA;AAAA,KACF,CAAA;AACA,IAAA,MAAM,EAAE,UAAA,EAAY,KAAO,EAAA,YAAA,EAAc,QAAW,GAAA,MAAA,CAAA;AAEpD,IACE,uBAAAC,cAAA;AAAA,MAACC,YAAA;AAAA,MAAA;AAAA,QACC,QAAQ,EAAA,IAAA;AAAA,QACR,MAAO,EAAA,OAAA;AAAA,QACP,OAAS,EAAA,kBAAA;AAAA,QACT,UAAU,CAAC,kBAAA;AAAA,QACX,SAAU,EAAA,KAAA;AAAA,QACV,UAAY,EAAA,GAAA;AAAA,QACX,GAAGR,aAAAA;AAAA,QAEJ,QAAA,kBAAAS,eAAA;AAAA,UAAC,QAAA;AAAA,UAAA;AAAA,YACC,YAAA,EAAYC,iBAAW,GAAG,CAAA;AAAA,YACzB,GAAG,QAAA;AAAA,YACJ,GAAK,EAAA,SAAA;AAAA,YACJ,GAAG,IAAA;AAAA,YACJ,SAAW,EAAAC,OAAA;AAAA,cACT,YAAa,EAAA;AAAA,cACb;AAAA,gBACE,CAAC,YAAA,CAAa,QAAQ,CAAC,GAAG,MAAA;AAAA,gBAC1B,CAAC,YAAA,CAAa,YAAY,CAAC,GAAG,UAAA;AAAA,gBAC9B,CAAC,YAAA,CAAa,OAAO,CAAC,GAAG,KAAA;AAAA,gBACzB,CAAC,YAAa,CAAA,cAAc,CAAC,GAAG,CAAC,CAAC,YAAA;AAAA,gBAClC,CAAC,YAAA,CAAa,iBAAiB,CAAC,GAAG,YAAiB,KAAA,KAAA;AAAA,gBACpD,CAAC,YAAA,CAAa,oBAAoB,CAAC,GAAG,YAAiB,KAAA,QAAA;AAAA,eACzD;AAAA,cACA,QAAS,CAAA,SAAA;AAAA,cACT,SAAA;AAAA,aACF;AAAA,YAEC,QAAA,EAAA;AAAA,cAAA,YAAA,KAAiB,QAChB,oBAAAJ,cAAA;AAAA,gBAACK,eAAA;AAAA,gBAAA;AAAA,kBACC,aAAW,EAAA,IAAA;AAAA,kBACX,YAAY,EAAA,KAAA,CAAA;AAAA,kBACZ,SAAA,EAAW,aAAa,aAAa,CAAA;AAAA,iBAAA;AAAA,eACvC;AAAA,cAGD,iBAAA,GACG,iBAAkB,CAAA,GAAA,EAAK,MAAM,CAAA,GAC7BF,iBAAW,GAAK,EAAA,EAAE,GAAK,EAAA,SAAA,EAAW,CAAA;AAAA,aAAA;AAAA,WAAA;AAAA,SACxC;AAAA,OAAA;AAAA,KACF,CAAA;AAAA,GAEJ;AACF;;;;"}
1
+ {"version":3,"file":"CalendarDay.js","sources":["../../../src/calendar/internal/CalendarDay.tsx"],"sourcesContent":["import type { DateValue } from \"@internationalized/date\";\nimport {\n Tooltip,\n type TooltipProps,\n makePrefixer,\n useForkRef,\n} from \"@salt-ds/core\";\nimport { useComponentCssInjection } from \"@salt-ds/styles\";\nimport { useWindow } from \"@salt-ds/window\";\nimport { clsx } from \"clsx\";\nimport {\n type ComponentPropsWithRef,\n type ReactElement,\n forwardRef,\n useRef,\n} from \"react\";\nimport { type DayStatus, useCalendarDay } from \"../useCalendarDay\";\nimport calendarDayCss from \"./CalendarDay.css\";\nimport { formatDate } from \"./utils\";\n\nexport type DateFormatter = (day: Date) => string | undefined;\n\nexport interface CalendarDayProps\n extends Omit<ComponentPropsWithRef<\"button\">, \"children\"> {\n day: DateValue;\n formatDate?: DateFormatter;\n renderDayContents?: (date: DateValue, status: DayStatus) => ReactElement;\n status?: DayStatus;\n month: DateValue;\n TooltipProps?: Partial<TooltipProps>;\n}\n\nconst withBaseName = makePrefixer(\"saltCalendarDay\");\n\nexport const CalendarDay = forwardRef<HTMLButtonElement, CalendarDayProps>(\n function CalendarDay(props, ref) {\n const { className, day, renderDayContents, month, TooltipProps, ...rest } =\n props;\n const targetWindow = useWindow();\n useComponentCssInjection({\n testId: \"salt-calendar-day\",\n css: calendarDayCss,\n window: targetWindow,\n });\n\n const dayRef = useRef<HTMLButtonElement>(null);\n const buttonRef = useForkRef(ref, dayRef);\n const { status, dayProps, unselectableReason, highlightedReason } =\n useCalendarDay(\n {\n date: day,\n month,\n },\n dayRef,\n );\n const { outOfRange, today, unselectable, highlighted, hidden, disabled } =\n status;\n\n return (\n <Tooltip\n hideIcon\n status={unselectableReason ? \"error\" : \"info\"}\n content={\n unselectableReason || highlightedReason || \"Date is out of range\"\n }\n disabled={!unselectableReason && !highlightedReason}\n placement=\"top\"\n enterDelay={0} // --salt-duration-instant\n leaveDelay={0} // --salt-duration-instant\n {...TooltipProps}\n >\n <button\n aria-label={formatDate(day, {\n day: \"2-digit\",\n month: \"long\",\n year: \"numeric\",\n })}\n disabled={disabled}\n type=\"button\"\n {...dayProps}\n ref={buttonRef}\n {...rest}\n className={clsx(\n withBaseName(),\n {\n [withBaseName(\"hidden\")]: hidden,\n [withBaseName(\"outOfRange\")]: outOfRange,\n [withBaseName(\"disabled\")]: disabled,\n [withBaseName(\"unselectable\")]: !!unselectable,\n [withBaseName(\"highlighted\")]: !!highlighted,\n },\n dayProps.className,\n className,\n )}\n >\n <span\n className={clsx(withBaseName(\"content\"), {\n [withBaseName(\"today\")]: today,\n })}\n >\n {renderDayContents\n ? renderDayContents(day, status)\n : formatDate(day, { day: \"numeric\" })}\n </span>\n </button>\n </Tooltip>\n );\n },\n);\n"],"names":["makePrefixer","forwardRef","CalendarDay","useWindow","useComponentCssInjection","calendarDayCss","useRef","useForkRef","useCalendarDay","jsx","Tooltip","formatDate","clsx"],"mappings":"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"}
@@ -1,6 +1,6 @@
1
1
  'use strict';
2
2
 
3
- var calendarMonthCss = ".saltCalendarMonth-dateGrid {\n display: grid;\n grid-template-columns: repeat(7, 1fr);\n text-align: center;\n}\n";
3
+ var calendarMonthCss = ".saltCalendarMonth-dateGrid {\n display: grid;\n gap: var(--salt-size-border);\n grid-template-columns: repeat(7, var(--salt-size-base));\n grid-template-rows: repeat(6, var(--salt-size-base));\n text-align: center;\n margin: var(--salt-size-border);\n}\n";
4
4
 
5
5
  module.exports = calendarMonthCss;
6
6
  //# sourceMappingURL=CalendarMonth.css.js.map
@@ -2,13 +2,13 @@
2
2
 
3
3
  var jsxRuntime = require('react/jsx-runtime');
4
4
  var core = require('@salt-ds/core');
5
- var styles = require('@salt-ds/styles');
6
- var window = require('@salt-ds/window');
7
5
  var cx = require('clsx');
8
6
  var React = require('react');
9
- var CalendarContext = require('./CalendarContext.js');
10
7
  var CalendarDay = require('./CalendarDay.js');
11
8
  var utils = require('./utils.js');
9
+ var styles = require('@salt-ds/styles');
10
+ var window = require('@salt-ds/window');
11
+ var CalendarContext = require('./CalendarContext.js');
12
12
  var CalendarMonth$1 = require('./CalendarMonth.css.js');
13
13
 
14
14
  const withBaseName = core.makePrefixer("saltCalendarMonth");
@@ -17,8 +17,6 @@ const CalendarMonth = React.forwardRef(
17
17
  const {
18
18
  className,
19
19
  date,
20
- hideOutOfRangeDates,
21
- isVisible,
22
20
  renderDayContents,
23
21
  onMouseLeave,
24
22
  TooltipProps,
@@ -1 +1 @@
1
- {"version":3,"file":"CalendarMonth.js","sources":["../../../src/calendar/internal/CalendarMonth.tsx"],"sourcesContent":["import { DateValue } from \"@internationalized/date\";\nimport { makePrefixer } from \"@salt-ds/core\";\nimport { useComponentCssInjection } from \"@salt-ds/styles\";\nimport { useWindow } from \"@salt-ds/window\";\nimport { clsx } from \"clsx\";\nimport {\n ComponentPropsWithRef,\n forwardRef,\n MouseEvent,\n SyntheticEvent,\n} from \"react\";\nimport { useCalendarContext } from \"./CalendarContext\";\nimport { CalendarDay, CalendarDayProps } from \"./CalendarDay\";\nimport { formatDate, generateVisibleDays } from \"./utils\";\n\nimport calendarMonthCss from \"./CalendarMonth.css\";\n\nexport interface CalendarMonthProps extends ComponentPropsWithRef<\"div\"> {\n date: DateValue;\n hideOutOfRangeDates?: boolean;\n renderDayContents?: CalendarDayProps[\"renderDayContents\"];\n isVisible?: boolean;\n TooltipProps?: CalendarDayProps[\"TooltipProps\"];\n}\n\nconst withBaseName = makePrefixer(\"saltCalendarMonth\");\n\nexport const CalendarMonth = forwardRef<HTMLDivElement, CalendarMonthProps>(\n function CalendarMonth(props, ref) {\n const {\n className,\n date,\n hideOutOfRangeDates,\n isVisible,\n renderDayContents,\n onMouseLeave,\n TooltipProps,\n ...rest\n } = props;\n\n const targetWindow = useWindow();\n useComponentCssInjection({\n testId: \"salt-calendar-month\",\n css: calendarMonthCss,\n window: targetWindow,\n });\n\n const days = generateVisibleDays(date);\n const {\n helpers: { setHoveredDate },\n } = useCalendarContext();\n\n const handleMouseLeave = (event: SyntheticEvent) => {\n setHoveredDate(event, null);\n onMouseLeave?.(event as MouseEvent<HTMLDivElement>);\n };\n\n return (\n <div\n className={clsx(withBaseName(), className)}\n ref={ref}\n onMouseLeave={handleMouseLeave}\n {...rest}\n >\n <div\n data-testid=\"CalendarDateGrid\"\n className={withBaseName(\"dateGrid\")}\n >\n {days.map((day) => {\n return (\n <CalendarDay\n key={formatDate(day.date)}\n day={day.date}\n renderDayContents={renderDayContents}\n month={date}\n TooltipProps={TooltipProps}\n />\n );\n })}\n </div>\n </div>\n );\n }\n);\n"],"names":["makePrefixer","forwardRef","CalendarMonth","useWindow","useComponentCssInjection","calendarMonthCss","generateVisibleDays","useCalendarContext","jsx","clsx","CalendarDay","formatDate"],"mappings":";;;;;;;;;;;;;AAyBA,MAAM,YAAA,GAAeA,kBAAa,mBAAmB,CAAA,CAAA;AAE9C,MAAM,aAAgB,GAAAC,gBAAA;AAAA,EAC3B,SAASC,cAAc,CAAA,KAAA,EAAO,GAAK,EAAA;AACjC,IAAM,MAAA;AAAA,MACJ,SAAA;AAAA,MACA,IAAA;AAAA,MACA,mBAAA;AAAA,MACA,SAAA;AAAA,MACA,iBAAA;AAAA,MACA,YAAA;AAAA,MACA,YAAA;AAAA,MACA,GAAG,IAAA;AAAA,KACD,GAAA,KAAA,CAAA;AAEJ,IAAA,MAAM,eAAeC,gBAAU,EAAA,CAAA;AAC/B,IAAyBC,+BAAA,CAAA;AAAA,MACvB,MAAQ,EAAA,qBAAA;AAAA,MACR,GAAK,EAAAC,eAAA;AAAA,MACL,MAAQ,EAAA,YAAA;AAAA,KACT,CAAA,CAAA;AAED,IAAM,MAAA,IAAA,GAAOC,0BAAoB,IAAI,CAAA,CAAA;AACrC,IAAM,MAAA;AAAA,MACJ,OAAA,EAAS,EAAE,cAAe,EAAA;AAAA,QACxBC,kCAAmB,EAAA,CAAA;AAEvB,IAAM,MAAA,gBAAA,GAAmB,CAAC,KAA0B,KAAA;AAClD,MAAA,cAAA,CAAe,OAAO,IAAI,CAAA,CAAA;AAC1B,MAAA,YAAA,GAAe,KAAmC,CAAA,CAAA;AAAA,KACpD,CAAA;AAEA,IACE,uBAAAC,cAAA;AAAA,MAAC,KAAA;AAAA,MAAA;AAAA,QACC,SAAW,EAAAC,OAAA,CAAK,YAAa,EAAA,EAAG,SAAS,CAAA;AAAA,QACzC,GAAA;AAAA,QACA,YAAc,EAAA,gBAAA;AAAA,QACb,GAAG,IAAA;AAAA,QAEJ,QAAA,kBAAAD,cAAA;AAAA,UAAC,KAAA;AAAA,UAAA;AAAA,YACC,aAAY,EAAA,kBAAA;AAAA,YACZ,SAAA,EAAW,aAAa,UAAU,CAAA;AAAA,YAEjC,QAAA,EAAA,IAAA,CAAK,GAAI,CAAA,CAAC,GAAQ,KAAA;AACjB,cACE,uBAAAA,cAAA;AAAA,gBAACE,uBAAA;AAAA,gBAAA;AAAA,kBAEC,KAAK,GAAI,CAAA,IAAA;AAAA,kBACT,iBAAA;AAAA,kBACA,KAAO,EAAA,IAAA;AAAA,kBACP,YAAA;AAAA,iBAAA;AAAA,gBAJKC,gBAAA,CAAW,IAAI,IAAI,CAAA;AAAA,eAK1B,CAAA;AAAA,aAEH,CAAA;AAAA,WAAA;AAAA,SACH;AAAA,OAAA;AAAA,KACF,CAAA;AAAA,GAEJ;AACF;;;;"}
1
+ {"version":3,"file":"CalendarMonth.js","sources":["../../../src/calendar/internal/CalendarMonth.tsx"],"sourcesContent":["import type { DateValue } from \"@internationalized/date\";\nimport { makePrefixer } from \"@salt-ds/core\";\nimport { clsx } from \"clsx\";\nimport {\n type ComponentPropsWithRef,\n type MouseEvent,\n type SyntheticEvent,\n forwardRef,\n} from \"react\";\nimport { CalendarDay, type CalendarDayProps } from \"./CalendarDay\";\nimport { formatDate, generateVisibleDays } from \"./utils\";\n\nimport { useComponentCssInjection } from \"@salt-ds/styles\";\nimport { useWindow } from \"@salt-ds/window\";\nimport { useCalendarContext } from \"./CalendarContext\";\nimport calendarMonthCss from \"./CalendarMonth.css\";\n\nexport interface CalendarMonthProps extends ComponentPropsWithRef<\"div\"> {\n date: DateValue;\n hideOutOfRangeDates?: boolean;\n renderDayContents?: CalendarDayProps[\"renderDayContents\"];\n TooltipProps?: CalendarDayProps[\"TooltipProps\"];\n}\n\nconst withBaseName = makePrefixer(\"saltCalendarMonth\");\n\nexport const CalendarMonth = forwardRef<HTMLDivElement, CalendarMonthProps>(\n function CalendarMonth(props, ref) {\n const {\n className,\n date,\n renderDayContents,\n onMouseLeave,\n TooltipProps,\n ...rest\n } = props;\n\n const targetWindow = useWindow();\n useComponentCssInjection({\n testId: \"salt-calendar-month\",\n css: calendarMonthCss,\n window: targetWindow,\n });\n\n const days = generateVisibleDays(date);\n const {\n helpers: { setHoveredDate },\n } = useCalendarContext();\n\n const handleMouseLeave = (event: SyntheticEvent) => {\n setHoveredDate(event, null);\n onMouseLeave?.(event as MouseEvent<HTMLDivElement>);\n };\n\n return (\n <div\n className={clsx(withBaseName(), className)}\n ref={ref}\n onMouseLeave={handleMouseLeave}\n {...rest}\n >\n <div\n data-testid=\"CalendarDateGrid\"\n className={withBaseName(\"dateGrid\")}\n >\n {days.map((day) => {\n return (\n <CalendarDay\n key={formatDate(day.date)}\n day={day.date}\n renderDayContents={renderDayContents}\n month={date}\n TooltipProps={TooltipProps}\n />\n );\n })}\n </div>\n </div>\n );\n },\n);\n"],"names":["makePrefixer","forwardRef","CalendarMonth","useWindow","useComponentCssInjection","calendarMonthCss","generateVisibleDays","useCalendarContext","jsx","clsx","CalendarDay","formatDate"],"mappings":";;;;;;;;;;;;;AAwBA,MAAM,YAAA,GAAeA,kBAAa,mBAAmB,CAAA,CAAA;AAE9C,MAAM,aAAgB,GAAAC,gBAAA;AAAA,EAC3B,SAASC,cAAc,CAAA,KAAA,EAAO,GAAK,EAAA;AACjC,IAAM,MAAA;AAAA,MACJ,SAAA;AAAA,MACA,IAAA;AAAA,MACA,iBAAA;AAAA,MACA,YAAA;AAAA,MACA,YAAA;AAAA,MACA,GAAG,IAAA;AAAA,KACD,GAAA,KAAA,CAAA;AAEJ,IAAA,MAAM,eAAeC,gBAAU,EAAA,CAAA;AAC/B,IAAyBC,+BAAA,CAAA;AAAA,MACvB,MAAQ,EAAA,qBAAA;AAAA,MACR,GAAK,EAAAC,eAAA;AAAA,MACL,MAAQ,EAAA,YAAA;AAAA,KACT,CAAA,CAAA;AAED,IAAM,MAAA,IAAA,GAAOC,0BAAoB,IAAI,CAAA,CAAA;AACrC,IAAM,MAAA;AAAA,MACJ,OAAA,EAAS,EAAE,cAAe,EAAA;AAAA,QACxBC,kCAAmB,EAAA,CAAA;AAEvB,IAAM,MAAA,gBAAA,GAAmB,CAAC,KAA0B,KAAA;AAClD,MAAA,cAAA,CAAe,OAAO,IAAI,CAAA,CAAA;AAC1B,MAAA,YAAA,GAAe,KAAmC,CAAA,CAAA;AAAA,KACpD,CAAA;AAEA,IACE,uBAAAC,cAAA;AAAA,MAAC,KAAA;AAAA,MAAA;AAAA,QACC,SAAW,EAAAC,OAAA,CAAK,YAAa,EAAA,EAAG,SAAS,CAAA;AAAA,QACzC,GAAA;AAAA,QACA,YAAc,EAAA,gBAAA;AAAA,QACb,GAAG,IAAA;AAAA,QAEJ,QAAA,kBAAAD,cAAA;AAAA,UAAC,KAAA;AAAA,UAAA;AAAA,YACC,aAAY,EAAA,kBAAA;AAAA,YACZ,SAAA,EAAW,aAAa,UAAU,CAAA;AAAA,YAEjC,QAAA,EAAA,IAAA,CAAK,GAAI,CAAA,CAAC,GAAQ,KAAA;AACjB,cACE,uBAAAA,cAAA;AAAA,gBAACE,uBAAA;AAAA,gBAAA;AAAA,kBAEC,KAAK,GAAI,CAAA,IAAA;AAAA,kBACT,iBAAA;AAAA,kBACA,KAAO,EAAA,IAAA;AAAA,kBACP,YAAA;AAAA,iBAAA;AAAA,gBAJKC,gBAAA,CAAW,IAAI,IAAI,CAAA;AAAA,eAK1B,CAAA;AAAA,aAEH,CAAA;AAAA,WAAA;AAAA,SACH;AAAA,OAAA;AAAA,KACF,CAAA;AAAA,GAEJ;AACF;;;;"}
@@ -1,6 +1,6 @@
1
1
  'use strict';
2
2
 
3
- var calendarNavigationCss = ".saltCalendarNavigation {\n display: grid;\n grid-template-columns: min-content auto min-content;\n padding-bottom: var(--salt-spacing-100);\n grid-gap: 0;\n align-items: center;\n height: var(--salt-size-base);\n}\n\n.saltCalendarNavigation-hideYearDropdown {\n grid-template-columns: min-content auto min-content;\n grid-gap: var(--salt-spacing-300);\n}\n\n.saltCalendarNavigation-dropdowns {\n display: grid;\n grid-template-columns: 1fr 1fr;\n grid-gap: var(--salt-spacing-100);\n}\n";
3
+ var calendarNavigationCss = ".saltCalendarNavigation {\n display: grid;\n grid-template-columns: min-content auto min-content;\n padding-bottom: var(--salt-spacing-100);\n grid-gap: 0;\n align-items: center;\n box-sizing: border-box;\n}\n\n.saltCalendarNavigation-hideYearDropdown {\n grid-template-columns: min-content auto min-content;\n grid-gap: var(--salt-spacing-300);\n}\n\n.saltCalendarNavigation-dropdowns {\n display: grid;\n grid-template-columns: 1fr 1fr;\n grid-gap: var(--salt-spacing-100);\n}\n";
4
4
 
5
5
  module.exports = calendarNavigationCss;
6
6
  //# sourceMappingURL=CalendarNavigation.css.js.map
@@ -1,16 +1,16 @@
1
1
  'use strict';
2
2
 
3
3
  var jsxRuntime = require('react/jsx-runtime');
4
- var React = require('react');
5
4
  var core = require('@salt-ds/core');
6
5
  var icons = require('@salt-ds/icons');
7
6
  var cx = require('clsx');
7
+ var React = require('react');
8
8
  var CalendarContext = require('./CalendarContext.js');
9
- var CalendarNavigation$1 = require('./CalendarNavigation.css.js');
10
9
  var date = require('@internationalized/date');
11
- var utils = require('./utils.js');
12
- var window = require('@salt-ds/window');
13
10
  var styles = require('@salt-ds/styles');
11
+ var window = require('@salt-ds/window');
12
+ var CalendarNavigation$1 = require('./CalendarNavigation.css.js');
13
+ var utils = require('./utils.js');
14
14
 
15
15
  const withBaseName = core.makePrefixer("saltCalendarNavigation");
16
16
  function useCalendarNavigation() {
@@ -94,6 +94,7 @@ const CalendarNavigation = React.forwardRef(function CalendarNavigation2(props,
94
94
  MonthDropdownProps,
95
95
  YearDropdownProps,
96
96
  hideYearDropdown,
97
+ borderedDropdown,
97
98
  ...rest
98
99
  } = props;
99
100
  const targetWindow = window.useWindow();
@@ -110,7 +111,6 @@ const CalendarNavigation = React.forwardRef(function CalendarNavigation2(props,
110
111
  years,
111
112
  canNavigateNext,
112
113
  canNavigatePrevious,
113
- visibleMonth,
114
114
  selectedMonth,
115
115
  selectedYear,
116
116
  isOutsideAllowedMonths
@@ -159,14 +159,7 @@ const CalendarNavigation = React.forwardRef(function CalendarNavigation2(props,
159
159
  variant: "secondary",
160
160
  onClick: handleNavigatePrevious,
161
161
  focusableWhenDisabled: true,
162
- children: /* @__PURE__ */ jsxRuntime.jsx(
163
- icons.ChevronLeftIcon,
164
- {
165
- "aria-label": `Previous Month, ${utils.formatDate(
166
- visibleMonth.subtract({ months: 1 })
167
- )}`
168
- }
169
- )
162
+ children: /* @__PURE__ */ jsxRuntime.jsx(icons.ChevronLeftIcon, { "aria-label": "Previous Month" })
170
163
  }
171
164
  )
172
165
  }
@@ -175,6 +168,7 @@ const CalendarNavigation = React.forwardRef(function CalendarNavigation2(props,
175
168
  /* @__PURE__ */ jsxRuntime.jsx(
176
169
  core.Dropdown,
177
170
  {
171
+ bordered: borderedDropdown,
178
172
  "aria-label": "Month Dropdown",
179
173
  selected: selectedMonth ? [selectedMonth] : [],
180
174
  value: formatMonth(selectedMonth),
@@ -199,6 +193,7 @@ const CalendarNavigation = React.forwardRef(function CalendarNavigation2(props,
199
193
  selected: selectedYear ? [selectedYear] : [],
200
194
  value: formatYear(selectedYear),
201
195
  onSelectionChange: handleYearSelect,
196
+ bordered: borderedDropdown,
202
197
  ...YearDropdownProps,
203
198
  children: years.map((year) => /* @__PURE__ */ jsxRuntime.jsx(
204
199
  OptionWithTooltip,
@@ -227,14 +222,7 @@ const CalendarNavigation = React.forwardRef(function CalendarNavigation2(props,
227
222
  variant: "secondary",
228
223
  onClick: handleNavigateNext,
229
224
  focusableWhenDisabled: true,
230
- children: /* @__PURE__ */ jsxRuntime.jsx(
231
- icons.ChevronRightIcon,
232
- {
233
- "aria-label": `Next Month, ${utils.formatDate(
234
- visibleMonth.add({ months: 1 })
235
- )}`
236
- }
237
- )
225
+ children: /* @__PURE__ */ jsxRuntime.jsx(icons.ChevronRightIcon, { "aria-label": "Next Month" })
238
226
  }
239
227
  )
240
228
  }