@jjlmoya/utils-cooking 1.20.0 → 1.22.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.
@@ -106,277 +106,3 @@ ${ui.exampleLine4}`;
106
106
  </script>
107
107
 
108
108
 
109
- <style>
110
- .ingredient-rescaler-container {
111
- max-width: 100%;
112
- padding: 1.5rem;
113
- background: var(--ir-bg-card);
114
- border: 1px solid var(--ir-border);
115
- border-radius: var(--ir-radius);
116
- box-shadow: var(--ir-shadow-lg);
117
- }
118
-
119
- .ir-grid {
120
- display: grid;
121
- grid-template-columns: 1fr;
122
- gap: 2rem;
123
- margin-bottom: 2rem;
124
- }
125
-
126
- @media (min-width: 768px) {
127
- .ir-grid {
128
- grid-template-columns: 1fr 1fr;
129
- }
130
- }
131
-
132
- .ir-section {
133
- background: var(--ir-bg-app);
134
- padding: 1.5rem;
135
- border-radius: 1.25rem;
136
- border: 1px solid var(--ir-border);
137
- }
138
-
139
- .ir-section-primary {
140
- background: var(--ir-bg-card);
141
- border: 2px solid var(--ir-primary);
142
- }
143
-
144
- .ir-section-title {
145
- font-size: 1.125rem;
146
- font-weight: 700;
147
- color: var(--ir-text-main);
148
- margin-bottom: 1rem;
149
- display: flex;
150
- align-items: center;
151
- gap: 0.5rem;
152
- }
153
-
154
- .ir-section-primary .ir-section-title {
155
- color: var(--ir-primary);
156
- }
157
-
158
- .ir-fields {
159
- display: grid;
160
- grid-template-columns: 1fr 1fr;
161
- gap: 1rem;
162
- margin-bottom: 1.5rem;
163
- }
164
-
165
- .ir-field {
166
- display: flex;
167
- flex-direction: column;
168
- gap: 0.5rem;
169
- }
170
-
171
- .ir-label {
172
- font-size: 0.75rem;
173
- font-weight: 700;
174
- color: var(--ir-text-muted);
175
- text-transform: uppercase;
176
- letter-spacing: 0.05em;
177
- }
178
-
179
- .ir-input {
180
- width: 100%;
181
- padding: 0.75rem 1rem;
182
- border-radius: 0.75rem;
183
- border: 1px solid var(--ir-border);
184
- background: var(--ir-bg-card);
185
- color: var(--ir-text-main);
186
- font-weight: 600;
187
- font-size: 1.125rem;
188
- text-align: center;
189
- transition: all 0.3s ease;
190
- }
191
-
192
- .ir-input:focus {
193
- outline: none;
194
- border-color: var(--ir-primary);
195
- box-shadow: 0 0 0 3px hsl(220deg, 90%, 56%, 0.1);
196
- }
197
-
198
- .ir-factor-display {
199
- margin-top: 1rem;
200
- padding: 1rem;
201
- background: var(--ir-primary-light);
202
- border-radius: 0.75rem;
203
- border: 1px solid var(--ir-primary);
204
- display: flex;
205
- justify-content: space-between;
206
- align-items: center;
207
- }
208
-
209
- .ir-factor-label {
210
- font-size: 0.875rem;
211
- font-weight: 600;
212
- color: var(--ir-text-muted);
213
- }
214
-
215
- .ir-factor-value {
216
- font-size: 2rem;
217
- font-weight: 800;
218
- color: var(--ir-primary);
219
- }
220
-
221
- .ir-textarea-container {
222
- display: flex;
223
- flex-direction: column;
224
- height: 100%;
225
- gap: 0.5rem;
226
- }
227
-
228
- .ir-textarea {
229
- width: 100%;
230
- flex: 1;
231
- min-height: 200px;
232
- padding: 1rem;
233
- border-radius: 0.75rem;
234
- border: 1px solid var(--ir-border);
235
- background: var(--ir-bg-card);
236
- color: var(--ir-text-main);
237
- font-size: 0.875rem;
238
- resize: none;
239
- line-height: 1.6;
240
- transition: all 0.3s ease;
241
- }
242
-
243
- .ir-textarea:focus {
244
- outline: none;
245
- border-color: var(--ir-primary);
246
- box-shadow: 0 0 0 3px hsl(220deg, 90%, 56%, 0.1);
247
- }
248
-
249
- .ir-textarea::placeholder {
250
- color: hsl(210deg, 15%, 75%);
251
- }
252
-
253
- .ir-results-card {
254
- background: var(--ir-text-main);
255
- border-radius: 1.25rem;
256
- border: 1px solid var(--ir-border);
257
- overflow: hidden;
258
- box-shadow: var(--ir-shadow-lg);
259
- }
260
-
261
- .ir-results-header {
262
- padding: 1rem 1.5rem;
263
- background: hsl(210deg, 30%, 15%);
264
- border-bottom: 1px solid hsl(210deg, 30%, 25%);
265
- display: flex;
266
- justify-content: space-between;
267
- align-items: center;
268
- }
269
-
270
- :global(.theme-dark) .ir-results-header {
271
- background: hsl(220deg, 25%, 8%);
272
- border-bottom-color: hsl(220deg, 25%, 20%);
273
- }
274
-
275
- .ir-results-title {
276
- color: var(--ir-bg-card);
277
- font-weight: 700;
278
- display: flex;
279
- align-items: center;
280
- gap: 0.5rem;
281
- }
282
-
283
- :global(.theme-dark) .ir-results-title {
284
- color: var(--ir-text-main);
285
- }
286
-
287
- .ir-copy-btn {
288
- font-size: 0.75rem;
289
- background: hsl(210deg, 30%, 35%);
290
- color: var(--ir-bg-card);
291
- padding: 0.5rem 1rem;
292
- border-radius: 0.5rem;
293
- border: none;
294
- cursor: pointer;
295
- transition: all 0.3s ease;
296
- font-weight: 600;
297
- display: flex;
298
- align-items: center;
299
- gap: 0.5rem;
300
- }
301
-
302
- :global(.theme-dark) .ir-copy-btn {
303
- background: hsl(220deg, 25%, 30%);
304
- color: var(--ir-text-main);
305
- }
306
-
307
- .ir-copy-btn:hover {
308
- background: hsl(210deg, 30%, 45%);
309
- }
310
-
311
- :global(.theme-dark) .ir-copy-btn:hover {
312
- background: hsl(220deg, 25%, 40%);
313
- }
314
-
315
- .ir-copy-btn.ir-copied {
316
- background: hsl(142deg, 72%, 45%);
317
- }
318
-
319
- .ir-results-container {
320
- padding: 2rem;
321
- font-size: 1rem;
322
- display: flex;
323
- flex-direction: column;
324
- gap: 0.75rem;
325
- min-height: 200px;
326
- background: var(--ir-bg-card);
327
- color: var(--ir-text-main);
328
- }
329
-
330
- .ir-empty-state {
331
- height: 100%;
332
- display: flex;
333
- flex-direction: column;
334
- align-items: center;
335
- justify-content: center;
336
- gap: 1rem;
337
- opacity: 0.5;
338
- color: var(--ir-text-muted);
339
- }
340
-
341
- .ir-empty-icon {
342
- width: 3rem;
343
- height: 3rem;
344
- }
345
-
346
- :global(.ir-result-row) {
347
- display: flex;
348
- justify-content: space-between;
349
- align-items: center;
350
- background: var(--ir-bg-app);
351
- padding: 0.75rem;
352
- border-radius: 0.5rem;
353
- border-left: 4px solid transparent;
354
- transition: all 0.3s ease;
355
- }
356
-
357
- :global(.ir-result-row):hover {
358
- background: var(--ir-primary-light);
359
- border-left-color: var(--ir-primary);
360
- }
361
-
362
- .ir-original-amount {
363
- color: hsl(210deg, 15%, 75%);
364
- font-size: 0.75rem;
365
- text-decoration: line-through;
366
- opacity: 0.75;
367
- }
368
-
369
- .ir-new-value {
370
- color: var(--ir-primary);
371
- font-weight: 800;
372
- font-size: 1.125rem;
373
- }
374
-
375
- :global(.ir-no-amount-row) {
376
- color: var(--ir-text-muted);
377
- font-style: italic;
378
- font-size: 0.875rem;
379
- padding: 0.5rem;
380
- background: transparent;
381
- }
382
- </style>
@@ -1,20 +1,272 @@
1
- :root {
2
- --ir-primary: hsl(220deg, 90%, 56%);
3
- --ir-primary-light: hsl(220deg, 90%, 92%);
4
- --ir-bg-card: hsl(0deg, 0%, 100%);
5
- --ir-bg-app: hsl(210deg, 20%, 98%);
6
- --ir-border: hsl(210deg, 20%, 90%);
7
- --ir-text-main: hsl(210deg, 30%, 20%);
8
- --ir-text-muted: hsl(210deg, 15%, 50%);
9
- --ir-shadow-lg: 0 10px 15px -3px rgb(0, 0, 0, 0.1);
10
- --ir-radius: 1rem;
11
- }
12
-
13
- .theme-dark {
14
- --ir-bg-card: hsl(220deg, 25%, 12%);
15
- --ir-bg-app: hsl(220deg, 30%, 7%);
16
- --ir-border: hsl(220deg, 20%, 20%);
17
- --ir-text-main: hsl(210deg, 20%, 95%);
18
- --ir-text-muted: hsl(210deg, 15%, 70%);
19
- --ir-primary-light: hsl(220deg, 90%, 12%);
1
+ .ingredient-rescaler-container {
2
+ max-width: 100%;
3
+ padding: 1.5rem;
4
+ background: var(--ir-bg-card);
5
+ border: 1px solid var(--ir-border);
6
+ border-radius: var(--ir-radius);
7
+ box-shadow: var(--ir-shadow-lg);
8
+ }
9
+
10
+ .ir-grid {
11
+ display: grid;
12
+ grid-template-columns: 1fr;
13
+ gap: 2rem;
14
+ margin-bottom: 2rem;
15
+ }
16
+
17
+ @media (min-width: 768px) {
18
+ .ir-grid {
19
+ grid-template-columns: 1fr 1fr;
20
+ }
21
+ }
22
+
23
+ .ir-section {
24
+ background: var(--ir-bg-app);
25
+ padding: 1.5rem;
26
+ border-radius: 1.25rem;
27
+ border: 1px solid var(--ir-border);
28
+ }
29
+
30
+ .ir-section-primary {
31
+ background: var(--ir-bg-card);
32
+ border: 2px solid var(--ir-primary);
33
+ }
34
+
35
+ .ir-section-title {
36
+ font-size: 1.125rem;
37
+ font-weight: 700;
38
+ color: var(--ir-text-main);
39
+ margin-bottom: 1rem;
40
+ display: flex;
41
+ align-items: center;
42
+ gap: 0.5rem;
43
+ }
44
+
45
+ .ir-section-primary .ir-section-title {
46
+ color: var(--ir-primary);
47
+ }
48
+
49
+ .ir-fields {
50
+ display: grid;
51
+ grid-template-columns: 1fr 1fr;
52
+ gap: 1rem;
53
+ margin-bottom: 1.5rem;
54
+ }
55
+
56
+ .ir-field {
57
+ display: flex;
58
+ flex-direction: column;
59
+ gap: 0.5rem;
60
+ }
61
+
62
+ .ir-label {
63
+ font-size: 0.75rem;
64
+ font-weight: 700;
65
+ color: var(--ir-text-muted);
66
+ text-transform: uppercase;
67
+ letter-spacing: 0.05em;
68
+ }
69
+
70
+ .ir-input {
71
+ width: 100%;
72
+ padding: 0.75rem 1rem;
73
+ border-radius: 0.75rem;
74
+ border: 1px solid var(--ir-border);
75
+ background: var(--ir-bg-card);
76
+ color: var(--ir-text-main);
77
+ font-weight: 600;
78
+ font-size: 1.125rem;
79
+ text-align: center;
80
+ transition: all 0.3s ease;
81
+ }
82
+
83
+ .ir-input:focus {
84
+ outline: none;
85
+ border-color: var(--ir-primary);
86
+ box-shadow: 0 0 0 3px hsl(220deg, 90%, 56%, 0.1);
87
+ }
88
+
89
+ .ir-factor-display {
90
+ margin-top: 1rem;
91
+ padding: 1rem;
92
+ background: var(--ir-primary-light);
93
+ border-radius: 0.75rem;
94
+ border: 1px solid var(--ir-primary);
95
+ display: flex;
96
+ justify-content: space-between;
97
+ align-items: center;
98
+ }
99
+
100
+ .ir-factor-label {
101
+ font-size: 0.875rem;
102
+ font-weight: 600;
103
+ color: var(--ir-text-muted);
104
+ }
105
+
106
+ .ir-factor-value {
107
+ font-size: 2rem;
108
+ font-weight: 800;
109
+ color: var(--ir-primary);
110
+ }
111
+
112
+ .ir-textarea-container {
113
+ display: flex;
114
+ flex-direction: column;
115
+ height: 100%;
116
+ gap: 0.5rem;
117
+ }
118
+
119
+ .ir-textarea {
120
+ width: 100%;
121
+ flex: 1;
122
+ min-height: 200px;
123
+ padding: 1rem;
124
+ border-radius: 0.75rem;
125
+ border: 1px solid var(--ir-border);
126
+ background: var(--ir-bg-card);
127
+ color: var(--ir-text-main);
128
+ font-size: 0.875rem;
129
+ resize: none;
130
+ line-height: 1.6;
131
+ transition: all 0.3s ease;
132
+ }
133
+
134
+ .ir-textarea:focus {
135
+ outline: none;
136
+ border-color: var(--ir-primary);
137
+ box-shadow: 0 0 0 3px hsl(220deg, 90%, 56%, 0.1);
138
+ }
139
+
140
+ .ir-textarea::placeholder {
141
+ color: hsl(210deg, 15%, 75%);
142
+ }
143
+
144
+ .ir-results-card {
145
+ background: var(--ir-text-main);
146
+ border-radius: 1.25rem;
147
+ border: 1px solid var(--ir-border);
148
+ overflow: hidden;
149
+ box-shadow: var(--ir-shadow-lg);
150
+ }
151
+
152
+ .ir-results-header {
153
+ padding: 1rem 1.5rem;
154
+ background: hsl(210deg, 30%, 15%);
155
+ border-bottom: 1px solid hsl(210deg, 30%, 25%);
156
+ display: flex;
157
+ justify-content: space-between;
158
+ align-items: center;
159
+ }
160
+
161
+ .theme-dark .ir-results-header {
162
+ background: hsl(220deg, 25%, 8%);
163
+ border-bottom-color: hsl(220deg, 25%, 20%);
164
+ }
165
+
166
+ .ir-results-title {
167
+ color: var(--ir-bg-card);
168
+ font-weight: 700;
169
+ display: flex;
170
+ align-items: center;
171
+ gap: 0.5rem;
172
+ }
173
+
174
+ .theme-dark .ir-results-title {
175
+ color: var(--ir-text-main);
176
+ }
177
+
178
+ .ir-copy-btn {
179
+ font-size: 0.75rem;
180
+ background: hsl(210deg, 30%, 35%);
181
+ color: var(--ir-bg-card);
182
+ padding: 0.5rem 1rem;
183
+ border-radius: 0.5rem;
184
+ border: none;
185
+ cursor: pointer;
186
+ transition: all 0.3s ease;
187
+ font-weight: 600;
188
+ display: flex;
189
+ align-items: center;
190
+ gap: 0.5rem;
191
+ }
192
+
193
+ .theme-dark .ir-copy-btn {
194
+ background: hsl(220deg, 25%, 30%);
195
+ color: var(--ir-text-main);
196
+ }
197
+
198
+ .ir-copy-btn:hover {
199
+ background: hsl(210deg, 30%, 45%);
200
+ }
201
+
202
+ .theme-dark .ir-copy-btn:hover {
203
+ background: hsl(220deg, 25%, 40%);
204
+ }
205
+
206
+ .ir-copy-btn.ir-copied {
207
+ background: hsl(142deg, 72%, 45%);
208
+ }
209
+
210
+ .ir-results-container {
211
+ padding: 2rem;
212
+ font-size: 1rem;
213
+ display: flex;
214
+ flex-direction: column;
215
+ gap: 0.75rem;
216
+ min-height: 200px;
217
+ background: var(--ir-bg-card);
218
+ color: var(--ir-text-main);
219
+ }
220
+
221
+ .ir-empty-state {
222
+ height: 100%;
223
+ display: flex;
224
+ flex-direction: column;
225
+ align-items: center;
226
+ justify-content: center;
227
+ gap: 1rem;
228
+ opacity: 0.5;
229
+ color: var(--ir-text-muted);
230
+ }
231
+
232
+ .ir-empty-icon {
233
+ width: 3rem;
234
+ height: 3rem;
235
+ }
236
+
237
+ .ir-result-row {
238
+ display: flex;
239
+ justify-content: space-between;
240
+ align-items: center;
241
+ background: var(--ir-bg-app);
242
+ padding: 0.75rem;
243
+ border-radius: 0.5rem;
244
+ border-left: 4px solid transparent;
245
+ transition: all 0.3s ease;
246
+ }
247
+
248
+ .ir-result-row:hover {
249
+ background: var(--ir-primary-light);
250
+ border-left-color: var(--ir-primary);
251
+ }
252
+
253
+ .ir-original-amount {
254
+ color: hsl(210deg, 15%, 75%);
255
+ font-size: 0.75rem;
256
+ text-decoration: line-through;
257
+ opacity: 0.75;
258
+ }
259
+
260
+ .ir-new-value {
261
+ color: var(--ir-primary);
262
+ font-weight: 800;
263
+ font-size: 1.125rem;
264
+ }
265
+
266
+ .ir-no-amount-row {
267
+ color: var(--ir-text-muted);
268
+ font-style: italic;
269
+ font-size: 0.875rem;
270
+ padding: 0.5rem;
271
+ background: transparent;
20
272
  }
@@ -10,7 +10,7 @@
10
10
  --card-br: 1.5rem;
11
11
  }
12
12
 
13
- :global(.theme-dark) .kitchen-timer-wrapper {
13
+ .theme-dark .kitchen-timer-wrapper {
14
14
  --kt-primary: #fb923c;
15
15
  --kt-secondary: #fdba74;
16
16
  --kt-bg: #0f172a;
@@ -28,7 +28,7 @@
28
28
  gap: 2rem;
29
29
  }
30
30
 
31
- :global(.theme-dark) .meringue-calculator-container {
31
+ .theme-dark .meringue-calculator-container {
32
32
  --text-dark: #f1f5f9;
33
33
  --text-muted: #94a3b8;
34
34
  --text-light: #cbd5e1;
@@ -116,7 +116,7 @@
116
116
  box-shadow: 0 0 0 4px rgba(244, 114, 182, 0.1);
117
117
  }
118
118
 
119
- :global(.theme-dark) .meringue-input-wrapper input:focus {
119
+ .theme-dark .meringue-input-wrapper input:focus {
120
120
  box-shadow: 0 0 0 4px rgba(244, 114, 182, 0.2);
121
121
  }
122
122
 
@@ -155,7 +155,7 @@
155
155
  box-shadow: 0 4px 12px rgba(0, 0, 0, 0.05);
156
156
  }
157
157
 
158
- :global(.theme-dark) .meringue-type-btn.active {
158
+ .theme-dark .meringue-type-btn.active {
159
159
  box-shadow: 0 4px 12px rgba(0, 0, 0, 0.3);
160
160
  }
161
161
 
@@ -165,7 +165,7 @@
165
165
  gap: 1.5rem;
166
166
  }
167
167
 
168
- :global(.meringue-result-item) {
168
+ .meringue-result-item {
169
169
  background: var(--time-bg);
170
170
  border: 1px solid var(--card-border);
171
171
  border-radius: 20px;
@@ -176,7 +176,7 @@
176
176
  transition: all 0.2s ease;
177
177
  }
178
178
 
179
- :global(.meringue-result-item):hover {
179
+ .meringue-result-item:hover {
180
180
  background: var(--card-bg);
181
181
  transform: scale(1.02);
182
182
  }
@@ -215,7 +215,7 @@
215
215
  gap: 1rem;
216
216
  }
217
217
 
218
- :global(.meringue-time-row) {
218
+ .meringue-time-row {
219
219
  display: flex;
220
220
  align-items: center;
221
221
  justify-content: space-between;
@@ -246,7 +246,7 @@
246
246
  font-size: 1.125rem;
247
247
  }
248
248
 
249
- :global(.theme-dark) .meringue-time-val {
249
+ .theme-dark .meringue-time-val {
250
250
  color: var(--primary);
251
251
  }
252
252
 
@@ -266,7 +266,7 @@
266
266
  flex-shrink: 0;
267
267
  }
268
268
 
269
- :global(.theme-dark) .meringue-pro-tip svg {
269
+ .theme-dark .meringue-pro-tip svg {
270
270
  color: var(--primary);
271
271
  }
272
272
 
@@ -277,11 +277,11 @@
277
277
  margin: 0;
278
278
  }
279
279
 
280
- :global(.theme-dark) .meringue-pro-tip p {
280
+ .theme-dark .meringue-pro-tip p {
281
281
  color: var(--pink-light);
282
282
  }
283
283
 
284
- :global(.meringue-fade-in) {
284
+ .meringue-fade-in {
285
285
  animation: meringue-fade-in 0.5s ease forwards;
286
286
  }
287
287