@dcrackel/hematournamentui 1.0.706 → 1.0.708

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 (350) hide show
  1. package/.prettierignore +7 -1
  2. package/.storybook/main.js +5 -12
  3. package/.storybook/preview-head.html +10 -3
  4. package/.storybook/preview.js +5 -13
  5. package/AGENTS.md +118 -88
  6. package/README.md +29 -22
  7. package/dist/HemaTournamentUI-lib.es.js +8394 -8807
  8. package/dist/HemaTournamentUI-lib.umd.js +27 -27
  9. package/dist/hematournamentui-tailwind.css +183 -428
  10. package/dist/hematournamentui.css +1 -1
  11. package/eslint.config.js +49 -23
  12. package/package.json +15 -11
  13. package/postcss.config.js +3 -3
  14. package/prettier.config.js +16 -10
  15. package/src/config/boutScreenConfigurations.js +52 -50
  16. package/src/index.js +2 -0
  17. package/src/main.js +1 -1
  18. package/src/mocks/EventQuestionsMock.js +43 -55
  19. package/src/mocks/assignments.js +180 -181
  20. package/src/mocks/clubGetAllMock.js +8143 -8143
  21. package/src/mocks/eventMock.js +205 -205
  22. package/src/mocks/eventPersonGetInitalPoolAssignmentsLivePools.js +541 -542
  23. package/src/mocks/eventPersonGetInitalPoolAssignmentsPreparing.js +522 -523
  24. package/src/mocks/eventPersonGetInitialPoolAssignments.js +386 -387
  25. package/src/mocks/eventPersonGetInitialPoolAssignments2.js +2267 -2268
  26. package/src/mocks/eventPersonGetInitialStaff.js +94 -95
  27. package/src/mocks/eventPersonGetPoolAssignmentEvent.js +161 -162
  28. package/src/mocks/eventRules.js +87 -86
  29. package/src/mocks/eventpersonGetEventById.js +1737 -1737
  30. package/src/mocks/getAllClubs.js +8143 -8143
  31. package/src/mocks/getAllStaffByTournamentId.js +74 -75
  32. package/src/mocks/getAllWeapons.js +81 -82
  33. package/src/mocks/getAttendance.js +43 -44
  34. package/src/mocks/getClub.js +43 -44
  35. package/src/mocks/getClubDisplayByClubId.js +104 -105
  36. package/src/mocks/getDEBouts-128Fencers.js +3247 -3248
  37. package/src/mocks/getDEBouts-42Fencers.js +3736 -3737
  38. package/src/mocks/getDEBouts-67Fencers.js +6684 -6690
  39. package/src/mocks/getDEBouts-DoubleElim.js +4198 -4199
  40. package/src/mocks/getDEBouts-TableOf128.js +37 -0
  41. package/src/mocks/getDEBouts-TableOf64.js +35 -0
  42. package/src/mocks/getDEWithBouts.js +628 -629
  43. package/src/mocks/getDeBouts-12fencers.js +1255 -1256
  44. package/src/mocks/getDeBouts-15fencers.js +925 -927
  45. package/src/mocks/getDeBouts-22fencers.js +1683 -1685
  46. package/src/mocks/getDeBouts-6fencers.js +818 -818
  47. package/src/mocks/getEventByTournamentId.js +47 -48
  48. package/src/mocks/getFinalEventResult.js +304 -305
  49. package/src/mocks/getPenaltiesByEvent.js +655 -656
  50. package/src/mocks/getPoolResults.js +1533 -1534
  51. package/src/mocks/getPoolsWithBouts.js +662 -663
  52. package/src/mocks/getPoolsWithBouts6PoolId139.js +885 -886
  53. package/src/mocks/getPoolsWithBoutsByPoolId.js +841 -841
  54. package/src/mocks/getPoolsWithBoutsClubColors.js +4 -4
  55. package/src/mocks/getPoolsWithBoutsComplete.js +919 -921
  56. package/src/mocks/locationMock.js +3213 -3214
  57. package/src/mocks/mockRoutes.js +3 -3
  58. package/src/mocks/personGetAllMock.js +2536 -2537
  59. package/src/mocks/personsMock.js +17569 -17570
  60. package/src/mocks/singleEventMock.js +249 -250
  61. package/src/mocks/tournamentMock.js +1988 -1927
  62. package/src/stories/Atoms/CheckBox/BaseCheckbox.stories.js +25 -23
  63. package/src/stories/Atoms/CheckBox/BaseCheckbox.vue +30 -24
  64. package/src/stories/Atoms/Icon/BaseIcon.stories.js +63 -64
  65. package/src/stories/Atoms/Icon/BaseIcon.test.js +67 -69
  66. package/src/stories/Atoms/Icon/BaseIcon.vue +2 -3
  67. package/src/stories/Atoms/Input/BaseInput.stories.js +18 -18
  68. package/src/stories/Atoms/Input/BaseInput.test.js +65 -67
  69. package/src/stories/Atoms/Input/BaseInput.vue +36 -31
  70. package/src/stories/Atoms/RadioGroup/BaseRadioGroup.stories.js +21 -21
  71. package/src/stories/Atoms/RadioGroup/BaseRadioGroup.test.js +31 -31
  72. package/src/stories/Atoms/RadioGroup/BaseRadioGroup.vue +23 -18
  73. package/src/stories/Atoms/Tag/BaseTag.stories.js +21 -21
  74. package/src/stories/Atoms/Tag/BaseTag.test.js +26 -30
  75. package/src/stories/Atoms/Tag/BaseTag.vue +18 -19
  76. package/src/stories/Atoms/Text/BaseText.stories.js +54 -62
  77. package/src/stories/Atoms/Text/BaseText.test.js +152 -154
  78. package/src/stories/Atoms/Text/BaseText.vue +103 -81
  79. package/src/stories/Configure.mdx +5 -3
  80. package/src/stories/Molecules/Boxes/BoutBoxes/HandshotCounterBox/HandshotCounterBox.stories.js +24 -24
  81. package/src/stories/Molecules/Boxes/BoutBoxes/HandshotCounterBox/HandshotCounterBox.vue +33 -15
  82. package/src/stories/Molecules/Boxes/BoutBoxes/PassesBox/PassesBox.stories.js +46 -48
  83. package/src/stories/Molecules/Boxes/BoutBoxes/PassesBox/PassesBox.vue +38 -25
  84. package/src/stories/Molecules/Boxes/BoutBoxes/PenaltyConfirmationBox/PenaltyConfirmationBox.stories.js +4 -4
  85. package/src/stories/Molecules/Boxes/BoutBoxes/PenaltyConfirmationBox/PenaltyConfirmationBox.vue +9 -4
  86. package/src/stories/Molecules/Boxes/BoutBoxes/ScoreBox/ScoreBox.stories.js +90 -90
  87. package/src/stories/Molecules/Boxes/BoutBoxes/ScoreBox/ScoreBox.vue +51 -32
  88. package/src/stories/Molecules/Boxes/BoutBoxes/TimerBox/TimerBox.stories.js +25 -25
  89. package/src/stories/Molecules/Boxes/BoutBoxes/TimerBox/TimerBox.vue +47 -12
  90. package/src/stories/Molecules/Boxes/CounterBox/CounterBox.stories.js +19 -19
  91. package/src/stories/Molecules/Boxes/CounterBox/CounterBox.vue +25 -19
  92. package/src/stories/Molecules/Boxes/EventStatusBox/EventStatusBox.stories.js +25 -28
  93. package/src/stories/Molecules/Boxes/EventStatusBox/EventStatusBox.vue +7 -7
  94. package/src/stories/Molecules/Breadcrumb/Admin/Breadcrumb.stories.js +28 -29
  95. package/src/stories/Molecules/Breadcrumb/Admin/Breadcrumb.test.js +58 -58
  96. package/src/stories/Molecules/Breadcrumb/Admin/Breadcrumb.vue +15 -15
  97. package/src/stories/Molecules/Buttons/BaseButton/BaseButton.stories.js +86 -86
  98. package/src/stories/Molecules/Buttons/BaseButton/BaseButton.test.js +101 -103
  99. package/src/stories/Molecules/Buttons/BaseButton/BaseButton.vue +87 -24
  100. package/src/stories/Molecules/Buttons/ButtonBar/ButtonBar.stories.js +31 -31
  101. package/src/stories/Molecules/Buttons/ButtonBar/ButtonBar.vue +19 -21
  102. package/src/stories/Molecules/CombinationInputs/TitledInput/TitledInput.stories.js +57 -57
  103. package/src/stories/Molecules/CombinationInputs/TitledInput/TitledInput.test.js +64 -64
  104. package/src/stories/Molecules/CombinationInputs/TitledInput/TitledInput.vue +17 -16
  105. package/src/stories/Molecules/Filters/FilterAndSortBar/FilterAndSortBar.stories.js +19 -19
  106. package/src/stories/Molecules/Filters/FilterAndSortBar/FilterAndSortBar.vue +18 -7
  107. package/src/stories/Molecules/Filters/FilterUpcomingPast/FilterUpcomingPast.stories.js +16 -18
  108. package/src/stories/Molecules/Filters/FilterUpcomingPast/FilterUpcomingPast.vue +31 -13
  109. package/src/stories/Molecules/Indicators/MissingHemaRatingsId/MissingHemaRatingsId.stories.js +23 -0
  110. package/src/stories/Molecules/Indicators/MissingHemaRatingsId/MissingHemaRatingsId.vue +35 -0
  111. package/src/stories/Molecules/Indicators/ServerConnected/ServerConnected.stories.js +27 -27
  112. package/src/stories/Molecules/Indicators/ServerConnected/ServerConnected.vue +6 -5
  113. package/src/stories/Molecules/Inputs/MultiSelect/MultiSelect.stories.js +35 -35
  114. package/src/stories/Molecules/Inputs/MultiSelect/MultiSelect.vue +13 -8
  115. package/src/stories/Molecules/Inputs/Toggle/Toggle.stories.js +27 -27
  116. package/src/stories/Molecules/Inputs/Toggle/Toggle.vue +8 -5
  117. package/src/stories/Molecules/Menus/TabBar/TabBar.stories.js +18 -18
  118. package/src/stories/Molecules/Menus/TabBar/TabBar.vue +1 -2
  119. package/src/stories/Molecules/Modals/AddDisplayModal/AddDisplay.stories.js +36 -27
  120. package/src/stories/Molecules/Modals/AddDisplayModal/AddDisplayModal.vue +25 -15
  121. package/src/stories/Molecules/Modals/BaseModal/BaseModal.stories.js +66 -65
  122. package/src/stories/Molecules/Modals/BaseModal/BaseModal.vue +47 -9
  123. package/src/stories/Molecules/Modals/ConfirmModal/ConfirmModal.stories.js +23 -23
  124. package/src/stories/Molecules/Modals/ConfirmModal/ConfirmModal.vue +59 -11
  125. package/src/stories/Molecules/Modals/DirectorModal/DirectorModal.stories.js +37 -37
  126. package/src/stories/Molecules/Modals/DirectorModal/DirectorModal.test.js +18 -0
  127. package/src/stories/Molecules/Modals/DirectorModal/DirectorModal.vue +29 -23
  128. package/src/stories/Molecules/Modals/EditBoutModal/EditBoutModal.stories.js +41 -41
  129. package/src/stories/Molecules/Modals/EditBoutModal/EditBoutModal.vue +28 -16
  130. package/src/stories/Molecules/Modals/EventWizardModal/EventWizardModal.stories.js +29 -30
  131. package/src/stories/Molecules/Modals/EventWizardModal/EventWizardModal.vue +18 -16
  132. package/src/stories/Molecules/Modals/LoadingModal/LoadingModal.stories.js +21 -21
  133. package/src/stories/Molecules/Modals/LoadingModal/LoadingModal.vue +7 -7
  134. package/src/stories/Molecules/Modals/PenaltyModal/PenaltyModal.stories.js +24 -24
  135. package/src/stories/Molecules/Modals/PenaltyModal/PenaltyModal.vue +30 -25
  136. package/src/stories/Molecules/Reorder/ReorderableShell.stories.js +81 -77
  137. package/src/stories/Molecules/Reorder/ReorderableShell.vue +46 -43
  138. package/src/stories/Molecules/StepIndicator/BaseStepIndicator/StepIndicator.stories.js +40 -40
  139. package/src/stories/Molecules/StepIndicator/BaseStepIndicator/StepIndicator.vue +23 -25
  140. package/src/stories/Organisms/Cards/BoutCard/BoutCard.stories.js +34 -29
  141. package/src/stories/Organisms/Cards/BoutCard/BoutCard.vue +69 -66
  142. package/src/stories/Organisms/Cards/BoutCard/Variants/BoutCardActive/BoutCardActive.stories.js +24 -22
  143. package/src/stories/Organisms/Cards/BoutCard/Variants/BoutCardActive/BoutCardActive.vue +53 -41
  144. package/src/stories/Organisms/Cards/BoutCard/Variants/BoutCardInactive/BoutCardInactive.stories.js +24 -37
  145. package/src/stories/Organisms/Cards/BoutCard/Variants/BoutCardInactive/BoutCardInactive.vue +88 -103
  146. package/src/stories/Organisms/Cards/BoutCard/Variants/BoutCardReorder/BoutCardReorder.vue +13 -14
  147. package/src/stories/Organisms/Cards/BoutCard/Variants/BoutCardWaiting/BoutCardWaiting.stories.js +5 -5
  148. package/src/stories/Organisms/Cards/BoutCard/Variants/BoutCardWaiting/BoutCardWaiting.vue +22 -21
  149. package/src/stories/Organisms/Cards/BracketDirectorAssignmentCard/BracketDirectorAssignmentCard.stories.js +33 -0
  150. package/src/stories/Organisms/Cards/BracketDirectorAssignmentCard/BracketDirectorAssignmentCard.test.js +45 -0
  151. package/src/stories/Organisms/Cards/BracketDirectorAssignmentCard/BracketDirectorAssignmentCard.vue +103 -0
  152. package/src/stories/Organisms/Cards/ClubCard/ClubCard.stories.js +14 -17
  153. package/src/stories/Organisms/Cards/ClubCard/ClubCard.vue +25 -18
  154. package/src/stories/Organisms/Cards/Director/DirectorCard.stories.js +23 -23
  155. package/src/stories/Organisms/Cards/Director/DirectorCard.vue +159 -103
  156. package/src/stories/Organisms/Cards/EditBout/EditBout.stories.js +47 -47
  157. package/src/stories/Organisms/Cards/EditBout/EditBout.test.js +51 -0
  158. package/src/stories/Organisms/Cards/EditBout/EditBout.vue +82 -54
  159. package/src/stories/Organisms/Cards/EventCard/EventCard.stories.js +9 -10
  160. package/src/stories/Organisms/Cards/EventCard/EventCard.vue +83 -63
  161. package/src/stories/Organisms/Cards/FencerCard/FencerCard.stories.js +105 -105
  162. package/src/stories/Organisms/Cards/FencerCard/FencerCard.vue +298 -194
  163. package/src/stories/Organisms/Cards/FencerFinalResultCard/FencerFinalResultCard.stories.js +14 -14
  164. package/src/stories/Organisms/Cards/FencerFinalResultCard/FencerFinalResultCard.vue +37 -26
  165. package/src/stories/Organisms/Cards/FencerPoolResultsCard/FencerPoolResults.stories.js +24 -24
  166. package/src/stories/Organisms/Cards/FencerPoolResultsCard/FencerPoolResultsCard.vue +95 -28
  167. package/src/stories/Organisms/Cards/ImportFencerCard/ImportFencerCard.stories.js +59 -60
  168. package/src/stories/Organisms/Cards/ImportFencerCard/ImportFencerCard.vue +13 -7
  169. package/src/stories/Organisms/Cards/KioskCard/KioskCard.stories.js +34 -34
  170. package/src/stories/Organisms/Cards/KioskCard/KioskCard.vue +149 -104
  171. package/src/stories/Organisms/Cards/PenaltyCard/PenaltyCard.stories.js +19 -20
  172. package/src/stories/Organisms/Cards/PenaltyCard/PenaltyCard.vue +207 -163
  173. package/src/stories/Organisms/Cards/PenaltyFencerCard/PenaltyFencerCard.stories.js +17 -17
  174. package/src/stories/Organisms/Cards/PenaltyFencerCard/PenaltyFencerCard.vue +88 -46
  175. package/src/stories/Organisms/Cards/PoolBoutMatchCard/PoolBoutMatchCard.stories.js +182 -182
  176. package/src/stories/Organisms/Cards/PoolBoutMatchCard/PoolBoutMatchCard.vue +21 -12
  177. package/src/stories/Organisms/Cards/PoolFencerCard/PoolFencerCard.stories.js +25 -28
  178. package/src/stories/Organisms/Cards/PoolFencerCard/PoolFencerCard.vue +28 -22
  179. package/src/stories/Organisms/Cards/StaffCard/StaffCard.stories.js +62 -62
  180. package/src/stories/Organisms/Cards/StaffCard/StaffCard.vue +27 -22
  181. package/src/stories/Organisms/Cards/TableauBoutCard/TableauBoutCard.stories.js +60 -98
  182. package/src/stories/Organisms/Cards/TableauBoutCard/TableauBoutCard.test.js +143 -0
  183. package/src/stories/Organisms/Cards/TableauBoutCard/TableauBoutCard.vue +256 -202
  184. package/src/stories/Organisms/Cards/TableauFencerCard/TableauFencerCard.stories.js +69 -93
  185. package/src/stories/Organisms/Cards/TableauFencerCard/TableauFencerCard.vue +80 -111
  186. package/src/stories/Organisms/Cards/TournamentAdminCard/TournamentAdmin.stories.js +20 -20
  187. package/src/stories/Organisms/Cards/TournamentAdminCard/TournamentAdminCard.vue +62 -33
  188. package/src/stories/Organisms/Cards/WaitlistFencerCard/WaitlistFencerCard.vue +56 -32
  189. package/src/stories/Organisms/ComplexInputs/AddressAutocomplete/AddressAutocomplete.stories.js +6 -7
  190. package/src/stories/Organisms/ComplexInputs/AddressAutocomplete/AddressAutocomplete.vue +7 -8
  191. package/src/stories/Organisms/ComplexInputs/ClubColorPicker/ClubColorPicker.stories.js +31 -31
  192. package/src/stories/Organisms/ComplexInputs/ClubColorPicker/ClubColorPicker.vue +30 -35
  193. package/src/stories/Organisms/ComplexInputs/DatePicker/DatePicker.stories.js +13 -16
  194. package/src/stories/Organisms/ComplexInputs/DatePicker/DatePicker.vue +68 -70
  195. package/src/stories/Organisms/ComplexInputs/DropDown/DropDownMenu.stories.js +32 -34
  196. package/src/stories/Organisms/ComplexInputs/DropDown/DropDownMenu.vue +48 -25
  197. package/src/stories/Organisms/ComplexInputs/FindLocation/FindLocation.stories.js +21 -21
  198. package/src/stories/Organisms/ComplexInputs/FindLocation/FindLocation.vue +65 -38
  199. package/src/stories/Organisms/ComplexInputs/FindOrAddPerson/FindOrAddPerson.stories.js +19 -20
  200. package/src/stories/Organisms/ComplexInputs/FindOrAddPerson/FindOrAddPerson.vue +46 -21
  201. package/src/stories/Organisms/ComplexInputs/FindPerson/FindPerson.stories.js +22 -22
  202. package/src/stories/Organisms/ComplexInputs/FindPerson/FindPerson.vue +68 -23
  203. package/src/stories/Organisms/ComplexInputs/ImageCropper/ImageCropper.stories.js +13 -13
  204. package/src/stories/Organisms/ComplexInputs/ImageCropper/ImageCropper.vue +25 -24
  205. package/src/stories/Organisms/ComplexInputs/TextBoxEditor/TextBoxEditor.stories.js +6 -10
  206. package/src/stories/Organisms/ComplexInputs/TextBoxEditor/TextBoxEditor.vue +112 -48
  207. package/src/stories/Organisms/Containers/BoutsSection/BoutsSection.stories.js +43 -44
  208. package/src/stories/Organisms/Containers/BoutsSection/BoutsSection.vue +30 -23
  209. package/src/stories/Organisms/Containers/FinalResults/FinalResultsTable.stories.js +20 -20
  210. package/src/stories/Organisms/Containers/FinalResults/FinalResultsTable.vue +12 -12
  211. package/src/stories/Organisms/Containers/KioskContainer/KioskContainer.stories.js +24 -25
  212. package/src/stories/Organisms/Containers/KioskContainer/KioskContainer.vue +112 -87
  213. package/src/stories/Organisms/Containers/Pool/Pool.stories.js +54 -54
  214. package/src/stories/Organisms/Containers/Pool/Pool.vue +64 -41
  215. package/src/stories/Organisms/Containers/PoolGrid/PoolGrid.stories.js +17 -19
  216. package/src/stories/Organisms/Containers/PoolGrid/PoolGrid.vue +189 -135
  217. package/src/stories/Organisms/Containers/PoolResults/PoolResultsTable.stories.js +53 -54
  218. package/src/stories/Organisms/Containers/PoolResults/PoolResultsTable.vue +107 -73
  219. package/src/stories/Organisms/Containers/Tableau/Tableau.stories.js +23 -24
  220. package/src/stories/Organisms/Containers/Tableau/Tableau.test.js +177 -10
  221. package/src/stories/Organisms/Containers/Tableau/Tableau.vue +319 -198
  222. package/src/stories/Organisms/Containers/Tableau/components/BracketDirectorAssignmentPanel.test.js +29 -0
  223. package/src/stories/Organisms/Containers/Tableau/components/BracketDirectorAssignmentPanel.vue +46 -0
  224. package/src/stories/Organisms/Containers/Tableau/components/TableauSvgOverlay.test.js +21 -0
  225. package/src/stories/Organisms/Containers/Tableau/components/TableauSvgOverlay.vue +39 -0
  226. package/src/stories/Organisms/Containers/Tableau/layout/TableauLayoutEngine.js +145 -0
  227. package/src/stories/Organisms/Containers/Tableau/layout/TableauLayoutEngine.test.js +64 -0
  228. package/src/stories/Organisms/Containers/Tableau/plannedAssignments.js +57 -0
  229. package/src/stories/Organisms/Containers/Tableau/plannedAssignments.test.js +65 -0
  230. package/src/stories/Organisms/Containers/TableauColumn/TabeauColumn.stories.js +26 -27
  231. package/src/stories/Organisms/Containers/TableauColumn/TableauColumn.vue +31 -26
  232. package/src/stories/Organisms/Form/AddDisplay/AddDisplay.stories.js +26 -26
  233. package/src/stories/Organisms/Form/AddDisplay/AddDisplay.vue +130 -118
  234. package/src/stories/Organisms/Form/AddNewPerson/AddNewPerson.stories.js +14 -15
  235. package/src/stories/Organisms/Form/AddNewPerson/AddNewPerson.vue +94 -88
  236. package/src/stories/Organisms/Grids/GridContainer.stories.js +101 -101
  237. package/src/stories/Organisms/Grids/GridContainer.vue +160 -136
  238. package/src/stories/Organisms/Headers/AttendanceSummary/AttendanceSummary.stories.js +47 -47
  239. package/src/stories/Organisms/Headers/AttendanceSummary/AttendanceSummary.vue +65 -54
  240. package/src/stories/Organisms/Headers/EventFinalResultsHeader/EventFinalResultsHeader.stories.js +27 -27
  241. package/src/stories/Organisms/Headers/EventFinalResultsHeader/EventFinalResultsHeader.vue +38 -22
  242. package/src/stories/Organisms/Headers/PenaltySummary/PenaltySummary.stories.js +80 -80
  243. package/src/stories/Organisms/Headers/PenaltySummary/PenaltySummary.vue +14 -6
  244. package/src/stories/Organisms/Headers/PoolResultsHeader/PoolResultsHeader.stories.js +34 -34
  245. package/src/stories/Organisms/Headers/PoolResultsHeader/PoolResultsHeader.vue +36 -36
  246. package/src/stories/Organisms/Headers/PoolSummary/PoolSummary.stories.js +21 -21
  247. package/src/stories/Organisms/Headers/PoolSummary/PoolSummary.vue +56 -29
  248. package/src/stories/Organisms/Headers/ToggleHeader/ToggleHeader.stories.js +38 -38
  249. package/src/stories/Organisms/Headers/ToggleHeader/ToggleHeader.vue +19 -20
  250. package/src/stories/Organisms/RankCalculator/ByLetter/RankCalculator.stories.js +12 -13
  251. package/src/stories/Organisms/RankCalculator/ByLetter/RankCalculator.vue +47 -41
  252. package/src/stories/Organisms/RankCalculator/ByPoints/RankCalculatorByPoints.stories.js +12 -13
  253. package/src/stories/Organisms/RankCalculator/ByPoints/RankCalculatorByPoints.vue +66 -37
  254. package/src/stories/Organisms/Skeletons/ClubManagement/ClubManagement.stories.js +6 -10
  255. package/src/stories/Organisms/Skeletons/ClubManagement/ClubMangementSkeleton.vue +2 -2
  256. package/src/stories/Organisms/Skeletons/EventCard/EventCardSkeleton.stories.js +6 -10
  257. package/src/stories/Organisms/Skeletons/EventCard/EventCardSkeleton.vue +2 -3
  258. package/src/stories/Organisms/Skeletons/FencerCard/FencerCardSkeleton.stories.js +6 -10
  259. package/src/stories/Organisms/Skeletons/FencerCard/FencerCardSkeleton.vue +1 -1
  260. package/src/stories/Organisms/Skeletons/PersonManagement/PersonManagementSkeleton.stories.js +6 -9
  261. package/src/stories/Organisms/Skeletons/PersonManagement/PersonManagementSkeleton.vue +2 -2
  262. package/src/stories/Organisms/Skeletons/PoolSkeleton/PoolSkeleton.stories.js +6 -10
  263. package/src/stories/Organisms/Skeletons/PoolSkeleton/PoolSkeleton.vue +10 -4
  264. package/src/stories/Organisms/Skeletons/TournamentCard/TournamentCardSkeleton.stories.js +6 -10
  265. package/src/stories/Organisms/Skeletons/TournamentCard/TournamentCardSkeleton.vue +2 -2
  266. package/src/stories/Organisms/Wizards/EditEventWizard/BasicEventInfo/BasicEventInfo.stories.js +34 -34
  267. package/src/stories/Organisms/Wizards/EditEventWizard/BasicEventInfo/BasicEventInfo.vue +106 -56
  268. package/src/stories/Organisms/Wizards/EditEventWizard/DirectElimination/DirectElimination.stories.js +95 -95
  269. package/src/stories/Organisms/Wizards/EditEventWizard/DirectElimination/DirectElimination.vue +129 -69
  270. package/src/stories/Organisms/Wizards/EditEventWizard/DirectEliminationPromotion/DirectEliminationPromotion.stories.js +87 -88
  271. package/src/stories/Organisms/Wizards/EditEventWizard/DirectEliminationPromotion/DirectEliminationPromotion.vue +105 -60
  272. package/src/stories/Organisms/Wizards/EditEventWizard/EditEventWizard.stories.js +82 -82
  273. package/src/stories/Organisms/Wizards/EditEventWizard/EditEventWizard.vue +150 -177
  274. package/src/stories/Organisms/Wizards/EditEventWizard/EventCustomization/EventCustomization.stories.js +28 -28
  275. package/src/stories/Organisms/Wizards/EditEventWizard/EventCustomization/EventCustomization.vue +96 -36
  276. package/src/stories/Organisms/Wizards/EditEventWizard/PoolConfiguration/PoolConfiguration.stories.js +99 -99
  277. package/src/stories/Organisms/Wizards/EditEventWizard/PoolConfiguration/PoolConfiguration.vue +115 -67
  278. package/src/stories/Templates/Assignment/Assignment.stories.js +22 -23
  279. package/src/stories/Templates/Assignment/Assignment.vue +210 -161
  280. package/src/stories/Templates/ClubManagement/ClubBasic/ClubBasic.stories.js +90 -90
  281. package/src/stories/Templates/ClubManagement/ClubBasic/ClubBasic.vue +68 -55
  282. package/src/stories/Templates/ClubManagement/ClubManagement.stories.js +87 -87
  283. package/src/stories/Templates/ClubManagement/ClubManagement.vue +167 -147
  284. package/src/stories/Templates/EventManagement/Bracket/Bracket.stories.js +216 -109
  285. package/src/stories/Templates/EventManagement/Bracket/Bracket.test.js +138 -43
  286. package/src/stories/Templates/EventManagement/Bracket/Bracket.vue +198 -195
  287. package/src/stories/Templates/EventManagement/Bracket/BracketPlannedSuggestions.js +39 -0
  288. package/src/stories/Templates/EventManagement/Bracket/BracketStoryHarness.js +39 -0
  289. package/src/stories/Templates/EventManagement/Bracket/BracketStoryHarness.test.js +79 -0
  290. package/src/stories/Templates/EventManagement/EditEventInfo/EditEventInfo.stories.js +49 -50
  291. package/src/stories/Templates/EventManagement/EditEventInfo/EditEventInfo.vue +21 -21
  292. package/src/stories/Templates/EventManagement/EventAttendance/EventAttendance.stories.js +105 -103
  293. package/src/stories/Templates/EventManagement/EventAttendance/EventAttendance.vue +289 -226
  294. package/src/stories/Templates/EventManagement/EventFinalResults/EventFinalResults.stories.js +30 -30
  295. package/src/stories/Templates/EventManagement/EventFinalResults/EventFinalResults.vue +27 -22
  296. package/src/stories/Templates/EventManagement/KioskDisplay/KioskDisplay.stories.js +44 -45
  297. package/src/stories/Templates/EventManagement/KioskDisplay/KioskDisplay.vue +52 -43
  298. package/src/stories/Templates/EventManagement/Penalties/PenaltyReport.stories.js +28 -29
  299. package/src/stories/Templates/EventManagement/Penalties/PenaltyReport.vue +54 -39
  300. package/src/stories/Templates/EventManagement/PoolLive/PoolLive.stories.js +80 -111
  301. package/src/stories/Templates/EventManagement/PoolLive/PoolLive.test.js +121 -0
  302. package/src/stories/Templates/EventManagement/PoolLive/PoolLive.vue +290 -255
  303. package/src/stories/Templates/EventManagement/PoolManagement/PoolManagement.stories.js +109 -107
  304. package/src/stories/Templates/EventManagement/PoolManagement/PoolManagement.vue +144 -87
  305. package/src/stories/Templates/EventManagement/PoolResults/PoolResults.stories.js +56 -57
  306. package/src/stories/Templates/EventManagement/PoolResults/PoolResults.vue +132 -123
  307. package/src/stories/Templates/EventManagement/StaffList/StaffList.stories.js +56 -57
  308. package/src/stories/Templates/EventManagement/StaffList/StaffList.vue +84 -47
  309. package/src/stories/Templates/Menus/Admin/AdminLeftMenu.stories.js +29 -29
  310. package/src/stories/Templates/Menus/Admin/AdminLeftMenu.vue +71 -67
  311. package/src/stories/Templates/Menus/EditEventsTopMenu/EditEventsTopMenu.stories.js +39 -40
  312. package/src/stories/Templates/Menus/EditEventsTopMenu/EditEventsTopMenu.vue +79 -71
  313. package/src/stories/Templates/PersonManagement/Admin/Administration/Administration.stories.js +47 -47
  314. package/src/stories/Templates/PersonManagement/Admin/Administration/Administration.vue +39 -42
  315. package/src/stories/Templates/PersonManagement/Admin/FencerAdmin/FencerAdmin.stories.js +54 -54
  316. package/src/stories/Templates/PersonManagement/Admin/FencerAdmin/FencerAdmin.vue +27 -31
  317. package/src/stories/Templates/PersonManagement/Admin/MergeAccounts/MergeAccounts.stories.js +69 -69
  318. package/src/stories/Templates/PersonManagement/Admin/MergeAccounts/MergeAccounts.vue +78 -89
  319. package/src/stories/Templates/PersonManagement/Attendance/Attendance.stories.js +22 -22
  320. package/src/stories/Templates/PersonManagement/Attendance/Attendance.vue +61 -33
  321. package/src/stories/Templates/PersonManagement/Basic/BasicEdit.stories.js +29 -29
  322. package/src/stories/Templates/PersonManagement/Basic/BasicEdit.vue +80 -53
  323. package/src/stories/Templates/PersonManagement/PersonManagement.stories.js +84 -86
  324. package/src/stories/Templates/PersonManagement/PersonManagement.vue +107 -82
  325. package/src/stories/Templates/TournamentManagement/ListEvents/ListEvents.stories.js +31 -31
  326. package/src/stories/Templates/TournamentManagement/ListEvents/ListEvents.vue +70 -51
  327. package/src/stories/Templates/TournamentManagement/TournamentManagement.stories.js +79 -79
  328. package/src/stories/Templates/TournamentManagement/TournamentManagement.vue +275 -230
  329. package/src/stories/Templates/TournamentManagement/TournamentPageOne/TournamentPageOne.stories.js +113 -113
  330. package/src/stories/Templates/TournamentManagement/TournamentPageOne/TournamentPageOne.vue +175 -146
  331. package/src/stories/Templates/TournamentManagement/TournamentPageTwo/TournamentPageTwo.stories.js +77 -77
  332. package/src/stories/Templates/TournamentManagement/TournamentPageTwo/TournamentPageTwo.vue +208 -185
  333. package/src/stories/Util/Validations/AddNewPersonModalValidation.js +23 -19
  334. package/src/stories/Util/Validations/ClubManagementValidations.js +17 -21
  335. package/src/stories/Util/Validations/PersonManagementValidations.js +26 -22
  336. package/src/stories/Util/Validations/TournamentFieldsValidations.js +20 -18
  337. package/src/stories/Util/seeding.js +131 -131
  338. package/src/stories/Util/tabs.js +75 -75
  339. package/tailwind/tailwind.css +5 -7
  340. package/tailwind.config.js +12 -15
  341. package/vite.config.js +3 -3
  342. package/src/mocks/getDirectors.js +0 -18
  343. package/src/stories/Molecules/Modals/AssignDirectorModal/AssignDirectorModal.stories.js +0 -45
  344. package/src/stories/Molecules/Modals/AssignDirectorModal/AssignDirectorModal.vue +0 -111
  345. package/src/stories/Organisms/Cards/DirectorAssignmentCard/DirectorAssignmentCard.stories.js +0 -45
  346. package/src/stories/Organisms/Cards/DirectorAssignmentCard/DirectorAssignmentCard.vue +0 -83
  347. package/src/stories/Organisms/Cards/TableauBoutCard/SpacingConfig.js +0 -111
  348. package/src/stories/Organisms/Containers/TableauLines/SpacingConfig.js +0 -112
  349. package/src/stories/Organisms/Containers/TableauLines/TableauLines.stories.js +0 -23
  350. package/src/stories/Organisms/Containers/TableauLines/TableauLines.vue +0 -79
