GameSentenceMiner 2.15.11__py3-none-any.whl → 2.16.0__py3-none-any.whl

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.
@@ -0,0 +1,16 @@
1
+ <!-- Navigation Component -->
2
+ <div class="navigation" style="display: flex; justify-content: center; align-items: center; margin-bottom: 30px; padding: 15px; background: var(--bg-secondary); border-radius: 8px; box-shadow: 0 2px 8px var(--shadow-color); border: 1px solid var(--border-color);">
3
+ <div style="display: flex; gap: 15px;">
4
+ <a href="/" class="nav-link">Home</a>
5
+ <a href="/stats" class="nav-link">Statistics</a>
6
+ <a href="/search" class="nav-link">Search</a>
7
+ <a href="/database" class="nav-link">Database Management</a>
8
+ <a href="/anki_stats" class="nav-link">Anki Stats</a>
9
+ </div>
10
+ <button class="theme-toggle" id="settingsToggle" title="Settings">
11
+ <span id="settingsIcon">⚙️</span>
12
+ </button>
13
+ <button class="theme-toggle" id="themeToggle" title="Toggle dark mode">
14
+ <span id="themeIcon">🌙</span>
15
+ </button>
16
+ </div>
@@ -0,0 +1,128 @@
1
+ <!-- Theme Styles Component -->
2
+ <style>
3
+ :root {
4
+ /* Light theme colors */
5
+ --bg-primary: #f8f9fa;
6
+ --bg-secondary: #ffffff;
7
+ --bg-tertiary: #e9ecef;
8
+ --text-primary: #212529;
9
+ --text-secondary: #495057;
10
+ --text-tertiary: #6c757d;
11
+ --border-color: #dee2e6;
12
+ --shadow-color: rgba(0, 0, 0, 0.08);
13
+ --accent-color: #007bff;
14
+ --success-color: #28a745;
15
+ --warning-color: #ffc107;
16
+ --danger-color: #dc3545;
17
+ --info-color: #17a2b8;
18
+ }
19
+
20
+ [data-theme="dark"] {
21
+ /* Dark theme colors */
22
+ --bg-primary: #1a1a1a;
23
+ --bg-secondary: #2d2d2d;
24
+ --bg-tertiary: #3a3a3a;
25
+ --text-primary: #e1e1e1;
26
+ --text-secondary: #b8b8b8;
27
+ --text-tertiary: #8a8a8a;
28
+ --border-color: #404040;
29
+ --shadow-color: rgba(0, 0, 0, 0.3);
30
+ --accent-color: #4dabf7;
31
+ --success-color: #51cf66;
32
+ --warning-color: #ffd43b;
33
+ --danger-color: #ff6b6b;
34
+ --info-color: #22b8cf;
35
+ }
36
+
37
+ @media (prefers-color-scheme: dark) {
38
+ :root:not([data-theme="light"]) {
39
+ /* Auto dark mode colors */
40
+ --bg-primary: #1a1a1a;
41
+ --bg-secondary: #2d2d2d;
42
+ --bg-tertiary: #3a3a3a;
43
+ --text-primary: #e1e1e1;
44
+ --text-secondary: #b8b8b8;
45
+ --text-tertiary: #8a8a8a;
46
+ --border-color: #404040;
47
+ --shadow-color: rgba(0, 0, 0, 0.3);
48
+ --accent-color: #4dabf7;
49
+ --success-color: #51cf66;
50
+ --warning-color: #ffd43b;
51
+ --danger-color: #ff6b6b;
52
+ --info-color: #22b8cf;
53
+ }
54
+ }
55
+
56
+ /* Dark mode toggle button */
57
+ .theme-toggle {
58
+ background: var(--bg-tertiary);
59
+ border: 2px solid var(--border-color);
60
+ border-radius: 50%;
61
+ width: 40px;
62
+ height: 40px;
63
+ display: flex;
64
+ align-items: center;
65
+ justify-content: center;
66
+ cursor: pointer;
67
+ transition: all 0.3s ease;
68
+ color: var(--text-primary);
69
+ font-size: 18px;
70
+ margin-left: 15px;
71
+ }
72
+
73
+ .theme-toggle:hover {
74
+ background: var(--bg-primary);
75
+ transform: scale(1.1);
76
+ }
77
+
78
+ .theme-toggle:active {
79
+ transform: scale(0.95);
80
+ }
81
+
82
+ /* Navigation styles */
83
+ .nav-link {
84
+ display: inline-block;
85
+ padding: 8px 16px;
86
+ background-color: var(--bg-tertiary);
87
+ color: var(--text-primary);
88
+ text-decoration: none;
89
+ border-radius: 5px;
90
+ transition: all 0.3s ease;
91
+ border: 1px solid var(--border-color);
92
+ }
93
+
94
+ .nav-link:hover {
95
+ background-color: var(--accent-color);
96
+ color: var(--bg-secondary);
97
+ transform: translateY(-1px);
98
+ }
99
+
100
+ .navigation .nav-link:hover {
101
+ background-color: var(--accent-color) !important;
102
+ color: var(--bg-secondary) !important;
103
+ }
104
+
105
+ @media (max-width: 768px) {
106
+ .navigation {
107
+ padding: 10px;
108
+ flex-direction: column;
109
+ gap: 10px;
110
+ }
111
+
112
+ .navigation > div {
113
+ flex-direction: column;
114
+ gap: 10px;
115
+ }
116
+
117
+ .navigation .nav-link {
118
+ display: block !important;
119
+ text-align: center;
120
+ width: 100%;
121
+ }
122
+
123
+ .theme-toggle {
124
+ margin-left: 0;
125
+ align-self: center;
126
+ }
127
+ }
128
+ </style>
@@ -178,6 +178,11 @@
178
178
  </div>
