@dcrackel/hematournamentui 1.0.712 → 1.0.714

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 (107) hide show
  1. package/.prettierignore +7 -7
  2. package/.storybook/main.js +3 -1
  3. package/README.md +42 -0
  4. package/dist/HemaTournamentUI-lib.es.js +6856 -6243
  5. package/dist/HemaTournamentUI-lib.umd.js +27 -27
  6. package/dist/hematournamentui-tailwind.css +79 -9
  7. package/package.json +96 -96
  8. package/prettier.config.js +16 -16
  9. package/src/index.js +43 -42
  10. package/src/main.js +1 -1
  11. package/src/mocks/getDEBouts-TableOf128.js +37 -37
  12. package/src/mocks/getDEBouts-TableOf64.js +35 -35
  13. package/src/stories/Atoms/Input/BaseInput.test.js +97 -97
  14. package/src/stories/Atoms/Input/BaseInput.vue +149 -149
  15. package/src/stories/Molecules/Indicators/MissingHemaRatingsId/MissingHemaRatingsId.stories.js +23 -23
  16. package/src/stories/Molecules/Indicators/MissingHemaRatingsId/MissingHemaRatingsId.vue +35 -35
  17. package/src/stories/Molecules/Indicators/RegistrationStatus/RegistrationStatus.vue +30 -30
  18. package/src/stories/Molecules/Menus/HoverActions/HoverActions.test.js +138 -0
  19. package/src/stories/Molecules/Menus/HoverActions/HoverActions.vue +212 -0
  20. package/src/stories/Molecules/Modals/BracketDirectorsModal/BracketDirectorsModal.stories.js +49 -0
  21. package/src/stories/Molecules/Modals/BracketDirectorsModal/BracketDirectorsModal.test.js +129 -0
  22. package/src/stories/Molecules/Modals/BracketDirectorsModal/BracketDirectorsModal.vue +165 -0
  23. package/src/stories/Molecules/Modals/DirectorModal/DirectorModal.stories.js +6 -0
  24. package/src/stories/Molecules/Modals/DirectorModal/DirectorModal.test.js +18 -18
  25. package/src/stories/Molecules/Modals/DirectorModal/DirectorModal.vue +1 -1
  26. package/src/stories/Organisms/Cards/BoutCard/BoutCard.vue +5 -1
  27. package/src/stories/Organisms/Cards/BoutCard/Variants/BoutCardActive/BoutCardActive.vue +19 -10
  28. package/src/stories/Organisms/Cards/BoutCard/Variants/BoutCardInactive/BoutCardInactive.vue +11 -7
  29. package/src/stories/Organisms/Cards/BracketDirectorAssignmentCard/BracketDirectorAssignmentCard.stories.js +42 -33
  30. package/src/stories/Organisms/Cards/BracketDirectorAssignmentCard/BracketDirectorAssignmentCard.test.js +76 -45
  31. package/src/stories/Organisms/Cards/BracketDirectorAssignmentCard/BracketDirectorAssignmentCard.vue +122 -103
  32. package/src/stories/Organisms/Cards/Director/DirectorCard.test.js +82 -0
  33. package/src/stories/Organisms/Cards/Director/DirectorCard.vue +32 -51
  34. package/src/stories/Organisms/Cards/EditBout/EditBout.test.js +51 -51
  35. package/src/stories/Organisms/Cards/EventCard/EventCard.test.js +106 -106
  36. package/src/stories/Organisms/Cards/FencerCard/FencerCard.vue +298 -298
  37. package/src/stories/Organisms/Cards/TableauBoutCard/TableauBoutCard.stories.js +77 -60
  38. package/src/stories/Organisms/Cards/TableauBoutCard/TableauBoutCard.test.js +144 -143
  39. package/src/stories/Organisms/Cards/TableauBoutCard/TableauBoutCard.vue +289 -256
  40. package/src/stories/Organisms/Cards/TableauFencerCard/TableauFencerCard.stories.js +69 -69
  41. package/src/stories/Organisms/Cards/TableauFencerCard/TableauFencerCard.vue +80 -80
  42. package/src/stories/Organisms/Cards/WaitlistFencerCard/WaitlistFencerCard.vue +153 -153
  43. package/src/stories/Organisms/ComplexInputs/DropDown/DropDownMenu.vue +4 -0
  44. package/src/stories/Organisms/ComplexInputs/ImageCropper/ImageCropper.stories.js +31 -31
  45. package/src/stories/Organisms/ComplexInputs/ImageCropper/ImageCropper.test.js +109 -109
  46. package/src/stories/Organisms/ComplexInputs/ImageCropper/ImageCropper.vue +192 -192
  47. package/src/stories/Organisms/Containers/Tableau/Tableau.stories.js +1 -0
  48. package/src/stories/Organisms/Containers/Tableau/Tableau.test.js +247 -204
  49. package/src/stories/Organisms/Containers/Tableau/Tableau.vue +89 -15
  50. package/src/stories/Organisms/Containers/Tableau/components/BracketDirectorAssignmentPanel.test.js +51 -29
  51. package/src/stories/Organisms/Containers/Tableau/components/BracketDirectorAssignmentPanel.vue +63 -46
  52. package/src/stories/Organisms/Containers/Tableau/components/TableauSvgOverlay.test.js +21 -21
  53. package/src/stories/Organisms/Containers/Tableau/components/TableauSvgOverlay.vue +39 -39
  54. package/src/stories/Organisms/Containers/Tableau/layout/TableauLayoutEngine.js +145 -145
  55. package/src/stories/Organisms/Containers/Tableau/layout/TableauLayoutEngine.test.js +64 -64
  56. package/src/stories/Organisms/Containers/Tableau/plannedAssignments.js +36 -57
  57. package/src/stories/Organisms/Containers/Tableau/plannedAssignments.test.js +101 -65
  58. package/src/stories/Organisms/Containers/TableauColumn/TableauColumn.vue +14 -1
  59. package/src/stories/Organisms/Wizards/EditEventWizard/BasicEventInfo/BasicEventInfo.stories.js +52 -52
  60. package/src/stories/Organisms/Wizards/EditEventWizard/BasicEventInfo/BasicEventInfo.vue +10 -3
  61. package/src/stories/Organisms/Wizards/EditEventWizard/DirectElimination/DirectElimination.vue +226 -226
  62. package/src/stories/Organisms/Wizards/EditEventWizard/DirectEliminationPromotion/DirectEliminationPromotion.vue +204 -204
  63. package/src/stories/Organisms/Wizards/EditEventWizard/EditEventWizard.stories.js +137 -137
  64. package/src/stories/Organisms/Wizards/EditEventWizard/EventCustomization/EventCustomization.vue +172 -172
  65. package/src/stories/Organisms/Wizards/EditEventWizard/PoolConfiguration/PoolConfiguration.vue +216 -216
  66. package/src/stories/Organisms/Wizards/EditEventWizard/PriceFields.test.js +79 -79
  67. package/src/stories/Organisms/Wizards/EditEventWizard/RuleSerialization.test.js +29 -29
  68. package/src/stories/Organisms/Wizards/EditEventWizard/WeaponSelection.test.js +138 -0
  69. package/src/stories/Templates/EventManagement/Bracket/Bracket.stories.js +149 -9
  70. package/src/stories/Templates/EventManagement/Bracket/Bracket.test.js +54 -2
  71. package/src/stories/Templates/EventManagement/Bracket/Bracket.vue +77 -8
  72. package/src/stories/Templates/EventManagement/Bracket/BracketDirectorAssignment.test.js +242 -0
  73. package/src/stories/Templates/EventManagement/Bracket/BracketMobile.test.js +131 -0
  74. package/src/stories/Templates/EventManagement/Bracket/BracketPlannedSuggestions.js +50 -39
  75. package/src/stories/Templates/EventManagement/Bracket/BracketStories.test.js +201 -0
  76. package/src/stories/Templates/EventManagement/Bracket/BracketStoryAssignments.js +93 -0
  77. package/src/stories/Templates/EventManagement/Bracket/BracketStoryAssignments.test.js +152 -0
  78. package/src/stories/Templates/EventManagement/Bracket/BracketStoryHarness.js +39 -39
  79. package/src/stories/Templates/EventManagement/Bracket/BracketStoryHarness.test.js +79 -79
  80. package/src/stories/Templates/EventManagement/EditEventInfo/EditEventInfo.stories.js +93 -93
  81. package/src/stories/Templates/EventManagement/EditEventInfo/EditEventInfo.vue +91 -91
  82. package/src/stories/Templates/EventManagement/PoolLive/PoolLive.test.js +121 -121
  83. package/src/stories/Templates/Menus/EditEventsTopMenu/EditEventsTopMenu.stories.js +9 -2
  84. package/src/stories/Templates/Menus/EditEventsTopMenu/EditEventsTopMenu.vue +5 -4
  85. package/src/stories/Templates/PersonManagement/Admin/Administration/Administration.stories.js +81 -81
  86. package/src/stories/Templates/PersonManagement/Admin/Administration/Administration.test.js +39 -39
  87. package/src/stories/Templates/PersonManagement/Admin/Administration/Administration.vue +101 -101
  88. package/src/stories/Templates/PersonManagement/Admin/FencerAdmin/FencerAdmin.stories.js +71 -71
  89. package/src/stories/Templates/PersonManagement/Admin/FencerAdmin/FencerAdmin.vue +86 -86
  90. package/src/stories/Templates/PersonManagement/Admin/MergeAccounts/MergeAccounts.stories.js +86 -86
  91. package/src/stories/Templates/PersonManagement/Admin/MergeAccounts/MergeAccounts.vue +247 -247
  92. package/src/stories/Templates/PersonManagement/Basic/BasicEdit.vue +170 -170
  93. package/src/stories/Templates/PersonManagement/PersonManagement.stories.js +156 -156
  94. package/src/stories/Templates/PersonManagement/PersonManagement.test.js +329 -329
  95. package/src/stories/Templates/PersonManagement/PersonManagement.vue +329 -329
  96. package/src/stories/Templates/PersonManagement/PersonManagementDraft.js +42 -42
  97. package/src/stories/Templates/TournamentManagement/TournamentManagement.stories.js +84 -84
  98. package/src/stories/Templates/TournamentManagement/TournamentManagement.test.js +114 -114
  99. package/src/stories/Templates/TournamentManagement/TournamentManagement.vue +363 -363
  100. package/src/stories/Templates/TournamentManagement/TournamentPageOne/TournamentPageOne.stories.js +116 -116
  101. package/src/stories/Templates/TournamentManagement/TournamentPageOne/TournamentPageOne.vue +307 -307
  102. package/src/stories/Util/Validations/PersonManagementValidations.js +45 -45
  103. package/src/stories/Util/Validations/PriceValidation.js +6 -6
  104. package/src/stories/Util/boutDirectorAssignment.js +46 -0
  105. package/src/stories/Util/bracketDirectors.js +86 -0
  106. package/src/stories/Util/registrationStatus.js +11 -11
  107. package/src/stories/Util/tabs.js +19 -47
