courthive-components 1.1.0 → 1.1.1

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 (285) hide show
  1. package/dist/assets/team-logos/index.d.ts +9 -0
  2. package/dist/components/burstChart/burstChart.d.ts +108 -0
  3. package/dist/components/burstChart/matchUpTransform.d.ts +11 -0
  4. package/dist/components/burstChart/textHelpers.d.ts +11 -0
  5. package/dist/components/button/barButton.d.ts +1 -0
  6. package/dist/components/button/cvaButton.d.ts +8 -0
  7. package/dist/components/button/dropDownButton.d.ts +5 -0
  8. package/dist/components/categories/ageCategory/ageCategory.d.ts +54 -0
  9. package/dist/components/categories/ageCategory/ageCategoryLogic.d.ts +55 -0
  10. package/dist/components/categories/category/category.d.ts +47 -0
  11. package/dist/components/composition-editor/compositionEditor.d.ts +6 -0
  12. package/dist/components/composition-editor/compositionEditorStore.d.ts +24 -0
  13. package/dist/components/composition-editor/compositionEditorTypes.d.ts +37 -0
  14. package/dist/components/composition-editor/compositionPreview.d.ts +2 -0
  15. package/dist/components/composition-editor/scaleConstants.d.ts +7 -0
  16. package/dist/components/composition-editor/sections/displaySection.d.ts +3 -0
  17. package/dist/components/composition-editor/sections/fieldBuilders.d.ts +20 -0
  18. package/dist/components/composition-editor/sections/layoutSection.d.ts +3 -0
  19. package/dist/components/composition-editor/sections/participantSection.d.ts +3 -0
  20. package/dist/components/composition-editor/sections/placeholderSection.d.ts +3 -0
  21. package/dist/components/composition-editor/sections/scaleSection.d.ts +3 -0
  22. package/dist/components/composition-editor/sections/scoreSection.d.ts +3 -0
  23. package/dist/components/composition-editor/sections/sectionBuilder.d.ts +8 -0
  24. package/dist/components/composition-editor/sections/themeSection.d.ts +3 -0
  25. package/dist/components/composition-editor/styles.d.ts +26 -0
  26. package/dist/components/controlBar/controlBar.d.ts +11 -0
  27. package/dist/components/controlBar/toggleOverlay.d.ts +3 -0
  28. package/dist/components/courts/courts.d.ts +7 -0
  29. package/dist/components/courts/index.d.ts +1 -0
  30. package/dist/components/drawer/drawer.d.ts +14 -0
  31. package/dist/components/flightProfile/flightProfileLogic.d.ts +51 -0
  32. package/dist/components/flightProfile/flightProfileNew.d.ts +34 -0
  33. package/dist/components/flightProfile/getFlightProfileFormItems.d.ts +13 -0
  34. package/dist/components/flightProfile/getFlightProfileFormRelationships.d.ts +1 -0
  35. package/dist/components/forms/createMultiSelect.d.ts +34 -0
  36. package/dist/components/forms/renderButtons.d.ts +3 -0
  37. package/dist/components/forms/renderField.d.ts +7 -0
  38. package/dist/components/forms/renderForm.d.ts +1 -0
  39. package/dist/components/forms/renderMenu.d.ts +3 -0
  40. package/dist/components/forms/renderValidator.d.ts +113 -0
  41. package/dist/components/forms/styles.d.ts +0 -0
  42. package/dist/components/generateRound.d.ts +6 -0
  43. package/dist/components/inline-scoring/engineToMatchUp.d.ts +6 -0
  44. package/dist/components/inline-scoring/index.d.ts +5 -0
  45. package/dist/components/inline-scoring/inlineScoringFooter.d.ts +18 -0
  46. package/dist/components/inline-scoring/inlineScoringManager.d.ts +49 -0
  47. package/dist/components/inline-scoring/inlineScoringTypes.d.ts +40 -0
  48. package/dist/components/inline-scoring/renderInlineMatchUp.d.ts +27 -0
  49. package/dist/components/interactive-scoring/buildInteractiveScoringShell.d.ts +28 -0
  50. package/dist/components/interactive-scoring/index.d.ts +2 -0
  51. package/dist/components/interactive-scoring/types.d.ts +60 -0
  52. package/dist/components/matchUpFormat/matchUpFormat.d.ts +81 -0
  53. package/dist/components/matchUpFormat/matchUpFormatLogic.d.ts +112 -0
  54. package/dist/components/modal/cmodal.d.ts +30 -0
  55. package/dist/components/modal/cmodalStyles.d.ts +8 -0
  56. package/dist/components/modal/compositionEditorModal.d.ts +46 -0
  57. package/dist/components/modal/generateTeamsModal.d.ts +26 -0
  58. package/dist/components/modal/mockParticipants.d.ts +91 -0
  59. package/dist/components/modal/scheduleCellConfigModal.d.ts +44 -0
  60. package/dist/components/modal/selectItem.d.ts +24 -0
  61. package/dist/components/notes-toolbar/notesToolbar.d.ts +20 -0
  62. package/dist/components/policy-catalog/controller/policyCatalogControl.d.ts +18 -0
  63. package/dist/components/policy-catalog/domain/catalogProjections.d.ts +11 -0
  64. package/dist/components/policy-catalog/domain/policyDefaults.d.ts +26 -0
  65. package/dist/components/policy-catalog/domain/utils.d.ts +4 -0
  66. package/dist/components/policy-catalog/editors/ranking/domain/emptyRankingPolicy.d.ts +2 -0
  67. package/dist/components/policy-catalog/editors/ranking/domain/rankingProjections.d.ts +32 -0
  68. package/dist/components/policy-catalog/editors/ranking/index.d.ts +9 -0
  69. package/dist/components/policy-catalog/editors/ranking/rankingPointsEditorControl.d.ts +27 -0
  70. package/dist/components/policy-catalog/editors/ranking/rankingPointsEditorPanel.d.ts +8 -0
  71. package/dist/components/policy-catalog/editors/ranking/rankingPointsEditorStore.d.ts +53 -0
  72. package/dist/components/policy-catalog/editors/ranking/sections/aggregationSection.d.ts +6 -0
  73. package/dist/components/policy-catalog/editors/ranking/sections/bonusPointsRow.d.ts +6 -0
  74. package/dist/components/policy-catalog/editors/ranking/sections/metadataSection.d.ts +6 -0
  75. package/dist/components/policy-catalog/editors/ranking/sections/perWinPointsRow.d.ts +6 -0
  76. package/dist/components/policy-catalog/editors/ranking/sections/positionPointsTable.d.ts +6 -0
  77. package/dist/components/policy-catalog/editors/ranking/sections/profileCard.d.ts +6 -0
  78. package/dist/components/policy-catalog/editors/ranking/sections/qualityWinSection.d.ts +6 -0
  79. package/dist/components/policy-catalog/editors/ranking/sections/scopeBadges.d.ts +2 -0
  80. package/dist/components/policy-catalog/editors/ranking/sections/scopeEditor.d.ts +6 -0
  81. package/dist/components/policy-catalog/editors/ranking/styles.d.ts +25 -0
  82. package/dist/components/policy-catalog/editors/ranking/types.d.ts +146 -0
  83. package/dist/components/policy-catalog/editors/scheduling/domain/schedulingProjections.d.ts +5 -0
  84. package/dist/components/policy-catalog/editors/scheduling/domain/schedulingValidation.d.ts +2 -0
  85. package/dist/components/policy-catalog/editors/scheduling/index.d.ts +11 -0
  86. package/dist/components/policy-catalog/editors/scheduling/schedulingEditorControl.d.ts +26 -0
  87. package/dist/components/policy-catalog/editors/scheduling/schedulingEditorPanel.d.ts +6 -0
  88. package/dist/components/policy-catalog/editors/scheduling/schedulingEditorStore.d.ts +32 -0
  89. package/dist/components/policy-catalog/editors/scheduling/sections/averageTimesSection.d.ts +6 -0
  90. package/dist/components/policy-catalog/editors/scheduling/sections/dailyLimitsSection.d.ts +6 -0
  91. package/dist/components/policy-catalog/editors/scheduling/sections/defaultTimesSection.d.ts +6 -0
  92. package/dist/components/policy-catalog/editors/scheduling/sections/formatTimeRow.d.ts +22 -0
  93. package/dist/components/policy-catalog/editors/scheduling/sections/modificationFlagsSection.d.ts +6 -0
  94. package/dist/components/policy-catalog/editors/scheduling/sections/recoveryTimesSection.d.ts +6 -0
  95. package/dist/components/policy-catalog/editors/scheduling/styles.d.ts +27 -0
  96. package/dist/components/policy-catalog/editors/scheduling/types.d.ts +65 -0
  97. package/dist/components/policy-catalog/engine/policyCatalogStore.d.ts +25 -0
  98. package/dist/components/policy-catalog/index.d.ts +22 -0
  99. package/dist/components/policy-catalog/types.d.ts +57 -0
  100. package/dist/components/policy-catalog/ui/editorShell.d.ts +11 -0
  101. package/dist/components/policy-catalog/ui/jsonEditor.d.ts +5 -0
  102. package/dist/components/policy-catalog/ui/policyCatalogLayout.d.ts +6 -0
  103. package/dist/components/policy-catalog/ui/policyCatalogPanel.d.ts +10 -0
  104. package/dist/components/policy-catalog/ui/styles.d.ts +28 -0
  105. package/dist/components/popover/tipster.d.ts +14 -0
  106. package/dist/components/print-composition-editor/printCompositionEditor.d.ts +2 -0
  107. package/dist/components/print-composition-editor/printCompositionEditorTypes.d.ts +77 -0
  108. package/dist/components/renderSchematicStructure/index.d.ts +4 -0
  109. package/dist/components/renderSchematicStructure/renderSchematicMatchUp.d.ts +26 -0
  110. package/dist/components/renderSchematicStructure/renderSchematicRound.d.ts +15 -0
  111. package/dist/components/renderSchematicStructure/renderSchematicStructure.d.ts +12 -0
  112. package/dist/components/renderStructure/isLuckyDraw.d.ts +9 -0
  113. package/dist/components/renderStructure/renderAddress.d.ts +5 -0
  114. package/dist/components/renderStructure/renderCenterInfo.d.ts +10 -0
  115. package/dist/components/renderStructure/renderContainer.d.ts +4 -0
  116. package/dist/components/renderStructure/renderFlag.d.ts +6 -0
  117. package/dist/components/renderStructure/renderFrill.d.ts +10 -0
  118. package/dist/components/renderStructure/renderGameScore.d.ts +3 -0
  119. package/dist/components/renderStructure/renderIndividual.d.ts +12 -0
  120. package/dist/components/renderStructure/renderMatchUp.d.ts +14 -0
  121. package/dist/components/renderStructure/renderParticipant.d.ts +11 -0
  122. package/dist/components/renderStructure/renderParticipantDetail.d.ts +7 -0
  123. package/dist/components/renderStructure/renderParticipantInput.d.ts +10 -0
  124. package/dist/components/renderStructure/renderPersonAttribute.d.ts +6 -0
  125. package/dist/components/renderStructure/renderRound.d.ts +17 -0
  126. package/dist/components/renderStructure/renderRoundHeader.d.ts +8 -0
  127. package/dist/components/renderStructure/renderScale.d.ts +8 -0
  128. package/dist/components/renderStructure/renderSchedule.d.ts +5 -0
  129. package/dist/components/renderStructure/renderSeeding.d.ts +6 -0
  130. package/dist/components/renderStructure/renderSide.d.ts +9 -0
  131. package/dist/components/renderStructure/renderSideScore.d.ts +16 -0
  132. package/dist/components/renderStructure/renderStatusPill.d.ts +3 -0
  133. package/dist/components/renderStructure/renderStructure.d.ts +13 -0
  134. package/dist/components/renderStructure/renderTeam.d.ts +5 -0
  135. package/dist/components/renderStructure/renderTeamLogo.d.ts +4 -0
  136. package/dist/components/renderStructure/renderTick.d.ts +3 -0
  137. package/dist/components/schedule-page/controller/schedulePageControl.d.ts +18 -0
  138. package/dist/components/schedule-page/domain/matchUpCatalogProjections.d.ts +4 -0
  139. package/dist/components/schedule-page/domain/scheduleIssues.d.ts +2 -0
  140. package/dist/components/schedule-page/domain/utils.d.ts +5 -0
  141. package/dist/components/schedule-page/engine/schedulePageStore.d.ts +34 -0
  142. package/dist/components/schedule-page/index.d.ts +24 -0
  143. package/dist/components/schedule-page/types.d.ts +218 -0
  144. package/dist/components/schedule-page/ui/courtGridSlot.d.ts +8 -0
  145. package/dist/components/schedule-page/ui/dateStrip.d.ts +5 -0
  146. package/dist/components/schedule-page/ui/inspectorPanel.d.ts +2 -0
  147. package/dist/components/schedule-page/ui/issuesPanel.d.ts +2 -0
  148. package/dist/components/schedule-page/ui/matchUpCard.d.ts +5 -0
  149. package/dist/components/schedule-page/ui/matchUpCatalog.d.ts +11 -0
  150. package/dist/components/schedule-page/ui/scheduleCellTypeAhead.d.ts +23 -0
  151. package/dist/components/schedule-page/ui/scheduleGridCell.d.ts +8 -0
  152. package/dist/components/schedule-page/ui/schedulePageLayout.d.ts +18 -0
  153. package/dist/components/schedule-page/ui/styles.d.ts +41 -0
  154. package/dist/components/scheduling-profile/controller/schedulingProfileControl.d.ts +14 -0
  155. package/dist/components/scheduling-profile/domain/catalogProjections.d.ts +16 -0
  156. package/dist/components/scheduling-profile/domain/dndApply.d.ts +2 -0
  157. package/dist/components/scheduling-profile/domain/issueIndex.d.ts +2 -0
  158. package/dist/components/scheduling-profile/domain/profileProjections.d.ts +6 -0
  159. package/dist/components/scheduling-profile/domain/utils.d.ts +7 -0
  160. package/dist/components/scheduling-profile/domain/validateProfile.d.ts +13 -0
  161. package/dist/components/scheduling-profile/engine/profileStore.d.ts +27 -0
  162. package/dist/components/scheduling-profile/index.d.ts +25 -0
  163. package/dist/components/scheduling-profile/types.d.ts +197 -0
  164. package/dist/components/scheduling-profile/ui/cardPopover.d.ts +11 -0
  165. package/dist/components/scheduling-profile/ui/dateStrip.d.ts +5 -0
  166. package/dist/components/scheduling-profile/ui/inspectorPanel.d.ts +2 -0
  167. package/dist/components/scheduling-profile/ui/issuesPanel.d.ts +5 -0
  168. package/dist/components/scheduling-profile/ui/roundCard.d.ts +12 -0
  169. package/dist/components/scheduling-profile/ui/roundCatalog.d.ts +8 -0
  170. package/dist/components/scheduling-profile/ui/schedulingProfileLayout.d.ts +15 -0
  171. package/dist/components/scheduling-profile/ui/styles.d.ts +46 -0
  172. package/dist/components/scheduling-profile/ui/venueBoard.d.ts +7 -0
  173. package/dist/components/scorecard/index.d.ts +2 -0
  174. package/dist/components/scorecard/renderScorecard.d.ts +26 -0
  175. package/dist/components/scoring/approaches/dialPadApproach.d.ts +2 -0
  176. package/dist/components/scoring/approaches/dialPadLogic.d.ts +12 -0
  177. package/dist/components/scoring/approaches/dynamicSetsApproach.d.ts +2 -0
  178. package/dist/components/scoring/approaches/freeScoreApproach.d.ts +2 -0
  179. package/dist/components/scoring/approaches/inlineScoringApproach.d.ts +2 -0
  180. package/dist/components/scoring/config.d.ts +28 -0
  181. package/dist/components/scoring/index.d.ts +6 -0
  182. package/dist/components/scoring/logic/dynamicSetsLogic.d.ts +124 -0
  183. package/dist/components/scoring/scoringModal.d.ts +2 -0
  184. package/dist/components/scoring/types.d.ts +60 -0
  185. package/dist/components/scoring/utils/scoreFormatters.d.ts +12 -0
  186. package/dist/components/scoring/utils/scoreValidator.d.ts +16 -0
  187. package/dist/components/scoring/utils/setExpansionLogic.d.ts +24 -0
  188. package/dist/components/temporal-grid/controller/temporalGridControl.d.ts +137 -0
  189. package/dist/components/temporal-grid/controller/viewProjections.d.ts +220 -0
  190. package/dist/components/temporal-grid/engine/viewState.d.ts +34 -0
  191. package/dist/components/temporal-grid/index.d.ts +18 -0
  192. package/dist/components/temporal-grid/timeline/CourtTimeline.d.ts +77 -0
  193. package/dist/components/temporal-grid/timeline/InteractionManager.d.ts +59 -0
  194. package/dist/components/temporal-grid/timeline/ItemRenderer.d.ts +35 -0
  195. package/dist/components/temporal-grid/timeline/RowLayout.d.ts +38 -0
  196. package/dist/components/temporal-grid/timeline/TimeAxis.d.ts +41 -0
  197. package/dist/components/temporal-grid/timeline/TimeScale.d.ts +106 -0
  198. package/dist/components/temporal-grid/timeline/types.d.ts +124 -0
  199. package/dist/components/temporal-grid/ui/blockPopover.d.ts +29 -0
  200. package/dist/components/temporal-grid/ui/courtAvailabilityModal.d.ts +29 -0
  201. package/dist/components/temporal-grid/ui/modernTimePicker.d.ts +46 -0
  202. package/dist/components/temporal-grid/ui/statsBar.d.ts +21 -0
  203. package/dist/components/temporal-grid/ui/temporalGrid.d.ts +149 -0
  204. package/dist/components/temporal-grid/ui/viewToolbar.d.ts +37 -0
  205. package/dist/components/topology-builder/controller/topologyBuilderControl.d.ts +19 -0
  206. package/dist/components/topology-builder/domain/feedRounds.d.ts +42 -0
  207. package/dist/components/topology-builder/domain/generateDrawFromTopology.d.ts +16 -0
  208. package/dist/components/topology-builder/domain/playoffProfilesCache.d.ts +16 -0
  209. package/dist/components/topology-builder/domain/previewGenerator.d.ts +9 -0
  210. package/dist/components/topology-builder/domain/templates.d.ts +2 -0
  211. package/dist/components/topology-builder/domain/topologyToDrawOptions.d.ts +6 -0
  212. package/dist/components/topology-builder/domain/topologyValidator.d.ts +8 -0
  213. package/dist/components/topology-builder/engine/topologyStore.d.ts +30 -0
  214. package/dist/components/topology-builder/index.d.ts +23 -0
  215. package/dist/components/topology-builder/types.d.ts +59 -0
  216. package/dist/components/topology-builder/ui/edgeEditor.d.ts +7 -0
  217. package/dist/components/topology-builder/ui/nodeEditor.d.ts +9 -0
  218. package/dist/components/topology-builder/ui/structureCard.d.ts +39 -0
  219. package/dist/components/topology-builder/ui/toolbar.d.ts +15 -0
  220. package/dist/components/topology-builder/ui/topologyBuilderLayout.d.ts +7 -0
  221. package/dist/components/topology-builder/ui/topologyCanvas.d.ts +10 -0
  222. package/dist/components/validators/numericRange.d.ts +1 -0
  223. package/dist/components/validators/numericValidator.d.ts +1 -0
  224. package/dist/compositions/compositions.d.ts +2 -0
  225. package/dist/compositions/lineHeights.d.ts +5 -0
  226. package/dist/compositions/resolvePublishedComposition.d.ts +12 -0
  227. package/dist/constants/matchUpFormats.d.ts +34 -0
  228. package/dist/courthive-components.css +1 -1
  229. package/dist/courthive-components.es.js +4 -4
  230. package/dist/courthive-components.umd.js +1 -1
  231. package/dist/data/componentConstants.d.ts +1 -0
  232. package/dist/data/generateEventData.d.ts +15 -0
  233. package/dist/data/generateMatchUps.d.ts +25 -0
  234. package/dist/helpers/createTypeAhead.d.ts +14 -0
  235. package/dist/helpers/drawStateManager.d.ts +91 -0
  236. package/dist/helpers/getAttr.d.ts +4 -0
  237. package/dist/helpers/typeOf.d.ts +4 -0
  238. package/dist/index.d.ts +80 -4006
  239. package/dist/styles/centerInfoStyle.d.ts +6 -0
  240. package/dist/styles/containerStyle.d.ts +1 -0
  241. package/dist/styles/flagStyle.d.ts +3 -0
  242. package/dist/styles/getChevronStyle.d.ts +4 -0
  243. package/dist/styles/getLinkStyle.d.ts +25 -0
  244. package/dist/styles/getMatchUpStyle.d.ts +4 -0
  245. package/dist/styles/getSelectedMatchUpStyle.d.ts +1 -0
  246. package/dist/styles/groupNameStyle.d.ts +1 -0
  247. package/dist/styles/groupSeparatorStyle.d.ts +4 -0
  248. package/dist/styles/matchUpContainerStyle.d.ts +1 -0
  249. package/dist/styles/participantDetailStyle.d.ts +1 -0
  250. package/dist/styles/participantStyle.d.ts +17 -0
  251. package/dist/styles/pillStyle.d.ts +3 -0
  252. package/dist/styles/resultStyles.d.ts +4 -0
  253. package/dist/styles/roundContainerStyle.d.ts +1 -0
  254. package/dist/styles/roundHeaderStyle.d.ts +1 -0
  255. package/dist/styles/roundStyle.d.ts +3 -0
  256. package/dist/styles/scaleStyle.d.ts +3 -0
  257. package/dist/styles/schedulingStyle.d.ts +1 -0
  258. package/dist/styles/scoreStyles.d.ts +9 -0
  259. package/dist/styles/scoreWrapperStyle.d.ts +4 -0
  260. package/dist/styles/seedStyle.d.ts +1 -0
  261. package/dist/styles/sideStyles.d.ts +3 -0
  262. package/dist/styles/structureStyle.d.ts +1 -0
  263. package/dist/styles/teamLogoStyle.d.ts +1 -0
  264. package/dist/styles/themes/australianTheme.d.ts +1 -0
  265. package/dist/styles/themes/basicCardTheme.d.ts +1 -0
  266. package/dist/styles/themes/basicTheme.d.ts +1 -0
  267. package/dist/styles/themes/createTheme.d.ts +5 -0
  268. package/dist/styles/themes/frenchTheme.d.ts +1 -0
  269. package/dist/styles/themes/index.d.ts +7 -0
  270. package/dist/styles/themes/itfTheme.d.ts +1 -0
  271. package/dist/styles/themes/usOpenTheme.d.ts +1 -0
  272. package/dist/styles/themes/wimbledonTheme.d.ts +1 -0
  273. package/dist/tools/freeScore/freeScore.d.ts +79 -0
  274. package/dist/types.d.ts +321 -0
  275. package/dist/utilities/isElement.d.ts +1 -0
  276. package/dist/validators/dateValidator.d.ts +1 -0
  277. package/dist/validators/emailValidator.d.ts +1 -0
  278. package/dist/validators/index.d.ts +7 -0
  279. package/dist/validators/nameValidator.d.ts +1 -0
  280. package/dist/validators/numericRange.d.ts +1 -0
  281. package/dist/validators/numericValidator.d.ts +1 -0
  282. package/dist/validators/passwordValidator.d.ts +1 -0
  283. package/dist/validators/wordValidator.d.ts +1 -0
  284. package/dist/version.d.ts +1 -0
  285. package/package.json +4 -4
