@geenius/seo 0.1.0 → 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 (126) hide show
  1. package/package.json +16 -3
  2. package/packages/convex/dist/index.d.ts +56 -0
  3. package/packages/convex/dist/index.js +133 -0
  4. package/packages/convex/dist/index.js.map +1 -0
  5. package/packages/react/README.md +1 -1
  6. package/packages/react/dist/index.d.ts +156 -0
  7. package/packages/react/dist/index.js +567 -0
  8. package/packages/react/dist/index.js.map +1 -0
  9. package/packages/react-css/README.md +1 -1
  10. package/packages/react-css/dist/index.cjs +571 -0
  11. package/packages/react-css/dist/index.cjs.map +1 -0
  12. package/packages/react-css/{src/seo.css → dist/index.css} +7 -153
  13. package/packages/react-css/dist/index.css.map +1 -0
  14. package/packages/react-css/dist/index.d.cts +53 -0
  15. package/packages/react-css/dist/index.d.ts +53 -0
  16. package/packages/react-css/dist/index.js +539 -0
  17. package/packages/react-css/dist/index.js.map +1 -0
  18. package/packages/shared/README.md +1 -1
  19. package/packages/shared/dist/index.d.ts +262 -0
  20. package/packages/shared/dist/index.js +381 -0
  21. package/packages/shared/dist/index.js.map +1 -0
  22. package/packages/solidjs/README.md +1 -1
  23. package/packages/solidjs/dist/index.d.ts +133 -0
  24. package/packages/solidjs/dist/index.js +416 -0
  25. package/packages/solidjs/dist/index.js.map +1 -0
  26. package/packages/solidjs-css/README.md +1 -1
  27. package/packages/solidjs-css/dist/index.cjs +399 -0
  28. package/packages/solidjs-css/dist/index.cjs.map +1 -0
  29. package/packages/solidjs-css/{src/seo.css → dist/index.css} +7 -153
  30. package/packages/solidjs-css/dist/index.css.map +1 -0
  31. package/packages/solidjs-css/dist/index.d.cts +53 -0
  32. package/packages/solidjs-css/dist/index.d.ts +53 -0
  33. package/packages/solidjs-css/dist/index.js +367 -0
  34. package/packages/solidjs-css/dist/index.js.map +1 -0
  35. package/.changeset/config.json +0 -11
  36. package/.github/CODEOWNERS +0 -1
  37. package/.github/ISSUE_TEMPLATE/bug_report.md +0 -16
  38. package/.github/ISSUE_TEMPLATE/feature_request.md +0 -11
  39. package/.github/PULL_REQUEST_TEMPLATE.md +0 -10
  40. package/.github/dependabot.yml +0 -11
  41. package/.github/workflows/ci.yml +0 -23
  42. package/.github/workflows/release.yml +0 -29
  43. package/.nvmrc +0 -1
  44. package/.project/ACCOUNT.yaml +0 -4
  45. package/.project/IDEAS.yaml +0 -7
  46. package/.project/PROJECT.yaml +0 -11
  47. package/.project/ROADMAP.yaml +0 -15
  48. package/CODE_OF_CONDUCT.md +0 -16
  49. package/CONTRIBUTING.md +0 -26
  50. package/SECURITY.md +0 -15
  51. package/SUPPORT.md +0 -8
  52. package/packages/convex/package.json +0 -42
  53. package/packages/convex/src/functions.ts +0 -5
  54. package/packages/convex/src/mutations.ts +0 -83
  55. package/packages/convex/src/queries.ts +0 -57
  56. package/packages/convex/src/schema.ts +0 -23
  57. package/packages/convex/tsconfig.json +0 -19
  58. package/packages/convex/tsup.config.ts +0 -18
  59. package/packages/react/package.json +0 -49
  60. package/packages/react/src/components/ArticleJsonLd.tsx +0 -42
  61. package/packages/react/src/components/BreadcrumbsJsonLd.tsx +0 -24
  62. package/packages/react/src/components/MetaEditor.tsx +0 -147
  63. package/packages/react/src/components/SEOHead.tsx +0 -107
  64. package/packages/react/src/components/SEOPreview.tsx +0 -42
  65. package/packages/react/src/components/SEOScoreCard.tsx +0 -51
  66. package/packages/react/src/components/SitemapViewer.tsx +0 -36
  67. package/packages/react/src/components/index.ts +0 -7
  68. package/packages/react/src/hooks/index.ts +0 -4
  69. package/packages/react/src/hooks/useSEO.ts +0 -27
  70. package/packages/react/src/hooks/useSEOAdmin.ts +0 -42
  71. package/packages/react/src/hooks/useSEOScore.ts +0 -7
  72. package/packages/react/src/hooks/useSitemap.ts +0 -8
  73. package/packages/react/src/index.ts +0 -51
  74. package/packages/react/src/index.tsx +0 -11
  75. package/packages/react/src/pages/SEOAdminPage.tsx +0 -101
  76. package/packages/react/src/pages/SEOAnalyticsPage.tsx +0 -96
  77. package/packages/react/src/pages/index.ts +0 -2
  78. package/packages/react/tsconfig.json +0 -19
  79. package/packages/react/tsup.config.ts +0 -12
  80. package/packages/react-css/package.json +0 -36
  81. package/packages/react-css/src/components/ArticleJsonLd.tsx +0 -42
  82. package/packages/react-css/src/components/BreadcrumbsJsonLd.tsx +0 -24
  83. package/packages/react-css/src/components/MetaEditor.tsx +0 -147
  84. package/packages/react-css/src/components/SEOHead.tsx +0 -95
  85. package/packages/react-css/src/components/SEOPreview.tsx +0 -42
  86. package/packages/react-css/src/components/SEOScoreCard.tsx +0 -42
  87. package/packages/react-css/src/components/SitemapViewer.tsx +0 -36
  88. package/packages/react-css/src/components/index.ts +0 -7
  89. package/packages/react-css/src/index.ts +0 -9
  90. package/packages/react-css/src/pages/SEOAdminPage.tsx +0 -88
  91. package/packages/react-css/src/pages/SEOAnalyticsPage.tsx +0 -82
  92. package/packages/react-css/src/pages/index.ts +0 -2
  93. package/packages/react-css/tsup.config.ts +0 -2
  94. package/packages/shared/package.json +0 -42
  95. package/packages/shared/src/__tests__/seo.test.ts +0 -70
  96. package/packages/shared/src/config.ts +0 -297
  97. package/packages/shared/src/index.ts +0 -207
  98. package/packages/shared/tsconfig.json +0 -18
  99. package/packages/shared/tsup.config.ts +0 -11
  100. package/packages/shared/vitest.config.ts +0 -4
  101. package/packages/solidjs/package.json +0 -45
  102. package/packages/solidjs/src/components/ArticleJsonLd.tsx +0 -35
  103. package/packages/solidjs/src/components/BreadcrumbsJsonLd.tsx +0 -24
  104. package/packages/solidjs/src/components/MetaEditor.tsx +0 -155
  105. package/packages/solidjs/src/components/SEOHead.tsx +0 -109
  106. package/packages/solidjs/src/components/SEOPreview.tsx +0 -42
  107. package/packages/solidjs/src/components/SEOScoreCard.tsx +0 -57
  108. package/packages/solidjs/src/components/SitemapViewer.tsx +0 -44
  109. package/packages/solidjs/src/components/index.ts +0 -7
  110. package/packages/solidjs/src/index.ts +0 -11
  111. package/packages/solidjs/src/pages/SEOAdminPage.tsx +0 -104
  112. package/packages/solidjs/src/pages/SEOAnalyticsPage.tsx +0 -102
  113. package/packages/solidjs/src/pages/index.ts +0 -2
  114. package/packages/solidjs/src/primitives/index.ts +0 -4
  115. package/packages/solidjs/src/primitives/useSEO.ts +0 -27
  116. package/packages/solidjs/src/primitives/useSEOAdmin.ts +0 -42
  117. package/packages/solidjs/src/primitives/useSEOScore.ts +0 -7
  118. package/packages/solidjs/src/primitives/useSitemap.ts +0 -8
  119. package/packages/solidjs/tsconfig.json +0 -20
  120. package/packages/solidjs/tsup.config.ts +0 -12
  121. package/packages/solidjs-css/package.json +0 -35
  122. package/packages/solidjs-css/src/index.ts +0 -5
  123. package/packages/solidjs-css/src/primitives/index.ts +0 -1
  124. package/packages/solidjs-css/tsup.config.ts +0 -2
  125. package/pnpm-workspace.yaml +0 -2
  126. package/tsconfig.json +0 -23