@@ -21,6 +21,7 @@
21
21
  --color-white: #fff;
22
22
  --spacing: 0.25rem;
23
23
  --container-md: 28rem;
24
+ --container-xl: 36rem;
24
25
  --text-xs: 0.75rem;
25
26
  --text-xs--line-height: calc(1 / 0.75);
26
27
  --text-sm: 0.875rem;
@@ -242,6 +243,9 @@
242
243
  .inset-0 {
243
244
  inset: calc(var(--spacing) * 0);
244
245
  }
246
+ .-top-1 {
247
+ top: calc(var(--spacing) * -1);
248
+ }
245
249
  .-top-4 {
246
250
  top: calc(var(--spacing) * -4);
247
251
  }
@@ -290,6 +294,9 @@
290
294
  .left-1 {
291
295
  left: calc(var(--spacing) * 1);
292
296
  }
297
+ .left-1\/2 {
298
+ left: calc(1 / 2 * 100%);
299
+ }
293
300
  .left-11 {
294
301
  left: calc(var(--spacing) * 11);
295
302
  }
@@ -311,6 +318,9 @@
311
318
  .z-50 {
312
319
  z-index: 50;
313
320
  }
321
+ .z-\[100\] {
322
+ z-index: 100;
323
+ }
314
324
  .order-first {
315
325
  order: -9999;
316
326
  }
