emdash-plugin-relink 0.2.2

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 (99) hide show
  1. package/CHANGELOG.md +32 -0
  2. package/CONTRIBUTING.md +21 -0
  3. package/LICENSE +167 -0
  4. package/LICENSES/MIT-legacy.txt +21 -0
  5. package/README.md +95 -0
  6. package/THIRD_PARTY_NOTICES.md +19 -0
  7. package/dist/admin/app.d.ts +9 -0
  8. package/dist/admin/app.d.ts.map +1 -0
  9. package/dist/admin/app.js +333 -0
  10. package/dist/admin/app.js.map +1 -0
  11. package/dist/admin/client.d.ts +9 -0
  12. package/dist/admin/client.d.ts.map +1 -0
  13. package/dist/admin/client.js +22 -0
  14. package/dist/admin/client.js.map +1 -0
  15. package/dist/admin/i18n.d.ts +8 -0
  16. package/dist/admin/i18n.d.ts.map +1 -0
  17. package/dist/admin/i18n.js +35 -0
  18. package/dist/admin/i18n.js.map +1 -0
  19. package/dist/admin/index.d.ts +18 -0
  20. package/dist/admin/index.d.ts.map +1 -0
  21. package/dist/admin/index.js +22 -0
  22. package/dist/admin/index.js.map +1 -0
  23. package/dist/admin/messages.d.ts +270 -0
  24. package/dist/admin/messages.d.ts.map +1 -0
  25. package/dist/admin/messages.js +269 -0
  26. package/dist/admin/messages.js.map +1 -0
  27. package/dist/admin/styles.css +330 -0
  28. package/dist/core/api.d.ts +559 -0
  29. package/dist/core/api.d.ts.map +1 -0
  30. package/dist/core/api.js +76 -0
  31. package/dist/core/api.js.map +1 -0
  32. package/dist/core/engine.d.ts +30 -0
  33. package/dist/core/engine.d.ts.map +1 -0
  34. package/dist/core/engine.js +392 -0
  35. package/dist/core/engine.js.map +1 -0
  36. package/dist/core/extract.d.ts +11 -0
  37. package/dist/core/extract.d.ts.map +1 -0
  38. package/dist/core/extract.js +99 -0
  39. package/dist/core/extract.js.map +1 -0
  40. package/dist/core/html.d.ts +12 -0
  41. package/dist/core/html.d.ts.map +1 -0
  42. package/dist/core/html.js +103 -0
  43. package/dist/core/html.js.map +1 -0
  44. package/dist/core/http.d.ts +22 -0
  45. package/dist/core/http.d.ts.map +1 -0
  46. package/dist/core/http.js +217 -0
  47. package/dist/core/http.js.map +1 -0
  48. package/dist/core/index.d.ts +10 -0
  49. package/dist/core/index.d.ts.map +1 -0
  50. package/dist/core/index.js +10 -0
  51. package/dist/core/index.js.map +1 -0
  52. package/dist/core/paths.d.ts +4 -0
  53. package/dist/core/paths.d.ts.map +1 -0
  54. package/dist/core/paths.js +38 -0
  55. package/dist/core/paths.js.map +1 -0
  56. package/dist/core/providers.d.ts +32 -0
  57. package/dist/core/providers.d.ts.map +1 -0
  58. package/dist/core/providers.js +198 -0
  59. package/dist/core/providers.js.map +1 -0
  60. package/dist/core/schema.d.ts +526 -0
  61. package/dist/core/schema.d.ts.map +1 -0
  62. package/dist/core/schema.js +238 -0
  63. package/dist/core/schema.js.map +1 -0
  64. package/dist/core/storage.d.ts +47 -0
  65. package/dist/core/storage.d.ts.map +1 -0
  66. package/dist/core/storage.js +89 -0
  67. package/dist/core/storage.js.map +1 -0
  68. package/dist/core/url.d.ts +7 -0
  69. package/dist/core/url.d.ts.map +1 -0
  70. package/dist/core/url.js +62 -0
  71. package/dist/core/url.js.map +1 -0
  72. package/dist/index.d.ts +8 -0
  73. package/dist/index.d.ts.map +1 -0
  74. package/dist/index.js +16 -0
  75. package/dist/index.js.map +1 -0
  76. package/dist/integration.d.ts +5 -0
  77. package/dist/integration.d.ts.map +1 -0
  78. package/dist/integration.js +29 -0
  79. package/dist/integration.js.map +1 -0
  80. package/dist/metadata.d.ts +14 -0
  81. package/dist/metadata.d.ts.map +1 -0
  82. package/dist/metadata.js +6 -0
  83. package/dist/metadata.js.map +1 -0
  84. package/dist/middleware.d.ts +8 -0
  85. package/dist/middleware.d.ts.map +1 -0
  86. package/dist/middleware.js +97 -0
  87. package/dist/middleware.js.map +1 -0
  88. package/dist/plugin.d.ts +13 -0
  89. package/dist/plugin.d.ts.map +1 -0
  90. package/dist/plugin.js +260 -0
  91. package/dist/plugin.js.map +1 -0
  92. package/docs/architecture.md +50 -0
  93. package/docs/configuration.md +37 -0
  94. package/docs/installation.md +71 -0
  95. package/docs/licensing.md +42 -0
  96. package/docs/recovery.md +27 -0
  97. package/docs/testing.md +31 -0
  98. package/docs/translations.md +24 -0
  99. package/package.json +124 -0
