sanity 6.2.0-next.125 → 6.2.0-next.129

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 (64) hide show
  1. package/lib/_chunks-es/CalendarFilter.js +250 -0
  2. package/lib/_chunks-es/CalendarFilter.js.map +1 -0
  3. package/lib/_chunks-es/CommentsInspector.js +506 -0
  4. package/lib/_chunks-es/CommentsInspector.js.map +1 -0
  5. package/lib/_chunks-es/ReleasesMetadataProvider.js +103 -0
  6. package/lib/_chunks-es/ReleasesMetadataProvider.js.map +1 -0
  7. package/lib/_chunks-es/ReleasesStudioLayout.js +411 -0
  8. package/lib/_chunks-es/ReleasesStudioLayout.js.map +1 -0
  9. package/lib/_chunks-es/ReleasesTool.js +5323 -0
  10. package/lib/_chunks-es/ReleasesTool.js.map +1 -0
  11. package/lib/_chunks-es/SchedulePublishingStudioLayout.js +30 -0
  12. package/lib/_chunks-es/SchedulePublishingStudioLayout.js.map +1 -0
  13. package/lib/_chunks-es/SingleDocReleaseLayout.js +14 -0
  14. package/lib/_chunks-es/SingleDocReleaseLayout.js.map +1 -0
  15. package/lib/_chunks-es/Table.js +355 -0
  16. package/lib/_chunks-es/Table.js.map +1 -0
  17. package/lib/_chunks-es/TasksDocumentInputLayout.js +169 -0
  18. package/lib/_chunks-es/TasksDocumentInputLayout.js.map +1 -0
  19. package/lib/_chunks-es/TasksFooterOpenTasks.js +188 -0
  20. package/lib/_chunks-es/TasksFooterOpenTasks.js.map +1 -0
  21. package/lib/_chunks-es/TasksStudioActiveToolLayout.js +209 -0
  22. package/lib/_chunks-es/TasksStudioActiveToolLayout.js.map +1 -0
  23. package/lib/_chunks-es/TasksStudioLayout.js +579 -0
  24. package/lib/_chunks-es/TasksStudioLayout.js.map +1 -0
  25. package/lib/_chunks-es/TasksStudioNavbar.js +201 -0
  26. package/lib/_chunks-es/TasksStudioNavbar.js.map +1 -0
  27. package/lib/_chunks-es/Tool.js +850 -0
  28. package/lib/_chunks-es/Tool.js.map +1 -0
  29. package/lib/_chunks-es/VariantsStudioNavbar.js +390 -0
  30. package/lib/_chunks-es/VariantsStudioNavbar.js.map +1 -0
  31. package/lib/_chunks-es/VariantsTool.js +1333 -0
  32. package/lib/_chunks-es/VariantsTool.js.map +1 -0
  33. package/lib/_chunks-es/index2.js +86348 -81
  34. package/lib/_chunks-es/index2.js.map +1 -1
  35. package/lib/_chunks-es/index3.js +141 -125
  36. package/lib/_chunks-es/index3.js.map +1 -1
  37. package/lib/_chunks-es/index4.js +90 -932
  38. package/lib/_chunks-es/index4.js.map +1 -1
  39. package/lib/_chunks-es/index5.js +139 -0
  40. package/lib/_chunks-es/index5.js.map +1 -0
  41. package/lib/_chunks-es/index6.js +444 -0
  42. package/lib/_chunks-es/index6.js.map +1 -0
  43. package/lib/_chunks-es/index7.js +195 -0
  44. package/lib/_chunks-es/index7.js.map +1 -0
  45. package/lib/_chunks-es/index8.js +612 -0
  46. package/lib/_chunks-es/index8.js.map +1 -0
  47. package/lib/_chunks-es/index9.js +947 -0
  48. package/lib/_chunks-es/index9.js.map +1 -0
  49. package/lib/_chunks-es/inputResolver.js +125 -0
  50. package/lib/_chunks-es/inputResolver.js.map +1 -0
  51. package/lib/_chunks-es/resources2.js +1 -1
  52. package/lib/_chunks-es/resources3.js +1 -1
  53. package/lib/_chunks-es/resources4.js +1 -1
  54. package/lib/_chunks-es/resources5.js +1 -1
  55. package/lib/_chunks-es/resources6.js +1 -1
  56. package/lib/_chunks-es/resources7.js +1 -1
  57. package/lib/_chunks-es/structureTool.js +5 -5
  58. package/lib/_chunks-es/structureTool.js.map +1 -1
  59. package/lib/_chunks-es/useCommentsUpsell.js +52 -0
  60. package/lib/_chunks-es/useCommentsUpsell.js.map +1 -0
  61. package/lib/_chunks-es/version.js +2 -2
  62. package/lib/index.js +74 -96176
  63. package/lib/index.js.map +1 -1
  64. package/package.json +10 -10
