@jjlmoya/utils-cooking 1.9.0 → 1.10.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.
@@ -1,5 +1,4 @@
1
1
  ---
2
- import './MoldScaler.css';
3
2
 
4
3
  interface Props {
5
4
  ui: Record<string, string>;
@@ -124,3 +123,364 @@ const { ui } = Astro.props;
124
123
  }
125
124
  </script>
126
125
 
126
+ <style>
127
+ :root {
128
+ --ms-primary: hsl(262deg, 83%, 58%);
129
+ --ms-primary-light: hsl(262deg, 83%, 95%);
130
+ --ms-primary-dark: hsl(262deg, 83%, 45%);
131
+ --ms-bg-card: hsl(0deg, 0%, 100%);
132
+ --ms-bg-app: hsl(210deg, 20%, 98%);
133
+ --ms-border: hsl(210deg, 20%, 90%);
134
+ --ms-text-main: hsl(210deg, 30%, 20%);
135
+ --ms-text-muted: hsl(210deg, 15%, 50%);
136
+ --ms-shadow-lg: 0 10px 15px -3px rgb(0, 0, 0, 0.1);
137
+ --ms-radius: 1rem;
138
+ --ms-transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);
139
+ }
140
+
141
+ :global(.theme-dark) {
142
+ --ms-bg-card: hsl(220deg, 25%, 12%);
143
+ --ms-bg-app: hsl(220deg, 30%, 7%);
144
+ --ms-border: hsl(220deg, 20%, 20%);
145
+ --ms-text-main: hsl(210deg, 20%, 95%);
146
+ --ms-text-muted: hsl(210deg, 15%, 70%);
147
+ --ms-primary-light: hsl(262deg, 83%, 15%);
148
+ }
149
+
150
+ .mold-scaler-container {
151
+ max-width: 1000px;
152
+ margin: 0 auto;
153
+ padding: 1rem;
154
+ }
155
+
156
+ .ms-card {
157
+ background: var(--ms-bg-card);
158
+ border: 1px solid var(--ms-border);
159
+ border-radius: var(--ms-radius);
160
+ box-shadow: var(--ms-shadow-lg);
161
+ overflow: hidden;
162
+ display: flex;
163
+ flex-direction: column;
164
+ }
165
+
166
+ @media (min-width: 1024px) {
167
+ .ms-card {
168
+ flex-direction: row;
169
+ min-height: 700px;
170
+ }
171
+ }
172
+
173
+ .ms-sidebar {
174
+ flex: 1;
175
+ padding: 2rem;
176
+ border-bottom: 1px solid var(--ms-border);
177
+ background: linear-gradient(to bottom, var(--ms-bg-card), var(--ms-primary-light));
178
+ }
179
+
180
+ @media (min-width: 1024px) {
181
+ .ms-sidebar {
182
+ border-bottom: none;
183
+ border-right: 1px solid var(--ms-border);
184
+ max-width: 450px;
185
+ }
186
+ }
187
+
188
+ .ms-main {
189
+ flex: 1.5;
190
+ padding: 2rem;
191
+ display: flex;
192
+ flex-direction: column;
193
+ gap: 2rem;
194
+ }
195
+
196
+ .ms-section {
197
+ margin-bottom: 2rem;
198
+ }
199
+
200
+ .ms-section-title {
201
+ display: flex;
202
+ align-items: center;
203
+ gap: 0.75rem;
204
+ font-size: 1.25rem;
205
+ font-weight: 700;
206
+ color: var(--ms-text-main);
207
+ margin-bottom: 1.5rem;
208
+ }
209
+
210
+ .ms-section-badge {
211
+ display: flex;
212
+ align-items: center;
213
+ justify-content: center;
214
+ width: 1.75rem;
215
+ height: 1.75rem;
216
+ background: var(--ms-primary);
217
+ color: var(--ms-bg-card);
218
+ border-radius: 50%;
219
+ font-size: 0.875rem;
220
+ }
221
+
222
+ .ms-shape-selector {
223
+ display: grid;
224
+ grid-template-columns: repeat(3, 1fr);
225
+ gap: 0.75rem;
226
+ margin-bottom: 1.25rem;
227
+ }
228
+
229
+ .ms-shape-btn {
230
+ display: flex;
231
+ flex-direction: column;
232
+ align-items: center;
233
+ padding: 0.75rem;
234
+ border-radius: 0.75rem;
235
+ border: 1px solid var(--ms-border);
236
+ background: var(--ms-bg-card);
237
+ color: var(--ms-text-muted);
238
+ cursor: pointer;
239
+ transition: var(--ms-transition);
240
+ font-size: 0.875rem;
241
+ font-weight: 600;
242
+ }
243
+
244
+ .ms-shape-btn:hover {
245
+ border-color: var(--ms-primary);
246
+ color: var(--ms-primary);
247
+ }
248
+
249
+ .ms-shape-btn.active {
250
+ background: var(--ms-primary);
251
+ color: var(--ms-bg-card);
252
+ border-color: var(--ms-primary);
253
+ box-shadow: 0 4px 12px hsla(262deg, 83%, 58%, 0.3);
254
+ }
255
+
256
+ .ms-shape-icon {
257
+ width: 2rem;
258
+ height: 2rem;
259
+ margin-bottom: 0.5rem;
260
+ border: 2px solid currentcolor;
261
+ transition: var(--ms-transition);
262
+ }
263
+
264
+ .ms-shape-btn[data-shape="round"] .ms-shape-icon {
265
+ border-radius: 50%;
266
+ }
267
+
268
+ .ms-shape-btn[data-shape="square"] .ms-shape-icon {
269
+ border-radius: 4px;
270
+ }
271
+
272
+ .ms-shape-btn[data-shape="rectangular"] .ms-shape-icon {
273
+ border-radius: 2px;
274
+ width: 2.5rem;
275
+ }
276
+
277
+ .ms-input-group {
278
+ display: flex;
279
+ flex-direction: column;
280
+ gap: 0.5rem;
281
+ }
282
+
283
+ .ms-label {
284
+ font-size: 0.75rem;
285
+ font-weight: 700;
286
+ color: var(--ms-text-muted);
287
+ text-transform: uppercase;
288
+ letter-spacing: 0.05em;
289
+ }
290
+
291
+ .ms-input {
292
+ width: 100%;
293
+ padding: 0.75rem 1rem;
294
+ border-radius: 0.5rem;
295
+ border: 1px solid var(--ms-border);
296
+ background: var(--ms-bg-card);
297
+ color: var(--ms-text-main);
298
+ font-weight: 600;
299
+ transition: var(--ms-transition);
300
+ }
301
+
302
+ .ms-input:focus {
303
+ outline: none;
304
+ border-color: var(--ms-primary);
305
+ box-shadow: 0 0 0 3px hsla(262deg, 83%, 58%, 0.1);
306
+ }
307
+
308
+ .ms-hero-result {
309
+ text-align: center;
310
+ padding: 2.5rem;
311
+ background: linear-gradient(135deg, var(--ms-primary), var(--ms-primary-dark));
312
+ color: var(--ms-bg-card);
313
+ border-radius: var(--ms-radius);
314
+ box-shadow: var(--ms-shadow-md);
315
+ position: relative;
316
+ overflow: hidden;
317
+ }
318
+
319
+ .ms-result-label {
320
+ font-size: 0.875rem;
321
+ font-weight: 600;
322
+ text-transform: uppercase;
323
+ letter-spacing: 0.1em;
324
+ opacity: 0.8;
325
+ margin-bottom: 0.5rem;
326
+ }
327
+
328
+ .ms-result-value {
329
+ font-size: 4rem;
330
+ font-weight: 800;
331
+ margin-bottom: 0.5rem;
332
+ line-height: 1;
333
+ }
334
+
335
+ .ms-result-text {
336
+ font-size: 1rem;
337
+ opacity: 0.9;
338
+ max-width: 300px;
339
+ margin: 0 auto;
340
+ }
341
+
342
+ .ms-viz-container {
343
+ background: var(--ms-bg-app);
344
+ border: 1px solid var(--ms-border);
345
+ border-radius: var(--ms-radius);
346
+ padding: 1.5rem;
347
+ position: relative;
348
+ aspect-ratio: 4 / 3;
349
+ display: flex;
350
+ flex-direction: column;
351
+ }
352
+
353
+ .ms-viz-svg {
354
+ flex: 1;
355
+ width: 100%;
356
+ height: 100%;
357
+ }
358
+
359
+ .ms-viz-legend {
360
+ display: flex;
361
+ justify-content: center;
362
+ gap: 1.5rem;
363
+ padding-top: 1rem;
364
+ font-size: 0.75rem;
365
+ font-weight: 600;
366
+ }
367
+
368
+ .ms-legend-item {
369
+ display: flex;
370
+ align-items: center;
371
+ gap: 0.5rem;
372
+ }
373
+
374
+ .ms-dot {
375
+ width: 0.75rem;
376
+ height: 0.75rem;
377
+ border-radius: 50%;
378
+ }
379
+
380
+ .ms-dot.original {
381
+ background: var(--ms-primary);
382
+ opacity: 0.5;
383
+ border: 1px dashed var(--ms-primary);
384
+ }
385
+
386
+ .ms-dot.target {
387
+ background: hsl(150deg, 80%, 40%);
388
+ opacity: 0.8;
389
+ border: 1px solid hsl(150deg, 80%, 40%);
390
+ }
391
+
392
+ .ms-ingredients-card {
393
+ border: 1px solid var(--ms-border);
394
+ border-radius: var(--ms-radius);
395
+ padding: 1.5rem;
396
+ }
397
+
398
+ .ms-ingredients-list {
399
+ display: flex;
400
+ flex-direction: column;
401
+ gap: 0.75rem;
402
+ margin-bottom: 1.5rem;
403
+ }
404
+
405
+ .ms-ingredient-row {
406
+ display: grid;
407
+ grid-template-columns: 1fr;
408
+ gap: 0.75rem;
409
+ padding: 1rem;
410
+ background: var(--ms-bg-app);
411
+ border-radius: 0.75rem;
412
+ border: 1px solid var(--ms-border);
413
+ position: relative;
414
+ animation: slide-in 0.3s ease-out;
415
+ }
416
+
417
+ @keyframes slide-in {
418
+ from {
419
+ opacity: 0;
420
+ transform: translateY(10px);
421
+ }
422
+ to {
423
+ opacity: 1;
424
+ transform: translateY(0);
425
+ }
426
+ }
427
+
428
+ @media (min-width: 640px) {
429
+ .ms-ingredient-row {
430
+ grid-template-columns: 2fr 1fr 1fr auto;
431
+ align-items: center;
432
+ }
433
+ }
434
+
435
+ .ms-ingredient-final {
436
+ font-weight: 800;
437
+ color: hsl(150deg, 80%, 40%);
438
+ font-size: 1.125rem;
439
+ padding: 0.5rem;
440
+ text-align: center;
441
+ }
442
+
443
+ .ms-del-btn {
444
+ background: transparent;
445
+ border: none;
446
+ color: var(--ms-text-muted);
447
+ cursor: pointer;
448
+ padding: 0.5rem;
449
+ border-radius: 0.5rem;
450
+ transition: var(--ms-transition);
451
+ }
452
+
453
+ .ms-del-btn:hover {
454
+ background: hsl(0deg, 85%, 60%);
455
+ color: var(--ms-bg-card);
456
+ }
457
+
458
+ .ms-add-btn {
459
+ width: 100%;
460
+ padding: 1rem;
461
+ background: transparent;
462
+ border: 2px dashed var(--ms-primary);
463
+ color: var(--ms-primary);
464
+ border-radius: 0.75rem;
465
+ font-weight: 700;
466
+ cursor: pointer;
467
+ transition: var(--ms-transition);
468
+ display: flex;
469
+ align-items: center;
470
+ justify-content: center;
471
+ gap: 0.5rem;
472
+ }
473
+
474
+ .ms-add-btn:hover {
475
+ background: var(--ms-primary-light);
476
+ border-style: solid;
477
+ }
478
+
479
+ .ms-empty-state {
480
+ text-align: center;
481
+ padding: 2rem;
482
+ color: var(--ms-text-muted);
483
+ font-style: italic;
484
+ }
485
+ </style>
486
+