@@ -0,0 +1,106 @@
1
+ /**
2
+ * TimeScale — Pure math for time↔pixel conversion.
3
+ *
4
+ * No DOM dependency. All methods are deterministic given the current state.
5
+ * State: visibleStart, visibleEnd, containerWidth.
6
+ *
7
+ * Daily bounds mode: When set, overnight gaps (endTime→startTime next day)
8
+ * are collapsed to zero width. Each day only shows the operating window.
9
+ *
10
+ * Visible days: When set (together with daily bounds), only the specified
11
+ * days are shown — gap days between non-contiguous active days are collapsed
12
+ * entirely.
13
+ */
14
+ export declare class TimeScale {
15
+ /** Left edge of the visible window */
16
+ private _start;
17
+ /** Right edge of the visible window */
18
+ private _end;
19
+ /** Width of the scrollable content area in pixels */
20
+ private _width;
21
+ /** Hard limits for panning */
22
+ private _min;
23
+ private _max;
24
+ /** Hard limits for zooming (ms) */
25
+ private _zoomMin;
26
+ private _zoomMax;
27
+ /** Daily bounds: minutes since local midnight */
28
+ private _dailyStartMin;
29
+ private _dailyEndMin;
30
+ private _useDailyBounds;
31
+ /**
32
+ * Explicit list of visible day strings ("YYYY-MM-DD"), sorted.
33
+ * When set, only these days get column space in daily-bounds mode.
34
+ * Gap days between non-contiguous entries are fully collapsed.
35
+ */
36
+ private _visibleDays;
37
+ /** Precomputed: midnight timestamps for each visible day, for fast lookup */
38
+ private _visibleDayMs;
39
+ constructor(start: Date, end: Date, width: number);
40
+ get start(): Date;
41
+ get end(): Date;
42
+ get width(): number;
43
+ get duration(): number;
44
+ /** Milliseconds per pixel (uses collapsed duration when daily bounds are set) */
45
+ get msPerPx(): number;
46
+ /** Get the daily bounds config (null if not set) */
47
+ getDailyBounds(): {
48
+ startMin: number;
49
+ endMin: number;
50
+ } | null;
51
+ /** Get the visible days list (null if not set) */
52
+ getVisibleDays(): string[] | null;
53
+ /** Convert a Date to an x-pixel offset from the left edge */
54
+ timeToX(date: Date): number;
55
+ /** Convert an x-pixel offset to a Date */
56
+ xToTime(x: number): Date;
57
+ /** Snap a Date to the nearest N-minute increment */
58
+ snap(date: Date, minutes: number): Date;
59
+ /** Set the visible window */
60
+ setWindow(start: Date, end: Date): void;
61
+ /** Set pan/zoom limits */
62
+ setLimits(opts: {
63
+ min?: Date;
64
+ max?: Date;
65
+ zoomMin?: number;
66
+ zoomMax?: number;
67
+ }): void;
68
+ /** Update container width (e.g. on resize) */
69
+ setWidth(width: number): void;
70
+ /**
71
+ * Set daily operating bounds. When set, overnight gaps are collapsed.
72
+ * @param startTime "HH:MM" — earliest operating hour
73
+ * @param endTime "HH:MM" — latest operating hour
74
+ */
75
+ setDailyBounds(startTime: string, endTime: string): void;
76
+ /** Remove daily bounds — return to continuous 24-hour mode */
77
+ clearDailyBounds(): void;
78
+ /**
79
+ * Set the explicit list of days to show. Only meaningful when daily bounds
80
+ * are active. Gap days between non-contiguous entries are fully collapsed.
81
+ * @param days Sorted array of "YYYY-MM-DD" strings
82
+ */
83
+ setVisibleDays(days: string[]): void;
84
+ /** Clear visible days restriction while keeping daily bounds active */
85
+ clearVisibleDays(): void;
86
+ /** Pan by a pixel delta (positive = scroll right = later times) */
87
+ pan(deltaPixels: number): void;
88
+ /**
89
+ * Zoom by a factor around a center x-pixel.
90
+ * factor < 1 zooms in, factor > 1 zooms out.
91
+ */
92
+ zoom(factor: number, centerX: number): void;
93
+ /**
94
+ * Convert a Date to a "collapsed" position in minutes.
95
+ * Overnight gaps are removed — only operating hours count.
96
+ *
97
+ * When _visibleDays is set, only those specific days get column space.
98
+ * Gap days are fully collapsed (zero width).
99
+ */
100
+ private toCollapsedMin;
101
+ /**
102
+ * Convert a "collapsed" position (in minutes) back to a real Date.
103
+ */
104
+ private fromCollapsedMin;
105
+ private clampBounds;
106
+ }
@@ -0,0 +1,124 @@
1
+ import { temporal } from 'tods-competition-factory';
2
+ type CourtRef = temporal.CourtRef;
3
+ export interface TimelineGroupData {
4
+ id: string;
5
+ content: string;
6
+ order?: number;
7
+ courtRef?: CourtRef;
8
+ surface?: string;
9
+ indoor?: boolean;
10
+ hasLights?: boolean;
11
+ tags?: string[];
12
+ }
13
+ export interface TimelineItemData {
14
+ id: string;
15
+ group: string;
16
+ content: string;
17
+ start: Date | string;
18
+ end?: Date | string;
19
+ type?: 'range' | 'background';
20
+ className?: string;
21
+ style?: string;
22
+ title?: string;
23
+ editable?: boolean | {
24
+ updateTime?: boolean;
25
+ updateGroup?: boolean;
26
+ remove?: boolean;
27
+ };
28
+ blockId?: string;
29
+ status?: string;
30
+ reason?: string;
31
+ isBlock?: boolean;
32
+ isSegment?: boolean;
33
+ isConflict?: boolean;
34
+ }
35
+ export interface TimelineOptions {
36
+ /** Visible window start */
37
+ start?: Date;
38
+ /** Visible window end */
39
+ end?: Date;
40
+ /** Minimum allowed date (pan limit) */
41
+ min?: Date;
42
+ /** Maximum allowed date (pan limit) */
43
+ max?: Date;
44
+ /** Minimum visible duration in ms (zoom limit) */
45
+ zoomMin?: number;
46
+ /** Maximum visible duration in ms (zoom limit) */
47
+ zoomMax?: number;
48
+ /** Snap function: given a Date, return snapped Date */
49
+ snap?: (date: Date) => Date;
50
+ /** Row height in pixels (default 40) */
51
+ rowHeight?: number;
52
+ /** Time axis formatting */
53
+ timeAxis?: {
54
+ scale: string;
55
+ step: number;
56
+ };
57
+ /** Whether to show tooltips on hover */
58
+ showTooltips?: boolean;
59
+ /** Enable pinch-to-zoom (ctrl+wheel). Default false. */
60
+ enablePinchZoom?: boolean;
61
+ /** Height of the container (CSS value) */
62
+ height?: string;
63
+ }
64
+ export type InteractionMode = 'IDLE' | 'DRAGGING' | 'RESIZING_LEFT' | 'RESIZING_RIGHT' | 'GHOST_EDITING' | 'RESIZING_TOP' | 'RESIZING_BOTTOM';
65
+ /** State tracked during an active drag/resize gesture */
66
+ export interface GestureState {
67
+ mode: InteractionMode;
68
+ /** Item ID being manipulated (null for ghost creation) */
69
+ itemId: string | null;
70
+ /** Pointer start position (client coords) */
71
+ startX: number;
72
+ startY: number;
73
+ /** Original item time range at gesture start */
74
+ originalStart: Date;
75
+ originalEnd: Date;
76
+ /** Original group at gesture start */
77
+ originalGroup: string;
78
+ /** Current pointer position */
79
+ currentX: number;
80
+ currentY: number;
81
+ /** Whether the drag threshold has been exceeded */
82
+ thresholdExceeded: boolean;
83
+ }
84
+ export interface MultiRowSpan {
85
+ /** IDs of all groups covered by the ghost */
86
+ groupIds: string[];
87
+ /** Top row index (0-based) */
88
+ topRowIndex: number;
89
+ /** Bottom row index (inclusive, 0-based) */
90
+ bottomRowIndex: number;
91
+ /** Time range */
92
+ startTime: Date;
93
+ endTime: Date;
94
+ }
95
+ export interface TimelineCallbacks {
96
+ /** Fired when a new item should be created (double-click on empty area) */
97
+ onAdd?: (item: {
98
+ group: string;
99
+ start: Date;
100
+ end: Date;
101
+ }) => void;
102
+ /** Fired when an item is clicked */
103
+ onItemClick?: (itemId: string, event: PointerEvent) => void;
104
+ /** Fired during item drag/resize for live validation */
105
+ onMoving?: (item: {
106
+ id: string;
107
+ group: string;
108
+ start: Date;
109
+ end: Date;
110
+ }) => {
111
+ start: Date;
112
+ end: Date;
113
+ } | null;
114
+ /** Fired when item drag/resize completes */
115
+ onMove?: (item: {
116
+ id: string;
117
+ group: string;
118
+ start: Date;
119
+ end: Date;
120
+ }) => boolean;
121
+ /** Fired when multi-row ghost is confirmed */
122
+ onMultiRowCreate?: (span: MultiRowSpan) => void;
123
+ }
124
+ export {};
@@ -0,0 +1,29 @@
1
+ import { TemporalEngine } from 'tods-competition-factory';
2
+ export interface BlockPopoverOptions {
3
+ itemId: string;
4
+ blockTypes: Array<{
5
+ type: string;
6
+ color: string;
7
+ label: string;
8
+ }>;
9
+ currentType?: string;
10
+ startTime?: string;
11
+ endTime?: string;
12
+ onTypeSelected: (type: string) => void;
13
+ onAdjustTime?: (startTime: string, endTime: string) => void;
14
+ onDelete?: () => void;
15
+ }
16
+ export interface EngineBlockPopoverOptions {
17
+ itemId: string;
18
+ blockId: string;
19
+ engine: TemporalEngine;
20
+ day: string;
21
+ onBlockChanged: () => void;
22
+ }
23
+ export interface BlockPopoverManager {
24
+ show(target: HTMLElement, options: BlockPopoverOptions): void;
25
+ showForEngineBlock(target: HTMLElement, options: EngineBlockPopoverOptions): void;
26
+ destroy(): void;
27
+ isActiveFor(itemId: string): boolean;
28
+ }
29
+ export declare function createBlockPopoverManager(): BlockPopoverManager;
@@ -0,0 +1,29 @@
1
+ export interface CourtAvailabilityModalConfig {
2
+ title: string;
3
+ currentDay: string;
4
+ currentStartTime: string;
5
+ currentEndTime: string;
6
+ showScopeToggle?: boolean;
7
+ venueBounds?: {
8
+ startTime: string;
9
+ endTime: string;
10
+ };
11
+ onConfirm: (params: {
12
+ startTime: string;
13
+ endTime: string;
14
+ scope: 'current-day' | 'all-days';
15
+ }) => void;
16
+ onCancel?: () => void;
17
+ /** Custom labels for UI text */
18
+ labels?: {
19
+ startTime?: string;
20
+ endTime?: string;
21
+ applyTo?: string;
22
+ currentDayOnly?: string;
23
+ allDays?: string;
24
+ cancel?: string;
25
+ apply?: string;
26
+ venueWarning?: string;
27
+ };
28
+ }
29
+ export declare function showCourtAvailabilityModal(config: CourtAvailabilityModalConfig): Promise<void>;
@@ -0,0 +1,46 @@
1
+ export interface TimePickerConfig {
2
+ startTime: string;
3
+ endTime?: string;
4
+ dayStartTime?: string;
5
+ dayEndTime?: string;
6
+ minuteIncrement?: number;
7
+ minDuration?: number;
8
+ maxDuration?: number;
9
+ clockType?: '12h' | '24h';
10
+ onConfirm: (startTime: string, endTime: string) => void;
11
+ onCancel: () => void;
12
+ }
13
+ export declare class ModernTimePicker {
14
+ private readonly container;
15
+ private readonly config;
16
+ private picker;
17
+ private readonly inputElement;
18
+ private selectedStart;
19
+ private selectedEnd;
20
+ constructor(config: TimePickerConfig);
21
+ /**
22
+ * Extract HH:mm time from ISO string or time string using factory utilities
23
+ */
24
+ private extractTimeAsHHMM;
25
+ /**
26
+ * Create a hidden container for the input element
27
+ * The timepicker-ui library will create its own modal UI
28
+ */
29
+ private createUI;
30
+ /**
31
+ * Initialize the timepicker-ui instance
32
+ */
33
+ private initTimePicker;
34
+ /**
35
+ * Show the time picker
36
+ */
37
+ show(): Promise<void>;
38
+ /**
39
+ * Destroy the time picker
40
+ */
41
+ destroy(): void;
42
+ }
43
+ /**
44
+ * Factory function to create and show a time picker
45
+ */
46
+ export declare function showModernTimePicker(config: TimePickerConfig): Promise<ModernTimePicker>;
@@ -0,0 +1,21 @@
1
+ /**
2
+ * Stats Bar — Horizontal capacity statistics strip.
3
+ *
4
+ * Shows total hours, blocked, available, and avg per court.
5
+ */
6
+ export interface StatsBarUpdate {
7
+ totalHours: number;
8
+ blockedHours: number;
9
+ availableHours: number;
10
+ avgPerCourt: number;
11
+ }
12
+ export interface StatsBarLabels {
13
+ totalHours?: string;
14
+ blocked?: string;
15
+ available?: string;
16
+ avgPerCourt?: string;
17
+ }
18
+ export declare function buildStatsBar(labels?: StatsBarLabels): {
19
+ element: HTMLElement;
20
+ update: (stats: StatsBarUpdate) => void;
21
+ };
@@ -0,0 +1,149 @@
1
+ import { TemporalEngine, temporal } from 'tods-competition-factory';
2
+ import { TemporalGridControl, TemporalGridControlConfig } from '../controller/temporalGridControl';
3
+ type DayId = temporal.DayId;
4
+ /**
5
+ * i18n labels for the temporal grid component.
6
+ * All fields are optional — English defaults are used when omitted.
7
+ */
8
+ export interface TemporalGridLabels {
9
+ view?: string;
10
+ day1?: string;
11
+ days3?: string;
12
+ week?: string;
13
+ tournament?: string;
14
+ courtAvailability?: string;
15
+ totalHours?: string;
16
+ blocked?: string;
17
+ available?: string;
18
+ avgPerCourt?: string;
19
+ setDefaultAvailability?: string;
20
+ saveToTournament?: string;
21
+ }
22
+ export interface TemporalGridCallbacks {
23
+ /**
24
+ * Called when dirty state changes (blocks/availability modified vs initial)
25
+ */
26
+ onDirtyChange?: (isDirty: boolean) => void;
27
+ }
28
+ export interface TemporalGridConfig extends Partial<TemporalGridControlConfig>, TemporalGridCallbacks {
29
+ /**
30
+ * Tournament record (TODS format)
31
+ */
32
+ tournamentRecord: any;
33
+ /**
34
+ * Engine configuration overrides
35
+ */
36
+ engineConfig?: {
37
+ dayStartTime?: string;
38
+ dayEndTime?: string;
39
+ slotMinutes?: number;
40
+ };
41
+ /**
42
+ * Initial selected day
43
+ */
44
+ initialDay?: DayId;
45
+ /**
46
+ * Show facility tree
47
+ */
48
+ showVenueTree?: boolean;
49
+ /**
50
+ * Show capacity indicator
51
+ */
52
+ showCapacity?: boolean;
53
+ /**
54
+ * Show toolbar
55
+ */
56
+ showToolbar?: boolean;
57
+ /**
58
+ * i18n labels
59
+ */
60
+ labels?: TemporalGridLabels;
61
+ /**
62
+ * Language code for datepicker localization (e.g. 'en', 'fr', 'de')
63
+ */
64
+ language?: string;
65
+ /**
66
+ * Callback when "Set Default Availability" is clicked
67
+ */
68
+ onSetDefaultAvailability?: () => void;
69
+ /**
70
+ * Callback when "Save to Tournament" is clicked
71
+ */
72
+ onSave?: () => void;
73
+ /**
74
+ * Callback when mutations are applied
75
+ */
76
+ onMutationsApplied?: (mutations: any[]) => void;
77
+ }
78
+ export declare class TemporalGrid {
79
+ private engine;
80
+ private control;
81
+ private config;
82
+ private rootElement;
83
+ private venueTreeElement;
84
+ private calendarElement;
85
+ private capacityElement;
86
+ private statsBarInstance;
87
+ private viewToolbarResult;
88
+ private datepicker;
89
+ private visibleCourts;
90
+ private initialSnapshot;
91
+ private isDirty;
92
+ constructor(config: TemporalGridConfig);
93
+ /**
94
+ * Render the component into a container
95
+ */
96
+ render(container: HTMLElement): void;
97
+ /**
98
+ * Destroy the component and cleanup
99
+ */
100
+ destroy(): void;
101
+ private createRootElement;
102
+ private renderToolbar;
103
+ /**
104
+ * Initialize the datepicker on the toolbar date input.
105
+ * Must be called after the toolbar element is in the DOM.
106
+ */
107
+ private initDatepicker;
108
+ private handleDateChange;
109
+ private renderCapacityIndicator;
110
+ private renderVenueTree;
111
+ private renderCalendar;
112
+ /** Serialize current engine state (blocks + availability) for comparison */
113
+ private takeSnapshot;
114
+ /** Compare current state to initial snapshot and update dirty flag */
115
+ private checkDirtyState;
116
+ /** Reset the snapshot (call after a successful save) */
117
+ resetDirtyState(): void;
118
+ private updateStatsBar;
119
+ private updateCapacityStats;
120
+ private updateVenueTree;
121
+ private handleEngineEvent;
122
+ private handleBlockSelected;
123
+ private handleCourtSelected;
124
+ private handleTimeRangeSelected;
125
+ private handleCourtCheckboxChange;
126
+ private handleVenueCheckboxChange;
127
+ private updateVenueCheckboxState;
128
+ /**
129
+ * Get the engine instance
130
+ */
131
+ getEngine(): TemporalEngine;
132
+ /**
133
+ * Get the controller instance
134
+ */
135
+ getControl(): TemporalGridControl | null;
136
+ /**
137
+ * Set the selected day
138
+ */
139
+ setDay(day: DayId): void;
140
+ /**
141
+ * Refresh the display
142
+ */
143
+ refresh(): void;
144
+ }
145
+ /**
146
+ * Create and render a temporal grid
147
+ */
148
+ export declare function createTemporalGrid(config: TemporalGridConfig, container: HTMLElement): TemporalGrid;
149
+ export {};
@@ -0,0 +1,37 @@
1
+ /**
2
+ * View Toolbar — View-mode preset switcher with date picker and action buttons.
3
+ *
4
+ * Provides a date input + Day / 3 Days / Week view buttons + optional action buttons.
5
+ */
6
+ type TimeAxisScale = 'millisecond' | 'second' | 'minute' | 'hour' | 'weekday' | 'day' | 'month' | 'year';
7
+ export interface ViewPreset {
8
+ label: string;
9
+ days: number;
10
+ timeAxis: {
11
+ scale: TimeAxisScale;
12
+ step: number;
13
+ };
14
+ }
15
+ export interface ViewToolbarLabels {
16
+ view?: string;
17
+ day1?: string;
18
+ days3?: string;
19
+ week?: string;
20
+ tournament?: string;
21
+ setDefaultAvailability?: string;
22
+ saveToTournament?: string;
23
+ }
24
+ export interface ViewToolbarResult {
25
+ element: HTMLElement;
26
+ dateInput: HTMLInputElement;
27
+ setActiveView: (viewKey: string) => void;
28
+ setDate: (dateStr: string) => void;
29
+ setSaveEnabled: (enabled: boolean) => void;
30
+ }
31
+ export declare const VIEW_PRESETS: Record<string, ViewPreset>;
32
+ export declare function buildViewToolbar(onViewChange: (viewKey: string) => void, initialView?: string, onDateChange?: (dateStr: string) => void, options?: {
33
+ labels?: ViewToolbarLabels;
34
+ onSetDefaultAvailability?: () => void;
35
+ onSave?: () => void;
36
+ }): ViewToolbarResult;
37
+ export {};
@@ -0,0 +1,19 @@
1
+ import { TopologyState, TopologyBuilderConfig } from '../types';
2
+ export declare class TopologyBuilderControl {
3
+ private readonly store;
4
+ private readonly layout;
5
+ private readonly unsubscribe;
6
+ private readonly config;
7
+ constructor(config?: TopologyBuilderConfig);
8
+ private buildToolbarPanel;
9
+ private buildCanvasPanel;
10
+ private handleCreateEdge;
11
+ render(container: HTMLElement): void;
12
+ destroy(): void;
13
+ autoLayout(): void;
14
+ getState(): TopologyState;
15
+ loadState(state: TopologyState): void;
16
+ private addDefaultStructure;
17
+ private scrollCanvasToNode;
18
+ private handleGenerate;
19
+ }
@@ -0,0 +1,42 @@
1
+ /**
2
+ * For a given drawSize, return a Map from round number → feed capacity.
3
+ * Feed rounds are the extra rounds inserted when drawSize > nearest power of 2.
4
+ *
5
+ * Example: drawSize=36, base=32, feedIn=4
6
+ * → { 4 → 4 } (feed round 4 has capacity 4)
7
+ */
8
+ export declare function getFeedRoundCapacities(drawSize: number): Map<number, number>;
9
+ /**
10
+ * Total number of rounds for a given drawSize, including feed rounds.
11
+ * Equivalent to getNumRounds but works with drawSize directly.
12
+ */
13
+ export declare function getTotalRounds(drawSize: number): number;
14
+ /**
15
+ * Compute round profiles for a lucky draw — mirrors the factory's luckyRoundProfiles().
16
+ * Returns array of { participantsCount, preFeedRound, feedRound } per round.
17
+ */
18
+ export declare function luckyRoundProfiles(drawSize: number): {
19
+ participantsCount: number;
20
+ preFeedRound: boolean;
21
+ feedRound?: boolean;
22
+ }[];
23
+ /** Total rounds for a lucky draw structure. */
24
+ export declare function getLuckyDrawTotalRounds(drawSize: number): number;
25
+ /**
26
+ * Number of losers that exit a lucky draw structure at a given round.
27
+ * For pre-feed rounds, one lucky loser is retained → losers = matchUps - 1.
28
+ * For non-pre-feed rounds, all losers exit → losers = matchUps.
29
+ * In round 1, BYE positions don't produce real losers, so subtract BYEs.
30
+ */
31
+ export declare function getLuckyDrawLosersForRound(drawSize: number, roundNumber: number): number;
32
+ /**
33
+ * Structure-type-aware total rounds.
34
+ * Dispatches to the correct algorithm based on structureType.
35
+ */
36
+ export declare function getNodeTotalRounds(structureType: string, drawSize: number, structureOptions?: any): number;
37
+ /**
38
+ * Structure-type-aware losers count for a given round.
39
+ * For elimination/feed-in: drawSize / 2^round
40
+ * For lucky draw: uses luckyRoundProfiles
41
+ */
42
+ export declare function getNodeLosersForRound(structureType: string, drawSize: number, roundNumber: number): number;
@@ -0,0 +1,16 @@
1
+ import { TopologyState } from '../types';
2
+ export interface StructureInfo {
3
+ structureName: string;
4
+ stage: string;
5
+ stageSequence: number;
6
+ matchUpCount: number;
7
+ positionCount: number;
8
+ }
9
+ export interface GenerationResult {
10
+ success: boolean;
11
+ drawOptions?: any;
12
+ structures?: StructureInfo[];
13
+ linkCount?: number;
14
+ error?: string;
15
+ }
16
+ export declare function generateDrawFromTopology(state: TopologyState, participantsCount?: number): GenerationResult;
@@ -0,0 +1,16 @@
1
+ export interface PlayoffRoundRange {
2
+ roundNumber: number;
3
+ finishingPositionRange: string;
4
+ }
5
+ export interface PlayoffFinishingPositionRange {
6
+ finishingPosition: number;
7
+ finishingPositionRange: string;
8
+ }
9
+ export interface PlayoffProfiles {
10
+ playoffRounds?: number[];
11
+ playoffRoundsRanges?: PlayoffRoundRange[];
12
+ playoffFinishingPositionRanges?: PlayoffFinishingPositionRange[];
13
+ finishingPositionsAvailable?: number[];
14
+ }
15
+ export declare function getPlayoffProfiles(structureType: string, drawSize: number, groupSize?: number): PlayoffProfiles;
16
+ export declare function clearPlayoffProfilesCache(): void;
@@ -0,0 +1,9 @@
1
+ import { SchematicMatchUp } from '../../renderSchematicStructure';
2
+ export declare function generatePreviewMatchUps({ structureType, drawSize, stage, structureId, qualifyingPositions, structureOptions }: {
3
+ structureType: string;
4
+ drawSize: number;
5
+ stage?: string;
6
+ structureId?: string;
7
+ qualifyingPositions?: number;
8
+ structureOptions?: any;
9
+ }): SchematicMatchUp[];
@@ -0,0 +1,2 @@
1
+ import { TopologyTemplate } from '../types';
2
+ export declare const standardTemplates: TopologyTemplate[];
@@ -0,0 +1,6 @@
1
+ import { TopologyState } from '../types';
2
+ export interface DrawOptionsResult {
3
+ drawOptions: any;
4
+ postGenerationMethods: any[];
5
+ }
6
+ export declare function topologyToDrawOptions(state: TopologyState): DrawOptionsResult;
@@ -0,0 +1,8 @@
1
+ import { TopologyState } from '../types';
2
+ export interface ValidationError {
3
+ severity: 'error' | 'warning';
4
+ message: string;
5
+ nodeId?: string;
6
+ edgeId?: string;
7
+ }
8
+ export declare function validateTopology(state: TopologyState): ValidationError[];