@jjlmoya/utils-tools 1.9.0 → 1.11.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 (34) hide show
  1. package/package.json +5 -3
  2. package/scripts/postinstall.mjs +27 -0
  3. package/src/tool/date-diff-calculator/component.astro +0 -200
  4. package/src/tool/date-diff-calculator/date-difference-calculator.css +198 -0
  5. package/src/tool/drive-direct-link/component.astro +0 -173
  6. package/src/tool/drive-direct-link/google-drive-direct-download-link.css +171 -0
  7. package/src/tool/email-list-cleaner/component.astro +0 -204
  8. package/src/tool/email-list-cleaner/email-list-cleaner.css +202 -0
  9. package/src/tool/env-badge-spain/component.astro +0 -156
  10. package/src/tool/env-badge-spain/components/BadgeForm.astro +0 -151
  11. package/src/tool/env-badge-spain/components/BadgeResult.astro +0 -101
  12. package/src/tool/env-badge-spain/environmental-badge-simulator-spain.css +405 -0
  13. package/src/tool/morse-beacon/component.astro +0 -298
  14. package/src/tool/morse-beacon/morse-beacon.css +296 -0
  15. package/src/tool/password-generator/component.astro +0 -88
  16. package/src/tool/password-generator/components/Config.astro +0 -170
  17. package/src/tool/password-generator/components/Display.astro +0 -117
  18. package/src/tool/password-generator/components/Strength.astro +0 -52
  19. package/src/tool/password-generator/password-generator.css +424 -0
  20. package/src/tool/routes/component.astro +0 -254
  21. package/src/tool/routes/optimal-routes.css +252 -0
  22. package/src/tool/rule-of-three/component.astro +0 -249
  23. package/src/tool/rule-of-three/rule-of-three.css +247 -0
  24. package/src/tool/seo-content-optimizer/component.astro +0 -278
  25. package/src/tool/seo-content-optimizer/seo-content-optimizer.css +276 -0
  26. package/src/tool/speed-reader/component.astro +0 -400
  27. package/src/tool/speed-reader/speed-reader.css +398 -0
  28. package/src/tool/text-pixel-calculator/component.astro +0 -96
  29. package/src/tool/text-pixel-calculator/components/Editor.astro +0 -145
  30. package/src/tool/text-pixel-calculator/components/Preview.astro +0 -115
  31. package/src/tool/text-pixel-calculator/components/Stats.astro +0 -62
  32. package/src/tool/text-pixel-calculator/text-pixel-width-calculator.css +407 -0
  33. package/src/tool/whatsapp-link/component.astro +0 -264
  34. package/src/tool/whatsapp-link/whatsapp-link-generator.css +262 -0
