@jjlmoya/utils-tabletop 1.4.0 → 1.6.0

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 (163) hide show
  1. package/package.json +5 -3
  2. package/src/entries.ts +15 -1
  3. package/src/index.ts +3 -0
  4. package/src/tests/locale_completeness.test.ts +2 -1
  5. package/src/tests/tool_validation.test.ts +2 -1
  6. package/src/tool/decision-wheel/audio.ts +78 -0
  7. package/src/tool/decision-wheel/bibliography.astro +16 -0
  8. package/src/tool/decision-wheel/bibliography.ts +8 -0
  9. package/src/tool/decision-wheel/client.ts +226 -0
  10. package/src/tool/decision-wheel/component.astro +48 -0
  11. package/src/tool/decision-wheel/components/SegmentEditor.astro +22 -0
  12. package/src/tool/decision-wheel/components/SpinHistory.astro +17 -0
  13. package/src/tool/decision-wheel/components/SpinResult.astro +13 -0
  14. package/src/tool/decision-wheel/components/WheelCanvas.astro +23 -0
  15. package/src/tool/decision-wheel/decision-wheel.css +632 -0
  16. package/src/tool/decision-wheel/drawing.ts +144 -0
  17. package/src/tool/decision-wheel/entry.ts +48 -0
  18. package/src/tool/decision-wheel/i18n/de.ts +97 -0
  19. package/src/tool/decision-wheel/i18n/en.ts +251 -0
  20. package/src/tool/decision-wheel/i18n/es.ts +93 -0
  21. package/src/tool/decision-wheel/i18n/fr.ts +93 -0
  22. package/src/tool/decision-wheel/i18n/id.ts +93 -0
  23. package/src/tool/decision-wheel/i18n/it.ts +93 -0
  24. package/src/tool/decision-wheel/i18n/ja.ts +93 -0
  25. package/src/tool/decision-wheel/i18n/ko.ts +93 -0
  26. package/src/tool/decision-wheel/i18n/nl.ts +93 -0
  27. package/src/tool/decision-wheel/i18n/pl.ts +93 -0
  28. package/src/tool/decision-wheel/i18n/pt.ts +93 -0
  29. package/src/tool/decision-wheel/i18n/ru.ts +75 -0
  30. package/src/tool/decision-wheel/i18n/sv.ts +93 -0
  31. package/src/tool/decision-wheel/i18n/tr.ts +93 -0
  32. package/src/tool/decision-wheel/i18n/zh.ts +93 -0
  33. package/src/tool/decision-wheel/index.ts +9 -0
  34. package/src/tool/decision-wheel/logic.test.ts +163 -0
  35. package/src/tool/decision-wheel/logic.ts +145 -0
  36. package/src/tool/decision-wheel/seo.astro +16 -0
  37. package/src/tool/decision-wheel/types.ts +14 -0
  38. package/src/tool/decision-wheel/ui.ts +121 -0
  39. package/src/tool/fantasy-runes-translator/bibliography.astro +16 -0
  40. package/src/tool/fantasy-runes-translator/bibliography.ts +16 -0
  41. package/src/tool/fantasy-runes-translator/client.ts +205 -0
  42. package/src/tool/fantasy-runes-translator/component.astro +95 -0
  43. package/src/tool/fantasy-runes-translator/entry.ts +56 -0
  44. package/src/tool/fantasy-runes-translator/fantasy-runes-translator.css +712 -0
  45. package/src/tool/fantasy-runes-translator/i18n/de.ts +139 -0
  46. package/src/tool/fantasy-runes-translator/i18n/en.ts +139 -0
  47. package/src/tool/fantasy-runes-translator/i18n/es.ts +139 -0
  48. package/src/tool/fantasy-runes-translator/i18n/fr.ts +139 -0
  49. package/src/tool/fantasy-runes-translator/i18n/id.ts +139 -0
  50. package/src/tool/fantasy-runes-translator/i18n/it.ts +139 -0
  51. package/src/tool/fantasy-runes-translator/i18n/ja.ts +139 -0
  52. package/src/tool/fantasy-runes-translator/i18n/ko.ts +139 -0
  53. package/src/tool/fantasy-runes-translator/i18n/nl.ts +139 -0
  54. package/src/tool/fantasy-runes-translator/i18n/pl.ts +139 -0
  55. package/src/tool/fantasy-runes-translator/i18n/pt.ts +139 -0
  56. package/src/tool/fantasy-runes-translator/i18n/ru.ts +139 -0
  57. package/src/tool/fantasy-runes-translator/i18n/sv.ts +139 -0
  58. package/src/tool/fantasy-runes-translator/i18n/tr.ts +139 -0
  59. package/src/tool/fantasy-runes-translator/i18n/zh.ts +139 -0
  60. package/src/tool/fantasy-runes-translator/index.ts +9 -0
  61. package/src/tool/fantasy-runes-translator/logic.ts +174 -0
  62. package/src/tool/fantasy-runes-translator/seo.astro +16 -0
  63. package/src/tool/fantasy-runes-translator/types.ts +26 -0
  64. package/src/tool/investigation-board/bibliography.astro +16 -0
  65. package/src/tool/investigation-board/bibliography.ts +12 -0
  66. package/src/tool/investigation-board/boardContextMenu.ts +64 -0
  67. package/src/tool/investigation-board/client.ts +223 -0
  68. package/src/tool/investigation-board/component.astro +23 -0
  69. package/src/tool/investigation-board/components/BoardCanvas.astro +39 -0
  70. package/src/tool/investigation-board/components/CardDrawer.astro +73 -0
  71. package/src/tool/investigation-board/components/ConnectionModal.astro +49 -0
  72. package/src/tool/investigation-board/components/ContextMenu.astro +26 -0
  73. package/src/tool/investigation-board/components/ControlPanel.astro +57 -0
  74. package/src/tool/investigation-board/connectionModal.ts +60 -0
  75. package/src/tool/investigation-board/dom.ts +89 -0
  76. package/src/tool/investigation-board/drawer.ts +110 -0
  77. package/src/tool/investigation-board/entry.ts +59 -0
  78. package/src/tool/investigation-board/i18n/de.ts +126 -0
  79. package/src/tool/investigation-board/i18n/en.ts +127 -0
  80. package/src/tool/investigation-board/i18n/es.ts +126 -0
  81. package/src/tool/investigation-board/i18n/fr.ts +126 -0
  82. package/src/tool/investigation-board/i18n/id.ts +126 -0
  83. package/src/tool/investigation-board/i18n/it.ts +126 -0
  84. package/src/tool/investigation-board/i18n/ja.ts +126 -0
  85. package/src/tool/investigation-board/i18n/ko.ts +126 -0
  86. package/src/tool/investigation-board/i18n/nl.ts +126 -0
  87. package/src/tool/investigation-board/i18n/pl.ts +126 -0
  88. package/src/tool/investigation-board/i18n/pt.ts +126 -0
  89. package/src/tool/investigation-board/i18n/ru.ts +126 -0
  90. package/src/tool/investigation-board/i18n/sv.ts +126 -0
  91. package/src/tool/investigation-board/i18n/tr.ts +126 -0
  92. package/src/tool/investigation-board/i18n/zh.ts +126 -0
  93. package/src/tool/investigation-board/index.ts +11 -0
  94. package/src/tool/investigation-board/interactDrag.ts +58 -0
  95. package/src/tool/investigation-board/investigation-board.css +799 -0
  96. package/src/tool/investigation-board/layout.ts +16 -0
  97. package/src/tool/investigation-board/logic.test.ts +105 -0
  98. package/src/tool/investigation-board/logic.ts +106 -0
  99. package/src/tool/investigation-board/panzoom.ts +24 -0
  100. package/src/tool/investigation-board/renderer.ts +256 -0
  101. package/src/tool/investigation-board/seo.astro +16 -0
  102. package/src/tool/investigation-board/stateManager.ts +126 -0
  103. package/src/tool/investigation-board/types.ts +26 -0
  104. package/src/tool/rpg-initiative-tracker/bibliography.astro +16 -0
  105. package/src/tool/rpg-initiative-tracker/bibliography.ts +12 -0
  106. package/src/tool/rpg-initiative-tracker/client.ts +201 -0
  107. package/src/tool/rpg-initiative-tracker/component.astro +23 -0
  108. package/src/tool/rpg-initiative-tracker/components/AddForm.astro +49 -0
  109. package/src/tool/rpg-initiative-tracker/components/CombatantList.astro +16 -0
  110. package/src/tool/rpg-initiative-tracker/components/TurnControls.astro +28 -0
  111. package/src/tool/rpg-initiative-tracker/entry.ts +50 -0
  112. package/src/tool/rpg-initiative-tracker/i18n/de.ts +266 -0
  113. package/src/tool/rpg-initiative-tracker/i18n/en.ts +263 -0
  114. package/src/tool/rpg-initiative-tracker/i18n/es.ts +264 -0
  115. package/src/tool/rpg-initiative-tracker/i18n/fr.ts +263 -0
  116. package/src/tool/rpg-initiative-tracker/i18n/id.ts +263 -0
  117. package/src/tool/rpg-initiative-tracker/i18n/it.ts +263 -0
  118. package/src/tool/rpg-initiative-tracker/i18n/ja.ts +263 -0
  119. package/src/tool/rpg-initiative-tracker/i18n/ko.ts +263 -0
  120. package/src/tool/rpg-initiative-tracker/i18n/nl.ts +263 -0
  121. package/src/tool/rpg-initiative-tracker/i18n/pl.ts +264 -0
  122. package/src/tool/rpg-initiative-tracker/i18n/pt.ts +263 -0
  123. package/src/tool/rpg-initiative-tracker/i18n/ru.ts +264 -0
  124. package/src/tool/rpg-initiative-tracker/i18n/sv.ts +263 -0
  125. package/src/tool/rpg-initiative-tracker/i18n/tr.ts +263 -0
  126. package/src/tool/rpg-initiative-tracker/i18n/zh.ts +263 -0
  127. package/src/tool/rpg-initiative-tracker/index.ts +9 -0
  128. package/src/tool/rpg-initiative-tracker/logic.test.ts +121 -0
  129. package/src/tool/rpg-initiative-tracker/logic.ts +122 -0
  130. package/src/tool/rpg-initiative-tracker/rpg-initiative-tracker.css +617 -0
  131. package/src/tool/rpg-initiative-tracker/seo.astro +16 -0
  132. package/src/tool/rpg-initiative-tracker/types.ts +15 -0
  133. package/src/tool/score-tracker/bibliography.astro +16 -0
  134. package/src/tool/score-tracker/bibliography.ts +12 -0
  135. package/src/tool/score-tracker/client.ts +248 -0
  136. package/src/tool/score-tracker/component.astro +34 -0
  137. package/src/tool/score-tracker/components/Leaderboard.astro +19 -0
  138. package/src/tool/score-tracker/components/PlayerSetup.astro +32 -0
  139. package/src/tool/score-tracker/components/RoundScoring.astro +22 -0
  140. package/src/tool/score-tracker/components/ScoreHistory.astro +25 -0
  141. package/src/tool/score-tracker/entry.ts +57 -0
  142. package/src/tool/score-tracker/i18n/de.ts +278 -0
  143. package/src/tool/score-tracker/i18n/en.ts +278 -0
  144. package/src/tool/score-tracker/i18n/es.ts +251 -0
  145. package/src/tool/score-tracker/i18n/fr.ts +278 -0
  146. package/src/tool/score-tracker/i18n/id.ts +278 -0
  147. package/src/tool/score-tracker/i18n/it.ts +278 -0
  148. package/src/tool/score-tracker/i18n/ja.ts +278 -0
  149. package/src/tool/score-tracker/i18n/ko.ts +278 -0
  150. package/src/tool/score-tracker/i18n/nl.ts +278 -0
  151. package/src/tool/score-tracker/i18n/pl.ts +278 -0
  152. package/src/tool/score-tracker/i18n/pt.ts +278 -0
  153. package/src/tool/score-tracker/i18n/ru.ts +278 -0
  154. package/src/tool/score-tracker/i18n/sv.ts +278 -0
  155. package/src/tool/score-tracker/i18n/tr.ts +278 -0
  156. package/src/tool/score-tracker/i18n/zh.ts +278 -0
  157. package/src/tool/score-tracker/index.ts +9 -0
  158. package/src/tool/score-tracker/logic.test.ts +83 -0
  159. package/src/tool/score-tracker/logic.ts +122 -0
  160. package/src/tool/score-tracker/score-tracker.css +1029 -0
  161. package/src/tool/score-tracker/seo.astro +16 -0
  162. package/src/tool/score-tracker/types.ts +17 -0
  163. package/src/tools.ts +11 -0