@@ -359,14 +369,17 @@
359
369
  .m-4 {
360
370
  margin: calc(var(--spacing) * 4);
361
371
  }
372
+ .m-auto {
373
+ margin: auto;
374
+ }
362
375
  .mx-1 {
363
376
  margin-inline: calc(var(--spacing) * 1);
364
377
  }
365
378
  .mx-2 {
366
379
  margin-inline: calc(var(--spacing) * 2);
367
380
  }
368
- .mx-2\.5 {
369
- margin-inline: calc(var(--spacing) * 2.5);
381
+ .mx-3 {
382
+ margin-inline: calc(var(--spacing) * 3);
370
383
  }
371
384
  .mx-4 {
372
385
  margin-inline: calc(var(--spacing) * 4);
@@ -656,6 +669,9 @@
656
669
  .max-h-60 {
657
670
  max-height: calc(var(--spacing) * 60);
658
671
  }
672
+ .max-h-\[calc\(100dvh-2rem\)\] {
673
+ max-height: calc(100dvh - 2rem);
674
+ }
659
675
  .max-h-screen {
660
676
  max-height: 100vh;
661
677
  }
@@ -665,6 +681,9 @@
665
681
  .min-h-5 {
666
682
  min-height: calc(var(--spacing) * 5);
667
683
  }
684
+ .min-h-11 {
685
+ min-height: calc(var(--spacing) * 11);
686
+ }
668
687
  .min-h-16 {
669
688
  min-height: calc(var(--spacing) * 16);
670
689
  }
@@ -821,6 +840,9 @@
821
840
  .w-\[900px\] {
822
841
  width: 900px;
823
842
  }
843
+ .w-\[calc\(100\%-2rem\)\] {
844
+ width: calc(100% - 2rem);
845
+ }
824
846
  .w-full {
825
847
  width: 100%;
826
848
  }
@@ -839,12 +861,18 @@
839
861
  .max-w-md {
840
862
  max-width: var(--container-md);
841
863
  }
864
+ .max-w-xl {
865
+ max-width: var(--container-xl);
866
+ }
842
867
  .min-w-0 {
843
868
  min-width: calc(var(--spacing) * 0);
844
869
  }
845
870
  .min-w-20 {
846
871
  min-width: calc(var(--spacing) * 20);
847
872
  }
873
+ .min-w-36 {
874
+ min-width: calc(var(--spacing) * 36);
875
+ }
848
876
  .min-w-40 {
849
877
  min-width: calc(var(--spacing) * 40);
850
878
  }
@@ -886,6 +914,10 @@
886
914
  --tw-border-spacing-y: calc(var(--spacing) * 1);
887
915
  border-spacing: var(--tw-border-spacing-x) var(--tw-border-spacing-y);
888
916
  }
917
+ .-translate-x-1\/2 {
918
+ --tw-translate-x: calc(calc(1 / 2 * 100%) * -1);
919
+ translate: var(--tw-translate-x) var(--tw-translate-y);
920
+ }
889
921
  .translate-x-full {
890
922
  --tw-translate-x: 100%;
891
923
  translate: var(--tw-translate-x) var(--tw-translate-y);
@@ -1594,6 +1626,9 @@
1594
1626
  font-size: var(--text-xs);
1595
1627
  line-height: var(--tw-leading, var(--text-xs--line-height));
1596
1628
  }
1629
+ .text-\[9px\] {
1630
+ font-size: 9px;
1631
+ }
1597
1632
  .text-\[12rem\] {
1598
1633
  font-size: 12rem;
1599
1634
  }
@@ -1635,6 +1670,12 @@
1635
1670
  .text-nowrap {
1636
1671
  text-wrap: nowrap;
1637
1672
  }
1673
+ .break-words {
1674
+ overflow-wrap: break-word;
1675
+ }
1676
+ .wrap-break-word {
1677
+ overflow-wrap: break-word;
1678
+ }
1638
1679
  .whitespace-nowrap {
1639
1680
  white-space: nowrap;
1640
1681
  }
@@ -1737,6 +1778,9 @@
1737
1778
  .text-toggleBackground {
1738
1779
  color: #A9C4D6;
1739
1780
  }
1781
+ .text-white {
1782
+ color: var(--color-white);
1783
+ }
1740
1784
  .uppercase {
1741
1785
  text-transform: uppercase;
1742
1786
  }
@@ -1746,6 +1790,9 @@
1746
1790
  .underline {
1747
1791
  text-decoration-line: underline;
1748
1792
  }
1793
+ .accent-bright {
1794
+ accent-color: #6190f2;
1795
+ }
1749
1796
  .accent-primary {
1750
1797
  accent-color: #141B33;
1751
1798
  }
@@ -1873,6 +1920,19 @@
1873
1920
  -webkit-user-select: none;
1874
1921
  user-select: none;
1875
1922
  }