@@ -1,42 +1,42 @@
1
1
  import ButtonBar from './ButtonBar.vue';
2
2
 
3
3
  export default {
4
- title: 'Molecules/Buttons/ButtonBar',
5
- component: ButtonBar,
6
- tags: ['autodocs'],
7
- args: {
8
- buttons: [
9
- { id: 'btn1', label: 'Option 1', defaultBgColor: 'bg-natural', selectedBgColor: 'bg-tertiary' },
10
- { id: 'btn2', label: 'Option 2', defaultBgColor: 'bg-natural', selectedBgColor: 'bg-tertiary' }
11
- ]
4
+ title: 'Molecules/Buttons/ButtonBar',
5
+ component: ButtonBar,
6
+ tags: ['autodocs'],
7
+ args: {
8
+ buttons: [
9
+ { id: 'btn1', label: 'Option 1', defaultBgColor: 'bg-natural', selectedBgColor: 'bg-tertiary' },
10
+ { id: 'btn2', label: 'Option 2', defaultBgColor: 'bg-natural', selectedBgColor: 'bg-tertiary' }
11
+ ]
12
+ },
13
+ argTypes: {
14
+ buttons: {
15
+ control: 'object'
12
16
  },
13
- argTypes: {
14
- buttons: {
15
- control: 'object'
16
- },
17
- selected: {
18
- control: 'text'
19
- },
20
- onSelected: {},
21
- }
17
+ selected: {
18
+ control: 'text'
19
+ },
20
+ onSelected: {}
21
+ }
22
22
  };
23
23
 
24
24
  export const Primary = {
25
- args: {
26
- buttons: [
27
- { id: 'btn1', label: 'Absent', defaultBgColor: 'bg-natural', selectedBgColor: 'bg-eventBoxBlue' },
28
- { id: 'btn2', label: 'Present', defaultBgColor: 'bg-natural', selectedBgColor: 'bg-eventBoxGreen' }
29
- ],
30
- selected: 'btn1' // Set default selected button
31
- }
25
+ args: {
26
+ buttons: [
27
+ { id: 'btn1', label: 'Absent', defaultBgColor: 'bg-natural', selectedBgColor: 'bg-eventBoxBlue' },
28
+ { id: 'btn2', label: 'Present', defaultBgColor: 'bg-natural', selectedBgColor: 'bg-eventBoxGreen' }
29
+ ],
30
+ selected: 'btn1' // Set default selected button
31
+ }
32
32
  };
33
33
 
34
34
  export const ThreeButtons = {
35
- args: {
36
- buttons: [
37
- { id: 'btn1', label: 'Option 1', defaultBgColor: 'bg-natural', selectedBgColor: 'bg-tertiary' },
38
- { id: 'btn2', label: 'Option 2', defaultBgColor: 'bg-natural', selectedBgColor: 'bg-tertiary' },
39
- { id: 'btn3', label: 'Option 3', defaultBgColor: 'bg-natural', selectedBgColor: 'bg-tertiary' }
40
- ]
41
- }
35
+ args: {
36
+ buttons: [
37
+ { id: 'btn1', label: 'Option 1', defaultBgColor: 'bg-natural', selectedBgColor: 'bg-tertiary' },
38
+ { id: 'btn2', label: 'Option 2', defaultBgColor: 'bg-natural', selectedBgColor: 'bg-tertiary' },
39
+ { id: 'btn3', label: 'Option 3', defaultBgColor: 'bg-natural', selectedBgColor: 'bg-tertiary' }
40
+ ]
41
+ }
42
42
  };
@@ -1,26 +1,21 @@
1
1
  <template>
2
2
  <div class="flex">
3
3
  <section
4
- v-for="(button, index) in buttons"
5
- :key="button.id"
6
- class="flex flex-row text-nowrap"
7
- @click="selectButton(button.id)"
4
+ v-for="(button, index) in buttons"
5
+ :key="button.id"
6
+ class="flex flex-row text-nowrap"
7
+ @click="selectButton(button.id)"
8
8
  >
9
9
  <div
10
- class="min-w-20 px-4 py-2 transition-all duration-400 ease-in-out border border-dropdownSelect shadow-md"
11
- :class="{
10
+ class="min-w-20 px-4 py-2 transition-all duration-400 ease-in-out border border-dropdownSelect shadow-md"
11
+ :class="{
12
12
  'rounded-l-lg': index === 0,
13
13
  'rounded-r-lg': index === buttons.length - 1,
14
14
  [button.selectedBgColor]: selected === button.id,
15
15
  [button.defaultBgColor]: selected !== button.id
16
16
  }"