179
179
  </div>
180
180
 
181
+ <div class="chart-container">
182
+ <h2>Reading Activity Heatmap</h2>
183
+ <div id="heatmapContainer"></div>
184
+ </div>
185
+
181
186
  <div class="chart-container">
182
187
  <h2>Lines Received Over Time</h2>
183
188
  <canvas id="linesChart"></canvas>
@@ -188,12 +193,6 @@
188
193
  <canvas id="charsChart"></canvas>
189
194
  </div>
190
195
 
191
- <div class="chart-container">
192
- <h2>Reading Activity Heatmap</h2>
193
- <div id="heatmapContainer"></div>
194
- </div>
195
-
196
-
197
196
  <div class="chart-container">
198
197
  <h2>Reading Chars Quantity</h2>
199
198
  <canvas id="readingCharsChart"></canvas>
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: GameSentenceMiner
3
- Version: 2.15.11
3
+ Version: 2.16.0
4
4
  Summary: A tool for mining sentences from games. Update: Overlay?
5
5
  Author-email: Beangate <bpwhelan95@gmail.com>
6
6
  License: MIT License
@@ -71,16 +71,28 @@ GameSentenceMiner/web/static/site.webmanifest,sha256=kaeNT-FjFt-T7JGzOhXH7YSqsrD
71
71
  GameSentenceMiner/web/static/style.css,sha256=bPZK0NVMuyRl5NNDuT7ZTzVLKlvSsdmeVHmAW4y5FM0,7001
72
72
  GameSentenceMiner/web/static/web-app-manifest-192x192.png,sha256=EfSNnBmsSaLfESbkGfYwbKzcjKOdzuWo18ABADfN974,51117
73
73
  GameSentenceMiner/web/static/web-app-manifest-512x512.png,sha256=wyqgCWCrLEUxSRXmaA3iJEESd-vM-ZmlTtZFBY4V8Pk,230819
74
+ GameSentenceMiner/web/static/css/kanji-grid.css,sha256=FjgoZW77Uy8mTM6lHGO85tjzoNhkAS6cdXzLDcLLMh8,2449
75
+ GameSentenceMiner/web/static/css/search.css,sha256=x06xsErfThUpE1NAG4CA2sCPSZ-ofNWEI_ekV2Ok5hY,253
76
+ GameSentenceMiner/web/static/css/shared.css,sha256=oxY16CiAliGhsPV82TGZXUM08oT2rJRqGHMYrsWZKGM,17214
77
+ GameSentenceMiner/web/static/css/stats.css,sha256=UEaRk8k2LrhiMIfuwwFwx26txzRV1w76pOhT-4WoREM,9558
78
+ GameSentenceMiner/web/static/js/anki_stats.js,sha256=wZfr9vXGF--OTXOszjB3XX1pI2RrMBxGHoGwGvJ20xg,3171
79
+ GameSentenceMiner/web/static/js/database.js,sha256=-SjMmhXzU8a3QNGrwGtJCu55ZXXfkBxlYSkySEBdclU,22097
80
+ GameSentenceMiner/web/static/js/kanji-grid.js,sha256=rUa8_TGFm4Z8CtURoAlZjCN032PLe0YmHvN52S4_sE0,7181
81
+ GameSentenceMiner/web/static/js/search.js,sha256=nXvHZelCQQlTWJwaF_j3RnU5v_JFVIDQSEtnauDy8lg,9484
82
+ GameSentenceMiner/web/static/js/shared.js,sha256=cblau-bQM1sdpBLtb4I0VTTxwrmYkwfn1IvUjBAEssY,16147
83
+ GameSentenceMiner/web/static/js/stats.js,sha256=_B5QQWv1Wxx8fPyX4VDmTxs31Ds1EmX0XERt2uJj_9M,60882
74
84
  GameSentenceMiner/web/templates/anki_stats.html,sha256=XXONeWFhMA6KZQx0gBJyxDKxLnX1zYTGoGhZlC7kbpA,10784