@@ -1,7 +1,5 @@
1
- /* geenius-seo BEM Components with OKLCH Design Tokens */
2
-
1
+ /* src/seo.css */
3
2
  :root {
4
- /* Color Palette */
5
3
  --seo-bg: oklch(0.10 0.01 250);
6
4
  --seo-surface: oklch(0.13 0.01 250);
7
5
  --seo-surface-2: oklch(0.16 0.01 250);
@@ -12,27 +10,17 @@
12
10
  --seo-text-secondary: oklch(0.75 0.01 250);
13
11
  --seo-text-muted: oklch(0.65 0.01 250);
14
12
  --seo-text-dim: oklch(0.55 0.01 250);
15
-
16
- /* Accent Colors */
17
13
  --seo-accent: oklch(0.65 0.20 265);
18
14
  --seo-accent-light: oklch(0.75 0.15 265);
19
15
  --seo-accent-dark: oklch(0.55 0.22 265);
20
-
21
- /* SEO Score Colors */
22
16
  --seo-score-good: oklch(0.72 0.20 145);
23
17
  --seo-score-fair: oklch(0.78 0.18 75);
24
18
  --seo-score-poor: oklch(0.60 0.25 25);
25
-
26
- /* Google Preview */
27
19
  --seo-google-url: oklch(0.55 0.15 155);
28
20
  --seo-google-title: oklch(0.65 0.20 265);
29
21
  --seo-google-desc: oklch(0.50 0.05 0);
30
-
31
- /* Social Preview */
32
22
  --seo-social-bg: oklch(0.08 0.01 250);
33
23
  --seo-social-text: oklch(1.0 0 0);
34
-
35
- /* Spacing & Sizing */
36
24
  --seo-radius: 0.75rem;
37
25
  --seo-radius-lg: 1rem;
38
26
  --seo-radius-sm: 0.5rem;
@@ -44,39 +32,26 @@
44
32
  --seo-gap-lg: 2rem;
45
33
  --seo-gap-sm: 0.75rem;
46
34
  }
47
-
48
- /* ────────────────────────────────────────────────────────────────── */
49
- /* SEO HEAD (Hidden Utility) */
50
- /* ────────────────────────────────────────────────────────────────── */
51
-
52
35
  .seo__head {
53
36
  display: none;
54
37
  }
55
-
56
- /* ────────────────────────────────────────────────────────────────── */
57
- /* SEO PREVIEW */
58
- /* ────────────────────────────────────────────────────────────────── */
59
-
60
38
  .seo__preview {
61
39
  display: flex;
62
40
  flex-direction: column;
63
41
  gap: var(--seo-gap);
64
42
  }
65
-
66
43
  .seo__preview-google {
67
44
  border: 1px solid var(--seo-border);
68
45
  border-radius: var(--seo-radius);
69
46
  background: var(--seo-surface);
70
47
  padding: 1rem;
71
48
  }
72
-
73
49
  .seo__preview-google-url {
74
50
  font-size: 0.75rem;
75
51
  color: var(--seo-google-url);
76
52
  margin-bottom: 0.5rem;
77
53
  text-decoration: none;
78
54
  }
