@jjlmoya/utils-cooking 1.8.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,308 +0,0 @@
1
- :root {
2
- --ir-primary: hsl(220deg, 90%, 56%);
3
- --ir-primary-light: hsl(220deg, 90%, 92%);
4
- --ir-primary-dark: hsl(220deg, 85%, 45%);
5
- --ir-success: hsl(142deg, 72%, 45%);
6
- --ir-danger: hsl(0deg, 84%, 60%);
7
- --ir-bg-card: hsl(0deg, 0%, 100%);
8
- --ir-bg-app: hsl(210deg, 20%, 98%);
9
- --ir-border: hsl(210deg, 20%, 90%);
10
- --ir-text-main: hsl(210deg, 30%, 20%);
11
- --ir-text-muted: hsl(210deg, 15%, 50%);
12
- --ir-text-disabled: hsl(210deg, 15%, 75%);
13
- --ir-shadow-sm: 0 1px 2px 0 rgb(0, 0, 0, 0.05);
14
- --ir-shadow-md: 0 4px 6px -1px rgb(0, 0, 0, 0.1), 0 2px 4px -2px rgb(0, 0, 0, 0.1);
15
- --ir-shadow-lg: 0 10px 15px -3px rgb(0, 0, 0, 0.1), 0 4px 6px -4px rgb(0, 0, 0, 0.1);
16
- --ir-radius: 1rem;
17
- --ir-transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);
18
- }
19
-
20
- .theme-dark {
21
- --ir-bg-card: hsl(220deg, 25%, 12%);
22
- --ir-bg-app: hsl(220deg, 30%, 7%);
23
- --ir-border: hsl(220deg, 20%, 20%);
24
- --ir-text-main: hsl(210deg, 20%, 95%);
25
- --ir-text-muted: hsl(210deg, 15%, 70%);
26
- --ir-text-disabled: hsl(210deg, 15%, 50%);
27
- --ir-primary-light: hsl(220deg, 90%, 12%);
28
- }
29
-
30
- .ingredient-rescaler-container {
31
- max-width: 100%;
32
- padding: 1.5rem;
33
- background: var(--ir-bg-card);
34
- border: 1px solid var(--ir-border);
35
- border-radius: var(--ir-radius);
36
- box-shadow: var(--ir-shadow-lg);
37
- }
38
-
39
- .ir-grid {
40
- display: grid;
41
- grid-template-columns: 1fr;
42
- gap: 2rem;
43
- margin-bottom: 2rem;
44
- }
45
-
46
- @media (min-width: 768px) {
47
- .ir-grid {
48
- grid-template-columns: 1fr 1fr;
49
- }
50
- }
51
-
52
- .ir-section {
53
- background: var(--ir-bg-app);
54
- padding: 1.5rem;
55
- border-radius: 1.25rem;
56
- border: 1px solid var(--ir-border);
57
- }
58
-
59
- .ir-section-primary {
60
- background: var(--ir-bg-card);
61
- border: 2px solid var(--ir-primary);
62
- }
63
-
64
- .ir-section-title {
65
- font-size: 1.125rem;
66
- font-weight: 700;
67
- color: var(--ir-text-main);
68
- margin-bottom: 1rem;
69
- display: flex;
70
- align-items: center;
71
- gap: 0.5rem;
72
- }
73
-
74
- .ir-section-primary .ir-section-title {
75
- color: var(--ir-primary);
76
- }
77
-
78
- .ir-fields {
79
- display: grid;
80
- grid-template-columns: 1fr 1fr;
81
- gap: 1rem;
82
- margin-bottom: 1.5rem;
83
- }
84
-
85
- .ir-field {
86
- display: flex;
87
- flex-direction: column;
88
- gap: 0.5rem;
89
- }
90
-
91
- .ir-label {
92
- font-size: 0.75rem;
93
- font-weight: 700;
94
- color: var(--ir-text-muted);
95
- text-transform: uppercase;
96
- letter-spacing: 0.05em;
97
- }
98
-
99
- .ir-input {
100
- width: 100%;
101
- padding: 0.75rem 1rem;
102
- border-radius: 0.75rem;
103
- border: 1px solid var(--ir-border);
104
- background: var(--ir-bg-card);
105
- color: var(--ir-text-main);
106
- font-weight: 600;
107
- font-size: 1.125rem;
108
- text-align: center;
109
- transition: var(--ir-transition);
110
- }
111
-
112
- .ir-input:focus {
113
- outline: none;
114
- border-color: var(--ir-primary);
115
- box-shadow: 0 0 0 3px hsl(25deg, 95%, 53%, 0.1);
116
- }
117
-
118
- .ir-factor-display {
119
- margin-top: 1rem;
120
- padding: 1rem;
121
- background: var(--ir-primary-light);
122
- border-radius: 0.75rem;
123
- border: 1px solid var(--ir-primary);
124
- display: flex;
125
- justify-content: space-between;
126
- align-items: center;
127
- }
128
-
129
- .ir-factor-label {
130
- font-size: 0.875rem;
131
- font-weight: 600;
132
- color: var(--ir-text-muted);
133
- }
134
-
135
- .ir-factor-value {
136
- font-size: 2rem;
137
- font-weight: 800;
138
- color: var(--ir-primary);
139
- }
140
-
141
- .ir-textarea-container {
142
- display: flex;
143
- flex-direction: column;
144
- height: 100%;
145
- gap: 0.5rem;
146
- }
147
-
148
- .ir-textarea {
149
- width: 100%;
150
- flex: 1;
151
- min-height: 200px;
152
- padding: 1rem;
153
- border-radius: 0.75rem;
154
- border: 1px solid var(--ir-border);
155
- background: var(--ir-bg-card);
156
- color: var(--ir-text-main);
157
- font-size: 0.875rem;
158
- resize: none;
159
- line-height: 1.6;
160
- transition: var(--ir-transition);
161
- }
162
-
163
- .ir-textarea:focus {
164
- outline: none;
165
- border-color: var(--ir-primary);
166
- box-shadow: 0 0 0 3px hsl(25deg, 95%, 53%, 0.1);
167
- }
168
-
169
- .ir-textarea::placeholder {
170
- color: var(--ir-text-disabled);
171
- }
172
-
173
- .ir-results-card {
174
- background: var(--ir-text-main);
175
- border-radius: 1.25rem;
176
- border: 1px solid var(--ir-border);
177
- overflow: hidden;
178
- box-shadow: var(--ir-shadow-md);
179
- }
180
-
181
- .ir-results-header {
182
- padding: 1rem 1.5rem;
183
- background: hsl(210deg, 30%, 15%);
184
- border-bottom: 1px solid hsl(210deg, 30%, 25%);
185
- display: flex;
186
- justify-content: space-between;
187
- align-items: center;
188
- }
189
-
190
- .theme-dark .ir-results-header {
191
- background: hsl(220deg, 25%, 8%);
192
- border-bottom-color: hsl(220deg, 25%, 20%);
193
- }
194
-
195
- .ir-results-title {
196
- color: var(--ir-bg-card);
197
- font-weight: 700;
198
- display: flex;
199
- align-items: center;
200
- gap: 0.5rem;
201
- }
202
-
203
- .ir-copy-btn {
204
- font-size: 0.75rem;
205
- background: hsl(210deg, 30%, 35%);
206
- color: var(--ir-bg-card);
207
- padding: 0.5rem 1rem;
208
- border-radius: 0.5rem;
209
- border: none;
210
- cursor: pointer;
211
- transition: var(--ir-transition);
212
- font-weight: 600;
213
- display: flex;
214
- align-items: center;
215
- gap: 0.5rem;
216
- }
217
-
218
- .theme-dark .ir-copy-btn {
219
- background: hsl(220deg, 25%, 30%);
220
- }
221
-
222
- .ir-copy-btn:hover {
223
- background: hsl(210deg, 30%, 45%);
224
- }
225
-
226
- .theme-dark .ir-copy-btn:hover {
227
- background: hsl(220deg, 25%, 40%);
228
- }
229
-
230
- .ir-copy-btn.ir-copied {
231
- background: var(--ir-success);
232
- }
233
-
234
- .ir-copy-btn.ir-copied:hover {
235
- background: hsl(142deg, 72%, 35%);
236
- }
237
-
238
- .ir-results-container {
239
- padding: 2rem;
240
- font-size: 1rem;
241
- display: flex;
242
- flex-direction: column;
243
- gap: 0.75rem;
244
- min-height: 200px;
245
- background: var(--ir-bg-card);
246
- color: var(--ir-text-main);
247
- }
248
-
249
- .ir-empty-state {
250
- height: 100%;
251
- display: flex;
252
- flex-direction: column;
253
- align-items: center;
254
- justify-content: center;
255
- gap: 1rem;
256
- opacity: 0.5;
257
- color: var(--ir-text-muted);
258
- }
259
-
260
- .ir-empty-icon {
261
- width: 3rem;
262
- height: 3rem;
263
- }
264
-
265
- .ir-result-row {
266
- display: flex;
267
- justify-content: space-between;
268
- align-items: center;
269
- background: var(--ir-bg-app);
270
- padding: 0.75rem;
271
- border-radius: 0.5rem;
272
- border-left: 4px solid transparent;
273
- transition: var(--ir-transition);
274
- }
275
-
276
- .ir-result-row:hover {
277
- background: var(--ir-primary-light);
278
- border-left-color: var(--ir-primary);
279
- }
280
-
281
- .ir-original-amount {
282
- color: var(--ir-text-disabled);
283
- font-size: 0.75rem;
284
- text-decoration: line-through;
285
- opacity: 0.75;
286
- max-width: 30%;
287
- overflow: hidden;
288
- text-overflow: ellipsis;
289
- }
290
-
291
- .ir-new-amount {
292
- font-weight: 500;
293
- color: var(--ir-text-main);
294
- }
295
-
296
- .ir-new-value {
297
- color: var(--ir-primary);
298
- font-weight: 800;
299
- font-size: 1.125rem;
300
- }
301
-
302
- .ir-no-amount-row {
303
- color: var(--ir-text-muted);
304
- font-style: italic;
305
- font-size: 0.875rem;
306
- padding: 0.5rem;
307
- background: transparent;
308
- }
@@ -1,325 +0,0 @@
1
- .kitchen-timer-wrapper {
2
- --kt-primary: #ea580c;
3
- --kt-secondary: #f97316;
4
- --kt-bg: #fff;
5
- --kt-bg-secondary: #f8fafc;
6
- --kt-border: #e2e8f0;
7
- --kt-text: #0f172a;
8
- --kt-text-muted: #64748b;
9
- --card-br: 1.5rem;
10
- }
11
-
12
- .theme-dark .kitchen-timer-wrapper {
13
- --kt-primary: #fb923c;
14
- --kt-secondary: #fdba74;
15
- --kt-bg: #0f172a;
16
- --kt-bg-secondary: #1e293b;
17
- --kt-border: #334155;
18
- --kt-text: #f8fafc;
19
- --kt-text-muted: #94a3b8;
20
- }
21
-
22
- .kitchen-timer-master-card {
23
- background: var(--kt-bg);
24
- border: 1px solid var(--kt-border);
25
- border-radius: var(--card-br);
26
- box-shadow: var(--sc-shadow-lg);
27
- overflow: hidden;
28
- }
29
-
30
- .timers-grid {
31
- display: grid;
32
- grid-template-columns: repeat(auto-fill, minmax(320px, 1fr));
33
- gap: 0;
34
- }
35
-
36
- .timer-card {
37
- background: transparent;
38
- border: none;
39
- border-right: 1px solid var(--kt-border);
40
- border-bottom: 1px solid var(--kt-border);
41
- border-radius: 0;
42
- position: relative;
43
- overflow: hidden;
44
- transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);
45
- box-shadow: none;
46
- }
47
-
48
- .timer-card:hover {
49
- transform: none;
50
- background: var(--kt-bg-secondary);
51
- }
52
-
53
- .progress-bar {
54
- position: absolute;
55
- top: 0;
56
- left: 0;
57
- width: 100%;
58
- height: 4px;
59
- background: var(--kt-bg-secondary);
60
- }
61
-
62
- .progress-fill {
63
- width: 100%;
64
- height: 100%;
65
- background: var(--kt-primary);
66
- transform-origin: left;
67
- transform: scaleX(0);
68
- transition: transform 0.1s linear;
69
- }
70
-
71
- .timer-content {
72
- padding: 1.5rem;
73
- }
74
-
75
- .timer-header {
76
- display: flex;
77
- justify-content: space-between;
78
- align-items: center;
79
- margin-bottom: 1.5rem;
80
- }
81
-
82
- .timer-name-wrapper {
83
- flex: 1;
84
- min-width: 0;
85
- margin-right: 0.5rem;
86
- }
87
-
88
- .timer-name {
89
- background: transparent;
90
- border: none;
91
- border-bottom: 2px solid transparent;
92
- font-weight: 700;
93
- font-size: 1.1rem;
94
- color: var(--kt-text);
95
- width: 100%;
96
- outline: none;
97
- transition: border-color 0.2s;
98
- white-space: nowrap;
99
- overflow: hidden;
100
- text-overflow: ellipsis;
101
- }
102
-
103
- .timer-name:focus {
104
- border-color: var(--kt-primary);
105
- }
106
-
107
- .status-badge {
108
- padding: 0.25rem 0.75rem;
109
- background: var(--kt-bg-secondary);
110
- border-radius: 2rem;
111
- font-size: 0.75rem;
112
- font-weight: 700;
113
- color: var(--kt-text-muted);
114
- border: 1px solid var(--kt-border);
115
- flex-shrink: 0;
116
- }
117
-
118
- .timer-display {
119
- display: flex;
120
- align-items: center;
121
- justify-content: center;
122
- gap: 1rem;
123
- margin: 2rem 0;
124
- }
125
-
126
- .time-input-group {
127
- display: flex;
128
- flex-direction: column;
129
- align-items: center;
130
- gap: 0.5rem;
131
- }
132
-
133
- .time-input {
134
- width: 80px;
135
- background: var(--kt-bg-secondary);
136
- border: 2px solid var(--kt-border);
137
- border-radius: 1rem;
138
- font-size: 2.5rem;
139
- font-weight: 900;
140
- text-align: center;
141
- color: var(--kt-text);
142
- padding: 0.5rem;
143
- outline: none;
144
- transition: all 0.2s;
145
- }
146
-
147
- .time-input:focus {
148
- border-color: var(--kt-primary);
149
- background: var(--kt-bg);
150
- }
151
-
152
- .time-label {
153
- font-size: 0.65rem;
154
- font-weight: 800;
155
- text-transform: uppercase;
156
- letter-spacing: 0.1em;
157
- color: var(--kt-text-muted);
158
- }
159
-
160
- .time-separator {
161
- font-size: 2rem;
162
- font-weight: 900;
163
- color: var(--kt-border);
164
- margin-top: -1.5rem;
165
- }
166
-
167
- .timer-controls {
168
- display: flex;
169
- flex-direction: column;
170
- gap: 1rem;
171
- }
172
-
173
- .timer-buttons {
174
- display: grid;
175
- grid-template-columns: 1fr 1fr;
176
- gap: 0.75rem;
177
- }
178
-
179
- .btn-toggle, .btn-reset {
180
- padding: 0.75rem;
181
- border-radius: 1rem;
182
- font-weight: 700;
183
- cursor: pointer;
184
- display: flex;
185
- align-items: center;
186
- justify-content: center;
187
- gap: 0.5rem;
188
- transition: all 0.2s;
189
- border: none;
190
- }
191
-
192
- .btn-toggle {
193
- background: var(--kt-primary);
194
- color: var(--kt-bg);
195
- }
196
-
197
- .btn-toggle:hover:not(:disabled) {
198
- background: var(--kt-secondary);
199
- transform: scale(1.02);
200
- }
201
-
202
- .btn-toggle:disabled {
203
- opacity: 0.5;
204
- cursor: not-allowed;
205
- }
206
-
207
- .btn-reset {
208
- background: var(--kt-bg-secondary);
209
- color: var(--kt-text);
210
- border: 1px solid var(--kt-border);
211
- }
212
-
213
- .btn-reset:hover {
214
- border-color: var(--kt-primary);
215
- }
216
-
217
- .timer-quick-buttons {
218
- display: flex;
219
- gap: 0.5rem;
220
- }
221
-
222
- .timer-quick-buttons button {
223
- flex: 1;
224
- padding: 0.5rem;
225
- border-radius: 0.75rem;
226
- background: var(--kt-bg-secondary);
227
- border: 1px solid var(--kt-border);
228
- font-size: 0.8rem;
229
- font-weight: 600;
230
- color: var(--kt-text-muted);
231
- cursor: pointer;
232
- transition: all 0.2s;
233
- }
234
-
235
- .timer-quick-buttons button:hover {
236
- color: var(--kt-primary);
237
- border-color: var(--kt-primary);
238
- }
239
-
240
- .add-timer-container {
241
- padding: 1.5rem 2.5rem;
242
- display: flex;
243
- align-items: center;
244
- justify-content: space-between;
245
- background: var(--kt-bg-secondary);
246
- border-top: 1px solid var(--kt-border);
247
- gap: 1.5rem;
248
- }
249
-
250
- .add-timer-btn {
251
- background: var(--kt-primary);
252
- border: none;
253
- border-radius: 1rem;
254
- width: auto;
255
- padding: 0.75rem 2rem;
256
- height: auto;
257
- display: flex;
258
- flex-direction: row;
259
- align-items: center;
260
- justify-content: center;
261
- gap: 0.75rem;
262
- color: var(--kt-bg);
263
- font-weight: 700;
264
- font-size: 1rem;
265
- cursor: pointer;
266
- transition: all 0.2s;
267
- box-shadow: 0 4px 6px -1px rgba(234, 88, 12, 0.2);
268
- }
269
-
270
- .add-timer-btn:hover {
271
- background: var(--kt-secondary);
272
- transform: translateY(-2px);
273
- box-shadow: 0 10px 15px -3px rgba(234, 88, 12, 0.3);
274
- }
275
-
276
- .add-timer-icon {
277
- font-size: 1.25rem;
278
- display: flex;
279
- align-items: center;
280
- }
281
-
282
- .stop-all-container {
283
- flex-shrink: 0;
284
- }
285
-
286
- .stop-all-btn {
287
- background: #1e293b;
288
- padding: 0.75rem 1.5rem;
289
- border-radius: 1rem;
290
- color: var(--kt-bg);
291
- border: 1px solid rgba(255, 255, 255, 0.1);
292
- font-weight: 700;
293
- font-size: 0.9rem;
294
- display: flex;
295
- align-items: center;
296
- gap: 0.5rem;
297
- cursor: pointer;
298
- transition: all 0.2s;
299
- }
300
-
301
- .stop-all-btn:hover {
302
- background: #000;
303
- transform: translateY(-2px);
304
- }
305
-
306
- .timer-card.finished {
307
- animation: pulse-border 1.5s infinite;
308
- }
309
-
310
- @keyframes pulse-border {
311
- 0% {
312
- border-color: var(--kt-primary);
313
- box-shadow: 0 0 0 0 rgba(234, 88, 12, 0.4);
314
- }
315
- 70% {
316
- border-color: var(--kt-secondary);
317
- box-shadow: 0 0 0 15px rgba(234, 88, 12, 0);
318
- }
319
- 100% {
320
- border-color: var(--kt-primary);
321
- box-shadow: 0 0 0 0 rgba(234, 88, 12, 0);
322
- }
323
- }
324
-
325
-