nuxtseo-shared 0.1.9 → 0.3.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.
Files changed (55) hide show
  1. package/dist/content.d.mts +37 -37
  2. package/dist/content.d.ts +75 -0
  3. package/dist/content.mjs +31 -55
  4. package/dist/devtools.d.mts +10 -10
  5. package/dist/devtools.d.ts +14 -0
  6. package/dist/devtools.mjs +43 -37
  7. package/dist/i18n.d.mts +19 -19
  8. package/dist/i18n.d.ts +44 -0
  9. package/dist/i18n.mjs +117 -105
  10. package/dist/kit.d.mts +29 -14
  11. package/dist/kit.d.ts +57 -0
  12. package/dist/kit.mjs +105 -77
  13. package/dist/module.d.mts +4 -13
  14. package/dist/module.d.ts +5 -0
  15. package/dist/module.json +12 -0
  16. package/dist/module.mjs +31 -32
  17. package/dist/pro.d.mts +2 -16
  18. package/dist/pro.d.ts +3 -0
  19. package/dist/pro.mjs +66 -68
  20. package/dist/runtime/pure.d.ts +0 -0
  21. package/dist/runtime/pure.js +36 -0
  22. package/dist/runtime/server/kit.d.ts +0 -0
  23. package/dist/runtime/server/kit.js +22 -0
  24. package/dist/telemetry.d.mts +4 -4
  25. package/dist/telemetry.d.ts +11 -0
  26. package/dist/telemetry.mjs +58 -45
  27. package/dist/types.d.mts +7 -0
  28. package/package.json +25 -21
  29. package/src/runtime/pure.ts +57 -0
  30. package/src/runtime/server/kit.ts +26 -0
  31. package/dist/index.d.mts +0 -3
  32. package/dist/index.mjs +0 -3
  33. package/dist/layer-devtools/app.config.ts +0 -27
  34. package/dist/layer-devtools/assets/css/global.css +0 -593
  35. package/dist/layer-devtools/components/DevtoolsAlert.vue +0 -101
  36. package/dist/layer-devtools/components/DevtoolsCopyButton.vue +0 -20
  37. package/dist/layer-devtools/components/DevtoolsDocs.vue +0 -11
  38. package/dist/layer-devtools/components/DevtoolsEmptyState.vue +0 -105
  39. package/dist/layer-devtools/components/DevtoolsError.vue +0 -78
  40. package/dist/layer-devtools/components/DevtoolsKeyValue.vue +0 -109
  41. package/dist/layer-devtools/components/DevtoolsLayout.vue +0 -219
  42. package/dist/layer-devtools/components/DevtoolsLoading.vue +0 -8
  43. package/dist/layer-devtools/components/DevtoolsMetric.vue +0 -96
  44. package/dist/layer-devtools/components/DevtoolsPanel.vue +0 -74
  45. package/dist/layer-devtools/components/DevtoolsProductionError.vue +0 -41
  46. package/dist/layer-devtools/components/DevtoolsSection.vue +0 -139
  47. package/dist/layer-devtools/components/DevtoolsSnippet.vue +0 -51
  48. package/dist/layer-devtools/components/DevtoolsToolbar.vue +0 -42
  49. package/dist/layer-devtools/components/NuxtSeoLogo.vue +0 -77
  50. package/dist/layer-devtools/components/OCodeBlock.vue +0 -23
  51. package/dist/layer-devtools/composables/clipboard.ts +0 -21
  52. package/dist/layer-devtools/composables/rpc.ts +0 -39
  53. package/dist/layer-devtools/composables/shiki.ts +0 -46
  54. package/dist/layer-devtools/composables/state.ts +0 -33
  55. package/dist/layer-devtools/nuxt.config.ts +0 -26
