@jjlmoya/utils-cooking 1.27.0 → 1.29.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 (62) hide show
  1. package/package.json +1 -1
  2. package/src/category/index.ts +4 -0
  3. package/src/entries.ts +5 -1
  4. package/src/index.ts +2 -0
  5. package/src/tests/i18n-titles.test.ts +4 -2
  6. package/src/tests/lacto-fermentation-salt-calculator.test.ts +64 -0
  7. package/src/tests/locale_completeness.test.ts +2 -2
  8. package/src/tests/spherification-bath-calculator.test.ts +57 -0
  9. package/src/tests/tool_validation.test.ts +2 -2
  10. package/src/tool/lacto-fermentation-salt-calculator/bibliography.astro +6 -0
  11. package/src/tool/lacto-fermentation-salt-calculator/bibliography.ts +10 -0
  12. package/src/tool/lacto-fermentation-salt-calculator/component.astro +163 -0
  13. package/src/tool/lacto-fermentation-salt-calculator/components/DigitalScale.astro +43 -0
  14. package/src/tool/lacto-fermentation-salt-calculator/components/PetriDish.astro +55 -0
  15. package/src/tool/lacto-fermentation-salt-calculator/components/WizardMode.astro +83 -0
  16. package/src/tool/lacto-fermentation-salt-calculator/entry.ts +26 -0
  17. package/src/tool/lacto-fermentation-salt-calculator/i18n/de.ts +195 -0
  18. package/src/tool/lacto-fermentation-salt-calculator/i18n/en.ts +195 -0
  19. package/src/tool/lacto-fermentation-salt-calculator/i18n/es.ts +195 -0
  20. package/src/tool/lacto-fermentation-salt-calculator/i18n/fr.ts +195 -0
  21. package/src/tool/lacto-fermentation-salt-calculator/i18n/id.ts +195 -0
  22. package/src/tool/lacto-fermentation-salt-calculator/i18n/it.ts +195 -0
  23. package/src/tool/lacto-fermentation-salt-calculator/i18n/ja.ts +195 -0
  24. package/src/tool/lacto-fermentation-salt-calculator/i18n/ko.ts +195 -0
  25. package/src/tool/lacto-fermentation-salt-calculator/i18n/nl.ts +195 -0
  26. package/src/tool/lacto-fermentation-salt-calculator/i18n/pl.ts +195 -0
  27. package/src/tool/lacto-fermentation-salt-calculator/i18n/pt.ts +195 -0
  28. package/src/tool/lacto-fermentation-salt-calculator/i18n/ru.ts +195 -0
  29. package/src/tool/lacto-fermentation-salt-calculator/i18n/sv.ts +195 -0
  30. package/src/tool/lacto-fermentation-salt-calculator/i18n/tr.ts +195 -0
  31. package/src/tool/lacto-fermentation-salt-calculator/i18n/zh.ts +195 -0
  32. package/src/tool/lacto-fermentation-salt-calculator/index.ts +11 -0
  33. package/src/tool/lacto-fermentation-salt-calculator/lacto-fermentation-salt-calculator.css +692 -0
  34. package/src/tool/lacto-fermentation-salt-calculator/logic.ts +37 -0
  35. package/src/tool/lacto-fermentation-salt-calculator/seo.astro +15 -0
  36. package/src/tool/spherification-bath-calculator/bibliography.astro +6 -0
  37. package/src/tool/spherification-bath-calculator/bibliography.ts +10 -0
  38. package/src/tool/spherification-bath-calculator/component.astro +213 -0
  39. package/src/tool/spherification-bath-calculator/components/PrecisionControls.astro +85 -0
  40. package/src/tool/spherification-bath-calculator/components/RecipeSummary.astro +60 -0
  41. package/src/tool/spherification-bath-calculator/components/SpherificationReactor.astro +73 -0
  42. package/src/tool/spherification-bath-calculator/entry.ts +26 -0
  43. package/src/tool/spherification-bath-calculator/i18n/de.ts +180 -0
  44. package/src/tool/spherification-bath-calculator/i18n/en.ts +180 -0
  45. package/src/tool/spherification-bath-calculator/i18n/es.ts +179 -0
  46. package/src/tool/spherification-bath-calculator/i18n/fr.ts +179 -0
  47. package/src/tool/spherification-bath-calculator/i18n/id.ts +180 -0
  48. package/src/tool/spherification-bath-calculator/i18n/it.ts +180 -0
  49. package/src/tool/spherification-bath-calculator/i18n/ja.ts +180 -0
  50. package/src/tool/spherification-bath-calculator/i18n/ko.ts +180 -0
  51. package/src/tool/spherification-bath-calculator/i18n/nl.ts +180 -0
  52. package/src/tool/spherification-bath-calculator/i18n/pl.ts +180 -0
  53. package/src/tool/spherification-bath-calculator/i18n/pt.ts +180 -0
  54. package/src/tool/spherification-bath-calculator/i18n/ru.ts +180 -0
  55. package/src/tool/spherification-bath-calculator/i18n/sv.ts +180 -0
  56. package/src/tool/spherification-bath-calculator/i18n/tr.ts +180 -0
  57. package/src/tool/spherification-bath-calculator/i18n/zh.ts +180 -0
  58. package/src/tool/spherification-bath-calculator/index.ts +11 -0
  59. package/src/tool/spherification-bath-calculator/logic.ts +54 -0
  60. package/src/tool/spherification-bath-calculator/seo.astro +15 -0
  61. package/src/tool/spherification-bath-calculator/spherification-bath-calculator.css +568 -0
  62. package/src/tools.ts +4 -2