79
-
80
55
  .seo__preview-google-title {
81
56
  font-size: 1.125rem;
82
57
  color: var(--seo-google-title);
@@ -88,11 +63,9 @@
88
63
  white-space: nowrap;
89
64
  font-weight: 500;
90
65
  }
91
-
92
66
  .seo__preview-google-title:hover {
93
67
  color: var(--seo-accent-light);
94
68
  }
95
-
96
69
  .seo__preview-google-desc {
97
70
  font-size: 0.875rem;
98
71
  color: var(--seo-google-desc);
@@ -101,26 +74,22 @@
101
74
  -webkit-box-orient: vertical;
102
75
  overflow: hidden;
103
76
  }
104
-
105
77
  .seo__preview-social {
106
78
  background: var(--seo-social-bg);
107
79
  border-radius: var(--seo-radius);
108
80
  overflow: hidden;
109
81
  max-width: 28rem;
110
82
  }
111
-
112
83
  .seo__preview-social-image {
113
84
  width: 100%;
114
85
  height: 12rem;
115
86
  object-fit: cover;
116
87
  display: block;
117
88
  }
118
-
119
89
  .seo__preview-social-info {
120
90
  padding: 0.75rem;
121
91
  color: var(--seo-social-text);
122
92
  }
123
-
124
93
  .seo__preview-social-title {
125
94
  font-weight: 600;
126
95
  font-size: 0.875rem;
@@ -129,7 +98,6 @@
129
98
  white-space: nowrap;
130
99
  margin-bottom: 0.25rem;
131
100
  }
132
-
133
101
  .seo__preview-social-desc {
134
102
  font-size: 0.75rem;
135
103
  color: oklch(0.7 0.01 0 / 0.8);
@@ -139,7 +107,6 @@
139
107
  overflow: hidden;
140
108
  margin-bottom: 0.25rem;
141
109
  }
142
-
143
110
  .seo__preview-social-url {
144
111
  font-size: 0.75rem;
145
112
  color: oklch(0.6 0.01 0 / 0.7);
@@ -147,11 +114,6 @@
147
114
  text-overflow: ellipsis;
148
115
  white-space: nowrap;
149
116
  }
150
-
151
- /* ────────────────────────────────────────────────────────────────── */
152
- /* SEO SCORE CARD */
153
- /* ────────────────────────────────────────────────────────────────── */
154
-
155
117
  .seo__score-card {
156
118
  border: 1px solid var(--seo-border);
157
119
  border-radius: var(--seo-radius);
@@ -161,67 +123,54 @@
161
123
  flex-direction: column;
162
124
  gap: 1rem;
163
125
  }
164
-
165
126
  .seo__score-card-header {
166
127
  display: flex;
167
128
  align-items: center;
168
129
  justify-content: space-between;
169
130
  }
170
-
171
131
  .seo__score-card-title {
172
132
  font-weight: 600;
173
133
  color: var(--seo-text);
174
134
  font-size: 0.875rem;
175
135
  }
176
-
177
136
  .seo__score-number {
178
137
  font-size: 1.5rem;
179
138
  font-weight: 700;
180
139
  }
181
-
182
140
  .seo__score-number--good {
183
141
  color: var(--seo-score-good);
184
142
  }
185
-
186
143
  .seo__score-number--fair {
187
144
  color: var(--seo-score-fair);
188
145
  }
189
-
190
146
  .seo__score-number--poor {
191
147
  color: var(--seo-score-poor);
192
148
  }
193
-
194
149
  .seo__score-bar {
195
150
  height: 0.5rem;
196
151
  background: var(--seo-surface-2);
197
152
  border-radius: 9999px;
198
153
  overflow: hidden;
199
154
  }
200
-
201
155
  .seo__score-bar-fill {
202
156
  height: 100%;
203
157
  border-radius: 9999px;
204
158
  transition: width var(--seo-transition);
205
159
  }
206
-
207
160
  .seo__score-bar-fill--good {
208
161
  background: var(--seo-score-good);
209
162
  }
210
-
211
163
  .seo__score-bar-fill--fair {
212
164
  background: var(--seo-score-fair);
213
165
  }
214
-
215
166
  .seo__score-bar-fill--poor {
216
167
  background: var(--seo-score-poor);
217
168
  }
218
-
219
169
  .seo__issue-list {
220
170
  display: flex;
221
171
  flex-direction: column;
222
172
  gap: 0.5rem;
223
173
  }
224
-
225
174
  .seo__issue-list-title {
226
175
  font-weight: 600;
227
176
  font-size: 0.75rem;
@@ -229,7 +178,6 @@
229
178
  text-transform: uppercase;
230
179
  letter-spacing: 0.05em;
231
180
  }
232
-
233
181
  .seo__issue-item {
234
182
  font-size: 0.75rem;
235
183
  color: var(--seo-score-poor);
@@ -237,15 +185,9 @@
237
185
  align-items: flex-start;
238
186
  gap: 0.5rem;
239
187
  }
240
-
241
188
  .seo__issue-item-bullet {
242
189
  flex-shrink: 0;
243
190
  }
244
-
245
- /* ────────────────────────────────────────────────────────────────── */
246
- /* META EDITOR */
247
- /* ────────────────────────────────────────────────────────────────── */
248
-
249
191
  .seo__meta-editor {
250
192
  border: 1px solid var(--seo-border);
251
193
  border-radius: var(--seo-radius);
@@ -255,19 +197,16 @@
255
197
  flex-direction: column;
256
198
  gap: 1.5rem;
257
199
  }
258
-
259
200
  .seo__meta-field {
260
201
  display: flex;
261
202
  flex-direction: column;
262
203
  gap: 0.5rem;
263
204
  }
264
-
265
205
  .seo__meta-field-label {
266
206
  font-weight: 600;
267
207
  color: var(--seo-text);
268
208
  font-size: 0.875rem;
269
209
  }
270
-
271
210
  .seo__meta-field-input,
272
211
  .seo__meta-field-textarea,