@@ -1,593 +0,0 @@
1
- @import "tailwindcss";
2
- @import "@nuxt/ui";
3
-
4
- @theme {
5
- --font-sans: 'Hubot Sans', ui-sans-serif, system-ui, sans-serif;
6
- --font-mono: 'Fira Code', ui-monospace, monospace;
7
-
8
- /* Neutral palette, true gray with minimal chroma */
9
- --color-neutral-50: oklch(98% 0.002 260);
10
- --color-neutral-100: oklch(96% 0.003 260);
11
- --color-neutral-200: oklch(91% 0.005 260);
12
- --color-neutral-300: oklch(85% 0.008 260);
13
- --color-neutral-400: oklch(65% 0.015 260);
14
- --color-neutral-500: oklch(50% 0.018 260);
15
- --color-neutral-600: oklch(40% 0.015 260);
16
- --color-neutral-700: oklch(30% 0.012 260);
17
- --color-neutral-800: oklch(20% 0.01 260);
18
- --color-neutral-900: oklch(14% 0.008 260);
19
- --color-neutral-950: oklch(9% 0.005 260);
20
- }
21
-
22
- :root {
23
- /* Brand colors - Nuxt SEO green */
24
- --seo-green: oklch(65% 0.2 145);
25
-
26
- /* Semantic colors */
27
- --color-surface: var(--color-neutral-50);
28
- --color-surface-elevated: white;
29
- --color-surface-sunken: var(--color-neutral-100);
30
- --color-border: var(--color-neutral-200);
31
- --color-border-subtle: var(--color-neutral-100);
32
- --color-text: var(--color-neutral-900);
33
- --color-text-muted: var(--color-neutral-500);
34
- --color-text-subtle: var(--color-neutral-400);
35
-
36
- --radius-sm: 6px;
37
- --radius-md: 10px;
38
- --radius-lg: 14px;
39
- }
40
-
41
- .dark {
42
- --color-surface: var(--color-neutral-950);
43
- --color-surface-elevated: var(--color-neutral-900);
44
- --color-surface-sunken: oklch(7% 0.004 260);
45
- --color-border: var(--color-neutral-800);
46
- --color-border-subtle: oklch(16% 0.008 260);
47
- --color-text: var(--color-neutral-100);
48
- --color-text-muted: var(--color-neutral-400);
49
- --color-text-subtle: var(--color-neutral-500);
50
- }
51
-
52
- /* Base styles */
53
- body {
54
- -webkit-font-smoothing: antialiased;
55
- -moz-osx-font-smoothing: grayscale;
56
- font-family: var(--font-sans);
57
- font-feature-settings: 'liga' 1, 'calt' 1;
58
- background: var(--color-surface);
59
- color: var(--color-text);
60
- line-height: 1.6;
61
- }
62
-
63
- /* Typography */
64
- p, h1, h2, h3, h4, h5, h6 {
65
- overflow-wrap: break-word;
66
- }
67
-
68
- p {
69
- text-wrap: pretty;
70
- }
71
-
72
- h1, h2, h3, h4, h5, h6 {
73
- text-wrap: balance;
74
- font-weight: 600;
75
- letter-spacing: -0.01em;
76
- }
77
-
78
- /* Scrollbar styling */
79
- * {
80
- scrollbar-width: thin;
81
- scrollbar-color: oklch(50% 0.015 260 / 0.25) transparent;
82
- }
83
-
84
- ::-webkit-scrollbar {
85
- width: 8px;
86
- height: 8px;
87
- }
88
-
89
- ::-webkit-scrollbar-track {
90
- background: transparent;
91
- }
92
-
93
- ::-webkit-scrollbar-thumb {
94
- background-color: oklch(50% 0.015 260 / 0.25);
95
- border-radius: 4px;
96
- border: 2px solid transparent;
97
- background-clip: content-box;
98
- }
99
-
100
- ::-webkit-scrollbar-thumb:hover {
101
- background-color: oklch(50% 0.015 260 / 0.4);
102
- }
103
-
104
- .dark ::-webkit-scrollbar-thumb {
105
- background-color: oklch(55% 0.015 260 / 0.2);
106
- }
107
-
108
- .dark ::-webkit-scrollbar-thumb:hover {
109
- background-color: oklch(55% 0.015 260 / 0.35);
110
- }
111
-
112
- /* Gradient background effect */
113
- .gradient-bg {
114
- position: fixed;
115
- inset: 0;
116
- z-index: -1;
117
- pointer-events: none;
118
- opacity: 0.6;
119
- background:
120
- radial-gradient(ellipse 80% 50% at 50% -20%, oklch(85% 0.12 145 / 0.15), transparent),
121
- radial-gradient(ellipse 60% 40% at 100% 0%, oklch(80% 0.1 200 / 0.08), transparent);
122
- }
123
-
124
- .dark .gradient-bg {
125
- opacity: 0.4;
126
- background:
127
- radial-gradient(ellipse 80% 50% at 50% -20%, oklch(40% 0.1 145 / 0.2), transparent),
128
- radial-gradient(ellipse 60% 40% at 100% 0%, oklch(35% 0.08 200 / 0.15), transparent);
129
- }
130
-
131
- /* Animation utilities */
132
- @keyframes fade-up {
133
- from {
134
- opacity: 0;
135
- transform: translateY(8px);
136
- }
137
- to {
138
- opacity: 1;
139
- transform: translateY(0);
140
- }
141
- }
142
-
143
- @keyframes scale-in {
144
- from {
145
- opacity: 0;
146
- transform: scale(0.95);
147
- }
148
- to {
149
- opacity: 1;
150
- transform: scale(1);
151
- }
152
- }
153
-
154
- @keyframes spin {
155
- from { transform: rotate(0deg); }
156
- to { transform: rotate(360deg); }
157
- }
158
-
159
- .animate-fade-up {
160
- animation: fade-up 400ms cubic-bezier(0.22, 1, 0.36, 1) forwards;
161
- }
162
-
163
- .animate-scale-in {
164
- animation: scale-in 300ms cubic-bezier(0.22, 1, 0.36, 1) forwards;
165
- }
166
-
167
- .animate-spin {
168
- animation: spin 1s linear infinite;
169
- }
170
-
171
- /* Stagger children animations */
172
- .stagger-children > * {
173
- animation: fade-up 400ms cubic-bezier(0.22, 1, 0.36, 1) backwards;
174
- }
175
- .stagger-children > *:nth-child(1) { animation-delay: 0ms; }
176
- .stagger-children > *:nth-child(2) { animation-delay: 50ms; }
177
- .stagger-children > *:nth-child(3) { animation-delay: 100ms; }
178
- .stagger-children > *:nth-child(4) { animation-delay: 150ms; }
179
- .stagger-children > *:nth-child(5) { animation-delay: 200ms; }
180
- .stagger-children > *:nth-child(6) { animation-delay: 250ms; }
181
-
182
- /* Focus styles */
183
- :focus-visible {
184
- outline: 2px solid var(--seo-green);
185
- outline-offset: 2px;
186
- }
187
-
188
- /* Base backgrounds */
189
- .bg-base {
190
- background: var(--color-surface);
191
- }
192
-
193
- /* Card styling */
194
- .card {
195
- background: var(--color-surface-elevated);
196
- border: 1px solid var(--color-border);
197
- border-radius: var(--radius-lg);
198
- transition: border-color 200ms cubic-bezier(0.22, 1, 0.36, 1), box-shadow 200ms cubic-bezier(0.22, 1, 0.36, 1);
199
- }
200
-
201
- .card:hover {
202
- border-color: var(--color-neutral-300);
203
- box-shadow: 0 4px 20px oklch(0% 0 0 / 0.06);
204
- }
205
-
206
- .dark .card:hover {
207
- border-color: var(--color-neutral-700);
208
- box-shadow: 0 4px 20px oklch(0% 0 0 / 0.3);
209
- }
210
-
211
- /* Glass effect */
212
- .glass {
213
- background: oklch(100% 0 0 / 0.8);
214
- backdrop-filter: blur(16px) saturate(180%);
215
- -webkit-backdrop-filter: blur(16px) saturate(180%);
216
- }
217
-
218
- .dark .glass {
219
- background: oklch(9% 0.005 260 / 0.85);
220
- }
221
-
222
- /* Code block styling */
223
- .code-block {
224
- background: var(--color-surface-sunken);
225
- border: 1px solid var(--color-border-subtle);
226
- border-radius: var(--radius-md);
227
- overflow-x: auto;
228
- font-family: var(--font-mono);
229
- font-size: 13px;
230
- line-height: 1.7;
231
- }
232
-
233
- .code-block .shiki {
234
- background: transparent !important;
235
- }
236
-
237
- .dark .shiki,
238
- .dark .shiki span {
239
- color: var(--shiki-dark) !important;
240
- background-color: transparent !important;
241
- }
242
-
243
- .code-block-lines .shiki code .line::before {
244
- display: none;
245
- }
246
-
247
- /* Status indicators */
248
- .status-enabled {
249
- display: inline-flex;
250
- align-items: center;
251
- gap: 0.375rem;
252
- padding: 0.25rem 0.625rem;
253
- font-size: 0.75rem;
254
- font-weight: 500;
255
- border-radius: var(--radius-sm);
256
- background: oklch(75% 0.15 145 / 0.12);
257
- color: oklch(50% 0.15 145);
258
- }
259
-
260
- .dark .status-enabled {
261
- background: oklch(50% 0.15 145 / 0.15);
262
- color: oklch(75% 0.18 145);
263
- }
264
-
265
- .status-disabled {
266
- display: inline-flex;
267
- align-items: center;
268
- gap: 0.375rem;
269
- padding: 0.25rem 0.625rem;
270
- font-size: 0.75rem;
271
- font-weight: 500;
272
- border-radius: var(--radius-sm);
273
- background: oklch(65% 0.12 25 / 0.1);
274
- color: oklch(55% 0.15 25);
275
- }
276
-
277
- .dark .status-disabled {
278
- background: oklch(45% 0.1 25 / 0.15);
279
- color: oklch(70% 0.12 25);
280
- }
281
-
282
- /* Link with external indicator */
283
- .link-external {
284
- display: inline-flex;
285
- align-items: center;
286
- gap: 0.25rem;
287
- color: var(--seo-green);
288
- text-decoration: none;
289
- font-weight: 500;
290
- transition: all 150ms ease;
291
- }
292
-
293
- .link-external:hover {
294
- text-decoration: underline;
295
- text-underline-offset: 2px;
296
- }
297
-
298
- .link-external::after {
299
- content: '\2197';
300
- font-size: 0.75em;
301
- opacity: 0.6;
302
- transition: transform 150ms ease;
303
- }
304
-
305
- .link-external:hover::after {
306
- transform: translate(1px, -1px);
307
- opacity: 1;
308
- }
309
-
310
- /* Hint/tip callout */
311
- .hint-callout {
312
- display: flex;
313
- gap: 0.75rem;
314
- padding: 0.875rem 1rem;
315
- border-radius: var(--radius-md);
316
- background: oklch(85% 0.08 200 / 0.08);
317
- border: 1px solid oklch(70% 0.08 200 / 0.15);
318
- }
319
-
320
- .dark .hint-callout {
321
- background: oklch(30% 0.05 200 / 0.15);
322
- border-color: oklch(45% 0.06 200 / 0.2);
323
- }
324
-
325
- .hint-callout-icon {
326
- flex-shrink: 0;
327
- color: oklch(55% 0.12 200);
328
- }
329
-
330
- .dark .hint-callout-icon {
331
- color: oklch(70% 0.1 200);
332
- }
333
-
334
- /* Panel grid pattern background with radial fade */
335
- .panel-grids {
336
- background-color: var(--color-surface-sunken);
337
- position: relative;
338
- }
339
-
340
- .panel-grids::before {
341
- content: '';
342
- position: absolute;
343
- inset: 0;
344
- z-index: 0;
345
- background-image:
346
- linear-gradient(var(--color-border-subtle) 1px, transparent 1px),
347
- linear-gradient(90deg, var(--color-border-subtle) 1px, transparent 1px);
348
- background-size: 24px 24px;
349
- background-position: -1px -1px;
350
- mask-image: radial-gradient(ellipse 80% 70% at 50% 50%, black 20%, transparent 70%);
351
- -webkit-mask-image: radial-gradient(ellipse 80% 70% at 50% 50%, black 20%, transparent 70%);
352
- pointer-events: none;
353
- }
354
-
355
- .panel-grids > * {
356
- position: relative;
357
- z-index: 1;
358
- }
359
-
360
- /* Reduced motion */
361
- @media (prefers-reduced-motion: reduce) {
362
- .animate-fade-up,
363
- .animate-scale-in,
364
- .animate-spin,
365
- .stagger-children > * {
366
- animation: none;
367
- }
368
- }
369
-
370
- /* Subtle text selection */
371
- ::selection {
372
- background: oklch(65% 0.2 145 / 0.25);
373
- }
374
-
375
- .dark ::selection {
376
- background: oklch(65% 0.2 145 / 0.35);
377
- }
378
-
379
- /* ---- DevtoolsLayout ---- */
380
-
381
- /* Base HTML for devtools */
382
- html {
383
- font-family: var(--font-sans);
384
- overflow-y: scroll;
385
- overscroll-behavior: none;
386
- }
387
-
388
- body {
389
- min-height: 100vh;
390
- }
391
-
392
- html.dark {
393
- color-scheme: dark;
394
- }
395
-
396
- /* Header */
397
- .devtools-header {
398
- border-bottom: 1px solid var(--color-border);
399
- }
400
-
401
- .devtools-header-content {
402
- display: flex;
403
- justify-content: space-between;
404
- align-items: center;
405
- padding: 0.625rem 1rem;
406
- max-width: 80rem;
407
- margin: 0 auto;
408
- width: 100%;
409
- }
410
-
411
- @media (min-width: 640px) {
412
- .devtools-header-content {
413
- padding: 0.75rem 1.25rem;
414
- }
415
- }
416
-
417
- .devtools-divider {
418
- width: 1px;
419
- height: 1.25rem;
420
- background: var(--color-border);
421
- }
422
-
423
- .devtools-brand-icon {
424
- display: flex;
425
- align-items: center;
426
- justify-content: center;
427
- width: 1.75rem;
428
- height: 1.75rem;
429
- border-radius: var(--radius-sm);
430
- background: oklch(65% 0.2 145 / 0.12);
431
- color: var(--seo-green);
432
- }
433
-
434
- /* Navigation tabs */
435
- .devtools-nav-tabs {
436
- display: flex;
437
- align-items: center;
438
- gap: 0.125rem;
439
- padding: 0.25rem;
440
- border-radius: var(--radius-md);
441
- background: var(--color-surface-sunken);
442
- border: 1px solid var(--color-border-subtle);
443
- }
444
-
445
- .devtools-nav-tab {
446
- position: relative;
447
- border-radius: var(--radius-sm);
448
- transition: background 150ms cubic-bezier(0.22, 1, 0.36, 1), box-shadow 150ms cubic-bezier(0.22, 1, 0.36, 1);
449
- }
450
-
451
- .devtools-nav-tab-inner {
452
- display: flex;
453
- align-items: center;
454
- gap: 0.375rem;
455
- padding: 0.375rem 0.5rem;
456
- color: var(--color-text-muted);
457
- font-size: 0.8125rem;
458
- font-weight: 500;
459
- }
460
-
461
- @media (min-width: 640px) {
462
- .devtools-nav-tab-inner {
463
- padding: 0.375rem 0.75rem;
464
- }
465
- }
466
-
467
- .devtools-nav-tab:hover .devtools-nav-tab-inner {
468
- color: var(--color-text);
469
- }
470
-
471
- .devtools-nav-tab.active {
472
- background: var(--color-surface-elevated);
473
- box-shadow: 0 1px 3px oklch(0% 0 0 / 0.08);
474
- }
475
-
476
- .dark .devtools-nav-tab.active {
477
- box-shadow: 0 1px 3px oklch(0% 0 0 / 0.3);
478
- }
479
-
480
- .devtools-nav-tab.active .devtools-nav-tab-inner {
481
- color: var(--color-text);
482
- }
483
-
484
- .devtools-nav-label {
485
- display: none;
486
- }
487
-
488
- @media (min-width: 640px) {
489
- .devtools-nav-label {
490
- display: inline;
491
- }
492
- }
493
-
494
- .devtools-nav-action {
495
- color: var(--color-text-muted) !important;
496
- }
497
-
498
- .devtools-nav-action:hover {
499
- color: var(--color-text) !important;
500
- background: var(--color-surface-sunken) !important;
501
- }
502
-
503
- /* Preview source toggle */
504
- .devtools-preview-toggle {
505
- display: flex;
506
- gap: 1px;
507
- background: var(--color-border);
508
- border-radius: 6px;
509
- overflow: hidden;
510
- }
511
-
512
- .devtools-preview-btn {
513
- display: flex;
514
- align-items: center;
515
- gap: 0.25rem;
516
- padding: 0.25rem 0.5rem;
517
- font-size: 0.6875rem;
518
- font-weight: 500;
519
- color: var(--color-text-muted);
520
- background: var(--color-surface-sunken);
521
- border: none;
522
- cursor: pointer;
523
- transition: color 150ms, background 150ms;
524
- white-space: nowrap;
525
- }
526
-
527
- .devtools-preview-btn:hover {
528
- color: var(--color-text);
529
- background: var(--color-surface-elevated);
530
- }
531
-
532
- .devtools-preview-btn.active {
533
- color: var(--color-text);
534
- background: var(--color-surface-elevated);
535
- box-shadow: 0 1px 2px oklch(0% 0 0 / 0.06);
536
- }
537
-
538
- .dark .devtools-preview-btn.active {
539
- box-shadow: 0 1px 2px oklch(0% 0 0 / 0.2);
540
- }
541
-
542
- /* Production URL badge */
543
- .devtools-production-badge {
544
- display: inline-flex;
545
- align-items: center;
546
- gap: 0.375rem;
547
- padding: 0.125rem 0.5rem;
548
- border-radius: 9999px;
549
- background: oklch(85% 0.12 145 / 0.12);
550
- color: oklch(45% 0.15 145);
551
- font-weight: 500;
552
- font-family: var(--font-mono, ui-monospace, monospace);
553
- }
554
-
555
- .dark .devtools-production-badge {
556
- background: oklch(35% 0.08 145 / 0.2);
557
- color: oklch(75% 0.12 145);
558
- }
559
-
560
- .devtools-production-dot {
561
- width: 6px;
562
- height: 6px;
563
- border-radius: 50%;
564
- background: oklch(65% 0.2 145);
565
- animation: pulse-dot 2s ease-in-out infinite;
566
- }
567
-
568
- @keyframes pulse-dot {
569
- 0%, 100% { opacity: 1; }
570
- 50% { opacity: 0.4; }
571
- }
572
-
573
- /* Main content wrapper */
574
- .devtools-main {
575
- flex: 1;
576
- display: flex;
577
- flex-direction: column;
578
- padding: 0.75rem;
579
- min-height: calc(100vh - 60px);
580
- }
581
-
582
- @media (min-width: 640px) {
583
- .devtools-main {
584
- padding: 1rem;
585
- }
586
- }
587
-
588
- @media (max-height: 600px) {
589
- .devtools-main {
590
- padding: 0;
591
- min-height: 0;
592
- }
593
- }
@@ -1,101 +0,0 @@
1
- <script setup lang="ts">
2
- const {
3
- icon,
4
- variant = 'info',
5
- } = defineProps<{
6
- icon?: string
7
- variant?: 'info' | 'warning' | 'success' | 'production'
8
- }>()
9
-
10
- const defaultIcons: Record<string, string> = {
11
- info: 'carbon:information',
12
- warning: 'carbon:warning',
13
- success: 'carbon:checkmark-outline',
14
- production: 'carbon:cloud',
15
- }
16
- </script>
17
-
18
- <template>
19
- <div class="devtools-alert" :class="`devtools-alert-${variant}`" role="status">
20
- <UIcon :name="icon || defaultIcons[variant]" class="devtools-alert-icon" aria-hidden="true" />
21
- <div class="devtools-alert-content">
22
- <slot />
23
- </div>
24
- <div v-if="$slots.action" class="devtools-alert-action">
25
- <slot name="action" />
26
- </div>
27
- </div>
28
- </template>
29
-
30
- <style scoped>
31
- .devtools-alert {
32
- display: flex;
33
- align-items: center;
34
- gap: 0.5rem;
35
- padding: 0.5rem 1rem;
36
- font-size: 0.8125rem;
37
- border-bottom: 1px solid var(--color-border);
38
- }
39
-
40
- .devtools-alert-icon {
41
- flex-shrink: 0;
42
- }
43
-
44
- .devtools-alert-content {
45
- flex: 1;
46
- min-width: 0;
47
- }
48
-
49
- .devtools-alert-action {
50
- margin-left: auto;
51
- flex-shrink: 0;
52
- }
53
-
54
- /* Info */
55
- .devtools-alert-info {
56
- background: oklch(85% 0.1 230 / 0.1);
57
- color: oklch(55% 0.12 230);
58
- border-bottom-color: oklch(75% 0.1 230 / 0.2);
59
- }
60
-
61
- .dark .devtools-alert-info {
62
- background: oklch(45% 0.1 230 / 0.15);
63
- color: oklch(80% 0.1 230);
64
- }
65
-
66
- /* Warning */
67
- .devtools-alert-warning {
68
- background: oklch(85% 0.12 85 / 0.1);
69
- color: oklch(55% 0.15 85);
70
- border-bottom-color: oklch(75% 0.12 85 / 0.2);
71
- }
72
-
73
- .dark .devtools-alert-warning {
74
- background: oklch(45% 0.12 85 / 0.15);
75
- color: oklch(80% 0.12 85);
76
- }
77
-
78
- /* Success */
79
- .devtools-alert-success {
80
- background: oklch(75% 0.15 145 / 0.12);
81
- color: oklch(50% 0.15 145);
82
- border-bottom-color: oklch(65% 0.12 145 / 0.2);
83
- }
84
-
85
- .dark .devtools-alert-success {
86
- background: oklch(50% 0.15 145 / 0.15);
87
- color: oklch(75% 0.18 145);
88
- }
89
-
90
- /* Production */
91
- .devtools-alert-production {
92
- background: oklch(85% 0.12 145 / 0.1);
93
- color: oklch(45% 0.15 145);
94
- border-bottom-color: oklch(75% 0.12 145 / 0.2);
95
- }
96
-
97
- .dark .devtools-alert-production {
98
- background: oklch(35% 0.08 145 / 0.15);
99
- color: oklch(75% 0.12 145);
100
- }
101
- </style>
@@ -1,20 +0,0 @@
1
- <script setup lang="ts">
2
- import { useCopy } from '../composables/clipboard'
3
-
4
- const { text } = defineProps<{
5
- text: string
6
- }>()
7
-
8
- const { copy, copied } = useCopy()
9
- </script>
10
-
11
- <template>
12
- <UTooltip :text="copied ? 'Copied!' : 'Copy'">
13
- <UButton
14
- :icon="copied ? 'carbon:checkmark' : 'carbon:copy'"
15
- :aria-label="copied ? 'Copied' : 'Copy to clipboard'"
16
- :class="copied ? 'text-[var(--seo-green)]' : ''"
17
- @click="copy(text)"
18
- />
19
- </UTooltip>
20
- </template>
@@ -1,11 +0,0 @@
1
- <script setup lang="ts">
2
- const { url } = defineProps<{
3
- url: string
4
- }>()
5
- </script>
6
-
7
- <template>
8
- <div class="h-full max-h-full overflow-hidden">
9
- <iframe :src="url" :title="`Documentation - ${url}`" class="w-full h-full border-none" style="min-height: calc(100vh - 100px);" />
10
- </div>
11
- </template>