@@ -0,0 +1,16 @@
1
+ ---
2
+ import { SEORenderer } from '@jjlmoya/utils-shared';
3
+ import { scoreTracker } from './index';
4
+ import type { KnownLocale } from '../../types';
5
+
6
+ interface Props {
7
+ locale?: KnownLocale;
8
+ }
9
+
10
+ const { locale = 'en' } = Astro.props;
11
+ const loader = scoreTracker.i18n[locale] || scoreTracker.i18n.en;
12
+ const content = await loader?.();
13
+ if (!content) return null;
14
+ ---
15
+
16
+ {content.seo?.length > 0 && <SEORenderer content={{ locale, sections: content.seo }} />}
@@ -0,0 +1,17 @@
1
+ export interface PlayerScore {
2
+ id: string;
3
+ name: string;
4
+ rounds: number[];
5
+ total: number;
6
+ }
7
+
8
+ export interface RoundEntry {
9
+ round: number;
10
+ scores: Record<string, number>;
11
+ }
12
+
13
+ export interface ScoreState {
14
+ players: PlayerScore[];
15
+ rounds: RoundEntry[];
16
+ currentRound: number;
17
+ }
package/src/tools.ts CHANGED
@@ -3,9 +3,20 @@ import type { ToolDefinition } from './types';
3
3
  import { DICE_ROLLER_SIMULATOR_TOOL } from './tool/dice-roller-simulator';