273
212
  .seo__meta-field-select {
@@ -281,7 +220,6 @@
281
220
  font-family: inherit;
282
221
  transition: border-color var(--seo-transition), background-color var(--seo-transition);
283
222
  }
284
-
285
223
  .seo__meta-field-input:focus,
286
224
  .seo__meta-field-textarea:focus,
287
225
  .seo__meta-field-select:focus {
@@ -290,39 +228,29 @@
290
228
  background: var(--seo-surface-3);
291
229
  box-shadow: 0 0 0 3px oklch(0.65 0.20 265 / 0.2);
292
230
  }
293
-
294
231
  .seo__meta-field-textarea {
295
232
  resize: vertical;
296
233
  min-height: 6rem;
297
234
  font-family: inherit;
298
235
  }
299
-
300
236
  .seo__meta-char-count {
301
237
  font-size: 0.75rem;
302
238
  color: var(--seo-text-muted);
303
239
  }
304
-
305
240
  .seo__meta-char-count--over {
306
241
  color: var(--seo-score-poor);
307
242
  font-weight: 600;
308
243
  }
309
-
310
- /* ────────────────────────────────────────────────────────────────── */
311
- /* SITEMAP TABLE */
312
- /* ────────────────────────────────────────────────────────────────── */
313
-
314
244
  .seo__sitemap-table {
315
245
  width: 100%;
316
246
  font-size: 0.875rem;
317
247
  border-collapse: collapse;
318
248
  background: var(--seo-surface);
319
249
  }
320
-
321
250
  .seo__sitemap-table-head {
322
251
  background: var(--seo-surface-2);
323
252
  border-bottom: 1px solid var(--seo-border);
324
253
  }
325
-
326
254
  .seo__sitemap-table-header {
327
255
  padding: 0.75rem;
328
256
  text-align: left;
@@ -332,57 +260,40 @@
332
260
  text-transform: uppercase;
333
261
  letter-spacing: 0.05em;
334
262
  }
335
-
336
263
  .seo__sitemap-row {
337
264
  border-bottom: 1px solid var(--seo-border-2);
338
265
  transition: background-color var(--seo-transition);
339
266
  }
340
-
341
267
  .seo__sitemap-row:hover {
342
268
  background: var(--seo-surface-2);
343
269
  }
344
-
345
270
  .seo__sitemap-cell {
346
271
  padding: 0.75rem;
347
272
  color: var(--seo-text);
348
273
  }
349
-
350
274
  .seo__sitemap-url {
351
- font-family: 'Monaco', 'Menlo', 'Ubuntu Mono', monospace;
275
+ font-family:
276
+ "Monaco",
277
+ "Menlo",
278
+ "Ubuntu Mono",
279
+ monospace;
352
280
  font-size: 0.75rem;
353
281
  color: var(--seo-accent);
354
282
  text-decoration: none;
355
283
  word-break: break-all;
356
284
  }
357
-
358
285
  .seo__sitemap-url:hover {
359
286
  text-decoration: underline;
360
287
  }
361
-
362
288
  .seo__sitemap-cell-muted {
363
289
  color: var(--seo-text-muted);
364
290
  }
365
-
366
- /* ────────────────────────────────────────────────────────────────── */
367
- /* BREADCRUMBS JSON-LD */
368
- /* ────────────────────────────────────────────────────────────────── */
369
-
370
291
  .seo__breadcrumbs {
371
292
  display: none;
372
293
  }
373
-
374
- /* ────────────────────────────────────────────────────────────────── */
375
- /* ARTICLE JSON-LD */
376
- /* ────────────────────────────────────────────────────────────────── */
377
-
378
294
  .seo__article-jsonld {
379
295
  display: none;
380
296
  }
381
-
382
- /* ────────────────────────────────────────────────────────────────── */
383
- /* BUTTONS */
384
- /* ────────────────────────────────────────────────────────────────── */
385
-
386
297
  .seo__button {
387
298
  padding: 0.5rem 1rem;
388
299
  border: none;
@@ -397,96 +308,76 @@
397
308
  justify-content: center;
398
309
  gap: 0.5rem;
399
310
  }
400
-
401
311
  .seo__button:disabled {
402
312
  opacity: 0.5;
403
313
  cursor: not-allowed;
404
314
  }
405
-
406
315
  .seo__button--primary {
407
316
  background: var(--seo-accent);
408
317
  color: var(--seo-text);
409
318
  }
410
-
411
319
  .seo__button--primary:hover:not(:disabled) {
412
320
  background: var(--seo-accent-light);
413
321
  box-shadow: var(--seo-shadow-sm);
414
322
  }
415
-
416
323
  .seo__button--success {
417
324
  background: var(--seo-score-good);
418
325
  color: var(--seo-text);
419
326
  }
420
-
421
327
  .seo__button--success:hover:not(:disabled) {
422
328
  background: oklch(0.78 0.22 145);
423
329
  box-shadow: var(--seo-shadow-sm);
424
330
  }
425
-
426
331
  .seo__button--danger {
427
332
  background: var(--seo-score-poor);
428
333
  color: var(--seo-text);
429
334
  }
430
-
431
335
  .seo__button--danger:hover:not(:disabled) {
432
336
  background: oklch(0.65 0.28 25);
433
337
  box-shadow: var(--seo-shadow-sm);
434
338
  }
435
-
436
339
  .seo__button--secondary {
437
340
  background: var(--seo-surface-2);
438
341
  color: var(--seo-text);
439
342
  border: 1px solid var(--seo-border);
440
343
  }
441
-
442
344
  .seo__button--secondary:hover:not(:disabled) {
443
345
  background: var(--seo-surface-3);
444
346
  border-color: var(--seo-accent);
445
347
  }
446
-
447
- /* ────────────────────────────────────────────────────────────────── */
448
- /* ADMIN PAGE */
449
- /* ────────────────────────────────────────────────────────────────── */
450
-
451
348
  .seo__admin-container {
452
349
  max-width: 90rem;
453
350
  margin: 0 auto;
454
351
  padding: var(--seo-gap);
455
352
  }