@@ -0,0 +1,250 @@
1
+ import { jsx, jsxs } from "react/jsx-runtime";
2
+ import { c } from "react/compiler-runtime";
3
+ import { CloseIcon, ChevronLeftIcon, ChevronRightIcon } from "@sanity/icons";
4
+ import { Text, Card, Box, Label, Grid, Flex } from "@sanity/ui";
5
+ import { addDays } from "date-fns/addDays";
6
+ import { addMonths } from "date-fns/addMonths";
7
+ import { setHours } from "date-fns/setHours";
8
+ import { setMinutes } from "date-fns/setMinutes";
9
+ import { forwardRef, useState, useRef, useImperativeHandle, useEffect } from "react";
10
+ import { Button, TooltipDelayGroupProvider } from "./index.js";
11
+ import { useTimeZone, useWeeksOfMonth, DEFAULT_WEEK_DAY_NAMES, useTranslation, DEFAULT_MONTH_NAMES, ARROW_KEYS } from "./index2.js";
12
+ import { isSameDay } from "date-fns/isSameDay";
13
+ import { isSameMonth } from "date-fns/isSameMonth";
14
+ import { isWeekend } from "date-fns/isWeekend";
15
+ function CalendarDay(props) {
16
+ const $ = c(33), {
17
+ date,
18
+ focused,
19
+ isCurrentMonth,
20
+ isToday,
21
+ onSelect,
22
+ selected,
23
+ disabled,
24
+ dateStyles: t0
25
+ } = props;
26
+ let t1;
27
+ $[0] !== t0 ? (t1 = t0 === void 0 ? {} : t0, $[0] = t0, $[1] = t1) : t1 = $[1];
28
+ const dateStyles = t1;
29
+ let t2;
30
+ $[2] !== date || $[3] !== onSelect || $[4] !== selected ? (t2 = () => {
31
+ onSelect(selected ? void 0 : date);
32
+ }, $[2] = date, $[3] = onSelect, $[4] = selected, $[5] = t2) : t2 = $[5];
33
+ const handleClick = t2;
34
+ let tone;
35
+ isToday || selected ? tone = "primary" : (isWeekend(date), tone = "default");
36
+ let t3;
37
+ $[6] !== date ? (t3 = date.toDateString(), $[6] = date, $[7] = t3) : t3 = $[7];
38
+ const t4 = focused ? "true" : "";
39
+ let t5;
40
+ $[8] !== date || $[9] !== isToday ? (t5 = isToday ? "day-tile-today" : `day-tile-${date.getDate()}-${date.getMonth()}`, $[8] = date, $[9] = isToday, $[10] = t5) : t5 = $[10];
41
+ let t6;
42
+ $[11] === /* @__PURE__ */ Symbol.for("react.memo_cache_sentinel") ? (t6 = {
43
+ position: "relative"
44
+ }, $[11] = t6) : t6 = $[11];
45
+ const t7 = !selected && !isCurrentMonth ? 0.35 : 1;
46
+ let t8;
47
+ $[12] !== dateStyles || $[13] !== t7 ? (t8 = {
48
+ opacity: t7,
49
+ textAlign: "center",
50
+ ...dateStyles
51
+ }, $[12] = dateStyles, $[13] = t7, $[14] = t8) : t8 = $[14];
52
+ let t9;
53
+ $[15] !== date || $[16] !== selected ? (t9 = selected ? /* @__PURE__ */ jsx(CloseIcon, {}) : date.getDate(), $[15] = date, $[16] = selected, $[17] = t9) : t9 = $[17];
54
+ let t10;
55
+ $[18] !== t8 || $[19] !== t9 ? (t10 = /* @__PURE__ */ jsx(Text, { size: 1, style: t8, children: t9 }), $[18] = t8, $[19] = t9, $[20] = t10) : t10 = $[20];
56
+ let t11;
57
+ $[21] !== disabled || $[22] !== handleClick || $[23] !== selected || $[24] !== t10 || $[25] !== t3 || $[26] !== t4 || $[27] !== t5 || $[28] !== tone ? (t11 = /* @__PURE__ */ jsx(Card, { "aria-label": t3, "aria-pressed": selected, as: "button", __unstable_focusRing: !0, "data-weekday": !0, "data-focused": t4, "data-testid": t5, role: "button", tabIndex: -1, onClick: handleClick, paddingX: 3, paddingY: 4, radius: 2, selected, style: t6, tone, disabled, children: t10 }), $[21] = disabled, $[22] = handleClick, $[23] = selected, $[24] = t10, $[25] = t3, $[26] = t4, $[27] = t5, $[28] = tone, $[29] = t11) : t11 = $[29];
58
+ let t12;
59
+ return $[30] !== selected || $[31] !== t11 ? (t12 = /* @__PURE__ */ jsx("div", { "aria-selected": selected, "data-ui": "CalendarDay", children: t11 }), $[30] = selected, $[31] = t11, $[32] = t12) : t12 = $[32], t12;
60
+ }
61
+ function CalendarMonth(props) {
62
+ const $ = c(24), {
63
+ date,
64
+ renderCalendarDay,
65
+ hidden,
66
+ disabled,
67
+ timeZoneScope
68
+ } = props, {
69
+ getCurrentZoneDate
70
+ } = useTimeZone(timeZoneScope), CalendarDay$1 = renderCalendarDay || CalendarDay, weeksOfMonth = useWeeksOfMonth(date), t0 = hidden || !1;
71
+ let t1, t2;
72
+ $[0] === /* @__PURE__ */ Symbol.for("react.memo_cache_sentinel") ? (t1 = {
73
+ gridGap: "1px",
74
+ gridTemplateColumns: "repeat(7, 1fr)"
75
+ }, t2 = DEFAULT_WEEK_DAY_NAMES.map(_temp), $[0] = t1, $[1] = t2) : (t1 = $[0], t2 = $[1]);
76
+ let t3;
77
+ if ($[2] !== CalendarDay$1 || $[3] !== date || $[4] !== disabled || $[5] !== getCurrentZoneDate || $[6] !== props.focused || $[7] !== props.onSelect || $[8] !== props.selected || $[9] !== weeksOfMonth) {
78
+ let t42;
79
+ $[11] !== CalendarDay$1 || $[12] !== date || $[13] !== disabled || $[14] !== getCurrentZoneDate || $[15] !== props.focused || $[16] !== props.onSelect || $[17] !== props.selected ? (t42 = (week, weekIdx) => week.days.map((dayDate, dayIdx) => {
80
+ const focused = props.focused && isSameDay(dayDate, props.focused), selected = props.selected && isSameDay(dayDate, props.selected), isToday = isSameDay(dayDate, getCurrentZoneDate()), isCurrentMonth = isSameMonth(dayDate, props.focused || date);
81
+ return /* @__PURE__ */ jsx(CalendarDay$1, { date: dayDate, focused, isCurrentMonth, isToday, onSelect: props.onSelect, selected, disabled }, `${weekIdx}-${dayIdx}`);
82
+ }), $[11] = CalendarDay$1, $[12] = date, $[13] = disabled, $[14] = getCurrentZoneDate, $[15] = props.focused, $[16] = props.onSelect, $[17] = props.selected, $[18] = t42) : t42 = $[18], t3 = weeksOfMonth.map(t42), $[2] = CalendarDay$1, $[3] = date, $[4] = disabled, $[5] = getCurrentZoneDate, $[6] = props.focused, $[7] = props.onSelect, $[8] = props.selected, $[9] = weeksOfMonth, $[10] = t3;
83
+ } else
84
+ t3 = $[10];
85
+ let t4;
86
+ $[19] !== t3 ? (t4 = /* @__PURE__ */ jsxs(Grid, { style: t1, children: [
87
+ t2,
88
+ t3
89
+ ] }), $[19] = t3, $[20] = t4) : t4 = $[20];
90
+ let t5;
91
+ return $[21] !== t0 || $[22] !== t4 ? (t5 = /* @__PURE__ */ jsx(Box, { "aria-hidden": t0, "data-ui": "CalendarMonth", children: t4 }), $[21] = t0, $[22] = t4, $[23] = t5) : t5 = $[23], t5;
92
+ }
93
+ function _temp(weekday) {
94
+ return /* @__PURE__ */ jsx(Card, { paddingY: 3, children: /* @__PURE__ */ jsx(Label, { size: 1, style: {
95
+ textAlign: "center"
96
+ }, children: weekday.slice(0, 1) }) }, weekday);
97
+ }
98
+ const PRESERVE_FOCUS_ELEMENT = /* @__PURE__ */ jsx("span", { "data-preserve-focus": !0, style: {
99
+ overflow: "hidden",
100
+ position: "absolute",
101
+ outline: "none"
102
+ }, tabIndex: -1 }), CalendarFilter = forwardRef(function(props, forwardedRef) {
103
+ const $ = c(86);
104
+ let handleOnFocusedDateChange, onSelect, providedFocusedDate, renderCalendarDay, restProps, selectedDate, timeZoneScope;
105
+ $[0] !== props ? ({
106
+ focusedDate: providedFocusedDate,
107
+ onFocusedDateChange: handleOnFocusedDateChange,
108
+ onSelect,
109
+ selectedDate,
110
+ renderCalendarDay,
111
+ timeZoneScope,
112
+ ...restProps
113
+ } = props, $[0] = props, $[1] = handleOnFocusedDateChange, $[2] = onSelect, $[3] = providedFocusedDate, $[4] = renderCalendarDay, $[5] = restProps, $[6] = selectedDate, $[7] = timeZoneScope) : (handleOnFocusedDateChange = $[1], onSelect = $[2], providedFocusedDate = $[3], renderCalendarDay = $[4], restProps = $[5], selectedDate = $[6], timeZoneScope = $[7]);
114
+ let t0;
115
+ $[8] === /* @__PURE__ */ Symbol.for("react.memo_cache_sentinel") ? (t0 = /* @__PURE__ */ new Date(), $[8] = t0) : t0 = $[8];
116
+ const [_focusedDate, _setFocusedDate] = useState(t0), {
117
+ t: tCore
118
+ } = useTranslation(), {
119
+ zoneDateToUtc
120
+ } = useTimeZone(timeZoneScope), focusedDate = providedFocusedDate || _focusedDate;
121
+ let t1;
122
+ $[9] !== handleOnFocusedDateChange || $[10] !== providedFocusedDate ? (t1 = (date) => {
123
+ handleOnFocusedDateChange && providedFocusedDate ? handleOnFocusedDateChange(date) : _setFocusedDate(date);
124
+ }, $[9] = handleOnFocusedDateChange, $[10] = providedFocusedDate, $[11] = t1) : t1 = $[11];
125
+ const onFocusedDateChange = t1;
126
+ let t2;
127
+ $[12] !== onFocusedDateChange || $[13] !== zoneDateToUtc ? (t2 = (date_0) => {
128
+ onFocusedDateChange(zoneDateToUtc(date_0));
129
+ }, $[12] = onFocusedDateChange, $[13] = zoneDateToUtc, $[14] = t2) : t2 = $[14];
130
+ const setFocusedDate = t2;
131
+ let t3;
132
+ $[15] !== focusedDate || $[16] !== setFocusedDate ? (t3 = (by) => setFocusedDate(addMonths(focusedDate, by)), $[15] = focusedDate, $[16] = setFocusedDate, $[17] = t3) : t3 = $[17];
133
+ const moveFocusedDate = t3;
134
+ let t4;
135
+ $[18] !== onFocusedDateChange || $[19] !== onSelect || $[20] !== zoneDateToUtc ? (t4 = (date_1) => {
136
+ if (date_1) {
137
+ const targetDate = zoneDateToUtc(setMinutes(setHours(date_1, date_1.getHours()), date_1.getMinutes()));
138
+ onSelect(targetDate), onFocusedDateChange(targetDate);
139
+ } else
140
+ onSelect(void 0);
141
+ }, $[18] = onFocusedDateChange, $[19] = onSelect, $[20] = zoneDateToUtc, $[21] = t4) : t4 = $[21];
142
+ const handleDateChange = t4, ref = useRef(null);
143
+ let t5;
144
+ $[22] === /* @__PURE__ */ Symbol.for("react.memo_cache_sentinel") ? (t5 = () => ref.current, $[22] = t5) : t5 = $[22], useImperativeHandle(forwardedRef, t5);
145
+ let t6;
146
+ $[23] === /* @__PURE__ */ Symbol.for("react.memo_cache_sentinel") ? (t6 = () => {
147
+ ref.current?.querySelector('[data-focused="true"]')?.focus();
148
+ }, $[23] = t6) : t6 = $[23];
149
+ const focusCurrentWeekDay = t6;
150
+ let t7;
151
+ $[24] !== focusedDate || $[25] !== onFocusedDateChange || $[26] !== zoneDateToUtc ? (t7 = (event) => {
152
+ if (ARROW_KEYS.includes(event.key)) {
153
+ if (event.preventDefault(), event.currentTarget.hasAttribute("data-calendar-grid")) {
154
+ focusCurrentWeekDay();
155
+ return;
156
+ }
157
+ event.key === "ArrowUp" && onFocusedDateChange(zoneDateToUtc(addDays(focusedDate, -7))), event.key === "ArrowDown" && onFocusedDateChange(zoneDateToUtc(addDays(focusedDate, 7))), event.key === "ArrowLeft" && onFocusedDateChange(zoneDateToUtc(addDays(focusedDate, -1))), event.key === "ArrowRight" && onFocusedDateChange(zoneDateToUtc(addDays(focusedDate, 1))), ref.current?.querySelector("[data-preserve-focus]")?.focus();
158
+ }
159
+ }, $[24] = focusedDate, $[25] = onFocusedDateChange, $[26] = zoneDateToUtc, $[27] = t7) : t7 = $[27];
160
+ const handleKeyDown = t7;
161
+ let t8, t9;
162
+ $[28] === /* @__PURE__ */ Symbol.for("react.memo_cache_sentinel") ? (t8 = () => {
163
+ focusCurrentWeekDay();
164
+ }, t9 = [focusCurrentWeekDay], $[28] = t8, $[29] = t9) : (t8 = $[28], t9 = $[29]), useEffect(t8, t9);
165
+ let t10;
166
+ $[30] === /* @__PURE__ */ Symbol.for("react.memo_cache_sentinel") ? (t10 = () => {
167
+ document.activeElement?.matches("[data-calendar-grid], [data-calendar-grid] [data-preserve-focus]") && focusCurrentWeekDay();
168
+ }, $[30] = t10) : t10 = $[30];
169
+ let t11;
170
+ $[31] !== focusedDate ? (t11 = [ref, focusCurrentWeekDay, focusedDate], $[31] = focusedDate, $[32] = t11) : t11 = $[32], useEffect(t10, t11);
171
+ let t12;
172
+ $[33] !== onFocusedDateChange || $[34] !== onSelect ? (t12 = () => {
173
+ const now = /* @__PURE__ */ new Date();
174
+ onSelect(now), onFocusedDateChange(now);
175
+ }, $[33] = onFocusedDateChange, $[34] = onSelect, $[35] = t12) : t12 = $[35];
176
+ const handleNowClick = t12;
177
+ let t13;
178
+ $[36] !== moveFocusedDate ? (t13 = () => moveFocusedDate(-1), $[36] = moveFocusedDate, $[37] = t13) : t13 = $[37];
179
+ const handlePrevMonthClick = t13;
180
+ let t14;
181
+ $[38] !== moveFocusedDate ? (t14 = () => moveFocusedDate(1), $[38] = moveFocusedDate, $[39] = t14) : t14 = $[39];
182
+ const handleNextMonthClick = t14;
183
+ let t15;
184
+ $[40] === /* @__PURE__ */ Symbol.for("react.memo_cache_sentinel") ? (t15 = {
185
+ borderBottom: "1px solid var(--card-border-color)",
186
+ minHeight: "55px",
187
+ position: "sticky",
188
+ top: 0
189
+ }, $[40] = t15) : t15 = $[40];
190
+ const t16 = DEFAULT_MONTH_NAMES[focusedDate?.getMonth()];
191
+ let t17;
192
+ $[41] !== focusedDate ? (t17 = focusedDate?.getFullYear(), $[41] = focusedDate, $[42] = t17) : t17 = $[42];
193
+ let t18;
194
+ $[43] !== t16 || $[44] !== t17 ? (t18 = /* @__PURE__ */ jsxs(Text, { weight: "medium", size: 1, children: [
195
+ t16,
196
+ " ",
197
+ t17
198
+ ] }), $[43] = t16, $[44] = t17, $[45] = t18) : t18 = $[45];
199
+ let t19;
200
+ $[46] === /* @__PURE__ */ Symbol.for("react.memo_cache_sentinel") ? (t19 = {
201
+ content: "Previous month"
202
+ }, $[46] = t19) : t19 = $[46];
203
+ let t20;
204
+ $[47] !== handlePrevMonthClick || $[48] !== restProps.disabled ? (t20 = /* @__PURE__ */ jsx(Button, { icon: ChevronLeftIcon, mode: "bleed", onClick: handlePrevMonthClick, tooltipProps: t19, disabled: restProps.disabled }), $[47] = handlePrevMonthClick, $[48] = restProps.disabled, $[49] = t20) : t20 = $[49];
205
+ let t21;
206
+ $[50] === /* @__PURE__ */ Symbol.for("react.memo_cache_sentinel") ? (t21 = {
207
+ content: "Next month"
208
+ }, $[50] = t21) : t21 = $[50];
209
+ let t22;
210
+ $[51] !== handleNextMonthClick || $[52] !== restProps.disabled ? (t22 = /* @__PURE__ */ jsx(Button, { icon: ChevronRightIcon, mode: "bleed", onClick: handleNextMonthClick, tooltipProps: t21, disabled: restProps.disabled }), $[51] = handleNextMonthClick, $[52] = restProps.disabled, $[53] = t22) : t22 = $[53];
211
+ let t23;
212
+ $[54] !== t20 || $[55] !== t22 ? (t23 = /* @__PURE__ */ jsx(Flex, { paddingRight: 3, gap: 2, children: /* @__PURE__ */ jsxs(TooltipDelayGroupProvider, { children: [
213
+ t20,
214
+ t22
215
+ ] }) }), $[54] = t20, $[55] = t22, $[56] = t23) : t23 = $[56];
216
+ let t24;
217
+ $[57] !== t18 || $[58] !== t23 ? (t24 = /* @__PURE__ */ jsx(Flex, { align: "center", paddingLeft: 4, style: t15, children: /* @__PURE__ */ jsxs(Flex, { align: "center", flex: 1, justify: "space-between", children: [
218
+ t18,
219
+ t23
220
+ ] }) }), $[57] = t18, $[58] = t23, $[59] = t24) : t24 = $[59];
221
+ let t25;
222
+ $[60] !== focusedDate || $[61] !== handleDateChange || $[62] !== providedFocusedDate || $[63] !== renderCalendarDay || $[64] !== restProps.disabled || $[65] !== selectedDate || $[66] !== timeZoneScope ? (t25 = /* @__PURE__ */ jsx(CalendarMonth, { date: focusedDate, focused: providedFocusedDate, onSelect: handleDateChange, selected: selectedDate, renderCalendarDay, disabled: restProps.disabled, timeZoneScope }), $[60] = focusedDate, $[61] = handleDateChange, $[62] = providedFocusedDate, $[63] = renderCalendarDay, $[64] = restProps.disabled, $[65] = selectedDate, $[66] = timeZoneScope, $[67] = t25) : t25 = $[67];
223
+ let t26;
224
+ $[68] !== handleKeyDown || $[69] !== t25 ? (t26 = /* @__PURE__ */ jsx(Box, { children: /* @__PURE__ */ jsxs(Box, { "data-calendar-grid": !0, onKeyDown: handleKeyDown, overflow: "hidden", paddingBottom: 1, paddingX: 1, tabIndex: 0, children: [
225
+ t25,
226
+ PRESERVE_FOCUS_ELEMENT
227
+ ] }) }), $[68] = handleKeyDown, $[69] = t25, $[70] = t26) : t26 = $[70];
228
+ let t27;
229
+ $[71] === /* @__PURE__ */ Symbol.for("react.memo_cache_sentinel") ? (t27 = {
230
+ borderBottom: "1px solid var(--card-border-color)"
231
+ }, $[71] = t27) : t27 = $[71];
232
+ const t28 = restProps.disabled;
233
+ let t29;
234
+ $[72] !== tCore ? (t29 = tCore("calendar.action.go-to-today-aria-label"), $[72] = tCore, $[73] = t29) : t29 = $[73];
235
+ let t30;
236
+ $[74] !== tCore ? (t30 = tCore("calendar.action.go-to-today"), $[74] = tCore, $[75] = t30) : t30 = $[75];
237
+ let t31;
238
+ $[76] !== handleNowClick || $[77] !== restProps.disabled || $[78] !== t29 || $[79] !== t30 ? (t31 = /* @__PURE__ */ jsx(Box, { flex: 1, style: t27, children: /* @__PURE__ */ jsx(Button, { disabled: t28, mode: "bleed", onClick: handleNowClick, width: "fill", "aria-label": t29, text: t30 }) }), $[76] = handleNowClick, $[77] = restProps.disabled, $[78] = t29, $[79] = t30, $[80] = t31) : t31 = $[80];
239
+ let t32;
240
+ return $[81] !== restProps || $[82] !== t24 || $[83] !== t26 || $[84] !== t31 ? (t32 = /* @__PURE__ */ jsxs(Box, { "data-ui": "Calendar", ...restProps, ref, children: [
241
+ t24,
242
+ t26,
243
+ t31
244
+ ] }), $[81] = restProps, $[82] = t24, $[83] = t26, $[84] = t31, $[85] = t32) : t32 = $[85], t32;
245
+ });
246
+ export {
247
+ CalendarDay,
248
+ CalendarFilter
249
+ };
250
+ //# sourceMappingURL=CalendarFilter.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"CalendarFilter.js","sources":["../../src/core/components/inputs/DateFilters/calendar/CalendarDay.tsx","../../src/core/components/inputs/DateFilters/calendar/CalendarMonth.tsx","../../src/core/components/inputs/DateFilters/calendar/CalendarFilter.tsx"],"sourcesContent":["import {CloseIcon} from '@sanity/icons'\nimport {Card, type CardTone, Text} from '@sanity/ui'\nimport {isWeekend} from 'date-fns/isWeekend'\nimport {useCallback} from 'react'\n\nexport interface CalendarDayProps {\n date: Date // clock time\n focused?: boolean\n onSelect: (date?: Date) => void\n isCurrentMonth?: boolean\n isToday: boolean\n selected?: boolean\n dateStyles?: React.CSSProperties\n disabled?: boolean\n}\n\nexport function CalendarDay(props: CalendarDayProps) {\n const {\n date,\n focused,\n isCurrentMonth,\n isToday,\n onSelect,\n selected,\n disabled,\n dateStyles = {},\n } = props\n\n const handleClick = useCallback(() => {\n if (selected) {\n onSelect(undefined)\n } else {\n onSelect(date)\n }\n }, [date, onSelect, selected])\n\n let tone: CardTone\n if (isToday || selected) {\n tone = 'primary'\n } else if (isWeekend(date)) {\n // tone = 'transparent'\n tone = 'default'\n } else {\n tone = 'default'\n }\n\n return (\n <div aria-selected={selected} data-ui=\"CalendarDay\">\n <Card\n aria-label={date.toDateString()}\n aria-pressed={selected}\n as=\"button\"\n __unstable_focusRing\n data-weekday\n data-focused={focused ? 'true' : ''}\n data-testid={isToday ? 'day-tile-today' : `day-tile-${date.getDate()}-${date.getMonth()}`}\n role=\"button\"\n tabIndex={-1}\n onClick={handleClick}\n paddingX={3}\n paddingY={4}\n radius={2}\n selected={selected}\n style={{position: 'relative'}}\n tone={tone}\n disabled={disabled}\n >\n <Text\n size={1}\n style={{\n opacity: !selected && !isCurrentMonth ? 0.35 : 1,\n textAlign: 'center',\n ...dateStyles,\n }}\n >\n {selected ? <CloseIcon /> : date.getDate()}\n </Text>\n </Card>\n </div>\n )\n}\n","import {Box, Card, Grid, Label} from '@sanity/ui'\nimport {isSameDay} from 'date-fns/isSameDay'\nimport {isSameMonth} from 'date-fns/isSameMonth'\n\nimport {type TimeZoneScope, useTimeZone} from '../../../../hooks/useTimeZone'\nimport {DEFAULT_WEEK_DAY_NAMES} from '../../DateInputs/calendar/constants'\nimport {useWeeksOfMonth} from '../../DateInputs/calendar/utils'\nimport {CalendarDay as DefaultCalendarDay} from './CalendarDay'\nimport {type CalendarProps} from './CalendarFilter'\n\ninterface CalendarMonthProps {\n date: Date\n focused?: Date\n selected?: Date\n onSelect: (date?: Date) => void\n hidden?: boolean\n renderCalendarDay?: CalendarProps['renderCalendarDay']\n disabled?: boolean\n timeZoneScope: TimeZoneScope\n}\n\nexport function CalendarMonth(props: CalendarMonthProps) {\n const {date, renderCalendarDay, hidden, disabled, timeZoneScope} = props\n const {getCurrentZoneDate} = useTimeZone(timeZoneScope)\n const CalendarDay = renderCalendarDay || DefaultCalendarDay\n const weeksOfMonth = useWeeksOfMonth(date)\n\n return (\n <Box aria-hidden={hidden || false} data-ui=\"CalendarMonth\">\n <Grid\n style={{\n gridGap: '1px',\n gridTemplateColumns: 'repeat(7, 1fr)',\n }}\n >\n {/* Header */}\n {DEFAULT_WEEK_DAY_NAMES.map((weekday) => (\n <Card key={weekday} paddingY={3}>\n <Label size={1} style={{textAlign: 'center'}}>\n {weekday.slice(0, 1)}\n </Label>\n </Card>\n ))}\n\n {weeksOfMonth.map((week, weekIdx) =>\n week.days.map((dayDate, dayIdx) => {\n const focused = props.focused && isSameDay(dayDate, props.focused)\n const selected = props.selected && isSameDay(dayDate, props.selected)\n const isToday = isSameDay(dayDate, getCurrentZoneDate())\n const isCurrentMonth = isSameMonth(dayDate, props.focused || date)\n\n return (\n <CalendarDay\n key={`${weekIdx}-${dayIdx}`}\n date={dayDate}\n focused={focused}\n isCurrentMonth={isCurrentMonth}\n isToday={isToday}\n onSelect={props.onSelect}\n selected={selected}\n disabled={disabled}\n />\n )\n }),\n )}\n </Grid>\n </Box>\n )\n}\n","import {ChevronLeftIcon, ChevronRightIcon} from '@sanity/icons'\nimport {Box, Flex, Text} from '@sanity/ui'\nimport {addDays} from 'date-fns/addDays'\nimport {addMonths} from 'date-fns/addMonths'\nimport {setHours} from 'date-fns/setHours'\nimport {setMinutes} from 'date-fns/setMinutes'\nimport {\n type ComponentProps,\n type ForwardedRef,\n forwardRef,\n type KeyboardEvent,\n useCallback,\n useEffect,\n useImperativeHandle,\n useRef,\n useState,\n} from 'react'\n\nimport {Button} from '../../../../../ui-components/button/Button'\nimport {TooltipDelayGroupProvider} from '../../../../../ui-components/tooltipDelayGroupProvider/TooltipDelayGroupProvider'\nimport {type TimeZoneScope, useTimeZone} from '../../../../hooks/useTimeZone'\nimport {useTranslation} from '../../../../i18n/hooks/useTranslation'\nimport {ARROW_KEYS, DEFAULT_MONTH_NAMES} from '../../DateInputs/calendar/constants'\nimport {type CalendarDayProps} from './CalendarDay'\nimport {CalendarMonth} from './CalendarMonth'\n\nexport type CalendarProps = Omit<ComponentProps<'div'>, 'onSelect'> & {\n focusedDate?: Date\n onSelect: (date?: Date) => void\n onFocusedDateChange?: (index: Date) => void\n selectedDate?: Date\n renderCalendarDay?: (props: CalendarDayProps) => React.ReactNode\n disabled?: boolean\n timeZoneScope: TimeZoneScope\n}\n\n// This is used to maintain focus on a child element of the calendar-grid between re-renders\n// When using arrow keys to move focus from a day in one month to another we are setting focus at the button for the day\n// after it has changed but *only* if we *already* had focus inside the calendar grid (e.g not if focus was on the \"next\n// year\" button, or any of the other controls)\n// When moving from the last day of a month that displays 6 weeks in the grid to a month that displays 5 weeks, current\n// focus gets lost on render, so this provides us with a stable element to help us preserve focus on a child element of\n// the calendar grid between re-renders\nconst PRESERVE_FOCUS_ELEMENT = (\n <span\n data-preserve-focus\n style={{overflow: 'hidden', position: 'absolute', outline: 'none'}}\n tabIndex={-1}\n />\n)\n\nexport const CalendarFilter = forwardRef(function Calendar(\n props: CalendarProps,\n forwardedRef: ForwardedRef<HTMLDivElement>,\n) {\n const {\n focusedDate: providedFocusedDate,\n onFocusedDateChange: handleOnFocusedDateChange,\n onSelect,\n selectedDate,\n renderCalendarDay,\n timeZoneScope,\n ...restProps\n } = props\n const [_focusedDate, _setFocusedDate] = useState<Date>(new Date())\n const {t: tCore} = useTranslation()\n const {zoneDateToUtc} = useTimeZone(timeZoneScope)\n\n const focusedDate = providedFocusedDate || _focusedDate\n\n const onFocusedDateChange = useCallback(\n (date: Date) => {\n if (handleOnFocusedDateChange && providedFocusedDate) {\n handleOnFocusedDateChange(date)\n } else {\n _setFocusedDate(date)\n }\n },\n [handleOnFocusedDateChange, providedFocusedDate],\n )\n\n const setFocusedDate = useCallback(\n (date: Date) => {\n onFocusedDateChange(zoneDateToUtc(date))\n },\n [onFocusedDateChange, zoneDateToUtc],\n )\n\n const moveFocusedDate = useCallback(\n (by: number) => setFocusedDate(addMonths(focusedDate, by)),\n [focusedDate, setFocusedDate],\n )\n\n const handleDateChange = useCallback(\n (date?: Date) => {\n if (date) {\n const targetDate = zoneDateToUtc(\n setMinutes(setHours(date, date.getHours()), date.getMinutes()),\n )\n onSelect(targetDate)\n onFocusedDateChange(targetDate)\n } else {\n onSelect(undefined)\n }\n },\n [onSelect, zoneDateToUtc, onFocusedDateChange],\n )\n\n const ref = useRef<HTMLDivElement | null>(null)\n useImperativeHandle<HTMLDivElement | null, HTMLDivElement | null>(forwardedRef, () => ref.current)\n\n const focusCurrentWeekDay = useCallback(() => {\n ref.current?.querySelector<HTMLElement>(`[data-focused=\"true\"]`)?.focus()\n }, [ref])\n\n const handleKeyDown = useCallback(\n (event: KeyboardEvent<HTMLInputElement>) => {\n if (!ARROW_KEYS.includes(event.key)) {\n return\n }\n event.preventDefault()\n if (event.currentTarget.hasAttribute('data-calendar-grid')) {\n focusCurrentWeekDay()\n return\n }\n if (event.key === 'ArrowUp') {\n onFocusedDateChange(zoneDateToUtc(addDays(focusedDate, -7)))\n }\n if (event.key === 'ArrowDown') {\n onFocusedDateChange(zoneDateToUtc(addDays(focusedDate, 7)))\n }\n if (event.key === 'ArrowLeft') {\n onFocusedDateChange(zoneDateToUtc(addDays(focusedDate, -1)))\n }\n if (event.key === 'ArrowRight') {\n onFocusedDateChange(zoneDateToUtc(addDays(focusedDate, 1)))\n }\n // set focus temporarily on this element to make sure focus is still inside the calendar-grid after re-render\n ref.current?.querySelector<HTMLElement>('[data-preserve-focus]')?.focus()\n },\n [ref, focusCurrentWeekDay, onFocusedDateChange, focusedDate, zoneDateToUtc],\n )\n\n useEffect(() => {\n focusCurrentWeekDay()\n }, [focusCurrentWeekDay])\n\n useEffect(() => {\n const currentFocusInCalendarGrid = document.activeElement?.matches(\n '[data-calendar-grid], [data-calendar-grid] [data-preserve-focus]',\n )\n if (\n // Only move focus if it's currently in the calendar grid\n currentFocusInCalendarGrid\n ) {\n focusCurrentWeekDay()\n }\n }, [ref, focusCurrentWeekDay, focusedDate])\n\n // Select AND focus current date when 'today' is pressed\n const handleNowClick = useCallback(() => {\n const now = new Date()\n onSelect(now)\n onFocusedDateChange(now)\n }, [onSelect, onFocusedDateChange])\n\n const handlePrevMonthClick = useCallback(() => moveFocusedDate(-1), [moveFocusedDate])\n\n const handleNextMonthClick = useCallback(() => moveFocusedDate(1), [moveFocusedDate])\n\n return (\n <Box data-ui=\"Calendar\" {...restProps} ref={ref}>\n {/* Month + Year header */}\n <Flex\n align=\"center\"\n paddingLeft={4}\n style={{\n borderBottom: '1px solid var(--card-border-color)',\n minHeight: `55px`,\n position: 'sticky',\n top: 0,\n }}\n >\n <Flex align=\"center\" flex={1} justify=\"space-between\">\n <Text weight=\"medium\" size={1}>\n {DEFAULT_MONTH_NAMES[focusedDate?.getMonth()]} {focusedDate?.getFullYear()}\n </Text>\n <Flex paddingRight={3} gap={2}>\n <TooltipDelayGroupProvider>\n <Button\n icon={ChevronLeftIcon}\n mode=\"bleed\"\n onClick={handlePrevMonthClick}\n tooltipProps={{content: 'Previous month'}}\n disabled={restProps.disabled}\n />\n <Button\n icon={ChevronRightIcon}\n mode=\"bleed\"\n onClick={handleNextMonthClick}\n tooltipProps={{content: 'Next month'}}\n disabled={restProps.disabled}\n />\n </TooltipDelayGroupProvider>\n </Flex>\n </Flex>\n </Flex>\n\n {/* Select date */}\n <Box>\n {/* Selected month (grid of days) */}\n <Box\n data-calendar-grid\n onKeyDown={handleKeyDown}\n overflow=\"hidden\"\n paddingBottom={1}\n paddingX={1}\n tabIndex={0}\n >\n <CalendarMonth\n date={focusedDate}\n focused={providedFocusedDate}\n onSelect={handleDateChange}\n selected={selectedDate}\n renderCalendarDay={renderCalendarDay}\n disabled={restProps.disabled}\n timeZoneScope={timeZoneScope}\n />\n {PRESERVE_FOCUS_ELEMENT}\n </Box>\n </Box>\n\n {/* Today button */}\n <Box flex={1} style={{borderBottom: '1px solid var(--card-border-color)'}}>\n <Button\n disabled={restProps.disabled}\n mode=\"bleed\"\n onClick={handleNowClick}\n width=\"fill\"\n aria-label={tCore('calendar.action.go-to-today-aria-label')}\n text={tCore('calendar.action.go-to-today')}\n />\n </Box>\n </Box>\n )\n})\n"],"names":["CalendarDay","props","$","_c","date","focused","isCurrentMonth","isToday","onSelect","selected","disabled","dateStyles","t0","t1","undefined","t2","handleClick","tone","isWeekend","t3","toDateString","t4","t5","getDate","getMonth","t6","for","position","t7","t8","opacity","textAlign","t9","t10","t11","t12","CalendarMonth","renderCalendarDay","hidden","timeZoneScope","getCurrentZoneDate","useTimeZone","DefaultCalendarDay","weeksOfMonth","useWeeksOfMonth","gridGap","gridTemplateColumns","DEFAULT_WEEK_DAY_NAMES","map","_temp","week","weekIdx","days","dayDate","dayIdx","isSameDay","isSameMonth","weekday","slice","PRESERVE_FOCUS_ELEMENT","overflow","outline","CalendarFilter","forwardRef","forwardedRef","handleOnFocusedDateChange","providedFocusedDate","restProps","selectedDate","focusedDate","onFocusedDateChange","Symbol","Date","_focusedDate","_setFocusedDate","useState","t","tCore","useTranslation","zoneDateToUtc","date_0","setFocusedDate","by","addMonths","moveFocusedDate","date_1","targetDate","setMinutes","setHours","getHours","getMinutes","handleDateChange","ref","useRef","current","useImperativeHandle","querySelector","focus","focusCurrentWeekDay","event","ARROW_KEYS","includes","key","preventDefault","currentTarget","hasAttribute","addDays","handleKeyDown","useEffect","document","activeElement","matches","now","handleNowClick","t13","handlePrevMonthClick","t14","handleNextMonthClick","t15","borderBottom","minHeight","top","t16","DEFAULT_MONTH_NAMES","t17","getFullYear","t18","t19","content","t20","ChevronLeftIcon","t21","t22","ChevronRightIcon","t23","t24","t25","t26","t27","t28","t29","t30","t31","t32"],"mappings":"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"}