panelui-native 0.68.0 → 0.73.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (206) hide show
  1. package/README.md +13 -2
  2. package/lib/module/components/accordion/index.js +38 -13
  3. package/lib/module/components/accordion/index.js.map +1 -1
  4. package/lib/module/components/area-chart/index.js +1 -0
  5. package/lib/module/components/area-chart/index.js.map +1 -1
  6. package/lib/module/components/breadcrumb/index.js +2 -1
  7. package/lib/module/components/breadcrumb/index.js.map +1 -1
  8. package/lib/module/components/button/index.js +21 -12
  9. package/lib/module/components/button/index.js.map +1 -1
  10. package/lib/module/components/carousel/index.js +1 -1
  11. package/lib/module/components/carousel/index.js.map +1 -1
  12. package/lib/module/components/chip/index.js +2 -2
  13. package/lib/module/components/chip/index.js.map +1 -1
  14. package/lib/module/components/code-block/index.js.map +1 -1
  15. package/lib/module/components/collapsible/index.js +284 -0
  16. package/lib/module/components/collapsible/index.js.map +1 -0
  17. package/lib/module/components/color-picker/index.js.map +1 -1
  18. package/lib/module/components/fab/index.js +7 -6
  19. package/lib/module/components/fab/index.js.map +1 -1
  20. package/lib/module/components/flow/index.js +67 -4
  21. package/lib/module/components/flow/index.js.map +1 -1
  22. package/lib/module/components/frame/index.js +2 -2
  23. package/lib/module/components/frame/index.js.map +1 -1
  24. package/lib/module/components/grid-item/index.js +2 -2
  25. package/lib/module/components/grid-item/index.js.map +1 -1
  26. package/lib/module/components/heatmap-chart/index.js +1 -0
  27. package/lib/module/components/heatmap-chart/index.js.map +1 -1
  28. package/lib/module/components/hex-chart/index.js +1 -0
  29. package/lib/module/components/hex-chart/index.js.map +1 -1
  30. package/lib/module/components/input-group/index.js +7 -2
  31. package/lib/module/components/input-group/index.js.map +1 -1
  32. package/lib/module/components/item/index.js +2 -2
  33. package/lib/module/components/item/index.js.map +1 -1
  34. package/lib/module/components/line-chart/index.js +1 -0
  35. package/lib/module/components/line-chart/index.js.map +1 -1
  36. package/lib/module/components/live-line-chart/index.js +103 -9
  37. package/lib/module/components/live-line-chart/index.js.map +1 -1
  38. package/lib/module/components/live-line-chart/live-line-accessibility.js +47 -0
  39. package/lib/module/components/live-line-chart/live-line-accessibility.js.map +1 -0
  40. package/lib/module/components/live-line-chart/live-line-lifecycle.js +33 -0
  41. package/lib/module/components/live-line-chart/live-line-lifecycle.js.map +1 -0
  42. package/lib/module/components/marker/index.js +2 -2
  43. package/lib/module/components/marker/index.js.map +1 -1
  44. package/lib/module/components/marquee/index.js +191 -0
  45. package/lib/module/components/marquee/index.js.map +1 -0
  46. package/lib/module/components/marquee/marquee-math.js +39 -0
  47. package/lib/module/components/marquee/marquee-math.js.map +1 -0
  48. package/lib/module/components/menu/index.js +11 -3
  49. package/lib/module/components/menu/index.js.map +1 -1
  50. package/lib/module/components/meter/index.js +38 -20
  51. package/lib/module/components/meter/index.js.map +1 -1
  52. package/lib/module/components/meter/meter-scale.js +62 -8
  53. package/lib/module/components/meter/meter-scale.js.map +1 -1
  54. package/lib/module/components/pagination/index.js +27 -11
  55. package/lib/module/components/pagination/index.js.map +1 -1
  56. package/lib/module/components/panelside/index.js +7 -2
  57. package/lib/module/components/panelside/index.js.map +1 -1
  58. package/lib/module/components/planner/index.js +159 -64
  59. package/lib/module/components/planner/index.js.map +1 -1
  60. package/lib/module/components/planner/planner-announcement.js +30 -0
  61. package/lib/module/components/planner/planner-announcement.js.map +1 -0
  62. package/lib/module/components/planner/planner-entries.js +15 -7
  63. package/lib/module/components/planner/planner-entries.js.map +1 -1
  64. package/lib/module/components/planner/planner-grid-navigation.js +33 -0
  65. package/lib/module/components/planner/planner-grid-navigation.js.map +1 -0
  66. package/lib/module/components/planner/planner-lifecycle.js +45 -0
  67. package/lib/module/components/planner/planner-lifecycle.js.map +1 -0
  68. package/lib/module/components/plot/index.js +105 -42
  69. package/lib/module/components/plot/index.js.map +1 -1
  70. package/lib/module/components/popover/index.js +2 -2
  71. package/lib/module/components/popover/index.js.map +1 -1
  72. package/lib/module/components/post/index.js +4 -4
  73. package/lib/module/components/post/index.js.map +1 -1
  74. package/lib/module/components/search-bar/index.js +331 -0
  75. package/lib/module/components/search-bar/index.js.map +1 -0
  76. package/lib/module/components/table/index.js +3 -4
  77. package/lib/module/components/table/index.js.map +1 -1
  78. package/lib/module/components/timeline/index.js +288 -39
  79. package/lib/module/components/timeline/index.js.map +1 -1
  80. package/lib/module/components/toggle-button/index.js +1 -1
  81. package/lib/module/components/toggle-button/index.js.map +1 -1
  82. package/lib/module/components/tree/index.js +13 -8
  83. package/lib/module/components/tree/index.js.map +1 -1
  84. package/lib/module/hooks/use-keyboard-avoidance.js.map +1 -1
  85. package/lib/module/index.js +3 -0
  86. package/lib/module/index.js.map +1 -1
  87. package/lib/module/primitives/focus-restoration-store.js +52 -0
  88. package/lib/module/primitives/focus-restoration-store.js.map +1 -0
  89. package/lib/module/primitives/portal.js +36 -2
  90. package/lib/module/primitives/portal.js.map +1 -1
  91. package/lib/module/utils/chart.js +50 -7
  92. package/lib/module/utils/chart.js.map +1 -1
  93. package/lib/typescript/src/components/accordion/index.d.ts +6 -2
  94. package/lib/typescript/src/components/accordion/index.d.ts.map +1 -1
  95. package/lib/typescript/src/components/area-chart/index.d.ts.map +1 -1
  96. package/lib/typescript/src/components/breadcrumb/index.d.ts.map +1 -1
  97. package/lib/typescript/src/components/button/index.d.ts.map +1 -1
  98. package/lib/typescript/src/components/code-block/index.d.ts +3 -3
  99. package/lib/typescript/src/components/code-block/index.d.ts.map +1 -1
  100. package/lib/typescript/src/components/collapsible/index.d.ts +76 -0
  101. package/lib/typescript/src/components/collapsible/index.d.ts.map +1 -0
  102. package/lib/typescript/src/components/color-picker/index.d.ts.map +1 -1
  103. package/lib/typescript/src/components/fab/index.d.ts +4 -2
  104. package/lib/typescript/src/components/fab/index.d.ts.map +1 -1
  105. package/lib/typescript/src/components/flow/index.d.ts +7 -1
  106. package/lib/typescript/src/components/flow/index.d.ts.map +1 -1
  107. package/lib/typescript/src/components/heatmap-chart/index.d.ts.map +1 -1
  108. package/lib/typescript/src/components/hex-chart/index.d.ts.map +1 -1
  109. package/lib/typescript/src/components/input-group/index.d.ts.map +1 -1
  110. package/lib/typescript/src/components/line-chart/index.d.ts.map +1 -1
  111. package/lib/typescript/src/components/live-line-chart/index.d.ts +21 -7
  112. package/lib/typescript/src/components/live-line-chart/index.d.ts.map +1 -1
  113. package/lib/typescript/src/components/live-line-chart/live-line-accessibility.d.ts +22 -0
  114. package/lib/typescript/src/components/live-line-chart/live-line-accessibility.d.ts.map +1 -0
  115. package/lib/typescript/src/components/live-line-chart/live-line-lifecycle.d.ts +23 -0
  116. package/lib/typescript/src/components/live-line-chart/live-line-lifecycle.d.ts.map +1 -0
  117. package/lib/typescript/src/components/marquee/index.d.ts +73 -0
  118. package/lib/typescript/src/components/marquee/index.d.ts.map +1 -0
  119. package/lib/typescript/src/components/marquee/marquee-math.d.ts +21 -0
  120. package/lib/typescript/src/components/marquee/marquee-math.d.ts.map +1 -0
  121. package/lib/typescript/src/components/menu/index.d.ts +1 -1
  122. package/lib/typescript/src/components/menu/index.d.ts.map +1 -1
  123. package/lib/typescript/src/components/meter/index.d.ts +7 -4
  124. package/lib/typescript/src/components/meter/index.d.ts.map +1 -1
  125. package/lib/typescript/src/components/meter/meter-scale.d.ts +39 -0
  126. package/lib/typescript/src/components/meter/meter-scale.d.ts.map +1 -1
  127. package/lib/typescript/src/components/pagination/index.d.ts.map +1 -1
  128. package/lib/typescript/src/components/panelside/index.d.ts +1 -1
  129. package/lib/typescript/src/components/panelside/index.d.ts.map +1 -1
  130. package/lib/typescript/src/components/plan/index.d.ts +2 -2
  131. package/lib/typescript/src/components/planner/index.d.ts.map +1 -1
  132. package/lib/typescript/src/components/planner/planner-announcement.d.ts +15 -0
  133. package/lib/typescript/src/components/planner/planner-announcement.d.ts.map +1 -0
  134. package/lib/typescript/src/components/planner/planner-entries.d.ts +1 -1
  135. package/lib/typescript/src/components/planner/planner-entries.d.ts.map +1 -1
  136. package/lib/typescript/src/components/planner/planner-grid-navigation.d.ts +4 -0
  137. package/lib/typescript/src/components/planner/planner-grid-navigation.d.ts.map +1 -0
  138. package/lib/typescript/src/components/planner/planner-lifecycle.d.ts +20 -0
  139. package/lib/typescript/src/components/planner/planner-lifecycle.d.ts.map +1 -0
  140. package/lib/typescript/src/components/plot/index.d.ts +59 -5
  141. package/lib/typescript/src/components/plot/index.d.ts.map +1 -1
  142. package/lib/typescript/src/components/search-bar/index.d.ts +216 -0
  143. package/lib/typescript/src/components/search-bar/index.d.ts.map +1 -0
  144. package/lib/typescript/src/components/timeline/index.d.ts +35 -2
  145. package/lib/typescript/src/components/timeline/index.d.ts.map +1 -1
  146. package/lib/typescript/src/components/tree/index.d.ts +3 -4
  147. package/lib/typescript/src/components/tree/index.d.ts.map +1 -1
  148. package/lib/typescript/src/hooks/use-keyboard-avoidance.d.ts +2 -2
  149. package/lib/typescript/src/hooks/use-keyboard-avoidance.d.ts.map +1 -1
  150. package/lib/typescript/src/index.d.ts +4 -1
  151. package/lib/typescript/src/index.d.ts.map +1 -1
  152. package/lib/typescript/src/primitives/focus-restoration-store.d.ts +24 -0
  153. package/lib/typescript/src/primitives/focus-restoration-store.d.ts.map +1 -0
  154. package/lib/typescript/src/primitives/portal.d.ts +4 -0
  155. package/lib/typescript/src/primitives/portal.d.ts.map +1 -1
  156. package/lib/typescript/src/utils/chart.d.ts +28 -3
  157. package/lib/typescript/src/utils/chart.d.ts.map +1 -1
  158. package/package.json +36 -3
  159. package/src/components/accordion/index.tsx +48 -15
  160. package/src/components/area-chart/index.tsx +8 -0
  161. package/src/components/breadcrumb/index.tsx +2 -1
  162. package/src/components/button/index.tsx +14 -6
  163. package/src/components/carousel/index.tsx +1 -1
  164. package/src/components/chip/index.tsx +2 -2
  165. package/src/components/code-block/index.tsx +3 -3
  166. package/src/components/collapsible/index.tsx +287 -0
  167. package/src/components/color-picker/index.tsx +3 -2
  168. package/src/components/fab/index.tsx +21 -11
  169. package/src/components/flow/index.tsx +94 -15
  170. package/src/components/frame/index.tsx +2 -2
  171. package/src/components/grid-item/index.tsx +2 -2
  172. package/src/components/heatmap-chart/index.tsx +7 -1
  173. package/src/components/hex-chart/index.tsx +7 -1
  174. package/src/components/input-group/index.tsx +7 -2
  175. package/src/components/item/index.tsx +2 -2
  176. package/src/components/line-chart/index.tsx +9 -0
  177. package/src/components/live-line-chart/index.tsx +130 -13
  178. package/src/components/live-line-chart/live-line-accessibility.ts +61 -0
  179. package/src/components/live-line-chart/live-line-lifecycle.ts +63 -0
  180. package/src/components/marker/index.tsx +2 -2
  181. package/src/components/marquee/index.tsx +234 -0
  182. package/src/components/marquee/marquee-math.ts +37 -0
  183. package/src/components/menu/index.tsx +11 -3
  184. package/src/components/meter/index.tsx +49 -26
  185. package/src/components/meter/meter-scale.ts +84 -8
  186. package/src/components/pagination/index.tsx +26 -13
  187. package/src/components/panelside/index.tsx +7 -2
  188. package/src/components/plan/index.tsx +2 -2
  189. package/src/components/planner/index.tsx +202 -76
  190. package/src/components/planner/planner-announcement.ts +37 -0
  191. package/src/components/planner/planner-entries.ts +16 -7
  192. package/src/components/planner/planner-grid-navigation.ts +45 -0
  193. package/src/components/planner/planner-lifecycle.ts +76 -0
  194. package/src/components/plot/index.tsx +183 -39
  195. package/src/components/popover/index.tsx +3 -3
  196. package/src/components/post/index.tsx +4 -4
  197. package/src/components/search-bar/index.tsx +436 -0
  198. package/src/components/table/index.tsx +2 -2
  199. package/src/components/timeline/index.tsx +335 -39
  200. package/src/components/toggle-button/index.tsx +1 -1
  201. package/src/components/tree/index.tsx +17 -12
  202. package/src/hooks/use-keyboard-avoidance.ts +7 -2
  203. package/src/index.ts +15 -0
  204. package/src/primitives/focus-restoration-store.ts +70 -0
  205. package/src/primitives/portal.tsx +34 -2
  206. package/src/utils/chart.ts +66 -7