456
-
457
353
  .seo__admin-title {
458
354
  font-size: 1.875rem;
459
355
  font-weight: 700;
460
356
  color: var(--seo-text);
461
357
  margin-bottom: var(--seo-gap);
462
358
  }
463
-
464
359
  .seo__admin-grid {
465
360
  display: grid;
466
361
  grid-template-columns: repeat(auto-fit, minmax(20rem, 1fr));
467
362
  gap: var(--seo-gap);
468
363
  }
469
-
470
364
  .seo__admin-sidebar {
471
365
  border: 1px solid var(--seo-border);
472
366
  border-radius: var(--seo-radius);
473
367
  background: var(--seo-surface);
474
368
  padding: 1rem;
475
369
  }
476
-
477
370
  .seo__admin-sidebar-title {
478
371
  font-weight: 600;
479
372
  color: var(--seo-text);
480
373
  margin-bottom: 1rem;
481
374
  font-size: 0.875rem;
482
375
  }
483
-
484
376
  .seo__admin-page-list {
485
377
  display: flex;
486
378
  flex-direction: column;
487
379
  gap: 0.5rem;
488
380
  }
489
-
490
381
  .seo__admin-page-button {
491
382
  padding: 0.5rem;
492
383
  border: none;
@@ -498,66 +389,52 @@
498
389
  font-size: 0.875rem;
499
390
  transition: all var(--seo-transition);
500
391
  }
501
-
502
392
  .seo__admin-page-button:hover {
503
393
  background: var(--seo-surface-2);
504
394
  }
505
-
506
395
  .seo__admin-page-button--active {
507
396
  background: var(--seo-accent);
508
397
  color: var(--seo-bg);
509
398
  font-weight: 600;
510
399
  }
511
-
512
400
  .seo__admin-editor {
513
401
  display: grid;
514
402
  grid-template-columns: repeat(auto-fit, minmax(25rem, 1fr));
515
403
  gap: var(--seo-gap);
516
404
  }
517
-
518
405
  .seo__admin-actions {
519
406
  display: flex;
520
407
  gap: 0.75rem;
521
408
  margin-top: var(--seo-gap);
522
409
  }
523
-
524
- /* ────────────────────────────────────────────────────────────────── */
525
- /* ANALYTICS PAGE */
526
- /* ────────────────────────────────────────────────────────────────── */
527
-
528
410
  .seo__analytics-container {
529
411
  max-width: 90rem;
530
412
  margin: 0 auto;
531
413
  padding: var(--seo-gap);
532
414
  }
533
-
534
415
  .seo__analytics-title {
535
416
  font-size: 1.875rem;
536
417
  font-weight: 700;
537
418
  color: var(--seo-text);
538
419
  margin-bottom: var(--seo-gap);
539
420
  }
540
-
541
421
  .seo__analytics-table-wrapper {
542
422
  border: 1px solid var(--seo-border);
543
423
  border-radius: var(--seo-radius);
544
424
  overflow: hidden;
545
425
  }
546
-
547
426
  .seo__analytics-summary {
548
427
  display: grid;
549
428
  grid-template-columns: repeat(auto-fit, minmax(15rem, 1fr));
550
429
  gap: 1rem;
551
430
  margin-top: var(--seo-gap);
552
431
  }
553
-
554
432
  .seo__analytics-card {
555
433
  border: 1px solid var(--seo-border);
556
434
  border-radius: var(--seo-radius);
557
435
  background: var(--seo-surface);
558
436
  padding: 1rem;
559
437
  }
560
-
561
438
  .seo__analytics-card-label {
562
439
  font-size: 0.75rem;
563
440
  color: var(--seo-text-muted);
@@ -565,86 +442,63 @@
565
442
  text-transform: uppercase;
566
443
  letter-spacing: 0.05em;
567
444
  }
568
-
569
445
  .seo__analytics-card-value {
570
446
  font-size: 1.5rem;
571
447
  font-weight: 700;
572
448
  color: var(--seo-accent);
573
449
  }
574
-
575
- /* ────────────────────────────────────────────────────────────────── */
576
- /* RESPONSIVE */
577
- /* ────────────────────────────────────────────────────────────────── */
578
-
579
450
  @media (max-width: 768px) {
580
451
  :root {
581
452
  --seo-gap: 1rem;
582
453
  }
583
-
584
454
  .seo__admin-grid {
585
455
  grid-template-columns: 1fr;
586
456
  }
587
-
588
457
  .seo__admin-editor {
589
458
  grid-template-columns: 1fr;
590
459
  }
591
-
592
460
  .seo__analytics-summary {
593
461
  grid-template-columns: 1fr;
594
462
  }
595
-
596
463
  .seo__sitemap-table {
597
464
  font-size: 0.75rem;
598
465
  }
599
-
600
466
  .seo__sitemap-cell {
601
467
  padding: 0.5rem;
602
468
  }
603
-
604
469
  .seo__preview-social {
605
470
  max-width: 100%;
606
471
  }
607
472
  }
608
-
609
- /* ────────────────────────────────────────────────────────────────── */
610
- /* UTILITY CLASSES */
611
- /* ────────────────────────────────────────────────────────────────── */
612
-
613
473
  .seo__container {
614
474
  max-width: 90rem;
615
475
  margin: 0 auto;
616
476
  padding: var(--seo-gap);
617
477
  }
618
-
619
478
  .seo__section {
620
479
  margin-bottom: var(--seo-gap-lg);
621
480
  }
622
-
623
481
  .seo__grid {
624
482
  display: grid;
625
483
  gap: var(--seo-gap);
626
484
  }
627
-
628
485
  .seo__grid-2 {
629
486
  grid-template-columns: repeat(auto-fit, minmax(25rem, 1fr));
630
487
  }
631
-
632
488
  .seo__grid-3 {
633
489
  grid-template-columns: repeat(auto-fit, minmax(18rem, 1fr));
634
490
  }
