react-native-agenda-kit 0.1.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 (403) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +364 -0
  3. package/lib/commonjs/agenda/AgendaBackdrop.js +68 -0
  4. package/lib/commonjs/agenda/AgendaBackdrop.js.map +1 -0
  5. package/lib/commonjs/agenda/AgendaList.js +354 -0
  6. package/lib/commonjs/agenda/AgendaList.js.map +1 -0
  7. package/lib/commonjs/agenda/AgendaSlot.js +88 -0
  8. package/lib/commonjs/agenda/AgendaSlot.js.map +1 -0
  9. package/lib/commonjs/agenda/AgendaWindow.js +171 -0
  10. package/lib/commonjs/agenda/AgendaWindow.js.map +1 -0
  11. package/lib/commonjs/agenda/StickyHeaderOverlay.js +125 -0
  12. package/lib/commonjs/agenda/StickyHeaderOverlay.js.map +1 -0
  13. package/lib/commonjs/agenda/buildAgendaLayout.js +100 -0
  14. package/lib/commonjs/agenda/buildAgendaLayout.js.map +1 -0
  15. package/lib/commonjs/agenda/constants.js +29 -0
  16. package/lib/commonjs/agenda/constants.js.map +1 -0
  17. package/lib/commonjs/agenda/heights.js +49 -0
  18. package/lib/commonjs/agenda/heights.js.map +1 -0
  19. package/lib/commonjs/agenda/useAgendaScrollSync.js +204 -0
  20. package/lib/commonjs/agenda/useAgendaScrollSync.js.map +1 -0
  21. package/lib/commonjs/core/ArrowGlyph.js +65 -0
  22. package/lib/commonjs/core/ArrowGlyph.js.map +1 -0
  23. package/lib/commonjs/core/CalendarContext.js +32 -0
  24. package/lib/commonjs/core/CalendarContext.js.map +1 -0
  25. package/lib/commonjs/core/CalendarProvider.js +141 -0
  26. package/lib/commonjs/core/CalendarProvider.js.map +1 -0
  27. package/lib/commonjs/core/CalendarStore.js +70 -0
  28. package/lib/commonjs/core/CalendarStore.js.map +1 -0
  29. package/lib/commonjs/core/KitText.js +23 -0
  30. package/lib/commonjs/core/KitText.js.map +1 -0
  31. package/lib/commonjs/core/TodayButton.js +136 -0
  32. package/lib/commonjs/core/TodayButton.js.map +1 -0
  33. package/lib/commonjs/core/civil.js +101 -0
  34. package/lib/commonjs/core/civil.js.map +1 -0
  35. package/lib/commonjs/core/dateKey.js +56 -0
  36. package/lib/commonjs/core/dateKey.js.map +1 -0
  37. package/lib/commonjs/core/motion.js +56 -0
  38. package/lib/commonjs/core/motion.js.map +1 -0
  39. package/lib/commonjs/core/worklets.js +44 -0
  40. package/lib/commonjs/core/worklets.js.map +1 -0
  41. package/lib/commonjs/expandable/DayCell.js +120 -0
  42. package/lib/commonjs/expandable/DayCell.js.map +1 -0
  43. package/lib/commonjs/expandable/ExpandableCalendar.js +280 -0
  44. package/lib/commonjs/expandable/ExpandableCalendar.js.map +1 -0
  45. package/lib/commonjs/expandable/Knob.js +72 -0
  46. package/lib/commonjs/expandable/Knob.js.map +1 -0
  47. package/lib/commonjs/expandable/MonthPager.js +180 -0
  48. package/lib/commonjs/expandable/MonthPager.js.map +1 -0
  49. package/lib/commonjs/expandable/WeekStrip.js +451 -0
  50. package/lib/commonjs/expandable/WeekStrip.js.map +1 -0
  51. package/lib/commonjs/expandable/calendarCells.js +152 -0
  52. package/lib/commonjs/expandable/calendarCells.js.map +1 -0
  53. package/lib/commonjs/expandable/geometry.js +62 -0
  54. package/lib/commonjs/expandable/geometry.js.map +1 -0
  55. package/lib/commonjs/expandable/useExpandGesture.js +124 -0
  56. package/lib/commonjs/expandable/useExpandGesture.js.map +1 -0
  57. package/lib/commonjs/expandable/useHorizontalPager.js +97 -0
  58. package/lib/commonjs/expandable/useHorizontalPager.js.map +1 -0
  59. package/lib/commonjs/index.js +167 -0
  60. package/lib/commonjs/index.js.map +1 -0
  61. package/lib/commonjs/package.json +1 -0
  62. package/lib/commonjs/theme/ThemeProvider.js +73 -0
  63. package/lib/commonjs/theme/ThemeProvider.js.map +1 -0
  64. package/lib/commonjs/theme/index.js +75 -0
  65. package/lib/commonjs/theme/index.js.map +1 -0
  66. package/lib/commonjs/theme/theme.js +79 -0
  67. package/lib/commonjs/theme/theme.js.map +1 -0
  68. package/lib/commonjs/theme/tokens.js +54 -0
  69. package/lib/commonjs/theme/tokens.js.map +1 -0
  70. package/lib/commonjs/timeline/DayColumn.js +95 -0
  71. package/lib/commonjs/timeline/DayColumn.js.map +1 -0
  72. package/lib/commonjs/timeline/DayPager.js +250 -0
  73. package/lib/commonjs/timeline/DayPager.js.map +1 -0
  74. package/lib/commonjs/timeline/EventBlock.js +91 -0
  75. package/lib/commonjs/timeline/EventBlock.js.map +1 -0
  76. package/lib/commonjs/timeline/GridLines.js +47 -0
  77. package/lib/commonjs/timeline/GridLines.js.map +1 -0
  78. package/lib/commonjs/timeline/HourGrid.js +96 -0
  79. package/lib/commonjs/timeline/HourGrid.js.map +1 -0
  80. package/lib/commonjs/timeline/NowIndicator.js +132 -0
  81. package/lib/commonjs/timeline/NowIndicator.js.map +1 -0
  82. package/lib/commonjs/timeline/TimelineDay.js +126 -0
  83. package/lib/commonjs/timeline/TimelineDay.js.map +1 -0
  84. package/lib/commonjs/timeline/packEvents.js +102 -0
  85. package/lib/commonjs/timeline/packEvents.js.map +1 -0
  86. package/lib/commonjs/timeline/timelineGeometry.js +27 -0
  87. package/lib/commonjs/timeline/timelineGeometry.js.map +1 -0
  88. package/lib/commonjs/timeline/timelineMath.js +82 -0
  89. package/lib/commonjs/timeline/timelineMath.js.map +1 -0
  90. package/lib/commonjs/types.js +71 -0
  91. package/lib/commonjs/types.js.map +1 -0
  92. package/lib/module/agenda/AgendaBackdrop.js +63 -0
  93. package/lib/module/agenda/AgendaBackdrop.js.map +1 -0
  94. package/lib/module/agenda/AgendaList.js +349 -0
  95. package/lib/module/agenda/AgendaList.js.map +1 -0
  96. package/lib/module/agenda/AgendaSlot.js +84 -0
  97. package/lib/module/agenda/AgendaSlot.js.map +1 -0
  98. package/lib/module/agenda/AgendaWindow.js +167 -0
  99. package/lib/module/agenda/AgendaWindow.js.map +1 -0
  100. package/lib/module/agenda/StickyHeaderOverlay.js +120 -0
  101. package/lib/module/agenda/StickyHeaderOverlay.js.map +1 -0
  102. package/lib/module/agenda/buildAgendaLayout.js +95 -0
  103. package/lib/module/agenda/buildAgendaLayout.js.map +1 -0
  104. package/lib/module/agenda/constants.js +25 -0
  105. package/lib/module/agenda/constants.js.map +1 -0
  106. package/lib/module/agenda/heights.js +42 -0
  107. package/lib/module/agenda/heights.js.map +1 -0
  108. package/lib/module/agenda/useAgendaScrollSync.js +200 -0
  109. package/lib/module/agenda/useAgendaScrollSync.js.map +1 -0
  110. package/lib/module/core/ArrowGlyph.js +60 -0
  111. package/lib/module/core/ArrowGlyph.js.map +1 -0
  112. package/lib/module/core/CalendarContext.js +26 -0
  113. package/lib/module/core/CalendarContext.js.map +1 -0
  114. package/lib/module/core/CalendarProvider.js +136 -0
  115. package/lib/module/core/CalendarProvider.js.map +1 -0
  116. package/lib/module/core/CalendarStore.js +66 -0
  117. package/lib/module/core/CalendarStore.js.map +1 -0
  118. package/lib/module/core/KitText.js +19 -0
  119. package/lib/module/core/KitText.js.map +1 -0
  120. package/lib/module/core/TodayButton.js +133 -0
  121. package/lib/module/core/TodayButton.js.map +1 -0
  122. package/lib/module/core/civil.js +88 -0
  123. package/lib/module/core/civil.js.map +1 -0
  124. package/lib/module/core/dateKey.js +47 -0
  125. package/lib/module/core/dateKey.js.map +1 -0
  126. package/lib/module/core/motion.js +49 -0
  127. package/lib/module/core/motion.js.map +1 -0
  128. package/lib/module/core/worklets.js +38 -0
  129. package/lib/module/core/worklets.js.map +1 -0
  130. package/lib/module/expandable/DayCell.js +116 -0
  131. package/lib/module/expandable/DayCell.js.map +1 -0
  132. package/lib/module/expandable/ExpandableCalendar.js +275 -0
  133. package/lib/module/expandable/ExpandableCalendar.js.map +1 -0
  134. package/lib/module/expandable/Knob.js +67 -0
  135. package/lib/module/expandable/Knob.js.map +1 -0
  136. package/lib/module/expandable/MonthPager.js +175 -0
  137. package/lib/module/expandable/MonthPager.js.map +1 -0
  138. package/lib/module/expandable/WeekStrip.js +446 -0
  139. package/lib/module/expandable/WeekStrip.js.map +1 -0
  140. package/lib/module/expandable/calendarCells.js +142 -0
  141. package/lib/module/expandable/calendarCells.js.map +1 -0
  142. package/lib/module/expandable/geometry.js +58 -0
  143. package/lib/module/expandable/geometry.js.map +1 -0
  144. package/lib/module/expandable/useExpandGesture.js +118 -0
  145. package/lib/module/expandable/useExpandGesture.js.map +1 -0
  146. package/lib/module/expandable/useHorizontalPager.js +92 -0
  147. package/lib/module/expandable/useHorizontalPager.js.map +1 -0
  148. package/lib/module/index.js +35 -0
  149. package/lib/module/index.js.map +1 -0
  150. package/lib/module/package.json +1 -0
  151. package/lib/module/theme/ThemeProvider.js +65 -0
  152. package/lib/module/theme/ThemeProvider.js.map +1 -0
  153. package/lib/module/theme/index.js +6 -0
  154. package/lib/module/theme/index.js.map +1 -0
  155. package/lib/module/theme/theme.js +74 -0
  156. package/lib/module/theme/theme.js.map +1 -0
  157. package/lib/module/theme/tokens.js +50 -0
  158. package/lib/module/theme/tokens.js.map +1 -0
  159. package/lib/module/timeline/DayColumn.js +91 -0
  160. package/lib/module/timeline/DayColumn.js.map +1 -0
  161. package/lib/module/timeline/DayPager.js +245 -0
  162. package/lib/module/timeline/DayPager.js.map +1 -0
  163. package/lib/module/timeline/EventBlock.js +87 -0
  164. package/lib/module/timeline/EventBlock.js.map +1 -0
  165. package/lib/module/timeline/GridLines.js +43 -0
  166. package/lib/module/timeline/GridLines.js.map +1 -0
  167. package/lib/module/timeline/HourGrid.js +94 -0
  168. package/lib/module/timeline/HourGrid.js.map +1 -0
  169. package/lib/module/timeline/NowIndicator.js +126 -0
  170. package/lib/module/timeline/NowIndicator.js.map +1 -0
  171. package/lib/module/timeline/TimelineDay.js +122 -0
  172. package/lib/module/timeline/TimelineDay.js.map +1 -0
  173. package/lib/module/timeline/packEvents.js +97 -0
  174. package/lib/module/timeline/packEvents.js.map +1 -0
  175. package/lib/module/timeline/timelineGeometry.js +22 -0
  176. package/lib/module/timeline/timelineGeometry.js.map +1 -0
  177. package/lib/module/timeline/timelineMath.js +75 -0
  178. package/lib/module/timeline/timelineMath.js.map +1 -0
  179. package/lib/module/types.js +67 -0
  180. package/lib/module/types.js.map +1 -0
  181. package/lib/typescript/commonjs/agenda/AgendaBackdrop.d.ts +20 -0
  182. package/lib/typescript/commonjs/agenda/AgendaBackdrop.d.ts.map +1 -0
  183. package/lib/typescript/commonjs/agenda/AgendaList.d.ts +12 -0
  184. package/lib/typescript/commonjs/agenda/AgendaList.d.ts.map +1 -0
  185. package/lib/typescript/commonjs/agenda/AgendaSlot.d.ts +45 -0
  186. package/lib/typescript/commonjs/agenda/AgendaSlot.d.ts.map +1 -0
  187. package/lib/typescript/commonjs/agenda/AgendaWindow.d.ts +49 -0
  188. package/lib/typescript/commonjs/agenda/AgendaWindow.d.ts.map +1 -0
  189. package/lib/typescript/commonjs/agenda/StickyHeaderOverlay.d.ts +39 -0
  190. package/lib/typescript/commonjs/agenda/StickyHeaderOverlay.d.ts.map +1 -0
  191. package/lib/typescript/commonjs/agenda/buildAgendaLayout.d.ts +57 -0
  192. package/lib/typescript/commonjs/agenda/buildAgendaLayout.d.ts.map +1 -0
  193. package/lib/typescript/commonjs/agenda/constants.d.ts +19 -0
  194. package/lib/typescript/commonjs/agenda/constants.d.ts.map +1 -0
  195. package/lib/typescript/commonjs/agenda/heights.d.ts +20 -0
  196. package/lib/typescript/commonjs/agenda/heights.d.ts.map +1 -0
  197. package/lib/typescript/commonjs/agenda/useAgendaScrollSync.d.ts +44 -0
  198. package/lib/typescript/commonjs/agenda/useAgendaScrollSync.d.ts.map +1 -0
  199. package/lib/typescript/commonjs/core/ArrowGlyph.d.ts +14 -0
  200. package/lib/typescript/commonjs/core/ArrowGlyph.d.ts.map +1 -0
  201. package/lib/typescript/commonjs/core/CalendarContext.d.ts +35 -0
  202. package/lib/typescript/commonjs/core/CalendarContext.d.ts.map +1 -0
  203. package/lib/typescript/commonjs/core/CalendarProvider.d.ts +41 -0
  204. package/lib/typescript/commonjs/core/CalendarProvider.d.ts.map +1 -0
  205. package/lib/typescript/commonjs/core/CalendarStore.d.ts +28 -0
  206. package/lib/typescript/commonjs/core/CalendarStore.d.ts.map +1 -0
  207. package/lib/typescript/commonjs/core/KitText.d.ts +10 -0
  208. package/lib/typescript/commonjs/core/KitText.d.ts.map +1 -0
  209. package/lib/typescript/commonjs/core/TodayButton.d.ts +18 -0
  210. package/lib/typescript/commonjs/core/TodayButton.d.ts.map +1 -0
  211. package/lib/typescript/commonjs/core/civil.d.ts +26 -0
  212. package/lib/typescript/commonjs/core/civil.d.ts.map +1 -0
  213. package/lib/typescript/commonjs/core/dateKey.d.ts +21 -0
  214. package/lib/typescript/commonjs/core/dateKey.d.ts.map +1 -0
  215. package/lib/typescript/commonjs/core/motion.d.ts +18 -0
  216. package/lib/typescript/commonjs/core/motion.d.ts.map +1 -0
  217. package/lib/typescript/commonjs/core/worklets.d.ts +12 -0
  218. package/lib/typescript/commonjs/core/worklets.d.ts.map +1 -0
  219. package/lib/typescript/commonjs/expandable/DayCell.d.ts +22 -0
  220. package/lib/typescript/commonjs/expandable/DayCell.d.ts.map +1 -0
  221. package/lib/typescript/commonjs/expandable/ExpandableCalendar.d.ts +40 -0
  222. package/lib/typescript/commonjs/expandable/ExpandableCalendar.d.ts.map +1 -0
  223. package/lib/typescript/commonjs/expandable/Knob.d.ts +19 -0
  224. package/lib/typescript/commonjs/expandable/Knob.d.ts.map +1 -0
  225. package/lib/typescript/commonjs/expandable/MonthPager.d.ts +35 -0
  226. package/lib/typescript/commonjs/expandable/MonthPager.d.ts.map +1 -0
  227. package/lib/typescript/commonjs/expandable/WeekStrip.d.ts +34 -0
  228. package/lib/typescript/commonjs/expandable/WeekStrip.d.ts.map +1 -0
  229. package/lib/typescript/commonjs/expandable/calendarCells.d.ts +52 -0
  230. package/lib/typescript/commonjs/expandable/calendarCells.d.ts.map +1 -0
  231. package/lib/typescript/commonjs/expandable/geometry.d.ts +43 -0
  232. package/lib/typescript/commonjs/expandable/geometry.d.ts.map +1 -0
  233. package/lib/typescript/commonjs/expandable/useExpandGesture.d.ts +35 -0
  234. package/lib/typescript/commonjs/expandable/useExpandGesture.d.ts.map +1 -0
  235. package/lib/typescript/commonjs/expandable/useHorizontalPager.d.ts +35 -0
  236. package/lib/typescript/commonjs/expandable/useHorizontalPager.d.ts.map +1 -0
  237. package/lib/typescript/commonjs/index.d.ts +26 -0
  238. package/lib/typescript/commonjs/index.d.ts.map +1 -0
  239. package/lib/typescript/commonjs/package.json +1 -0
  240. package/lib/typescript/commonjs/theme/ThemeProvider.d.ts +27 -0
  241. package/lib/typescript/commonjs/theme/ThemeProvider.d.ts.map +1 -0
  242. package/lib/typescript/commonjs/theme/index.d.ts +4 -0
  243. package/lib/typescript/commonjs/theme/index.d.ts.map +1 -0
  244. package/lib/typescript/commonjs/theme/theme.d.ts +62 -0
  245. package/lib/typescript/commonjs/theme/theme.d.ts.map +1 -0
  246. package/lib/typescript/commonjs/theme/tokens.d.ts +46 -0
  247. package/lib/typescript/commonjs/theme/tokens.d.ts.map +1 -0
  248. package/lib/typescript/commonjs/timeline/DayColumn.d.ts +32 -0
  249. package/lib/typescript/commonjs/timeline/DayColumn.d.ts.map +1 -0
  250. package/lib/typescript/commonjs/timeline/DayPager.d.ts +32 -0
  251. package/lib/typescript/commonjs/timeline/DayPager.d.ts.map +1 -0
  252. package/lib/typescript/commonjs/timeline/EventBlock.d.ts +17 -0
  253. package/lib/typescript/commonjs/timeline/EventBlock.d.ts.map +1 -0
  254. package/lib/typescript/commonjs/timeline/GridLines.d.ts +5 -0
  255. package/lib/typescript/commonjs/timeline/GridLines.d.ts.map +1 -0
  256. package/lib/typescript/commonjs/timeline/HourGrid.d.ts +12 -0
  257. package/lib/typescript/commonjs/timeline/HourGrid.d.ts.map +1 -0
  258. package/lib/typescript/commonjs/timeline/NowIndicator.d.ts +28 -0
  259. package/lib/typescript/commonjs/timeline/NowIndicator.d.ts.map +1 -0
  260. package/lib/typescript/commonjs/timeline/TimelineDay.d.ts +14 -0
  261. package/lib/typescript/commonjs/timeline/TimelineDay.d.ts.map +1 -0
  262. package/lib/typescript/commonjs/timeline/packEvents.d.ts +25 -0
  263. package/lib/typescript/commonjs/timeline/packEvents.d.ts.map +1 -0
  264. package/lib/typescript/commonjs/timeline/timelineGeometry.d.ts +14 -0
  265. package/lib/typescript/commonjs/timeline/timelineGeometry.d.ts.map +1 -0
  266. package/lib/typescript/commonjs/timeline/timelineMath.d.ts +32 -0
  267. package/lib/typescript/commonjs/timeline/timelineMath.d.ts.map +1 -0
  268. package/lib/typescript/commonjs/types.d.ts +237 -0
  269. package/lib/typescript/commonjs/types.d.ts.map +1 -0
  270. package/lib/typescript/module/agenda/AgendaBackdrop.d.ts +20 -0
  271. package/lib/typescript/module/agenda/AgendaBackdrop.d.ts.map +1 -0
  272. package/lib/typescript/module/agenda/AgendaList.d.ts +12 -0
  273. package/lib/typescript/module/agenda/AgendaList.d.ts.map +1 -0
  274. package/lib/typescript/module/agenda/AgendaSlot.d.ts +45 -0
  275. package/lib/typescript/module/agenda/AgendaSlot.d.ts.map +1 -0
  276. package/lib/typescript/module/agenda/AgendaWindow.d.ts +49 -0
  277. package/lib/typescript/module/agenda/AgendaWindow.d.ts.map +1 -0
  278. package/lib/typescript/module/agenda/StickyHeaderOverlay.d.ts +39 -0
  279. package/lib/typescript/module/agenda/StickyHeaderOverlay.d.ts.map +1 -0
  280. package/lib/typescript/module/agenda/buildAgendaLayout.d.ts +57 -0
  281. package/lib/typescript/module/agenda/buildAgendaLayout.d.ts.map +1 -0
  282. package/lib/typescript/module/agenda/constants.d.ts +19 -0
  283. package/lib/typescript/module/agenda/constants.d.ts.map +1 -0
  284. package/lib/typescript/module/agenda/heights.d.ts +20 -0
  285. package/lib/typescript/module/agenda/heights.d.ts.map +1 -0
  286. package/lib/typescript/module/agenda/useAgendaScrollSync.d.ts +44 -0
  287. package/lib/typescript/module/agenda/useAgendaScrollSync.d.ts.map +1 -0
  288. package/lib/typescript/module/core/ArrowGlyph.d.ts +14 -0
  289. package/lib/typescript/module/core/ArrowGlyph.d.ts.map +1 -0
  290. package/lib/typescript/module/core/CalendarContext.d.ts +35 -0
  291. package/lib/typescript/module/core/CalendarContext.d.ts.map +1 -0
  292. package/lib/typescript/module/core/CalendarProvider.d.ts +41 -0
  293. package/lib/typescript/module/core/CalendarProvider.d.ts.map +1 -0
  294. package/lib/typescript/module/core/CalendarStore.d.ts +28 -0
  295. package/lib/typescript/module/core/CalendarStore.d.ts.map +1 -0
  296. package/lib/typescript/module/core/KitText.d.ts +10 -0
  297. package/lib/typescript/module/core/KitText.d.ts.map +1 -0
  298. package/lib/typescript/module/core/TodayButton.d.ts +18 -0
  299. package/lib/typescript/module/core/TodayButton.d.ts.map +1 -0
  300. package/lib/typescript/module/core/civil.d.ts +26 -0
  301. package/lib/typescript/module/core/civil.d.ts.map +1 -0
  302. package/lib/typescript/module/core/dateKey.d.ts +21 -0
  303. package/lib/typescript/module/core/dateKey.d.ts.map +1 -0
  304. package/lib/typescript/module/core/motion.d.ts +18 -0
  305. package/lib/typescript/module/core/motion.d.ts.map +1 -0
  306. package/lib/typescript/module/core/worklets.d.ts +12 -0
  307. package/lib/typescript/module/core/worklets.d.ts.map +1 -0
  308. package/lib/typescript/module/expandable/DayCell.d.ts +22 -0
  309. package/lib/typescript/module/expandable/DayCell.d.ts.map +1 -0
  310. package/lib/typescript/module/expandable/ExpandableCalendar.d.ts +40 -0
  311. package/lib/typescript/module/expandable/ExpandableCalendar.d.ts.map +1 -0
  312. package/lib/typescript/module/expandable/Knob.d.ts +19 -0
  313. package/lib/typescript/module/expandable/Knob.d.ts.map +1 -0
  314. package/lib/typescript/module/expandable/MonthPager.d.ts +35 -0
  315. package/lib/typescript/module/expandable/MonthPager.d.ts.map +1 -0
  316. package/lib/typescript/module/expandable/WeekStrip.d.ts +34 -0
  317. package/lib/typescript/module/expandable/WeekStrip.d.ts.map +1 -0
  318. package/lib/typescript/module/expandable/calendarCells.d.ts +52 -0
  319. package/lib/typescript/module/expandable/calendarCells.d.ts.map +1 -0
  320. package/lib/typescript/module/expandable/geometry.d.ts +43 -0
  321. package/lib/typescript/module/expandable/geometry.d.ts.map +1 -0
  322. package/lib/typescript/module/expandable/useExpandGesture.d.ts +35 -0
  323. package/lib/typescript/module/expandable/useExpandGesture.d.ts.map +1 -0
  324. package/lib/typescript/module/expandable/useHorizontalPager.d.ts +35 -0
  325. package/lib/typescript/module/expandable/useHorizontalPager.d.ts.map +1 -0
  326. package/lib/typescript/module/index.d.ts +26 -0
  327. package/lib/typescript/module/index.d.ts.map +1 -0
  328. package/lib/typescript/module/package.json +1 -0
  329. package/lib/typescript/module/theme/ThemeProvider.d.ts +27 -0
  330. package/lib/typescript/module/theme/ThemeProvider.d.ts.map +1 -0
  331. package/lib/typescript/module/theme/index.d.ts +4 -0
  332. package/lib/typescript/module/theme/index.d.ts.map +1 -0
  333. package/lib/typescript/module/theme/theme.d.ts +62 -0
  334. package/lib/typescript/module/theme/theme.d.ts.map +1 -0
  335. package/lib/typescript/module/theme/tokens.d.ts +46 -0
  336. package/lib/typescript/module/theme/tokens.d.ts.map +1 -0
  337. package/lib/typescript/module/timeline/DayColumn.d.ts +32 -0
  338. package/lib/typescript/module/timeline/DayColumn.d.ts.map +1 -0
  339. package/lib/typescript/module/timeline/DayPager.d.ts +32 -0
  340. package/lib/typescript/module/timeline/DayPager.d.ts.map +1 -0
  341. package/lib/typescript/module/timeline/EventBlock.d.ts +17 -0
  342. package/lib/typescript/module/timeline/EventBlock.d.ts.map +1 -0
  343. package/lib/typescript/module/timeline/GridLines.d.ts +5 -0
  344. package/lib/typescript/module/timeline/GridLines.d.ts.map +1 -0
  345. package/lib/typescript/module/timeline/HourGrid.d.ts +12 -0
  346. package/lib/typescript/module/timeline/HourGrid.d.ts.map +1 -0
  347. package/lib/typescript/module/timeline/NowIndicator.d.ts +28 -0
  348. package/lib/typescript/module/timeline/NowIndicator.d.ts.map +1 -0
  349. package/lib/typescript/module/timeline/TimelineDay.d.ts +14 -0
  350. package/lib/typescript/module/timeline/TimelineDay.d.ts.map +1 -0
  351. package/lib/typescript/module/timeline/packEvents.d.ts +25 -0
  352. package/lib/typescript/module/timeline/packEvents.d.ts.map +1 -0
  353. package/lib/typescript/module/timeline/timelineGeometry.d.ts +14 -0
  354. package/lib/typescript/module/timeline/timelineGeometry.d.ts.map +1 -0
  355. package/lib/typescript/module/timeline/timelineMath.d.ts +32 -0
  356. package/lib/typescript/module/timeline/timelineMath.d.ts.map +1 -0
  357. package/lib/typescript/module/types.d.ts +237 -0
  358. package/lib/typescript/module/types.d.ts.map +1 -0
  359. package/package.json +105 -0
  360. package/src/agenda/AgendaBackdrop.tsx +55 -0
  361. package/src/agenda/AgendaList.tsx +370 -0
  362. package/src/agenda/AgendaSlot.tsx +88 -0
  363. package/src/agenda/AgendaWindow.tsx +183 -0
  364. package/src/agenda/StickyHeaderOverlay.tsx +126 -0
  365. package/src/agenda/buildAgendaLayout.ts +110 -0
  366. package/src/agenda/constants.ts +22 -0
  367. package/src/agenda/heights.ts +44 -0
  368. package/src/agenda/useAgendaScrollSync.ts +251 -0
  369. package/src/core/ArrowGlyph.tsx +53 -0
  370. package/src/core/CalendarContext.ts +47 -0
  371. package/src/core/CalendarProvider.tsx +165 -0
  372. package/src/core/CalendarStore.ts +64 -0
  373. package/src/core/KitText.tsx +10 -0
  374. package/src/core/TodayButton.tsx +121 -0
  375. package/src/core/civil.ts +92 -0
  376. package/src/core/dateKey.ts +52 -0
  377. package/src/core/motion.ts +51 -0
  378. package/src/core/worklets.ts +37 -0
  379. package/src/expandable/DayCell.tsx +97 -0
  380. package/src/expandable/ExpandableCalendar.tsx +278 -0
  381. package/src/expandable/Knob.tsx +67 -0
  382. package/src/expandable/MonthPager.tsx +208 -0
  383. package/src/expandable/WeekStrip.tsx +439 -0
  384. package/src/expandable/calendarCells.ts +155 -0
  385. package/src/expandable/geometry.ts +51 -0
  386. package/src/expandable/useExpandGesture.ts +147 -0
  387. package/src/expandable/useHorizontalPager.ts +116 -0
  388. package/src/index.ts +62 -0
  389. package/src/theme/ThemeProvider.tsx +85 -0
  390. package/src/theme/index.ts +18 -0
  391. package/src/theme/theme.ts +110 -0
  392. package/src/theme/tokens.ts +50 -0
  393. package/src/timeline/DayColumn.tsx +84 -0
  394. package/src/timeline/DayPager.tsx +295 -0
  395. package/src/timeline/EventBlock.tsx +76 -0
  396. package/src/timeline/GridLines.tsx +36 -0
  397. package/src/timeline/HourGrid.tsx +90 -0
  398. package/src/timeline/NowIndicator.tsx +123 -0
  399. package/src/timeline/TimelineDay.tsx +112 -0
  400. package/src/timeline/packEvents.ts +118 -0
  401. package/src/timeline/timelineGeometry.ts +23 -0
  402. package/src/timeline/timelineMath.ts +86 -0
  403. package/src/types.ts +252 -0