@@ -0,0 +1,330 @@
1
+ .relink {
2
+ --rl-border: #d8dde4;
3
+ --rl-muted: #536174;
4
+ --rl-surface: #fff;
5
+ --rl-quiet: #f5f7fa;
6
+ --rl-ink: #192331;
7
+ --rl-accent: #075aa8;
8
+ color: var(--rl-ink);
9
+ font-family: inherit;
10
+ font-size: 0.9rem;
11
+ line-height: 1.55;
12
+ max-inline-size: 100%;
13
+ padding: 1.5rem;
14
+ }
15
+ .dark .relink,
16
+ [data-theme="dark"] .relink {
17
+ --rl-border: #3d4755;
18
+ --rl-muted: #afbdd0;
19
+ --rl-surface: #202833;
20
+ --rl-quiet: #18212d;
21
+ --rl-ink: #edf2f8;
22
+ --rl-accent: #8ecaff;
23
+ }
24
+ @media (prefers-color-scheme: dark) {
25
+ :root:not(.light):not([data-theme="light"]) .relink {
26
+ --rl-border: #3d4755;
27
+ --rl-muted: #afbdd0;
28
+ --rl-surface: #202833;
29
+ --rl-quiet: #18212d;
30
+ --rl-ink: #edf2f8;
31
+ --rl-accent: #8ecaff;
32
+ }
33
+ }
34
+ .relink *,
35
+ .relink *::before,
36
+ .relink *::after {
37
+ box-sizing: border-box;
38
+ }
39
+ .relink h1 {
40
+ font-size: 1.85rem;
41
+ font-weight: 650;
42
+ margin: 0;
43
+ letter-spacing: -0.03em;
44
+ }
45
+ .relink h2 {
46
+ font-size: 1.35rem;
47
+ font-weight: 650;
48
+ margin-block: 0 1rem;
49
+ }
50
+ .relink h3 {
51
+ font-size: 1rem;
52
+ font-weight: 650;
53
+ margin-block: 1.5rem 0.75rem;
54
+ }
55
+ .relink p {
56
+ margin-block: 0.5rem;
57
+ }
58
+ .rl-header {
59
+ display: flex;
60
+ align-items: center;
61
+ justify-content: space-between;
62
+ gap: 1.5rem;
63
+ flex-wrap: wrap;
64
+ margin-block-end: 1.5rem;
65
+ }
66
+ .rl-header p,
67
+ .rl-health,
68
+ .rl-history time {
69
+ color: var(--rl-muted);
70
+ }
71
+ .rl-actions {
72
+ display: flex;
73
+ gap: 0.6rem;
74
+ flex-wrap: wrap;
75
+ align-items: center;
76
+ }
77
+ .relink button {
78
+ cursor: pointer;
79
+ }
80
+ .relink button:disabled {
81
+ cursor: default;
82
+ opacity: 0.55;
83
+ }
84
+ .relink button:focus-visible,
85
+ .relink a:focus-visible,
86
+ .relink input:focus-visible,
87
+ .relink select:focus-visible,
88
+ .relink textarea:focus-visible,
89
+ .rl-table-wrap:focus-visible {
90
+ outline: 2px solid var(--rl-accent);
91
+ outline-offset: 3px;
92
+ }
93
+ .rl-summary {
94
+ display: grid;
95
+ grid-template-columns: repeat(4, minmax(0, 1fr));
96
+ gap: 0.8rem;
97
+ margin-block: 1rem 1.5rem;
98
+ }
99
+ .rl-summary > div {
100
+ border: 1px solid var(--rl-border);
101
+ background: var(--rl-surface);
102
+ border-radius: 0.65rem;
103
+ padding: 1rem;
104
+ }
105
+ .rl-summary dt {
106
+ color: var(--rl-muted);
107
+ font-size: 0.8rem;
108
+ }
109
+ .rl-summary dd {
110
+ margin: 0.25rem 0 0;
111
+ font-size: 1.8rem;
112
+ font-weight: 600;
113
+ font-variant-numeric: tabular-nums;
114
+ }
115
+ .rl-health {
116
+ border-inline-start: 3px solid var(--rl-border);
117
+ padding-inline-start: 0.8rem;
118
+ display: flex;
119
+ gap: 0.6rem 1.5rem;
120
+ flex-wrap: wrap;
121
+ font-size: 0.8rem;
122
+ margin-block-end: 1.5rem;
123
+ }
124
+ .rl-tabs {
125
+ display: flex;
126
+ flex-wrap: wrap;
127
+ gap: 1rem;
128
+ border-block-end: 1px solid var(--rl-border);
129
+ }
130
+ .rl-tabs button {
131
+ padding-block: 0.65rem;
132
+ background: none;
133
+ border: 0;
134
+ border-block-end: 2px solid transparent;
135
+ color: var(--rl-muted);
136
+ font: inherit;
137
+ }
138
+ .rl-tabs button[aria-current] {
139
+ color: var(--rl-accent);
140
+ border-block-end-color: currentColor;
141
+ }
142
+ .rl-filters {
143
+ display: grid;
144
+ grid-template-columns: repeat(auto-fit, minmax(140px, 1fr));
145
+ gap: 0.65rem;
146
+ border: 0;
147
+ margin: 1rem 0;
148
+ padding: 0;
149
+ }
150
+ .rl-filters legend {
151
+ position: absolute;
152
+ inline-size: 1px;
153
+ block-size: 1px;
154
+ overflow: hidden;
155
+ clip-path: inset(50%);
156
+ }
157
+ .relink label {
158
+ display: flex;
159
+ flex-direction: column;
160
+ gap: 0.35rem;
161
+ font-size: 0.8rem;
162
+ color: var(--rl-muted);
163
+ }
164
+ .relink input:not([type="checkbox"]),
165
+ .relink select,
166
+ .relink textarea {
167
+ background: var(--rl-surface);
168
+ color: var(--rl-ink);
169
+ border: 1px solid var(--rl-border);
170
+ border-radius: 0.3rem;
171
+ padding: 0.5rem;
172
+ font: inherit;
173
+ min-inline-size: 0;
174
+ inline-size: 100%;
175
+ }
176
+ .rl-list-heading,
177
+ .rl-pagination {
178
+ display: flex;
179
+ justify-content: space-between;
180
+ gap: 1rem;
181
+ align-items: center;
182
+ margin-block: 1rem;
183
+ }
184
+ .rl-table-wrap {
185
+ overflow-x: auto;
186
+ border: 1px solid var(--rl-border);
187
+ border-radius: 0.5rem;
188
+ background: var(--rl-surface);
189
+ }
190
+ .relink table {
191
+ border-collapse: collapse;
192
+ inline-size: 100%;
193
+ font-size: 0.8rem;
194
+ }
195
+ .relink th,
196
+ .relink td {
197
+ padding: 0.85rem;
198
+ text-align: start;
199
+ vertical-align: top;
200
+ border-block-end: 1px solid var(--rl-border);
201
+ min-inline-size: 7rem;
202
+ }
203
+ .relink th {
204
+ color: var(--rl-muted);
205
+ font-weight: 550;
206
+ background: var(--rl-quiet);
207
+ white-space: nowrap;
208
+ }
209
+ .relink td:first-child {
210
+ min-inline-size: 14rem;
211
+ }
212
+ .rl-url {
213
+ unicode-bidi: isolate;
214
+ direction: ltr;
215
+ overflow-wrap: anywhere;
216
+ font-family: ui-monospace, SFMono-Regular, Consolas, monospace;
217
+ font-size: 0.85em;
218
+ }
219
+ .rl-link {
220
+ border: 0;
221
+ padding: 0;
222
+ background: none;
223
+ color: var(--rl-accent);
224
+ text-align: start;
225
+ font: inherit;
226
+ }
227
+ .relink a {
228
+ color: var(--rl-accent);
229
+ text-decoration: underline;
230
+ text-underline-offset: 3px;
231
+ }
232
+ .rl-badge {
233
+ display: inline-block;
234
+ border: 1px solid var(--rl-border);
235
+ border-radius: 0.25rem;
236
+ padding: 0.1rem 0.4rem;
237
+ white-space: nowrap;
238
+ font-size: 0.75rem;
239
+ }
240
+ .rl-broken {
241
+ color: #a42627;
242
+ background: #fff2f1;
243
+ border-color: #edc4c1;
244
+ }
245
+ .rl-healthy {
246
+ color: #165a3a;
247
+ background: #eef9f1;
248
+ border-color: #b6dcc5;
249
+ }
250
+ .rl-unverifiable {
251
+ color: #704812;
252
+ background: #fff8e9;
253
+ border-color: #e6d3a4;
254
+ }
255
+ .rl-empty {
256
+ text-align: center;
257
+ padding: 2.5rem;
258
+ color: var(--rl-muted);
259
+ }
260
+ .rl-dialog {
261
+ inline-size: min(850px, calc(100vw - 2rem));
262
+ max-block-size: calc(100vh - 3rem);
263
+ overflow: auto;
264
+ margin: auto;
265
+ padding: 1.5rem;
266
+ background: var(--rl-surface);
267
+ color: var(--rl-ink);
268
+ border: 1px solid var(--rl-border);
269
+ border-radius: 0.75rem;
270
+ box-shadow: 0 1rem 4rem #0004;
271
+ }
272
+ .rl-dialog::backdrop {
273
+ background: #0d152b88;
274
+ }
275
+ .rl-dialog dd {
276
+ margin-inline-start: 0;
277
+ margin-block-end: 0.7rem;
278
+ }
279
+ .rl-dialog dt {
280
+ color: var(--rl-muted);
281
+ font-size: 0.8rem;
282
+ }
283
+ .rl-form {
284
+ display: flex;
285
+ flex-direction: column;
286
+ gap: 1rem;
287
+ margin-block: 1rem;
288
+ }
289
+ .relink .rl-checkbox {
290
+ flex-direction: row;
291
+ gap: 0.65rem;
292
+ align-items: center;
293
+ }
294
+ .rl-notice {
295
+ padding: 0.75rem 1rem;
296
+ background: var(--rl-quiet);
297
+ border-inline-start: 3px solid var(--rl-accent);
298
+ }
299
+ .rl-history,
300
+ .rl-sources {
301
+ list-style: none;
302
+ padding: 0;
303
+ }
304
+ .rl-history li,
305
+ .rl-sources li {
306
+ display: flex;
307
+ flex-direction: column;
308
+ padding-block: 0.8rem;
309
+ border-block-end: 1px solid var(--rl-border);
310
+ }
311
+ .rl-history time {
312
+ font-size: 0.75rem;
313
+ }
314
+ .rl-compact {
315
+ padding: 0.5rem;
316
+ }
317
+ .rl-compact .rl-summary {
318
+ grid-template-columns: repeat(2, minmax(0, 1fr));
319
+ }
320
+ @media (max-width: 700px) {
321
+ .relink {
322
+ padding: 0.75rem;
323
+ }
324
+ .rl-summary {
325
+ grid-template-columns: repeat(2, minmax(0, 1fr));
326
+ }
327
+ .rl-header {
328
+ align-items: start;
329
+ }
330
+ }