@@ -0,0 +1,405 @@
1
+ .deb-root {
2
+ --deb-bg: #f8fafc;
3
+ --deb-card-bg: #fff;
4
+ --deb-card-border: #e2e8f0;
5
+ --deb-text-main: #1e293b;
6
+ --deb-text-muted: #64748b;
7
+ --deb-text-sub: #475569;
8
+ --deb-label-border: #e2e8f0;
9
+ --deb-option-bg: #f1f5f9;
10
+ --deb-option-border: #e2e8f0;
11
+ --deb-option-hover: #e2e8f0;
12
+ --deb-result-bg: #fff;
13
+
14
+ width: 100%;
15
+ max-width: 720px;
16
+ margin: 0 auto;
17
+ }
18
+
19
+ :global(.theme-dark) .deb-root {
20
+ --deb-bg: #0f172a;
21
+ --deb-card-bg: #1e293b;
22
+ --deb-card-border: rgba(255, 255, 255, 0.08);
23
+ --deb-text-main: #f8fafc;
24
+ --deb-text-muted: #94a3b8;
25
+ --deb-text-sub: #cbd5e1;
26
+ --deb-label-border: rgba(255, 255, 255, 0.1);
27
+ --deb-option-bg: rgba(15, 23, 42, 0.5);
28
+ --deb-option-border: rgba(255, 255, 255, 0.1);
29
+ --deb-option-hover: rgba(255, 255, 255, 0.05);
30
+ --deb-result-bg: rgba(15, 23, 42, 0.3);
31
+ }
32
+
33
+ .deb-main-container {
34
+ background: var(--deb-card-bg);
35
+ border: 1px solid var(--deb-card-border);
36
+ border-radius: 2rem;
37
+ padding: 2.5rem;
38
+ box-shadow: 0 25px 50px -12px rgba(0, 0, 0, 0.1);
39
+ }
40
+
41
+ @media (max-width: 640px) {
42
+ .deb-main-container {
43
+ padding: 1.5rem;
44
+ border-radius: 1.5rem;
45
+ }
46
+ }
47
+
48
+ :global(.deb-badge-display h3) {
49
+ font-size: 1.5rem;
50
+ margin: 0;
51
+ color: var(--deb-text-main);
52
+ font-weight: 800;
53
+ }
54
+
55
+ :global(.deb-replica) {
56
+ width: 200px;
57
+ height: 200px;
58
+ border-radius: 50%;
59
+ border: 6px solid #111;
60
+ position: relative;
61
+ display: flex;
62
+ flex-direction: column;
63
+ justify-content: center;
64
+ align-items: center;
65
+ overflow: hidden;
66
+ background: #fff;
67
+ box-shadow: 0 10px 25px rgba(0, 0, 0, 0.1);
68
+ }
69
+
70
+ :global(.deb-replica)::after {
71
+ content: "DGT";
72
+ position: absolute;
73
+ top: 25px;
74
+ right: 35px;
75
+ font-size: 1.125rem;
76
+ font-weight: 900;
77
+ color: #000;
78
+ opacity: 0.6;
79
+ letter-spacing: -1px;
80
+ z-index: 10;
81
+ }
82
+
83
+ :global(.deb-big-letter) {
84
+ font-size: 7rem;
85
+ font-weight: 900;
86
+ line-height: 1;
87
+ z-index: 2;
88
+ margin-top: 15px;
89
+ }
90
+
91
+ :global(.deb-sub-text) {
92
+ font-size: 1rem;
93
+ font-weight: 800;
94
+ text-transform: uppercase;
95
+ z-index: 2;
96
+ margin-top: -5px;
97
+ }
98
+
99
+ :global(.deb-replica-0) {
100
+ background: #005aa3;
101
+ color: #fff;
102
+ }
103
+
104
+ :global(.deb-replica-0)::after {
105
+ color: #fff;
106
+ opacity: 0.9;
107
+ }
108
+
109
+ :global(.deb-replica-eco) {
110
+ background: linear-gradient(90deg, #00a455 50%, #005aa3 50%);
111
+ color: #fff;
112
+ }
113
+
114
+ :global(.deb-replica-eco)::after {
115
+ color: #fff;
116
+ opacity: 0.9;
117
+ }
118
+
119
+ :global(.deb-replica-eco) :global(.deb-big-letter) {
120
+ font-size: 5rem;
121
+ margin-top: 25px;
122
+ }
123
+
124
+ :global(.deb-replica-c) {
125
+ background: #00a455;
126
+ color: #000;
127
+ }
128
+
129
+ :global(.deb-replica-c) :global(.deb-sub-text) { display: none; }
130
+
131
+ :global(.deb-replica-b) {
132
+ background: #ffdf00;
133
+ color: #000;
134
+ }
135
+
136
+ :global(.deb-replica-b) :global(.deb-sub-text) { display: none; }
137
+
138
+ :global(.deb-replica-a) {
139
+ width: 200px;
140
+ height: 120px;
141
+ border-radius: 1rem;
142
+ border: 6px solid #dc2626;
143
+ background: #fff;
144
+ color: #dc2626;
145
+ display: flex;
146
+ flex-direction: column;
147
+ justify-content: center;
148
+ align-items: center;
149
+ }
150
+
151
+ :global(.deb-replica-a) :global(.deb-big-letter) {
152
+ font-size: 4rem;
153
+ margin-top: 0;
154
+ }
155
+ /* BadgeForm.astro */
156
+ .deb-form {
157
+ display: flex;
158
+ flex-direction: column;
159
+ gap: 2rem;
160
+ }
161
+
162
+ .deb-group {
163
+ display: flex;
164
+ flex-direction: column;
165
+ gap: 1rem;
166
+ }
167
+
168
+ .deb-step-label {
169
+ font-size: 0.875rem;
170
+ font-weight: 800;
171
+ color: var(--deb-text-muted);
172
+ text-transform: uppercase;
173
+ letter-spacing: 0.1em;
174
+ display: flex;
175
+ align-items: center;
176
+ gap: 0.5rem;
177
+ }
178
+
179
+ .deb-step-label::after {
180
+ content: "";
181
+ flex: 1;
182
+ height: 1px;
183
+ background: var(--deb-label-border);
184
+ }
185
+
186
+ .deb-grid {
187
+ display: grid;
188
+ gap: 0.75rem;
189
+ }
190
+
191
+ .deb-grid-3 { grid-template-columns: repeat(3, 1fr); }
192
+ .deb-grid-4 { grid-template-columns: repeat(4, 1fr); }
193
+
194
+ .deb-option {
195
+ border-radius: 1rem;
196
+ padding: 1rem 0.5rem;
197
+ display: flex;
198
+ flex-direction: column;
199
+ align-items: center;
200
+ gap: 0.75rem;
201
+ background: var(--deb-option-bg);
202
+ border: 2px solid var(--deb-option-border);
203
+ cursor: pointer;
204
+ transition: all 0.2s cubic-bezier(0.4, 0, 0.2, 1);
205
+ color: var(--deb-text-main);
206
+ }
207
+
208
+ .deb-icon {
209
+ width: 2.25rem;
210
+ height: 2.25rem;
211
+ stroke: currentcolor;
212
+ opacity: 0.7;
213
+ transition: transform 0.2s;
214
+ }
215
+
216
+ .deb-option span {
217
+ font-size: 0.8125rem;
218
+ font-weight: 700;
219
+ line-height: 1.2;
220
+ }
221
+
222
+ .deb-option:hover {
223
+ transform: translateY(-2px);
224
+ background: var(--deb-option-hover);
225
+ border-color: var(--deb-accent);
226
+ }
227
+
228
+ .deb-option:hover .deb-icon {
229
+ transform: scale(1.1);
230
+ opacity: 1;
231
+ }
232
+
233
+ .deb-selected.deb-option {
234
+ background: var(--deb-accent-bg);
235
+ border-color: var(--deb-accent);
236
+ color: #fff;
237
+ box-shadow: 0 8px 16px -4px var(--deb-accent-shadow);
238
+ }
239
+
240
+ .deb-selected .deb-icon { opacity: 1; }
241
+
242
+ .deb-vehicle {
243
+ --deb-accent: #0ea5e9;
244
+ --deb-accent-bg: #0ea5e9;
245
+ --deb-accent-shadow: rgba(14, 165, 233, 0.4);
246
+ }
247
+
248
+ .deb-fuel {
249
+ --deb-accent: #10b981;
250
+ --deb-accent-bg: #10b981;
251
+ --deb-accent-shadow: rgba(16, 185, 129, 0.4);
252
+ }
253
+
254
+ .deb-year {
255
+ --deb-accent: #8b5cf6;
256
+ --deb-accent-bg: #8b5cf6;
257
+ --deb-accent-shadow: rgba(139, 92, 246, 0.4);
258
+ }
259
+
260
+ .deb-error {
261
+ color: #ef4444;
262
+ font-size: 0.75rem;
263
+ font-weight: 700;
264
+ opacity: 0;
265
+ transition: opacity 0.2s;
266
+ margin-top: -0.5rem;
267
+ }
268
+
269
+ .deb-help {
270
+ font-size: 0.75rem;
271
+ color: var(--deb-text-muted);
272
+ line-height: 1.5;
273
+ font-style: italic;
274
+ }
275
+
276
+ .deb-submit {
277
+ width: 100%;
278
+ padding: 1.25rem;
279
+ background: linear-gradient(135deg, #f59e0b 0%, #d97706 100%);
280
+ color: #fff;
281
+ border: none;
282
+ border-radius: 1.25rem;
283
+ font-weight: 800;
284
+ font-size: 1.125rem;
285
+ cursor: pointer;
286
+ transition: all 0.3s ease;
287
+ text-transform: uppercase;
288
+ letter-spacing: 0.05em;
289
+ display: flex;
290
+ justify-content: center;
291
+ align-items: center;
292
+ gap: 0.75rem;
293
+ box-shadow: 0 10px 15px -3px rgba(217, 119, 6, 0.3);
294
+ }
295
+
296
+ .deb-submit:hover {
297
+ transform: translateY(-2px);
298
+ box-shadow: 0 20px 25px -5px rgba(217, 119, 6, 0.4);
299
+ filter: brightness(1.1);
300
+ }
301
+
302
+ @media (max-width: 480px) {
303
+ .deb-grid-3, .deb-grid-4 { grid-template-columns: repeat(2, 1fr); }
304
+ }
305
+
306
+ /* BadgeResult.astro */
307
+ .deb-result {
308
+ display: none;
309
+ flex-direction: column;
310
+ animation: deb-slide-up 0.5s cubic-bezier(0.16, 1, 0.3, 1);
311
+ }
312
+
313
+ .deb-result-card {
314
+ background: var(--deb-result-bg);
315
+ border-radius: 1.5rem;
316
+ padding: 2.5rem;
317
+ display: flex;
318
+ flex-direction: column;
319
+ align-items: center;
320
+ text-align: center;
321
+ border: 1px solid var(--deb-card-border);
322
+ box-shadow: 0 20px 25px -5px rgba(0, 0, 0, 0.1);
323
+ }
324
+
325
+ .deb-result-title {
326
+ font-size: 1.25rem;
327
+ font-weight: 800;
328
+ color: var(--deb-text-muted);
329
+ text-transform: uppercase;
330
+ letter-spacing: 0.1em;
331
+ margin-bottom: 2rem;
332
+ }
333
+
334
+ .deb-badge-container {
335
+ margin-bottom: 2rem;
336
+ filter: drop-shadow(0 15px 30px rgba(0, 0, 0, 0.1));
337
+ }
338
+
339
+ .deb-result-info {
340
+ display: flex;
341
+ flex-direction: column;
342
+ gap: 1.5rem;
343
+ max-width: 640px;
344
+ width: 100%;
345
+ }
346
+
347
+ .deb-result-desc {
348
+ font-size: 1.125rem;
349
+ font-weight: 600;
350
+ line-height: 1.6;
351
+ color: var(--deb-text-main);
352
+ }
353
+
354
+ .deb-warning-box {
355
+ display: flex;
356
+ gap: 1rem;
357
+ padding: 1rem;
358
+ background: rgba(245, 158, 11, 0.08);
359
+ border-radius: 1rem;
360
+ border: 1px solid rgba(245, 158, 11, 0.2);
361
+ text-align: left;
362
+ }
363
+
364
+ .deb-result-warn {
365
+ font-size: 0.8125rem;
366
+ color: #b45309;
367
+ font-weight: 500;
368
+ line-height: 1.5;
369
+ }
370
+
371
+ .theme-dark .deb-result-warn {
372
+ color: #fbbf24;
373
+ }
374
+
375
+ .deb-reset-btn {
376
+ margin-top: 2.5rem;
377
+ display: flex;
378
+ align-items: center;
379
+ gap: 0.75rem;
380
+ padding: 0.875rem 2rem;
381
+ background: var(--deb-option-bg);
382
+ border: 1px solid var(--deb-option-border);
383
+ border-radius: 100px;
384
+ color: var(--deb-text-main);
385
+ font-weight: 700;
386
+ cursor: pointer;
387
+ transition: all 0.2s;
388
+ }
389
+
390
+ .deb-reset-btn:hover {
391
+ background: var(--deb-option-hover);
392
+ transform: scale(1.05);
393
+ }
394
+
395
+ @keyframes deb-slide-up {
396
+ from {
397
+ opacity: 0;
398
+ transform: translateY(20px);
399
+ }
400
+
401
+ to {
402
+ opacity: 1;
403
+ transform: translateY(0);
404
+ }
405
+ }
@@ -73,304 +73,6 @@ const t = (ui ?? {}) as MorseBeaconUI;
73
73
  </div>
74
74
  </div>
75
75
 
76
- <style>
77
- .mb-root {
78
- --mb-accent: #16a34a;
79
- --mb-accent-hover: #15803d;
80
- --mb-sos-bg: #fff1f2;
81
- --mb-sos-color: #e11d48;
82
- --mb-sos-border: #fecdd3;
83
- --mb-sos-hover-bg: #ffe4e6;
84
- --mb-display-bg: #111827;
85
- --mb-bulb-off: #1e293b;
86
- --mb-bulb-border-off: #334155;
87
- --mb-ticker-color: #4ade80;
88
- --mb-status-bg: rgba(30, 41, 59, 0.8);
89
- --mb-status-border: #334155;
90
- --mb-card-bg: #fff;
91
- --mb-card-border: #f1f5f9;
92
- --mb-text-main: #1e293b;
93
- --mb-text-label: #64748b;
94
- --mb-text-hint: #94a3b8;
95
- --mb-field-border: #e2e8f0;
96
- --mb-field-focus: #16a34a;
97
- --mb-extras-border: #f1f5f9;
98
- --mb-toggle-off: #cbd5e1;
99
-
100
- width: 100%;
101
- max-width: 42rem;
102
- margin: 0 auto;
103
- }
104
-
105
- :global(.theme-dark) .mb-root {
106
- --mb-card-bg: #0f172a;
107
- --mb-card-border: #1e293b;
108
- --mb-text-main: #e2e8f0;
109
- --mb-text-label: #94a3b8;
110
- --mb-text-hint: #475569;
111
- --mb-field-border: #334155;
112
- --mb-sos-bg: rgba(225, 29, 72, 0.1);
113
- --mb-sos-border: rgba(225, 29, 72, 0.2);
114
- --mb-sos-hover-bg: rgba(225, 29, 72, 0.15);
115
- --mb-extras-border: #1e293b;
116
- --mb-toggle-off: #475569;
117
- }
118
-
119
- .mb-card {
120
- border-radius: 1.5rem;
121
- overflow: hidden;
122
- border: 1px solid var(--mb-card-border);
123
- box-shadow: 0 20px 40px -12px rgba(0, 0, 0, 0.08);
124
- background: var(--mb-card-bg);
125
- }
126
-
127
- .mb-display {
128
- background: var(--mb-display-bg);
129
- padding: 2rem;
130
- position: relative;
131
- display: flex;
132
- flex-direction: column;
133
- align-items: center;
134
- justify-content: center;
135
- min-height: 220px;
136
- gap: 1.25rem;
137
- }
138
-
139
- .mb-bulb {
140
- width: 6rem;
141
- height: 6rem;
142
- border-radius: 50%;
143
- background: var(--mb-bulb-off);
144
- border: 4px solid var(--mb-bulb-border-off);
145
- display: flex;
146
- align-items: center;
147
- justify-content: center;
148
- color: #475569;
149
- position: relative;
150
- z-index: 1;
151
- transition: background 0.05s, border-color 0.05s, box-shadow 0.05s, color 0.05s;
152
- }
153
-
154
- .mb-ticker-wrap {
155
- height: 2rem;
156
- overflow: hidden;
157
- width: 100%;
158
- display: flex;
159
- align-items: center;
160
- justify-content: center;
161
- }
162
-
163
- .mb-ticker {
164
- color: var(--mb-ticker-color);
165
- font-size: 1.5rem;
166
- font-weight: 700;
167
- letter-spacing: 0.2em;
168
- white-space: nowrap;
169
- }
170
-
171
- .mb-status-badge {
172
- position: absolute;
173
- top: 1rem;
174
- right: 1rem;
175
- display: flex;
176
- align-items: center;
177
- gap: 0.5rem;
178
- background: var(--mb-status-bg);
179
- border: 1px solid var(--mb-status-border);
180
- padding: 0.375rem 0.75rem;
181
- border-radius: 9999px;
182
- backdrop-filter: blur(4px);
183
- }
184
-
185
- .mb-status-led {
186
- width: 0.5rem;
187
- height: 0.5rem;
188
- border-radius: 50%;
189
- background: #64748b;
190
- transition: background 0.2s;
191
- }
192
-
193
- .mb-status-text {
194
- font-size: 0.6875rem;
195
- font-weight: 700;
196
- color: #94a3b8;
197
- letter-spacing: 0.08em;
198
- }
199
-
200
- .mb-controls {
201
- padding: 2rem;
202
- display: flex;
203
- flex-direction: column;
204
- gap: 2rem;
205
- }
206
-
207
- .mb-field-header {
208
- display: flex;
209
- justify-content: space-between;
210
- align-items: center;
211
- margin-bottom: 0.75rem;
212
- }
213
-
214
- .mb-field-label {
215
- font-size: 0.8125rem;
216
- font-weight: 700;
217
- color: var(--mb-text-label);
218
- text-transform: uppercase;
219
- letter-spacing: 0.05em;
220
- }
221
-
222
- .mb-char-count {
223
- font-size: 0.8125rem;
224
- font-weight: 600;
225
- color: var(--mb-accent);
226
- }
227
-
228
- .mb-textarea {
229
- width: 100%;
230
- font-size: 1.125rem;
231
- font-weight: 700;
232
- color: var(--mb-text-main);
233
- background: transparent;
234
- border: none;
235
- border-bottom: 2px solid var(--mb-field-border);
236
- outline: none;
237
- padding: 0.5rem 0;
238
- resize: none;
239
- text-transform: uppercase;
240
- transition: border-color 0.2s;
241
- }
242
-
243
- .mb-textarea::placeholder {
244
- color: var(--mb-text-hint);
245
- text-transform: none;
246
- font-weight: 400;
247
- }
248
-
249
- .mb-textarea:focus {
250
- border-color: var(--mb-field-focus);
251
- }
252
-
253
- .mb-btn-row {
254
- display: grid;
255
- grid-template-columns: 1fr 1fr;
256
- gap: 0.75rem;
257
- }
258
-
259
- .mb-btn {
260
- display: flex;
261
- align-items: center;
262
- justify-content: center;
263
- gap: 0.5rem;
264
- padding: 1rem 1.25rem;
265
- border-radius: 0.75rem;
266
- font-weight: 700;
267
- font-size: 0.875rem;
268
- letter-spacing: 0.04em;
269
- text-transform: uppercase;
270
- border: none;
271
- cursor: pointer;
272
- transition: background 0.15s, transform 0.1s, opacity 0.15s;
273
- }
274
-
275
- .mb-btn:active {
276
- transform: scale(0.97);
277
- }
278
-
279
- .mb-btn:disabled {
280
- opacity: 0.5;
281
- cursor: not-allowed;
282
- }
283
-
284
- .mb-btn-transmit {
285
- background: var(--mb-accent);
286
- color: #fff;
287
- box-shadow: 0 4px 14px rgba(22, 163, 74, 0.35);
288
- }
289
-
290
- .mb-btn-transmit:hover:not(:disabled) {
291
- background: var(--mb-accent-hover);
292
- }
293
-
294
- .mb-btn-sos {
295
- background: var(--mb-sos-bg);
296
- color: var(--mb-sos-color);
297
- border: 2px solid var(--mb-sos-border);
298
- }
299
-
300
- .mb-btn-sos:hover:not(:disabled) {
301
- background: var(--mb-sos-hover-bg);
302
- }
303
-
304
- .mb-extras {
305
- display: flex;
306
- align-items: center;
307
- justify-content: center;
308
- padding-top: 1rem;
309
- border-top: 1px solid var(--mb-extras-border);
310
- }
311
-
312
- .mb-toggle-label {
313
- display: flex;
314
- align-items: center;
315
- gap: 0.75rem;
316
- cursor: pointer;
317
- }
318
-
319
- .mb-toggle-wrap {
320
- position: relative;
321
- display: flex;
322
- align-items: center;
323
- }
324
-
325
- .mb-toggle {
326
- position: absolute;
327
- opacity: 0;
328
- width: 0;
329
- height: 0;
330
- }
331
-
332
- .mb-toggle-track {
333
- width: 2.75rem;
334
- height: 1.5rem;
335
- background: var(--mb-toggle-off);
336
- border-radius: 9999px;
337
- cursor: pointer;
338
- transition: background 0.2s;
339
- position: relative;
340
- }
341
-
342
- .mb-toggle-track::after {
343
- content: '';
344
- position: absolute;
345
- top: 2px;
346
- left: 2px;
347
- width: 1.25rem;
348
- height: 1.25rem;
349
- border-radius: 50%;
350
- background: #fff;
351
- transition: transform 0.2s;
352
- box-shadow: 0 1px 3px rgba(0, 0, 0, 0.2);
353
- }
354
-
355
- .mb-toggle:checked + .mb-toggle-track {
356
- background: var(--mb-accent);
357
- }
358
-
359
- .mb-toggle:checked + .mb-toggle-track::after {
360
- transform: translateX(1.25rem);
361
- }
362
-
363
- .mb-toggle-text {
364
- font-size: 0.9375rem;
365
- font-weight: 500;
366
- color: var(--mb-text-label);
367
- transition: color 0.15s;
368
- }
369
-
370
- .mb-toggle-label:hover .mb-toggle-text {
371
- color: var(--mb-accent);
372
- }
373
- </style>
374
76
 
375
77
  <script>
376
78
  import { MorseEngine } from './logic/MorseEngine';