@jjlmoya/utils-tools 1.10.0 → 1.12.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.
@@ -21,7 +21,7 @@
21
21
  margin: 0 auto;
22
22
  }
23
23
 
24
- :global(.theme-dark) .tpc-root {
24
+ .theme-dark .tpc-root {
25
25
  --tpc-card-bg: #1e293b;
26
26
  --tpc-card-border: rgba(255, 255, 255, 0.05);
27
27
  --tpc-field-bg: #0f172a;
@@ -91,4 +91,317 @@
91
91
 
92
92
  .tpc-toast-show {
93
93
  transform: translateX(-50%) translateY(0);
94
- }
94
+ }
95
+ /* Editor.astro */
96
+ .tpc-editor {
97
+ display: flex;
98
+ flex-direction: column;
99
+ gap: 1.5rem;
100
+ }
101
+
102
+ .tpc-field {
103
+ display: flex;
104
+ flex-direction: column;
105
+ gap: 0.625rem;
106
+ }
107
+
108
+ .tpc-label {
109
+ font-size: 0.75rem;
110
+ font-weight: 700;
111
+ color: var(--tpc-text-label);
112
+ text-transform: uppercase;
113
+ letter-spacing: 0.06em;
114
+ }
115
+
116
+ .tpc-textarea {
117
+ width: 100%;
118
+ background: var(--tpc-field-bg);
119
+ border: 1px solid var(--tpc-field-border);
120
+ border-radius: 1rem;
121
+ padding: 1.25rem;
122
+ font-size: 1.125rem;
123
+ color: var(--tpc-text-main);
124
+ line-height: 1.6;
125
+ resize: none;
126
+ outline: none;
127
+ transition: all 0.2s cubic-bezier(0.4, 0, 0.2, 1);
128
+ box-sizing: border-box;
129
+ }
130
+
131
+ .tpc-textarea:focus {
132
+ border-color: var(--tpc-cyan);
133
+ box-shadow: 0 0 0 4px var(--tpc-cyan-focus);
134
+ background: #fff;
135
+ }
136
+
137
+ .theme-dark .tpc-textarea:focus {
138
+ background: var(--tpc-field-bg);
139
+ }
140
+
141
+ .tpc-config-grid {
142
+ display: grid;
143
+ grid-template-columns: repeat(2, 1fr);
144
+ gap: 1.25rem;
145
+ }
146
+
147
+ .tpc-input {
148
+ width: 100%;
149
+ background: var(--tpc-field-bg);
150
+ border: 1px solid var(--tpc-field-border);
151
+ border-radius: 0.875rem;
152
+ padding: 0.75rem 1rem;
153
+ font-size: 0.9375rem;
154
+ color: var(--tpc-text-main);
155
+ outline: none;
156
+ transition: all 0.2s ease;
157
+ box-sizing: border-box;
158
+ appearance: none;
159
+ }
160
+
161
+ .tpc-input:focus {
162
+ border-color: var(--tpc-cyan);
163
+ box-shadow: 0 0 0 4px var(--tpc-cyan-focus);
164
+ }
165
+
166
+ .tpc-select-wrapper {
167
+ position: relative;
168
+ width: 100%;
169
+ }
170
+
171
+ .tpc-select-arrow {
172
+ position: absolute;
173
+ right: 1rem;
174
+ top: 50%;
175
+ transform: translateY(-50%);
176
+ pointer-events: none;
177
+ color: var(--tpc-text-label);
178
+ width: 1.25rem;
179
+ height: 1.25rem;
180
+ }
181
+
182
+ .tpc-checkbox-label {
183
+ display: flex;
184
+ align-items: center;
185
+ gap: 0.75rem;
186
+ cursor: pointer;
187
+ user-select: none;
188
+ height: 100%;
189
+ padding-top: 1.5rem;
190
+ }
191
+
192
+ .tpc-checkbox-input {
193
+ display: none;
194
+ }
195
+
196
+ .tpc-checkbox-box {
197
+ width: 1.5rem;
198
+ height: 1.5rem;
199
+ border: 2px solid var(--tpc-checkbox-border);
200
+ background: var(--tpc-checkbox-bg);
201
+ border-radius: 0.5rem;
202
+ position: relative;
203
+ flex-shrink: 0;
204
+ transition: all 0.2s cubic-bezier(0.4, 0, 0.2, 1);
205
+ }
206
+
207
+ .tpc-checked .tpc-checkbox-box {
208
+ background: var(--tpc-cyan);
209
+ border-color: var(--tpc-cyan);
210
+ transform: scale(1.05);
211
+ }
212
+
213
+ .tpc-checked .tpc-checkbox-box::after {
214
+ content: '';
215
+ position: absolute;
216
+ left: 50%;
217
+ top: 45%;
218
+ width: 6px;
219
+ height: 11px;
220
+ border: solid #fff;
221
+ border-width: 0 2.5px 2.5px 0;
222
+ transform: translate(-50%, -50%) rotate(45deg);
223
+ }
224
+
225
+ .tpc-italic-text {
226
+ font-size: 0.9375rem;
227
+ font-weight: 600;
228
+ color: var(--tpc-text-main);
229
+ }
230
+
231
+ @media (max-width: 480px) {
232
+ .tpc-config-grid {
233
+ grid-template-columns: 1fr;
234
+ }
235
+ .tpc-field-italic {
236
+ padding-top: 0;
237
+ }
238
+ }
239
+
240
+ /* Preview.astro */
241
+ .tpc-preview-section {
242
+ display: flex;
243
+ flex-direction: column;
244
+ gap: 1.25rem;
245
+ height: 100%;
246
+ }
247
+
248
+ .tpc-preview-header {
249
+ display: flex;
250
+ justify-content: space-between;
251
+ align-items: center;
252
+ }
253
+
254
+ .tpc-canvas-container {
255
+ position: relative;
256
+ background: var(--tpc-canvas-bg);
257
+ border-radius: 1.25rem;
258
+ border: 1px solid var(--tpc-field-border);
259
+ min-height: 12rem;
260
+ overflow: hidden;
261
+ display: flex;
262
+ align-items: center;
263
+ justify-content: center;
264
+ }
265
+
266
+ .tpc-canvas-overlay {
267
+ position: absolute;
268
+ inset: 0;
269
+ background-image: radial-gradient(rgba(0,0,0,0.05) 1px, transparent 1px);
270
+ background-size: 20px 20px;
271
+ pointer-events: none;
272
+ }
273
+
274
+ .theme-dark .tpc-canvas-overlay {
275
+ background-image: radial-gradient(rgba(255,255,255,0.03) 1px, transparent 1px);
276
+ }
277
+
278
+ .tpc-canvas-wrap {
279
+ width: 100%;
280
+ height: 100%;
281
+ display: flex;
282
+ align-items: center;
283
+ justify-content: center;
284
+ }
285
+
286
+ .tpc-canvas {
287
+ width: 100%;
288
+ height: 12rem;
289
+ display: block;
290
+ }
291
+
292
+ .tpc-actions {
293
+ display: flex;
294
+ gap: 1rem;
295
+ margin-top: auto;
296
+ }
297
+
298
+ .tpc-btn {
299
+ flex: 1;
300
+ display: flex;
301
+ align-items: center;
302
+ justify-content: center;
303
+ gap: 0.75rem;
304
+ padding: 1rem;
305
+ border-radius: 1rem;
306
+ font-size: 0.9375rem;
307
+ font-weight: 700;
308
+ cursor: pointer;
309
+ border: none;
310
+ transition: all 0.2s cubic-bezier(0.4, 0, 0.2, 1);
311
+ }
312
+
313
+ .tpc-btn-icon {
314
+ width: 1.25rem;
315
+ height: 1.25rem;
316
+ }
317
+
318
+ .tpc-btn-primary {
319
+ background: linear-gradient(135deg, var(--tpc-cyan) 0%, var(--tpc-cyan-dark) 100%);
320
+ color: #fff;
321
+ box-shadow: 0 4px 12px rgba(6, 182, 212, 0.2);
322
+ }
323
+
324
+ .tpc-btn-primary:hover {
325
+ transform: translateY(-2px);
326
+ box-shadow: 0 8px 20px rgba(6, 182, 212, 0.3);
327
+ }
328
+
329
+ .tpc-btn-primary:active {
330
+ transform: translateY(0);
331
+ }
332
+
333
+ .tpc-btn-secondary {
334
+ background: var(--tpc-btn-secondary-bg);
335
+ color: var(--tpc-btn-secondary-color);
336
+ }
337
+
338
+ .tpc-btn-secondary:hover {
339
+ background: rgba(0, 0, 0, 0.1);
340
+ transform: translateY(-2px);
341
+ }
342
+
343
+ .theme-dark .tpc-btn-secondary:hover {
344
+ background: rgba(255, 255, 255, 0.1);
345
+ }
346
+
347
+ /* Stats.astro */
348
+ .tpc-stats {
349
+ display: grid;
350
+ grid-template-columns: 1fr 1fr;
351
+ gap: 1rem;
352
+ padding: 1.5rem 0;
353
+ }
354
+
355
+ .tpc-stat-card {
356
+ position: relative;
357
+ background: rgba(255, 255, 255, 0.4);
358
+ border: 1px solid rgba(0, 0, 0, 0.05);
359
+ border-radius: 1.25rem;
360
+ padding: 1.25rem;
361
+ overflow: hidden;
362
+ transition: transform 0.2s;
363
+ }
364
+
365
+ .theme-dark .tpc-stat-card {
366
+ background: rgba(15, 23, 42, 0.6);
367
+ border-color: rgba(255, 255, 255, 0.05);
368
+ }
369
+
370
+ .tpc-stat-card:hover {
371
+ transform: translateY(-2px);
372
+ }
373
+
374
+ .tpc-stat-inner {
375
+ position: relative;
376
+ z-index: 1;
377
+ display: flex;
378
+ flex-direction: column;
379
+ align-items: center;
380
+ gap: 0.25rem;
381
+ }
382
+
383
+ .tpc-stat-value {
384
+ font-size: 2.5rem;
385
+ font-weight: 800;
386
+ color: var(--tpc-cyan);
387
+ line-height: 1.1;
388
+ font-family: 'JetBrains Mono', monospace;
389
+ }
390
+
391
+ .tpc-stat-label {
392
+ font-size: 0.625rem;
393
+ font-weight: 700;
394
+ color: var(--tpc-text-label);
395
+ text-transform: uppercase;
396
+ letter-spacing: 0.1em;
397
+ }
398
+
399
+ .tpc-stat-glow {
400
+ position: absolute;
401
+ top: -50%;
402
+ left: -50%;
403
+ width: 200%;
404
+ height: 200%;
405
+ background: radial-gradient(circle, rgba(6, 182, 212, 0.1) 0%, transparent 70%);
406
+ pointer-events: none;
407
+ }
@@ -29,7 +29,7 @@
29
29
  gap: 1.25rem;
30
30
  }
31
31
 
32
- :global(.theme-dark) .wl-root {
32
+ .theme-dark .wl-root {
33
33
  --wl-panel-bg: #0f172a;
34
34
  --wl-panel-border: #1e293b;
35
35
  --wl-field-bg: rgba(30, 41, 59, 0.5);
@@ -197,7 +197,7 @@
197
197
  color: var(--wl-green-dark);
198
198
  }
199
199
 
200
- :global(.theme-dark) .wl-result-label {
200
+ .theme-dark .wl-result-label {
201
201
  color: var(--wl-green);
202
202
  }
203
203