1923
+ .backdrop\:bg-black\/20 {
1924
+ &::backdrop {
1925
+ background-color: color-mix(in srgb, #000 20%, transparent);
1926
+ @supports (color: color-mix(in lab, red, red)) {
1927
+ background-color: color-mix(in oklab, var(--color-black) 20%, transparent);
1928
+ }
1929
+ }
1930
+ }
1931
+ .backdrop\:bg-secondary\/60 {
1932
+ &::backdrop {
1933
+ background-color: color-mix(in oklab, #2B324B 60%, transparent);
1934
+ }
1935
+ }
1876
1936
  .last\:border-b-0 {
1877
1937
  &:last-child {
1878
1938
  border-bottom-style: var(--tw-border-style);
@@ -2115,6 +2175,11 @@
2115
2175
  border-color: #6190f2;
2116
2176
  }
2117
2177
  }
2178
+ .focus-visible\:bg-dropdownSelect {
2179
+ &:focus-visible {
2180
+ background-color: #D5E4EE;
2181
+ }
2182
+ }
2118
2183
  .focus-visible\:ring-2 {
2119
2184
  &:focus-visible {
2120
2185
  --tw-ring-shadow: var(--tw-ring-inset,) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color, currentcolor);
@@ -2152,6 +2217,11 @@
2152
2217
  opacity: 40%;
2153
2218
  }
2154
2219
  }
2220
+ .disabled\:opacity-50 {
2221
+ &:disabled {
2222
+ opacity: 50%;
2223
+ }
2224
+ }
2155
2225
  .md\:m-9 {
2156
2226
  @media (width >= 48rem) {
2157
2227
  margin: calc(var(--spacing) * 9);
@@ -2272,6 +2342,11 @@
2272
2342
  display: none;
2273
2343
  }
2274
2344
  }
2345
+ .md\:inline-block {
2346
+ @media (width >= 48rem) {
2347
+ display: inline-block;
2348
+ }
2349
+ }
2275
2350
  .md\:h-7 {
2276
2351
  @media (width >= 48rem) {
2277
2352
  height: calc(var(--spacing) * 7);
@@ -2397,9 +2472,9 @@
2397
2472
  flex-direction: row;
2398
2473
  }
2399
2474
  }
2400
- .md\:flex-nowrap {
2475
+ .md\:flex-wrap {
2401
2476
  @media (width >= 48rem) {
2402
- flex-wrap: nowrap;
2477
+ flex-wrap: wrap;
2403
2478
  }
2404
2479
  }
2405
2480
  .md\:items-stretch {
@@ -2407,11 +2482,6 @@
2407
2482
  align-items: stretch;
2408
2483
  }
2409
2484
  }
2410
- .md\:justify-start {
2411
- @media (width >= 48rem) {
2412
- justify-content: flex-start;
2413
- }
2414
- }
2415
2485
  .md\:rounded-lg {
2416
2486
  @media (width >= 48rem) {
2417
2487
  border-radius: var(--radius-lg);
package/package.json CHANGED
@@ -1,96 +1,96 @@
1
- {
2
- "name": "@dcrackel/hematournamentui",
3
- "private": false,
4
- "version": "1.0.712",
5
- "type": "module",
6
- "main": "dist/HemaTournamentUI-lib.umd.js",
7
- "module": "dist/HemaTournamentUI-lib.es.js",
8
- "style": "dist/hematournamentui.css",
9
- "exports": {
10
- ".": {
11
- "import": "./dist/HemaTournamentUI-lib.es.js",
12
- "require": "./dist/HemaTournamentUI-lib.umd.js"
13
- },
14
- "./styles.css": "./dist/hematournamentui.css",
15
- "./tailwind.css": "./dist/hematournamentui-tailwind.css"
16
- },
17
- "scripts": {
18
- "dev-donotuse": "vite",
19
- "build": "npm run format:check && npm version patch && vite build && npm run build:package-css",
20
- "build:check": "npm run format:check && npm run lint && vite build && npm run build:package-css",
21
- "build:package-css": "npx @tailwindcss/cli -i ./tailwind/tailwind.css -o ./dist/hematournamentui-tailwind.css",
22
- "publish:package": "npm publish",
23
- "preview": "vite preview",
24
- "build-storybook": "npm run build:tailwind && storybook build",
25
- "build:tailwind": "npx @tailwindcss/cli -i ./tailwind/tailwind.css -o ./tailwind/output.css",
26
- "storybook": "concurrently \"npm run watch:tailwind\" \"npm run watch:storybook\"",
27
- "watch:storybook": "storybook dev -p 6006",
28
- "watch:tailwind": "npx @tailwindcss/cli -i ./tailwind/tailwind.css -o ./tailwind/output.css --watch",
29
- "format": "prettier --write .",
30
- "format:check": "prettier --check .",
31
- "lint": "eslint --ext .ts,.vue .",
32
- "test": "vitest",
33
- "coverage": "vitest run --coverage",
34
- "postinstall": "patch-package"
35
- },
36
- "dependencies": {
37
- "@fontsource/fira-code": "^5.2.7",
38
- "@fontsource/inter": "^5.2.8",
39
- "@fontsource/roboto-mono": "^5.2.9",
40
- "@storybook/icons": "^2.0.2",
41
- "@tiptap/extension-bold": "^2.1.13",
42
- "@tiptap/extension-highlight": "^2.1.13",
43
- "@tiptap/extension-text-align": "^2.1.13",
44
- "@tiptap/starter-kit": "^2.1.13",
45
- "@tiptap/vue-3": "^2.1.13",
46
- "cropperjs": "^2.1.1",
47
- "font-awesome": "^4.7.0",
48
- "glob": "^13.0.6",
49
- "lru-cache": "^11.3.6",
50
- "node-fetch": "^3.3.2",
51
- "postcss-nesting": "^14.0.0",
52
- "rimraf": "^6.1.3",
53
- "vue": "^3.5.34",
54
- "vue-avatar-cropper": "^6.1.1",
55
- "vue-google-autocomplete": "^1.1.4",
56
- "vue3-draggable": "^2.0.9",
57
- "vuedraggable": "^4.1.0"
58
- },
59
- "devDependencies": {
60
- "@babel/eslint-parser": "^7.28.6",
61
- "@chromatic-com/storybook": "^5.5.1",
62
- "@eslint/eslintrc": "^3.3.5",
63
- "@storybook/addon-docs": "^10.6.2",
64
- "@storybook/addon-links": "^10.6.2",
65
- "@storybook/react": "^10.6.2",
66
- "@storybook/vue3-vite": "^10.6.2",
67
- "@tailwindcss/cli": "^4.3.0",
68
- "@tailwindcss/postcss": "^4.3.0",
69
- "@typescript-eslint/eslint-plugin": "^8.59.3",
70
- "@typescript-eslint/parser": "^8.59.3",
71
- "@vitejs/plugin-vue": "^6.0.7",
72
- "@vitest/coverage-v8": "^4.1.11",
73
- "@vue/test-utils": "^2.4.10",
74
- "@vuepic/vue-datepicker": "^12.1.0",
75
- "autoprefixer": "^10.5.0",
76
- "concurrently": "^9.2.1",
77
- "eslint": "^9.9.0",
78
- "eslint-plugin-jest": "^29.15.2",
79
- "eslint-plugin-prettier": "^5.5.5",
80
- "eslint-plugin-storybook": "^10.6.2",
81
- "eslint-plugin-vue": "^10.9.1",
82
- "happy-dom": "^20.9.0",
83
- "patch-package": "^8.0.1",
84
- "postcss": "^8.5.14",
85
- "prettier": "^3.9.6",
86
- "storybook": "^10.6.2",
87
- "storybook-vue3-router": "^7.0.0",
88
- "tailwindcss": "^4.3.0",
89
- "vite": "^8.0.13",
90
- "vitest": "^4.1.11",
91
- "vue-eslint-parser": "^10.4.0"
92
- },
93
- "overrides": {
94
- "@storybook/preview-api": "^9.1.5"
95
- }
96
- }
1
+ {
2
+ "name": "@dcrackel/hematournamentui",
3
+ "private": false,
4
+ "version": "1.0.714",
5
+ "type": "module",
6
+ "main": "dist/HemaTournamentUI-lib.umd.js",
7
+ "module": "dist/HemaTournamentUI-lib.es.js",
8
+ "style": "dist/hematournamentui.css",
9
+ "exports": {
10
+ ".": {
11
+ "import": "./dist/HemaTournamentUI-lib.es.js",
12
+ "require": "./dist/HemaTournamentUI-lib.umd.js"
13
+ },
14
+ "./styles.css": "./dist/hematournamentui.css",
15
+ "./tailwind.css": "./dist/hematournamentui-tailwind.css"
16
+ },
17
+ "scripts": {
18
+ "dev-donotuse": "vite",
19
+ "build": "npm run format:check && npm version patch && vite build && npm run build:package-css",
20
+ "build:check": "npm run format:check && npm run lint && vite build && npm run build:package-css",
21
+ "build:package-css": "npx @tailwindcss/cli -i ./tailwind/tailwind.css -o ./dist/hematournamentui-tailwind.css",
22
+ "publish:package": "npm publish",
23
+ "preview": "vite preview",
24
+ "build-storybook": "npm run build:tailwind && storybook build",
25
+ "build:tailwind": "npx @tailwindcss/cli -i ./tailwind/tailwind.css -o ./tailwind/output.css",
26
+ "storybook": "concurrently \"npm run watch:tailwind\" \"npm run watch:storybook\"",
27
+ "watch:storybook": "storybook dev -p 6006",
28
+ "watch:tailwind": "npx @tailwindcss/cli -i ./tailwind/tailwind.css -o ./tailwind/output.css --watch",
29
+ "format": "prettier --write .",
30
+ "format:check": "prettier --check .",
31
+ "lint": "eslint --ext .ts,.vue .",
32
+ "test": "vitest",
33
+ "coverage": "vitest run --coverage",
34
+ "postinstall": "patch-package"
35
+ },
36
+ "dependencies": {
37
+ "@fontsource/fira-code": "^5.2.7",
38
+ "@fontsource/inter": "^5.2.8",
39
+ "@fontsource/roboto-mono": "^5.2.9",
40
+ "@storybook/icons": "^2.0.2",
41
+ "@tiptap/extension-bold": "^2.1.13",
42
+ "@tiptap/extension-highlight": "^2.1.13",
43
+ "@tiptap/extension-text-align": "^2.1.13",
44
+ "@tiptap/starter-kit": "^2.1.13",
45
+ "@tiptap/vue-3": "^2.1.13",
46
+ "cropperjs": "^2.1.1",
47
+ "font-awesome": "^4.7.0",
48
+ "glob": "^13.0.6",
49
+ "lru-cache": "^11.3.6",
50
+ "node-fetch": "^3.3.2",
51
+ "postcss-nesting": "^14.0.0",
52
+ "rimraf": "^6.1.3",
53
+ "vue": "^3.5.34",
54
+ "vue-avatar-cropper": "^6.1.1",
55
+ "vue-google-autocomplete": "^1.1.4",
56
+ "vue3-draggable": "^2.0.9",
57
+ "vuedraggable": "^4.1.0"
58
+ },
59
+ "devDependencies": {
60
+ "@babel/eslint-parser": "^7.28.6",
61
+ "@chromatic-com/storybook": "^5.5.1",
62
+ "@eslint/eslintrc": "^3.3.5",
63
+ "@storybook/addon-docs": "^10.6.2",
64
+ "@storybook/addon-links": "^10.6.2",
65
+ "@storybook/react": "^10.6.2",
66
+ "@storybook/vue3-vite": "^10.6.2",
67
+ "@tailwindcss/cli": "^4.3.0",
68
+ "@tailwindcss/postcss": "^4.3.0",
69
+ "@typescript-eslint/eslint-plugin": "^8.59.3",
70
+ "@typescript-eslint/parser": "^8.59.3",
71
+ "@vitejs/plugin-vue": "^6.0.7",
72
+ "@vitest/coverage-v8": "^4.1.11",
73
+ "@vue/test-utils": "^2.4.10",
74
+ "@vuepic/vue-datepicker": "^12.1.0",
75
+ "autoprefixer": "^10.5.0",
76
+ "concurrently": "^9.2.1",
77
+ "eslint": "^9.9.0",
78
+ "eslint-plugin-jest": "^29.15.2",
79
+ "eslint-plugin-prettier": "^5.5.5",
80
+ "eslint-plugin-storybook": "^10.6.2",
81
+ "eslint-plugin-vue": "^10.9.1",
82
+ "happy-dom": "^20.9.0",
83
+ "patch-package": "^8.0.1",
84
+ "postcss": "^8.5.14",
85
+ "prettier": "^3.9.6",
86
+ "storybook": "^10.6.2",
87
+ "storybook-vue3-router": "^7.0.0",
88
+ "tailwindcss": "^4.3.0",
89
+ "vite": "^8.0.13",
90
+ "vitest": "^4.1.11",
91
+ "vue-eslint-parser": "^10.4.0"
92
+ },
93
+ "overrides": {
94
+ "@storybook/preview-api": "^9.1.5"
95
+ }
96
+ }
@@ -1,16 +1,16 @@
1
- export default {
2
- arrowParens: 'avoid',
3
- bracketSameLine: false,
4
- bracketSpacing: true,
5
- endOfLine: 'auto',
6
- htmlWhitespaceSensitivity: 'css',
7
- printWidth: 120,
8
- proseWrap: 'preserve',
9
- semi: true,
10
- singleAttributePerLine: false,
11
- singleQuote: true,
12
- tabWidth: 2,
13
- trailingComma: 'none',
14
- useTabs: false,
15
- vueIndentScriptAndStyle: false
16
- };
1
+ export default {
2
+ arrowParens: 'avoid',
3
+ bracketSameLine: false,
4
+ bracketSpacing: true,
5
+ endOfLine: 'auto',
6
+ htmlWhitespaceSensitivity: 'css',
7
+ printWidth: 120,
8
+ proseWrap: 'preserve',
9
+ semi: true,
10
+ singleAttributePerLine: false,
11
+ singleQuote: true,
12
+ tabWidth: 2,
13
+ trailingComma: 'none',
14
+ useTabs: false,
15
+ vueIndentScriptAndStyle: false
16
+ };
package/src/index.js CHANGED
@@ -1,42 +1,43 @@
1
- export { default as BaseIcon } from './stories/Atoms/Icon/BaseIcon.vue';
2
- export { default as BaseInput } from './stories/Atoms/Input/BaseInput.vue';
3
- export { default as BaseRadioGroup } from './stories/Atoms/RadioGroup/BaseRadioGroup.vue';
4
- export { default as BaseTag } from './stories/Atoms/Tag/BaseTag.vue';
5
- export { default as BaseText } from './stories/Atoms/Text/BaseText.vue';
6
-
7
- export { default as Breadcrumb } from './stories/Molecules/Breadcrumb/Admin/Breadcrumb.vue';
8
- export { default as BaseButton } from './stories/Molecules/Buttons/BaseButton/BaseButton.vue';
9
- export { default as FilterAndSortBar } from './stories/Molecules/Filters/FilterAndSortBar/FilterAndSortBar.vue';
10
- export { default as FilterUpcomingPast } from './stories/Molecules/Filters/FilterUpcomingPast/FilterUpcomingPast.vue';
11
- export { default as BaseModal } from './stories/Molecules/Modals/BaseModal/BaseModal.vue';
12
- export { default as LoadingModal } from './stories/Molecules/Modals/LoadingModal/LoadingModal.vue';
13
- export { default as EventWizardModal } from './stories/Molecules/Modals/EventWizardModal/EventWizardModal.vue';
14
-
15
- export { default as AddressAutocomplete } from './stories/Organisms/ComplexInputs/AddressAutocomplete/AddressAutocomplete.vue';
16
- export { default as DatePicker } from './stories/Organisms/ComplexInputs/DatePicker/DatePicker.vue';
17
- export { default as DropDownMenu } from './stories/Organisms/ComplexInputs/DropDown/DropDownMenu.vue';
18
- export { default as GridContainer } from './stories/Organisms/Grids/GridContainer.vue';
19
- export { default as PoolGrid } from './stories/Organisms/Containers/PoolGrid/PoolGrid.vue';
20
- export { default as BracketDirectorAssignmentCard } from './stories/Organisms/Cards/BracketDirectorAssignmentCard/BracketDirectorAssignmentCard.vue';
21
- export { default as BracketDirectorAssignmentPanel } from './stories/Organisms/Containers/Tableau/components/BracketDirectorAssignmentPanel.vue';
22
- export { default as ImageCropper } from './stories/Organisms/ComplexInputs/ImageCropper/ImageCropper.vue';
23
- export { default as TextBoxEditor } from './stories/Organisms/ComplexInputs/TextBoxEditor/TextBoxEditor.vue';
24
- export { default as EditEventWizard } from './stories/Organisms/Wizards/EditEventWizard/EditEventWizard.vue';
25
-
26
- export { default as TournamentManagement } from './stories/Templates/TournamentManagement/TournamentManagement.vue';
27
- export { default as ListEvents } from './stories/Templates/TournamentManagement/ListEvents/ListEvents.vue';
28
-
29
- export { default as AdminLeftMenu } from './stories/Templates/Menus/Admin/AdminLeftMenu.vue';
30
- export { default as EventAttendance } from './stories/Templates/EventManagement/EventAttendance/EventAttendance.vue';
31
- export { default as PoolManagement } from './stories/Templates/EventManagement/PoolManagement/PoolManagement.vue';
32
- export { default as StaffList } from './stories/Templates/EventManagement/StaffList/StaffList.vue';
33
- export { default as PoolLive } from './stories/Templates/EventManagement/PoolLive/PoolLive.vue';
34
- export { default as PoolResults } from './stories/Templates/EventManagement/PoolResults/PoolResults.vue';
35
- export { default as Bracket } from './stories/Templates/EventManagement/Bracket/Bracket.vue';
36
- export { default as EditEventInfo } from './stories/Templates/EventManagement/EditEventInfo/EditEventInfo.vue';
37
- export { default as EventFinalResults } from './stories/Templates/EventManagement/EventFinalResults/EventFinalResults.vue';
38
- export { default as KioskDisplay } from './stories/Templates/EventManagement/KioskDisplay/KioskDisplay.vue';
39
- export { default as PersonManagement } from './stories/Templates/PersonManagement/PersonManagement.vue';
40
- export { default as ClubManagement } from './stories/Templates/ClubManagement/ClubManagement.vue';
41
- export { default as Assignment } from './stories/Templates/Assignment/Assignment.vue';
42
- export { default as PenaltyReport } from './stories/Templates/EventManagement/Penalties/PenaltyReport.vue';
1
+ export { default as BaseIcon } from './stories/Atoms/Icon/BaseIcon.vue';
2
+ export { default as BaseInput } from './stories/Atoms/Input/BaseInput.vue';
3
+ export { default as BaseRadioGroup } from './stories/Atoms/RadioGroup/BaseRadioGroup.vue';
4
+ export { default as BaseTag } from './stories/Atoms/Tag/BaseTag.vue';
5
+ export { default as BaseText } from './stories/Atoms/Text/BaseText.vue';
6
+
7
+ export { default as Breadcrumb } from './stories/Molecules/Breadcrumb/Admin/Breadcrumb.vue';
8
+ export { default as BaseButton } from './stories/Molecules/Buttons/BaseButton/BaseButton.vue';
9
+ export { default as FilterAndSortBar } from './stories/Molecules/Filters/FilterAndSortBar/FilterAndSortBar.vue';
10
+ export { default as FilterUpcomingPast } from './stories/Molecules/Filters/FilterUpcomingPast/FilterUpcomingPast.vue';
11
+ export { default as BaseModal } from './stories/Molecules/Modals/BaseModal/BaseModal.vue';
12
+ export { default as BracketDirectorsModal } from './stories/Molecules/Modals/BracketDirectorsModal/BracketDirectorsModal.vue';
13
+ export { default as LoadingModal } from './stories/Molecules/Modals/LoadingModal/LoadingModal.vue';
14
+ export { default as EventWizardModal } from './stories/Molecules/Modals/EventWizardModal/EventWizardModal.vue';
15
+
16
+ export { default as AddressAutocomplete } from './stories/Organisms/ComplexInputs/AddressAutocomplete/AddressAutocomplete.vue';
17
+ export { default as DatePicker } from './stories/Organisms/ComplexInputs/DatePicker/DatePicker.vue';
18
+ export { default as DropDownMenu } from './stories/Organisms/ComplexInputs/DropDown/DropDownMenu.vue';
19
+ export { default as GridContainer } from './stories/Organisms/Grids/GridContainer.vue';
20
+ export { default as PoolGrid } from './stories/Organisms/Containers/PoolGrid/PoolGrid.vue';
21
+ export { default as BracketDirectorAssignmentCard } from './stories/Organisms/Cards/BracketDirectorAssignmentCard/BracketDirectorAssignmentCard.vue';
22
+ export { default as BracketDirectorAssignmentPanel } from './stories/Organisms/Containers/Tableau/components/BracketDirectorAssignmentPanel.vue';
23
+ export { default as ImageCropper } from './stories/Organisms/ComplexInputs/ImageCropper/ImageCropper.vue';
24
+ export { default as TextBoxEditor } from './stories/Organisms/ComplexInputs/TextBoxEditor/TextBoxEditor.vue';
25
+ export { default as EditEventWizard } from './stories/Organisms/Wizards/EditEventWizard/EditEventWizard.vue';
26
+
27
+ export { default as TournamentManagement } from './stories/Templates/TournamentManagement/TournamentManagement.vue';
28
+ export { default as ListEvents } from './stories/Templates/TournamentManagement/ListEvents/ListEvents.vue';
29
+
30
+ export { default as AdminLeftMenu } from './stories/Templates/Menus/Admin/AdminLeftMenu.vue';
31
+ export { default as EventAttendance } from './stories/Templates/EventManagement/EventAttendance/EventAttendance.vue';
32
+ export { default as PoolManagement } from './stories/Templates/EventManagement/PoolManagement/PoolManagement.vue';
33
+ export { default as StaffList } from './stories/Templates/EventManagement/StaffList/StaffList.vue';
34
+ export { default as PoolLive } from './stories/Templates/EventManagement/PoolLive/PoolLive.vue';
35
+ export { default as PoolResults } from './stories/Templates/EventManagement/PoolResults/PoolResults.vue';
36
+ export { default as Bracket } from './stories/Templates/EventManagement/Bracket/Bracket.vue';
37
+ export { default as EditEventInfo } from './stories/Templates/EventManagement/EditEventInfo/EditEventInfo.vue';
38
+ export { default as EventFinalResults } from './stories/Templates/EventManagement/EventFinalResults/EventFinalResults.vue';
39
+ export { default as KioskDisplay } from './stories/Templates/EventManagement/KioskDisplay/KioskDisplay.vue';
40
+ export { default as PersonManagement } from './stories/Templates/PersonManagement/PersonManagement.vue';
41
+ export { default as ClubManagement } from './stories/Templates/ClubManagement/ClubManagement.vue';
42
+ export { default as Assignment } from './stories/Templates/Assignment/Assignment.vue';
43
+ export { default as PenaltyReport } from './stories/Templates/EventManagement/Penalties/PenaltyReport.vue';
package/src/main.js CHANGED
@@ -1 +1 @@
1
- import '../tailwind/output.css';
1
+ import '../tailwind/output.css';
@@ -1,37 +1,37 @@
1
- import historicalSixtySevenFencerBracket from './getDEBouts-67Fencers.js';
2
-
3
- const roundLabelRules = [
4
- { matches: boutId => boutId >= 1 && boutId <= 64, label: 'Table of 128' },
5
- { matches: boutId => boutId >= 65 && boutId <= 96, label: 'Table of 64' },
6
- { matches: boutId => boutId >= 97 && boutId <= 112, label: 'Table of 32' },
7
- { matches: boutId => boutId >= 113 && boutId <= 120, label: 'Table of 16' },
8
- { matches: boutId => boutId >= 121 && boutId <= 124, label: 'Table of 8' },
9
- { matches: boutId => boutId >= 125 && boutId <= 126, label: 'Semifinal' },
10
- { matches: boutId => boutId === 127, label: 'Final' }
11
- ];
12
-
13
- const getCurrentRoundLabel = bout => {
14
- const boutId = Number(bout.DEBoutId);
15
- return roundLabelRules.find(rule => rule.matches(boutId))?.label || bout.RoundLabel;
16
- };
17
-
18
- const normalizeTableOf128Bout = bout => ({
19
- ...bout,
20
- RoundLabel: getCurrentRoundLabel(bout)
21
- });
22
-
23
- const [historicalPool, ...otherPools] = historicalSixtySevenFencerBracket.pools;
24
-
25
- const getDEBoutsTableOf128 = {
26
- ...historicalSixtySevenFencerBracket,
27
- message: 'Current Table of 128 fixture retrieved',
28
- pools: [
29
- {
30
- ...historicalPool,
31
- Bouts: historicalPool.Bouts.map(normalizeTableOf128Bout)
32
- },
33
- ...otherPools
34
- ]
35
- };
36
-
37
- export default getDEBoutsTableOf128;
1
+ import historicalSixtySevenFencerBracket from './getDEBouts-67Fencers.js';
2
+
3
+ const roundLabelRules = [
4
+ { matches: boutId => boutId >= 1 && boutId <= 64, label: 'Table of 128' },
5
+ { matches: boutId => boutId >= 65 && boutId <= 96, label: 'Table of 64' },
6
+ { matches: boutId => boutId >= 97 && boutId <= 112, label: 'Table of 32' },
7
+ { matches: boutId => boutId >= 113 && boutId <= 120, label: 'Table of 16' },
8
+ { matches: boutId => boutId >= 121 && boutId <= 124, label: 'Table of 8' },
9
+ { matches: boutId => boutId >= 125 && boutId <= 126, label: 'Semifinal' },
10
+ { matches: boutId => boutId === 127, label: 'Final' }
11
+ ];
12
+
13
+ const getCurrentRoundLabel = bout => {
14
+ const boutId = Number(bout.DEBoutId);
15
+ return roundLabelRules.find(rule => rule.matches(boutId))?.label || bout.RoundLabel;
16
+ };
17
+
18
+ const normalizeTableOf128Bout = bout => ({
19
+ ...bout,
20
+ RoundLabel: getCurrentRoundLabel(bout)
21
+ });
22
+
23
+ const [historicalPool, ...otherPools] = historicalSixtySevenFencerBracket.pools;
24
+
25
+ const getDEBoutsTableOf128 = {
26
+ ...historicalSixtySevenFencerBracket,
27
+ message: 'Current Table of 128 fixture retrieved',
28
+ pools: [
29
+ {
30
+ ...historicalPool,
31
+ Bouts: historicalPool.Bouts.map(normalizeTableOf128Bout)
32
+ },
33
+ ...otherPools
34
+ ]
35
+ };
36
+
37
+ export default getDEBoutsTableOf128;