635
-
636
491
  .seo__space-y {
637
492
  display: flex;
638
493
  flex-direction: column;
639
494
  gap: var(--seo-gap);
640
495
  }
641
-
642
496
  .seo__space-y-sm {
643
497
  display: flex;
644
498
  flex-direction: column;
645
499
  gap: var(--seo-gap-sm);
646
500
  }
647
-
648
501
  .seo__hidden {
649
502
  display: none !important;
650
503
  }
504
+ /*# sourceMappingURL=index.css.map */
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/seo.css"],"sourcesContent":["/* geenius-seo BEM Components with OKLCH Design Tokens */\n\n:root {\n /* Color Palette */\n --seo-bg: oklch(0.10 0.01 250);\n --seo-surface: oklch(0.13 0.01 250);\n --seo-surface-2: oklch(0.16 0.01 250);\n --seo-surface-3: oklch(0.19 0.01 250);\n --seo-border: oklch(0.22 0.01 250);\n --seo-border-2: oklch(0.28 0.01 250);\n --seo-text: oklch(0.95 0.01 250);\n --seo-text-secondary: oklch(0.75 0.01 250);\n --seo-text-muted: oklch(0.65 0.01 250);\n --seo-text-dim: oklch(0.55 0.01 250);\n\n /* Accent Colors */\n --seo-accent: oklch(0.65 0.20 265);\n --seo-accent-light: oklch(0.75 0.15 265);\n --seo-accent-dark: oklch(0.55 0.22 265);\n\n /* SEO Score Colors */\n --seo-score-good: oklch(0.72 0.20 145);\n --seo-score-fair: oklch(0.78 0.18 75);\n --seo-score-poor: oklch(0.60 0.25 25);\n\n /* Google Preview */\n --seo-google-url: oklch(0.55 0.15 155);\n --seo-google-title: oklch(0.65 0.20 265);\n --seo-google-desc: oklch(0.50 0.05 0);\n\n /* Social Preview */\n --seo-social-bg: oklch(0.08 0.01 250);\n --seo-social-text: oklch(1.0 0 0);\n\n /* Spacing & Sizing */\n --seo-radius: 0.75rem;\n --seo-radius-lg: 1rem;\n --seo-radius-sm: 0.5rem;\n --seo-shadow: 0 4px 24px oklch(0 0 0 / 0.4);\n --seo-shadow-sm: 0 2px 8px oklch(0 0 0 / 0.3);\n --seo-shadow-lg: 0 12px 48px oklch(0 0 0 / 0.5);\n --seo-transition: 200ms ease;\n --seo-gap: 1.5rem;\n --seo-gap-lg: 2rem;\n --seo-gap-sm: 0.75rem;\n}\n\n/* ────────────────────────────────────────────────────────────────── */\n/* SEO HEAD (Hidden Utility) */\n/* ────────────────────────────────────────────────────────────────── */\n\n.seo__head {\n display: none;\n}\n\n/* ────────────────────────────────────────────────────────────────── */\n/* SEO PREVIEW */\n/* ────────────────────────────────────────────────────────────────── */\n\n.seo__preview {\n display: flex;\n flex-direction: column;\n gap: var(--seo-gap);\n}\n\n.seo__preview-google {\n border: 1px solid var(--seo-border);\n border-radius: var(--seo-radius);\n background: var(--seo-surface);\n padding: 1rem;\n}\n\n.seo__preview-google-url {\n font-size: 0.75rem;\n color: var(--seo-google-url);\n margin-bottom: 0.5rem;\n text-decoration: none;\n}\n\n.seo__preview-google-title {\n font-size: 1.125rem;\n color: var(--seo-google-title);\n text-decoration: underline;\n cursor: pointer;\n margin-bottom: 0.5rem;\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n font-weight: 500;\n}\n\n.seo__preview-google-title:hover {\n color: var(--seo-accent-light);\n}\n\n.seo__preview-google-desc {\n font-size: 0.875rem;\n color: var(--seo-google-desc);\n display: -webkit-box;\n -webkit-line-clamp: 2;\n -webkit-box-orient: vertical;\n overflow: hidden;\n}\n\n.seo__preview-social {\n background: var(--seo-social-bg);\n border-radius: var(--seo-radius);\n overflow: hidden;\n max-width: 28rem;\n}\n\n.seo__preview-social-image {\n width: 100%;\n height: 12rem;\n object-fit: cover;\n display: block;\n}\n\n.seo__preview-social-info {\n padding: 0.75rem;\n color: var(--seo-social-text);\n}\n\n.seo__preview-social-title {\n font-weight: 600;\n font-size: 0.875rem;\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n margin-bottom: 0.25rem;\n}\n\n.seo__preview-social-desc {\n font-size: 0.75rem;\n color: oklch(0.7 0.01 0 / 0.8);\n display: -webkit-box;\n -webkit-line-clamp: 2;\n -webkit-box-orient: vertical;\n overflow: hidden;\n margin-bottom: 0.25rem;\n}\n\n.seo__preview-social-url {\n font-size: 0.75rem;\n color: oklch(0.6 0.01 0 / 0.7);\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n}\n\n/* ────────────────────────────────────────────────────────────────── */\n/* SEO SCORE CARD */\n/* ────────────────────────────────────────────────────────────────── */\n\n.seo__score-card {\n border: 1px solid var(--seo-border);\n border-radius: var(--seo-radius);\n background: var(--seo-surface);\n padding: 1rem;\n display: flex;\n flex-direction: column;\n gap: 1rem;\n}\n\n.seo__score-card-header {\n display: flex;\n align-items: center;\n justify-content: space-between;\n}\n\n.seo__score-card-title {\n font-weight: 600;\n color: var(--seo-text);\n font-size: 0.875rem;\n}\n\n.seo__score-number {\n font-size: 1.5rem;\n font-weight: 700;\n}\n\n.seo__score-number--good {\n color: var(--seo-score-good);\n}\n\n.seo__score-number--fair {\n color: var(--seo-score-fair);\n}\n\n.seo__score-number--poor {\n color: var(--seo-score-poor);\n}\n\n.seo__score-bar {\n height: 0.5rem;\n background: var(--seo-surface-2);\n border-radius: 9999px;\n overflow: hidden;\n}\n\n.seo__score-bar-fill {\n height: 100%;\n border-radius: 9999px;\n transition: width var(--seo-transition);\n}\n\n.seo__score-bar-fill--good {\n background: var(--seo-score-good);\n}\n\n.seo__score-bar-fill--fair {\n background: var(--seo-score-fair);\n}\n\n.seo__score-bar-fill--poor {\n background: var(--seo-score-poor);\n}\n\n.seo__issue-list {\n display: flex;\n flex-direction: column;\n gap: 0.5rem;\n}\n\n.seo__issue-list-title {\n font-weight: 600;\n font-size: 0.75rem;\n color: var(--seo-text);\n text-transform: uppercase;\n letter-spacing: 0.05em;\n}\n\n.seo__issue-item {\n font-size: 0.75rem;\n color: var(--seo-score-poor);\n display: flex;\n align-items: flex-start;\n gap: 0.5rem;\n}\n\n.seo__issue-item-bullet {\n flex-shrink: 0;\n}\n\n/* ────────────────────────────────────────────────────────────────── */\n/* META EDITOR */\n/* ────────────────────────────────────────────────────────────────── */\n\n.seo__meta-editor {\n border: 1px solid var(--seo-border);\n border-radius: var(--seo-radius);\n background: var(--seo-surface);\n padding: 1rem;\n display: flex;\n flex-direction: column;\n gap: 1.5rem;\n}\n\n.seo__meta-field {\n display: flex;\n flex-direction: column;\n gap: 0.5rem;\n}\n\n.seo__meta-field-label {\n font-weight: 600;\n color: var(--seo-text);\n font-size: 0.875rem;\n}\n\n.seo__meta-field-input,\n.seo__meta-field-textarea,\n.seo__meta-field-select {\n width: 100%;\n padding: 0.75rem;\n border: 1px solid var(--seo-border);\n border-radius: var(--seo-radius-sm);\n background: var(--seo-surface-2);\n color: var(--seo-text);\n font-size: 0.875rem;\n font-family: inherit;\n transition: border-color var(--seo-transition), background-color var(--seo-transition);\n}\n\n.seo__meta-field-input:focus,\n.seo__meta-field-textarea:focus,\n.seo__meta-field-select:focus {\n outline: none;\n border-color: var(--seo-accent);\n background: var(--seo-surface-3);\n box-shadow: 0 0 0 3px oklch(0.65 0.20 265 / 0.2);\n}\n\n.seo__meta-field-textarea {\n resize: vertical;\n min-height: 6rem;\n font-family: inherit;\n}\n\n.seo__meta-char-count {\n font-size: 0.75rem;\n color: var(--seo-text-muted);\n}\n\n.seo__meta-char-count--over {\n color: var(--seo-score-poor);\n font-weight: 600;\n}\n\n/* ────────────────────────────────────────────────────────────────── */\n/* SITEMAP TABLE */\n/* ────────────────────────────────────────────────────────────────── */\n\n.seo__sitemap-table {\n width: 100%;\n font-size: 0.875rem;\n border-collapse: collapse;\n background: var(--seo-surface);\n}\n\n.seo__sitemap-table-head {\n background: var(--seo-surface-2);\n border-bottom: 1px solid var(--seo-border);\n}\n\n.seo__sitemap-table-header {\n padding: 0.75rem;\n text-align: left;\n font-weight: 600;\n color: var(--seo-text);\n font-size: 0.75rem;\n text-transform: uppercase;\n letter-spacing: 0.05em;\n}\n\n.seo__sitemap-row {\n border-bottom: 1px solid var(--seo-border-2);\n transition: background-color var(--seo-transition);\n}\n\n.seo__sitemap-row:hover {\n background: var(--seo-surface-2);\n}\n\n.seo__sitemap-cell {\n padding: 0.75rem;\n color: var(--seo-text);\n}\n\n.seo__sitemap-url {\n font-family: 'Monaco', 'Menlo', 'Ubuntu Mono', monospace;\n font-size: 0.75rem;\n color: var(--seo-accent);\n text-decoration: none;\n word-break: break-all;\n}\n\n.seo__sitemap-url:hover {\n text-decoration: underline;\n}\n\n.seo__sitemap-cell-muted {\n color: var(--seo-text-muted);\n}\n\n/* ────────────────────────────────────────────────────────────────── */\n/* BREADCRUMBS JSON-LD */\n/* ────────────────────────────────────────────────────────────────── */\n\n.seo__breadcrumbs {\n display: none;\n}\n\n/* ────────────────────────────────────────────────────────────────── */\n/* ARTICLE JSON-LD */\n/* ────────────────────────────────────────────────────────────────── */\n\n.seo__article-jsonld {\n display: none;\n}\n\n/* ────────────────────────────────────────────────────────────────── */\n/* BUTTONS */\n/* ────────────────────────────────────────────────────────────────── */\n\n.seo__button {\n padding: 0.5rem 1rem;\n border: none;\n border-radius: var(--seo-radius-sm);\n font-size: 0.875rem;\n font-weight: 600;\n cursor: pointer;\n transition: all var(--seo-transition);\n text-decoration: none;\n display: inline-flex;\n align-items: center;\n justify-content: center;\n gap: 0.5rem;\n}\n\n.seo__button:disabled {\n opacity: 0.5;\n cursor: not-allowed;\n}\n\n.seo__button--primary {\n background: var(--seo-accent);\n color: var(--seo-text);\n}\n\n.seo__button--primary:hover:not(:disabled) {\n background: var(--seo-accent-light);\n box-shadow: var(--seo-shadow-sm);\n}\n\n.seo__button--success {\n background: var(--seo-score-good);\n color: var(--seo-text);\n}\n\n.seo__button--success:hover:not(:disabled) {\n background: oklch(0.78 0.22 145);\n box-shadow: var(--seo-shadow-sm);\n}\n\n.seo__button--danger {\n background: var(--seo-score-poor);\n color: var(--seo-text);\n}\n\n.seo__button--danger:hover:not(:disabled) {\n background: oklch(0.65 0.28 25);\n box-shadow: var(--seo-shadow-sm);\n}\n\n.seo__button--secondary {\n background: var(--seo-surface-2);\n color: var(--seo-text);\n border: 1px solid var(--seo-border);\n}\n\n.seo__button--secondary:hover:not(:disabled) {\n background: var(--seo-surface-3);\n border-color: var(--seo-accent);\n}\n\n/* ────────────────────────────────────────────────────────────────── */\n/* ADMIN PAGE */\n/* ────────────────────────────────────────────────────────────────── */\n\n.seo__admin-container {\n max-width: 90rem;\n margin: 0 auto;\n padding: var(--seo-gap);\n}\n\n.seo__admin-title {\n font-size: 1.875rem;\n font-weight: 700;\n color: var(--seo-text);\n margin-bottom: var(--seo-gap);\n}\n\n.seo__admin-grid {\n display: grid;\n grid-template-columns: repeat(auto-fit, minmax(20rem, 1fr));\n gap: var(--seo-gap);\n}\n\n.seo__admin-sidebar {\n border: 1px solid var(--seo-border);\n border-radius: var(--seo-radius);\n background: var(--seo-surface);\n padding: 1rem;\n}\n\n.seo__admin-sidebar-title {\n font-weight: 600;\n color: var(--seo-text);\n margin-bottom: 1rem;\n font-size: 0.875rem;\n}\n\n.seo__admin-page-list {\n display: flex;\n flex-direction: column;\n gap: 0.5rem;\n}\n\n.seo__admin-page-button {\n padding: 0.5rem;\n border: none;\n border-radius: var(--seo-radius-sm);\n background: transparent;\n color: var(--seo-text);\n text-align: left;\n cursor: pointer;\n font-size: 0.875rem;\n transition: all var(--seo-transition);\n}\n\n.seo__admin-page-button:hover {\n background: var(--seo-surface-2);\n}\n\n.seo__admin-page-button--active {\n background: var(--seo-accent);\n color: var(--seo-bg);\n font-weight: 600;\n}\n\n.seo__admin-editor {\n display: grid;\n grid-template-columns: repeat(auto-fit, minmax(25rem, 1fr));\n gap: var(--seo-gap);\n}\n\n.seo__admin-actions {\n display: flex;\n gap: 0.75rem;\n margin-top: var(--seo-gap);\n}\n\n/* ────────────────────────────────────────────────────────────────── */\n/* ANALYTICS PAGE */\n/* ────────────────────────────────────────────────────────────────── */\n\n.seo__analytics-container {\n max-width: 90rem;\n margin: 0 auto;\n padding: var(--seo-gap);\n}\n\n.seo__analytics-title {\n font-size: 1.875rem;\n font-weight: 700;\n color: var(--seo-text);\n margin-bottom: var(--seo-gap);\n}\n\n.seo__analytics-table-wrapper {\n border: 1px solid var(--seo-border);\n border-radius: var(--seo-radius);\n overflow: hidden;\n}\n\n.seo__analytics-summary {\n display: grid;\n grid-template-columns: repeat(auto-fit, minmax(15rem, 1fr));\n gap: 1rem;\n margin-top: var(--seo-gap);\n}\n\n.seo__analytics-card {\n border: 1px solid var(--seo-border);\n border-radius: var(--seo-radius);\n background: var(--seo-surface);\n padding: 1rem;\n}\n\n.seo__analytics-card-label {\n font-size: 0.75rem;\n color: var(--seo-text-muted);\n margin-bottom: 0.5rem;\n text-transform: uppercase;\n letter-spacing: 0.05em;\n}\n\n.seo__analytics-card-value {\n font-size: 1.5rem;\n font-weight: 700;\n color: var(--seo-accent);\n}\n\n/* ────────────────────────────────────────────────────────────────── */\n/* RESPONSIVE */\n/* ────────────────────────────────────────────────────────────────── */\n\n@media (max-width: 768px) {\n :root {\n --seo-gap: 1rem;\n }\n\n .seo__admin-grid {\n grid-template-columns: 1fr;\n }\n\n .seo__admin-editor {\n grid-template-columns: 1fr;\n }\n\n .seo__analytics-summary {\n grid-template-columns: 1fr;\n }\n\n .seo__sitemap-table {\n font-size: 0.75rem;\n }\n\n .seo__sitemap-cell {\n padding: 0.5rem;\n }\n\n .seo__preview-social {\n max-width: 100%;\n }\n}\n\n/* ────────────────────────────────────────────────────────────────── */\n/* UTILITY CLASSES */\n/* ────────────────────────────────────────────────────────────────── */\n\n.seo__container {\n max-width: 90rem;\n margin: 0 auto;\n padding: var(--seo-gap);\n}\n\n.seo__section {\n margin-bottom: var(--seo-gap-lg);\n}\n\n.seo__grid {\n display: grid;\n gap: var(--seo-gap);\n}\n\n.seo__grid-2 {\n grid-template-columns: repeat(auto-fit, minmax(25rem, 1fr));\n}\n\n.seo__grid-3 {\n grid-template-columns: repeat(auto-fit, minmax(18rem, 1fr));\n}\n\n.seo__space-y {\n display: flex;\n flex-direction: column;\n gap: var(--seo-gap);\n}\n\n.seo__space-y-sm {\n display: flex;\n flex-direction: column;\n gap: var(--seo-gap-sm);\n}\n\n.seo__hidden {\n display: none !important;\n}\n"],"mappings":"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","names":[]}