@@ -57,8 +57,8 @@
57
57
  * which categories they belong to. Neither is decoration: between them they
58
58
  * are the whole content of the grid for somebody who cannot see it.
59
59
  */
60
- import { Children, createContext, forwardRef, isValidElement, useCallback, useContext, useEffect, useMemo, useState } from 'react';
61
- import { AccessibilityInfo, AppState, Pressable, View } from 'react-native';
60
+ import { Children, createContext, forwardRef, isValidElement, useCallback, useContext, useEffect, useMemo, useRef, useState } from 'react';
61
+ import { AccessibilityInfo, AppState, Platform, Pressable, View } from 'react-native';
62
62
  import { tv } from 'tailwind-variants';
63
63
  import { useCSSVariable } from 'uniwind';
64
64
  import { ChevronLeftIcon, ChevronRightIcon } from "../../icons/index.js";
@@ -68,6 +68,9 @@ import { addCalendarMonths, calendarDayNumber, calendarLongDate, calendarMonthLa
68
68
  import { Dialog } from "../dialog/index.js";
69
69
  import { Frame } from "../frame/index.js";
70
70
  import { bucketByDay, dayAccessibilityLabel, entriesOn, summariseMonth, visibleEntries } from "./planner-entries.js";
71
+ import { usePlannerMonthAnnouncement } from "./planner-announcement.js";
72
+ import { plannerGridTarget } from "./planner-grid-navigation.js";
73
+ import { usePlannerMonthLifecycle, usePlannerSelectionLifecycle } from "./planner-lifecycle.js";
71
74
 
72
75
  /** How many of a day's entries a cell draws before it stops and counts. */
73
76
  import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
@@ -75,6 +78,11 @@ const DEFAULT_ENTRY_LIMIT = 2;
75
78
 
76
79
  /** The palette a category takes its dot from when it does not name a colour. */
77
80
  const PALETTE_SIZE = 5;
81
+
82
+ /** Stable wrapper keeps the native method's receiver and the hook dependency steady. */
83
+ const announceMonth = label => {
84
+ AccessibilityInfo.announceForAccessibility(label);
85
+ };
78
86
  const plannerVariants = tv({
79
87
  slots: {
80
88
  grid: 'gap-1 px-3 pb-3 pt-1',
@@ -96,7 +104,13 @@ const dayVariants = tv({
96
104
  * Square-ish because a day here holds a number, a marker and sometimes an
97
105
  * icon, and a circle wastes the corners it needs for them.
98
106
  */
99
- cell: 'mx-0.5 h-14 flex-1 rounded-xl px-1.5 pt-1.5',
107
+ /*
108
+ * The transparent border is load-bearing: today and the open day both draw
109
+ * one, and a cell that only grows a border when it is picked shifts its
110
+ * contents by a point at the moment you look at it. Every cell reserves the
111
+ * point; the variants below only colour it.
112
+ */
113
+ cell: 'mx-0.5 h-14 flex-1 rounded-xl border border-transparent px-1.5 pt-1.5',
100
114
  number: 'text-xs leading-none',
101
115
  marker: 'absolute right-1.5 top-1.5 h-1.5 w-1.5 rounded-full',
102
116
  body: 'flex-1 flex-row items-center justify-center gap-0.5 pb-1'
@@ -114,17 +128,19 @@ const dayVariants = tv({
114
128
  }
115
129
  },
116
130
  /*
117
- * Today is the number, not the tile. A ring on today and a ring on the
118
- * open day are two rings that mean different things and look the same.
131
+ * Today rings the tile; the open day fills it. Two rings would be the
132
+ * problem — two channels are not, and the ring is the one that has to
133
+ * survive being read at a glance across forty-two tiles.
119
134
  */
120
135
  today: {
121
136
  true: {
122
- number: 'text-primary font-semibold'
137
+ cell: 'border-foreground',
138
+ number: 'font-semibold'
123
139
  }
124
140
  },
125
141
  selected: {
126
142
  true: {
127
- cell: 'border border-primary/60 bg-primary/10'
143
+ cell: 'border-primary/60 bg-primary/10'
128
144
  }
129
145
  },
130
146
  disabled: {
@@ -133,6 +149,19 @@ const dayVariants = tv({
133
149
  }
134
150
  }
135
151
  },
152
+ compoundVariants: [
153
+ /*
154
+ * Today, and open. Declaration order would otherwise hand the border to
155
+ * `selected` and lose the one mark that says which day it actually is —
156
+ * so the ring is restated over the fill.
157
+ */
158
+ {
159
+ today: true,
160
+ selected: true,
161
+ class: {
162
+ cell: 'border-foreground bg-primary/10'
163
+ }
164
+ }],
136
165
  defaultVariants: {
137
166
  inMonth: true
138
167
  }
@@ -214,42 +243,51 @@ const PlannerRoot = /*#__PURE__*/forwardRef(({
214
243
  const system = resolveCalendar(calendar, locale);
215
244
  const palette = usePalette();
216
245
  const today = useToday();
217
- const [internalMonth, setInternalMonth] = useState(() => startOfCalendarMonth(defaultMonth ?? new Date(), system, locale));
218
- const month = monthProp ? startOfCalendarMonth(monthProp, system, locale) : internalMonth;
246
+ const settleMonth = useCallback(date => startOfCalendarMonth(date, system, locale), [system, locale]);
247
+ const [month, requestMonth] = usePlannerMonthLifecycle({
248
+ month: monthProp,
249
+ defaultMonth,
250
+ settleMonth,
251
+ onMonthChange
252
+ });
253
+ /*
254
+ * The announcement is registered against the month a press asks for, and
255
+ * spoken only once a commit arrives carrying it. That is what keeps a
256
+ * controlled parent's rejection silent, so it wraps the lifecycle's setter
257
+ * rather than living inside it — the hook owns which month is current, and
258
+ * this owns whether the change was the user's to hear about.
259
+ */
260
+ const expectMonthAnnouncement = usePlannerMonthAnnouncement({
261
+ monthKey: month.getTime(),
262
+ monthLabel: calendarMonthLabel(month, system, locale),
263
+ announce: announceMonth
264
+ });
219
265
  const setMonth = useCallback(next => {
220
- const settled = startOfCalendarMonth(next, system, locale);
221
- if (!monthProp) setInternalMonth(settled);
222
- onMonthChange?.(settled);
223
- }, [monthProp, onMonthChange, system, locale]);
224
- const [internalSelected, setInternalSelected] = useState(defaultSelected);
225
- const selected = selectedProp !== undefined ? selectedProp : internalSelected;
226
- const select = useCallback(date => {
227
- if (selectedProp === undefined) setInternalSelected(date);
228
- onSelectedChange?.(date);
229
- }, [selectedProp, onSelectedChange]);
266
+ expectMonthAnnouncement(settleMonth(next));
267
+ requestMonth(next);
268
+ }, [expectMonthAnnouncement, requestMonth, settleMonth]);
269
+ const [selected, select] = usePlannerSelectionLifecycle({
270
+ selected: selectedProp,
271
+ defaultSelected,
272
+ onSelectedChange
273
+ });
230
274
  const days = useMemo(() => bucketByDay(entries), [entries]);
275
+ const normalizedWeekStart = weekStartsOn === 'auto' ? localeWeekStart(locale) : normalizeWeekStart(weekStartsOn);
276
+ const grid = useMemo(() => monthGrid(month, normalizedWeekStart, system, locale), [month, normalizedWeekStart, system, locale]);
231
277
  const isInMonth = useCallback(date => isSameCalendarMonth(date, month, system, locale), [month, system, locale]);
232
278
  const categoryLabels = useMemo(() => new Map(categories.map(category => [category.id, category.label])), [categories]);
233
- const colorOf = useCallback(id => {
234
- if (!id) return undefined;
235
- const index = categories.findIndex(category => category.id === id);
236
- if (index < 0) return undefined;
237
- const category = categories[index];
238
- if (category.color) return category.color;
239
- const slot = (category.colorIndex ?? index + 1) - 1;
240
- return palette[(slot % PALETTE_SIZE + PALETTE_SIZE) % PALETTE_SIZE];
279
+ const categoryColors = useMemo(() => {
280
+ const colors = new Map();
281
+ categories.forEach((category, index) => {
282
+ // `findIndex` used to make the first duplicate id authoritative.
283
+ if (colors.has(category.id)) return;
284
+ const slot = (category.colorIndex ?? index + 1) - 1;
285
+ colors.set(category.id, category.color ?? palette[(slot % PALETTE_SIZE + PALETTE_SIZE) % PALETTE_SIZE]);
286
+ });
287
+ return colors;
241
288
  }, [categories, palette]);
242
- const summary = useMemo(() => summariseMonth(entries, categories, isInMonth), [entries, categories, isInMonth]);
243
-
244
- /*
245
- * The month is announced rather than left to the cells. Paging moves 42
246
- * labels at once and a screen reader reads none of them, so without this
247
- * the only thing that changes is silent.
248
- */
249
- const monthLabel = calendarMonthLabel(month, system, locale);
250
- useEffect(() => {
251
- AccessibilityInfo.announceForAccessibility(monthLabel);
252
- }, [monthLabel]);
289
+ const colorOf = useCallback(id => id ? categoryColors.get(id) : undefined, [categoryColors]);
290
+ const summary = useMemo(() => summariseMonth(days, grid, categories, isInMonth), [days, grid, categories, isInMonth]);
253
291
  const context = useMemo(() => ({
254
292
  month,
255
293
  setMonth,
@@ -262,12 +300,13 @@ const PlannerRoot = /*#__PURE__*/forwardRef(({
262
300
  colorOf,
263
301
  summary,
264
302
  entryLimit,
265
- weekStartsOn: weekStartsOn === 'auto' ? localeWeekStart(locale) : normalizeWeekStart(weekStartsOn),
303
+ weekStartsOn: normalizedWeekStart,
304
+ grid,
266
305
  locale,
267
306
  system,
268
307
  isInMonth,
269
308
  onDayPress
270
- }), [month, setMonth, today, selected, select, days, categories, categoryLabels, colorOf, summary, entryLimit, weekStartsOn, locale, system, isInMonth, onDayPress]);
309
+ }), [month, setMonth, today, selected, select, days, categories, categoryLabels, colorOf, summary, entryLimit, normalizedWeekStart, grid, locale, system, isInMonth, onDayPress]);
271
310
 
272
311
  /*
273
312
  * The header belongs in the Frame's strip and everything else in its
@@ -437,6 +476,8 @@ PlannerAction.displayName = 'Planner.Action';
437
476
 
438
477
  /** What a custom cell is handed. Everything the default cell draws from. */
439
478
 
479
+ const PlannerGridNavigationContext = /*#__PURE__*/createContext(null);
480
+
440
481
  /**
441
482
  * The weekday row and the six weeks below it.
442
483
  *
@@ -450,39 +491,72 @@ function PlannerGrid({
450
491
  renderDay
451
492
  }) {
452
493
  const {
453
- month,
494
+ grid: weeks,
454
495
  weekStartsOn,
455
496
  locale,
456
- system
497
+ selected,
498
+ today,
499
+ isInMonth
457
500
  } = usePlanner('Planner.Grid');
458
501
  const {
459
502
  grid,
460
503
  week: weekRow,
461
504
  heading
462
505
  } = plannerVariants();
463
- const weeks = useMemo(() => monthGrid(month, weekStartsOn, system, locale), [month, weekStartsOn, system, locale]);
464
506
  const headings = useMemo(() => weekdayNames(locale, weekStartsOn), [locale, weekStartsOn]);
465
- return /*#__PURE__*/_jsxs(View, {
466
- className: grid({
467
- className
468
- }),
469
- children: [/*#__PURE__*/_jsx(View, {
470
- className: weekRow(),
471
- accessibilityElementsHidden: true,
472
- importantForAccessibility: "no-hide-descendants",
473
- children: headings.map(label => /*#__PURE__*/_jsx(Text, {
474
- size: "xs",
475
- muted: true,
476
- className: heading(),
477
- children: label.toUpperCase()
478
- }, label))
479
- }), weeks.map((week, index) => /*#__PURE__*/_jsx(View, {
480
- className: weekRow(),
481
- children: week.map(date => /*#__PURE__*/_jsx(PlannerDay, {
482
- date: date,
483
- renderDay: renderDay
484
- }, date.getTime()))
485
- }, index))]
507
+ const dates = useMemo(() => weeks.flat(), [weeks]);
508
+ const indexByDay = useMemo(() => new Map(dates.map((date, index) => [date.getTime(), index])), [dates]);
509
+ const initialDay = selected ?? today;
510
+ const [activeDay, setActiveDay] = useState(initialDay.getTime());
511
+ const storedIndex = indexByDay.get(activeDay);
512
+ const preferredIndex = (selected ? indexByDay.get(startOfDay(selected).getTime()) : undefined) ?? indexByDay.get(today.getTime()) ?? dates.findIndex(isInMonth);
513
+ const activeIndex = storedIndex ?? Math.max(0, preferredIndex);
514
+ const refs = useRef(new Map());
515
+ const register = useCallback((index, node) => {
516
+ if (node) refs.current.set(index, node);else refs.current.delete(index);
517
+ }, []);
518
+ const makeActive = useCallback(index => {
519
+ const date = dates[index];
520
+ if (date) setActiveDay(date.getTime());
521
+ }, [dates]);
522
+ const focus = useCallback((index, event) => {
523
+ const target = plannerGridTarget(event.nativeEvent.key ?? '', index, dates.length);
524
+ if (target === null) return;
525
+ event.preventDefault();
526
+ makeActive(target);
527
+ refs.current.get(target)?.focus();
528
+ }, [dates.length, makeActive]);
529
+ const navigation = useMemo(() => ({
530
+ activeIndex,
531
+ indexByDay,
532
+ register,
533
+ focus,
534
+ makeActive
535
+ }), [activeIndex, indexByDay, register, focus, makeActive]);
536
+ return /*#__PURE__*/_jsx(PlannerGridNavigationContext.Provider, {
537
+ value: renderDay ? null : navigation,
538
+ children: /*#__PURE__*/_jsxs(View, {
539
+ className: grid({
540
+ className
541
+ }),
542
+ children: [/*#__PURE__*/_jsx(View, {
543
+ className: weekRow(),
544
+ accessibilityElementsHidden: true,
545
+ importantForAccessibility: "no-hide-descendants",
546
+ children: headings.map(label => /*#__PURE__*/_jsx(Text, {
547
+ size: "xs",
548
+ muted: true,
549
+ className: heading(),
550
+ children: label.toUpperCase()
551
+ }, label))
552
+ }), weeks.map((week, index) => /*#__PURE__*/_jsx(View, {
553
+ className: weekRow(),
554
+ children: week.map(date => /*#__PURE__*/_jsx(PlannerDay, {
555
+ date: date,
556
+ renderDay: renderDay
557
+ }, date.getTime()))
558
+ }, index))]
559
+ })
486
560
  });
487
561
  }
488
562
  PlannerGrid.displayName = 'Planner.Grid';
@@ -504,6 +578,10 @@ function PlannerDay({
504
578
  isInMonth,
505
579
  onDayPress
506
580
  } = usePlanner('Planner.Day');
581
+ const navigation = useContext(PlannerGridNavigationContext);
582
+ const registerGridCell = navigation?.register;
583
+ const focusGridCell = navigation?.focus;
584
+ const makeGridCellActive = navigation?.makeActive;
507
585
  const entries = entriesOn(days, date);
508
586
  const inMonth = isInMonth(date);
509
587
  const isToday = isSameDay(date, today);
@@ -523,6 +601,22 @@ function PlannerDay({
523
601
  onDayPress?.(date, entries);
524
602
  select(date);
525
603
  };
604
+ const gridIndex = navigation?.indexByDay.get(date.getTime());
605
+ const setRef = useCallback(node => {
606
+ if (gridIndex !== undefined) registerGridCell?.(gridIndex, node);
607
+ }, [gridIndex, registerGridCell]);
608
+ const onFocus = useCallback(() => {
609
+ if (gridIndex !== undefined) makeGridCellActive?.(gridIndex);
610
+ }, [gridIndex, makeGridCellActive]);
611
+ const onKeyDown = useCallback(event => {
612
+ if (gridIndex !== undefined) focusGridCell?.(gridIndex, event);
613
+ }, [gridIndex, focusGridCell]);
614
+ const webGridProps = Platform.OS === 'web' && gridIndex !== undefined && navigation ? {
615
+ ref: setRef,
616
+ tabIndex: navigation.activeIndex === gridIndex ? 0 : -1,
617
+ onFocus,
618
+ onKeyDown
619
+ } : {};
526
620
  if (renderDay) {
527
621
  return /*#__PURE__*/_jsx(View, {
528
622
  className: "flex-1",
@@ -536,6 +630,7 @@ function PlannerDay({
536
630
  });
537
631
  }
538
632
  return /*#__PURE__*/_jsxs(Pressable, {
633
+ ...webGridProps,
539
634
  onPress: press,
540
635
  accessibilityRole: "button",
541
636
  accessibilityLabel: label,
@@ -1 +1 @@
1
- {"version":3,"names":["Children","createContext","forwardRef","isValidElement","useCallback","useContext","useEffect","useMemo","useState","AccessibilityInfo","AppState","Pressable","View","tv","useCSSVariable","ChevronLeftIcon","ChevronRightIcon","Text","cn","addCalendarMonths","calendarDayNumber","calendarLongDate","calendarMonthLabel","isSameCalendarMonth","isSameDay","localeWeekStart","monthGrid","normalizeWeekStart","resolveCalendar","startOfCalendarMonth","startOfDay","weekdayNames","Dialog","Frame","bucketByDay","dayAccessibilityLabel","entriesOn","summariseMonth","visibleEntries","jsx","_jsx","jsxs","_jsxs","DEFAULT_ENTRY_LIMIT","PALETTE_SIZE","plannerVariants","slots","grid","week","heading","legend","swatch","dayVariants","cell","number","marker","body","variants","inMonth","true","false","today","selected","disabled","defaultVariants","PlannerContext","usePlanner","component","context","Error","useToday","setToday","Date","refresh","now","current","getTime","subscription","addEventListener","state","remove","usePalette","one","two","three","four","five","map","v","undefined","PlannerRoot","className","month","monthProp","defaultMonth","onMonthChange","entries","categories","selectedProp","defaultSelected","onSelectedChange","onDayPress","entryLimit","weekStartsOn","locale","calendar","frame","children","props","ref","system","palette","internalMonth","setInternalMonth","setMonth","next","settled","internalSelected","setInternalSelected","select","date","days","isInMonth","categoryLabels","Map","category","id","label","colorOf","index","findIndex","color","slot","colorIndex","summary","monthLabel","announceForAccessibility","parts","toArray","header","find","child","type","PlannerHeader","filter","Provider","value","Panel","dividers","displayName","trails","PlannerNav","PlannerAction","trailing","lead","Header","length","PlannerTitle","weight","PlannerToday","alreadyHere","onPress","hitSlop","accessibilityRole","accessibilityLabel","accessibilityState","size","muted","PlannerArrow","direction","Action","PlannerGrid","renderDay","weekRow","weeks","headings","accessibilityElementsHidden","importantForAccessibility","toUpperCase","PlannerDay","isToday","isSelected","shown","overflow","drawable","entry","icon","styles","press","accessibilityHint","style","backgroundColor","markerColor","PlannerLegend","counts","count","PlannerSummary","total","PlannerFooter","PlannerDetails","title","description","open","onOpenChange","Content","Title","Description","Planner","Object","assign","Today","Nav","Grid","Day","Legend","Summary","Footer","Details"],"sourceRoot":"../../../../src","sources":["components/planner/index.tsx"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["Children","createContext","forwardRef","isValidElement","useCallback","useContext","useEffect","useMemo","useRef","useState","AccessibilityInfo","AppState","Platform","Pressable","View","tv","useCSSVariable","ChevronLeftIcon","ChevronRightIcon","Text","cn","addCalendarMonths","calendarDayNumber","calendarLongDate","calendarMonthLabel","isSameCalendarMonth","isSameDay","localeWeekStart","monthGrid","normalizeWeekStart","resolveCalendar","startOfCalendarMonth","startOfDay","weekdayNames","Dialog","Frame","bucketByDay","dayAccessibilityLabel","entriesOn","summariseMonth","visibleEntries","usePlannerMonthAnnouncement","plannerGridTarget","usePlannerMonthLifecycle","usePlannerSelectionLifecycle","jsx","_jsx","jsxs","_jsxs","DEFAULT_ENTRY_LIMIT","PALETTE_SIZE","announceMonth","label","announceForAccessibility","plannerVariants","slots","grid","week","heading","legend","swatch","dayVariants","cell","number","marker","body","variants","inMonth","true","false","today","selected","disabled","compoundVariants","class","defaultVariants","PlannerContext","usePlanner","component","context","Error","useToday","setToday","Date","refresh","now","current","getTime","subscription","addEventListener","state","remove","usePalette","one","two","three","four","five","map","v","undefined","PlannerRoot","className","month","monthProp","defaultMonth","onMonthChange","entries","categories","selectedProp","defaultSelected","onSelectedChange","onDayPress","entryLimit","weekStartsOn","locale","calendar","frame","children","props","ref","system","palette","settleMonth","date","requestMonth","expectMonthAnnouncement","monthKey","monthLabel","announce","setMonth","next","select","days","normalizedWeekStart","isInMonth","categoryLabels","Map","category","id","categoryColors","colors","forEach","index","has","slot","colorIndex","set","color","colorOf","get","summary","parts","toArray","header","find","child","type","PlannerHeader","filter","Provider","value","Panel","dividers","displayName","trails","PlannerNav","PlannerAction","trailing","lead","Header","length","PlannerTitle","weight","PlannerToday","alreadyHere","onPress","hitSlop","accessibilityRole","accessibilityLabel","accessibilityState","size","muted","PlannerArrow","direction","Action","PlannerGridNavigationContext","PlannerGrid","renderDay","weeks","weekRow","headings","dates","flat","indexByDay","initialDay","activeDay","setActiveDay","storedIndex","preferredIndex","findIndex","activeIndex","Math","max","refs","register","node","delete","makeActive","focus","event","target","nativeEvent","key","preventDefault","navigation","accessibilityElementsHidden","importantForAccessibility","toUpperCase","PlannerDay","registerGridCell","focusGridCell","makeGridCellActive","isToday","isSelected","shown","overflow","drawable","entry","icon","styles","press","gridIndex","setRef","onFocus","onKeyDown","webGridProps","OS","tabIndex","accessibilityHint","style","backgroundColor","markerColor","PlannerLegend","counts","count","PlannerSummary","total","PlannerFooter","PlannerDetails","title","description","open","onOpenChange","Content","Title","Description","Planner","Object","assign","Today","Nav","Grid","Day","Legend","Summary","Footer","Details"],"sourceRoot":"../../../../src","sources":["components/planner/index.tsx"],"mappings":";;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SACEA,QAAQ,EACRC,aAAa,EACbC,UAAU,EACVC,cAAc,EACdC,WAAW,EACXC,UAAU,EACVC,SAAS,EACTC,OAAO,EACPC,MAAM,EACNC,QAAQ,QAGH,OAAO;AACd,SACEC,iBAAiB,EACjBC,QAAQ,EACRC,QAAQ,EACRC,SAAS,EACTC,IAAI,QAEC,cAAc;AACrB,SAASC,EAAE,QAAQ,mBAAmB;AACtC,SAASC,cAAc,QAAQ,SAAS;AACxC,SAASC,eAAe,EAAEC,gBAAgB,QAAQ,sBAAa;AAC/D,SAASC,IAAI,QAAwB,0BAAuB;AAC5D,SAASC,EAAE,QAAQ,mBAAgB;AACnC,SACEC,iBAAiB,EACjBC,iBAAiB,EACjBC,gBAAgB,EAChBC,kBAAkB,EAClBC,mBAAmB,EACnBC,SAAS,EACTC,eAAe,EACfC,SAAS,EACTC,kBAAkB,EAClBC,eAAe,EACfC,oBAAoB,EACpBC,UAAU,EACVC,YAAY,QAGP,qBAAkB;AACzB,SAASC,MAAM,QAAQ,oBAAW;AAClC,SAASC,KAAK,QAAQ,mBAAU;AAChC,SACEC,WAAW,EACXC,qBAAqB,EACrBC,SAAS,EACTC,cAAc,EACdC,cAAc,QAET,sBAAmB;AAC1B,SAASC,2BAA2B,QAAQ,2BAAwB;AACpE,SAASC,iBAAiB,QAAQ,8BAA2B;AAC7D,SACEC,wBAAwB,EACxBC,4BAA4B,QACvB,wBAAqB;;AAE5B;AAAA,SAAAC,GAAA,IAAAC,IAAA,EAAAC,IAAA,IAAAC,KAAA;AACA,MAAMC,mBAAmB,GAAG,CAAC;;AAE7B;AACA,MAAMC,YAAY,GAAG,CAAC;;AAEtB;AACA,MAAMC,aAAa,GAAIC,KAAa,IAAK;EACvC1C,iBAAiB,CAAC2C,wBAAwB,CAACD,KAAK,CAAC;AACnD,CAAC;AAED,MAAME,eAAe,GAAGvC,EAAE,CAAC;EACzBwC,KAAK,EAAE;IACLC,IAAI,EAAE,sBAAsB;IAC5BC,IAAI,EAAE,UAAU;IAChBC,OAAO,EAAE,oBAAoB;IAC7BC,MAAM,EAAE,2DAA2D;IACnEC,MAAM,EAAE;EACV;AACF,CAAC,CAAC;AAEF,MAAMC,WAAW,GAAG9C,EAAE,CAAC;EACrBwC,KAAK,EAAE;IACL;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;IACI;AACJ;AACA;AACA;AACA;AACA;IACIO,IAAI,EAAE,uEAAuE;IAC7EC,MAAM,EAAE,sBAAsB;IAC9BC,MAAM,EAAE,qDAAqD;IAC7DC,IAAI,EAAE;EACR,CAAC;EACDC,QAAQ,EAAE;IACR;IACAC,OAAO,EAAE;MACPC,IAAI,EAAE;QAAEN,IAAI,EAAE,aAAa;QAAEC,MAAM,EAAE;MAAkB,CAAC;MACxDM,KAAK,EAAE;QAAEP,IAAI,EAAE,aAAa;QAAEC,MAAM,EAAE;MAA2B;IACnE,CAAC;IACD;AACJ;AACA;AACA;AACA;IACIO,KAAK,EAAE;MAAEF,IAAI,EAAE;QAAEN,IAAI,EAAE,mBAAmB;QAAEC,MAAM,EAAE;MAAgB;IAAE,CAAC;IACvEQ,QAAQ,EAAE;MAAEH,IAAI,EAAE;QAAEN,IAAI,EAAE;MAAkC;IAAE,CAAC;IAC/DU,QAAQ,EAAE;MAAEJ,IAAI,EAAE;QAAEN,IAAI,EAAE;MAAa;IAAE;EAC3C,CAAC;EACDW,gBAAgB,EAAE;EAChB;AACJ;AACA;AACA;AACA;EACI;IAAEH,KAAK,EAAE,IAAI;IAAEC,QAAQ,EAAE,IAAI;IAAEG,KAAK,EAAE;MAAEZ,IAAI,EAAE;IAAkC;EAAE,CAAC,CACpF;EACDa,eAAe,EAAE;IAAER,OAAO,EAAE;EAAK;AACnC,CAAC,CAAC;;AAEF;AACA;AACA;;AAEA;;AAcA;;AAmCA,MAAMS,cAAc,gBAAG3E,aAAa,CAA6B,IAAI,CAAC;AAEtE,SAAS4E,UAAUA,CAACC,SAAiB,EAAuB;EAC1D,MAAMC,OAAO,GAAG1E,UAAU,CAACuE,cAAc,CAAC;EAC1C,IAAI,CAACG,OAAO,EAAE;IACZ,MAAM,IAAIC,KAAK,CAAC,GAAGF,SAAS,kCAAkC,CAAC;EACjE;EACA,OAAOC,OAAO;AAChB;;AAEA;AACA,SAASE,QAAQA,CAAA,EAAS;EACxB,MAAM,CAACX,KAAK,EAAEY,QAAQ,CAAC,GAAGzE,QAAQ,CAAC,MAAMuB,UAAU,CAAC,IAAImD,IAAI,CAAC,CAAC,CAAC,CAAC;EAEhE7E,SAAS,CAAC,MAAM;IACd,MAAM8E,OAAO,GAAGA,CAAA,KAAM;MACpB,MAAMC,GAAG,GAAGrD,UAAU,CAAC,IAAImD,IAAI,CAAC,CAAC,CAAC;MAClC;MACA;MACAD,QAAQ,CAAEI,OAAO,IAAMA,OAAO,CAACC,OAAO,CAAC,CAAC,KAAKF,GAAG,CAACE,OAAO,CAAC,CAAC,GAAGD,OAAO,GAAGD,GAAI,CAAC;IAC9E,CAAC;IACD,MAAMG,YAAY,GAAG7E,QAAQ,CAAC8E,gBAAgB,CAAC,QAAQ,EAAGC,KAAK,IAAK;MAClE,IAAIA,KAAK,KAAK,QAAQ,EAAEN,OAAO,CAAC,CAAC;IACnC,CAAC,CAAC;IACF,OAAO,MAAMI,YAAY,CAACG,MAAM,CAAC,CAAC;EACpC,CAAC,EAAE,EAAE,CAAC;EAEN,OAAOrB,KAAK;AACd;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,SAASsB,UAAUA,CAAA,EAA2B;EAC5C,MAAMC,GAAG,GAAG7E,cAAc,CAAC,iBAAiB,CAAC;EAC7C,MAAM8E,GAAG,GAAG9E,cAAc,CAAC,iBAAiB,CAAC;EAC7C,MAAM+E,KAAK,GAAG/E,cAAc,CAAC,iBAAiB,CAAC;EAC/C,MAAMgF,IAAI,GAAGhF,cAAc,CAAC,iBAAiB,CAAC;EAC9C,MAAMiF,IAAI,GAAGjF,cAAc,CAAC,iBAAiB,CAAC;EAC9C,OAAOT,OAAO,CACZ,MAAM,CAACsF,GAAG,EAAEC,GAAG,EAAEC,KAAK,EAAEC,IAAI,EAAEC,IAAI,CAAC,CAACC,GAAG,CAAEC,CAAC,IAAM,OAAOA,CAAC,KAAK,QAAQ,GAAGA,CAAC,GAAGC,SAAU,CAAC,EACvF,CAACP,GAAG,EAAEC,GAAG,EAAEC,KAAK,EAAEC,IAAI,EAAEC,IAAI,CAC9B,CAAC;AACH;;AAEA;AACA;AACA;;AA6BA,MAAMI,WAAW,gBAAGnG,UAAU,CAC5B,CACE;EACEoG,SAAS;EACTC,KAAK,EAAEC,SAAS;EAChBC,YAAY;EACZC,aAAa;EACbC,OAAO,GAAG,EAAE;EACZC,UAAU,GAAG,EAAE;EACfrC,QAAQ,EAAEsC,YAAY;EACtBC,eAAe,GAAG,IAAI;EACtBC,gBAAgB;EAChBC,UAAU;EACVC,UAAU,GAAGhE,mBAAmB;EAChCiE,YAAY,GAAG,MAAM;EACrBC,MAAM;EACNC,QAAQ,GAAG,SAAS;EACpBC,KAAK,GAAG,IAAI;EACZC,QAAQ;EACR,GAAGC;AACL,CAAC,EACDC,GAAG,KACA;EACH,MAAMC,MAAM,GAAG3F,eAAe,CAACsF,QAAQ,EAAED,MAAM,CAAC;EAChD,MAAMO,OAAO,GAAG9B,UAAU,CAAC,CAAC;EAC5B,MAAMtB,KAAK,GAAGW,QAAQ,CAAC,CAAC;EACxB,MAAM0C,WAAW,GAAGvH,WAAW,CAC5BwH,IAAU,IAAK7F,oBAAoB,CAAC6F,IAAI,EAAEH,MAAM,EAAEN,MAAM,CAAC,EAC1D,CAACM,MAAM,EAAEN,MAAM,CACjB,CAAC;EAED,MAAM,CAACZ,KAAK,EAAEsB,YAAY,CAAC,GAAGlF,wBAAwB,CAAC;IACrD4D,KAAK,EAAEC,SAAS;IAChBC,YAAY;IACZkB,WAAW;IACXjB;EACF,CAAC,CAAC;EACF;AACJ;AACA;AACA;AACA;AACA;AACA;EACI,MAAMoB,uBAAuB,GAAGrF,2BAA2B,CAAC;IAC1DsF,QAAQ,EAAExB,KAAK,CAAChB,OAAO,CAAC,CAAC;IACzByC,UAAU,EAAExG,kBAAkB,CAAC+E,KAAK,EAAEkB,MAAM,EAAEN,MAAM,CAAC;IACrDc,QAAQ,EAAE9E;EACZ,CAAC,CAAC;EACF,MAAM+E,QAAQ,GAAG9H,WAAW,CACzB+H,IAAU,IAAK;IACdL,uBAAuB,CAACH,WAAW,CAACQ,IAAI,CAAC,CAAC;IAC1CN,YAAY,CAACM,IAAI,CAAC;EACpB,CAAC,EACD,CAACL,uBAAuB,EAAED,YAAY,EAAEF,WAAW,CACrD,CAAC;EACD,MAAM,CAACpD,QAAQ,EAAE6D,MAAM,CAAC,GAAGxF,4BAA4B,CAAC;IACtD2B,QAAQ,EAAEsC,YAAY;IACtBC,eAAe;IACfC;EACF,CAAC,CAAC;EAEF,MAAMsB,IAAI,GAAG9H,OAAO,CAAC,MAAM6B,WAAW,CAACuE,OAAO,CAAC,EAAE,CAACA,OAAO,CAAC,CAAC;EAC3D,MAAM2B,mBAAmB,GACvBpB,YAAY,KAAK,MAAM,GACnBvF,eAAe,CAACwF,MAAM,CAAC,GACvBtF,kBAAkB,CAACqF,YAAY,CAAC;EACtC,MAAM1D,IAAI,GAAGjD,OAAO,CAClB,MAAMqB,SAAS,CAAC2E,KAAK,EAAE+B,mBAAmB,EAAEb,MAAM,EAAEN,MAAM,CAAC,EAC3D,CAACZ,KAAK,EAAE+B,mBAAmB,EAAEb,MAAM,EAAEN,MAAM,CAC7C,CAAC;EAED,MAAMoB,SAAS,GAAGnI,WAAW,CAC1BwH,IAAU,IAAKnG,mBAAmB,CAACmG,IAAI,EAAErB,KAAK,EAAEkB,MAAM,EAAEN,MAAM,CAAC,EAChE,CAACZ,KAAK,EAAEkB,MAAM,EAAEN,MAAM,CACxB,CAAC;EAED,MAAMqB,cAAc,GAAGjI,OAAO,CAC5B,MAAM,IAAIkI,GAAG,CAAC7B,UAAU,CAACV,GAAG,CAAEwC,QAAQ,IAAK,CAACA,QAAQ,CAACC,EAAE,EAAED,QAAQ,CAACtF,KAAK,CAAC,CAAC,CAAC,EAC1E,CAACwD,UAAU,CACb,CAAC;EAED,MAAMgC,cAAc,GAAGrI,OAAO,CAC5B,MAAM;IACJ,MAAMsI,MAAM,GAAG,IAAIJ,GAAG,CAA6B,CAAC;IACpD7B,UAAU,CAACkC,OAAO,CAAC,CAACJ,QAAQ,EAAEK,KAAK,KAAK;MACtC;MACA,IAAIF,MAAM,CAACG,GAAG,CAACN,QAAQ,CAACC,EAAE,CAAC,EAAE;MAC7B,MAAMM,IAAI,GAAG,CAACP,QAAQ,CAACQ,UAAU,IAAIH,KAAK,GAAG,CAAC,IAAI,CAAC;MACnDF,MAAM,CAACM,GAAG,CACRT,QAAQ,CAACC,EAAE,EACXD,QAAQ,CAACU,KAAK,IACZ1B,OAAO,CAAC,CAAEuB,IAAI,GAAG/F,YAAY,GAAIA,YAAY,IAAIA,YAAY,CACjE,CAAC;IACH,CAAC,CAAC;IACF,OAAO2F,MAAM;EACf,CAAC,EACD,CAACjC,UAAU,EAAEc,OAAO,CACtB,CAAC;EACD,MAAM2B,OAAO,GAAGjJ,WAAW,CACxBuI,EAAsB,IAAKA,EAAE,GAAGC,cAAc,CAACU,GAAG,CAACX,EAAE,CAAC,GAAGvC,SAAS,EACnE,CAACwC,cAAc,CACjB,CAAC;EAED,MAAMW,OAAO,GAAGhJ,OAAO,CACrB,MAAMgC,cAAc,CAAC8F,IAAI,EAAE7E,IAAI,EAAEoD,UAAU,EAAE2B,SAAS,CAAC,EACvD,CAACF,IAAI,EAAE7E,IAAI,EAAEoD,UAAU,EAAE2B,SAAS,CACpC,CAAC;EAED,MAAMxD,OAAO,GAAGxE,OAAO,CACrB,OAAO;IACLgG,KAAK;IACL2B,QAAQ;IACR5D,KAAK;IACLC,QAAQ;IACR6D,MAAM;IACNC,IAAI;IACJzB,UAAU;IACV4B,cAAc;IACda,OAAO;IACPE,OAAO;IACPtC,UAAU;IACVC,YAAY,EAAEoB,mBAAmB;IACjC9E,IAAI;IACJ2D,MAAM;IACNM,MAAM;IACNc,SAAS;IACTvB;EACF,CAAC,CAAC,EACF,CACET,KAAK,EAAE2B,QAAQ,EAAE5D,KAAK,EAAEC,QAAQ,EAAE6D,MAAM,EAAEC,IAAI,EAAEzB,UAAU,EAAE4B,cAAc,EAC1Ea,OAAO,EAAEE,OAAO,EAAEtC,UAAU,EAAEqB,mBAAmB,EAAE9E,IAAI,EAAE2D,MAAM,EAAEM,MAAM,EACvEc,SAAS,EAAEvB,UAAU,CAEzB,CAAC;;EAED;AACJ;AACA;AACA;AACA;EACI,MAAMwC,KAAK,GAAGxJ,QAAQ,CAACyJ,OAAO,CAACnC,QAAQ,CAAC;EACxC,MAAMoC,MAAM,GAAGF,KAAK,CAACG,IAAI,CACtBC,KAAK,IAAK,aAAAzJ,cAAc,CAACyJ,KAAK,CAAC,IAAIA,KAAK,CAACC,IAAI,KAAKC,aACrD,CAAC;EACD,MAAM7F,IAAI,GAAGuF,KAAK,CAACO,MAAM,CAAEH,KAAK,IAAKA,KAAK,KAAKF,MAAM,CAAC;EAEtD,oBACE5G,IAAA,CAAC8B,cAAc,CAACoF,QAAQ;IAACC,KAAK,EAAElF,OAAQ;IAAAuC,QAAA,EACrCD,KAAK;IAAA;IACJ;IACA;IACA;IACArE,KAAA,CAACb,KAAK;MAACqF,GAAG,EAAEA,GAAI;MAAClB,SAAS,EAAElF,EAAE,CAAC,QAAQ,EAAEkF,SAAS,CAAE;MAAA,GAAKiB,KAAK;MAAAD,QAAA,GAC3DoC,MAAM,eACP5G,IAAA,CAACX,KAAK,CAAC+H,KAAK;QAACC,QAAQ,EAAE,KAAM;QAAA7C,QAAA,EAAErD;MAAI,CAAc,CAAC;IAAA,CAC7C,CAAC,gBAERjB,KAAA,CAAClC,IAAI;MAAC0G,GAAG,EAAEA,GAAI;MAAClB,SAAS,EAAElF,EAAE,CAAC,QAAQ,EAAEkF,SAAS,CAAE;MAAA,GAAKiB,KAAK;MAAAD,QAAA,GAC1DoC,MAAM,EACNzF,IAAI;IAAA,CACD;EACP,CACsB,CAAC;AAE9B,CACF,CAAC;AACDoC,WAAW,CAAC+D,WAAW,GAAG,SAAS;;AAEnC;AACA;AACA;;AAMA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAASN,aAAaA,CAAC;EAAExC;AAA6B,CAAC,EAAE;EACvD,MAAMkC,KAAK,GAAGxJ,QAAQ,CAACyJ,OAAO,CAACnC,QAAQ,CAAC;EACxC,MAAM+C,MAAM,GAAIT,KAAgB,IAC9B,aAAAzJ,cAAc,CAACyJ,KAAK,CAAC,KAAKA,KAAK,CAACC,IAAI,KAAKS,UAAU,IAAIV,KAAK,CAACC,IAAI,KAAKU,aAAa,CAAC;EAEtF,MAAMC,QAAQ,GAAGhB,KAAK,CAACO,MAAM,CAACM,MAAM,CAAC;EACrC,MAAMI,IAAI,GAAGjB,KAAK,CAACO,MAAM,CAAEH,KAAK,IAAK,CAACS,MAAM,CAACT,KAAK,CAAC,CAAC;EAEpD,oBACE5G,KAAA,CAACb,KAAK,CAACuI,MAAM;IAAApD,QAAA,gBACXxE,IAAA,CAAChC,IAAI;MAACwF,SAAS,EAAC,4CAA4C;MAAAgB,QAAA,EAAEmD;IAAI,CAAO,CAAC,EACzED,QAAQ,CAACG,MAAM,GAAG,CAAC,gBAClB7H,IAAA,CAAChC,IAAI;MAACwF,SAAS,EAAC,wCAAwC;MAAAgB,QAAA,EAAEkD;IAAQ,CAAO,CAAC,GACxE,IAAI;EAAA,CACI,CAAC;AAEnB;AACAV,aAAa,CAACM,WAAW,GAAG,gBAAgB;AAO5C;AACA,SAASQ,YAAYA,CAAC;EAAEtD,QAAQ;EAAEhB,SAAS;EAAE,GAAGiB;AAAyB,CAAC,EAAE;EAC1E,MAAM;IAAEhB,KAAK;IAAEkB,MAAM;IAAEN;EAAO,CAAC,GAAGtC,UAAU,CAAC,eAAe,CAAC;EAC7D,oBACE/B,IAAA,CAAC3B,IAAI;IAAC0J,MAAM,EAAC,QAAQ;IAACvE,SAAS,EAAElF,EAAE,CAAC,WAAW,EAAEkF,SAAS,CAAE;IAAA,GAAKiB,KAAK;IAAAD,QAAA,EACnEA,QAAQ,IAAI9F,kBAAkB,CAAC+E,KAAK,EAAEkB,MAAM,EAAEN,MAAM;EAAC,CAClD,CAAC;AAEX;AACAyD,YAAY,CAACR,WAAW,GAAG,eAAe;AAO1C;AACA,SAASU,YAAYA,CAAC;EAAExD,QAAQ,GAAG;AAA2B,CAAC,EAAE;EAC/D,MAAM;IAAEhD,KAAK;IAAE4D,QAAQ;IAAE3B,KAAK;IAAEkB,MAAM;IAAEN;EAAO,CAAC,GAAGtC,UAAU,CAAC,eAAe,CAAC;EAC9E,MAAMkG,WAAW,GAAGtJ,mBAAmB,CAAC6C,KAAK,EAAEiC,KAAK,EAAEkB,MAAM,EAAEN,MAAM,CAAC;EAErE,oBACErE,IAAA,CAACjC,SAAS;IACRmK,OAAO,EAAEA,CAAA,KAAM9C,QAAQ,CAAC5D,KAAK,CAAE;IAC/BE,QAAQ,EAAEuG,WAAY;IACtBE,OAAO,EAAE,CAAE;IACXC,iBAAiB,EAAC,QAAQ;IAC1BC,kBAAkB,EAAC,kBAAkB;IACrCC,kBAAkB,EAAE;MAAE5G,QAAQ,EAAEuG;IAAY,CAAE;IAC9CzE,SAAS,EAAElF,EAAE,CACX,6CAA6C,EAC7C2J,WAAW,GAAG,YAAY,GAAG,kBAC/B,CAAE;IAAAzD,QAAA,eAEFxE,IAAA,CAAC3B,IAAI;MAACkK,IAAI,EAAC,IAAI;MAACC,KAAK;MAAAhE,QAAA,EAClBA;IAAQ,CACL;EAAC,CACE,CAAC;AAEhB;AACAwD,YAAY,CAACV,WAAW,GAAG,eAAe;AAM1C;AACA,SAASE,UAAUA,CAAC;EAAEhE;AAA2B,CAAC,EAAE;EAClD,MAAM;IAAEC,KAAK;IAAE2B,QAAQ;IAAET,MAAM;IAAEN;EAAO,CAAC,GAAGtC,UAAU,CAAC,aAAa,CAAC;EAErE,oBACE7B,KAAA,CAAClC,IAAI;IAACwF,SAAS,EAAElF,EAAE,CAAC,6BAA6B,EAAEkF,SAAS,CAAE;IAAAgB,QAAA,gBAC5DxE,IAAA,CAACyI,YAAY;MACXC,SAAS,EAAC,UAAU;MACpBR,OAAO,EAAEA,CAAA,KAAM9C,QAAQ,CAAC7G,iBAAiB,CAACkF,KAAK,EAAE,CAAC,CAAC,EAAEkB,MAAM,EAAEN,MAAM,CAAC;IAAE,CACvE,CAAC,eACFrE,IAAA,CAACyI,YAAY;MACXC,SAAS,EAAC,MAAM;MAChBR,OAAO,EAAEA,CAAA,KAAM9C,QAAQ,CAAC7G,iBAAiB,CAACkF,KAAK,EAAE,CAAC,EAAEkB,MAAM,EAAEN,MAAM,CAAC;IAAE,CACtE,CAAC;EAAA,CACE,CAAC;AAEX;AACAmD,UAAU,CAACF,WAAW,GAAG,aAAa;AAEtC,SAASmB,YAAYA,CAAC;EACpBC,SAAS;EACTR;AAIF,CAAC,EAAE;EACD,oBACElI,IAAA,CAACjC,SAAS;IACRmK,OAAO,EAAEA,OAAQ;IACjBC,OAAO,EAAE,CAAE;IACXC,iBAAiB,EAAC,QAAQ;IAC1BC,kBAAkB,EAAEK,SAAS,KAAK,MAAM,GAAG,YAAY,GAAG,gBAAiB;IAC3ElF,SAAS,EAAC,iEAAiE;IAAAgB,QAAA,EAE1EkE,SAAS,KAAK,MAAM,gBAAG1I,IAAA,CAAC5B,gBAAgB;MAACmK,IAAI,EAAE;IAAG,CAAE,CAAC,gBAAGvI,IAAA,CAAC7B,eAAe;MAACoK,IAAI,EAAE;IAAG,CAAE;EAAC,CAC7E,CAAC;AAEhB;AAMA;AACA,SAASd,aAAaA,CAAC;EAAEjD;AAA6B,CAAC,EAAE;EACvD,oBAAOxE,IAAA,CAACX,KAAK,CAACsJ,MAAM;IAAAnE,QAAA,EAAEA;EAAQ,CAAe,CAAC;AAChD;AACAiD,aAAa,CAACH,WAAW,GAAG,gBAAgB;;AAE5C;AACA;AACA;;AAEA;;AA8BA,MAAMsB,4BAA4B,gBAAGzL,aAAa,CAA2C,IAAI,CAAC;;AAElG;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS0L,WAAWA,CAAC;EAAErF,SAAS;EAAEsF;AAA4B,CAAC,EAAE;EAC/D,MAAM;IAAEpI,IAAI,EAAEqI,KAAK;IAAE3E,YAAY;IAAEC,MAAM;IAAE5C,QAAQ;IAAED,KAAK;IAAEiE;EAAU,CAAC,GACrE1D,UAAU,CAAC,cAAc,CAAC;EAC5B,MAAM;IAAErB,IAAI;IAAEC,IAAI,EAAEqI,OAAO;IAAEpI;EAAQ,CAAC,GAAGJ,eAAe,CAAC,CAAC;EAC1D,MAAMyI,QAAQ,GAAGxL,OAAO,CACtB,MAAM0B,YAAY,CAACkF,MAAM,EAAED,YAAY,CAAC,EACxC,CAACC,MAAM,EAAED,YAAY,CACvB,CAAC;EACD,MAAM8E,KAAK,GAAGzL,OAAO,CAAC,MAAMsL,KAAK,CAACI,IAAI,CAAC,CAAC,EAAE,CAACJ,KAAK,CAAC,CAAC;EAClD,MAAMK,UAAU,GAAG3L,OAAO,CACxB,MAAM,IAAIkI,GAAG,CAACuD,KAAK,CAAC9F,GAAG,CAAC,CAAC0B,IAAI,EAAEmB,KAAK,KAAK,CAACnB,IAAI,CAACrC,OAAO,CAAC,CAAC,EAAEwD,KAAK,CAAC,CAAC,CAAC,EAClE,CAACiD,KAAK,CACR,CAAC;EACD,MAAMG,UAAU,GAAG5H,QAAQ,IAAID,KAAK;EACpC,MAAM,CAAC8H,SAAS,EAAEC,YAAY,CAAC,GAAG5L,QAAQ,CAAC0L,UAAU,CAAC5G,OAAO,CAAC,CAAC,CAAC;EAChE,MAAM+G,WAAW,GAAGJ,UAAU,CAAC5C,GAAG,CAAC8C,SAAS,CAAC;EAC7C,MAAMG,cAAc,GAClB,CAAChI,QAAQ,GAAG2H,UAAU,CAAC5C,GAAG,CAACtH,UAAU,CAACuC,QAAQ,CAAC,CAACgB,OAAO,CAAC,CAAC,CAAC,GAAGa,SAAS,KACtE8F,UAAU,CAAC5C,GAAG,CAAChF,KAAK,CAACiB,OAAO,CAAC,CAAC,CAAC,IAC/ByG,KAAK,CAACQ,SAAS,CAACjE,SAAS,CAAC;EAC5B,MAAMkE,WAAW,GAAGH,WAAW,IAAII,IAAI,CAACC,GAAG,CAAC,CAAC,EAAEJ,cAAc,CAAC;EAC9D,MAAMK,IAAI,GAAGpM,MAAM,CAAC,IAAIiI,GAAG,CAAe,CAAC,CAAC;EAC5C,MAAMoE,QAAQ,GAAGzM,WAAW,CAAC,CAAC2I,KAAa,EAAE+D,IAAiB,KAAK;IACjE,IAAIA,IAAI,EAAEF,IAAI,CAACtH,OAAO,CAAC6D,GAAG,CAACJ,KAAK,EAAE+D,IAAI,CAAC,CAAC,KACnCF,IAAI,CAACtH,OAAO,CAACyH,MAAM,CAAChE,KAAK,CAAC;EACjC,CAAC,EAAE,EAAE,CAAC;EACN,MAAMiE,UAAU,GAAG5M,WAAW,CAC3B2I,KAAa,IAAK;IACjB,MAAMnB,IAAI,GAAGoE,KAAK,CAACjD,KAAK,CAAC;IACzB,IAAInB,IAAI,EAAEyE,YAAY,CAACzE,IAAI,CAACrC,OAAO,CAAC,CAAC,CAAC;EACxC,CAAC,EACD,CAACyG,KAAK,CACR,CAAC;EACD,MAAMiB,KAAK,GAAG7M,WAAW,CACvB,CAAC2I,KAAa,EAAEmE,KAA8B,KAAK;IACjD,MAAMC,MAAM,GAAGzK,iBAAiB,CAACwK,KAAK,CAACE,WAAW,CAACC,GAAG,IAAI,EAAE,EAAEtE,KAAK,EAAEiD,KAAK,CAACrB,MAAM,CAAC;IAClF,IAAIwC,MAAM,KAAK,IAAI,EAAE;IACrBD,KAAK,CAACI,cAAc,CAAC,CAAC;IACtBN,UAAU,CAACG,MAAM,CAAC;IAClBP,IAAI,CAACtH,OAAO,CAACgE,GAAG,CAAC6D,MAAM,CAAC,EAAEF,KAAK,CAAC,CAAC;EACnC,CAAC,EACD,CAACjB,KAAK,CAACrB,MAAM,EAAEqC,UAAU,CAC3B,CAAC;EACD,MAAMO,UAAU,GAAGhN,OAAO,CACxB,OAAO;IAAEkM,WAAW;IAAEP,UAAU;IAAEW,QAAQ;IAAEI,KAAK;IAAED;EAAW,CAAC,CAAC,EAChE,CAACP,WAAW,EAAEP,UAAU,EAAEW,QAAQ,EAAEI,KAAK,EAAED,UAAU,CACvD,CAAC;EAED,oBACElK,IAAA,CAAC4I,4BAA4B,CAAC1B,QAAQ;IAACC,KAAK,EAAE2B,SAAS,GAAG,IAAI,GAAG2B,UAAW;IAAAjG,QAAA,eAC1EtE,KAAA,CAAClC,IAAI;MAACwF,SAAS,EAAE9C,IAAI,CAAC;QAAE8C;MAAU,CAAC,CAAE;MAAAgB,QAAA,gBACnCxE,IAAA,CAAChC,IAAI;QACHwF,SAAS,EAAEwF,OAAO,CAAC,CAAE;QACrB0B,2BAA2B;QAC3BC,yBAAyB,EAAC,qBAAqB;QAAAnG,QAAA,EAE9CyE,QAAQ,CAAC7F,GAAG,CAAE9C,KAAK,iBAClBN,IAAA,CAAC3B,IAAI;UAAakK,IAAI,EAAC,IAAI;UAACC,KAAK;UAAChF,SAAS,EAAE5C,OAAO,CAAC,CAAE;UAAA4D,QAAA,EACpDlE,KAAK,CAACsK,WAAW,CAAC;QAAC,GADXtK,KAEL,CACP;MAAC,CACE,CAAC,EAENyI,KAAK,CAAC3F,GAAG,CAAC,CAACzC,IAAI,EAAEsF,KAAK,kBACrBjG,IAAA,CAAChC,IAAI;QAAawF,SAAS,EAAEwF,OAAO,CAAC,CAAE;QAAAxE,QAAA,EACpC7D,IAAI,CAACyC,GAAG,CAAE0B,IAAI,iBACb9E,IAAA,CAAC6K,UAAU;UAAsB/F,IAAI,EAAEA,IAAK;UAACgE,SAAS,EAAEA;QAAU,GAAjDhE,IAAI,CAACrC,OAAO,CAAC,CAAsC,CACrE;MAAC,GAHOwD,KAIL,CACP,CAAC;IAAA,CACE;EAAC,CAC8B,CAAC;AAE5C;AACA4C,WAAW,CAACvB,WAAW,GAAG,cAAc;AAOxC;AACA,SAASuD,UAAUA,CAAC;EAAE/F,IAAI;EAAEgE;AAA2B,CAAC,EAAE;EACxD,MAAM;IACJvD,IAAI;IAAE/D,KAAK;IAAEC,QAAQ;IAAE6D,MAAM;IAAEiB,OAAO;IAAEb,cAAc;IACtDvB,UAAU;IAAEE,MAAM;IAAEM,MAAM;IAAEc,SAAS;IAAEvB;EACzC,CAAC,GAAGnC,UAAU,CAAC,aAAa,CAAC;EAC7B,MAAM0I,UAAU,GAAGlN,UAAU,CAACqL,4BAA4B,CAAC;EAC3D,MAAMkC,gBAAgB,GAAGL,UAAU,EAAEV,QAAQ;EAC7C,MAAMgB,aAAa,GAAGN,UAAU,EAAEN,KAAK;EACvC,MAAMa,kBAAkB,GAAGP,UAAU,EAAEP,UAAU;EAEjD,MAAMrG,OAAO,GAAGrE,SAAS,CAAC+F,IAAI,EAAET,IAAI,CAAC;EACrC,MAAMzD,OAAO,GAAGoE,SAAS,CAACX,IAAI,CAAC;EAC/B,MAAMmG,OAAO,GAAGrM,SAAS,CAACkG,IAAI,EAAEtD,KAAK,CAAC;EACtC,MAAM0J,UAAU,GAAGzJ,QAAQ,GAAG7C,SAAS,CAACkG,IAAI,EAAErD,QAAQ,CAAC,GAAG,KAAK;EAC/D,MAAM;IAAE0J,KAAK;IAAEC;EAAS,CAAC,GAAG1L,cAAc,CAACmE,OAAO,EAAEM,UAAU,CAAC;EAC/D,MAAMkH,QAAQ,GAAGF,KAAK,CAAClE,MAAM,CAAEqE,KAAK,IAAKA,KAAK,CAACC,IAAI,CAAC;EACpD,MAAMC,MAAM,GAAGzK,WAAW,CAAC;IAAEM,OAAO;IAAEG,KAAK,EAAEyJ,OAAO;IAAExJ,QAAQ,EAAEyJ;EAAW,CAAC,CAAC;EAE7E,MAAM5K,KAAK,GAAGf,qBAAqB,CACjCd,gBAAgB,CAACqG,IAAI,EAAEH,MAAM,EAAEN,MAAM,CAAC,EACtCR,OAAO,EACP6B,cACF,CAAC;EAED,MAAM+F,KAAK,GAAGA,CAAA,KAAM;IAClBvH,UAAU,GAAGY,IAAI,EAAEjB,OAAO,CAAC;IAC3ByB,MAAM,CAACR,IAAI,CAAC;EACd,CAAC;EACD,MAAM4G,SAAS,GAAGjB,UAAU,EAAErB,UAAU,CAAC5C,GAAG,CAAC1B,IAAI,CAACrC,OAAO,CAAC,CAAC,CAAC;EAC5D,MAAMkJ,MAAM,GAAGrO,WAAW,CACvB0M,IAAiB,IAAK;IACrB,IAAI0B,SAAS,KAAKpI,SAAS,EAAEwH,gBAAgB,GAAGY,SAAS,EAAE1B,IAAI,CAAC;EAClE,CAAC,EACD,CAAC0B,SAAS,EAAEZ,gBAAgB,CAC9B,CAAC;EACD,MAAMc,OAAO,GAAGtO,WAAW,CAAC,MAAM;IAChC,IAAIoO,SAAS,KAAKpI,SAAS,EAAE0H,kBAAkB,GAAGU,SAAS,CAAC;EAC9D,CAAC,EAAE,CAACA,SAAS,EAAEV,kBAAkB,CAAC,CAAC;EACnC,MAAMa,SAAS,GAAGvO,WAAW,CAC1B8M,KAA8B,IAAK;IAClC,IAAIsB,SAAS,KAAKpI,SAAS,EAAEyH,aAAa,GAAGW,SAAS,EAAEtB,KAAK,CAAC;EAChE,CAAC,EACD,CAACsB,SAAS,EAAEX,aAAa,CAC3B,CAAC;EACD,MAAMe,YAAY,GAChBhO,QAAQ,CAACiO,EAAE,KAAK,KAAK,IAAIL,SAAS,KAAKpI,SAAS,IAAImH,UAAU,GAC1D;IACE/F,GAAG,EAAEiH,MAAM;IACXK,QAAQ,EAAEvB,UAAU,CAACd,WAAW,KAAK+B,SAAS,GAAI,CAAC,GAAc,CAAC,CAAW;IAC7EE,OAAO;IACPC;EACF,CAAC,GACD,CAAC,CAAC;EAER,IAAI/C,SAAS,EAAE;IACb,oBACE9I,IAAA,CAAChC,IAAI;MAACwF,SAAS,EAAC,QAAQ;MAAAgB,QAAA,EACrBsE,SAAS,CAAC;QAAEhE,IAAI;QAAEjB,OAAO;QAAEoH,OAAO;QAAEC,UAAU;QAAEzF,SAAS,EAAEpE;MAAQ,CAAC;IAAC,CAClE,CAAC;EAEX;EAEA,oBACEnB,KAAA,CAACnC,SAAS;IAAA,GACH+N,YAAY;IACjB5D,OAAO,EAAEuD,KAAM;IACfrD,iBAAiB,EAAC,QAAQ;IAC1BC,kBAAkB,EAAE/H,KAAM;IAC1B2L,iBAAiB,EAAEpI,OAAO,CAACgE,MAAM,GAAG,CAAC,GAAG,2BAA2B,GAAGvE,SAAU;IAChFgF,kBAAkB,EAAE;MAAE7G,QAAQ,EAAEyJ;IAAW,CAAE;IAC7C1H,SAAS,EAAEgI,MAAM,CAACxK,IAAI,CAAC,CAAE;IAAAwD,QAAA,gBAEzBxE,IAAA,CAAC3B,IAAI;MAACmF,SAAS,EAAEgI,MAAM,CAACvK,MAAM,CAAC,CAAE;MAAAuD,QAAA,EAAEhG,iBAAiB,CAACsG,IAAI,EAAEH,MAAM,EAAEN,MAAM;IAAC,CAAO,CAAC,EAEjFR,OAAO,CAACgE,MAAM,GAAG,CAAC,gBACjB7H,IAAA,CAAChC,IAAI;MAACwF,SAAS,EAAEgI,MAAM,CAACtK,MAAM,CAAC,CAAE;MAACgL,KAAK,EAAE;QAAEC,eAAe,EAAEC,WAAW,CAACvI,OAAO,EAAE0C,OAAO;MAAE;IAAE,CAAE,CAAC,GAC7F,IAAI,EAQP8E,QAAQ,CAACxD,MAAM,GAAG,CAAC,gBAClB3H,KAAA,CAAClC,IAAI;MAACwF,SAAS,EAAEgI,MAAM,CAACrK,IAAI,CAAC,CAAE;MAAAqD,QAAA,GAC5B6G,QAAQ,CAACjI,GAAG,CAAEkI,KAAK,iBAClBtL,IAAA,CAAChC,IAAI;QAAAwG,QAAA,EAAiB8G,KAAK,CAACC;MAAI,GAArBD,KAAK,CAACzF,EAAsB,CACxC,CAAC,EACDuF,QAAQ,GAAG,CAAC,gBACXlL,KAAA,CAAC7B,IAAI;QAACkK,IAAI,EAAC,IAAI;QAACC,KAAK;QAAChF,SAAS,EAAC,cAAc;QAAAgB,QAAA,GAAC,GAC5C,EAAC4G,QAAQ;MAAA,CACN,CAAC,GACL,IAAI;IAAA,CACJ,CAAC,GACL,IAAI;EAAA,CACC,CAAC;AAEhB;AACAP,UAAU,CAACvD,WAAW,GAAG,aAAa;;AAEtC;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS8E,WAAWA,CAClBvI,OAAgC,EAChC0C,OAA6D,EACzC;EACpB,KAAK,MAAM+E,KAAK,IAAIzH,OAAO,EAAE;IAC3B,MAAMyC,KAAK,GAAGC,OAAO,CAAC+E,KAAK,CAAC1F,QAAQ,CAAC;IACrC,IAAIU,KAAK,EAAE,OAAOA,KAAK;EACzB;EACA,OAAOhD,SAAS;AAClB;;AAEA;AACA;AACA;;AAUA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS+I,aAAaA,CAAC;EAAE7I,SAAS;EAAE8I,MAAM,GAAG,KAAK;EAAE9H;AAA6B,CAAC,EAAE;EAClF,MAAM;IAAEiC,OAAO;IAAEF;EAAQ,CAAC,GAAGxE,UAAU,CAAC,gBAAgB,CAAC;EACzD,MAAM;IAAElB,MAAM;IAAEC;EAAO,CAAC,GAAGN,eAAe,CAAC,CAAC;EAE5C,oBACEN,KAAA,CAAClC,IAAI;IAACwF,SAAS,EAAElF,EAAE,CAACuC,MAAM,CAAC,CAAC,EAAE,wCAAwC,EAAE2C,SAAS,CAAE;IAAAgB,QAAA,gBACjFxE,IAAA,CAAChC,IAAI;MAACwF,SAAS,EAAC,iDAAiD;MAAAgB,QAAA,EAC9DiC,OAAO,CAAC3C,UAAU,CAACV,GAAG,CAAEwC,QAAQ,iBAC/B1F,KAAA,CAAClC,IAAI;QAAmBwF,SAAS,EAAC,+BAA+B;QAAAgB,QAAA,gBAC/DxE,IAAA,CAAChC,IAAI;UACHwF,SAAS,EAAE1C,MAAM,CAAC,CAAE;UACpBoL,KAAK,EAAE;YAAEC,eAAe,EAAE5F,OAAO,CAACX,QAAQ,CAACC,EAAE;UAAE;QAAE,CAClD,CAAC,eACF7F,IAAA,CAAC3B,IAAI;UAACkK,IAAI,EAAC,IAAI;UAACC,KAAK;UAAAhE,QAAA,EAClB8H,MAAM,GAAG,GAAG1G,QAAQ,CAACtF,KAAK,IAAIsF,QAAQ,CAAC2G,KAAK,EAAE,GAAG3G,QAAQ,CAACtF;QAAK,CAC5D,CAAC;MAAA,GAPEsF,QAAQ,CAACC,EAQd,CACP;IAAC,CACE,CAAC,EACNrB,QAAQ;EAAA,CACL,CAAC;AAEX;AACA6H,aAAa,CAAC/E,WAAW,GAAG,gBAAgB;AAO5C;AACA,SAASkF,cAAcA,CAAC;EAAEhI,QAAQ;EAAE,GAAGC;AAA2B,CAAC,EAAE;EACnE,MAAM;IAAEgC;EAAQ,CAAC,GAAG1E,UAAU,CAAC,iBAAiB,CAAC;EACjD,oBACE/B,IAAA,CAAC3B,IAAI;IAACkK,IAAI,EAAC,IAAI;IAACC,KAAK;IAAA,GAAK/D,KAAK;IAAAD,QAAA,EAC5BA,QAAQ,IAAI,GAAGiC,OAAO,CAACgG,KAAK,IAAIhG,OAAO,CAACgG,KAAK,KAAK,CAAC,GAAG,OAAO,GAAG,SAAS;EAAE,CACxE,CAAC;AAEX;AACAD,cAAc,CAAClF,WAAW,GAAG,iBAAiB;AAO9C;AACA,SAASoF,aAAaA,CAAC;EAAElJ,SAAS;EAAEgB;AAA6B,CAAC,EAAE;EAClE,oBACExE,IAAA,CAAChC,IAAI;IAACwF,SAAS,EAAElF,EAAE,CAAC,uDAAuD,EAAEkF,SAAS,CAAE;IAAAgB,QAAA,EACrFA;EAAQ,CACL,CAAC;AAEX;AACAkI,aAAa,CAACpF,WAAW,GAAG,gBAAgB;;AAE5C;AACA;AACA;;AAgBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAASqF,cAAcA,CAAC;EAAEnJ,SAAS;EAAEoJ,KAAK;EAAEC,WAAW;EAAErI;AAA8B,CAAC,EAAE;EACxF,MAAM;IAAE/C,QAAQ;IAAE6D,MAAM;IAAEC,IAAI;IAAEZ,MAAM;IAAEN;EAAO,CAAC,GAAGtC,UAAU,CAAC,iBAAiB,CAAC;EAChF,MAAM8B,OAAO,GAAGpC,QAAQ,GAAGjC,SAAS,CAAC+F,IAAI,EAAE9D,QAAQ,CAAC,GAAG,EAAE;EAEzD,MAAM8K,KAAK,GACT1I,OAAO,CAACgE,MAAM,KAAK,CAAC,GAAG,SAAS,GAAG,GAAGhE,OAAO,CAACgE,MAAM,UAAU;EAEhE,oBACE7H,IAAA,CAACZ,MAAM;IAAC0N,IAAI,EAAErL,QAAQ,KAAK,IAAK;IAACsL,YAAY,EAAGD,IAAI,IAAK,CAACA,IAAI,IAAIxH,MAAM,CAAC,IAAI,CAAE;IAAAd,QAAA,eAC7EtE,KAAA,CAACd,MAAM,CAAC4N,OAAO;MAACxJ,SAAS,EAAElF,EAAE,CAAC,OAAO,EAAEkF,SAAS,CAAE;MAAAgB,QAAA,gBAChDtE,KAAA,CAAClC,IAAI;QAACwF,SAAS,EAAC,SAAS;QAAAgB,QAAA,gBACvBxE,IAAA,CAACZ,MAAM,CAAC6N,KAAK;UAAAzI,QAAA,EACVoI,KAAK,KAAKnL,QAAQ,GAAGhD,gBAAgB,CAACgD,QAAQ,EAAEkD,MAAM,EAAEN,MAAM,CAAC,GAAG,EAAE;QAAC,CAC1D,CAAC,EACdwI,WAAW,KAAK,IAAI,GAAG,IAAI,gBAC1B7M,IAAA,CAACZ,MAAM,CAAC8N,WAAW;UAAA1I,QAAA,EAChBqI,WAAW,KAAKhJ,OAAO,CAACgE,MAAM,KAAK,CAAC,GAAG,iBAAiB,GAAG0E,KAAK;QAAC,CAChD,CACrB;MAAA,CACG,CAAC,EACN9K,QAAQ,GAAG+C,QAAQ,CAAC/C,QAAQ,EAAEoC,OAAO,CAAC,GAAG,IAAI;IAAA,CAChC;EAAC,CACX,CAAC;AAEb;AACA8I,cAAc,CAACrF,WAAW,GAAG,iBAAiB;AAE9C,OAAO,MAAM6F,OAAO,GAAGC,MAAM,CAACC,MAAM,CAAC9J,WAAW,EAAE;EAChDqE,MAAM,EAAEZ,aAAa;EACrBiG,KAAK,EAAEnF,YAAY;EACnBwF,KAAK,EAAEtF,YAAY;EACnBuF,GAAG,EAAE/F,UAAU;EACfmB,MAAM,EAAElB,aAAa;EACrB+F,IAAI,EAAE3E,WAAW;EACjB4E,GAAG,EAAE5C,UAAU;EACf6C,MAAM,EAAErB,aAAa;EACrBsB,OAAO,EAAEnB,cAAc;EACvBoB,MAAM,EAAElB,aAAa;EACrBmB,OAAO,EAAElB;AACX,CAAC,CAAC","ignoreList":[]}
@@ -0,0 +1,30 @@
1
+ "use strict";
2
+
3
+ import { useCallback, useEffect, useRef } from 'react';
4
+ /**
5
+ * Announces a month only when the next committed render accepts a user request.
6
+ *
7
+ * Prop-driven months stay silent. In a controlled planner, a render that keeps
8
+ * the previous month rejects the pending request and clears it without speaking.
9
+ */
10
+ export function usePlannerMonthAnnouncement({
11
+ monthKey,
12
+ monthLabel,
13
+ announce
14
+ }) {
15
+ const pendingMonth = useRef(null);
16
+ const expectMonth = useCallback(month => {
17
+ pendingMonth.current = month.getTime();
18
+ }, []);
19
+
20
+ // Deliberately runs after every commit: an unchanged controlled render is
21
+ // how a parent rejects a request, while a changed matching render accepts it.
22
+ useEffect(() => {
23
+ const expected = pendingMonth.current;
24
+ if (expected === null) return;
25
+ pendingMonth.current = null;
26
+ if (expected === monthKey) announce(monthLabel);
27
+ });
28
+ return expectMonth;
29
+ }
30
+ //# sourceMappingURL=planner-announcement.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["useCallback","useEffect","useRef","usePlannerMonthAnnouncement","monthKey","monthLabel","announce","pendingMonth","expectMonth","month","current","getTime","expected"],"sourceRoot":"../../../../src","sources":["components/planner/planner-announcement.ts"],"mappings":";;AAAA,SAASA,WAAW,EAAEC,SAAS,EAAEC,MAAM,QAAQ,OAAO;AAStD;AACA;AACA;AACA;AACA;AACA;AACA,OAAO,SAASC,2BAA2BA,CAAC;EAC1CC,QAAQ;EACRC,UAAU;EACVC;AAC+B,CAAC,EAAyB;EACzD,MAAMC,YAAY,GAAGL,MAAM,CAAgB,IAAI,CAAC;EAEhD,MAAMM,WAAW,GAAGR,WAAW,CAAES,KAAW,IAAK;IAC/CF,YAAY,CAACG,OAAO,GAAGD,KAAK,CAACE,OAAO,CAAC,CAAC;EACxC,CAAC,EAAE,EAAE,CAAC;;EAEN;EACA;EACAV,SAAS,CAAC,MAAM;IACd,MAAMW,QAAQ,GAAGL,YAAY,CAACG,OAAO;IACrC,IAAIE,QAAQ,KAAK,IAAI,EAAE;IACvBL,YAAY,CAACG,OAAO,GAAG,IAAI;IAC3B,IAAIE,QAAQ,KAAKR,QAAQ,EAAEE,QAAQ,CAACD,UAAU,CAAC;EACjD,CAAC,CAAC;EAEF,OAAOG,WAAW;AACpB","ignoreList":[]}
@@ -82,9 +82,13 @@ export function visibleEntries(entries, limit) {
82
82
  export function dayAccessibilityLabel(dateLabel, entries, categoryLabels) {
83
83
  if (entries.length === 0) return `${dateLabel}, nothing planned`;
84
84
  const named = [];
85
+ const seen = new Set();
85
86
  for (const entry of entries) {
86
87
  const label = entry.category ? categoryLabels.get(entry.category) : undefined;
87
- if (label && !named.includes(label)) named.push(label);
88
+ if (label && !seen.has(label)) {
89
+ seen.add(label);
90
+ named.push(label);
91
+ }
88
92
  }
89
93
  const count = `${entries.length} ${entries.length === 1 ? 'entry' : 'entries'}`;
90
94
  return named.length > 0 ? `${dateLabel}, ${count}: ${named.join(', ')}` : `${dateLabel}, ${count}`;
@@ -99,14 +103,18 @@ export function dayAccessibilityLabel(dateLabel, entries, categoryLabels) {
99
103
  * the month it is showing, and counting those would make a total that changes
100
104
  * with the week the month happens to start on.
101
105
  */
102
- export function summariseMonth(entries, categories, isInMonth) {
106
+ export function summariseMonth(days, grid, categories, isInMonth) {
103
107
  const counts = new Map();
104
108
  let total = 0;
105
- for (const entry of entries) {
106
- if (!isInMonth(entry.date)) continue;
107
- total += 1;
108
- if (entry.category) {
109
- counts.set(entry.category, (counts.get(entry.category) ?? 0) + 1);
109
+ for (const week of grid) {
110
+ for (const date of week) {
111
+ if (!isInMonth(date)) continue;
112
+ for (const entry of entriesOn(days, date)) {
113
+ total += 1;
114
+ if (entry.category) {
115
+ counts.set(entry.category, (counts.get(entry.category) ?? 0) + 1);
116
+ }
117
+ }
110
118
  }
111
119
  }
112
120
  return {
@@ -1 +1 @@
1
- {"version":3,"names":["dayKey","date","Date","getFullYear","getMonth","getDate","getTime","bucketByDay","entries","days","Map","entry","key","bucket","get","push","set","entriesOn","EMPTY","Object","freeze","visibleEntries","limit","cap","Math","max","floor","length","shown","overflow","slice","dayAccessibilityLabel","dateLabel","categoryLabels","named","label","category","undefined","includes","count","join","summariseMonth","categories","isInMonth","counts","total","map","id"],"sourceRoot":"../../../../src","sources":["components/planner/planner-entries.ts"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["dayKey","date","Date","getFullYear","getMonth","getDate","getTime","bucketByDay","entries","days","Map","entry","key","bucket","get","push","set","entriesOn","EMPTY","Object","freeze","visibleEntries","limit","cap","Math","max","floor","length","shown","overflow","slice","dayAccessibilityLabel","dateLabel","categoryLabels","named","seen","Set","label","category","undefined","has","add","count","join","summariseMonth","grid","categories","isInMonth","counts","total","week","map","id"],"sourceRoot":"../../../../src","sources":["components/planner/planner-entries.ts"],"mappings":";;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAaA;AACA,OAAO,SAASA,MAAMA,CAACC,IAAU,EAAU;EACzC,OAAO,IAAIC,IAAI,CAACD,IAAI,CAACE,WAAW,CAAC,CAAC,EAAEF,IAAI,CAACG,QAAQ,CAAC,CAAC,EAAEH,IAAI,CAACI,OAAO,CAAC,CAAC,CAAC,CAACC,OAAO,CAAC,CAAC;AAChF;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO,SAASC,WAAWA,CACzBC,OAAqB,EACH;EAClB,MAAMC,IAAI,GAAG,IAAIC,GAAG,CAAc,CAAC;EACnC,KAAK,MAAMC,KAAK,IAAIH,OAAO,EAAE;IAC3B,MAAMI,GAAG,GAAGZ,MAAM,CAACW,KAAK,CAACV,IAAI,CAAC;IAC9B,MAAMY,MAAM,GAAGJ,IAAI,CAACK,GAAG,CAACF,GAAG,CAAC;IAC5B,IAAIC,MAAM,EAAEA,MAAM,CAACE,IAAI,CAACJ,KAAK,CAAC,CAAC,KAC1BF,IAAI,CAACO,GAAG,CAACJ,GAAG,EAAE,CAACD,KAAK,CAAC,CAAC;EAC7B;EACA,OAAOF,IAAI;AACb;;AAEA;AACA,OAAO,SAASQ,SAASA,CACvBR,IAAsB,EACtBR,IAAU,EACL;EACL,OAAOQ,IAAI,CAACK,GAAG,CAACd,MAAM,CAACC,IAAI,CAAC,CAAC,IAAIiB,KAAK;AACxC;;AAEA;AACA;AACA;AACA;AACA;AACA,MAAMA,KAAc,GAAGC,MAAM,CAACC,MAAM,CAAC,EAAE,CAAY;;AAEnD;AACA;AACA;AACA;AACA;AACA;AACA,OAAO,SAASC,cAAcA,CAAIb,OAAqB,EAAEc,KAAa,EAGpE;EACA,MAAMC,GAAG,GAAGC,IAAI,CAACC,GAAG,CAAC,CAAC,EAAED,IAAI,CAACE,KAAK,CAACJ,KAAK,CAAC,CAAC;EAC1C,IAAId,OAAO,CAACmB,MAAM,IAAIJ,GAAG,EAAE,OAAO;IAAEK,KAAK,EAAE,CAAC,GAAGpB,OAAO,CAAC;IAAEqB,QAAQ,EAAE;EAAE,CAAC;EACtE,OAAO;IAAED,KAAK,EAAEpB,OAAO,CAACsB,KAAK,CAAC,CAAC,EAAEP,GAAG,CAAC;IAAEM,QAAQ,EAAErB,OAAO,CAACmB,MAAM,GAAGJ;EAAI,CAAC;AACzE;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO,SAASQ,qBAAqBA,CACnCC,SAAiB,EACjBxB,OAAqB,EACrByB,cAA2C,EACnC;EACR,IAAIzB,OAAO,CAACmB,MAAM,KAAK,CAAC,EAAE,OAAO,GAAGK,SAAS,mBAAmB;EAEhE,MAAME,KAAe,GAAG,EAAE;EAC1B,MAAMC,IAAI,GAAG,IAAIC,GAAG,CAAS,CAAC;EAC9B,KAAK,MAAMzB,KAAK,IAAIH,OAAO,EAAE;IAC3B,MAAM6B,KAAK,GAAG1B,KAAK,CAAC2B,QAAQ,GAAGL,cAAc,CAACnB,GAAG,CAACH,KAAK,CAAC2B,QAAQ,CAAC,GAAGC,SAAS;IAC7E,IAAIF,KAAK,IAAI,CAACF,IAAI,CAACK,GAAG,CAACH,KAAK,CAAC,EAAE;MAC7BF,IAAI,CAACM,GAAG,CAACJ,KAAK,CAAC;MACfH,KAAK,CAACnB,IAAI,CAACsB,KAAK,CAAC;IACnB;EACF;EAEA,MAAMK,KAAK,GAAG,GAAGlC,OAAO,CAACmB,MAAM,IAAInB,OAAO,CAACmB,MAAM,KAAK,CAAC,GAAG,OAAO,GAAG,SAAS,EAAE;EAC/E,OAAOO,KAAK,CAACP,MAAM,GAAG,CAAC,GACnB,GAAGK,SAAS,KAAKU,KAAK,KAAKR,KAAK,CAACS,IAAI,CAAC,IAAI,CAAC,EAAE,GAC7C,GAAGX,SAAS,KAAKU,KAAK,EAAE;AAC9B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO,SAASE,cAAcA,CAC5BnC,IAAsB,EACtBoC,IAAkC,EAClCC,UAAoD,EACpDC,SAAkC,EACuB;EACzD,MAAMC,MAAM,GAAG,IAAItC,GAAG,CAAiB,CAAC;EACxC,IAAIuC,KAAK,GAAG,CAAC;EAEb,KAAK,MAAMC,IAAI,IAAIL,IAAI,EAAE;IACvB,KAAK,MAAM5C,IAAI,IAAIiD,IAAI,EAAE;MACvB,IAAI,CAACH,SAAS,CAAC9C,IAAI,CAAC,EAAE;MACtB,KAAK,MAAMU,KAAK,IAAIM,SAAS,CAACR,IAAI,EAAER,IAAI,CAAC,EAAE;QACzCgD,KAAK,IAAI,CAAC;QACV,IAAItC,KAAK,CAAC2B,QAAQ,EAAE;UAClBU,MAAM,CAAChC,GAAG,CAACL,KAAK,CAAC2B,QAAQ,EAAE,CAACU,MAAM,CAAClC,GAAG,CAACH,KAAK,CAAC2B,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACnE;MACF;IACF;EACF;EAEA,OAAO;IACLW,KAAK;IACLH,UAAU,EAAEA,UAAU,CAACK,GAAG,CAAC,CAAC;MAAEC,EAAE;MAAEf;IAAM,CAAC,MAAM;MAC7Ce,EAAE;MACFf,KAAK;MACLK,KAAK,EAAEM,MAAM,CAAClC,GAAG,CAACsC,EAAE,CAAC,IAAI;IAC3B,CAAC,CAAC;EACJ,CAAC;AACH","ignoreList":[]}
@@ -0,0 +1,33 @@
1
+ "use strict";
2
+
3
+ /** Returns the next visible cell for a bounded, row-major month grid. */
4
+ export function plannerGridTarget(key, index, count, columns = 7) {
5
+ if (!Number.isInteger(index) || index < 0 || index >= count || columns < 1) {
6
+ return null;
7
+ }
8
+ let target;
9
+ switch (key) {
10
+ case 'ArrowLeft':
11
+ target = index - 1;
12
+ break;
13
+ case 'ArrowRight':
14
+ target = index + 1;
15
+ break;
16
+ case 'ArrowUp':
17
+ target = index - columns;
18
+ break;
19
+ case 'ArrowDown':
20
+ target = index + columns;
21
+ break;
22
+ case 'Home':
23
+ target = index - index % columns;
24
+ break;
25
+ case 'End':
26
+ target = index + (columns - 1 - index % columns);
27
+ break;
28
+ default:
29
+ return null;
30
+ }
31
+ return target >= 0 && target < count ? target : index;
32
+ }
33
+ //# sourceMappingURL=planner-grid-navigation.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["plannerGridTarget","key","index","count","columns","Number","isInteger","target"],"sourceRoot":"../../../../src","sources":["components/planner/planner-grid-navigation.ts"],"mappings":";;AAQA;AACA,OAAO,SAASA,iBAAiBA,CAC/BC,GAAW,EACXC,KAAa,EACbC,KAAa,EACbC,OAAO,GAAG,CAAC,EACI;EACf,IAAI,CAACC,MAAM,CAACC,SAAS,CAACJ,KAAK,CAAC,IAAIA,KAAK,GAAG,CAAC,IAAIA,KAAK,IAAIC,KAAK,IAAIC,OAAO,GAAG,CAAC,EAAE;IAC1E,OAAO,IAAI;EACb;EAEA,IAAIG,MAAc;EAClB,QAAQN,GAAG;IACT,KAAK,WAAW;MACdM,MAAM,GAAGL,KAAK,GAAG,CAAC;MAClB;IACF,KAAK,YAAY;MACfK,MAAM,GAAGL,KAAK,GAAG,CAAC;MAClB;IACF,KAAK,SAAS;MACZK,MAAM,GAAGL,KAAK,GAAGE,OAAO;MACxB;IACF,KAAK,WAAW;MACdG,MAAM,GAAGL,KAAK,GAAGE,OAAO;MACxB;IACF,KAAK,MAAM;MACTG,MAAM,GAAGL,KAAK,GAAIA,KAAK,GAAGE,OAAQ;MAClC;IACF,KAAK,KAAK;MACRG,MAAM,GAAGL,KAAK,IAAIE,OAAO,GAAG,CAAC,GAAIF,KAAK,GAAGE,OAAQ,CAAC;MAClD;IACF;MACE,OAAO,IAAI;EACf;EAEA,OAAOG,MAAM,IAAI,CAAC,IAAIA,MAAM,GAAGJ,KAAK,GAAGI,MAAM,GAAGL,KAAK;AACvD","ignoreList":[]}
@@ -0,0 +1,45 @@
1
+ "use strict";
2
+
3
+ import { useCallback, useMemo, useState } from 'react';
4
+ /** Keeps controlled requests separate from the month a parent has accepted. */
5
+ export function usePlannerMonthLifecycle({
6
+ month: monthProp,
7
+ defaultMonth,
8
+ settleMonth,
9
+ onMonthChange
10
+ }) {
11
+ const [internalMonth, setInternalMonth] = useState(() => settleMonth(defaultMonth ?? new Date()));
12
+ const isControlled = monthProp !== undefined;
13
+
14
+ /*
15
+ * Parents commonly create an equivalent Date on every render. Keying this
16
+ * derivation by its instant keeps the month object stable, so an unrelated
17
+ * parent render does not rebuild the grid and its month summary.
18
+ */
19
+ const controlledMonth = useMemo(() => monthProp === undefined ? undefined : settleMonth(monthProp),
20
+ // eslint-disable-next-line react-hooks/exhaustive-deps
21
+ [monthProp?.getTime(), settleMonth]);
22
+ const month = controlledMonth ?? internalMonth;
23
+ const setMonth = useCallback(next => {
24
+ const settled = settleMonth(next);
25
+ if (!isControlled) setInternalMonth(settled);
26
+ onMonthChange?.(settled);
27
+ }, [isControlled, onMonthChange, settleMonth]);
28
+ return [month, setMonth];
29
+ }
30
+ /** Commits locally only when selection is uncontrolled, but always reports a request. */
31
+ export function usePlannerSelectionLifecycle({
32
+ selected: selectedProp,
33
+ defaultSelected,
34
+ onSelectedChange
35
+ }) {
36
+ const [internalSelected, setInternalSelected] = useState(defaultSelected);
37
+ const isControlled = selectedProp !== undefined;
38
+ const selected = isControlled ? selectedProp : internalSelected;
39
+ const select = useCallback(date => {
40
+ if (!isControlled) setInternalSelected(date);
41
+ onSelectedChange?.(date);
42
+ }, [isControlled, onSelectedChange]);
43
+ return [selected, select];
44
+ }
45
+ //# sourceMappingURL=planner-lifecycle.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["useCallback","useMemo","useState","usePlannerMonthLifecycle","month","monthProp","defaultMonth","settleMonth","onMonthChange","internalMonth","setInternalMonth","Date","isControlled","undefined","controlledMonth","getTime","setMonth","next","settled","usePlannerSelectionLifecycle","selected","selectedProp","defaultSelected","onSelectedChange","internalSelected","setInternalSelected","select","date"],"sourceRoot":"../../../../src","sources":["components/planner/planner-lifecycle.ts"],"mappings":";;AAAA,SAASA,WAAW,EAAEC,OAAO,EAAEC,QAAQ,QAAQ,OAAO;AAStD;AACA,OAAO,SAASC,wBAAwBA,CAAC;EACvCC,KAAK,EAAEC,SAAS;EAChBC,YAAY;EACZC,WAAW;EACXC;AAC4B,CAAC,EAA0C;EACvE,MAAM,CAACC,aAAa,EAAEC,gBAAgB,CAAC,GAAGR,QAAQ,CAAC,MACjDK,WAAW,CAACD,YAAY,IAAI,IAAIK,IAAI,CAAC,CAAC,CACxC,CAAC;EACD,MAAMC,YAAY,GAAGP,SAAS,KAAKQ,SAAS;;EAE5C;AACF;AACA;AACA;AACA;EACE,MAAMC,eAAe,GAAGb,OAAO,CAC7B,MACEI,SAAS,KAAKQ,SAAS,GACnBA,SAAS,GACTN,WAAW,CAACF,SAAS,CAAC;EAC5B;EACA,CAACA,SAAS,EAAEU,OAAO,CAAC,CAAC,EAAER,WAAW,CACpC,CAAC;EACD,MAAMH,KAAK,GAAGU,eAAe,IAAIL,aAAa;EAE9C,MAAMO,QAAQ,GAAGhB,WAAW,CACzBiB,IAAU,IAAK;IACd,MAAMC,OAAO,GAAGX,WAAW,CAACU,IAAI,CAAC;IACjC,IAAI,CAACL,YAAY,EAAEF,gBAAgB,CAACQ,OAAO,CAAC;IAC5CV,aAAa,GAAGU,OAAO,CAAC;EAC1B,CAAC,EACD,CAACN,YAAY,EAAEJ,aAAa,EAAED,WAAW,CAC3C,CAAC;EAED,OAAO,CAACH,KAAK,EAAEY,QAAQ,CAAC;AAC1B;AAQA;AACA,OAAO,SAASG,4BAA4BA,CAAC;EAC3CC,QAAQ,EAAEC,YAAY;EACtBC,eAAe;EACfC;AACgC,CAAC,EAGjC;EACA,MAAM,CAACC,gBAAgB,EAAEC,mBAAmB,CAAC,GAAGvB,QAAQ,CAAcoB,eAAe,CAAC;EACtF,MAAMV,YAAY,GAAGS,YAAY,KAAKR,SAAS;EAC/C,MAAMO,QAAQ,GAAGR,YAAY,GAAGS,YAAY,GAAGG,gBAAgB;EAC/D,MAAME,MAAM,GAAG1B,WAAW,CACvB2B,IAAiB,IAAK;IACrB,IAAI,CAACf,YAAY,EAAEa,mBAAmB,CAACE,IAAI,CAAC;IAC5CJ,gBAAgB,GAAGI,IAAI,CAAC;EAC1B,CAAC,EACD,CAACf,YAAY,EAAEW,gBAAgB,CACjC,CAAC;EAED,OAAO,CAACH,QAAQ,EAAEM,MAAM,CAAC;AAC3B","ignoreList":[]}