@jjlmoya/utils-tools 1.10.0 → 1.11.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.
@@ -38,118 +38,3 @@ const { previewLabel, copyBtn, resetBtn } = Astro.props;
38
38
  </div>
39
39
  </div>
40
40
 
41
- <style>
42
- .tpc-preview-section {
43
- display: flex;
44
- flex-direction: column;
45
- gap: 1.25rem;
46
- height: 100%;
47
- }
48
-
49
- .tpc-preview-header {
50
- display: flex;
51
- justify-content: space-between;
52
- align-items: center;
53
- }
54
-
55
- .tpc-label {
56
- font-size: 0.75rem;
57
- font-weight: 700;
58
- color: var(--tpc-text-label);
59
- text-transform: uppercase;
60
- letter-spacing: 0.06em;
61
- }
62
-
63
- .tpc-canvas-container {
64
- position: relative;
65
- background: var(--tpc-canvas-bg);
66
- border-radius: 1.25rem;
67
- border: 1px solid var(--tpc-field-border);
68
- min-height: 12rem;
69
- overflow: hidden;
70
- display: flex;
71
- align-items: center;
72
- justify-content: center;
73
- }
74
-
75
- .tpc-canvas-overlay {
76
- position: absolute;
77
- inset: 0;
78
- background-image: radial-gradient(rgba(0,0,0,0.05) 1px, transparent 1px);
79
- background-size: 20px 20px;
80
- pointer-events: none;
81
- }
82
-
83
- :global(.theme-dark) .tpc-canvas-overlay {
84
- background-image: radial-gradient(rgba(255,255,255,0.03) 1px, transparent 1px);
85
- }
86
-
87
- .tpc-canvas-wrap {
88
- width: 100%;
89
- height: 100%;
90
- display: flex;
91
- align-items: center;
92
- justify-content: center;
93
- }
94
-
95
- .tpc-canvas {
96
- width: 100%;
97
- height: 12rem;
98
- display: block;
99
- }
100
-
101
- .tpc-actions {
102
- display: flex;
103
- gap: 1rem;
104
- margin-top: auto;
105
- }
106
-
107
- .tpc-btn {
108
- flex: 1;
109
- display: flex;
110
- align-items: center;
111
- justify-content: center;
112
- gap: 0.75rem;
113
- padding: 1rem;
114
- border-radius: 1rem;
115
- font-size: 0.9375rem;
116
- font-weight: 700;
117
- cursor: pointer;
118
- border: none;
119
- transition: all 0.2s cubic-bezier(0.4, 0, 0.2, 1);
120
- }
121
-
122
- .tpc-btn-icon {
123
- width: 1.25rem;
124
- height: 1.25rem;
125
- }
126
-
127
- .tpc-btn-primary {
128
- background: linear-gradient(135deg, var(--tpc-cyan) 0%, var(--tpc-cyan-dark) 100%);
129
- color: #fff;
130
- box-shadow: 0 4px 12px rgba(6, 182, 212, 0.2);
131
- }
132
-
133
- .tpc-btn-primary:hover {
134
- transform: translateY(-2px);
135
- box-shadow: 0 8px 20px rgba(6, 182, 212, 0.3);
136
- }
137
-
138
- .tpc-btn-primary:active {
139
- transform: translateY(0);
140
- }
141
-
142
- .tpc-btn-secondary {
143
- background: var(--tpc-btn-secondary-bg);
144
- color: var(--tpc-btn-secondary-color);
145
- }
146
-
147
- .tpc-btn-secondary:hover {
148
- background: rgba(0, 0, 0, 0.1);
149
- transform: translateY(-2px);
150
- }
151
-
152
- :global(.theme-dark) .tpc-btn-secondary:hover {
153
- background: rgba(255, 255, 255, 0.1);
154
- }
155
- </style>
@@ -23,65 +23,3 @@ const { widthLabel, charsLabel } = Astro.props;
23
23
  </div>
24
24
  </div>
25
25
 
26
- <style>
27
- .tpc-stats {
28
- display: grid;
29
- grid-template-columns: 1fr 1fr;
30
- gap: 1rem;
31
- padding: 1.5rem 0;
32
- }
33
-
34
- .tpc-stat-card {
35
- position: relative;
36
- background: rgba(255, 255, 255, 0.4);
37
- border: 1px solid rgba(0, 0, 0, 0.05);
38
- border-radius: 1.25rem;
39
- padding: 1.25rem;
40
- overflow: hidden;
41
- transition: transform 0.2s;
42
- }
43
-
44
- :global(.theme-dark) .tpc-stat-card {
45
- background: rgba(15, 23, 42, 0.6);
46
- border-color: rgba(255, 255, 255, 0.05);
47
- }
48
-
49
- .tpc-stat-card:hover {
50
- transform: translateY(-2px);
51
- }
52
-
53
- .tpc-stat-inner {
54
- position: relative;
55
- z-index: 1;
56
- display: flex;
57
- flex-direction: column;
58
- align-items: center;
59
- gap: 0.25rem;
60
- }
61
-
62
- .tpc-stat-value {
63
- font-size: 2.5rem;
64
- font-weight: 800;
65
- color: var(--tpc-cyan);
66
- line-height: 1.1;
67
- font-family: 'JetBrains Mono', monospace;
68
- }
69
-
70
- .tpc-stat-label {
71
- font-size: 0.625rem;
72
- font-weight: 700;
73
- color: var(--tpc-text-label);
74
- text-transform: uppercase;
75
- letter-spacing: 0.1em;
76
- }
77
-
78
- .tpc-stat-glow {
79
- position: absolute;
80
- top: -50%;
81
- left: -50%;
82
- width: 200%;
83
- height: 200%;
84
- background: radial-gradient(circle, rgba(6, 182, 212, 0.1) 0%, transparent 70%);
85
- pointer-events: none;
86
- }
87
- </style>
@@ -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
+ }