75
85
  GameSentenceMiner/web/templates/database.html,sha256=iEJWQvvH_RGWmHuFx0iwNeamBV5FoVxZgFKgfm-4zc4,13582
76
86
  GameSentenceMiner/web/templates/index.html,sha256=LqXZx7-NE42pXSpHNZ3To680rD-vt9wEJoFYBlgp1qU,216923
77
87
  GameSentenceMiner/web/templates/search.html,sha256=Fat3hOjQwkYBbdFhgWzRzZ5iEB78-2_0LpT7uK2aURE,3701
78
- GameSentenceMiner/web/templates/stats.html,sha256=jXHhp4fcSHgZ5kNGaFX5ArCf-4WCsktrw3uvV7lctPI,16827
88
+ GameSentenceMiner/web/templates/stats.html,sha256=MDVwgNkR8M20IKyPP6r5tabQX2V3LtfRIKkDS83B7eU,16826
79
89
  GameSentenceMiner/web/templates/utility.html,sha256=KtqnZUMAYs5XsEdC9Tlsd40NKAVic0mu6sh-ReMDJpU,16940
90
+ GameSentenceMiner/web/templates/components/navigation.html,sha256=wxhz-T6ZQYoJmjONvrfeTm1XFlTA2O-RhKJgBd9zjrU,906
91
+ GameSentenceMiner/web/templates/components/theme-styles.html,sha256=hiq3zdJljpRjQO1iUA7gfFKwXebltG-IWW-gnKS4GHA,3439
80
92
  GameSentenceMiner/wip/__init___.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
81
- gamesentenceminer-2.15.11.dist-info/licenses/LICENSE,sha256=OXLcl0T2SZ8Pmy2_dmlvKuetivmyPd5m1q-Gyd-zaYY,35149
82
- gamesentenceminer-2.15.11.dist-info/METADATA,sha256=ZDnbGQL2dL520Tzv5Cb_EpfLbOYzxLDz8Iqb9YwuzbI,7349
83
- gamesentenceminer-2.15.11.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
84
- gamesentenceminer-2.15.11.dist-info/entry_points.txt,sha256=2APEP25DbfjSxGeHtwBstMH8mulVhLkqF_b9bqzU6vQ,65
85
- gamesentenceminer-2.15.11.dist-info/top_level.txt,sha256=V1hUY6xVSyUEohb0uDoN4UIE6rUZ_JYx8yMyPGX4PgQ,18
86
- gamesentenceminer-2.15.11.dist-info/RECORD,,
93
+ gamesentenceminer-2.16.0.dist-info/licenses/LICENSE,sha256=OXLcl0T2SZ8Pmy2_dmlvKuetivmyPd5m1q-Gyd-zaYY,35149
94
+ gamesentenceminer-2.16.0.dist-info/METADATA,sha256=V5bGGKZhQH_OZ0xmzGQSgnpRNb1kBye-jm9jnEXdBxI,7348
95
+ gamesentenceminer-2.16.0.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
96
+ gamesentenceminer-2.16.0.dist-info/entry_points.txt,sha256=2APEP25DbfjSxGeHtwBstMH8mulVhLkqF_b9bqzU6vQ,65
97
+ gamesentenceminer-2.16.0.dist-info/top_level.txt,sha256=V1hUY6xVSyUEohb0uDoN4UIE6rUZ_JYx8yMyPGX4PgQ,18
98
+ gamesentenceminer-2.16.0.dist-info/RECORD,,