@dcrackel/hematournamentui 1.0.713 → 1.0.715

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 (20) hide show
  1. package/README.md +14 -0
  2. package/dist/HemaTournamentUI-lib.es.js +6917 -6255
  3. package/dist/HemaTournamentUI-lib.umd.js +27 -27
  4. package/dist/hematournamentui-tailwind.css +109 -18
  5. package/package.json +1 -1
  6. package/src/index.js +43 -42
  7. package/src/stories/Molecules/Modals/BracketDirectorsModal/BracketDirectorsModal.stories.js +49 -0
  8. package/src/stories/Molecules/Modals/BracketDirectorsModal/BracketDirectorsModal.test.js +129 -0
  9. package/src/stories/Molecules/Modals/BracketDirectorsModal/BracketDirectorsModal.vue +165 -0
  10. package/src/stories/Organisms/Cards/BracketDirectorAssignmentCard/BracketDirectorAssignmentCard.stories.js +10 -1
  11. package/src/stories/Organisms/Cards/BracketDirectorAssignmentCard/BracketDirectorAssignmentCard.test.js +31 -0
  12. package/src/stories/Organisms/Cards/BracketDirectorAssignmentCard/BracketDirectorAssignmentCard.vue +20 -1
  13. package/src/stories/Organisms/Containers/Tableau/components/BracketDirectorAssignmentPanel.test.js +38 -0
  14. package/src/stories/Organisms/Containers/Tableau/components/BracketDirectorAssignmentPanel.vue +63 -9
  15. package/src/stories/Templates/EventManagement/Bracket/Bracket.stories.js +46 -4
  16. package/src/stories/Templates/EventManagement/Bracket/Bracket.test.js +244 -178
  17. package/src/stories/Templates/EventManagement/Bracket/Bracket.vue +48 -3
  18. package/src/stories/Templates/EventManagement/Bracket/BracketPlannedSuggestions.js +8 -0
  19. package/src/stories/Templates/EventManagement/Bracket/BracketStories.test.js +121 -0
  20. package/src/stories/Util/bracketDirectors.js +86 -0
package/README.md CHANGED
@@ -50,6 +50,20 @@ Three, five, and six directors use near-equal contiguous groups within each roun
50
50
 
51
51
  The ThreeDirectors, FourDirectors, FiveDirectors, and SixDirectors stories demonstrate the counts. Distribution lives in the story parent simulation; reusable components still receive explicit `plannedDirectingStations` and `plannedBoutAssignments` from the consuming app.
52
52
 
53
+ The right-column director cards include a remove control. `Bracket` emits `request:remove-planned-director` with the selected station, including its `RingId` and `Director`. The consuming app removes that station from planned coverage, redistributes scheduled work as needed, and supplies the updated props. Removing planned coverage does not clear saved referee fields or change active/completed bouts. The story demonstrates removal, redistribution, removing the last director, and adding a removed director again.
54
+
55
+ ## DE director roster contract
56
+
57
+ Supply `availableDirectors` and `rings` to `Bracket` to enable the roster modal. Add director and Manage open a list with selection checkboxes and a ring dropdown per person. The parent prepares eligible staff and optional default rings from Staff and pool assignments; staff who only help in DE need no pool assignment. This package does not read or change the Staff screen or pool data.
58
+
59
+ The director column starts with compact icon-and-label buttons: Manage, Redistribute, and Refresh. Their full descriptions are available as tooltips and accessible labels. Redistribute emits `request:redistribute-scheduled-bouts`; the parent redistributes scheduled coverage and returns updated assignment props, preserving active and completed bouts. Refresh emits `request:refresh-assignments`; the parent reloads current stations and assignments and supplies fresh props. Both events have no payload and leave existing data visible until the parent responds. The toolbar uses the same `availableDirectors` and `rings` availability as Manage. Standalone `BracketDirectorAssignmentPanel` consumers enable it with `canManageDirectors` and receive the same request events.
60
+
61
+ `availableDirectors` contains `{ PersonId, DisplayName, Color, PortraitUrl?, DefaultRingId? }`. `rings` contains `{ RingId, RingName, Color?, Disabled? }`. Saved `plannedDirectingStations` keep the existing `{ RingId, RingName, Color, Director: { PersonId, DisplayName, PortraitUrl? } }` shape. Director IDs identify people; ring IDs identify coverage stations. One selected director per ring matches the current station and bout-assignment contract. The modal permits changing both draft rows before saving a ring swap and reports duplicate or missing rings.
62
+
63
+ Saving emits `update:planned-directing-stations` with a detached full station list. Unchecking a person removes them from DE coverage. Ring changes are made in the modal; right-column cards display the selected ring as plain text. The parent saves the intent, redistributes scheduled coverage as appropriate, and returns authoritative props. Existing active/completed bout fields and pool assignments remain parent-owned. Each director keeps their supplied color when changing rings.
64
+
65
+ If those new data props are omitted, the existing `request:add-planned-director` callback remains available for parent-owned add UI. `BracketDirectorsModal` is also exported for standalone use with `show`, `availableDirectors`, `rings`, and `stations`; it emits `update:show` and `submit:stations`.
66
+
53
67
  ## Phone directing view
54
68
 
55
69
  Below 768px, the bracket shows the bout list with connection status and planned ring suggestions. The organising panel and assignment actions are unavailable on phones, even when their props are enabled. Completed bouts sit in a collapsed section for score corrections. Returning to desktop restores the selected List View or Tableau.