@@ -0,0 +1,568 @@
1
+ .spherification-container {
2
+ --color-green-lime: #84cc16;
3
+ --color-green-dark: #4d7c0f;
4
+ --color-pink-magenta: #ec4899;
5
+ --color-pink-dark: #be185d;
6
+ --color-slate-dark: #0f172a;
7
+ --color-slate-medium: #1e293b;
8
+ --color-slate-light: #475569;
9
+ --color-slate-lighter: #64748b;
10
+ --color-slate-lightest: #94a3b8;
11
+ --color-slate-ultra-light: #cbd5e1;
12
+ --color-slate-white: #e2e8f0;
13
+ --color-slate-bg-light: #f1f5f9;
14
+ --color-slate-bg-lighter: #f8fafc;
15
+ --color-white: #fff;
16
+ --color-black: #000;
17
+
18
+ display: flex;
19
+ flex-direction: column;
20
+ align-items: center;
21
+ justify-content: center;
22
+ width: 100%;
23
+ box-sizing: border-box;
24
+ }
25
+
26
+ .spherification-console {
27
+ position: relative;
28
+ width: 100%;
29
+ max-width: 1100px;
30
+ background: rgba(255, 255, 255, 0.75);
31
+ backdrop-filter: blur(16px);
32
+ -webkit-backdrop-filter: blur(16px);
33
+ border: 1px solid rgba(0, 0, 0, 0.08);
34
+ border-radius: 28px;
35
+ padding: 2rem;
36
+ box-shadow: 0 25px 50px rgba(0, 0, 0, 0.04);
37
+ overflow: hidden;
38
+ box-sizing: border-box;
39
+ display: grid;
40
+ grid-template-columns: 1fr 1fr 1fr;
41
+ gap: 2rem;
42
+ }
43
+
44
+ .theme-dark .spherification-console {
45
+ background: rgba(15, 23, 42, 0.45);
46
+ border: 1px solid rgba(255, 255, 255, 0.08);
47
+ box-shadow: 0 25px 50px rgba(0, 0, 0, 0.35);
48
+ }
49
+
50
+ @media (max-width: 992px) {
51
+ .spherification-console {
52
+ grid-template-columns: 1fr;
53
+ gap: 1.5rem;
54
+ }
55
+ }
56
+
57
+ .spherification-glow-1 {
58
+ position: absolute;
59
+ top: -10%;
60
+ left: -10%;
61
+ width: 300px;
62
+ height: 300px;
63
+ background: radial-gradient(circle, rgba(132, 204, 22, 0.1) 0%, transparent 70%);
64
+ z-index: 0;
65
+ pointer-events: none;
66
+ }
67
+
68
+ .theme-dark .spherification-glow-1 {
69
+ background: radial-gradient(circle, rgba(132, 204, 22, 0.15) 0%, transparent 70%);
70
+ }
71
+
72
+ .spherification-glow-2 {
73
+ position: absolute;
74
+ bottom: -10%;
75
+ right: -10%;
76
+ width: 350px;
77
+ height: 350px;
78
+ background: radial-gradient(circle, rgba(236, 72, 153, 0.1) 0%, transparent 70%);
79
+ z-index: 0;
80
+ pointer-events: none;
81
+ }
82
+
83
+ .theme-dark .spherification-glow-2 {
84
+ background: radial-gradient(circle, rgba(236, 72, 153, 0.15) 0%, transparent 70%);
85
+ }
86
+
87
+ .console-column {
88
+ position: relative;
89
+ z-index: 1;
90
+ display: flex;
91
+ flex-direction: column;
92
+ height: 100%;
93
+ }
94
+
95
+ .spherification-controls {
96
+ display: flex;
97
+ flex-direction: column;
98
+ gap: 1.5rem;
99
+ background: rgba(241, 245, 249, 0.5);
100
+ border: 1px solid rgba(0, 0, 0, 0.04);
101
+ border-radius: 20px;
102
+ padding: 1.25rem;
103
+ height: 100%;
104
+ box-sizing: border-box;
105
+ }
106
+
107
+ .theme-dark .spherification-controls {
108
+ background: rgba(30, 41, 59, 0.2);
109
+ border: 1px solid rgba(255, 255, 255, 0.04);
110
+ }
111
+
112
+ .controls-group {
113
+ display: flex;
114
+ flex-direction: column;
115
+ gap: 0.5rem;
116
+ }
117
+
118
+ .controls-label {
119
+ font-size: 0.75rem;
120
+ font-weight: 700;
121
+ color: var(--color-slate-light);
122
+ text-transform: uppercase;
123
+ letter-spacing: 0.08em;
124
+ }
125
+
126
+ .theme-dark .controls-label {
127
+ color: var(--color-slate-ultra-light);
128
+ }
129
+
130
+ .unit-toggle-container, .method-toggle-container {
131
+ display: grid;
132
+ grid-template-columns: 1fr 1fr;
133
+ background: rgba(226, 232, 240, 0.8);
134
+ border: 1px solid rgba(0, 0, 0, 0.06);
135
+ border-radius: 8px;
136
+ padding: 0.2rem;
137
+ gap: 0.2rem;
138
+ }
139
+
140
+ .theme-dark .unit-toggle-container, .theme-dark .method-toggle-container {
141
+ background: rgba(15, 23, 42, 0.6);
142
+ border: 1px solid rgba(255, 255, 255, 0.1);
143
+ }
144
+
145
+ .mode-btn {
146
+ background: transparent;
147
+ border: none;
148
+ color: var(--color-slate-lighter);
149
+ padding: 0.5rem;
150
+ border-radius: 6px;
151
+ font-size: 0.8rem;
152
+ font-weight: 600;
153
+ cursor: pointer;
154
+ transition: all 0.2s cubic-bezier(0.4, 0, 0.2, 1);
155
+ }
156
+
157
+ .theme-dark .mode-btn {
158
+ color: var(--color-slate-lightest);
159
+ }
160
+
161
+ .mode-btn.active {
162
+ background: var(--color-green-lime);
163
+ color: var(--color-white);
164
+ box-shadow: 0 3px 8px rgba(132, 204, 22, 0.2);
165
+ }
166
+
167
+ .controls-number-input {
168
+ background: var(--color-white);
169
+ border: 1px solid rgba(0, 0, 0, 0.1);
170
+ border-radius: 8px;
171
+ color: var(--color-slate-dark);
172
+ padding: 0.65rem 0.85rem;
173
+ font-size: 1rem;
174
+ width: 100%;
175
+ box-sizing: border-box;
176
+ outline: none;
177
+ transition: border-color 0.2s;
178
+ }
179
+
180
+ .theme-dark .controls-number-input {
181
+ background: rgba(15, 23, 42, 0.6);
182
+ border: 1px solid rgba(255, 255, 255, 0.1);
183
+ color: var(--color-white);
184
+ }
185
+
186
+ .controls-number-input:focus {
187
+ border-color: var(--color-green-lime);
188
+ }
189
+
190
+ .switches-grid {
191
+ display: flex;
192
+ flex-direction: column;
193
+ gap: 0.75rem;
194
+ }
195
+
196
+ .switch-row-btn {
197
+ background: rgba(241, 245, 249, 0.4);
198
+ border: 1px solid rgba(0, 0, 0, 0.04);
199
+ border-radius: 10px;
200
+ padding: 0.65rem 0.85rem;
201
+ display: flex;
202
+ justify-content: space-between;
203
+ align-items: center;
204
+ cursor: pointer;
205
+ transition: all 0.2s;
206
+ width: 100%;
207
+ }
208
+
209
+ .theme-dark .switch-row-btn {
210
+ background: rgba(30, 41, 59, 0.2);
211
+ border: 1px solid rgba(255, 255, 255, 0.03);
212
+ }
213
+
214
+ .switch-row-btn:hover {
215
+ background: rgba(241, 245, 249, 0.7);
216
+ }
217
+
218
+ .theme-dark .switch-row-btn:hover {
219
+ background: rgba(30, 41, 59, 0.35);
220
+ }
221
+
222
+ .switch-row-title {
223
+ font-size: 0.75rem;
224
+ font-weight: 600;
225
+ color: var(--color-slate-light);
226
+ }
227
+
228
+ .theme-dark .switch-row-title {
229
+ color: var(--color-slate-ultra-light);
230
+ }
231
+
232
+ .toggle-switch {
233
+ width: 38px;
234
+ height: 20px;
235
+ background: rgba(226, 232, 240, 1);
236
+ border-radius: 9999px;
237
+ position: relative;
238
+ transition: background 0.3s;
239
+ }
240
+
241
+ .theme-dark .toggle-switch {
242
+ background: rgba(15, 23, 42, 0.8);
243
+ }
244
+
245
+ .switch-row-btn.active .toggle-switch {
246
+ background: var(--color-green-lime);
247
+ }
248
+
249
+ .switch-circle {
250
+ width: 14px;
251
+ height: 14px;
252
+ background: var(--color-white);
253
+ border-radius: 50%;
254
+ position: absolute;
255
+ top: 3px;
256
+ left: 3px;
257
+ transition: transform 0.2s cubic-bezier(0.4, 0, 0.2, 1);
258
+ box-shadow: 0 1px 3px rgba(0, 0, 0, 0.1);
259
+ }
260
+
261
+ .switch-row-btn.active .switch-circle {
262
+ transform: translateX(18px);
263
+ }
264
+
265
+ .recipe-summary-container {
266
+ background: rgba(241, 245, 249, 0.5);
267
+ border: 1px solid rgba(0, 0, 0, 0.04);
268
+ border-radius: 20px;
269
+ padding: 1.25rem;
270
+ display: flex;
271
+ flex-direction: column;
272
+ gap: 1rem;
273
+ height: 100%;
274
+ box-sizing: border-box;
275
+ }
276
+
277
+ .theme-dark .recipe-summary-container {
278
+ background: rgba(30, 41, 59, 0.2);
279
+ border: 1px solid rgba(255, 255, 255, 0.04);
280
+ }
281
+
282
+ .summary-title {
283
+ font-size: 0.75rem;
284
+ font-weight: 700;
285
+ text-transform: uppercase;
286
+ letter-spacing: 0.08em;
287
+ color: var(--color-slate-lighter);
288
+ }
289
+
290
+ .recipe-list {
291
+ display: flex;
292
+ flex-direction: column;
293
+ gap: 0.75rem;
294
+ }
295
+
296
+ .recipe-item {
297
+ background: var(--color-white);
298
+ border: 1px solid rgba(0, 0, 0, 0.05);
299
+ border-radius: 12px;
300
+ padding: 0.85rem 1rem;
301
+ display: flex;
302
+ justify-content: space-between;
303
+ align-items: center;
304
+ box-sizing: border-box;
305
+ box-shadow: 0 2px 4px rgba(0, 0, 0, 0.01);
306
+ }
307
+
308
+ .theme-dark .recipe-item {
309
+ background: rgba(15, 23, 42, 0.4);
310
+ border: 1px solid rgba(255, 255, 255, 0.03);
311
+ }
312
+
313
+ .recipe-list .recipe-item.hidden {
314
+ display: none;
315
+ }
316
+
317
+ .recipe-item-name {
318
+ font-size: 0.8rem;
319
+ font-weight: 600;
320
+ color: var(--color-slate-light);
321
+ }
322
+
323
+ .theme-dark .recipe-item-name {
324
+ color: var(--color-slate-ultra-light);
325
+ }
326
+
327
+ .recipe-item-val {
328
+ font-size: 1.15rem;
329
+ font-weight: 700;
330
+ color: var(--color-slate-dark);
331
+ }
332
+
333
+ .theme-dark .recipe-item-val {
334
+ color: var(--color-slate-white);
335
+ }
336
+
337
+ .solubility-warning {
338
+ background: rgba(239, 68, 68, 0.08);
339
+ border: 1px solid rgba(239, 68, 68, 0.15);
340
+ border-radius: 12px;
341
+ padding: 0.85rem;
342
+ box-sizing: border-box;
343
+ }
344
+
345
+ .theme-dark .solubility-warning {
346
+ background: rgba(239, 68, 68, 0.12);
347
+ border: 1px solid rgba(239, 68, 68, 0.25);
348
+ }
349
+
350
+ .solubility-warning.hidden {
351
+ display: none;
352
+ }
353
+
354
+ .warning-badge {
355
+ display: inline-block;
356
+ background: var(--color-red-dark);
357
+ color: var(--color-white);
358
+ font-size: 0.65rem;
359
+ font-weight: 700;
360
+ text-transform: uppercase;
361
+ padding: 0.15rem 0.4rem;
362
+ border-radius: 3px;
363
+ margin-bottom: 0.4rem;
364
+ }
365
+
366
+ .warning-text {
367
+ font-size: 0.75rem;
368
+ color: var(--color-red-dark);
369
+ margin: 0;
370
+ line-height: 1.4;
371
+ }
372
+
373
+ .theme-dark .warning-text {
374
+ color: var(--color-red-light);
375
+ }
376
+
377
+ .reactor-section {
378
+ display: flex;
379
+ flex-direction: column;
380
+ align-items: center;
381
+ background: rgba(241, 245, 249, 0.3);
382
+ border: 1px solid rgba(0, 0, 0, 0.03);
383
+ border-radius: 20px;
384
+ padding: 1.25rem;
385
+ height: 100%;
386
+ box-sizing: border-box;
387
+ }
388
+
389
+ .theme-dark .reactor-section {
390
+ background: rgba(15, 23, 42, 0.15);
391
+ border: 1px solid rgba(255, 255, 255, 0.03);
392
+ }
393
+
394
+ .reactor-title {
395
+ font-size: 0.75rem;
396
+ font-weight: 700;
397
+ text-transform: uppercase;
398
+ letter-spacing: 0.08em;
399
+ color: var(--color-slate-lighter);
400
+ margin-bottom: 1rem;
401
+ }
402
+
403
+ .reactor-container {
404
+ display: flex;
405
+ justify-content: center;
406
+ align-items: center;
407
+ flex-grow: 1;
408
+ margin: 1.5rem 0;
409
+ }
410
+
411
+ .beaker-vessel {
412
+ position: relative;
413
+ width: 190px;
414
+ height: 230px;
415
+ border-radius: 16px;
416
+ background: rgba(255, 255, 255, 0.95);
417
+ box-shadow: 0 10px 30px rgba(0, 0, 0, 0.02), inset 0 2px 4px var(--color-white);
418
+ display: flex;
419
+ align-items: center;
420
+ justify-content: center;
421
+ overflow: hidden;
422
+ border: 1px solid rgba(0, 0, 0, 0.04);
423
+ }
424
+
425
+ .theme-dark .beaker-vessel {
426
+ background: rgba(15, 23, 42, 0.8);
427
+ border: 1px solid rgba(255, 255, 255, 0.03);
428
+ box-shadow: inset 0 2px 4px rgba(0, 0, 0, 0.5);
429
+ }
430
+
431
+ .reactor-svg {
432
+ width: 100%;
433
+ height: 100%;
434
+ }
435
+
436
+ .droplet {
437
+ fill: var(--color-green-lime);
438
+ animation: dripping-droplet 2.5s infinite cubic-bezier(0.5, 0, 0.7, 1);
439
+ }
440
+
441
+ .theme-dark .droplet {
442
+ fill: var(--color-pink-magenta);
443
+ }
444
+
445
+ .sphere-fluid-core {
446
+ transition: transform 0.3s;
447
+ }
448
+
449
+ .sphere-gel-membrane {
450
+ fill: none;
451
+ stroke-width: 4px;
452
+ opacity: 0.85;
453
+ }
454
+
455
+ .sphere-gel-membrane.direct {
456
+ stroke: var(--color-green-dark);
457
+ animation: direct-gel-grow 3s infinite ease-out;
458
+ }
459
+
460
+ .sphere-gel-membrane.reverse {
461
+ stroke: var(--color-pink-dark);
462
+ animation: reverse-gel-grow 3s infinite ease-out;
463
+ }
464
+
465
+ .method-info-card {
466
+ width: 100%;
467
+ text-align: center;
468
+ }
469
+
470
+ .method-badge {
471
+ display: inline-block;
472
+ padding: 0.35rem 0.75rem;
473
+ border-radius: 9999px;
474
+ font-size: 0.75rem;
475
+ font-weight: 700;
476
+ text-transform: uppercase;
477
+ letter-spacing: 0.05em;
478
+ margin-bottom: 0.75rem;
479
+ }
480
+
481
+ .method-badge.direct {
482
+ background: rgba(132, 204, 22, 0.1);
483
+ border: 1px solid rgba(132, 204, 22, 0.2);
484
+ color: var(--color-green-dark);
485
+ }
486
+
487
+ .theme-dark .method-badge.direct {
488
+ background: rgba(132, 204, 22, 0.15);
489
+ border: 1px solid rgba(132, 204, 22, 0.3);
490
+ color: var(--color-green-lime);
491
+ }
492
+
493
+ .method-badge.reverse {
494
+ background: rgba(236, 72, 153, 0.1);
495
+ border: 1px solid rgba(236, 72, 153, 0.2);
496
+ color: var(--color-pink-dark);
497
+ }
498
+
499
+ .theme-dark .method-badge.reverse {
500
+ background: rgba(236, 72, 153, 0.15);
501
+ border: 1px solid rgba(236, 72, 153, 0.3);
502
+ color: var(--color-pink-magenta);
503
+ }
504
+
505
+ .method-desc-text {
506
+ font-size: 0.8rem;
507
+ color: var(--color-slate-light);
508
+ margin: 0;
509
+ line-height: 1.4;
510
+ }
511
+
512
+ .theme-dark .method-desc-text {
513
+ color: var(--color-slate-lightest);
514
+ }
515
+
516
+ @keyframes dripping-droplet {
517
+ 0% {
518
+ transform: translateY(0) scale(1);
519
+ opacity: 1;
520
+ }
521
+ 30% {
522
+ transform: translateY(80px) scale(0.9);
523
+ opacity: 1;
524
+ }
525
+ 31% {
526
+ opacity: 0;
527
+ }
528
+ 100% {
529
+ transform: translateY(0) scale(1);
530
+ opacity: 0;
531
+ }
532
+ }
533
+
534
+ @keyframes direct-gel-grow {
535
+ 0% {
536
+ stroke-width: 0;
537
+ transform: scale(1);
538
+ transform-origin: 100px 140px;
539
+ }
540
+ 30% {
541
+ stroke-width: 0;
542
+ transform: scale(1);
543
+ transform-origin: 100px 140px;
544
+ }
545
+ 100% {
546
+ stroke-width: 8px;
547
+ transform: scale(0.92);
548
+ transform-origin: 100px 140px;
549
+ }
550
+ }
551
+
552
+ @keyframes reverse-gel-grow {
553
+ 0% {
554
+ stroke-width: 0;
555
+ transform: scale(1);
556
+ transform-origin: 100px 140px;
557
+ }
558
+ 30% {
559
+ stroke-width: 0;
560
+ transform: scale(1);
561
+ transform-origin: 100px 140px;
562
+ }
563
+ 100% {
564
+ stroke-width: 10px;
565
+ transform: scale(1.18);
566
+ transform-origin: 100px 140px;
567
+ }
568
+ }
package/src/tools.ts CHANGED
@@ -13,6 +13,8 @@ import { SOURDOUGH_CALCULATOR_TOOL } from './tool/sourdough-calculator';
13
13
  import { ROUX_GUIDE_TOOL } from './tool/roux-guide';
14
14
  import { COOKWARE_GUIDE_TOOL } from './tool/cookware-guide';
15
15
  import { YEAST_CONVERTER_TOOL } from './tool/yeast-converter';
16
+ import { LACTO_FERMENTATION_SALT_TOOL } from './tool/lacto-fermentation-salt-calculator';
17
+ import { SPHERIFICATION_BATH_TOOL } from './tool/spherification-bath-calculator';
16
18
 
17
19
  export const ALL_TOOLS: ToolDefinition[] = [
18
20
  AMERICAN_KITCHEN_CONVERTER_TOOL,
@@ -28,6 +30,6 @@ export const ALL_TOOLS: ToolDefinition[] = [
28
30
  ROUX_GUIDE_TOOL,
29
31
  COOKWARE_GUIDE_TOOL,
30
32
  YEAST_CONVERTER_TOOL,
33
+ LACTO_FERMENTATION_SALT_TOOL,
34
+ SPHERIFICATION_BATH_TOOL,
31
35
  ];
32
-
33
-