@@ -0,0 +1,349 @@
1
+ "use strict";
2
+
3
+ /**
4
+ * The agenda: one `Animated.ScrollView`, absolute slots over a declared layout,
5
+ * a skeleton backdrop behind it and the stuck header over it.
6
+ *
7
+ * Compat with the react-native-calendars screen's `AgendaList` JSX, plus two things the library
8
+ * only pretended to do: real sticky headers and real pull-to-refresh.
9
+ */
10
+
11
+ import { memo, useCallback, useImperativeHandle, useLayoutEffect, useMemo, useRef, useState } from 'react';
12
+ import { RefreshControl, StyleSheet, View } from 'react-native';
13
+ import Animated, { scrollTo, useAnimatedReaction, useAnimatedRef, useSharedValue } from 'react-native-reanimated';
14
+ import { runOnJS, scheduleOnUI } from 'react-native-worklets';
15
+ import { useKitTheme } from "../theme/index.js";
16
+ import { useCalendarContext } from "../core/CalendarContext.js";
17
+ import { clampIndex, dayIndexOf } from "../core/dateKey.js";
18
+ import { bsearchLE } from "../core/worklets.js";
19
+ import { AgendaBackdrop } from "./AgendaBackdrop.js";
20
+ import { AgendaWindow } from "./AgendaWindow.js";
21
+ import { buildAgendaLayout } from "./buildAgendaLayout.js";
22
+ import { BUCKET_REST } from "./constants.js";
23
+ import { StickyHeaderOverlay } from "./StickyHeaderOverlay.js";
24
+ import { useAgendaScrollSync } from "./useAgendaScrollSync.js";
25
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
26
+ const MY_ORIGIN = 'agenda';
27
+ const EMPTY_TABLES = {
28
+ offsets: [],
29
+ sectionOffset: [],
30
+ sectionStart: [],
31
+ monthOfSection: []
32
+ };
33
+ const defaultGetItemType = item => item?.itemCustomHeightType ?? 'Regular';
34
+ const defaultKeyExtractor = (item, index) => item?.id ?? `row-${index}`;
35
+
36
+ /** Every scroll this list issues goes through here; see `programmaticY` in the sync. */
37
+ const scrollListTo = (ref, programmaticY, moving, y, animated) => {
38
+ 'worklet';
39
+
40
+ moving.value = 0;
41
+ programmaticY.value = animated ? y : -1;
42
+ scrollTo(ref, 0, y, animated);
43
+ };
44
+ const AgendaListInner = ({
45
+ sections,
46
+ renderItem,
47
+ renderSectionHeader,
48
+ itemHeightByType,
49
+ sectionHeaderHeight = 32,
50
+ getItemType = defaultGetItemType,
51
+ keyExtractor = defaultKeyExtractor,
52
+ stickySectionHeadersEnabled = false,
53
+ refreshing = false,
54
+ onRefresh,
55
+ decelerationRate = 0.985,
56
+ backdrop,
57
+ rowGroundColor,
58
+ ref,
59
+ onDragBegin,
60
+ onSettle
61
+ }) => {
62
+ const {
63
+ colors
64
+ } = useKitTheme();
65
+ const {
66
+ range,
67
+ store,
68
+ dateRef,
69
+ setDate,
70
+ commitDate,
71
+ reduceMotion
72
+ } = useCalendarContext();
73
+ const listRef = useAnimatedRef();
74
+ const headerIntern = useRef(new Map());
75
+ const heightForType = useCallback(type => itemHeightByType[type] ?? itemHeightByType.Regular ?? 0, [itemHeightByType]);
76
+ const layout = useMemo(() => buildAgendaLayout({
77
+ sections,
78
+ sectionHeaderHeight,
79
+ heightForType,
80
+ getItemType,
81
+ keyExtractor,
82
+ headerIntern: headerIntern.current
83
+ }), [sections, sectionHeaderHeight, heightForType, getItemType, keyExtractor]);
84
+ const layoutRef = useRef(layout);
85
+ layoutRef.current = layout;
86
+ const tablesSV = useSharedValue(EMPTY_TABLES);
87
+ const viewportSV = useSharedValue(0);
88
+
89
+ // Mount at the committed day with zero scroll: `contentOffset` is honoured on
90
+ // the first frame (M0), and the first window already holds its rows.
91
+ const [initialSection] = useState(() => clampIndex(range, dayIndexOf(range, dateRef.current)));
92
+ const [initialOffset] = useState(() => layout.sectionOffset[initialSection] ?? 0);
93
+ const [contentOffset] = useState(() => ({
94
+ x: 0,
95
+ y: initialOffset
96
+ }));
97
+ const [windowRange, setWindowRange] = useState(() => {
98
+ const row = layout.sectionStart[initialSection] ?? 0;
99
+ return {
100
+ first: Math.max(0, row - BUCKET_REST),
101
+ last: row + 4 * BUCKET_REST
102
+ };
103
+ });
104
+ const [fastMotion, setFastMotion] = useState(false);
105
+
106
+ /**
107
+ * A long programmatic move lands on rows that are not mounted. The destination
108
+ * slice mounts first, beside the current rows; the jump happens once it exists
109
+ * and the slice is released by the next window update. No skeleton frames.
110
+ */
111
+ const [jumpRange, setJumpRange] = useState(null);
112
+ const pendingJumpY = useRef(null);
113
+ const releaseJump = useRef(false);
114
+ const onWindowChange = useCallback((first, last) => {
115
+ setWindowRange(was => was.first === first && was.last === last ? was : {
116
+ first,
117
+ last
118
+ });
119
+ if (releaseJump.current) {
120
+ releaseJump.current = false;
121
+ setJumpRange(null);
122
+ }
123
+ }, []);
124
+ const onCommitDate = useCallback(idx => commitDate(idx, 'listDrag', MY_ORIGIN), [commitDate]);
125
+ const {
126
+ scrollY,
127
+ currentSection,
128
+ moving,
129
+ fast,
130
+ programmaticY,
131
+ windowFirst,
132
+ windowLast,
133
+ scrollHandler,
134
+ applyOffset
135
+ } = useAgendaScrollSync({
136
+ tablesSV,
137
+ viewportSV,
138
+ headerHeight: sectionHeaderHeight,
139
+ dayIndex: store.dayIndex,
140
+ listDragSeq: store.listDragSeq,
141
+ onWindowChange,
142
+ onCommitDate,
143
+ onFastChange: setFastMotion,
144
+ onDragBegin,
145
+ onSettle
146
+ });
147
+
148
+ /**
149
+ * Publish the tables; if the content changed under a laid-out list, keep the
150
+ * doctor's day in place — the current section plus how far into it we were —
151
+ * in the same commit that resizes the content.
152
+ *
153
+ * The anchor is computed ON the UI thread, which owns `scrollY` and
154
+ * `currentSection`: read from JS they can predate a queued re-anchor or
155
+ * `onLayout`'s seeding, and a rebuild landing in that gap kept the wrong offset.
156
+ */
157
+ const prevSectionOffset = useRef(null);
158
+ useLayoutEffect(() => {
159
+ const prev = prevSectionOffset.current;
160
+ const next = layout.sectionOffset;
161
+ prevSectionOffset.current = next;
162
+ tablesSV.value = {
163
+ offsets: layout.offsets,
164
+ sectionOffset: layout.sectionOffset,
165
+ sectionStart: layout.sectionStart,
166
+ monthOfSection: layout.monthOfSection
167
+ };
168
+ if (prev === null || prev.length === next.length && prev.every((v, i) => v === next[i])) return;
169
+ scheduleOnUI(() => {
170
+ 'worklet';
171
+
172
+ // No viewport yet means no position to keep: `onLayout` anchors on the day.
173
+ if (viewportSV.value === 0) return;
174
+ const s = currentSection.value;
175
+ const from = prev[s];
176
+ const to = next[s];
177
+ if (from === undefined || to === undefined) return;
178
+ const y = to + (scrollY.value - from);
179
+ if (Math.abs(y - scrollY.value) <= 1) return;
180
+ scrollListTo(listRef, programmaticY, moving, y, false);
181
+ // Owned now: the next rebuild may be queued before this scroll's event arrives.
182
+ scrollY.value = y;
183
+ });
184
+ }, [currentSection, layout, listRef, moving, programmaticY, scrollY, tablesSV, viewportSV]);
185
+ const prepareJump = useCallback(y => {
186
+ const H = viewportSV.value || 800;
187
+ const {
188
+ offsets,
189
+ rows
190
+ } = layoutRef.current;
191
+ pendingJumpY.current = y;
192
+ setJumpRange({
193
+ first: bsearchLE(offsets, y - 0.5 * H) & -BUCKET_REST,
194
+ last: Math.min(rows.length - 1, bsearchLE(offsets, y + 2 * H) | BUCKET_REST - 1)
195
+ });
196
+ }, [viewportSV]);
197
+
198
+ // Moves from other surfaces. Our own are ignored: that is the echo-proofing.
199
+ useAnimatedReaction(() => store.move.value, (m, prev) => {
200
+ if (!prev || m.seq === prev.seq || m.origin === MY_ORIGIN || viewportSV.value === 0) return;
201
+ const {
202
+ offsets,
203
+ sectionOffset
204
+ } = tablesSV.value;
205
+ const y = sectionOffset[m.idx];
206
+ if (y === undefined) return;
207
+ const top = offsets[windowFirst.value] ?? 0;
208
+ const bottom = offsets[windowLast.value + 1] ?? offsets[offsets.length - 1] ?? 0;
209
+ if (y >= top && y + viewportSV.value <= bottom) scrollListTo(listRef, programmaticY, moving, y, m.animated);else runOnJS(prepareJump)(y);
210
+ }, [prepareJump]);
211
+ useLayoutEffect(() => {
212
+ const y = pendingJumpY.current;
213
+ if (jumpRange === null || y === null) return;
214
+ pendingJumpY.current = null;
215
+ releaseJump.current = true;
216
+ scheduleOnUI(() => {
217
+ 'worklet';
218
+
219
+ scrollListTo(listRef, programmaticY, moving, y, false);
220
+ });
221
+ }, [jumpRange, listRef, moving, programmaticY]);
222
+ const scrollToY = useCallback((y, animated) => {
223
+ const anim = animated && !reduceMotion;
224
+ scheduleOnUI(() => {
225
+ 'worklet';
226
+
227
+ if (viewportSV.value > 0) scrollListTo(listRef, programmaticY, moving, y, anim);
228
+ });
229
+ }, [listRef, moving, programmaticY, reduceMotion, viewportSV]);
230
+ useImperativeHandle(ref, () => ({
231
+ // Dates outside the window are dropped by design: the section list is a
232
+ // pure function of the window and must not grow.
233
+ scrollToDate: (date, animated = true) => {
234
+ const idx = layout.sectionByTitle.get(date);
235
+ if (idx === undefined) return;
236
+ setDate(date, 'propUpdate', MY_ORIGIN, animated);
237
+ scrollToY(layout.sectionOffset[idx], animated);
238
+ },
239
+ scrollToSection: (title, animated = true) => {
240
+ const idx = layout.sectionByTitle.get(title);
241
+ if (idx !== undefined) scrollToY(layout.sectionOffset[idx], animated);
242
+ },
243
+ scrollToOffset: ({
244
+ offset,
245
+ animated = true
246
+ }) => scrollToY(offset, animated)
247
+ }), [layout, scrollToY, setDate]);
248
+ const laidOut = useRef(false);
249
+ const onLayout = useCallback(e => {
250
+ viewportSV.value = e.nativeEvent.layout.height;
251
+ if (laidOut.current) return;
252
+ laidOut.current = true;
253
+ const fallback = initialOffset;
254
+ scheduleOnUI(() => {
255
+ 'worklet';
256
+
257
+ // Anchor on the committed DAY in the tables as they are now, not on the
258
+ // first render's pixel offset: rows that change between mount and first
259
+ // layout (shimmer → data) move that day, and the re-anchor above cannot
260
+ // act without a viewport. The list opened on the right pixel of the wrong
261
+ // day — 238 px early on the fixture (2026-09-11). Also covers a device
262
+ // that ignores `contentOffset` on mount.
263
+ const target = tablesSV.value.sectionOffset[store.dayIndex.value] ?? fallback;
264
+ if (Math.abs(scrollY.value - target) > 1) scrollListTo(listRef, programmaticY, moving, target, false);
265
+ // No scroll event follows when the native offset already matches.
266
+ scrollY.value = target;
267
+ applyOffset(target, 0);
268
+ });
269
+ }, [applyOffset, initialOffset, listRef, moving, programmaticY, scrollY, store, tablesSV, viewportSV]);
270
+ const refreshControl = useMemo(() => onRefresh ? /*#__PURE__*/_jsx(RefreshControl, {
271
+ refreshing: refreshing,
272
+ onRefresh: onRefresh,
273
+ tintColor: colors.accent,
274
+ colors: [colors.accent],
275
+ progressBackgroundColor: colors.surface
276
+ }) : undefined, [colors.accent, colors.surface, onRefresh, refreshing]);
277
+ const contentStyle = useMemo(() => ({
278
+ height: layout.totalHeight
279
+ }), [layout.totalHeight]);
280
+ const sticky = useMemo(() => ({
281
+ scrollY,
282
+ currentSection,
283
+ fast,
284
+ tablesSV
285
+ }), [currentSection, fast, scrollY, tablesSV]);
286
+ const titleAt = useCallback(s => {
287
+ const {
288
+ rows,
289
+ sectionStart
290
+ } = layoutRef.current;
291
+ const row = rows[sectionStart[s]];
292
+ return row?.kind === 'header' ? row.title : undefined;
293
+ }, []);
294
+ return /*#__PURE__*/_jsxs(View, {
295
+ style: styles.host,
296
+ children: [backdrop ? /*#__PURE__*/_jsx(AgendaBackdrop, {
297
+ scrollY: scrollY,
298
+ tileHeight: backdrop.tileHeight,
299
+ renderTile: backdrop.renderTile
300
+ }) : null, /*#__PURE__*/_jsx(Animated.ScrollView, {
301
+ ref: listRef,
302
+ onLayout: onLayout,
303
+ onScroll: scrollHandler,
304
+ scrollEventThrottle: 16,
305
+ contentOffset: contentOffset,
306
+ decelerationRate: decelerationRate,
307
+ refreshControl: refreshControl,
308
+ removeClippedSubviews: true,
309
+ children: /*#__PURE__*/_jsx(View, {
310
+ style: contentStyle,
311
+ children: /*#__PURE__*/_jsx(AgendaWindow, {
312
+ layout: layout,
313
+ first: windowRange.first,
314
+ last: windowRange.last,
315
+ extraFirst: jumpRange?.first,
316
+ extraLast: jumpRange?.last,
317
+ renderItem: renderItem,
318
+ renderSectionHeader: renderSectionHeader,
319
+ sections: sections,
320
+ getItemType: getItemType,
321
+ fastMotion: fastMotion,
322
+ deferRows: backdrop !== undefined,
323
+ groundColor: rowGroundColor,
324
+ scrollY: scrollY,
325
+ viewportSV: viewportSV
326
+ })
327
+ })
328
+ }), stickySectionHeadersEnabled ? /*#__PURE__*/_jsx(StickyHeaderOverlay, {
329
+ initialSection: initialSection,
330
+ sectionCount: sections.length,
331
+ titleAt: titleAt,
332
+ height: sectionHeaderHeight,
333
+ sticky: sticky,
334
+ renderSectionHeader: renderSectionHeader
335
+ }) : null]
336
+ });
337
+ };
338
+ export const AgendaList = /*#__PURE__*/memo(AgendaListInner);
339
+ const styles = StyleSheet.create({
340
+ // Clips at the list's own top edge. The sticky overlay's push-up translates its
341
+ // host — clip and all — out of the list, and the calendar sits right above: an
342
+ // unclipped host drew the outgoing header over the calendar's knob at every day
343
+ // crossing, so the knob and its gap flickered (2026-09-11).
344
+ host: {
345
+ flex: 1,
346
+ overflow: 'hidden'
347
+ }
348
+ });
349
+ //# sourceMappingURL=AgendaList.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["memo","useCallback","useImperativeHandle","useLayoutEffect","useMemo","useRef","useState","RefreshControl","StyleSheet","View","Animated","scrollTo","useAnimatedReaction","useAnimatedRef","useSharedValue","runOnJS","scheduleOnUI","useKitTheme","useCalendarContext","clampIndex","dayIndexOf","bsearchLE","AgendaBackdrop","AgendaWindow","buildAgendaLayout","BUCKET_REST","StickyHeaderOverlay","useAgendaScrollSync","jsx","_jsx","jsxs","_jsxs","MY_ORIGIN","EMPTY_TABLES","offsets","sectionOffset","sectionStart","monthOfSection","defaultGetItemType","item","itemCustomHeightType","defaultKeyExtractor","index","id","scrollListTo","ref","programmaticY","moving","y","animated","value","AgendaListInner","sections","renderItem","renderSectionHeader","itemHeightByType","sectionHeaderHeight","getItemType","keyExtractor","stickySectionHeadersEnabled","refreshing","onRefresh","decelerationRate","backdrop","rowGroundColor","onDragBegin","onSettle","colors","range","store","dateRef","setDate","commitDate","reduceMotion","listRef","headerIntern","Map","heightForType","type","Regular","layout","current","layoutRef","tablesSV","viewportSV","initialSection","initialOffset","contentOffset","x","windowRange","setWindowRange","row","first","Math","max","last","fastMotion","setFastMotion","jumpRange","setJumpRange","pendingJumpY","releaseJump","onWindowChange","was","onCommitDate","idx","scrollY","currentSection","fast","windowFirst","windowLast","scrollHandler","applyOffset","headerHeight","dayIndex","listDragSeq","onFastChange","prevSectionOffset","prev","next","length","every","v","i","s","from","to","undefined","abs","prepareJump","H","rows","min","move","m","seq","origin","top","bottom","scrollToY","anim","scrollToDate","date","sectionByTitle","get","scrollToSection","title","scrollToOffset","offset","laidOut","onLayout","e","nativeEvent","height","fallback","target","refreshControl","tintColor","accent","progressBackgroundColor","surface","contentStyle","totalHeight","sticky","titleAt","kind","style","styles","host","children","tileHeight","renderTile","ScrollView","onScroll","scrollEventThrottle","removeClippedSubviews","extraFirst","extraLast","deferRows","groundColor","sectionCount","AgendaList","create","flex","overflow"],"sourceRoot":"../../../src","sources":["agenda/AgendaList.tsx"],"mappings":";;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,SACEA,IAAI,EACJC,WAAW,EACXC,mBAAmB,EACnBC,eAAe,EACfC,OAAO,EACPC,MAAM,EACNC,QAAQ,QACH,OAAO;AACd,SAASC,cAAc,EAAEC,UAAU,EAAEC,IAAI,QAAgC,cAAc;AACvF,OAAOC,QAAQ,IACbC,QAAQ,EACRC,mBAAmB,EACnBC,cAAc,EACdC,cAAc,QAGT,yBAAyB;AAChC,SAASC,OAAO,EAAEC,YAAY,QAAQ,uBAAuB;AAC7D,SAASC,WAAW,QAAQ,mBAAU;AACtC,SAASC,kBAAkB,QAAQ,4BAAyB;AAC5D,SAASC,UAAU,EAAEC,UAAU,QAAQ,oBAAiB;AACxD,SAASC,SAAS,QAAQ,qBAAkB;AAE5C,SAASC,cAAc,QAAQ,qBAAkB;AACjD,SAASC,YAAY,QAAQ,mBAAgB;AAC7C,SAASC,iBAAiB,QAA2B,wBAAqB;AAC1E,SAASC,WAAW,QAAQ,gBAAa;AACzC,SAASC,mBAAmB,QAA2B,0BAAuB;AAC9E,SAASC,mBAAmB,QAA2B,0BAAuB;AAAC,SAAAC,GAAA,IAAAC,IAAA,EAAAC,IAAA,IAAAC,KAAA;AAE/E,MAAMC,SAAqB,GAAG,QAAQ;AACtC,MAAMC,YAA0B,GAAG;EAAEC,OAAO,EAAE,EAAE;EAAEC,aAAa,EAAE,EAAE;EAAEC,YAAY,EAAE,EAAE;EAAEC,cAAc,EAAE;AAAG,CAAC;AAE3G,MAAMC,kBAAkB,GAAIC,IAAa,IACtCA,IAAI,EAAwCC,oBAAoB,IAAI,SAAS;AAEhF,MAAMC,mBAAmB,GAAGA,CAACF,IAAa,EAAEG,KAAa,KACtDH,IAAI,EAAsBI,EAAE,IAAI,OAAOD,KAAK,EAAE;;AAEjD;AACA,MAAME,YAAY,GAAGA,CACnBC,GAAqC,EACrCC,aAAkC,EAClCC,MAA2B,EAC3BC,CAAS,EACTC,QAAiB,KACd;EACH,SAAS;;EACTF,MAAM,CAACG,KAAK,GAAG,CAAC;EAChBJ,aAAa,CAACI,KAAK,GAAGD,QAAQ,GAAGD,CAAC,GAAG,CAAC,CAAC;EACvCrC,QAAQ,CAACkC,GAAG,EAAE,CAAC,EAAEG,CAAC,EAAEC,QAAQ,CAAC;AAC/B,CAAC;AAGD,MAAME,eAAe,GAAGA,CAAK;EAC3BC,QAAQ;EACRC,UAAU;EACVC,mBAAmB;EACnBC,gBAAgB;EAChBC,mBAAmB,GAAG,EAAE;EACxBC,WAAW,GAAGnB,kBAAkB;EAChCoB,YAAY,GAAGjB,mBAAmB;EAClCkB,2BAA2B,GAAG,KAAK;EACnCC,UAAU,GAAG,KAAK;EAClBC,SAAS;EACTC,gBAAgB,GAAG,KAAK;EACxBC,QAAQ;EACRC,cAAc;EACdnB,GAAG;EACHoB,WAAW;EACXC;AACkB,CAAC,KAAK;EACxB,MAAM;IAAEC;EAAO,CAAC,GAAGlD,WAAW,CAAC,CAAC;EAChC,MAAM;IAAEmD,KAAK;IAAEC,KAAK;IAAEC,OAAO;IAAEC,OAAO;IAAEC,UAAU;IAAEC;EAAa,CAAC,GAAGvD,kBAAkB,CAAC,CAAC;EACzF,MAAMwD,OAAO,GAAG7D,cAAc,CAAsB,CAAC;EAErD,MAAM8D,YAAY,GAAGtE,MAAM,CAAC,IAAIuE,GAAG,CAA2D,CAAC,CAAC;EAChG,MAAMC,aAAa,GAAG5E,WAAW,CAC9B6E,IAAY,IAAKvB,gBAAgB,CAACuB,IAAI,CAAC,IAAIvB,gBAAgB,CAACwB,OAAO,IAAI,CAAC,EACzE,CAACxB,gBAAgB,CACnB,CAAC;EACD,MAAMyB,MAAM,GAAG5E,OAAO,CACpB,MACEoB,iBAAiB,CAAI;IACnB4B,QAAQ;IACRI,mBAAmB;IACnBqB,aAAa;IACbpB,WAAW;IACXC,YAAY;IACZiB,YAAY,EAAEA,YAAY,CAACM;EAC7B,CAAC,CAAC,EACJ,CAAC7B,QAAQ,EAAEI,mBAAmB,EAAEqB,aAAa,EAAEpB,WAAW,EAAEC,YAAY,CAC1E,CAAC;EACD,MAAMwB,SAAS,GAAG7E,MAAM,CAAC2E,MAAM,CAAC;EAChCE,SAAS,CAACD,OAAO,GAAGD,MAAM;EAE1B,MAAMG,QAAQ,GAAGrE,cAAc,CAAemB,YAAY,CAAC;EAC3D,MAAMmD,UAAU,GAAGtE,cAAc,CAAC,CAAC,CAAC;;EAEpC;EACA;EACA,MAAM,CAACuE,cAAc,CAAC,GAAG/E,QAAQ,CAAC,MAAMa,UAAU,CAACiD,KAAK,EAAEhD,UAAU,CAACgD,KAAK,EAAEE,OAAO,CAACW,OAAO,CAAC,CAAC,CAAC;EAC9F,MAAM,CAACK,aAAa,CAAC,GAAGhF,QAAQ,CAAC,MAAM0E,MAAM,CAAC7C,aAAa,CAACkD,cAAc,CAAC,IAAI,CAAC,CAAC;EACjF,MAAM,CAACE,aAAa,CAAC,GAAGjF,QAAQ,CAAC,OAAO;IAAEkF,CAAC,EAAE,CAAC;IAAExC,CAAC,EAAEsC;EAAc,CAAC,CAAC,CAAC;EACpE,MAAM,CAACG,WAAW,EAAEC,cAAc,CAAC,GAAGpF,QAAQ,CAAQ,MAAM;IAC1D,MAAMqF,GAAG,GAAGX,MAAM,CAAC5C,YAAY,CAACiD,cAAc,CAAC,IAAI,CAAC;IACpD,OAAO;MAAEO,KAAK,EAAEC,IAAI,CAACC,GAAG,CAAC,CAAC,EAAEH,GAAG,GAAGlE,WAAW,CAAC;MAAEsE,IAAI,EAAEJ,GAAG,GAAG,CAAC,GAAGlE;IAAY,CAAC;EAC/E,CAAC,CAAC;EACF,MAAM,CAACuE,UAAU,EAAEC,aAAa,CAAC,GAAG3F,QAAQ,CAAC,KAAK,CAAC;;EAEnD;AACF;AACA;AACA;AACA;EACE,MAAM,CAAC4F,SAAS,EAAEC,YAAY,CAAC,GAAG7F,QAAQ,CAAe,IAAI,CAAC;EAC9D,MAAM8F,YAAY,GAAG/F,MAAM,CAAgB,IAAI,CAAC;EAChD,MAAMgG,WAAW,GAAGhG,MAAM,CAAC,KAAK,CAAC;EAEjC,MAAMiG,cAAc,GAAGrG,WAAW,CAAC,CAAC2F,KAAa,EAAEG,IAAY,KAAK;IAClEL,cAAc,CAAEa,GAAG,IAAMA,GAAG,CAACX,KAAK,KAAKA,KAAK,IAAIW,GAAG,CAACR,IAAI,KAAKA,IAAI,GAAGQ,GAAG,GAAG;MAAEX,KAAK;MAAEG;IAAK,CAAE,CAAC;IAC3F,IAAIM,WAAW,CAACpB,OAAO,EAAE;MACvBoB,WAAW,CAACpB,OAAO,GAAG,KAAK;MAC3BkB,YAAY,CAAC,IAAI,CAAC;IACpB;EACF,CAAC,EAAE,EAAE,CAAC;EAEN,MAAMK,YAAY,GAAGvG,WAAW,CAC7BwG,GAAW,IAAKjC,UAAU,CAACiC,GAAG,EAAE,UAAU,EAAEzE,SAAS,CAAC,EACvD,CAACwC,UAAU,CACb,CAAC;EAED,MAAM;IAAEkC,OAAO;IAAEC,cAAc;IAAE5D,MAAM;IAAE6D,IAAI;IAAE9D,aAAa;IAAE+D,WAAW;IAAEC,UAAU;IAAEC,aAAa;IAAEC;EAAY,CAAC,GACjHrF,mBAAmB,CAAC;IAClBwD,QAAQ;IACRC,UAAU;IACV6B,YAAY,EAAEzD,mBAAmB;IACjC0D,QAAQ,EAAE7C,KAAK,CAAC6C,QAAQ;IACxBC,WAAW,EAAE9C,KAAK,CAAC8C,WAAW;IAC9Bb,cAAc;IACdE,YAAY;IACZY,YAAY,EAAEnB,aAAa;IAC3BhC,WAAW;IACXC;EACF,CAAC,CAAC;;EAEJ;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;EACE,MAAMmD,iBAAiB,GAAGhH,MAAM,CAA2B,IAAI,CAAC;EAChEF,eAAe,CAAC,MAAM;IACpB,MAAMmH,IAAI,GAAGD,iBAAiB,CAACpC,OAAO;IACtC,MAAMsC,IAAI,GAAGvC,MAAM,CAAC7C,aAAa;IACjCkF,iBAAiB,CAACpC,OAAO,GAAGsC,IAAI;IAChCpC,QAAQ,CAACjC,KAAK,GAAG;MACfhB,OAAO,EAAE8C,MAAM,CAAC9C,OAAO;MACvBC,aAAa,EAAE6C,MAAM,CAAC7C,aAAa;MACnCC,YAAY,EAAE4C,MAAM,CAAC5C,YAAY;MACjCC,cAAc,EAAE2C,MAAM,CAAC3C;IACzB,CAAC;IACD,IAAIiF,IAAI,KAAK,IAAI,IAAKA,IAAI,CAACE,MAAM,KAAKD,IAAI,CAACC,MAAM,IAAIF,IAAI,CAACG,KAAK,CAAC,CAACC,CAAC,EAAEC,CAAC,KAAKD,CAAC,KAAKH,IAAI,CAACI,CAAC,CAAC,CAAE,EAAE;IAC3F3G,YAAY,CAAC,MAAM;MACjB,SAAS;;MACT;MACA,IAAIoE,UAAU,CAAClC,KAAK,KAAK,CAAC,EAAE;MAC5B,MAAM0E,CAAC,GAAGjB,cAAc,CAACzD,KAAK;MAC9B,MAAM2E,IAAI,GAAGP,IAAI,CAACM,CAAC,CAAC;MACpB,MAAME,EAAE,GAAGP,IAAI,CAACK,CAAC,CAAC;MAClB,IAAIC,IAAI,KAAKE,SAAS,IAAID,EAAE,KAAKC,SAAS,EAAE;MAC5C,MAAM/E,CAAC,GAAG8E,EAAE,IAAIpB,OAAO,CAACxD,KAAK,GAAG2E,IAAI,CAAC;MACrC,IAAIhC,IAAI,CAACmC,GAAG,CAAChF,CAAC,GAAG0D,OAAO,CAACxD,KAAK,CAAC,IAAI,CAAC,EAAE;MACtCN,YAAY,CAAC8B,OAAO,EAAE5B,aAAa,EAAEC,MAAM,EAAEC,CAAC,EAAE,KAAK,CAAC;MACtD;MACA0D,OAAO,CAACxD,KAAK,GAAGF,CAAC;IACnB,CAAC,CAAC;EACJ,CAAC,EAAE,CAAC2D,cAAc,EAAE3B,MAAM,EAAEN,OAAO,EAAE3B,MAAM,EAAED,aAAa,EAAE4D,OAAO,EAAEvB,QAAQ,EAAEC,UAAU,CAAC,CAAC;EAE3F,MAAM6C,WAAW,GAAGhI,WAAW,CAC5B+C,CAAS,IAAK;IACb,MAAMkF,CAAC,GAAG9C,UAAU,CAAClC,KAAK,IAAI,GAAG;IACjC,MAAM;MAAEhB,OAAO;MAAEiG;IAAK,CAAC,GAAGjD,SAAS,CAACD,OAAO;IAC3CmB,YAAY,CAACnB,OAAO,GAAGjC,CAAC;IACxBmD,YAAY,CAAC;MACXP,KAAK,EAAEvE,SAAS,CAACa,OAAO,EAAEc,CAAC,GAAG,GAAG,GAAGkF,CAAC,CAAC,GAAG,CAACzG,WAAW;MACrDsE,IAAI,EAAEF,IAAI,CAACuC,GAAG,CAACD,IAAI,CAACX,MAAM,GAAG,CAAC,EAAEnG,SAAS,CAACa,OAAO,EAAEc,CAAC,GAAG,CAAC,GAAGkF,CAAC,CAAC,GAAIzG,WAAW,GAAG,CAAE;IACnF,CAAC,CAAC;EACJ,CAAC,EACD,CAAC2D,UAAU,CACb,CAAC;;EAED;EACAxE,mBAAmB,CACjB,MAAMyD,KAAK,CAACgE,IAAI,CAACnF,KAAK,EACtB,CAACoF,CAAC,EAAEhB,IAAI,KAAK;IACX,IAAI,CAACA,IAAI,IAAIgB,CAAC,CAACC,GAAG,KAAKjB,IAAI,CAACiB,GAAG,IAAID,CAAC,CAACE,MAAM,KAAKxG,SAAS,IAAIoD,UAAU,CAAClC,KAAK,KAAK,CAAC,EAAE;IACrF,MAAM;MAAEhB,OAAO;MAAEC;IAAc,CAAC,GAAGgD,QAAQ,CAACjC,KAAK;IACjD,MAAMF,CAAC,GAAGb,aAAa,CAACmG,CAAC,CAAC7B,GAAG,CAAC;IAC9B,IAAIzD,CAAC,KAAK+E,SAAS,EAAE;IACrB,MAAMU,GAAG,GAAGvG,OAAO,CAAC2E,WAAW,CAAC3D,KAAK,CAAC,IAAI,CAAC;IAC3C,MAAMwF,MAAM,GAAGxG,OAAO,CAAC4E,UAAU,CAAC5D,KAAK,GAAG,CAAC,CAAC,IAAIhB,OAAO,CAACA,OAAO,CAACsF,MAAM,GAAG,CAAC,CAAC,IAAI,CAAC;IAChF,IAAIxE,CAAC,IAAIyF,GAAG,IAAIzF,CAAC,GAAGoC,UAAU,CAAClC,KAAK,IAAIwF,MAAM,EAAE9F,YAAY,CAAC8B,OAAO,EAAE5B,aAAa,EAAEC,MAAM,EAAEC,CAAC,EAAEsF,CAAC,CAACrF,QAAQ,CAAC,CAAC,KACvGlC,OAAO,CAACkH,WAAW,CAAC,CAACjF,CAAC,CAAC;EAC9B,CAAC,EACD,CAACiF,WAAW,CACd,CAAC;EAED9H,eAAe,CAAC,MAAM;IACpB,MAAM6C,CAAC,GAAGoD,YAAY,CAACnB,OAAO;IAC9B,IAAIiB,SAAS,KAAK,IAAI,IAAIlD,CAAC,KAAK,IAAI,EAAE;IACtCoD,YAAY,CAACnB,OAAO,GAAG,IAAI;IAC3BoB,WAAW,CAACpB,OAAO,GAAG,IAAI;IAC1BjE,YAAY,CAAC,MAAM;MACjB,SAAS;;MACT4B,YAAY,CAAC8B,OAAO,EAAE5B,aAAa,EAAEC,MAAM,EAAEC,CAAC,EAAE,KAAK,CAAC;IACxD,CAAC,CAAC;EACJ,CAAC,EAAE,CAACkD,SAAS,EAAExB,OAAO,EAAE3B,MAAM,EAAED,aAAa,CAAC,CAAC;EAE/C,MAAM6F,SAAS,GAAG1I,WAAW,CAC3B,CAAC+C,CAAS,EAAEC,QAAiB,KAAK;IAChC,MAAM2F,IAAI,GAAG3F,QAAQ,IAAI,CAACwB,YAAY;IACtCzD,YAAY,CAAC,MAAM;MACjB,SAAS;;MACT,IAAIoE,UAAU,CAAClC,KAAK,GAAG,CAAC,EAAEN,YAAY,CAAC8B,OAAO,EAAE5B,aAAa,EAAEC,MAAM,EAAEC,CAAC,EAAE4F,IAAI,CAAC;IACjF,CAAC,CAAC;EACJ,CAAC,EACD,CAAClE,OAAO,EAAE3B,MAAM,EAAED,aAAa,EAAE2B,YAAY,EAAEW,UAAU,CAC3D,CAAC;EAEDlF,mBAAmB,CACjB2C,GAAG,EACH,OAAO;IACL;IACA;IACAgG,YAAY,EAAEA,CAACC,IAAgB,EAAE7F,QAAQ,GAAG,IAAI,KAAK;MACnD,MAAMwD,GAAG,GAAGzB,MAAM,CAAC+D,cAAc,CAACC,GAAG,CAACF,IAAI,CAAC;MAC3C,IAAIrC,GAAG,KAAKsB,SAAS,EAAE;MACvBxD,OAAO,CAACuE,IAAI,EAAE,YAAY,EAAE9G,SAAS,EAAEiB,QAAQ,CAAC;MAChD0F,SAAS,CAAC3D,MAAM,CAAC7C,aAAa,CAACsE,GAAG,CAAC,EAAExD,QAAQ,CAAC;IAChD,CAAC;IACDgG,eAAe,EAAEA,CAACC,KAAiB,EAAEjG,QAAQ,GAAG,IAAI,KAAK;MACvD,MAAMwD,GAAG,GAAGzB,MAAM,CAAC+D,cAAc,CAACC,GAAG,CAACE,KAAK,CAAC;MAC5C,IAAIzC,GAAG,KAAKsB,SAAS,EAAEY,SAAS,CAAC3D,MAAM,CAAC7C,aAAa,CAACsE,GAAG,CAAC,EAAExD,QAAQ,CAAC;IACvE,CAAC;IACDkG,cAAc,EAAEA,CAAC;MAAEC,MAAM;MAAEnG,QAAQ,GAAG;IAAK,CAAC,KAAK0F,SAAS,CAACS,MAAM,EAAEnG,QAAQ;EAC7E,CAAC,CAAC,EACF,CAAC+B,MAAM,EAAE2D,SAAS,EAAEpE,OAAO,CAC7B,CAAC;EAED,MAAM8E,OAAO,GAAGhJ,MAAM,CAAC,KAAK,CAAC;EAC7B,MAAMiJ,QAAQ,GAAGrJ,WAAW,CACzBsJ,CAAoB,IAAK;IACxBnE,UAAU,CAAClC,KAAK,GAAGqG,CAAC,CAACC,WAAW,CAACxE,MAAM,CAACyE,MAAM;IAC9C,IAAIJ,OAAO,CAACpE,OAAO,EAAE;IACrBoE,OAAO,CAACpE,OAAO,GAAG,IAAI;IACtB,MAAMyE,QAAQ,GAAGpE,aAAa;IAC9BtE,YAAY,CAAC,MAAM;MACjB,SAAS;;MACT;MACA;MACA;MACA;MACA;MACA;MACA,MAAM2I,MAAM,GAAGxE,QAAQ,CAACjC,KAAK,CAACf,aAAa,CAACkC,KAAK,CAAC6C,QAAQ,CAAChE,KAAK,CAAC,IAAIwG,QAAQ;MAC7E,IAAI7D,IAAI,CAACmC,GAAG,CAACtB,OAAO,CAACxD,KAAK,GAAGyG,MAAM,CAAC,GAAG,CAAC,EAAE/G,YAAY,CAAC8B,OAAO,EAAE5B,aAAa,EAAEC,MAAM,EAAE4G,MAAM,EAAE,KAAK,CAAC;MACrG;MACAjD,OAAO,CAACxD,KAAK,GAAGyG,MAAM;MACtB3C,WAAW,CAAC2C,MAAM,EAAE,CAAC,CAAC;IACxB,CAAC,CAAC;EACJ,CAAC,EACD,CAAC3C,WAAW,EAAE1B,aAAa,EAAEZ,OAAO,EAAE3B,MAAM,EAAED,aAAa,EAAE4D,OAAO,EAAErC,KAAK,EAAEc,QAAQ,EAAEC,UAAU,CACnG,CAAC;EAED,MAAMwE,cAAc,GAAGxJ,OAAO,CAC5B,MACEyD,SAAS,gBACPhC,IAAA,CAACtB,cAAc;IACbqD,UAAU,EAAEA,UAAW;IACvBC,SAAS,EAAEA,SAAU;IACrBgG,SAAS,EAAE1F,MAAM,CAAC2F,MAAO;IACzB3F,MAAM,EAAE,CAACA,MAAM,CAAC2F,MAAM,CAAE;IACxBC,uBAAuB,EAAE5F,MAAM,CAAC6F;EAAQ,CACzC,CAAC,GACAjC,SAAS,EACf,CAAC5D,MAAM,CAAC2F,MAAM,EAAE3F,MAAM,CAAC6F,OAAO,EAAEnG,SAAS,EAAED,UAAU,CACvD,CAAC;EAED,MAAMqG,YAAY,GAAG7J,OAAO,CAAC,OAAO;IAAEqJ,MAAM,EAAEzE,MAAM,CAACkF;EAAY,CAAC,CAAC,EAAE,CAAClF,MAAM,CAACkF,WAAW,CAAC,CAAC;EAC1F,MAAMC,MAAM,GAAG/J,OAAO,CACpB,OAAO;IAAEsG,OAAO;IAAEC,cAAc;IAAEC,IAAI;IAAEzB;EAAS,CAAC,CAAC,EACnD,CAACwB,cAAc,EAAEC,IAAI,EAAEF,OAAO,EAAEvB,QAAQ,CAC1C,CAAC;EACD,MAAMiF,OAAO,GAAGnK,WAAW,CAAE2H,CAAS,IAA6B;IACjE,MAAM;MAAEO,IAAI;MAAE/F;IAAa,CAAC,GAAG8C,SAAS,CAACD,OAAO;IAChD,MAAMU,GAAG,GAAGwC,IAAI,CAAC/F,YAAY,CAACwF,CAAC,CAAC,CAAC;IACjC,OAAOjC,GAAG,EAAE0E,IAAI,KAAK,QAAQ,GAAG1E,GAAG,CAACuD,KAAK,GAAGnB,SAAS;EACvD,CAAC,EAAE,EAAE,CAAC;EAEN,oBACEhG,KAAA,CAACtB,IAAI;IAAC6J,KAAK,EAAEC,MAAM,CAACC,IAAK;IAAAC,QAAA,GACtB1G,QAAQ,gBACPlC,IAAA,CAACP,cAAc;MAACoF,OAAO,EAAEA,OAAQ;MAACgE,UAAU,EAAE3G,QAAQ,CAAC2G,UAAW;MAACC,UAAU,EAAE5G,QAAQ,CAAC4G;IAAW,CAAE,CAAC,GACpG,IAAI,eACR9I,IAAA,CAACnB,QAAQ,CAACkK,UAAU;MAClB/H,GAAG,EAAE6B,OAAQ;MACb4E,QAAQ,EAAEA,QAAS;MACnBuB,QAAQ,EAAE9D,aAAc;MACxB+D,mBAAmB,EAAE,EAAG;MACxBvF,aAAa,EAAEA,aAAc;MAC7BzB,gBAAgB,EAAEA,gBAAiB;MACnC8F,cAAc,EAAEA,cAAe;MAC/BmB,qBAAqB;MAAAN,QAAA,eAErB5I,IAAA,CAACpB,IAAI;QAAC6J,KAAK,EAAEL,YAAa;QAAAQ,QAAA,eACxB5I,IAAA,CAACN,YAAY;UACXyD,MAAM,EAAEA,MAAO;UACfY,KAAK,EAAEH,WAAW,CAACG,KAAM;UACzBG,IAAI,EAAEN,WAAW,CAACM,IAAK;UACvBiF,UAAU,EAAE9E,SAAS,EAAEN,KAAM;UAC7BqF,SAAS,EAAE/E,SAAS,EAAEH,IAAK;UAC3B1C,UAAU,EAAEA,UAAW;UACvBC,mBAAmB,EAAEA,mBAAoB;UACzCF,QAAQ,EAAEA,QAAS;UACnBK,WAAW,EAAEA,WAAY;UACzBuC,UAAU,EAAEA,UAAW;UACvBkF,SAAS,EAAEnH,QAAQ,KAAKgE,SAAU;UAClCoD,WAAW,EAAEnH,cAAe;UAC5B0C,OAAO,EAAEA,OAAQ;UACjBtB,UAAU,EAAEA;QAAW,CACxB;MAAC,CACE;IAAC,CACY,CAAC,EACrBzB,2BAA2B,gBAC1B9B,IAAA,CAACH,mBAAmB;MAClB2D,cAAc,EAAEA,cAAe;MAC/B+F,YAAY,EAAEhI,QAAQ,CAACoE,MAAO;MAC9B4C,OAAO,EAAEA,OAAQ;MACjBX,MAAM,EAAEjG,mBAAoB;MAC5B2G,MAAM,EAAEA,MAAO;MACf7G,mBAAmB,EAAEA;IAAoB,CAC1C,CAAC,GACA,IAAI;EAAA,CACJ,CAAC;AAEX,CAAC;AAED,OAAO,MAAM+H,UAAU,gBAAGrL,IAAI,CAACmD,eAAe,CAA2B;AAEzE,MAAMoH,MAAM,GAAG/J,UAAU,CAAC8K,MAAM,CAAC;EAC/B;EACA;EACA;EACA;EACAd,IAAI,EAAE;IAAEe,IAAI,EAAE,CAAC;IAAEC,QAAQ,EAAE;EAAS;AACtC,CAAC,CAAC","ignoreList":[]}
@@ -0,0 +1,84 @@
1
+ "use strict";
2
+
3
+ /**
4
+ * One row or header, parked at its declared offset.
5
+ *
6
+ * Slots take the row's DATA plus a stable render function, never `children`: a
7
+ * child element is a new object every parent render, so `memo` would never bail
8
+ * out and every window commit would re-render every mounted row (M1: p90 69 ms).
9
+ *
10
+ * `overflow: 'hidden'` is the safety mechanism: a row taller than its declaration
11
+ * is clipped in place instead of shifting every offset below it, and the DEV
12
+ * drift check (`heights.ts`) makes the wrong number loud.
13
+ */
14
+
15
+ import { memo, useMemo } from 'react';
16
+ import { StyleSheet, View } from 'react-native';
17
+ import { needsMeasure, reportHeight } from "./heights.js";
18
+ import { jsx as _jsx } from "react/jsx-runtime";
19
+ const AgendaItemSlotInner = ({
20
+ top,
21
+ height,
22
+ type,
23
+ item,
24
+ index,
25
+ section,
26
+ renderItem,
27
+ deferred,
28
+ groundColor
29
+ }) => {
30
+ const style = useMemo(() => [styles.slot, {
31
+ top,
32
+ height,
33
+ backgroundColor: deferred ? undefined : groundColor
34
+ }], [deferred, groundColor, height, top]);
35
+ if (deferred) return null;
36
+ const content = renderItem({
37
+ item,
38
+ index,
39
+ section
40
+ });
41
+ if (__DEV__ && needsMeasure(type, height)) {
42
+ // Measure the CHILD: the slot is `height` by construction.
43
+ const onLayout = e => reportHeight(type, height, e.nativeEvent.layout.height);
44
+ return /*#__PURE__*/_jsx(View, {
45
+ style: style,
46
+ children: /*#__PURE__*/_jsx(View, {
47
+ onLayout: onLayout,
48
+ children: content
49
+ })
50
+ });
51
+ }
52
+ return /*#__PURE__*/_jsx(View, {
53
+ style: style,
54
+ children: content
55
+ });
56
+ };
57
+ export const AgendaItemSlot = /*#__PURE__*/memo(AgendaItemSlotInner);
58
+ export const AgendaHeaderSlot = /*#__PURE__*/memo(({
59
+ top,
60
+ height,
61
+ title,
62
+ renderSectionHeader,
63
+ groundColor
64
+ }) => {
65
+ const style = useMemo(() => [styles.slot, {
66
+ top,
67
+ height,
68
+ backgroundColor: groundColor
69
+ }], [groundColor, height, top]);
70
+ return /*#__PURE__*/_jsx(View, {
71
+ style: style,
72
+ children: renderSectionHeader(title)
73
+ });
74
+ });
75
+ AgendaHeaderSlot.displayName = 'AgendaHeaderSlot';
76
+ const styles = StyleSheet.create({
77
+ slot: {
78
+ position: 'absolute',
79
+ left: 0,
80
+ right: 0,
81
+ overflow: 'hidden'
82
+ }
83
+ });
84
+ //# sourceMappingURL=AgendaSlot.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["memo","useMemo","StyleSheet","View","needsMeasure","reportHeight","jsx","_jsx","AgendaItemSlotInner","top","height","type","item","index","section","renderItem","deferred","groundColor","style","styles","slot","backgroundColor","undefined","content","__DEV__","onLayout","e","nativeEvent","layout","children","AgendaItemSlot","AgendaHeaderSlot","title","renderSectionHeader","displayName","create","position","left","right","overflow"],"sourceRoot":"../../../src","sources":["agenda/AgendaSlot.tsx"],"mappings":";;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,SAASA,IAAI,EAAEC,OAAO,QAA2B,OAAO;AACxD,SAASC,UAAU,EAAEC,IAAI,QAAgC,cAAc;AACvE,SAASC,YAAY,EAAEC,YAAY,QAAQ,cAAW;AAAC,SAAAC,GAAA,IAAAC,IAAA;AAoBvD,MAAMC,mBAAmB,GAAGA,CAAK;EAC/BC,GAAG;EACHC,MAAM;EACNC,IAAI;EACJC,IAAI;EACJC,KAAK;EACLC,OAAO;EACPC,UAAU;EACVC,QAAQ;EACRC;AACgB,CAAC,KAAK;EACtB,MAAMC,KAAK,GAAGjB,OAAO,CACnB,MAAM,CAACkB,MAAM,CAACC,IAAI,EAAE;IAAEX,GAAG;IAAEC,MAAM;IAAEW,eAAe,EAAEL,QAAQ,GAAGM,SAAS,GAAGL;EAAY,CAAC,CAAC,EACzF,CAACD,QAAQ,EAAEC,WAAW,EAAEP,MAAM,EAAED,GAAG,CACrC,CAAC;EACD,IAAIO,QAAQ,EAAE,OAAO,IAAI;EAEzB,MAAMO,OAAO,GAAGR,UAAU,CAAC;IAAEH,IAAI;IAAEC,KAAK;IAAEC;EAAQ,CAAC,CAAC;EACpD,IAAIU,OAAO,IAAIpB,YAAY,CAACO,IAAI,EAAED,MAAM,CAAC,EAAE;IACzC;IACA,MAAMe,QAAQ,GAAIC,CAAoB,IAAKrB,YAAY,CAACM,IAAI,EAAED,MAAM,EAAEgB,CAAC,CAACC,WAAW,CAACC,MAAM,CAAClB,MAAM,CAAC;IAClG,oBACEH,IAAA,CAACJ,IAAI;MAACe,KAAK,EAAEA,KAAM;MAAAW,QAAA,eACjBtB,IAAA,CAACJ,IAAI;QAACsB,QAAQ,EAAEA,QAAS;QAAAI,QAAA,EAAEN;MAAO,CAAO;IAAC,CACtC,CAAC;EAEX;EACA,oBAAOhB,IAAA,CAACJ,IAAI;IAACe,KAAK,EAAEA,KAAM;IAAAW,QAAA,EAAEN;EAAO,CAAO,CAAC;AAC7C,CAAC;AAED,OAAO,MAAMO,cAAc,gBAAG9B,IAAI,CAACQ,mBAAmB,CAA+B;AAUrF,OAAO,MAAMuB,gBAAgB,gBAAG/B,IAAI,CAClC,CAAC;EAAES,GAAG;EAAEC,MAAM;EAAEsB,KAAK;EAAEC,mBAAmB;EAAEhB;AAA6B,CAAC,KAAK;EAC7E,MAAMC,KAAK,GAAGjB,OAAO,CACnB,MAAM,CAACkB,MAAM,CAACC,IAAI,EAAE;IAAEX,GAAG;IAAEC,MAAM;IAAEW,eAAe,EAAEJ;EAAY,CAAC,CAAC,EAClE,CAACA,WAAW,EAAEP,MAAM,EAAED,GAAG,CAC3B,CAAC;EACD,oBAAOF,IAAA,CAACJ,IAAI;IAACe,KAAK,EAAEA,KAAM;IAAAW,QAAA,EAAEI,mBAAmB,CAACD,KAAK;EAAC,CAAO,CAAC;AAChE,CACF,CAAC;AACDD,gBAAgB,CAACG,WAAW,GAAG,kBAAkB;AAEjD,MAAMf,MAAM,GAAGjB,UAAU,CAACiC,MAAM,CAAC;EAC/Bf,IAAI,EAAE;IAAEgB,QAAQ,EAAE,UAAU;IAAEC,IAAI,EAAE,CAAC;IAAEC,KAAK,EAAE,CAAC;IAAEC,QAAQ,EAAE;EAAS;AACtE,CAAC,CAAC","ignoreList":[]}
@@ -0,0 +1,167 @@
1
+ "use strict";
2
+
3
+ /**
4
+ * The mounted slice of the list, keyed by row.
5
+ *
6
+ * DO NOT RECYCLE. A slot pool was built twice and measured worse on the device
7
+ * (p99 300 → 1000–1550 ms): keyed by row, a row that stays in the window has
8
+ * identical props and `memo` makes it free; a pool hands slots new rows and forces
9
+ * a full prop diff across every card.
10
+ *
11
+ * DO NOT KEEP ROWS MOUNTED "to avoid recreating them". Measured in release on the
12
+ * SM-F415F (2026-09-11): a grow-only window doubled the mounted views and took slow
13
+ * draw frames from ~180 to ~900 per 12 flings (p50 27 → 37 ms); pre-mounting the
14
+ * whole range (5,000 views, +130 MB) put every frame above 60 ms. Every mounted row
15
+ * costs frame time, on screen or not — the window stays tight.
16
+ *
17
+ * Deferral (only with a backdrop): a row ENTERING the window while the list is
18
+ * fast renders nothing and the backdrop shows through; a row already drawn stays
19
+ * drawn. When fast motion ends, deferred rows are released nearest the viewport
20
+ * first — every visible row in one batch, then a batch per frame — as transitions,
21
+ * so a new drag's window commit never waits behind them.
22
+ */
23
+
24
+ import { memo, startTransition, useEffect, useLayoutEffect, useRef, useState } from 'react';
25
+ import { bsearchLE } from "../core/worklets.js";
26
+ import { AgendaHeaderSlot, AgendaItemSlot } from "./AgendaSlot.js";
27
+ import { UPGRADE_BATCH } from "./constants.js";
28
+ import { jsx as _jsx, Fragment as _Fragment } from "react/jsx-runtime";
29
+ const NO_KEYS = new Set();
30
+ const AgendaWindowInner = ({
31
+ layout,
32
+ first,
33
+ last,
34
+ extraFirst,
35
+ extraLast,
36
+ renderItem,
37
+ renderSectionHeader,
38
+ sections,
39
+ getItemType,
40
+ fastMotion,
41
+ deferRows,
42
+ groundColor,
43
+ scrollY,
44
+ viewportSV
45
+ }) => {
46
+ const {
47
+ rows,
48
+ offsets,
49
+ heights
50
+ } = layout;
51
+ const start = Math.max(0, first);
52
+ const end = Math.min(last, rows.length - 1);
53
+
54
+ /** Rows deferred in the last commit, and the window that commit drew. */
55
+ const heldRef = useRef(NO_KEYS);
56
+ const drawnRef = useRef({
57
+ layout,
58
+ start: 0,
59
+ end: -1
60
+ });
61
+ const [released, setReleased] = useState(NO_KEYS);
62
+ const prev = drawnRef.current;
63
+ const sameLayout = prev.layout === layout;
64
+ const held = heldRef.current;
65
+ let nextHeld = null;
66
+ const slots = [];
67
+ const pushRow = i => {
68
+ const row = rows[i];
69
+ if (row.kind === 'header') {
70
+ slots.push(/*#__PURE__*/_jsx(AgendaHeaderSlot, {
71
+ top: offsets[i]
72
+ // The layout's pixel-snapped height, not the declared constant: with the
73
+ // constant, a header ending a fraction short of the next row's top left a
74
+ // hairline of backdrop between them.
75
+ ,
76
+ height: heights[i],
77
+ title: row.title,
78
+ renderSectionHeader: renderSectionHeader,
79
+ groundColor: groundColor
80
+ }, row.key));
81
+ return;
82
+ }
83
+ let deferred = false;
84
+ if (deferRows) {
85
+ deferred = held.has(row.key) ? fastMotion || !released.has(row.key) : fastMotion && !(sameLayout && i >= prev.start && i <= prev.end);
86
+ if (deferred) (nextHeld ??= new Set()).add(row.key);
87
+ }
88
+ slots.push(/*#__PURE__*/_jsx(AgendaItemSlot, {
89
+ top: offsets[i],
90
+ height: heights[i],
91
+ type: getItemType(row.item),
92
+ item: row.item,
93
+ index: row.indexInSection,
94
+ section: sections[row.section],
95
+ renderItem: renderItem,
96
+ deferred: deferred,
97
+ groundColor: groundColor
98
+ }, row.key));
99
+ };
100
+ for (let i = start; i <= end; i += 1) pushRow(i);
101
+ if (extraFirst !== undefined && extraLast !== undefined) {
102
+ const xEnd = Math.min(extraLast, rows.length - 1);
103
+ for (let i = Math.max(0, extraFirst); i <= xEnd; i += 1) {
104
+ if (i < start || i > end) pushRow(i);
105
+ }
106
+ }
107
+ const heldNow = nextHeld ?? NO_KEYS;
108
+ // Committed in a layout effect, so a render React discards cannot leave the
109
+ // refs describing rows that never mounted.
110
+ useLayoutEffect(() => {
111
+ heldRef.current = heldNow;
112
+ drawnRef.current = {
113
+ layout,
114
+ start,
115
+ end
116
+ };
117
+ });
118
+ const hasHeld = heldNow.size > 0;
119
+ useEffect(() => {
120
+ if (fastMotion || !hasHeld) return;
121
+ const {
122
+ layout: l,
123
+ start: s,
124
+ end: e
125
+ } = drawnRef.current;
126
+ const y = scrollY.value;
127
+ const top = bsearchLE(l.offsets, y);
128
+ const bottom = bsearchLE(l.offsets, y + viewportSV.value);
129
+ const focus = top + bottom >> 1;
130
+
131
+ // Sorted ONCE; each frame then only pops a batch.
132
+ const queue = [];
133
+ const distance = [];
134
+ let visible = 0;
135
+ for (let i = s; i <= e; i += 1) {
136
+ const row = l.rows[i];
137
+ if (row.kind !== 'item' || !heldRef.current.has(row.key)) continue;
138
+ queue.push(row.key);
139
+ distance.push(Math.abs(i - focus));
140
+ if (i >= top && i <= bottom) visible += 1;
141
+ }
142
+ const order = queue.map((_, k) => k).sort((a, b) => distance[a] - distance[b]);
143
+ let cursor = 0;
144
+ let frame = 0;
145
+ const releaseNext = () => {
146
+ const n = cursor === 0 ? Math.max(UPGRADE_BATCH, visible) : UPGRADE_BATCH;
147
+ const batch = order.slice(cursor, cursor + n).map(k => queue[k]);
148
+ const isFirst = cursor === 0;
149
+ cursor += n;
150
+ startTransition(() => {
151
+ setReleased(was => {
152
+ const next = new Set(isFirst ? NO_KEYS : was);
153
+ for (const key of batch) next.add(key);
154
+ return next;
155
+ });
156
+ });
157
+ if (cursor < order.length) frame = requestAnimationFrame(releaseNext);
158
+ };
159
+ frame = requestAnimationFrame(releaseNext);
160
+ return () => cancelAnimationFrame(frame);
161
+ }, [fastMotion, hasHeld, scrollY, viewportSV]);
162
+ return /*#__PURE__*/_jsx(_Fragment, {
163
+ children: slots
164
+ });
165
+ };
166
+ export const AgendaWindow = /*#__PURE__*/memo(AgendaWindowInner);
167
+ //# sourceMappingURL=AgendaWindow.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["memo","startTransition","useEffect","useLayoutEffect","useRef","useState","bsearchLE","AgendaHeaderSlot","AgendaItemSlot","UPGRADE_BATCH","jsx","_jsx","Fragment","_Fragment","NO_KEYS","Set","AgendaWindowInner","layout","first","last","extraFirst","extraLast","renderItem","renderSectionHeader","sections","getItemType","fastMotion","deferRows","groundColor","scrollY","viewportSV","rows","offsets","heights","start","Math","max","end","min","length","heldRef","drawnRef","released","setReleased","prev","current","sameLayout","held","nextHeld","slots","pushRow","i","row","kind","push","top","height","title","key","deferred","has","add","type","item","index","indexInSection","section","undefined","xEnd","heldNow","hasHeld","size","l","s","e","y","value","bottom","focus","queue","distance","visible","abs","order","map","_","k","sort","a","b","cursor","frame","releaseNext","n","batch","slice","isFirst","was","next","requestAnimationFrame","cancelAnimationFrame","children","AgendaWindow"],"sourceRoot":"../../../src","sources":["agenda/AgendaWindow.tsx"],"mappings":"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","ignoreList":[]}