4
4
  import { BOARD_GAME_TIMER_TOOL } from './tool/board-game-timer';
5
5
  import { FIRST_PLAYER_SELECTOR_TOOL } from './tool/first-player-selector';
6
+ import { SCORE_TRACKER_TOOL } from './tool/score-tracker';
7
+ import { INITIATIVE_TRACKER_TOOL } from './tool/rpg-initiative-tracker';
8
+ import { FANTASY_RUNES_TRANSLATOR_TOOL } from './tool/fantasy-runes-translator';
9
+ import { DECISION_WHEEL_TOOL } from './tool/decision-wheel';
10
+ import { INVESTIGATION_BOARD_TOOL } from './tool/investigation-board';
6
11
 
7
12
  export const ALL_TOOLS: ToolDefinition[] = [
8
13
  DICE_ROLLER_SIMULATOR_TOOL,
9
14
  BOARD_GAME_TIMER_TOOL,
10
15
  FIRST_PLAYER_SELECTOR_TOOL,
16
+ SCORE_TRACKER_TOOL,
17
+ INITIATIVE_TRACKER_TOOL,
18
+ FANTASY_RUNES_TRANSLATOR_TOOL,
19
+ DECISION_WHEEL_TOOL,
20
+ INVESTIGATION_BOARD_TOOL,
11
21
  ];
22
+