17
17
  >
18
- <BaseText
19
- :text="button.label"
20
- size="md"
21
- :color="getButtonColor(button.id)"
22
- class="text-xs md:text-sm"
23
- />
18
+ <BaseText :text="button.label" size="md" :color="getButtonColor(button.id)" class="text-xs md:text-sm" />
24
19
  </div>
25
20
  </section>
26
21
  </div>
@@ -28,7 +23,7 @@
28
23
 
29
24
  <script>
30
25
  import { watch, ref } from 'vue';
31
- import BaseText from "../../../Atoms/Text/BaseText.vue";
26
+ import BaseText from '../../../Atoms/Text/BaseText.vue';
32
27
 
33
28
  export default {
34
29
  name: 'ButtonBar',
@@ -36,11 +31,11 @@ export default {
36
31
  props: {
37
32
  buttons: {
38
33
  type: Array,
39
- required: true,
34
+ required: true
40
35
  },
41
36
  selected: {
42
37
  type: String,
43
- default: null,
38
+ default: null
44
39
  },
45
40
  textColor: {
46
41
  type: String,
@@ -55,21 +50,24 @@ export default {
55
50
  setup(props, { emit }) {
56
51
  const selected = ref(props.selected);
57
52
 
58
- watch(() => props.selected, (newValue) => {
59
- selected.value = newValue;
60
- });
53
+ watch(
54
+ () => props.selected,
55
+ newValue => {
56
+ selected.value = newValue;
57
+ }
58
+ );
61
59
 
62
- const selectButton = (id) => {
60
+ const selectButton = id => {
63
61
  selected.value = id;
64
62
  emit('update:selected', id);
65
63
  };
66
64
 
67
65
  // Determine the text color based on whether the button is selected
68
- const getButtonColor = (buttonId) => {
66
+ const getButtonColor = buttonId => {
69
67
  return selected.value === buttonId ? props.selectedTextColor : props.textColor;
70
68
  };
71
69
 
72
70
  return { selected, selectButton, getButtonColor };
73
- },
71
+ }
74
72
  };
75
73
  </script>
@@ -1,75 +1,75 @@
1
1
  import TitledInput from './TitledInput.vue';
2
2
 
3
3
  export default {
4
- title: 'Molecules/CombinationInputs/TitledInput',
5
- component: TitledInput,
6
- tags: ['autodocs'],
7
- args: {
8
- title: 'Your Title',
9
- invalid: false,
10
- inputValue: '',
11
- placeholder: 'Enter text'
4
+ title: 'Molecules/CombinationInputs/TitledInput',
5
+ component: TitledInput,
6
+ tags: ['autodocs'],
7
+ args: {
8
+ title: 'Your Title',
9
+ invalid: false,
10
+ inputValue: '',
11
+ placeholder: 'Enter text'
12
+ },
13
+ argTypes: {
14
+ title: {
15
+ control: {
16
+ type: 'text'
17
+ },
18
+ defaultValue: 'Your Title'
12
19
  },
13
- argTypes: {
14
- title: {
15
- control: {
16
- type: 'text'
17
- },
18
- defaultValue: 'Your Title'
19
- },
20
- invalid: {
21
- control: {
22
- type: 'boolean'
23
- },
24
- defaultValue: false
25
- },
26
- inputValue: {
27
- control: {
28
- type: 'text'
29
- },
30
- defaultValue: ''
31
- },
32
- placeholder: {
33
- control: {
34
- type: 'text'
35
- },
36
- defaultValue: 'Enter text'
37
- }
20
+ invalid: {
21
+ control: {
22
+ type: 'boolean'
23
+ },
24
+ defaultValue: false
25
+ },
26
+ inputValue: {
27
+ control: {
28
+ type: 'text'
29
+ },
30
+ defaultValue: ''
31
+ },
32
+ placeholder: {
33
+ control: {
34
+ type: 'text'
35
+ },
36
+ defaultValue: 'Enter text'
38
37
  }
38
+ }
39
39
  };
40
40
 
41
41
  export const DefaultTitledInput = {
42
- args: {
43
- title: 'Default Title',
44
- invalid: false,
45
- inputValue: '',
46
- placeholder: 'Enter text'
47
- }
42
+ args: {
43
+ title: 'Default Title',
44
+ invalid: false,
45
+ inputValue: '',
46
+ placeholder: 'Enter text'
47
+ }
48
48
  };
49
49
 
50
50
  export const TitledInputWithError = {
51
- args: {
52
- title: 'Error Title',
53
- invalid: true,
54
- inputValue: '',
55
- placeholder: 'Enter text'
56
- }
51
+ args: {
52
+ title: 'Error Title',
53
+ invalid: true,
54
+ inputValue: '',
55
+ placeholder: 'Enter text'
56
+ }
57
57
  };
58
58
 
59
59
  export const TitledInputWithInitialValue = {
60
- args: {
61
- title: 'Initial Value Title',
62
- invalid: false,
63
- inputValue: 'Initial Value',
64
- placeholder: 'Enter text'
65
- }
60
+ args: {
61
+ title: 'Initial Value Title',
62
+ invalid: false,
63
+ inputValue: 'Initial Value',
64
+ placeholder: 'Enter text'
65
+ }
66
66
  };
67
67
 
68
68
  export const TitledInputCustomPlaceholder = {
69
- args: {
70
- title: 'Custom Placeholder Title',
71
- invalid: false,
72
- inputValue: '',
73
- placeholder: 'Custom Placeholder'
74
- }
69
+ args: {
70
+ title: 'Custom Placeholder Title',
71
+ invalid: false,
72
+ inputValue: '',
73
+ placeholder: 'Custom Placeholder'
74
+ }
75
75
  };
@@ -1,81 +1,81 @@
1
- import {mount} from '@vue/test-utils';
1
+ import { mount } from '@vue/test-utils';
2
2
  import TitledInput from './TitledInput.vue';
3
- import BaseInput from "../../../Atoms/Input/BaseInput.vue";
4
- import {describe, expect, it} from "vitest";
3
+ import BaseInput from '../../../Atoms/Input/BaseInput.vue';
4
+ import { describe, expect, it } from 'vitest';
5
5
 
6
6
  describe('TitledInput', () => {
7
- it('renders correctly with all props', () => {
8
- const wrapper = mount(TitledInput, {
9
- props: {
10
- title: 'Test Title',
11
- invalid: false,
12
- inputValue: 'Test Input',
13
- placeholder: 'Enter something'
14
- }
15
- });
16
-
17
- expect(wrapper.text()).toContain('Test Title');
18
- const input = wrapper.find('input');
19
- expect(input.element.placeholder).toBe('Enter something');
20
- expect(input.element.value).toBe('Test Input');
7
+ it('renders correctly with all props', () => {
8
+ const wrapper = mount(TitledInput, {
9
+ props: {
10
+ title: 'Test Title',
11
+ invalid: false,
12
+ inputValue: 'Test Input',
13
+ placeholder: 'Enter something'
14
+ }
21
15
  });
22
16
 
23
- it('shows invalid state', async () => {
24
- const wrapper = mount(TitledInput, {
25
- props: {
26
- title: 'Test Title',
27
- invalid: true,
28
- inputValue: 'Test Input',
29
- placeholder: 'Enter something'
30
- }
31
- });
32
-
33
- // Wait for the next DOM update cycle
34
- await wrapper.vm.$nextTick();
17
+ expect(wrapper.text()).toContain('Test Title');
18
+ const input = wrapper.find('input');
19
+ expect(input.element.placeholder).toBe('Enter something');
20
+ expect(input.element.value).toBe('Test Input');
21
+ });
35
22
 
36
- // Find the BaseText component and check if it has the 'text-alarm' class
37
- const baseTextComponent = wrapper.findComponent({name: 'BaseText'});
38
- expect(baseTextComponent.classes()).toContain('text-alarm');
23
+ it('shows invalid state', async () => {
24
+ const wrapper = mount(TitledInput, {
25
+ props: {
26
+ title: 'Test Title',
27
+ invalid: true,
28
+ inputValue: 'Test Input',
29
+ placeholder: 'Enter something'
30
+ }
39
31
  });
40
32
 
41
- it('BaseInput emits update:value correctly', async () => {
42
- const wrapper = mount(BaseInput, {
43
- props: {
44
- value: 'Initial Value'
45
- }
46
- });
33
+ // Wait for the next DOM update cycle
34
+ await wrapper.vm.$nextTick();
47
35
 
48
- // Simulate input
49
- const inputElement = wrapper.find('input');
50
- await inputElement.setValue('New Value');
36
+ // Find the BaseText component and check if it has the 'text-alarm' class
37
+ const baseTextComponent = wrapper.findComponent({ name: 'BaseText' });
38
+ expect(baseTextComponent.classes()).toContain('text-alarm');
39
+ });
51
40
 
52
- // Wait for debounce timeout
53
- await new Promise(resolve => setTimeout(resolve, 350)); // Slightly more than 300ms for safety
54
-
55
- // Assertions
56
- expect(wrapper.emitted()).toHaveProperty('update:value');
57
- expect(wrapper.emitted()['update:value'][0]).toEqual(['New Value']);
41
+ it('BaseInput emits update:value correctly', async () => {
42
+ const wrapper = mount(BaseInput, {
43
+ props: {
44
+ value: 'Initial Value'
45
+ }
58
46
  });
59
47
 
60
- it('emits update event when input value changes', async () => {
61
- const wrapper = mount(TitledInput, {
62
- props: {
63
- title: 'Test Title',
64
- invalid: false,
65
- inputValue: 'Test Input',
66
- placeholder: 'Enter something'
67
- }
68
- });
48
+ // Simulate input
49
+ const inputElement = wrapper.find('input');
50
+ await inputElement.setValue('New Value');
69
51
 
70
- // Find the input element within BaseInput
71
- const inputElement = wrapper.find('input');
72
- await inputElement.setValue('New Value');
52
+ // Wait for debounce timeout
53
+ await new Promise(resolve => setTimeout(resolve, 350)); // Slightly more than 300ms for safety
73
54
 
74
- // Wait for the debounce timeout (300 ms) in BaseInput
75
- await new Promise(resolve => setTimeout(resolve, 300));
55
+ // Assertions
56
+ expect(wrapper.emitted()).toHaveProperty('update:value');
57
+ expect(wrapper.emitted()['update:value'][0]).toEqual(['New Value']);
58
+ });
76
59
 
77
- // Check if the update:value event was emitted
78
- expect(wrapper.emitted()).toHaveProperty('update:value');
79
- expect(wrapper.emitted()['update:value'][0]).toEqual(['New Value']);
60
+ it('emits update event when input value changes', async () => {
61
+ const wrapper = mount(TitledInput, {
62
+ props: {
63
+ title: 'Test Title',
64
+ invalid: false,
65
+ inputValue: 'Test Input',
66
+ placeholder: 'Enter something'
67
+ }
80
68
  });
69
+
70
+ // Find the input element within BaseInput
71
+ const inputElement = wrapper.find('input');
72
+ await inputElement.setValue('New Value');
73
+
74
+ // Wait for the debounce timeout (300 ms) in BaseInput
75
+ await new Promise(resolve => setTimeout(resolve, 300));
76
+
77
+ // Check if the update:value event was emitted
78
+ expect(wrapper.emitted()).toHaveProperty('update:value');
79
+ expect(wrapper.emitted()['update:value'][0]).toEqual(['New Value']);
80
+ });
81
81
  });
@@ -1,27 +1,28 @@
1
1
  <template>
2
2
  <div class="flex flex-col">
3
- <BaseText :invalid=invalid :text=title class="mb-1 ml-1" color="quaternary"
4
- size="sm" weight="normal"/>
5
- <BaseInput :addBorder="true"
6
- :invalid=invalid
7
- :inputType="inputType"
8
- :disabled="disabled"
9
- :placeholder=placeholder
10
- :value=inputValue
11
- :allowPercent="allowPercent"
12
- @update:value="handleUpdateValue"/>
3
+ <BaseText :invalid="invalid" :text="title" class="mb-1 ml-1" color="quaternary" size="sm" weight="normal" />
4
+ <BaseInput
5
+ :addBorder="true"
6
+ :invalid="invalid"
7
+ :inputType="inputType"
8
+ :disabled="disabled"
9
+ :placeholder="placeholder"
10
+ :value="inputValue"
11
+ :allowPercent="allowPercent"
12
+ @update:value="handleUpdateValue"
13
+ />
13
14
  </div>
14
15
  </template>
15
16
 
16
17
  <script>
17
- import BaseIcon from "../../../Atoms/Icon/BaseIcon.vue";
18
- import BaseInput from "../../../Atoms/Input/BaseInput.vue";
19
- import BaseText from "../../../Atoms/Text/BaseText.vue";
18
+ import BaseIcon from '../../../Atoms/Icon/BaseIcon.vue';
19
+ import BaseInput from '../../../Atoms/Input/BaseInput.vue';
20
+ import BaseText from '../../../Atoms/Text/BaseText.vue';
20
21
 
21
22
  export default {
22
23
  name: 'TitledInput',
23
24
  emits: ['update:value'],
24
- components: {BaseIcon, BaseInput, BaseText},
25
+ components: { BaseIcon, BaseInput, BaseText },
25
26
  props: {
26
27
  title: {
27
28
  type: String,
@@ -57,5 +58,5 @@ export default {
57
58
  this.$emit('update:value', value);
58
59
  }
59
60
  }
60
- }
61
- </script>
61
+ };
62
+ </script>
@@ -1,26 +1,26 @@
1
1
  import FilterAndSortBar from './FilterAndSortBar.vue';
2
2
 
3
3
  export default {
4
- title: 'Molecules/Filter/FilterAndSortBar',
5
- component: FilterAndSortBar,
6
- tags: ['autodocs'],
7
- argTypes: {
8
- label: {
9
- type: 'text',
10
- defaultValue: 'Default Text'
11
- },
12
- items: { control: 'object' }
13
- }
4
+ title: 'Molecules/Filter/FilterAndSortBar',
5
+ component: FilterAndSortBar,
6
+ tags: ['autodocs'],
7
+ argTypes: {
8
+ label: {
9
+ type: 'text',
10
+ defaultValue: 'Default Text'
11
+ },
12
+ items: { control: 'object' }
13
+ }
14
14
  };
15
15
 
16
16
  export const Default = {
17
- args: {
18
- label: 'Sort by',
19
- items: [
20
- {text: 'Name', link: '/sort/name'},
21
- {text: 'Location', link: '/sort/location'},
22
- {text: 'Date', link: '/sort/date'}
23
- ],
24
- selectedItem: {text: 'Name', link: '/sort/name'}
25
- }
17
+ args: {
18
+ label: 'Sort by',
19
+ items: [
20
+ { text: 'Name', link: '/sort/name' },
21
+ { text: 'Location', link: '/sort/location' },
22
+ { text: 'Date', link: '/sort/date' }
23
+ ],
24
+ selectedItem: { text: 'Name', link: '/sort/name' }
25
+ }
26
26
  };
@@ -2,17 +2,28 @@
2
2
  <section class="flex flex-row w-full justify-between">
3
3
  <div class="rounded-lg shadow px-2 py-1 w-full flex flex-row mt-0.5 mr-4 border bg-neutral border-dropdownSelect">
4
4
  <i class="fa-solid fa-magnifying-glass text-primaryHighlight w-6 mt-1" />
5
- <BaseInput :placeholder="placeholder" class="text-quaternary w-full" :addBorder=false :value="filterText" @update:value="handleFilter" />
5
+ <BaseInput
6
+ :placeholder="placeholder"
7
+ class="text-quaternary w-full"
8
+ :addBorder="false"
9
+ :value="filterText"
10
+ @update:value="handleFilter"
11
+ />
6
12
  </div>
7
13
  <div>
8
- <DropDownMenu :label="label" :items="items" :selectedItem="localSelectedItem" @update:selectedItem="handleSelectedItem" />
14
+ <DropDownMenu
15
+ :label="label"
16
+ :items="items"
17
+ :selectedItem="localSelectedItem"
18
+ @update:selectedItem="handleSelectedItem"
19
+ />
9
20
  </div>
10
21
  </section>
11
22
  </template>
12
23
 
13
24
  <script>
14
- import BaseInput from "../../../Atoms/Input/BaseInput.vue";
15
- import DropDownMenu from "../../../Organisms/ComplexInputs/DropDown/DropDownMenu.vue";
25
+ import BaseInput from '../../../Atoms/Input/BaseInput.vue';
26
+ import DropDownMenu from '../../../Organisms/ComplexInputs/DropDown/DropDownMenu.vue';
16
27
 
17
28
  export default {
18
29
  name: 'FilterAndSortBar',
@@ -23,7 +34,7 @@ export default {
23
34
  },
24
35
  props: {
25
36
  label: {
26
- type: String,
37
+ type: String
27
38
  },
28
39
  items: {
29
40
  type: Array,
@@ -46,9 +57,9 @@ export default {
46
57
  this.$emit('filterbar', filterText);
47
58
  },
48
59
  handleSelectedItem(item) {
49
- this.$emit('sort', item)
60
+ this.$emit('sort', item);
50
61
  this.localSelectedItem = item;
51
- },
62
+ }
52
63
  }
53
64
  };
54
65
  </script>
@@ -1,32 +1,30 @@
1
1
  import FilterUpcomingPast from './FilterUpcomingPast.vue';
2
2
 
3
3
  export default {
4
- title: 'Molecules/Filter/FilterUpcomingPast',
5
- component: FilterUpcomingPast,
6
- tags: ['autodocs'],
7
- argTypes: {
8
- },
9
- methods: {
10
- handleTimeFrame: {
11
- action: 'handleTimeFrame',
12
- description: 'Emitted when a time frame is selected'
13
- }
4
+ title: 'Molecules/Filter/FilterUpcomingPast',
5
+ component: FilterUpcomingPast,
6
+ tags: ['autodocs'],
7
+ argTypes: {},
8
+ methods: {
9
+ handleTimeFrame: {
10
+ action: 'handleTimeFrame',
11
+ description: 'Emitted when a time frame is selected'
14
12
  }
13
+ }
15
14
  };
16
15
 
17
16
  export const Default = {
18
- args: {
19
- }
17
+ args: {}
20
18
  };
21
19
 
22
20
  export const UpcomingSelected = {
23
- args: {
24
- selected: 'Upcoming'
25
- }
21
+ args: {
22
+ selected: 'Upcoming'
23
+ }
26
24
  };
27
25
 
28
26
  export const PastSelected = {
29
- args: {
30
- selected: 'Past'
31
- }
27
+ args: {
28
+ selected: 'Past'
29
+ }
32
30
  };