courthive-components 1.0.4 → 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 +4823 -4605
  230. package/dist/courthive-components.umd.js +42 -42
  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 -3913
  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 +8 -8
@@ -0,0 +1,197 @@
1
+ /**
2
+ * Scheduling Profile — Type Definitions
3
+ *
4
+ * All interfaces for the scheduling profile builder component.
5
+ * The SchedulingProfile shape matches the factory's `scheduleProfileRounds()` input.
6
+ */
7
+ export interface RoundSegment {
8
+ segmentNumber: number;
9
+ segmentsCount: number;
10
+ }
11
+ export interface RoundProfile {
12
+ tournamentId: string;
13
+ eventId: string;
14
+ eventName?: string;
15
+ drawId: string;
16
+ drawName?: string;
17
+ structureId: string;
18
+ structureType?: string;
19
+ roundNumber: number;
20
+ roundName?: string;
21
+ roundSegment?: RoundSegment;
22
+ notBeforeTime?: string;
23
+ sortOrder?: number;
24
+ matchCountEstimate?: number;
25
+ }
26
+ export interface VenueSchedule {
27
+ venueId: string;
28
+ rounds: RoundProfile[];
29
+ }
30
+ export interface ScheduleDay {
31
+ scheduleDate: string;
32
+ venues: VenueSchedule[];
33
+ }
34
+ export type SchedulingProfile = ScheduleDay[];
35
+ export interface VenueInfo {
36
+ venueId: string;
37
+ name: string;
38
+ }
39
+ export interface CatalogRoundItem {
40
+ tournamentId: string;
41
+ eventId: string;
42
+ eventName: string;
43
+ drawId: string;
44
+ drawName?: string;
45
+ structureId: string;
46
+ structureType?: string;
47
+ roundNumber: number;
48
+ roundName?: string;
49
+ matchCountEstimate?: number;
50
+ }
51
+ export type CatalogGroupBy = 'event' | 'draw' | 'round';
52
+ export type PlannedRoundBehavior = 'dim' | 'hide' | 'navigate';
53
+ export interface RoundKey {
54
+ tournamentId: string;
55
+ eventId: string;
56
+ drawId: string;
57
+ structureId: string;
58
+ roundNumber: number;
59
+ }
60
+ export interface RoundLocator {
61
+ date: string;
62
+ venueId: string;
63
+ index: number;
64
+ roundKey: RoundKey;
65
+ roundSegment?: RoundSegment;
66
+ }
67
+ export interface CatalogDragPayload {
68
+ type: 'CATALOG_ROUND';
69
+ roundRef: CatalogRoundItem;
70
+ }
71
+ export interface PlannedDragPayload {
72
+ type: 'PLANNED_ROUND';
73
+ locator: RoundLocator;
74
+ }
75
+ export type DragPayload = CatalogDragPayload | PlannedDragPayload;
76
+ export interface DropTarget {
77
+ date: string;
78
+ venueId: string;
79
+ index: number;
80
+ }
81
+ export interface DropResult {
82
+ ok: boolean;
83
+ profile: SchedulingProfile;
84
+ }
85
+ export type Severity = 'ERROR' | 'WARN' | 'INFO';
86
+ export type ValidationCode = 'DATE_UNAVAILABLE' | 'DUPLICATE_ROUND' | 'DUPLICATE_SEGMENT' | 'INVALID_SEGMENT_CONFIG' | 'ROUND_ORDER_VIOLATION' | 'DEPENDENCY_VIOLATION' | 'DAY_OVERLOAD' | 'DROP_REJECTED';
87
+ export type FixActionKind = 'JUMP_TO_ITEM' | 'OPEN_TEMPORAL_GRID' | 'MOVE_ITEM_AFTER' | 'MOVE_ITEM_BEFORE';
88
+ export interface FixAction {
89
+ kind: FixActionKind;
90
+ label: string;
91
+ locator?: RoundLocator;
92
+ after?: RoundLocator;
93
+ before?: RoundLocator;
94
+ date?: string;
95
+ }
96
+ export interface ValidationResult {
97
+ code: ValidationCode;
98
+ severity: Severity;
99
+ message: string;
100
+ context: {
101
+ date?: string;
102
+ venueId?: string;
103
+ scope?: string;
104
+ drawId?: string;
105
+ structureId?: string;
106
+ locator?: RoundLocator;
107
+ prerequisite?: RoundLocator;
108
+ demandMinutes?: number;
109
+ capacityMinutes?: number;
110
+ ratio?: number;
111
+ reason?: string;
112
+ };
113
+ fixActions?: FixAction[];
114
+ }
115
+ export interface SeverityCounts {
116
+ total: number;
117
+ ERROR: number;
118
+ WARN: number;
119
+ INFO: number;
120
+ }
121
+ export interface IssueIndex {
122
+ all: ValidationResult[];
123
+ bySeverity: Record<Severity, ValidationResult[]>;
124
+ byDate: Record<string, ValidationResult[]>;
125
+ byVenue: Record<string, ValidationResult[]>;
126
+ byDraw: Record<string, ValidationResult[]>;
127
+ counts: {
128
+ total: number;
129
+ ERROR: number;
130
+ WARN: number;
131
+ INFO: number;
132
+ byDate: Record<string, SeverityCounts>;
133
+ byVenue: Record<string, SeverityCounts>;
134
+ byDraw: Record<string, SeverityCounts>;
135
+ };
136
+ }
137
+ export interface ProfileStoreState {
138
+ profileDraft: SchedulingProfile;
139
+ venues: VenueInfo[];
140
+ roundCatalog: CatalogRoundItem[];
141
+ schedulableDates: string[];
142
+ activeDates?: string[];
143
+ selectedDate: string | null;
144
+ selectedLocator: RoundLocator | null;
145
+ ruleResults: ValidationResult[];
146
+ issueIndex: IssueIndex;
147
+ catalogSearchQuery: string;
148
+ catalogGroupBy: CatalogGroupBy;
149
+ plannedRoundBehavior: PlannedRoundBehavior;
150
+ }
151
+ export type ProfileChangeListener = (state: ProfileStoreState) => void;
152
+ export interface TemporalAdapter {
153
+ isDateAvailable: (date: string) => {
154
+ ok: boolean;
155
+ reason?: string;
156
+ };
157
+ getDayCapacityMinutes?: (date: string) => number;
158
+ }
159
+ export interface DemandAdapter {
160
+ estimateDayDemandMinutes: (date: string, profile: SchedulingProfile) => number;
161
+ }
162
+ export interface DependencyAdapter {
163
+ /**
164
+ * Returns roundKeyStrings for all rounds that must complete
165
+ * before the given round can proceed.
166
+ * Key format: "tournamentId|eventId|drawId|structureId|roundNumber"
167
+ */
168
+ getRoundDependencies: (roundKeyString: string) => string[];
169
+ }
170
+ export interface SchedulingProfileConfig {
171
+ venues: VenueInfo[];
172
+ roundCatalog: CatalogRoundItem[];
173
+ schedulableDates: string[];
174
+ activeDates?: string[];
175
+ /** When true, the left column (date strip + issues panel) is not rendered. */
176
+ hideLeft?: boolean;
177
+ /** Which side to place the round catalog. Defaults to 'right'. */
178
+ catalogSide?: 'left' | 'right';
179
+ initialProfile?: SchedulingProfile;
180
+ selectedDate?: string;
181
+ temporalAdapter?: TemporalAdapter;
182
+ demandAdapter?: DemandAdapter;
183
+ dependencyAdapter?: DependencyAdapter;
184
+ venueOrder?: string[];
185
+ plannedRoundBehavior?: PlannedRoundBehavior;
186
+ onProfileChanged?: (profile: SchedulingProfile) => void;
187
+ onFixAction?: (action: FixAction) => void;
188
+ }
189
+ export interface UIPanel<T = unknown> {
190
+ element: HTMLElement;
191
+ update: (state: T) => void;
192
+ destroy?: () => void;
193
+ }
194
+ export interface FlattenedRound {
195
+ round: RoundProfile;
196
+ locator: RoundLocator;
197
+ }
@@ -0,0 +1,11 @@
1
+ import { RoundLocator } from '../types';
2
+ export interface CardPopoverCallbacks {
3
+ onDelete: (locator: RoundLocator) => void;
4
+ onSetNotBeforeTime: (locator: RoundLocator) => void;
5
+ }
6
+ export interface CardPopoverManager {
7
+ show(target: HTMLElement, locator: RoundLocator): void;
8
+ destroy(): void;
9
+ isActiveFor(locator: RoundLocator): boolean;
10
+ }
11
+ export declare function createCardPopoverManager(callbacks: CardPopoverCallbacks): CardPopoverManager;
@@ -0,0 +1,5 @@
1
+ import { ProfileStoreState, UIPanel } from '../types';
2
+ export interface DateStripCallbacks {
3
+ onDateSelected: (date: string) => void;
4
+ }
5
+ export declare function buildDateStrip(callbacks: DateStripCallbacks): UIPanel<ProfileStoreState>;
@@ -0,0 +1,2 @@
1
+ import { ProfileStoreState, UIPanel } from '../types';
2
+ export declare function buildInspectorPanel(): UIPanel<ProfileStoreState>;
@@ -0,0 +1,5 @@
1
+ import { ProfileStoreState, UIPanel, FixAction } from '../types';
2
+ export interface IssuesPanelCallbacks {
3
+ onFixAction: (action: FixAction) => void;
4
+ }
5
+ export declare function buildIssuesPanel(callbacks: IssuesPanelCallbacks): UIPanel<ProfileStoreState>;
@@ -0,0 +1,12 @@
1
+ import { RoundProfile, RoundLocator, Severity } from '../types';
2
+ export interface RoundCardData {
3
+ round: RoundProfile;
4
+ locator: RoundLocator;
5
+ isSelected: boolean;
6
+ severity: Severity | null;
7
+ }
8
+ export interface RoundCardCallbacks {
9
+ onClick: (locator: RoundLocator) => void;
10
+ onContextMenu?: (locator: RoundLocator, target: HTMLElement) => void;
11
+ }
12
+ export declare function buildRoundCard(data: RoundCardData, callbacks: RoundCardCallbacks): HTMLElement;
@@ -0,0 +1,8 @@
1
+ import { ProfileStoreState, UIPanel, CatalogGroupBy, CatalogRoundItem, RoundLocator } from '../types';
2
+ export interface RoundCatalogCallbacks {
3
+ onSearchChange: (query: string) => void;
4
+ onGroupByChange: (mode: CatalogGroupBy) => void;
5
+ onDropRemove?: (locator: RoundLocator) => void;
6
+ onNavigateToPlanned?: (item: CatalogRoundItem) => void;
7
+ }
8
+ export declare function buildRoundCatalog(callbacks: RoundCatalogCallbacks): UIPanel<ProfileStoreState>;
@@ -0,0 +1,15 @@
1
+ import { ProfileStoreState, UIPanel } from '../types';
2
+ export interface LayoutPanels {
3
+ dateStrip: UIPanel<ProfileStoreState>;
4
+ issuesPanel: UIPanel<ProfileStoreState>;
5
+ venueBoard: UIPanel<ProfileStoreState>;
6
+ roundCatalog: UIPanel<ProfileStoreState>;
7
+ inspectorPanel: UIPanel<ProfileStoreState>;
8
+ }
9
+ export declare function buildSchedulingProfileLayout(panels: LayoutPanels, options?: {
10
+ hideLeft?: boolean;
11
+ catalogSide?: 'left' | 'right';
12
+ }): {
13
+ element: HTMLElement;
14
+ update: (state: ProfileStoreState) => void;
15
+ };
@@ -0,0 +1,46 @@
1
+ export declare const spLayoutStyle: () => string;
2
+ export declare const spColumnStyle: () => string;
3
+ export declare const spPanelStyle: () => string;
4
+ export declare const spPanelHeaderStyle: () => string;
5
+ export declare const spPanelTitleStyle: () => string;
6
+ export declare const spPanelMetaStyle: () => string;
7
+ export declare const spPanelBodyStyle: () => string;
8
+ export declare const spDateStripStyle: () => string;
9
+ export declare const spDateChipStyle: () => string;
10
+ export declare const spBadgesStyle: () => string;
11
+ export declare const spBadgeStyle: () => string;
12
+ export declare const spChipsStyle: () => string;
13
+ export declare const spChipStyle: () => string;
14
+ export declare const spBoardStyle: () => string;
15
+ export declare const spVenueStyle: () => string;
16
+ export declare const spVenueHeaderStyle: () => string;
17
+ export declare const spVenueTitleStyle: () => string;
18
+ export declare const spVenueSubStyle: () => string;
19
+ export declare const spDropzoneStyle: () => string;
20
+ export declare const spCardStyle: () => string;
21
+ export declare const spCardTitleStyle: () => string;
22
+ export declare const spCardMetaStyle: () => string;
23
+ export declare const spIssuesStyle: () => string;
24
+ export declare const spIssueStyle: () => string;
25
+ export declare const spIssueCodeStyle: () => string;
26
+ export declare const spIssueMsgStyle: () => string;
27
+ export declare const spIssueActionsStyle: () => string;
28
+ export declare const spIssueActionBtnStyle: () => string;
29
+ export declare const spCatalogStyle: () => string;
30
+ export declare const spCatalogToolbarStyle: () => string;
31
+ export declare const spInputStyle: () => string;
32
+ export declare const spSelectStyle: () => string;
33
+ export declare const spGroupStyle: () => string;
34
+ export declare const spGroupHeaderStyle: () => string;
35
+ export declare const spGroupBodyStyle: () => string;
36
+ export declare const spCatalogItemStyle: () => string;
37
+ export declare const spInspectorStyle: () => string;
38
+ export declare const spKvStyle: () => string;
39
+ export declare const spKvKeyStyle: () => string;
40
+ export declare const spKvValueStyle: () => string;
41
+ export declare const spSmallStyle: () => string;
42
+ export declare const spPopoverItemStyle: () => string;
43
+ export declare const spPopoverDeleteStyle: () => string;
44
+ export declare const spPopoverDividerStyle: () => string;
45
+ export declare const spInsertionLineStyle: () => string;
46
+ export declare const spGroupChevronStyle: () => string;
@@ -0,0 +1,7 @@
1
+ import { ProfileStoreState, UIPanel, DragPayload, DropTarget, RoundLocator } from '../types';
2
+ export interface VenueBoardCallbacks {
3
+ onDrop: (drag: DragPayload, drop: DropTarget) => void;
4
+ onCardClick: (locator: RoundLocator) => void;
5
+ onCardContextMenu?: (locator: RoundLocator, target: HTMLElement) => void;
6
+ }
7
+ export declare function buildVenueBoard(callbacks: VenueBoardCallbacks): UIPanel<ProfileStoreState>;
@@ -0,0 +1,2 @@
1
+ export { renderScorecard, renderTeamVsHeader, updateTieScore } from './renderScorecard';
2
+ export type { ScorecardOptions, TeamVsOptions } from './renderScorecard';
@@ -0,0 +1,26 @@
1
+ export interface ScorecardOptions {
2
+ matchUp: any;
3
+ composition?: any;
4
+ eventHandlers?: any;
5
+ swapSides?: boolean;
6
+ }
7
+ export interface TeamVsOptions {
8
+ side1Name: string;
9
+ side2Name: string;
10
+ sets?: any[];
11
+ winningSide?: number;
12
+ side1Id?: string;
13
+ side2Id?: string;
14
+ }
15
+ /**
16
+ * Render a full team scorecard: header + collection panels + matchUp grids.
17
+ */
18
+ export declare function renderScorecard({ matchUp, composition, eventHandlers, swapSides }: ScorecardOptions): HTMLDivElement;
19
+ /**
20
+ * Render the team vs team header with names and aggregate score.
21
+ */
22
+ export declare function renderTeamVsHeader({ side1Name, side2Name, sets, winningSide, side1Id, side2Id }: TeamVsOptions): HTMLDivElement;
23
+ /**
24
+ * Update the aggregate tie score in-place (avoids full re-render).
25
+ */
26
+ export declare function updateTieScore(result: any, side1Id?: string, side2Id?: string, swapSides?: boolean): void;
@@ -0,0 +1,2 @@
1
+ import { RenderScoreEntryParams } from '../types';
2
+ export declare function renderDialPadScoreEntry(params: RenderScoreEntryParams): void;
@@ -0,0 +1,12 @@
1
+ /**
2
+ * Shared dial pad logic - formats raw digits into score string
3
+ * Parses matchUpFormat to determine boundaries
4
+ */
5
+ export type FormatOptions = {
6
+ matchUpFormat: string;
7
+ };
8
+ /**
9
+ * Convert raw digits to formatted score string
10
+ * Example: "6464" with matchUpFormat 'SET3-S:6/TB7' becomes "6-4 6-4"
11
+ */
12
+ export declare function formatScoreString(digits: string, options: FormatOptions): string;
@@ -0,0 +1,2 @@
1
+ import { RenderScoreEntryParams } from '../types';
2
+ export declare function renderDynamicSetsScoreEntry(params: RenderScoreEntryParams): void;
@@ -0,0 +1,2 @@
1
+ import { RenderScoreEntryParams } from '../types';
2
+ export declare function renderFreeScoreEntry(params: RenderScoreEntryParams): void;
@@ -0,0 +1,2 @@
1
+ import { RenderScoreEntryParams } from '../types';
2
+ export declare function renderInlineScoringEntry(params: RenderScoreEntryParams): void;
@@ -0,0 +1,28 @@
1
+ /**
2
+ * Scoring configuration for courthive-components
3
+ * This provides a simple configuration object that can be modified by consumers
4
+ */
5
+ export interface ScoringConfig {
6
+ scoringApproach?: 'freeScore' | 'dynamicSets' | 'dialPad' | 'inlineScoring';
7
+ smartComplements?: boolean;
8
+ composition?: string;
9
+ idiom?: string;
10
+ dateFormat?: string;
11
+ timeFormat?: string;
12
+ }
13
+ /**
14
+ * Get current scoring configuration
15
+ */
16
+ export declare function getScoringConfig(): ScoringConfig;
17
+ /**
18
+ * Set scoring configuration (can be partial)
19
+ */
20
+ export declare function setScoringConfig(config: Partial<ScoringConfig>): void;
21
+ /**
22
+ * Reset configuration to defaults
23
+ */
24
+ export declare function resetScoringConfig(): void;
25
+ /**
26
+ * Stub for loadSettings (for compatibility with TMX code)
27
+ */
28
+ export declare function loadSettings(): any;
@@ -0,0 +1,6 @@
1
+ /**
2
+ * Scoring Modal - Modern TypeScript implementation
3
+ * Entry point for the scoring system
4
+ */
5
+ export { scoringModal } from './scoringModal';
6
+ export * from './types';
@@ -0,0 +1,124 @@
1
+ import { SetScore } from '../types';
2
+ /**
3
+ * Set format information returned by matchUpFormatCode.parse()
4
+ */
5
+ export type SetFormat = {
6
+ setTo?: number;
7
+ tiebreakAt?: number;
8
+ tiebreakFormat?: {
9
+ tiebreakTo?: number;
10
+ noAd?: boolean;
11
+ };
12
+ tiebreakSet?: {
13
+ tiebreakTo?: number;
14
+ noAd?: boolean;
15
+ };
16
+ timed?: boolean;
17
+ minutes?: number;
18
+ };
19
+ /**
20
+ * Configuration for a matchUp
21
+ * Should be derived from TODS matchUpFormat strings using matchUpFormatCode.parse()
22
+ */
23
+ export type MatchUpConfig = {
24
+ bestOf: number;
25
+ exactly?: number;
26
+ setFormat?: SetFormat;
27
+ finalSetFormat?: SetFormat;
28
+ };
29
+ /**
30
+ * Result of smart complement calculation
31
+ */
32
+ export type SmartComplementResult = {
33
+ field1Value: number;
34
+ field2Value: number;
35
+ shouldApply: boolean;
36
+ reason?: string;
37
+ };
38
+ /**
39
+ * Get the format for a specific set index
40
+ * Uses finalSetFormat for deciding set if available
41
+ */
42
+ export declare function getSetFormatForIndex(setIndex: number, config: MatchUpConfig): SetFormat | undefined;
43
+ /**
44
+ * Check if a set is tiebreak-only (e.g., TB10)
45
+ */
46
+ export declare function isSetTiebreakOnly(format?: SetFormat): boolean;
47
+ /**
48
+ * Check if a set format is timed (e.g., T10, T20)
49
+ */
50
+ export declare function isSetTimed(format?: SetFormat): boolean;
51
+ /**
52
+ * Calculate the maximum allowed score for a regular set game score
53
+ * based on the opponent's score and set rules
54
+ *
55
+ * For timed sets, returns Infinity (no maximum) since scores don't need relationships
56
+ */
57
+ export declare function getMaxAllowedScore(setIndex: number, side: 1 | 2, currentScores: {
58
+ side1: number;
59
+ side2: number;
60
+ }, config: MatchUpConfig): number;
61
+ /**
62
+ * Determine if a set is complete based on its scores
63
+ */
64
+ export declare function isSetComplete(setIndex: number, scores: {
65
+ side1: number;
66
+ side2: number;
67
+ tiebreak?: number;
68
+ }, config: MatchUpConfig): boolean;
69
+ /**
70
+ * Calculate which side won a set
71
+ * Returns undefined if set is not complete
72
+ */
73
+ export declare function getSetWinner(setIndex: number, scores: {
74
+ side1: number;
75
+ side2: number;
76
+ tiebreak?: number;
77
+ }, config: MatchUpConfig): 1 | 2 | undefined;
78
+ /**
79
+ * Determine if match is complete based on sets won
80
+ */
81
+ export declare function isMatchComplete(sets: SetScore[], bestOf: number, exactly?: number): boolean;
82
+ /**
83
+ * Get the match winner based on sets won
84
+ * Returns undefined if match is not complete
85
+ */
86
+ export declare function getMatchWinner(sets: SetScore[], bestOf: number, exactly?: number): 1 | 2 | undefined;
87
+ /**
88
+ * Calculate the complement score for smart complement entry
89
+ * Returns null if no predictable complement exists
90
+ *
91
+ * @param digit - The digit entered (0-9)
92
+ * @param setFormat - The format for this set
93
+ * @returns Complement value or null if digit >= setTo (no predictable complement)
94
+ */
95
+ export declare function calculateComplement(digit: number, setFormat?: SetFormat): number | null;
96
+ /**
97
+ * Determine if smart complement should be applied for a given input
98
+ *
99
+ * @param digit - The digit being entered
100
+ * @param isShiftPressed - Whether Shift key is pressed
101
+ * @param setIndex - Index of the current set
102
+ * @param sets - Current sets array
103
+ * @param config - Match configuration
104
+ * @param smartComplementsUsed - Set of indices where complement was already used
105
+ * @param smartComplementsEnabled - Whether feature is enabled in settings
106
+ * @returns Result indicating if/how complement should be applied
107
+ */
108
+ export declare function shouldApplySmartComplement(digit: number, isShiftPressed: boolean, setIndex: number, sets: SetScore[], config: MatchUpConfig, smartComplementsUsed: Set<number>, smartComplementsEnabled: boolean): SmartComplementResult;
109
+ /**
110
+ * Determine if tiebreak input should be visible for a set
111
+ */
112
+ export declare function shouldShowTiebreak(setIndex: number, scores: {
113
+ side1: number;
114
+ side2: number;
115
+ }, config: MatchUpConfig): boolean;
116
+ /**
117
+ * Determine if a new set row should be created
118
+ */
119
+ export declare function shouldCreateNextSet(currentSetIndex: number, sets: SetScore[], config: MatchUpConfig): boolean;
120
+ /**
121
+ * Build a SetScore object from input values
122
+ * Assigns winningSide if set is complete
123
+ */
124
+ export declare function buildSetScore(setIndex: number, side1Value: string, side2Value: string, tiebreakValue: string | undefined, config: MatchUpConfig): SetScore;
@@ -0,0 +1,2 @@
1
+ import { ScoringModalParams } from './types';
2
+ export declare function scoringModal(params: ScoringModalParams): void;
@@ -0,0 +1,60 @@
1
+ /**
2
+ * Type definitions for scoring modal V2
3
+ */
4
+ export type SetScore = {
5
+ setNumber?: number;
6
+ side1Score?: number;
7
+ side2Score?: number;
8
+ side1TiebreakScore?: number;
9
+ side2TiebreakScore?: number;
10
+ side1PointScore?: string | number;
11
+ side2PointScore?: string | number;
12
+ winningSide?: number;
13
+ };
14
+ export type ScoreOutcome = {
15
+ isValid: boolean;
16
+ sets: SetScore[];
17
+ scoreObject?: any;
18
+ winningSide?: number;
19
+ matchUpStatus?: string;
20
+ error?: string;
21
+ matchUpFormat?: string;
22
+ score?: string;
23
+ };
24
+ export type ScoringModalLabels = {
25
+ title?: string;
26
+ cancel?: string;
27
+ clear?: string;
28
+ submit?: string;
29
+ format?: string;
30
+ formatEditTitle?: string;
31
+ irregularEnding?: string;
32
+ winner?: string;
33
+ retired?: string;
34
+ walkover?: string;
35
+ defaulted?: string;
36
+ validScore?: string;
37
+ scoreIncomplete?: string;
38
+ invalidScore?: string;
39
+ scoreTips?: string;
40
+ setScores?: string;
41
+ tiebreaks?: string;
42
+ matchTiebreaks?: string;
43
+ irregularEndings?: string;
44
+ addSet?: boolean;
45
+ dynamicSetsTips?: string;
46
+ dialPadTips?: string;
47
+ };
48
+ export type ScoringModalParams = {
49
+ matchUp: any;
50
+ callback: (outcome: any) => void;
51
+ onClose?: () => void;
52
+ labels?: ScoringModalLabels;
53
+ };
54
+ export type ScoreChangeHandler = (outcome: ScoreOutcome) => void;
55
+ export type RenderScoreEntryParams = {
56
+ matchUp: any;
57
+ container: HTMLElement;
58
+ onScoreChange: ScoreChangeHandler;
59
+ labels?: ScoringModalLabels;
60
+ };
@@ -0,0 +1,12 @@
1
+ /**
2
+ * Shared utilities for formatting scores for display in scoring modals
3
+ */
4
+ /**
5
+ * Format existing score object into string for input field
6
+ */
7
+ export declare function formatExistingScore(scoreObject: any, matchUpStatus?: string): string;
8
+ /**
9
+ * Get short abbreviation for matchUpStatus
10
+ * Returns empty string for unknown or unhandled statuses
11
+ */
12
+ export declare function getStatusAbbreviation(status: string): string;
@@ -0,0 +1,16 @@
1
+ import { ScoreOutcome } from '../types';
2
+ /**
3
+ * Validate a score string using generateOutcomeFromScoreString with preserveSideOrder
4
+ */
5
+ export declare function validateScore(scoreString: string, matchUpFormat?: string, matchUpStatus?: string): ScoreOutcome;
6
+ /**
7
+ * Validate individual set scores (for Dynamic Sets approach)
8
+ * Builds a scoreString from the sets and uses validateScore for consistent validation
9
+ */
10
+ export declare function validateSetScores(sets: Array<{
11
+ side1?: number;
12
+ side2?: number;
13
+ side1TiebreakScore?: number;
14
+ side2TiebreakScore?: number;
15
+ winningSide?: number;
16
+ }>, matchUpFormat?: string, allowIncomplete?: boolean): ScoreOutcome;
@@ -0,0 +1,24 @@
1
+ import { SetScore } from '../types';
2
+ type MatchUpFormatInfo = {
3
+ bestOf: number;
4
+ exactly?: number;
5
+ setsToWin: number;
6
+ isTimed: boolean;
7
+ isExactlyFormat: boolean;
8
+ };
9
+ /**
10
+ * Parse match format string to extract best-of information
11
+ * Examples: "SET3-S:6/TB7" → bestOf=3, "SET5-S:6/TB7" → bestOf=5
12
+ * Examples: "SET3X-S:T10" → exactly=3, isTimed=true
13
+ */
14
+ export declare function parseMatchUpFormat(matchUpFormat?: string): MatchUpFormatInfo;
15
+ /**
16
+ * Determine if another set should be added based on current scores
17
+ */
18
+ export declare function shouldExpandSets(sets: SetScore[], matchUpFormat?: string): boolean;
19
+ /**
20
+ * Determine the winning side based on set scores
21
+ * Handles both regular scoring (sets won) and aggregate scoring (total points)
22
+ */
23
+ export declare function determineWinningSide(sets: SetScore[], matchUpFormat?: string): number | undefined;
24
+ export {};