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,180 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.MonthPager = void 0;
7
+ var _react = require("react");
8
+ var _reactNative = require("react-native");
9
+ var _reactNativeReanimated = _interopRequireDefault(require("react-native-reanimated"));
10
+ var _CalendarContext = require("../core/CalendarContext.js");
11
+ var _dateKey = require("../core/dateKey.js");
12
+ var _calendarCells = require("./calendarCells.js");
13
+ var _DayCell = require("./DayCell.js");
14
+ var _geometry = require("./geometry.js");
15
+ var _useHorizontalPager = require("./useHorizontalPager.js");
16
+ var _jsxRuntime = require("react/jsx-runtime");
17
+ function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
18
+ /**
19
+ * The open calendar: one month per page across the selectable window.
20
+ *
21
+ * Selection is the COMMITTED date as a plain prop, handed only to the page that
22
+ * holds it, so a commit re-renders at most two pages and two memo'd cells.
23
+ *
24
+ * Mounted pages derive from that same committed date. Closed, only its month
25
+ * exists: the layer is invisible, and every month crossing commits a date. Open,
26
+ * its two neighbours join so a swipe shows one; a swipe that lands commits the
27
+ * new month, which re-centres the window. A screen reader pages by scroll
28
+ * actions, so it gets every month. Moves page the pager instantly even while
29
+ * closed, so opening shows the right month.
30
+ */
31
+
32
+ const GRID_HEIGHT = _geometry.MAX_WEEKS * _geometry.WEEK_ROW_HEIGHT;
33
+ const MonthGrid = /*#__PURE__*/(0, _react.memo)(({
34
+ page,
35
+ width,
36
+ lefts,
37
+ gridStart,
38
+ weeks,
39
+ rawPageByIndex,
40
+ labels,
41
+ a11yLabels,
42
+ dots,
43
+ selectedIndex,
44
+ todayIndex,
45
+ minIndex,
46
+ maxIndex,
47
+ onDayPress
48
+ }) => {
49
+ const cells = [];
50
+ for (let r = 0; r < weeks; r += 1) {
51
+ for (let c = 0; c < 7; c += 1) {
52
+ const i = gridStart + r * 7 + c;
53
+ // Days of the neighbouring months are blank, as the library's `hideExtraDays` draws them.
54
+ if (i < 0 || i >= labels.length || rawPageByIndex[i] !== page) continue;
55
+ cells.push(/*#__PURE__*/(0, _jsxRuntime.jsx)(_DayCell.DayCell, {
56
+ dayIndex: i,
57
+ label: labels[i],
58
+ accessibilityLabel: a11yLabels?.[i],
59
+ left: lefts[c],
60
+ top: r * _geometry.WEEK_ROW_HEIGHT + _geometry.WEEK_ROW_V_MARGIN,
61
+ isToday: i === todayIndex,
62
+ isDisabled: i < minIndex || i > maxIndex,
63
+ isSelected: i === selectedIndex,
64
+ dot: dots[i],
65
+ onPress: onDayPress
66
+ }, i));
67
+ }
68
+ }
69
+ return /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.View, {
70
+ style: [styles.grid, {
71
+ left: page * width,
72
+ width
73
+ }],
74
+ children: cells
75
+ });
76
+ });
77
+ MonthGrid.displayName = 'MonthGrid';
78
+ const MonthPagerInner = ({
79
+ width,
80
+ lefts,
81
+ pages,
82
+ pagesSV,
83
+ labels,
84
+ a11yLabels,
85
+ dots,
86
+ selectedIndex,
87
+ initialPage,
88
+ visiblePage,
89
+ onDayPress,
90
+ animatedStyle,
91
+ isOpen,
92
+ screenReader
93
+ }) => {
94
+ const {
95
+ range,
96
+ setDate
97
+ } = (0, _CalendarContext.useCalendarContext)();
98
+
99
+ /** A swipe landed on another month: select its first selectable day. */
100
+ const onMonthSettled = (0, _react.useCallback)(page => {
101
+ setDate((0, _dateKey.ymdAt)(range, (0, _dateKey.clampIndex)(range, pages.monthStartByPage[page])), 'pageScroll', 'month');
102
+ }, [pages, range, setDate]);
103
+ const pageOf = (0, _react.useCallback)(idx => {
104
+ 'worklet';
105
+
106
+ return (0, _calendarCells.pageOfIndex)(pagesSV.value, idx);
107
+ }, [pagesSV]);
108
+ const pager = (0, _useHorizontalPager.useHorizontalPager)({
109
+ width,
110
+ initialPage,
111
+ origin: 'month',
112
+ pageOf,
113
+ page: visiblePage,
114
+ onSettled: onMonthSettled
115
+ });
116
+ const interactive = isOpen || screenReader;
117
+ const committed = (0, _calendarCells.pageOfIndex)(pages, (0, _dateKey.clampIndex)(range, selectedIndex));
118
+ const reach = isOpen ? 1 : 0;
119
+ const first = screenReader ? 0 : Math.max(0, committed - reach);
120
+ const last = screenReader ? pages.count - 1 : Math.min(pages.count - 1, committed + reach);
121
+ const grids = [];
122
+ for (let p = first; p <= last; p += 1) {
123
+ grids.push(/*#__PURE__*/(0, _jsxRuntime.jsx)(MonthGrid, {
124
+ page: p,
125
+ width: width,
126
+ lefts: lefts,
127
+ gridStart: pages.gridStartByPage[p],
128
+ weeks: pages.weeksByPage[p],
129
+ rawPageByIndex: pages.rawPageByIndex,
130
+ labels: labels,
131
+ a11yLabels: a11yLabels,
132
+ dots: dots,
133
+ selectedIndex: pages.rawPageByIndex[selectedIndex] === p ? selectedIndex : -1,
134
+ todayIndex: range.todayIndex,
135
+ minIndex: range.minIndex,
136
+ maxIndex: range.maxIndex,
137
+ onDayPress: onDayPress
138
+ }, p));
139
+ }
140
+ return /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNativeReanimated.default.View, {
141
+ pointerEvents: interactive ? 'auto' : 'none',
142
+ style: [styles.root, {
143
+ width
144
+ }, animatedStyle],
145
+ children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNativeReanimated.default.ScrollView, {
146
+ ref: pager.ref,
147
+ horizontal: true,
148
+ pagingEnabled: true,
149
+ showsHorizontalScrollIndicator: false,
150
+ scrollEnabled: interactive,
151
+ onScroll: pager.onScroll,
152
+ scrollEventThrottle: _useHorizontalPager.PAGER_SCROLL_THROTTLE,
153
+ contentOffset: pager.contentOffset,
154
+ onLayout: pager.onLayout,
155
+ children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.View, {
156
+ style: {
157
+ width: pages.count * width,
158
+ height: GRID_HEIGHT
159
+ },
160
+ children: grids
161
+ })
162
+ })
163
+ });
164
+ };
165
+ const MonthPager = exports.MonthPager = /*#__PURE__*/(0, _react.memo)(MonthPagerInner);
166
+ MonthPager.displayName = 'MonthPager';
167
+ const styles = _reactNative.StyleSheet.create({
168
+ root: {
169
+ position: 'absolute',
170
+ top: 0,
171
+ left: 0,
172
+ height: GRID_HEIGHT
173
+ },
174
+ grid: {
175
+ position: 'absolute',
176
+ top: 0,
177
+ height: GRID_HEIGHT
178
+ }
179
+ });
180
+ //# sourceMappingURL=MonthPager.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["_react","require","_reactNative","_reactNativeReanimated","_interopRequireDefault","_CalendarContext","_dateKey","_calendarCells","_DayCell","_geometry","_useHorizontalPager","_jsxRuntime","e","__esModule","default","GRID_HEIGHT","MAX_WEEKS","WEEK_ROW_HEIGHT","MonthGrid","memo","page","width","lefts","gridStart","weeks","rawPageByIndex","labels","a11yLabels","dots","selectedIndex","todayIndex","minIndex","maxIndex","onDayPress","cells","r","c","i","length","push","jsx","DayCell","dayIndex","label","accessibilityLabel","left","top","WEEK_ROW_V_MARGIN","isToday","isDisabled","isSelected","dot","onPress","View","style","styles","grid","children","displayName","MonthPagerInner","pages","pagesSV","initialPage","visiblePage","animatedStyle","isOpen","screenReader","range","setDate","useCalendarContext","onMonthSettled","useCallback","ymdAt","clampIndex","monthStartByPage","pageOf","idx","pageOfIndex","value","pager","useHorizontalPager","origin","onSettled","interactive","committed","reach","first","Math","max","last","count","min","grids","p","gridStartByPage","weeksByPage","pointerEvents","root","ScrollView","ref","horizontal","pagingEnabled","showsHorizontalScrollIndicator","scrollEnabled","onScroll","scrollEventThrottle","PAGER_SCROLL_THROTTLE","contentOffset","onLayout","height","MonthPager","exports","StyleSheet","create","position"],"sourceRoot":"../../../src","sources":["expandable/MonthPager.tsx"],"mappings":"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","ignoreList":[]}
@@ -0,0 +1,451 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.WeekStrip = void 0;
7
+ var _index = require("../theme/index.js");
8
+ var _tokens = require("../theme/tokens.js");
9
+ var _react = require("react");
10
+ var _reactNative = require("react-native");
11
+ var _reactNativeGestureHandler = require("react-native-gesture-handler");
12
+ var _reactNativeReanimated = _interopRequireWildcard(require("react-native-reanimated"));
13
+ var _reactNativeWorklets = require("react-native-worklets");
14
+ var _CalendarContext = require("../core/CalendarContext.js");
15
+ var _dateKey = require("../core/dateKey.js");
16
+ var _KitText = require("../core/KitText.js");
17
+ var _motion = require("../core/motion.js");
18
+ var _calendarCells = require("./calendarCells.js");
19
+ var _geometry = require("./geometry.js");
20
+ var _jsxRuntime = require("react/jsx-runtime");
21
+ function _interopRequireWildcard(e, t) { if ("function" == typeof WeakMap) var r = new WeakMap(), n = new WeakMap(); return (_interopRequireWildcard = function (e, t) { if (!t && e && e.__esModule) return e; var o, i, f = { __proto__: null, default: e }; if (null === e || "object" != typeof e && "function" != typeof e) return f; if (o = t ? n : r) { if (o.has(e)) return o.get(e); o.set(e, f); } for (const t in e) "default" !== t && {}.hasOwnProperty.call(e, t) && ((i = (o = Object.defineProperty) && Object.getOwnPropertyDescriptor(e, t)) && (i.get || i.set) ? o(f, t, i) : f[t] = e[t]); return f; })(e, t); }
22
+ /**
23
+ * The closed calendar: a vertical TAPE of weeks seen through a one-row window.
24
+ *
25
+ * Every week is a row stacked in one `Animated.View`; the window clips it and
26
+ * `weekPos` translates it, so crossing into the next week slides the tape up and
27
+ * crossing back slides it down — the owner's Teams reference (2026-09-11). A move
28
+ * of more than a week jumps: the agenda jumps too, and a slide through months
29
+ * would read as a blur.
30
+ *
31
+ * Selection is TWO pills riding the tape: the new day's fades in while the old
32
+ * day's fades out, on the UI thread, with no React commit. Each pill shows its
33
+ * day through one non-editable TextInput (`text` is an animated prop —
34
+ * Reanimated's own `PerformanceMonitor` idiom) and one dot for a marked day.
35
+ *
36
+ * Alternate months sit on a canvas band and a 1st carries its month's short name,
37
+ * so a month edge shows inside a week. A horizontal swipe moves one week.
38
+ */
39
+
40
+ const AnimatedTextInput = _reactNativeReanimated.default.createAnimatedComponent(_reactNative.TextInput);
41
+ const DOT_INSET = (_geometry.DAY_CELL - _geometry.DOT_SIZE) / 2;
42
+ /** Where DayCell's flow puts the dot, from the cell top: text margin, the declared line box, the dot's own margin. */
43
+ const DOT_TOP = _geometry.DAY_TEXT_MARGIN_TOP + _geometry.DAY_LINE_HEIGHT + _geometry.DOT_MARGIN_TOP;
44
+ /** How far a 1st's number and dot sit below every other day's. */
45
+ const FIRST_SHIFT = _geometry.FIRST_OF_MONTH_TEXT_TOP - _geometry.DAY_TEXT_MARGIN_TOP;
46
+ const WeekRow = /*#__PURE__*/(0, _react.memo)(({
47
+ week,
48
+ width,
49
+ lefts,
50
+ labels,
51
+ ordinals,
52
+ monthShortLabels,
53
+ dots,
54
+ todayIndex,
55
+ minIndex,
56
+ maxIndex,
57
+ onDayPress
58
+ }) => {
59
+ const styles = (0, _index.useKitStyles)(makeStyles);
60
+ const start = week * 7;
61
+ const cells = [];
62
+
63
+ // Months with an even ordinal (Jan, Mar … Nov) take the band. A week holds at
64
+ // most two months, so its banded days are one run.
65
+ let bandFrom = -1;
66
+ let bandTo = -1;
67
+ for (let col = 0; col < 7 && start + col < labels.length; col += 1) {
68
+ if ((ordinals[start + col] & 1) === 0) {
69
+ if (bandFrom < 0) bandFrom = col;
70
+ bandTo = col;
71
+ }
72
+ }
73
+ if (bandFrom >= 0) {
74
+ const left = bandFrom === 0 ? 0 : (0, _calendarCells.columnEdge)(width, bandFrom);
75
+ const right = bandTo === 6 ? width : (0, _calendarCells.columnEdge)(width, bandTo + 1);
76
+ cells.push(/*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.View, {
77
+ style: [styles.band, {
78
+ left,
79
+ width: right - left
80
+ }]
81
+ }, "band"));
82
+ }
83
+ for (let col = 0; col < 7; col += 1) {
84
+ const i = start + col;
85
+ if (i >= labels.length) break;
86
+ const left = lefts[col];
87
+ const first = monthShortLabels !== undefined && labels[i] === '1';
88
+ const tone = i < minIndex || i > maxIndex ? styles.labelDisabled : i === todayIndex ? styles.labelToday : null;
89
+ if (first) {
90
+ cells.push(/*#__PURE__*/(0, _jsxRuntime.jsx)(_KitText.KitText, {
91
+ style: [styles.monthLabel, {
92
+ left
93
+ }],
94
+ children: monthShortLabels?.[ordinals[i] % 12]
95
+ }, `m${i}`));
96
+ }
97
+ cells.push(/*#__PURE__*/(0, _jsxRuntime.jsx)(_KitText.KitText, {
98
+ style: [first ? styles.labelFirst : styles.label, {
99
+ left
100
+ }, tone],
101
+ children: labels[i]
102
+ }, `t${i}`));
103
+ const dot = dots[i];
104
+ if (dot !== null) {
105
+ cells.push(/*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.View, {
106
+ style: [first ? styles.dotFirst : styles.dot, {
107
+ left: left + DOT_INSET
108
+ }, dot ? {
109
+ backgroundColor: dot
110
+ } : styles.dotDefault]
111
+ }, `d${i}`));
112
+ }
113
+ }
114
+
115
+ // One Pressable per row; the column comes from the touch's x. `locationX` is
116
+ // relative to the view the finger lands on, so labels must not be hit-testable
117
+ // (they were, and every tap resolved to column 0).
118
+ return /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.Pressable, {
119
+ style: [styles.row, {
120
+ top: week * _geometry.WEEK_ROW_HEIGHT,
121
+ width
122
+ }],
123
+ onPress: e => onDayPress(start + (0, _calendarCells.columnAt)(width, e.nativeEvent.locationX)),
124
+ children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.View, {
125
+ pointerEvents: "none",
126
+ style: _reactNative.StyleSheet.absoluteFill,
127
+ children: cells
128
+ })
129
+ });
130
+ });
131
+ WeekRow.displayName = 'WeekRow';
132
+ const SelectionPill = /*#__PURE__*/(0, _react.memo)(({
133
+ index,
134
+ fade,
135
+ leavingFrom,
136
+ widthSV,
137
+ labels,
138
+ hasDot,
139
+ firstOfMonth
140
+ }) => {
141
+ const styles = (0, _index.useKitStyles)(makeStyles);
142
+ const frame = (0, _reactNativeReanimated.useAnimatedStyle)(() => {
143
+ const i = index.value;
144
+ return {
145
+ opacity: leavingFrom === null ? fade.value : leavingFrom.value * (1 - fade.value),
146
+ transform: [{
147
+ translateX: (0, _calendarCells.cellLeft)(widthSV.value, i % 7)
148
+ }, {
149
+ translateY: Math.floor(i / 7) * _geometry.WEEK_ROW_HEIGHT
150
+ }]
151
+ };
152
+ });
153
+ const content = (0, _reactNativeReanimated.useAnimatedStyle)(() => ({
154
+ transform: [{
155
+ translateY: firstOfMonth[index.value] ? FIRST_SHIFT : 0
156
+ }]
157
+ }));
158
+ const labelProps = (0, _reactNativeReanimated.useAnimatedProps)(() => {
159
+ const text = labels[index.value] ?? '';
160
+ return {
161
+ text,
162
+ defaultValue: text
163
+ };
164
+ });
165
+ const dotStyle = (0, _reactNativeReanimated.useAnimatedStyle)(() => ({
166
+ opacity: hasDot[index.value] ? 1 : 0
167
+ }));
168
+ return /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNativeReanimated.default.View, {
169
+ pointerEvents: "none",
170
+ style: [styles.pill, frame],
171
+ children: /*#__PURE__*/(0, _jsxRuntime.jsxs)(_reactNativeReanimated.default.View, {
172
+ style: [styles.pillContent, content],
173
+ children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(AnimatedTextInput, {
174
+ animatedProps: labelProps,
175
+ editable: false,
176
+ pointerEvents: "none",
177
+ caretHidden: true,
178
+ contextMenuHidden: true,
179
+ allowFontScaling: false,
180
+ maxFontSizeMultiplier: 1,
181
+ underlineColorAndroid: "transparent",
182
+ accessible: false,
183
+ importantForAccessibility: "no",
184
+ style: styles.pillLabel
185
+ }), /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNativeReanimated.default.View, {
186
+ style: [styles.pillDot, dotStyle]
187
+ })]
188
+ })
189
+ });
190
+ });
191
+ SelectionPill.displayName = 'SelectionPill';
192
+ const WeekStripInner = ({
193
+ width,
194
+ lefts,
195
+ labels,
196
+ ordinals,
197
+ monthShortLabels,
198
+ dots,
199
+ onDayPress,
200
+ animatedStyle,
201
+ interactive
202
+ }) => {
203
+ const styles = (0, _index.useKitStyles)(makeStyles);
204
+ const {
205
+ range,
206
+ store,
207
+ dateRef,
208
+ setDate,
209
+ reduceMotion
210
+ } = (0, _CalendarContext.useCalendarContext)();
211
+ const {
212
+ dayIndex
213
+ } = store;
214
+ const weekCount = range.days / 7;
215
+ const [initialIndex] = (0, _react.useState)(() => (0, _dateKey.clampIndex)(range, (0, _dateKey.dayIndexOf)(range, dateRef.current)));
216
+ const weekPos = (0, _reactNativeReanimated.useSharedValue)(Math.floor(initialIndex / 7));
217
+ /** The week the tape is headed to: a day crossing inside it must not restart the slide. */
218
+ const weekTarget = (0, _reactNativeReanimated.useSharedValue)(Math.floor(initialIndex / 7));
219
+ const current = (0, _reactNativeReanimated.useSharedValue)(initialIndex);
220
+ const previous = (0, _reactNativeReanimated.useSharedValue)(initialIndex);
221
+ const fade = (0, _reactNativeReanimated.useSharedValue)(1);
222
+ /** The leaving pill's opacity when it began to leave, so a change mid-fade does not pop it to full. */
223
+ const leavingFrom = (0, _reactNativeReanimated.useSharedValue)(0);
224
+ const widthSV = (0, _reactNativeReanimated.useSharedValue)(width);
225
+ (0, _react.useEffect)(() => {
226
+ widthSV.value = width;
227
+ }, [width, widthSV]);
228
+ const slide = (0, _motion.kitDuration)(_tokens.ANIMATION.slow, reduceMotion);
229
+ const crossfade = (0, _motion.kitDuration)(_tokens.ANIMATION.base, reduceMotion);
230
+ (0, _reactNativeReanimated.useAnimatedReaction)(() => dayIndex.value, (idx, last) => {
231
+ if (idx === last) return;
232
+ const week = Math.floor(idx / 7);
233
+ if (last === null) {
234
+ weekPos.value = week;
235
+ weekTarget.value = week;
236
+ current.value = idx;
237
+ previous.value = idx;
238
+ return;
239
+ }
240
+ if (week !== weekTarget.value) {
241
+ const far = Math.abs(week - weekPos.value) > 1.5;
242
+ weekTarget.value = week;
243
+ weekPos.value = far || slide === 0 ? week : (0, _reactNativeReanimated.withTiming)(week, {
244
+ duration: slide,
245
+ easing: _motion.KIT_EASING
246
+ });
247
+ }
248
+ leavingFrom.value = fade.value;
249
+ previous.value = current.value;
250
+ current.value = idx;
251
+ fade.value = crossfade === 0 ? 1 : (0, _reactNativeReanimated.withSequence)((0, _reactNativeReanimated.withTiming)(0, {
252
+ duration: 0
253
+ }), (0, _reactNativeReanimated.withTiming)(1, {
254
+ duration: crossfade,
255
+ easing: _motion.KIT_EASING
256
+ }));
257
+ }, [crossfade, slide]);
258
+
259
+ /** A swipe asked for `week`: select its first selectable day, unless the range ends before it. */
260
+ const onSwipe = (0, _react.useCallback)(week => {
261
+ const target = (0, _dateKey.clampIndex)(range, week * 7);
262
+ if (Math.floor(target / 7) !== week) return;
263
+ setDate((0, _dateKey.ymdAt)(range, target), 'weekScroll', 'week');
264
+ }, [range, setDate]);
265
+
266
+ // `failOffsetY` hands a vertical drag to the calendar's expand pan, whose own
267
+ // `failOffsetX(±12)` hands a horizontal one to this.
268
+ const swipe = (0, _react.useMemo)(() => _reactNativeGestureHandler.Gesture.Pan().enabled(interactive).activeOffsetX([-16, 16]).failOffsetY([-10, 10]).onEnd(e => {
269
+ 'worklet';
270
+
271
+ const dx = Math.abs(e.translationX) >= _geometry.PAN_THRESHOLD ? e.translationX : Math.abs(e.velocityX) >= _geometry.SNAP_VELOCITY ? e.velocityX : 0;
272
+ if (dx === 0) return;
273
+ (0, _reactNativeWorklets.runOnJS)(onSwipe)(Math.floor(dayIndex.value / 7) + (dx < 0 ? 1 : -1));
274
+ }), [dayIndex, interactive, onSwipe]);
275
+
276
+ // Plain arrays captured by the worklets: one table read per day crossing.
277
+ const hasDot = (0, _react.useMemo)(() => dots.map(d => d !== null), [dots]);
278
+ const firstOfMonth = (0, _react.useMemo)(() => labels.map(label => monthShortLabels !== undefined && label === '1'), [labels, monthShortLabels]);
279
+ const rows = (0, _react.useMemo)(() => {
280
+ const out = [];
281
+ for (let w = 0; w < weekCount; w += 1) {
282
+ out.push(/*#__PURE__*/(0, _jsxRuntime.jsx)(WeekRow, {
283
+ week: w,
284
+ width: width,
285
+ lefts: lefts,
286
+ labels: labels,
287
+ ordinals: ordinals,
288
+ monthShortLabels: monthShortLabels,
289
+ dots: dots,
290
+ todayIndex: range.todayIndex,
291
+ minIndex: range.minIndex,
292
+ maxIndex: range.maxIndex,
293
+ onDayPress: onDayPress
294
+ }, w));
295
+ }
296
+ return out;
297
+ }, [dots, labels, lefts, monthShortLabels, onDayPress, ordinals, range, weekCount, width]);
298
+ const tapeStyle = (0, _reactNativeReanimated.useAnimatedStyle)(() => ({
299
+ transform: [{
300
+ translateY: -weekPos.value * _geometry.WEEK_ROW_HEIGHT
301
+ }]
302
+ }));
303
+ return /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNativeGestureHandler.GestureDetector, {
304
+ gesture: swipe,
305
+ children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNativeReanimated.default.View, {
306
+ pointerEvents: interactive ? 'auto' : 'none',
307
+ style: [styles.root, {
308
+ width
309
+ }, animatedStyle],
310
+ children: /*#__PURE__*/(0, _jsxRuntime.jsxs)(_reactNativeReanimated.default.View, {
311
+ style: [styles.tape, {
312
+ width,
313
+ height: weekCount * _geometry.WEEK_ROW_HEIGHT
314
+ }, tapeStyle],
315
+ children: [rows, /*#__PURE__*/(0, _jsxRuntime.jsx)(SelectionPill, {
316
+ index: previous,
317
+ fade: fade,
318
+ leavingFrom: leavingFrom,
319
+ widthSV: widthSV,
320
+ labels: labels,
321
+ hasDot: hasDot,
322
+ firstOfMonth: firstOfMonth
323
+ }), /*#__PURE__*/(0, _jsxRuntime.jsx)(SelectionPill, {
324
+ index: current,
325
+ fade: fade,
326
+ leavingFrom: null,
327
+ widthSV: widthSV,
328
+ labels: labels,
329
+ hasDot: hasDot,
330
+ firstOfMonth: firstOfMonth
331
+ })]
332
+ })
333
+ })
334
+ });
335
+ };
336
+ const WeekStrip = exports.WeekStrip = /*#__PURE__*/(0, _react.memo)(WeekStripInner);
337
+ WeekStrip.displayName = 'WeekStrip';
338
+ const makeStyles = ({
339
+ colors,
340
+ fonts
341
+ }) => {
342
+ const text = {
343
+ position: 'absolute',
344
+ width: _geometry.DAY_CELL,
345
+ textAlign: 'center',
346
+ fontFamily: fonts.regular,
347
+ fontSize: _tokens.FONT_SIZE.sm,
348
+ lineHeight: _geometry.DAY_LINE_HEIGHT
349
+ };
350
+ const dot = {
351
+ position: 'absolute',
352
+ width: _geometry.DOT_SIZE,
353
+ height: _geometry.DOT_SIZE,
354
+ borderRadius: _tokens.RADIUS.full
355
+ };
356
+ return _reactNative.StyleSheet.create({
357
+ root: {
358
+ position: 'absolute',
359
+ top: 0,
360
+ left: 0,
361
+ height: _geometry.WEEK_ROW_HEIGHT,
362
+ overflow: 'hidden',
363
+ backgroundColor: colors.surface
364
+ },
365
+ tape: {
366
+ position: 'absolute',
367
+ top: 0,
368
+ left: 0
369
+ },
370
+ row: {
371
+ position: 'absolute',
372
+ left: 0,
373
+ height: _geometry.WEEK_ROW_HEIGHT
374
+ },
375
+ // A month's ground, alternating with the strip's own: it carries the month edge: it carries the month edge.
376
+ band: {
377
+ position: 'absolute',
378
+ top: 0,
379
+ height: _geometry.WEEK_ROW_HEIGHT,
380
+ backgroundColor: colors.canvas
381
+ },
382
+ label: {
383
+ ...text,
384
+ top: _geometry.WEEK_ROW_V_MARGIN + _geometry.DAY_TEXT_MARGIN_TOP,
385
+ color: colors.text
386
+ },
387
+ labelFirst: {
388
+ ...text,
389
+ top: _geometry.WEEK_ROW_V_MARGIN + _geometry.FIRST_OF_MONTH_TEXT_TOP,
390
+ color: colors.text
391
+ },
392
+ labelToday: {
393
+ color: colors.accent
394
+ },
395
+ labelDisabled: {
396
+ color: colors.textMuted
397
+ },
398
+ // Metadata: the muted tier, at the 11 px legibility floor.
399
+ monthLabel: {
400
+ position: 'absolute',
401
+ width: _geometry.DAY_CELL,
402
+ textAlign: 'center',
403
+ top: _geometry.WEEK_ROW_V_MARGIN + _geometry.MONTH_LABEL_TOP,
404
+ fontFamily: fonts.regular,
405
+ fontSize: _tokens.FONT_SIZE.xxs,
406
+ lineHeight: _geometry.MONTH_LABEL_LINE_HEIGHT,
407
+ color: colors.textMuted
408
+ },
409
+ dot: {
410
+ ...dot,
411
+ top: _geometry.WEEK_ROW_V_MARGIN + DOT_TOP
412
+ },
413
+ dotFirst: {
414
+ ...dot,
415
+ top: _geometry.WEEK_ROW_V_MARGIN + DOT_TOP + FIRST_SHIFT
416
+ },
417
+ dotDefault: {
418
+ backgroundColor: colors.accent
419
+ },
420
+ pill: {
421
+ position: 'absolute',
422
+ top: _geometry.WEEK_ROW_V_MARGIN,
423
+ left: 0,
424
+ width: _geometry.DAY_CELL,
425
+ height: _geometry.DAY_CELL,
426
+ borderRadius: _tokens.RADIUS.full,
427
+ // Active selection — the calendar's one accent fill: one accent, nowhere else.
428
+ backgroundColor: colors.accentFill
429
+ },
430
+ pillContent: {
431
+ ..._reactNative.StyleSheet.absoluteFillObject
432
+ },
433
+ // A TextInput sits where a Text does only with Android's padding and font padding zeroed.
434
+ pillLabel: {
435
+ ...text,
436
+ top: _geometry.DAY_TEXT_MARGIN_TOP,
437
+ left: 0,
438
+ height: _geometry.DAY_LINE_HEIGHT,
439
+ padding: 0,
440
+ includeFontPadding: false,
441
+ color: colors.onAccentFill
442
+ },
443
+ pillDot: {
444
+ ...dot,
445
+ top: DOT_TOP,
446
+ left: DOT_INSET,
447
+ backgroundColor: colors.onAccentFill
448
+ }
449
+ });
450
+ };
451
+ //# sourceMappingURL=WeekStrip.js.map