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,57 @@
1
+ /**
2
+ * Sections → a flat row list with declared heights and prefix-sum offsets.
3
+ *
4
+ * PURE: the one place the agenda's geometry is decided (rule 3 — layout is
5
+ * declared, never measured). `offsets` has n+1 entries, so a row's height is
6
+ * `offsets[i+1] − offsets[i]` and the last entry is the content height.
7
+ *
8
+ * Offsets land on whole DEVICE pixels: the running sum stays exact, each row's top
9
+ * and bottom are that sum rounded, and its height is their difference. A slot's
10
+ * bottom is then exactly the next slot's top. Fractional offsets let Android round
11
+ * each edge on its own and open 1 px seams that showed the backdrop behind the list
12
+ * as grey hairlines (2026-09-11). No row moves by half a pixel or more.
13
+ */
14
+ import type { AgendaSection, DateString } from '../types';
15
+ export type AgendaRowRef<T> = {
16
+ kind: 'header';
17
+ section: number;
18
+ title: DateString;
19
+ key: string;
20
+ } | {
21
+ kind: 'item';
22
+ section: number;
23
+ indexInSection: number;
24
+ item: T;
25
+ key: string;
26
+ };
27
+ export type AgendaLayout<T> = {
28
+ rows: AgendaRowRef<T>[];
29
+ /** Parallel to `rows`. */
30
+ heights: number[];
31
+ /** n+1 prefix sums; `offsets[rows.length] === totalHeight`. */
32
+ offsets: number[];
33
+ /** Row index of each section's header. */
34
+ sectionStart: number[];
35
+ /** Pixel offset of each section's header; n+1, last entry is `totalHeight`. */
36
+ sectionOffset: number[];
37
+ /** Month ordinal (y·12 + m − 1) per section — the month-crossing test. */
38
+ monthOfSection: number[];
39
+ sectionByTitle: Map<DateString, number>;
40
+ totalHeight: number;
41
+ };
42
+ export type BuildAgendaLayoutParams<T> = {
43
+ sections: AgendaSection<T>[];
44
+ sectionHeaderHeight: number;
45
+ heightForType: (type: string) => number;
46
+ getItemType: (item: T) => string;
47
+ keyExtractor: (item: T, index: number) => string;
48
+ /**
49
+ * Caller-owned, so a rebuild hands back the SAME header object for an
50
+ * unchanged title and section index, and mounted header slots stay memo-equal.
51
+ */
52
+ headerIntern: Map<DateString, Extract<AgendaRowRef<T>, {
53
+ kind: 'header';
54
+ }>>;
55
+ };
56
+ export declare const buildAgendaLayout: <T>({ sections, sectionHeaderHeight, heightForType, getItemType, keyExtractor, headerIntern, }: BuildAgendaLayoutParams<T>) => AgendaLayout<T>;
57
+ //# sourceMappingURL=buildAgendaLayout.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"buildAgendaLayout.d.ts","sourceRoot":"","sources":["../../../../src/agenda/buildAgendaLayout.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAIH,OAAO,KAAK,EAAE,aAAa,EAAE,UAAU,EAAE,MAAM,UAAU,CAAC;AAE1D,MAAM,MAAM,YAAY,CAAC,CAAC,IACtB;IAAE,IAAI,EAAE,QAAQ,CAAC;IAAC,OAAO,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,UAAU,CAAC;IAAC,GAAG,EAAE,MAAM,CAAA;CAAE,GACnE;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,MAAM,CAAC;IAAC,cAAc,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,CAAC,CAAC;IAAC,GAAG,EAAE,MAAM,CAAA;CAAE,CAAC;AAEpF,MAAM,MAAM,YAAY,CAAC,CAAC,IAAI;IAC5B,IAAI,EAAE,YAAY,CAAC,CAAC,CAAC,EAAE,CAAC;IACxB,0BAA0B;IAC1B,OAAO,EAAE,MAAM,EAAE,CAAC;IAClB,+DAA+D;IAC/D,OAAO,EAAE,MAAM,EAAE,CAAC;IAClB,0CAA0C;IAC1C,YAAY,EAAE,MAAM,EAAE,CAAC;IACvB,+EAA+E;IAC/E,aAAa,EAAE,MAAM,EAAE,CAAC;IACxB,0EAA0E;IAC1E,cAAc,EAAE,MAAM,EAAE,CAAC;IACzB,cAAc,EAAE,GAAG,CAAC,UAAU,EAAE,MAAM,CAAC,CAAC;IACxC,WAAW,EAAE,MAAM,CAAC;CACrB,CAAC;AAEF,MAAM,MAAM,uBAAuB,CAAC,CAAC,IAAI;IACvC,QAAQ,EAAE,aAAa,CAAC,CAAC,CAAC,EAAE,CAAC;IAC7B,mBAAmB,EAAE,MAAM,CAAC;IAC5B,aAAa,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,MAAM,CAAC;IACxC,WAAW,EAAE,CAAC,IAAI,EAAE,CAAC,KAAK,MAAM,CAAC;IACjC,YAAY,EAAE,CAAC,IAAI,EAAE,CAAC,EAAE,KAAK,EAAE,MAAM,KAAK,MAAM,CAAC;IACjD;;;OAGG;IACH,YAAY,EAAE,GAAG,CAAC,UAAU,EAAE,OAAO,CAAC,YAAY,CAAC,CAAC,CAAC,EAAE;QAAE,IAAI,EAAE,QAAQ,CAAA;KAAE,CAAC,CAAC,CAAC;CAC7E,CAAC;AAEF,eAAO,MAAM,iBAAiB,GAAI,CAAC,EAAE,4FAOlC,uBAAuB,CAAC,CAAC,CAAC,KAAG,YAAY,CAAC,CAAC,CAmD7C,CAAC"}
@@ -0,0 +1,19 @@
1
+ /** Upper bound on mounted rows: a ceiling for the fastest fling. */
2
+ export declare const MAX_WINDOW_ROWS = 128;
3
+ /** Rows per window bucket, powers of two (bucketing is a mask). 32 while fast: ~25 → ~3 commits per fling (M1a). */
4
+ export declare const BUCKET_REST = 8;
5
+ export declare const BUCKET_FAST = 32;
6
+ /**
7
+ * The rest window, in viewport heights ahead of and behind the viewport (was 1.5 / 1).
8
+ * Every mounted row costs frame time on screen or not, so rest stays tight and flings
9
+ * widen by velocity. Measured with `removeClippedSubviews` in release on the SM-F415F
10
+ * (2026-09-11): the pair took fling p95 57 → 48 ms; the small window alone gained nothing.
11
+ */
12
+ export declare const REST_REACH_H = 0.5;
13
+ export declare const REST_TRAIL_H = 0.25;
14
+ /** px/ms. Above FAST_ENTER entering rows are deferred to the backdrop; below FAST_EXIT they upgrade. */
15
+ export declare const FAST_ENTER = 4;
16
+ export declare const FAST_EXIT = 1.5;
17
+ /** Deferred rows made real per frame, after the visible ones. */
18
+ export declare const UPGRADE_BATCH = 8;
19
+ //# sourceMappingURL=constants.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"constants.d.ts","sourceRoot":"","sources":["../../../../src/agenda/constants.ts"],"names":[],"mappings":"AAAA,oEAAoE;AACpE,eAAO,MAAM,eAAe,MAAM,CAAC;AAEnC,oHAAoH;AACpH,eAAO,MAAM,WAAW,IAAI,CAAC;AAC7B,eAAO,MAAM,WAAW,KAAK,CAAC;AAE9B;;;;;GAKG;AACH,eAAO,MAAM,YAAY,MAAM,CAAC;AAChC,eAAO,MAAM,YAAY,OAAO,CAAC;AAEjC,wGAAwG;AACxG,eAAO,MAAM,UAAU,IAAI,CAAC;AAC5B,eAAO,MAAM,SAAS,MAAM,CAAC;AAE7B,iEAAiE;AACjE,eAAO,MAAM,aAAa,IAAI,CAAC"}
@@ -0,0 +1,20 @@
1
+ /**
2
+ * DEV height-drift check — the honesty test on "layout is declared, not measured".
3
+ *
4
+ * Every slot clips (`overflow: 'hidden'`), so a row taller than its table entry
5
+ * loses its bottom pixels silently. While a listener is installed
6
+ * (`onHeightDrift`, e.g. a temporary DEV overlay), each row type measures once and reports the delta.
7
+ * With no listener nothing measures: no wrapper view, no `onLayout`, in any build.
8
+ */
9
+ export type HeightDrift = {
10
+ type: string;
11
+ declared: number;
12
+ measured: number;
13
+ delta: number;
14
+ };
15
+ /** Install (or with `null`, remove) the one drift listener. Installing re-samples. */
16
+ export declare const onHeightDrift: (fn: ((drift: HeightDrift) => void) | null) => void;
17
+ /** True while this row type still needs a sample at its current declaration. */
18
+ export declare const needsMeasure: (type: string, declared: number) => boolean;
19
+ export declare const reportHeight: (type: string, declared: number, measured: number) => void;
20
+ //# sourceMappingURL=heights.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"heights.d.ts","sourceRoot":"","sources":["../../../../src/agenda/heights.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,MAAM,MAAM,WAAW,GAAG;IACxB,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,MAAM,CAAC;IACjB,QAAQ,EAAE,MAAM,CAAC;IACjB,KAAK,EAAE,MAAM,CAAC;CACf,CAAC;AAKF,sFAAsF;AACtF,eAAO,MAAM,aAAa,GAAI,IAAI,CAAC,CAAC,KAAK,EAAE,WAAW,KAAK,IAAI,CAAC,GAAG,IAAI,KAAG,IAIzE,CAAC;AAEF,gFAAgF;AAChF,eAAO,MAAM,YAAY,GAAI,MAAM,MAAM,EAAE,UAAU,MAAM,KAAG,OAI7D,CAAC;AAEF,eAAO,MAAM,YAAY,GAAI,MAAM,MAAM,EAAE,UAAU,MAAM,EAAE,UAAU,MAAM,KAAG,IAU/E,CAAC"}
@@ -0,0 +1,44 @@
1
+ /**
2
+ * The agenda's scroll handler — everything per frame runs here, on the UI thread.
3
+ *
4
+ * 1. Derive the date: `dayIndex` is the day whose header holds most of the
5
+ * header slot, written whenever no animated programmatic scroll is travelling.
6
+ * 2. Move the window: pixel overscan that grows with velocity, bucketed so a
7
+ * bucket edge is crossed a few times per fling, not every frame.
8
+ * 3. Tell React rarely: per month crossing while moving, at settle, and once
9
+ * if the day under the header changes after settle.
10
+ */
11
+ import { type SharedValue } from 'react-native-reanimated';
12
+ /** The layout's lookup tables, mirrored to the UI thread in one write per rebuild. */
13
+ export type AgendaTables = {
14
+ offsets: readonly number[];
15
+ sectionOffset: readonly number[];
16
+ sectionStart: readonly number[];
17
+ monthOfSection: readonly number[];
18
+ };
19
+ export type UseAgendaScrollSyncParams = {
20
+ tablesSV: SharedValue<AgendaTables>;
21
+ /** Viewport height in px; 0 until first layout. */
22
+ viewportSV: SharedValue<number>;
23
+ headerHeight: number;
24
+ dayIndex: SharedValue<number>;
25
+ listDragSeq: SharedValue<number>;
26
+ onWindowChange: (first: number, last: number) => void;
27
+ onCommitDate: (sectionIndex: number) => void;
28
+ /** Called once entering and once leaving fast motion. */
29
+ onFastChange: (fast: boolean) => void;
30
+ onDragBegin?: () => void;
31
+ onSettle?: () => void;
32
+ };
33
+ export declare const useAgendaScrollSync: ({ tablesSV, viewportSV, headerHeight, dayIndex, listDragSeq, onWindowChange, onCommitDate, onFastChange, onDragBegin, onSettle, }: UseAgendaScrollSyncParams) => {
34
+ scrollY: SharedValue<number>;
35
+ currentSection: SharedValue<number>;
36
+ moving: SharedValue<number>;
37
+ fast: SharedValue<number>;
38
+ programmaticY: SharedValue<number>;
39
+ windowFirst: SharedValue<number>;
40
+ windowLast: SharedValue<number>;
41
+ scrollHandler: import("react-native-reanimated").ScrollHandlerProcessed<Record<string, unknown>>;
42
+ applyOffset: (y: number, v: number) => void;
43
+ };
44
+ //# sourceMappingURL=useAgendaScrollSync.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useAgendaScrollSync.d.ts","sourceRoot":"","sources":["../../../../src/agenda/useAgendaScrollSync.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAGH,OAAO,EAA4C,KAAK,WAAW,EAAE,MAAM,yBAAyB,CAAC;AAarG,sFAAsF;AACtF,MAAM,MAAM,YAAY,GAAG;IACzB,OAAO,EAAE,SAAS,MAAM,EAAE,CAAC;IAC3B,aAAa,EAAE,SAAS,MAAM,EAAE,CAAC;IACjC,YAAY,EAAE,SAAS,MAAM,EAAE,CAAC;IAChC,cAAc,EAAE,SAAS,MAAM,EAAE,CAAC;CACnC,CAAC;AAEF,MAAM,MAAM,yBAAyB,GAAG;IACtC,QAAQ,EAAE,WAAW,CAAC,YAAY,CAAC,CAAC;IACpC,mDAAmD;IACnD,UAAU,EAAE,WAAW,CAAC,MAAM,CAAC,CAAC;IAChC,YAAY,EAAE,MAAM,CAAC;IACrB,QAAQ,EAAE,WAAW,CAAC,MAAM,CAAC,CAAC;IAC9B,WAAW,EAAE,WAAW,CAAC,MAAM,CAAC,CAAC;IACjC,cAAc,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,KAAK,IAAI,CAAC;IACtD,YAAY,EAAE,CAAC,YAAY,EAAE,MAAM,KAAK,IAAI,CAAC;IAC7C,yDAAyD;IACzD,YAAY,EAAE,CAAC,IAAI,EAAE,OAAO,KAAK,IAAI,CAAC;IACtC,WAAW,CAAC,EAAE,MAAM,IAAI,CAAC;IACzB,QAAQ,CAAC,EAAE,MAAM,IAAI,CAAC;CACvB,CAAC;AAEF,eAAO,MAAM,mBAAmB,GAAI,mIAWjC,yBAAyB;;;;;;;;;qBAwBpB,MAAM,KAAK,MAAM;CAuKxB,CAAC"}
@@ -0,0 +1,14 @@
1
+ /**
2
+ * An up arrow drawn from two Views: a stem, and a square with only its top and
3
+ * left borders painted, rotated 45° into a chevron.
4
+ *
5
+ * The kit ships no icon font and takes no SVG peer dependency for one 14 px
6
+ * glyph — a consumer should not have to install an icon package to get a Today
7
+ * button. Rotation of the whole arrow is the caller's job (`TodayButton` flips
8
+ * it 180° on the UI thread).
9
+ */
10
+ export declare const ArrowGlyph: ({ size, color }: {
11
+ size: number;
12
+ color: string;
13
+ }) => import("react").JSX.Element;
14
+ //# sourceMappingURL=ArrowGlyph.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ArrowGlyph.d.ts","sourceRoot":"","sources":["../../../../src/core/ArrowGlyph.tsx"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAMH,eAAO,MAAM,UAAU,GAAI,iBAAiB;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,gCAsC1E,CAAC"}
@@ -0,0 +1,35 @@
1
+ /**
2
+ * Two contexts, split by how often they change.
3
+ *
4
+ * `CalendarContext` is identity-stable for the life of the provider: every
5
+ * scroller reads it, and none of them may re-render because a date was committed.
6
+ * `CalendarDateContext` is the committed date alone — only surfaces that DRAW the
7
+ * committed date (the month grid's selection) subscribe to it. Surfaces that
8
+ * track the date at frame rate read `store.dayIndex` and subscribe to neither.
9
+ */
10
+ import type { CalendarRange, DateString, MoveOrigin, UpdateSource } from '../types';
11
+ import type { CalendarStore } from './CalendarStore';
12
+ export type CalendarContextValue = {
13
+ range: CalendarRange;
14
+ store: CalendarStore;
15
+ /**
16
+ * JS mirror of the last committed date; the echo guard compares against it.
17
+ * Never inside `store`: worklets freeze what they capture (see CalendarStore).
18
+ * Read it for mount-time values instead of `store.*.value` during render.
19
+ */
20
+ dateRef: {
21
+ current: DateString;
22
+ };
23
+ /** Move every surface to `ymd`: commits, notifies, then bumps `store.move`. */
24
+ setDate: (ymd: DateString, source: UpdateSource, origin?: MoveOrigin, animated?: boolean) => void;
25
+ /** The scroll-driven half, from a worklet via `runOnJS`: no `dayIndex` write. */
26
+ commitDate: (idx: number, source: UpdateSource, origin: MoveOrigin) => void;
27
+ /** The device setting, subscribed once by the provider. */
28
+ reduceMotion: boolean;
29
+ };
30
+ export declare const CalendarContext: import("react").Context<CalendarContextValue | null>;
31
+ export declare const CalendarDateContext: import("react").Context<string>;
32
+ export declare const useCalendarContext: () => CalendarContextValue;
33
+ /** The committed date. Subscribing re-renders on every commit — use sparingly. */
34
+ export declare const useCalendarDate: () => DateString;
35
+ //# sourceMappingURL=CalendarContext.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"CalendarContext.d.ts","sourceRoot":"","sources":["../../../../src/core/CalendarContext.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAGH,OAAO,KAAK,EAAE,aAAa,EAAE,UAAU,EAAE,UAAU,EAAE,YAAY,EAAE,MAAM,UAAU,CAAC;AACpF,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAErD,MAAM,MAAM,oBAAoB,GAAG;IACjC,KAAK,EAAE,aAAa,CAAC;IACrB,KAAK,EAAE,aAAa,CAAC;IACrB;;;;OAIG;IACH,OAAO,EAAE;QAAE,OAAO,EAAE,UAAU,CAAA;KAAE,CAAC;IACjC,+EAA+E;IAC/E,OAAO,EAAE,CAAC,GAAG,EAAE,UAAU,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,CAAC,EAAE,UAAU,EAAE,QAAQ,CAAC,EAAE,OAAO,KAAK,IAAI,CAAC;IAClG,iFAAiF;IACjF,UAAU,EAAE,CAAC,GAAG,EAAE,MAAM,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,EAAE,UAAU,KAAK,IAAI,CAAC;IAC5E,2DAA2D;IAC3D,YAAY,EAAE,OAAO,CAAC;CACvB,CAAC;AAEF,eAAO,MAAM,eAAe,sDAAmD,CAAC;AAChF,eAAO,MAAM,mBAAmB,iCAAgC,CAAC;AAEjE,eAAO,MAAM,kBAAkB,QAAO,oBASrC,CAAC;AAEF,kFAAkF;AAClF,eAAO,MAAM,eAAe,QAAO,UAA6C,CAAC"}
@@ -0,0 +1,41 @@
1
+ /**
2
+ * The date owner. Compat with `react-native-calendars`' `CalendarProvider`.
3
+ *
4
+ * Two cadences: `setDate` is synchronous (day tap, Today, page settle, the `date`
5
+ * prop) and writes `dayIndex`; `commitDate` is the scroll path, called from a
6
+ * worklet at settle and per month crossing, and leaves `dayIndex` to the
7
+ * scroller that already owns it. Both bump `move` so the OTHER surfaces follow.
8
+ *
9
+ * The prop echo: a controlled caller mirrors every `onDateChanged` back into
10
+ * `date`, and a `runOnJS` commit can land between a render's commit and its
11
+ * effects, so "prop equals current date" is not enough (M5: a fast fling was
12
+ * thrown back a month as `propUpdate`). The provider queues what it emitted; a
13
+ * prop matching a pending emission is an echo and consumes the queue up to it.
14
+ */
15
+ import { type ReactNode } from 'react';
16
+ import type { AgendaKitTheme, PartialAgendaKitTheme } from '../theme';
17
+ import type { CalendarRange, DateString, UpdateSource } from '../types';
18
+ export type CalendarProviderProps = {
19
+ range: CalendarRange;
20
+ date: DateString;
21
+ onDateChanged?: (date: DateString, source: UpdateSource) => void;
22
+ onMonthChange?: (date: DateString, source: UpdateSource) => void;
23
+ showTodayButton?: boolean;
24
+ todayBottomMargin?: number;
25
+ /** Required for the Today button to render: the kit ships no strings. */
26
+ todayLabel?: string;
27
+ /**
28
+ * Colours and font families. A partial theme layers over `base`
29
+ * (`lightTheme` unless given), so `{ colors: { accent: '#0F766E' } }` is a
30
+ * complete override. Omit it entirely for the built-in light theme.
31
+ *
32
+ * Pass a STABLE object — a fresh literal every render rebuilds every
33
+ * stylesheet in the tree. Hoist it to module scope or memoise it.
34
+ */
35
+ theme?: AgendaKitTheme | PartialAgendaKitTheme;
36
+ /** Which built-in a partial `theme` layers over. Pass `darkTheme` for dark mode. */
37
+ themeBase?: AgendaKitTheme;
38
+ children: ReactNode;
39
+ };
40
+ export declare const CalendarProvider: ({ range, date, onDateChanged, onMonthChange, showTodayButton, todayBottomMargin, todayLabel, theme, themeBase, children, }: CalendarProviderProps) => import("react").JSX.Element;
41
+ //# sourceMappingURL=CalendarProvider.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"CalendarProvider.d.ts","sourceRoot":"","sources":["../../../../src/core/CalendarProvider.tsx"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAEH,OAAO,EAAsE,KAAK,SAAS,EAAE,MAAM,OAAO,CAAC;AAS3G,OAAO,KAAK,EAAE,cAAc,EAAE,qBAAqB,EAAE,MAAM,UAAU,CAAC;AACtE,OAAO,KAAK,EAAE,aAAa,EAAE,UAAU,EAAc,YAAY,EAAE,MAAM,UAAU,CAAC;AAEpF,MAAM,MAAM,qBAAqB,GAAG;IAClC,KAAK,EAAE,aAAa,CAAC;IACrB,IAAI,EAAE,UAAU,CAAC;IACjB,aAAa,CAAC,EAAE,CAAC,IAAI,EAAE,UAAU,EAAE,MAAM,EAAE,YAAY,KAAK,IAAI,CAAC;IACjE,aAAa,CAAC,EAAE,CAAC,IAAI,EAAE,UAAU,EAAE,MAAM,EAAE,YAAY,KAAK,IAAI,CAAC;IACjE,eAAe,CAAC,EAAE,OAAO,CAAC;IAC1B,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,yEAAyE;IACzE,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB;;;;;;;OAOG;IACH,KAAK,CAAC,EAAE,cAAc,GAAG,qBAAqB,CAAC;IAC/C,oFAAoF;IACpF,SAAS,CAAC,EAAE,cAAc,CAAC;IAC3B,QAAQ,EAAE,SAAS,CAAC;CACrB,CAAC;AAKF,eAAO,MAAM,gBAAgB,GAAI,4HAW9B,qBAAqB,gCAgGvB,CAAC"}
@@ -0,0 +1,28 @@
1
+ /**
2
+ * The UI-thread half of the calendar: four shared values, created once.
3
+ *
4
+ * The scroll offset owns position and `dayIndex` is derived from it on the UI
5
+ * thread, so the week strip, the Today button and the sticky header track a
6
+ * fling frame-locked. `move` carries a programmatic move with its `origin`;
7
+ * each scroller ignores its own origin, so a `scrollTo` never echoes back.
8
+ */
9
+ import { type SharedValue } from 'react-native-reanimated';
10
+ import type { CalendarMove, CalendarRange } from '../types';
11
+ /**
12
+ * SHARED VALUES ONLY. Worklets that read `store.x.value` capture `store`, and
13
+ * react-native-worklets freezes captured objects in `__DEV__`: a plain ref in
14
+ * here silently ignores every write (M2: the echo guard compared against a date
15
+ * frozen at mount). Anything else lives on the provider and the context.
16
+ */
17
+ export type CalendarStore = {
18
+ /** UI-thread truth. Written by whichever scroller owns the position. */
19
+ dayIndex: SharedValue<number>;
20
+ /** The last programmatic move. `seq` makes repeats distinct. */
21
+ move: SharedValue<CalendarMove>;
22
+ /** Index of today, refreshed across midnight and on app foreground. */
23
+ todayIndex: SharedValue<number>;
24
+ /** Bumped when a list starts a drag; only the CHANGE means anything. */
25
+ listDragSeq: SharedValue<number>;
26
+ };
27
+ export declare const useCreateCalendarStore: (range: CalendarRange, initialIndex: number) => CalendarStore;
28
+ //# sourceMappingURL=CalendarStore.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"CalendarStore.d.ts","sourceRoot":"","sources":["../../../../src/core/CalendarStore.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAIH,OAAO,EAAkB,KAAK,WAAW,EAAE,MAAM,yBAAyB,CAAC;AAE3E,OAAO,KAAK,EAAE,YAAY,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AAE5D;;;;;GAKG;AACH,MAAM,MAAM,aAAa,GAAG;IAC1B,wEAAwE;IACxE,QAAQ,EAAE,WAAW,CAAC,MAAM,CAAC,CAAC;IAC9B,gEAAgE;IAChE,IAAI,EAAE,WAAW,CAAC,YAAY,CAAC,CAAC;IAChC,uEAAuE;IACvE,UAAU,EAAE,WAAW,CAAC,MAAM,CAAC,CAAC;IAChC,wEAAwE;IACxE,WAAW,EAAE,WAAW,CAAC,MAAM,CAAC,CAAC;CAClC,CAAC;AAIF,eAAO,MAAM,sBAAsB,GAAI,OAAO,aAAa,EAAE,cAAc,MAAM,KAAG,aA6BnF,CAAC"}
@@ -0,0 +1,10 @@
1
+ import type { Ref } from 'react';
2
+ import { Text, type TextProps } from 'react-native';
3
+ /**
4
+ * Kit text with OS scaling pinned off: row heights are declared, so scaled text
5
+ * would clip in its slot. `Text.defaultProps` is a no-op under React 19.
6
+ */
7
+ export declare const KitText: ({ ref, ...props }: TextProps & {
8
+ ref?: Ref<Text>;
9
+ }) => import("react").JSX.Element;
10
+ //# sourceMappingURL=KitText.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"KitText.d.ts","sourceRoot":"","sources":["../../../../src/core/KitText.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,OAAO,CAAC;AACjC,OAAO,EAAE,IAAI,EAAE,KAAK,SAAS,EAAE,MAAM,cAAc,CAAC;AAEpD;;;GAGG;AACH,eAAO,MAAM,OAAO,GAAI,mBAAmB,SAAS,GAAG;IAAE,GAAG,CAAC,EAAE,GAAG,CAAC,IAAI,CAAC,CAAA;CAAE,gCAEzE,CAAC"}
@@ -0,0 +1,18 @@
1
+ /**
2
+ * The Today pill, visible whenever the calendar is not on today: centred, with an
3
+ * arrow pointing the way back to today (the owner's Teams reference, 2026-09-11).
4
+ *
5
+ * Visibility and the arrow's direction are derived on the UI thread from
6
+ * `dayIndex` and `todayIndex`, so the pill appears the frame a fling leaves today
7
+ * and the arrow flips with no React commit. The show/hide animation starts from a
8
+ * reaction that fires only when the boolean flips — `withTiming` returned from
9
+ * `useAnimatedStyle` would restart on every frame of a fling. Hidden means
10
+ * translated off the bottom edge: a transparent pill would still swallow taps.
11
+ */
12
+ type Props = {
13
+ label: string;
14
+ bottomMargin?: number;
15
+ };
16
+ export declare const TodayButton: import("react").MemoExoticComponent<({ label, bottomMargin }: Props) => import("react").JSX.Element>;
17
+ export {};
18
+ //# sourceMappingURL=TodayButton.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"TodayButton.d.ts","sourceRoot":"","sources":["../../../../src/core/TodayButton.tsx"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAsBH,KAAK,KAAK,GAAG;IACX,KAAK,EAAE,MAAM,CAAC;IACd,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB,CAAC;AAkEF,eAAO,MAAM,WAAW,gEAhE+B,KAAK,iCAgEX,CAAC"}
@@ -0,0 +1,26 @@
1
+ /**
2
+ * Integer civil-date arithmetic: no `Date`, no string splitting, no timezone.
3
+ *
4
+ * An epoch day is the count of days since 1970-01-01 in the proleptic Gregorian
5
+ * calendar. Calendar days are integers here, so a DST transition cannot make two
6
+ * days 23 or 25 hours apart — the bug a `(a - b) / 86400000` calendar has twice
7
+ * a year. Algorithms: H. Hinnant, "chrono-Compatible Low-Level Date Algorithms".
8
+ */
9
+ /** Epoch day of a civil date. `m` is 1–12. */
10
+ export declare const epochDayOf: (y: number, m: number, d: number) => number;
11
+ /** Civil date of an epoch day, packed as YYYYMMDD so nothing is allocated. */
12
+ export declare const civilOf: (z: number) => number;
13
+ /** 0 = Sunday … 6 = Saturday, as `Date#getDay`. 1970-01-01 was a Thursday. */
14
+ export declare const weekdayOf: (z: number) => number;
15
+ export declare const daysInMonth: (y: number, m: number) => number;
16
+ /** 'YYYY-MM-DD' of an epoch day. */
17
+ export declare const ymdOfEpochDay: (z: number) => string;
18
+ /** Epoch day of 'YYYY-MM-DD' (anything after position 10 is ignored); NaN if malformed. */
19
+ export declare const epochDayOfYmd: (s: string) => number;
20
+ /** y·12 + (m − 1) of 'YYYY-MM-DD' — a month ordinal that orders and subtracts. */
21
+ export declare const monthOrdinalOfYmd: (s: string) => number;
22
+ /** Epoch day of a `Date`'s LOCAL calendar day. The one bridge from `Date`. */
23
+ export declare const epochDayOfDate: (d: Date) => number;
24
+ /** Today's epoch day. Cached until local midnight: a hot call is one `Date.now()`, no allocation. */
25
+ export declare const todayEpochDay: () => number;
26
+ //# sourceMappingURL=civil.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"civil.d.ts","sourceRoot":"","sources":["../../../../src/core/civil.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,8CAA8C;AAC9C,eAAO,MAAM,UAAU,GAAI,GAAG,MAAM,EAAE,GAAG,MAAM,EAAE,GAAG,MAAM,KAAG,MAO5D,CAAC;AAEF,8EAA8E;AAC9E,eAAO,MAAM,OAAO,GAAI,GAAG,MAAM,KAAG,MAYnC,CAAC;AAEF,8EAA8E;AAC9E,eAAO,MAAM,SAAS,GAAI,GAAG,MAAM,KAAG,MAAiC,CAAC;AAKxE,eAAO,MAAM,WAAW,GAAI,GAAG,MAAM,EAAE,GAAG,MAAM,KAAG,MACJ,CAAC;AAKhD,oCAAoC;AACpC,eAAO,MAAM,aAAa,GAAI,GAAG,MAAM,KAAG,MAIzC,CAAC;AAOF,2FAA2F;AAC3F,eAAO,MAAM,aAAa,GAAI,GAAG,MAAM,KAAG,MAMzC,CAAC;AAEF,kFAAkF;AAClF,eAAO,MAAM,iBAAiB,GAAI,GAAG,MAAM,KAAG,MAI3C,CAAC;AAEJ,8EAA8E;AAC9E,eAAO,MAAM,cAAc,GAAI,GAAG,IAAI,KAAG,MACmB,CAAC;AAI7D,qGAAqG;AACrG,eAAO,MAAM,aAAa,QAAO,MAUhC,CAAC"}
@@ -0,0 +1,21 @@
1
+ /**
2
+ * The one translation between the kit's integer index space and 'YYYY-MM-DD'.
3
+ *
4
+ * Every surface addresses a day as `dayIndex`, an offset from `range.start`.
5
+ * `buildRange` pays for the strings once; after that both directions are O(1)
6
+ * and allocation-free: `dayIndexOf` is a subtraction, `ymdAt` an array read.
7
+ */
8
+ import type { CalendarRange, DateString } from '../types';
9
+ /** Index of `ymd` within `range`. May fall outside `[0, days)`; NaN if malformed. */
10
+ export declare const dayIndexOf: (range: CalendarRange, ymd: DateString) => number;
11
+ /** 'YYYY-MM-DD' at `idx`. Defined for any integer; callers clamp first. */
12
+ export declare const ymdAt: (range: CalendarRange, idx: number) => DateString;
13
+ /** The single gating predicate: an index is selectable iff clamping leaves it alone. */
14
+ export declare const clampIndex: (range: CalendarRange, idx: number) => number;
15
+ export declare const todayIndexOf: (startEpochDay: number, days: number) => number;
16
+ /**
17
+ * `start` is pushed back to the `firstDay` week boundary and `days` rounded up
18
+ * to whole weeks, so `floor(dayIndex / 7)` is always a week page.
19
+ */
20
+ export declare const buildRange: (minDate: Date, maxDate: Date, firstDay?: number) => CalendarRange;
21
+ //# sourceMappingURL=dateKey.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"dateKey.d.ts","sourceRoot":"","sources":["../../../../src/core/dateKey.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAGH,OAAO,KAAK,EAAE,aAAa,EAAE,UAAU,EAAE,MAAM,UAAU,CAAC;AAE1D,qFAAqF;AACrF,eAAO,MAAM,UAAU,GAAI,OAAO,aAAa,EAAE,KAAK,UAAU,KAAG,MACzB,CAAC;AAE3C,2EAA2E;AAC3E,eAAO,MAAM,KAAK,GAAI,OAAO,aAAa,EAAE,KAAK,MAAM,KAAG,UACS,CAAC;AAEpE,wFAAwF;AACxF,eAAO,MAAM,UAAU,GAAI,OAAO,aAAa,EAAE,KAAK,MAAM,KAAG,MACsB,CAAC;AAEtF,eAAO,MAAM,YAAY,GAAI,eAAe,MAAM,EAAE,MAAM,MAAM,KAAG,MAGlE,CAAC;AAEF;;;GAGG;AACH,eAAO,MAAM,UAAU,GAAI,SAAS,IAAI,EAAE,SAAS,IAAI,EAAE,WAAU,MAAU,KAAG,aAmB/E,CAAC"}
@@ -0,0 +1,18 @@
1
+ /**
2
+ * The kit's motion inputs and the two accessibility flags it obeys.
3
+ *
4
+ * Durations come from `theme/tokens` (`ANIMATION.fast/base/slow`). They are
5
+ * module constants, not themeable: `KIT_EASING` is captured by worklets at
6
+ * module scope and so cannot read a React context.
7
+ */
8
+ export declare const KIT_EASING: import("react-native-reanimated").EasingFunctionFactory;
9
+ /** Reanimated treats `duration: 0` as an immediate set, so a snap stays a snap. */
10
+ export declare const kitDuration: (ms: number, reduced: boolean) => number;
11
+ /** Subscribe ONCE per tree: the provider reads it and publishes it on the context. */
12
+ export declare const useReduceMotion: () => boolean;
13
+ /**
14
+ * TalkBack does not see opacity, so the stacked week strip and month grid would
15
+ * both be read. `ExpandableCalendar` renders a static grid while this is true.
16
+ */
17
+ export declare const useScreenReaderEnabled: () => boolean;
18
+ //# sourceMappingURL=motion.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"motion.d.ts","sourceRoot":"","sources":["../../../../src/core/motion.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAOH,eAAO,MAAM,UAAU,yDAAkC,CAAC;AAE1D,mFAAmF;AACnF,eAAO,MAAM,WAAW,GAAI,IAAI,MAAM,EAAE,SAAS,OAAO,KAAG,MAA4B,CAAC;AA0BxF,sFAAsF;AACtF,eAAO,MAAM,eAAe,QAAO,OAA+D,CAAC;AAEnG;;;GAGG;AACH,eAAO,MAAM,sBAAsB,QAAO,OACY,CAAC"}
@@ -0,0 +1,12 @@
1
+ /**
2
+ * Module-scope `'worklet'` helpers. The babel plugin workletizes a top-level
3
+ * function with the directive unconditionally; inside a hook call it depends on
4
+ * configuration (`hooks/useChromeScrub.ts:24-39`).
5
+ */
6
+ /**
7
+ * Largest `i` with `offsets[i] <= y`, or 0. `offsets` is a strictly increasing
8
+ * prefix-sum table, so the search is exact and allocation-free.
9
+ */
10
+ export declare const bsearchLE: (offsets: readonly number[], y: number) => number;
11
+ export declare const clampNum: (v: number, lo: number, hi: number) => number;
12
+ //# sourceMappingURL=worklets.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"worklets.d.ts","sourceRoot":"","sources":["../../../../src/core/worklets.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH;;;GAGG;AACH,eAAO,MAAM,SAAS,GAAI,SAAS,SAAS,MAAM,EAAE,EAAE,GAAG,MAAM,KAAG,MAajE,CAAC;AAEF,eAAO,MAAM,QAAQ,GAAI,GAAG,MAAM,EAAE,IAAI,MAAM,EAAE,IAAI,MAAM,KAAG,MAG5D,CAAC"}
@@ -0,0 +1,22 @@
1
+ /**
2
+ * One day in the MONTH GRID. Selection arrives as a plain prop from the committed
3
+ * date, and `memo` on primitive props means a commit re-renders two cells, not the
4
+ * month. (The week strip tracks a fling frame by frame with one pill instead.)
5
+ */
6
+ type Props = {
7
+ dayIndex: number;
8
+ label: string;
9
+ left: number;
10
+ top: number;
11
+ isToday: boolean;
12
+ isDisabled: boolean;
13
+ isSelected: boolean;
14
+ /** `null` = no dot, `''` = default colour. */
15
+ dot: string | null;
16
+ onPress: (dayIndex: number) => void;
17
+ /** The caller's spoken date; the bare number is read when absent. */
18
+ accessibilityLabel?: string;
19
+ };
20
+ export declare const DayCell: import("react").MemoExoticComponent<({ dayIndex, label, left, top, isToday, isDisabled, isSelected, dot, onPress, accessibilityLabel, }: Props) => import("react").JSX.Element>;
21
+ export {};
22
+ //# sourceMappingURL=DayCell.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"DayCell.d.ts","sourceRoot":"","sources":["../../../../src/expandable/DayCell.tsx"],"names":[],"mappings":"AAAA;;;;GAIG;AASH,KAAK,KAAK,GAAG;IACX,QAAQ,EAAE,MAAM,CAAC;IACjB,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,MAAM,CAAC;IACb,GAAG,EAAE,MAAM,CAAC;IACZ,OAAO,EAAE,OAAO,CAAC;IACjB,UAAU,EAAE,OAAO,CAAC;IACpB,UAAU,EAAE,OAAO,CAAC;IACpB,8CAA8C;IAC9C,GAAG,EAAE,MAAM,GAAG,IAAI,CAAC;IACnB,OAAO,EAAE,CAAC,QAAQ,EAAE,MAAM,KAAK,IAAI,CAAC;IACpC,qEAAqE;IACrE,kBAAkB,CAAC,EAAE,MAAM,CAAC;CAC7B,CAAC;AAkCF,eAAO,MAAM,OAAO,2IArBjB,KAAK,iCAqBiC,CAAC"}
@@ -0,0 +1,40 @@
1
+ /**
2
+ * The expandable calendar — week strip closed, month grid open — and the body it
3
+ * pushes down.
4
+ *
5
+ * Nothing animates height. `progress` (0 closed, 1 open) moves and every layer
6
+ * reads it as a transform or opacity: the month layer fades in and slides from
7
+ * "selected week on top" to its natural place, the strip fades out, and the knob
8
+ * and fixed-height body translate by `progress · travel`, where `travel` belongs
9
+ * to the VISIBLE month and re-targets when that changes while open.
10
+ *
11
+ * The body renders `children` because it must read `progress`. A list drag closes
12
+ * an open calendar: the grid shows the committed date, the list the day under it.
13
+ * With a screen reader the calendar is a static open month grid — TalkBack ignores
14
+ * opacity, would read strip and grid both, and cannot perform the pan.
15
+ */
16
+ import type { ExpandableCalendarProps } from '../types';
17
+ export declare const ExpandableCalendar: import("react").NamedExoticComponent<import("../types").ExpandableCalendarCompatProps & {
18
+ initialPosition?: import("..").CalendarPosition;
19
+ onCalendarToggled?: (isOpen: boolean) => void;
20
+ style?: import("react-native").StyleProp<import("react-native").ViewStyle>;
21
+ closeOnDayPress?: boolean;
22
+ closeOnListScroll?: boolean;
23
+ markedDates?: import("..").MarkedDates;
24
+ disablePan?: boolean;
25
+ openThreshold?: number;
26
+ closeThreshold?: number;
27
+ knobAccessibilityLabel?: string;
28
+ dayAccessibilityLabel?: (date: import("..").DateString) => string;
29
+ monthShortLabels?: readonly string[];
30
+ children?: import("react").ReactNode;
31
+ ref?: React.Ref<import("..").ExpandableCalendarRef>;
32
+ }> & {
33
+ readonly type: ({ initialPosition, onCalendarToggled, style, closeOnDayPress, closeOnListScroll, markedDates, disablePan, openThreshold, closeThreshold, knobAccessibilityLabel, dayAccessibilityLabel, monthShortLabels, children, ref, }: ExpandableCalendarProps) => import("react").JSX.Element;
34
+ } & {
35
+ positions: {
36
+ readonly CLOSED: "closed";
37
+ readonly OPEN: "open";
38
+ };
39
+ };
40
+ //# sourceMappingURL=ExpandableCalendar.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ExpandableCalendar.d.ts","sourceRoot":"","sources":["../../../../src/expandable/ExpandableCalendar.tsx"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AA0BH,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,UAAU,CAAC;AAmNxD,eAAO,MAAM,kBAAkB;;;;;;;;;;;;;;;;gPApL5B,uBAAuB;;;;;;CAsLxB,CAAC"}
@@ -0,0 +1,19 @@
1
+ /**
2
+ * The drag band under the calendar. A tap toggles; a drag anywhere on the
3
+ * calendar (not just here) opens and closes — the band is the affordance, not
4
+ * the only hit area.
5
+ *
6
+ * A `Pressable`, not a `Gesture.Tap` raced against the pan. The tap belongs to
7
+ * the knob alone; racing a tap on the whole detector would make every day-cell
8
+ * tap also toggle the calendar.
9
+ */
10
+ import { type StyleProp, type ViewStyle } from 'react-native';
11
+ import { type AnimatedStyle } from 'react-native-reanimated';
12
+ type Props = {
13
+ animatedStyle: StyleProp<AnimatedStyle<StyleProp<ViewStyle>>>;
14
+ onPress: () => void;
15
+ accessibilityLabel?: string;
16
+ };
17
+ export declare const Knob: import("react").MemoExoticComponent<({ animatedStyle, onPress, accessibilityLabel }: Props) => import("react").JSX.Element>;
18
+ export {};
19
+ //# sourceMappingURL=Knob.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Knob.d.ts","sourceRoot":"","sources":["../../../../src/expandable/Knob.tsx"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAKH,OAAO,EAA+B,KAAK,SAAS,EAAE,KAAK,SAAS,EAAE,MAAM,cAAc,CAAC;AAC3F,OAAiB,EAAE,KAAK,aAAa,EAAE,MAAM,yBAAyB,CAAC;AAGvE,KAAK,KAAK,GAAG;IACX,aAAa,EAAE,SAAS,CAAC,aAAa,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC;IAC9D,OAAO,EAAE,MAAM,IAAI,CAAC;IACpB,kBAAkB,CAAC,EAAE,MAAM,CAAC;CAC7B,CAAC;AAkBF,eAAO,MAAM,IAAI,uFAhBkD,KAAK,iCAgBrC,CAAC"}
@@ -0,0 +1,35 @@
1
+ /**
2
+ * The open calendar: one month per page across the selectable window.
3
+ *
4
+ * Selection is the COMMITTED date as a plain prop, handed only to the page that
5
+ * holds it, so a commit re-renders at most two pages and two memo'd cells.
6
+ *
7
+ * Mounted pages derive from that same committed date. Closed, only its month
8
+ * exists: the layer is invisible, and every month crossing commits a date. Open,
9
+ * its two neighbours join so a swipe shows one; a swipe that lands commits the
10
+ * new month, which re-centres the window. A screen reader pages by scroll
11
+ * actions, so it gets every month. Moves page the pager instantly even while
12
+ * closed, so opening shows the right month.
13
+ */
14
+ import { type StyleProp, type ViewStyle } from 'react-native';
15
+ import { type AnimatedStyle, type SharedValue } from 'react-native-reanimated';
16
+ import { type MonthPages } from './calendarCells';
17
+ type Props = {
18
+ width: number;
19
+ lefts: number[];
20
+ pages: MonthPages;
21
+ pagesSV: SharedValue<MonthPages>;
22
+ labels: string[];
23
+ a11yLabels?: string[];
24
+ dots: (string | null)[];
25
+ selectedIndex: number;
26
+ initialPage: number;
27
+ visiblePage: SharedValue<number>;
28
+ onDayPress: (dayIndex: number) => void;
29
+ animatedStyle: StyleProp<AnimatedStyle<StyleProp<ViewStyle>>>;
30
+ isOpen: boolean;
31
+ screenReader: boolean;
32
+ };
33
+ export declare const MonthPager: import("react").MemoExoticComponent<({ width, lefts, pages, pagesSV, labels, a11yLabels, dots, selectedIndex, initialPage, visiblePage, onDayPress, animatedStyle, isOpen, screenReader, }: Props) => import("react").JSX.Element>;
34
+ export {};
35
+ //# sourceMappingURL=MonthPager.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"MonthPager.d.ts","sourceRoot":"","sources":["../../../../src/expandable/MonthPager.tsx"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAGH,OAAO,EAAoB,KAAK,SAAS,EAAE,KAAK,SAAS,EAAE,MAAM,cAAc,CAAC;AAChF,OAAiB,EAAE,KAAK,aAAa,EAAE,KAAK,WAAW,EAAE,MAAM,yBAAyB,CAAC;AAGzF,OAAO,EAAe,KAAK,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAuE/D,KAAK,KAAK,GAAG;IACX,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,EAAE,CAAC;IAChB,KAAK,EAAE,UAAU,CAAC;IAClB,OAAO,EAAE,WAAW,CAAC,UAAU,CAAC,CAAC;IACjC,MAAM,EAAE,MAAM,EAAE,CAAC;IACjB,UAAU,CAAC,EAAE,MAAM,EAAE,CAAC;IACtB,IAAI,EAAE,CAAC,MAAM,GAAG,IAAI,CAAC,EAAE,CAAC;IACxB,aAAa,EAAE,MAAM,CAAC;IACtB,WAAW,EAAE,MAAM,CAAC;IACpB,WAAW,EAAE,WAAW,CAAC,MAAM,CAAC,CAAC;IACjC,UAAU,EAAE,CAAC,QAAQ,EAAE,MAAM,KAAK,IAAI,CAAC;IACvC,aAAa,EAAE,SAAS,CAAC,aAAa,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC;IAC9D,MAAM,EAAE,OAAO,CAAC;IAChB,YAAY,EAAE,OAAO,CAAC;CACvB,CAAC;AAgGF,eAAO,MAAM,UAAU,8LA/EpB,KAAK,iCA+EuC,CAAC"}
@@ -0,0 +1,34 @@
1
+ /**
2
+ * The closed calendar: a vertical TAPE of weeks seen through a one-row window.
3
+ *
4
+ * Every week is a row stacked in one `Animated.View`; the window clips it and
5
+ * `weekPos` translates it, so crossing into the next week slides the tape up and
6
+ * crossing back slides it down — the owner's Teams reference (2026-09-11). A move
7
+ * of more than a week jumps: the agenda jumps too, and a slide through months
8
+ * would read as a blur.
9
+ *
10
+ * Selection is TWO pills riding the tape: the new day's fades in while the old
11
+ * day's fades out, on the UI thread, with no React commit. Each pill shows its
12
+ * day through one non-editable TextInput (`text` is an animated prop —
13
+ * Reanimated's own `PerformanceMonitor` idiom) and one dot for a marked day.
14
+ *
15
+ * Alternate months sit on a canvas band and a 1st carries its month's short name,
16
+ * so a month edge shows inside a week. A horizontal swipe moves one week.
17
+ */
18
+ import { type StyleProp, type ViewStyle } from 'react-native';
19
+ import { type AnimatedStyle } from 'react-native-reanimated';
20
+ type Props = {
21
+ width: number;
22
+ /** `cellLefts(width)`: one array per width, shared by every row. */
23
+ lefts: number[];
24
+ labels: string[];
25
+ ordinals: number[];
26
+ monthShortLabels?: readonly string[];
27
+ dots: (string | null)[];
28
+ onDayPress: (dayIndex: number) => void;
29
+ animatedStyle: StyleProp<AnimatedStyle<StyleProp<ViewStyle>>>;
30
+ interactive: boolean;
31
+ };
32
+ export declare const WeekStrip: import("react").MemoExoticComponent<({ width, lefts, labels, ordinals, monthShortLabels, dots, onDayPress, animatedStyle, interactive, }: Props) => import("react").JSX.Element>;
33
+ export {};
34
+ //# sourceMappingURL=WeekStrip.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"WeekStrip.d.ts","sourceRoot":"","sources":["../../../../src/expandable/WeekStrip.tsx"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AAKH,OAAO,EAA0C,KAAK,SAAS,EAAE,KAAK,SAAS,EAAE,MAAM,cAAc,CAAC;AAEtG,OAAiB,EAOf,KAAK,aAAa,EAEnB,MAAM,yBAAyB,CAAC;AAuKjC,KAAK,KAAK,GAAG;IACX,KAAK,EAAE,MAAM,CAAC;IACd,oEAAoE;IACpE,KAAK,EAAE,MAAM,EAAE,CAAC;IAChB,MAAM,EAAE,MAAM,EAAE,CAAC;IACjB,QAAQ,EAAE,MAAM,EAAE,CAAC;IACnB,gBAAgB,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;IACrC,IAAI,EAAE,CAAC,MAAM,GAAG,IAAI,CAAC,EAAE,CAAC;IACxB,UAAU,EAAE,CAAC,QAAQ,EAAE,MAAM,KAAK,IAAI,CAAC;IACvC,aAAa,EAAE,SAAS,CAAC,aAAa,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC;IAC9D,WAAW,EAAE,OAAO,CAAC;CACtB,CAAC;AAiKF,eAAO,MAAM,SAAS,4IArJnB,KAAK,iCAqJqC,CAAC"}