@lapis-notes/workspace 0.1.0 → 0.2.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 (77) hide show
  1. package/CHANGELOG.md +26 -0
  2. package/LICENSE.md +3 -3
  3. package/dist/index.d.ts +3 -0
  4. package/dist/index.js +3 -0
  5. package/dist/plugin-management/CommunityPluginsSettingsPage.svelte +152 -73
  6. package/dist/plugin-management/PluginBrowser.svelte +517 -0
  7. package/dist/plugin-management/PluginBrowser.svelte.d.ts +17 -0
  8. package/dist/plugin-management/PluginBrowserCard.svelte +230 -0
  9. package/dist/plugin-management/PluginBrowserCard.svelte.d.ts +9 -0
  10. package/dist/plugin-management/PluginBrowserDetail.svelte +1168 -0
  11. package/dist/plugin-management/PluginBrowserDetail.svelte.d.ts +20 -0
  12. package/dist/plugin-management/PluginBrowserDirectory.svelte +1069 -0
  13. package/dist/plugin-management/PluginBrowserDirectory.svelte.d.ts +21 -0
  14. package/dist/plugin-management/PluginBrowserLanding.svelte +341 -0
  15. package/dist/plugin-management/PluginBrowserLanding.svelte.d.ts +12 -0
  16. package/dist/plugin-management/PluginRegistryBadge.svelte +41 -0
  17. package/dist/plugin-management/PluginRegistryBadge.svelte.d.ts +8 -0
  18. package/dist/plugin-management/PluginRegistryContentState.svelte +80 -0
  19. package/dist/plugin-management/PluginRegistryContentState.svelte.d.ts +14 -0
  20. package/dist/plugin-management/PluginRegistryImage.svelte +64 -0
  21. package/dist/plugin-management/PluginRegistryImage.svelte.d.ts +9 -0
  22. package/dist/plugin-management/PluginRegistryMedia.svelte +223 -0
  23. package/dist/plugin-management/PluginRegistryMedia.svelte.d.ts +8 -0
  24. package/dist/plugin-management/PluginRegistryMediaViewer.svelte +155 -0
  25. package/dist/plugin-management/PluginRegistryMediaViewer.svelte.d.ts +13 -0
  26. package/dist/plugin-management/PluginRegistryRow.svelte +120 -0
  27. package/dist/plugin-management/PluginRegistryRow.svelte.d.ts +25 -0
  28. package/dist/plugin-management/PluginRegistrySettingsPage.svelte +1009 -512
  29. package/dist/plugin-management/PluginRegistryStatus.svelte +33 -0
  30. package/dist/plugin-management/PluginRegistryStatus.svelte.d.ts +8 -0
  31. package/dist/plugin-management/PluginRegistryToolbar.svelte +159 -0
  32. package/dist/plugin-management/PluginRegistryToolbar.svelte.d.ts +21 -0
  33. package/dist/plugin-management/community-presentation/CommunityChip.svelte +229 -0
  34. package/dist/plugin-management/community-presentation/CommunityChip.svelte.d.ts +4 -0
  35. package/dist/plugin-management/community-presentation/CommunityMemberAvatar.svelte +42 -0
  36. package/dist/plugin-management/community-presentation/CommunityMemberAvatar.svelte.d.ts +13 -0
  37. package/dist/plugin-management/community-presentation/RegistryMediaGallery.svelte +282 -0
  38. package/dist/plugin-management/community-presentation/RegistryMediaGallery.svelte.d.ts +8 -0
  39. package/dist/plugin-management/community-presentation/RegistryMediaViewer.css +179 -0
  40. package/dist/plugin-management/community-presentation/RegistryMediaViewer.svelte +241 -0
  41. package/dist/plugin-management/community-presentation/RegistryMediaViewer.svelte.d.ts +14 -0
  42. package/dist/plugin-management/community-presentation/RegistryPluginChangelog.svelte +216 -0
  43. package/dist/plugin-management/community-presentation/RegistryPluginChangelog.svelte.d.ts +8 -0
  44. package/dist/plugin-management/community-presentation/RegistryVerifiedImage.svelte +179 -0
  45. package/dist/plugin-management/community-presentation/RegistryVerifiedImage.svelte.d.ts +15 -0
  46. package/dist/plugin-management/community-presentation/avatar-model.d.ts +14 -0
  47. package/dist/plugin-management/community-presentation/avatar-model.js +21 -0
  48. package/dist/plugin-management/community-presentation/community-member-avatar.css +137 -0
  49. package/dist/plugin-management/community-presentation/community-typography.css +30 -0
  50. package/dist/plugin-management/community-presentation/model-adapter.d.ts +54 -0
  51. package/dist/plugin-management/community-presentation/model-adapter.js +90 -0
  52. package/dist/plugin-management/community-presentation/model.d.ts +9 -0
  53. package/dist/plugin-management/community-presentation/model.js +40 -0
  54. package/dist/plugin-management/community-presentation/props.d.ts +21 -0
  55. package/dist/plugin-management/community-presentation/props.js +1 -0
  56. package/dist/plugin-management/community-presentation/registry-filter-icons.d.ts +3 -0
  57. package/dist/plugin-management/community-presentation/registry-filter-icons.js +70 -0
  58. package/dist/plugin-management/community-presentation/registry-markdown.d.ts +1 -0
  59. package/dist/plugin-management/community-presentation/registry-markdown.js +57 -0
  60. package/dist/plugin-management/community-presentation/registry-plugin-icons.d.ts +2 -0
  61. package/dist/plugin-management/community-presentation/registry-plugin-icons.js +31 -0
  62. package/dist/plugin-management/plugin-browser-model.d.ts +43 -0
  63. package/dist/plugin-management/plugin-browser-model.js +95 -0
  64. package/dist/plugin-management/plugin-browser-navigation.d.ts +3 -0
  65. package/dist/plugin-management/plugin-browser-navigation.js +36 -0
  66. package/dist/plugin-management/plugin-download-stats.d.ts +1 -0
  67. package/dist/plugin-management/plugin-download-stats.js +15 -0
  68. package/dist/plugin-management/plugin-management.css +1088 -117
  69. package/dist/plugin-management/plugin-registry-controller.svelte.d.ts +29 -0
  70. package/dist/plugin-management/plugin-registry-controller.svelte.js +154 -0
  71. package/dist/plugin-management/plugin-registry-detail-session.svelte.d.ts +18 -0
  72. package/dist/plugin-management/plugin-registry-detail-session.svelte.js +106 -0
  73. package/dist/plugin-management/plugin-registry-detail.d.ts +17 -0
  74. package/dist/plugin-management/plugin-registry-detail.js +1 -0
  75. package/dist/plugin-management/plugins-view.svelte.d.ts +40 -0
  76. package/dist/plugin-management/plugins-view.svelte.js +105 -0
  77. package/package.json +5 -5
@@ -3,10 +3,7 @@
3
3
  --ui-workspace-panel,
4
4
  var(--ui-workspace-background, var(--background))
5
5
  );
6
- --ui-lapis-plugin-muted-surface: var(
7
- --ui-workspace-muted,
8
- var(--muted)
9
- );
6
+ --ui-lapis-plugin-muted-surface: var(--ui-workspace-muted, var(--muted));
10
7
  --ui-lapis-plugin-foreground: var(
11
8
  --ui-workspace-foreground,
12
9
  var(--foreground)
@@ -20,6 +17,15 @@
20
17
  --ui-workspace-accent,
21
18
  var(--interactive-accent, var(--primary))
22
19
  );
20
+ --ui-lapis-plugin-accent-foreground: var(
21
+ --ui-workspace-accent-foreground,
22
+ var(--primary-foreground, #fff)
23
+ );
24
+ --ui-lapis-plugin-success: var(--success, #16a34a);
25
+ --ui-lapis-plugin-warning: var(
26
+ --ui-workspace-warning,
27
+ var(--warning, #d97706)
28
+ );
23
29
  --ui-lapis-plugin-hover: var(
24
30
  --ui-workspace-panel-action-hover-background,
25
31
  var(--background-modifier-hover, var(--accent))
@@ -34,8 +40,49 @@
34
40
  color: var(--ui-lapis-plugin-foreground);
35
41
  }
36
42
 
37
- .lapis-plugin-management__header,
38
- .lapis-plugin-management__trust {
43
+ /* The uninstall confirmation owns its public token bridge. */
44
+ .lapis-plugin-uninstall-dialog {
45
+ --ui-lapis-plugin-surface: var(
46
+ --ui-workspace-panel,
47
+ var(--ui-workspace-background, var(--background))
48
+ );
49
+ --ui-lapis-plugin-muted-surface: var(--ui-workspace-muted, var(--muted));
50
+ --ui-lapis-plugin-foreground: var(
51
+ --ui-workspace-foreground,
52
+ var(--foreground)
53
+ );
54
+ --ui-lapis-plugin-muted-foreground: var(
55
+ --ui-workspace-muted-foreground,
56
+ var(--muted-foreground)
57
+ );
58
+ --ui-lapis-plugin-border: var(--ui-workspace-border, var(--border));
59
+ --ui-lapis-plugin-accent: var(
60
+ --ui-workspace-accent,
61
+ var(--interactive-accent, var(--primary))
62
+ );
63
+ --ui-lapis-plugin-accent-foreground: var(
64
+ --ui-workspace-accent-foreground,
65
+ var(--primary-foreground, #fff)
66
+ );
67
+ --ui-lapis-plugin-success: var(--success, #16a34a);
68
+ --ui-lapis-plugin-warning: var(
69
+ --ui-workspace-warning,
70
+ var(--warning, #d97706)
71
+ );
72
+ --ui-lapis-plugin-danger: var(
73
+ --ui-workspace-destructive,
74
+ var(--destructive, #dc2626)
75
+ );
76
+ --ui-lapis-plugin-danger-foreground: var(--destructive-foreground, #fff);
77
+ --ui-lapis-plugin-hover: var(
78
+ --ui-workspace-panel-action-hover-background,
79
+ var(--background-modifier-hover, var(--accent))
80
+ );
81
+ --ui-lapis-plugin-radius: var(--ui-workspace-radius-medium, var(--radius));
82
+ color: var(--ui-lapis-plugin-foreground);
83
+ }
84
+
85
+ .lapis-plugin-management__header {
39
86
  display: flex;
40
87
  flex-wrap: wrap;
41
88
  align-items: flex-start;
@@ -43,12 +90,15 @@
43
90
  gap: 0.75rem;
44
91
  }
45
92
 
93
+ .lapis-plugin-management[data-ui-part="community-plugins"] {
94
+ min-height: 100%;
95
+ }
96
+
46
97
  .lapis-plugin-management__header h1,
47
98
  .lapis-plugin-management__trust h1,
48
99
  .lapis-plugin-card h2,
49
100
  .lapis-plugin-registry-card h2,
50
- .lapis-plugin-settings-row h2,
51
- .lapis-plugin-detail-dialog h2 {
101
+ .lapis-plugin-settings-row h2 {
52
102
  margin: 0;
53
103
  color: var(--ui-lapis-plugin-foreground);
54
104
  font-size: 0.95rem;
@@ -60,8 +110,7 @@
60
110
  .lapis-plugin-management__trust p,
61
111
  .lapis-plugin-card p,
62
112
  .lapis-plugin-registry-card p,
63
- .lapis-plugin-settings-row p,
64
- .lapis-plugin-detail-dialog p {
113
+ .lapis-plugin-settings-row p {
65
114
  margin: 0.25rem 0 0;
66
115
  color: var(--ui-lapis-plugin-muted-foreground);
67
116
  font-size: 0.8125rem;
@@ -74,8 +123,7 @@
74
123
  .lapis-plugin-settings-row__actions,
75
124
  .lapis-plugin-settings-row__title-line,
76
125
  .lapis-plugin-settings-row__summary,
77
- .lapis-plugin-registry-card__metadata,
78
- .lapis-plugin-detail-dialog__metadata > div {
126
+ .lapis-plugin-registry-card__metadata {
79
127
  display: flex;
80
128
  flex-wrap: wrap;
81
129
  align-items: center;
@@ -118,10 +166,246 @@
118
166
  }
119
167
 
120
168
  .lapis-plugin-management__trust {
169
+ display: grid;
170
+ min-width: 0;
171
+ grid-template-columns: 3rem minmax(0, 1fr) auto;
172
+ align-items: center;
173
+ gap: 0.875rem;
121
174
  border: 1px solid var(--ui-lapis-plugin-border);
122
175
  border-radius: var(--ui-lapis-plugin-radius);
123
- padding: 0.875rem;
124
- background: var(--ui-lapis-plugin-muted-surface);
176
+ padding: 0.875rem 1rem;
177
+ background: var(--ui-lapis-plugin-surface);
178
+ }
179
+
180
+ .lapis-plugin-management__trust[data-trust-state="trusted"] {
181
+ border-color: color-mix(
182
+ in srgb,
183
+ var(--ui-lapis-plugin-success) 24%,
184
+ var(--ui-lapis-plugin-border)
185
+ );
186
+ background: color-mix(
187
+ in srgb,
188
+ var(--ui-lapis-plugin-success) 4%,
189
+ var(--ui-lapis-plugin-surface)
190
+ );
191
+ }
192
+
193
+ .lapis-plugin-management__trust[data-trust-state="untrusted"] {
194
+ align-items: start;
195
+ border-color: color-mix(
196
+ in srgb,
197
+ var(--ui-lapis-plugin-warning) 28%,
198
+ var(--ui-lapis-plugin-border)
199
+ );
200
+ background: color-mix(
201
+ in srgb,
202
+ var(--ui-lapis-plugin-warning) 5%,
203
+ var(--ui-lapis-plugin-surface)
204
+ );
205
+ }
206
+
207
+ .lapis-plugin-management__trust-icon {
208
+ display: grid;
209
+ width: 3rem;
210
+ height: 3rem;
211
+ place-items: center;
212
+ border-radius: calc(var(--ui-lapis-plugin-radius) + 0.125rem);
213
+ }
214
+
215
+ .lapis-plugin-management__trust-icon svg {
216
+ width: 1.75rem;
217
+ height: 1.75rem;
218
+ stroke-width: 2;
219
+ }
220
+
221
+ [data-trust-state="trusted"] .lapis-plugin-management__trust-icon {
222
+ color: var(--ui-lapis-plugin-success);
223
+ background: color-mix(
224
+ in srgb,
225
+ var(--ui-lapis-plugin-success) 12%,
226
+ transparent
227
+ );
228
+ }
229
+
230
+ [data-trust-state="untrusted"] .lapis-plugin-management__trust-icon {
231
+ color: var(--ui-lapis-plugin-warning);
232
+ background: color-mix(
233
+ in srgb,
234
+ var(--ui-lapis-plugin-warning) 12%,
235
+ transparent
236
+ );
237
+ }
238
+
239
+ .lapis-plugin-management__trust-content {
240
+ min-width: 0;
241
+ }
242
+
243
+ .lapis-plugin-management__trust-title-line {
244
+ display: flex;
245
+ min-width: 0;
246
+ flex-wrap: wrap;
247
+ align-items: center;
248
+ gap: 0.625rem;
249
+ }
250
+
251
+ .lapis-plugin-management__trust-title-line h1 {
252
+ font-size: 1rem;
253
+ line-height: 1.25;
254
+ }
255
+
256
+ .lapis-plugin-management__trust-badge {
257
+ display: inline-flex;
258
+ min-height: 1.5rem;
259
+ align-items: center;
260
+ gap: 0.3rem;
261
+ border: 1px solid currentColor;
262
+ border-radius: 999px;
263
+ padding: 0.125rem 0.5rem;
264
+ font-size: 0.6875rem;
265
+ font-weight: 650;
266
+ line-height: 1;
267
+ }
268
+
269
+ .lapis-plugin-management__trust-badge svg {
270
+ width: 0.75rem;
271
+ height: 0.75rem;
272
+ }
273
+
274
+ .lapis-plugin-management__trust-badge > span {
275
+ width: 0.3125rem;
276
+ height: 0.3125rem;
277
+ border-radius: 999px;
278
+ background: currentColor;
279
+ }
280
+
281
+ [data-trust-state="trusted"] .lapis-plugin-management__trust-badge {
282
+ color: color-mix(
283
+ in srgb,
284
+ var(--ui-lapis-plugin-success) 55%,
285
+ var(--ui-lapis-plugin-foreground)
286
+ );
287
+ background: color-mix(
288
+ in srgb,
289
+ var(--ui-lapis-plugin-success) 8%,
290
+ transparent
291
+ );
292
+ }
293
+
294
+ [data-trust-state="untrusted"] .lapis-plugin-management__trust-badge {
295
+ color: color-mix(
296
+ in srgb,
297
+ var(--ui-lapis-plugin-warning) 60%,
298
+ var(--ui-lapis-plugin-foreground)
299
+ );
300
+ background: color-mix(
301
+ in srgb,
302
+ var(--ui-lapis-plugin-warning) 8%,
303
+ transparent
304
+ );
305
+ }
306
+
307
+ .lapis-plugin-management__trust-content > p {
308
+ max-width: 44rem;
309
+ }
310
+
311
+ .lapis-plugin-management__trust-action {
312
+ margin-top: 0.75rem;
313
+ }
314
+
315
+ .lapis-plugin-management__trust > .lapis-plugin-management__trust-action {
316
+ margin-top: 0;
317
+ }
318
+
319
+ .lapis-plugin-management__trust-action--revoke {
320
+ border-color: color-mix(
321
+ in srgb,
322
+ var(--ui-workspace-destructive, var(--destructive)) 28%,
323
+ var(--ui-lapis-plugin-border)
324
+ );
325
+ color: var(--ui-workspace-destructive, var(--destructive));
326
+ background: transparent;
327
+ }
328
+
329
+ .lapis-plugin-management__trust-action--revoke:hover:not(:disabled) {
330
+ background: color-mix(
331
+ in srgb,
332
+ var(--ui-workspace-destructive, var(--destructive)) 7%,
333
+ transparent
334
+ );
335
+ }
336
+
337
+ .lapis-plugin-management__reload {
338
+ display: inline-flex;
339
+ align-items: center;
340
+ gap: 0.5rem;
341
+ }
342
+
343
+ .lapis-plugin-management__reload .lapis-plugin-management__icon {
344
+ color: var(--ui-lapis-plugin-accent);
345
+ }
346
+
347
+ .lapis-plugin-management__empty-state {
348
+ display: flex;
349
+ min-height: 18rem;
350
+ flex: 1;
351
+ flex-direction: column;
352
+ align-items: center;
353
+ justify-content: center;
354
+ padding: 2rem 1rem 3rem;
355
+ text-align: center;
356
+ }
357
+
358
+ .lapis-plugin-management__empty-state-icon {
359
+ position: relative;
360
+ display: grid;
361
+ width: 5rem;
362
+ height: 4.75rem;
363
+ place-items: center;
364
+ margin-bottom: 0.75rem;
365
+ color: color-mix(
366
+ in srgb,
367
+ var(--ui-lapis-plugin-accent) 58%,
368
+ var(--ui-lapis-plugin-surface)
369
+ );
370
+ }
371
+
372
+ .lapis-plugin-management__empty-state-icon > svg:first-child {
373
+ width: 3.75rem;
374
+ height: 3.75rem;
375
+ fill: color-mix(in srgb, var(--ui-lapis-plugin-accent) 10%, transparent);
376
+ filter: drop-shadow(
377
+ 0 0.25rem 0.5rem
378
+ color-mix(in srgb, var(--ui-lapis-plugin-accent) 14%, transparent)
379
+ );
380
+ stroke-width: 1.5;
381
+ transform: rotate(-7deg);
382
+ }
383
+
384
+ .lapis-plugin-management__empty-state-icon > svg:last-child {
385
+ position: absolute;
386
+ inset-block-start: 0;
387
+ inset-inline-end: 0;
388
+ width: 1.5rem;
389
+ height: 1.5rem;
390
+ color: color-mix(in srgb, var(--ui-lapis-plugin-accent) 52%, transparent);
391
+ fill: currentColor;
392
+ stroke-width: 1.5;
393
+ }
394
+
395
+ .lapis-plugin-management__empty-state h2 {
396
+ margin: 0;
397
+ color: var(--ui-lapis-plugin-foreground);
398
+ font-size: 1rem;
399
+ font-weight: 650;
400
+ line-height: 1.35;
401
+ }
402
+
403
+ .lapis-plugin-management__empty-state p {
404
+ max-width: 30rem;
405
+ margin: 0.5rem 0 1rem;
406
+ color: var(--ui-lapis-plugin-muted-foreground);
407
+ font-size: 0.8125rem;
408
+ line-height: 1.5;
125
409
  }
126
410
 
127
411
  .lapis-plugin-settings-row,
@@ -245,6 +529,9 @@
245
529
 
246
530
  .lapis-plugin-registry__tab-list.lapis-plugin-registry__tab-list
247
531
  .lapis-plugin-registry__tab {
532
+ min-width: 0;
533
+ flex: 1 1 0;
534
+ justify-content: center;
248
535
  border: 0;
249
536
  border-bottom: 2px solid transparent;
250
537
  border-radius: 0;
@@ -259,8 +546,8 @@
259
546
  }
260
547
 
261
548
  .lapis-plugin-registry__tab-list
262
- [data-ui-component="tabs-trigger"][data-state="active"] {
263
- border-bottom-color: var(--ui-lapis-plugin-accent);
549
+ .lapis-plugin-registry__tab[data-state="active"] {
550
+ border-bottom-color: var(--ui-lapis-plugin-accent) !important;
264
551
  }
265
552
 
266
553
  .lapis-plugin-registry__grid {
@@ -318,160 +605,844 @@
318
605
  margin-top: 0.75rem;
319
606
  }
320
607
 
321
- .lapis-plugin-detail-dialog {
322
- width: min(90vw, 68.75rem);
323
- max-width: min(90vw, 68.75rem);
324
- height: min(85vh, 62.5rem);
325
- max-height: min(85vh, 62.5rem);
326
- overflow: hidden;
327
- padding: 0;
608
+ .lapis-plugin-readme {
609
+ min-height: 100%;
610
+ color: var(--ui-lapis-plugin-foreground);
611
+ font-size: 0.8125rem;
612
+ line-height: 1.6;
328
613
  }
329
614
 
330
- .lapis-plugin-detail-dialog__layout,
331
- .lapis-plugin-detail-dialog__detail,
332
- .lapis-plugin-detail-dialog__results {
333
- display: flex;
334
- width: 100%;
335
- height: 100%;
336
- min-width: 0;
337
- min-height: 0;
338
- flex-direction: column;
615
+ .lapis-plugin-readme img,
616
+ .lapis-plugin-readme pre,
617
+ .lapis-plugin-readme table {
618
+ max-width: 100%;
339
619
  }
340
620
 
341
- .lapis-plugin-detail-dialog__header,
342
- .lapis-plugin-detail-dialog__metadata,
343
- .lapis-plugin-detail-dialog__results > header {
344
- flex: 0 0 auto;
345
- border-bottom: 1px solid var(--ui-lapis-plugin-border);
346
- padding: 1rem 1.5rem;
347
- }
621
+ @media (max-width: 48rem) {
622
+ .lapis-plugin-management__trust {
623
+ grid-template-columns: 2.5rem minmax(0, 1fr);
624
+ align-items: start;
625
+ }
348
626
 
349
- .lapis-plugin-detail-dialog__header {
350
- display: flex;
351
- align-items: flex-start;
352
- justify-content: space-between;
353
- gap: 1rem;
354
- padding-right: 3rem;
355
- }
627
+ .lapis-plugin-management__trust-icon {
628
+ width: 2.5rem;
629
+ height: 2.5rem;
630
+ }
356
631
 
357
- .lapis-plugin-detail-dialog__panes {
358
- min-height: 0;
359
- flex: 1 1 auto;
632
+ .lapis-plugin-management__trust > .lapis-plugin-management__trust-action {
633
+ grid-column: 2;
634
+ justify-self: start;
635
+ }
636
+
637
+ .lapis-plugin-management__empty-state {
638
+ min-height: 14rem;
639
+ padding-block: 1.5rem 2rem;
640
+ }
641
+
642
+ .lapis-plugin-settings-row,
643
+ .lapis-plugin-card {
644
+ grid-template-columns: auto minmax(0, 1fr);
645
+ }
646
+
647
+ .lapis-plugin-settings-row__actions,
648
+ .lapis-plugin-card__actions {
649
+ grid-column: 2;
650
+ justify-content: flex-start;
651
+ }
360
652
  }
361
653
 
362
- .lapis-plugin-detail-dialog__results {
363
- border-right: 1px solid var(--ui-lapis-plugin-border);
654
+ @media (prefers-reduced-motion: reduce) {
655
+ .lapis-plugin-management__icon[data-spinning="true"] {
656
+ animation: none;
657
+ }
364
658
  }
365
659
 
366
- .lapis-plugin-detail-dialog__results > header {
367
- display: flex;
368
- flex-direction: column;
369
- gap: 0.25rem;
370
- padding: 0.75rem 1rem;
371
- font-size: 0.75rem;
660
+ /* Shared registry list experience. */
661
+
662
+ .lapis-plugin-registry__refresh {
663
+ min-width: 5.75rem;
372
664
  }
373
665
 
374
- .lapis-plugin-detail-dialog__results > header span {
375
- color: var(--ui-lapis-plugin-muted-foreground);
666
+ .lapis-plugin-registry__refresh svg,
667
+ .lapis-plugin-registry-toolbar__controls svg,
668
+ .lapis-plugin-registry-row__actions svg {
669
+ width: 0.875rem;
670
+ height: 0.875rem;
376
671
  }
377
672
 
378
- .lapis-plugin-detail-dialog__result-list,
379
- .lapis-plugin-detail-dialog__readme {
380
- min-height: 0;
381
- flex: 1 1 auto;
382
- overflow: auto;
383
- padding: 0.5rem;
673
+ .lapis-plugin-registry__refresh svg[data-spinning="true"],
674
+ .lapis-plugin-registry-row__actions svg[data-spinning="true"] {
675
+ animation: lapis-plugin-spin 1s linear infinite;
384
676
  }
385
677
 
386
- .lapis-plugin-detail-dialog__result-list {
678
+ .lapis-plugin-registry__content,
679
+ .lapis-plugin-registry__rows {
387
680
  display: flex;
681
+ min-width: 0;
388
682
  flex-direction: column;
389
- gap: 0.25rem;
683
+ gap: 0.625rem;
390
684
  }
391
685
 
392
- .lapis-plugin-detail-dialog__result-list button {
686
+ .lapis-plugin-registry-toolbar {
393
687
  display: flex;
394
688
  min-width: 0;
395
689
  flex-direction: column;
396
690
  gap: 0.25rem;
397
- border: 1px solid transparent;
398
- border-radius: var(--ui-workspace-radius-small, 0.25rem);
399
- padding: 0.5rem 0.75rem;
400
- color: var(--ui-lapis-plugin-muted-foreground);
401
- background: transparent;
402
- text-align: left;
403
- cursor: pointer;
691
+ padding-block: 0.125rem 0.25rem;
404
692
  }
405
693
 
406
- .lapis-plugin-detail-dialog__result-list button:hover,
407
- .lapis-plugin-detail-dialog__result-list button[data-active="true"] {
408
- color: var(--ui-lapis-plugin-foreground);
409
- background: var(--ui-lapis-plugin-hover);
694
+ .lapis-plugin-registry-toolbar > .cv-search-filter-bar {
695
+ --cv-search-filter-content-justify: stretch;
696
+ --cv-search-filter-justify: stretch;
697
+ --cv-search-filter-max-width: 100%;
698
+ padding: 0;
410
699
  }
411
700
 
412
- .lapis-plugin-detail-dialog__result-list button[data-active="true"] {
413
- border-color: var(--ui-lapis-plugin-accent);
701
+ .lapis-plugin-registry-toolbar
702
+ .cv-search-filter-input[data-input-mode="plain"] {
703
+ width: min(100%, 28rem);
704
+ flex: 1 1 18rem;
414
705
  }
415
706
 
416
- .lapis-plugin-detail-dialog__result-list button span {
417
- overflow: hidden;
418
- text-overflow: ellipsis;
419
- white-space: nowrap;
420
- font-size: 0.75rem;
707
+ .lapis-plugin-registry-toolbar .cv-search-filter-bar__filters {
708
+ width: auto;
709
+ flex: 1 1 28rem;
421
710
  }
422
711
 
423
- .lapis-plugin-detail-dialog__result-list button small {
424
- font-size: 0.6875rem;
712
+ .lapis-plugin-registry-toolbar__controls,
713
+ .lapis-plugin-registry-toolbar__summary {
714
+ display: flex;
715
+ min-width: 0;
716
+ flex-wrap: wrap;
717
+ align-items: center;
718
+ gap: 0.375rem;
425
719
  }
426
720
 
427
- .lapis-plugin-detail-dialog__metadata {
428
- display: flex;
429
- flex-direction: column;
430
- gap: 0.75rem;
721
+ .lapis-plugin-registry-toolbar__controls {
722
+ justify-content: flex-start;
431
723
  }
432
724
 
433
- .lapis-plugin-detail-dialog__metadata > div:first-child {
725
+ .lapis-plugin-registry-toolbar__summary {
434
726
  color: var(--ui-lapis-plugin-muted-foreground);
435
- font-size: 0.75rem;
727
+ font-size: 0.6875rem;
436
728
  }
437
729
 
438
- .lapis-plugin-detail-dialog__readme {
439
- padding: 1.5rem;
730
+ .lapis-plugin-registry-toolbar__summary > span + span::before {
731
+ margin-inline-end: 0.375rem;
732
+ content: "·";
440
733
  }
441
734
 
442
- .lapis-plugin-readme {
443
- min-height: 100%;
444
- color: var(--ui-lapis-plugin-foreground);
445
- font-size: 0.8125rem;
446
- line-height: 1.6;
735
+ .lapis-plugin-registry-row {
736
+ position: relative;
737
+ display: grid;
738
+ min-width: 0;
739
+ grid-template-columns: 2rem minmax(0, 1fr);
740
+ align-items: center;
741
+ gap: 0.625rem;
742
+ border: 1px solid var(--ui-lapis-plugin-border);
743
+ border-radius: var(--ui-lapis-plugin-radius);
744
+ padding: 0.625rem;
745
+ background: var(--ui-lapis-plugin-surface);
746
+ transition:
747
+ border-color 120ms ease,
748
+ background-color 120ms ease;
447
749
  }
448
750
 
449
- .lapis-plugin-readme img,
450
- .lapis-plugin-readme pre,
451
- .lapis-plugin-readme table {
452
- max-width: 100%;
751
+ .lapis-plugin-registry-row:hover,
752
+ .lapis-plugin-registry-row:focus-within {
753
+ border-color: color-mix(
754
+ in srgb,
755
+ var(--ui-lapis-plugin-accent) 32%,
756
+ var(--ui-lapis-plugin-border)
757
+ );
758
+ background: color-mix(
759
+ in srgb,
760
+ var(--ui-lapis-plugin-accent) 3%,
761
+ var(--ui-lapis-plugin-surface)
762
+ );
453
763
  }
454
764
 
455
- @media (max-width: 48rem) {
456
- .lapis-plugin-settings-row,
457
- .lapis-plugin-card {
458
- grid-template-columns: auto minmax(0, 1fr);
459
- }
765
+ .lapis-plugin-registry-row[data-selected="true"] {
766
+ border-color: var(--ui-lapis-plugin-accent);
767
+ background: color-mix(
768
+ in srgb,
769
+ var(--ui-lapis-plugin-accent) 6%,
770
+ var(--ui-lapis-plugin-surface)
771
+ );
772
+ }
460
773
 
461
- .lapis-plugin-settings-row__actions,
462
- .lapis-plugin-card__actions {
463
- grid-column: 2;
774
+ .lapis-plugin-registry-row__icon {
775
+ display: grid;
776
+ width: 2rem;
777
+ height: 2rem;
778
+ place-items: center;
779
+ border: 1px solid var(--ui-lapis-plugin-border);
780
+ border-radius: var(--ui-workspace-radius-small, 0.375rem);
781
+ color: var(--ui-lapis-plugin-muted-foreground);
782
+ background: var(--ui-lapis-plugin-muted-surface);
783
+ }
784
+
785
+ .lapis-plugin-registry-row__icon svg {
786
+ width: 1rem;
787
+ height: 1rem;
788
+ }
789
+
790
+ .lapis-plugin-registry-row__main {
791
+ min-width: 0;
792
+ }
793
+
794
+ button.lapis-plugin-registry-row__main {
795
+ display: block;
796
+ width: 100%;
797
+ border: 0;
798
+ padding: 0;
799
+ color: inherit;
800
+ background: transparent;
801
+ text-align: start;
802
+ cursor: pointer;
803
+ }
804
+
805
+ button.lapis-plugin-registry-row__main:focus-visible {
806
+ border-radius: var(--ui-workspace-radius-small, 0.375rem);
807
+ outline: 2px solid var(--ui-lapis-plugin-accent);
808
+ outline-offset: 0.25rem;
809
+ }
810
+
811
+ .lapis-plugin-registry-row__heading,
812
+ .lapis-plugin-registry-row__identity,
813
+ .lapis-plugin-registry-row__metadata,
814
+ .lapis-plugin-registry-row__actions {
815
+ display: flex;
816
+ min-width: 0;
817
+ flex-wrap: wrap;
818
+ align-items: center;
819
+ gap: 0.375rem;
820
+ }
821
+
822
+ .lapis-plugin-registry-row__heading strong {
823
+ overflow: hidden;
824
+ color: var(--ui-lapis-plugin-foreground);
825
+ font-size: 0.8125rem;
826
+ font-weight: 650;
827
+ text-overflow: ellipsis;
828
+ white-space: nowrap;
829
+ }
830
+
831
+ .lapis-plugin-registry-row__heading {
832
+ display: grid;
833
+ width: 100%;
834
+ grid-template-columns: minmax(0, 1fr) auto;
835
+ align-items: start;
836
+ }
837
+
838
+ .lapis-plugin-registry-row__identity {
839
+ grid-column: 1;
840
+ align-items: center;
841
+ justify-self: start;
842
+ }
843
+
844
+ .lapis-plugin-registry-row__identity > strong {
845
+ display: inline-flex;
846
+ min-height: 1.25rem;
847
+ align-items: center;
848
+ }
849
+
850
+ .lapis-plugin-registry-row__version {
851
+ grid-column: 2;
852
+ align-self: start;
853
+ justify-self: end;
854
+ color: var(--ui-lapis-plugin-foreground);
855
+ font-size: 0.6875rem;
856
+ font-variant-numeric: tabular-nums;
857
+ font-weight: 650;
858
+ white-space: nowrap;
859
+ }
860
+
861
+ .lapis-plugin-registry-badge {
862
+ display: inline-flex;
863
+ align-items: center;
864
+ gap: 0.25rem;
865
+ font-weight: 650;
866
+ }
867
+
868
+ .lapis-plugin-registry-badge svg {
869
+ width: 0.6875rem;
870
+ height: 0.6875rem;
871
+ }
872
+
873
+ .lapis-plugin-registry-badge[data-registry-badge-tone="neutral"] {
874
+ border-color: color-mix(
875
+ in srgb,
876
+ var(--ui-lapis-plugin-muted-foreground) 24%,
877
+ var(--ui-lapis-plugin-border)
878
+ );
879
+ color: var(--ui-lapis-plugin-foreground);
880
+ background: color-mix(
881
+ in srgb,
882
+ var(--ui-lapis-plugin-muted-foreground) 9%,
883
+ var(--ui-lapis-plugin-surface)
884
+ );
885
+ }
886
+
887
+ .lapis-plugin-registry-badge[data-registry-badge-tone="official"] {
888
+ border-color: color-mix(
889
+ in srgb,
890
+ var(--ui-lapis-plugin-success) 30%,
891
+ var(--ui-lapis-plugin-border)
892
+ );
893
+ color: color-mix(
894
+ in srgb,
895
+ var(--ui-lapis-plugin-success) 52%,
896
+ var(--ui-lapis-plugin-foreground)
897
+ );
898
+ background: color-mix(
899
+ in srgb,
900
+ var(--ui-lapis-plugin-success) 10%,
901
+ var(--ui-lapis-plugin-surface)
902
+ );
903
+ }
904
+
905
+ .lapis-plugin-registry-badge[data-registry-badge-tone="community"] {
906
+ border-color: color-mix(
907
+ in srgb,
908
+ var(--ui-lapis-plugin-accent) 28%,
909
+ var(--ui-lapis-plugin-border)
910
+ );
911
+ color: color-mix(
912
+ in srgb,
913
+ var(--ui-lapis-plugin-accent) 48%,
914
+ var(--ui-lapis-plugin-foreground)
915
+ );
916
+ background: color-mix(
917
+ in srgb,
918
+ var(--ui-lapis-plugin-accent) 9%,
919
+ var(--ui-lapis-plugin-surface)
920
+ );
921
+ }
922
+
923
+ .lapis-plugin-registry-badge[data-registry-badge-tone="category"] {
924
+ border-color: color-mix(
925
+ in srgb,
926
+ var(--ui-lapis-plugin-muted-foreground) 20%,
927
+ var(--ui-lapis-plugin-border)
928
+ );
929
+ color: var(--ui-lapis-plugin-muted-foreground);
930
+ background: color-mix(
931
+ in srgb,
932
+ var(--ui-lapis-plugin-muted-foreground) 7%,
933
+ var(--ui-lapis-plugin-surface)
934
+ );
935
+ }
936
+
937
+ .lapis-plugin-registry-badge[data-registry-badge-tone="web"],
938
+ .lapis-plugin-registry-badge[data-registry-badge-tone="desktop"] {
939
+ border-color: color-mix(
940
+ in srgb,
941
+ var(--ui-lapis-plugin-muted-foreground) 24%,
942
+ var(--ui-lapis-plugin-border)
943
+ );
944
+ color: var(--ui-lapis-plugin-foreground);
945
+ background: color-mix(
946
+ in srgb,
947
+ var(--ui-lapis-plugin-muted-foreground) 9%,
948
+ var(--ui-lapis-plugin-surface)
949
+ );
950
+ }
951
+
952
+ .lapis-plugin-registry-row__description {
953
+ overflow: hidden;
954
+ display: block;
955
+ margin: 0.125rem 0 0;
956
+ color: var(--ui-lapis-plugin-muted-foreground);
957
+ font-size: 0.75rem;
958
+ line-height: 1.35;
959
+ text-overflow: ellipsis;
960
+ white-space: nowrap;
961
+ }
962
+
963
+ .lapis-plugin-registry-row__metadata {
964
+ margin-top: 0.25rem;
965
+ color: var(--ui-lapis-plugin-muted-foreground);
966
+ font-size: 0.6875rem;
967
+ }
968
+
969
+ .lapis-plugin-registry-row__metadata > span + span::before {
970
+ margin-inline-end: 0.375rem;
971
+ content: "·";
972
+ }
973
+
974
+ .lapis-plugin-registry-row__actions {
975
+ position: absolute;
976
+ right: 0.625rem;
977
+ bottom: 0.625rem;
978
+ justify-content: flex-end;
979
+ }
980
+
981
+ .lapis-plugin-registry-row[data-has-actions="true"]
982
+ .lapis-plugin-registry-row__description,
983
+ .lapis-plugin-registry-row[data-has-actions="true"]
984
+ .lapis-plugin-registry-row__metadata,
985
+ .lapis-plugin-registry-row[data-has-actions="true"]
986
+ .lapis-plugin-registry-row__status-reason {
987
+ width: calc(100% - 7.5rem);
988
+ }
989
+
990
+ .lapis-plugin-registry-status {
991
+ display: flex;
992
+ min-width: 0;
993
+ flex-wrap: wrap;
994
+ align-items: center;
995
+ gap: 0.375rem;
996
+ margin-top: 0.375rem;
997
+ font-size: 0.6875rem;
998
+ }
999
+
1000
+ .lapis-plugin-registry-row__identity > .lapis-plugin-registry-status {
1001
+ flex: 0 0 auto;
1002
+ margin-top: 0;
1003
+ }
1004
+
1005
+ .lapis-plugin-registry-row__status-reason {
1006
+ display: block;
1007
+ margin: 0.375rem 0 0;
1008
+ color: var(--ui-lapis-plugin-muted-foreground);
1009
+ font-size: 0.6875rem;
1010
+ line-height: 1.4;
1011
+ }
1012
+
1013
+ .lapis-plugin-registry-row__status-reason[data-status-tone="danger"] {
1014
+ color: var(--ui-workspace-destructive, var(--destructive));
1015
+ }
1016
+
1017
+ .lapis-plugin-registry-row__status-reason[data-status-tone="warning"] {
1018
+ color: color-mix(
1019
+ in srgb,
1020
+ var(--ui-lapis-plugin-warning) 62%,
1021
+ var(--ui-lapis-plugin-foreground)
1022
+ );
1023
+ }
1024
+
1025
+ .lapis-plugin-registry-status__label {
1026
+ display: inline-flex;
1027
+ flex: 0 0 auto;
1028
+ align-items: center;
1029
+ gap: 0.25rem;
1030
+ border-radius: 999px;
1031
+ padding: 0.125rem 0.375rem;
1032
+ color: var(--ui-lapis-plugin-muted-foreground);
1033
+ background: var(--ui-lapis-plugin-muted-surface);
1034
+ font-weight: 650;
1035
+ }
1036
+
1037
+ .lapis-plugin-registry-status__label svg {
1038
+ width: 0.75rem;
1039
+ height: 0.75rem;
1040
+ }
1041
+
1042
+ [data-status-tone="success"] .lapis-plugin-registry-status__label {
1043
+ color: color-mix(
1044
+ in srgb,
1045
+ var(--ui-lapis-plugin-success) 48%,
1046
+ var(--ui-lapis-plugin-foreground)
1047
+ );
1048
+ background: color-mix(
1049
+ in srgb,
1050
+ var(--ui-lapis-plugin-success) 7%,
1051
+ transparent
1052
+ );
1053
+ }
1054
+
1055
+ [data-status-tone="warning"] .lapis-plugin-registry-status__label {
1056
+ color: color-mix(
1057
+ in srgb,
1058
+ var(--ui-lapis-plugin-warning) 48%,
1059
+ var(--ui-lapis-plugin-foreground)
1060
+ );
1061
+ background: color-mix(
1062
+ in srgb,
1063
+ var(--ui-lapis-plugin-warning) 7%,
1064
+ transparent
1065
+ );
1066
+ }
1067
+
1068
+ [data-status-tone="danger"] .lapis-plugin-registry-status__label {
1069
+ color: var(--ui-workspace-destructive, var(--destructive));
1070
+ background: color-mix(
1071
+ in srgb,
1072
+ var(--ui-workspace-destructive, var(--destructive)) 9%,
1073
+ transparent
1074
+ );
1075
+ }
1076
+
1077
+ .lapis-plugin-registry-status__reason {
1078
+ min-width: 0;
1079
+ color: var(--ui-lapis-plugin-muted-foreground);
1080
+ overflow-wrap: anywhere;
1081
+ }
1082
+
1083
+ .lapis-plugin-registry-state {
1084
+ display: flex;
1085
+ min-height: 17rem;
1086
+ flex: 1 1 auto;
1087
+ flex-direction: column;
1088
+ align-items: center;
1089
+ justify-content: center;
1090
+ gap: 0.75rem;
1091
+ padding: 2rem 1rem 3rem;
1092
+ color: var(--ui-lapis-plugin-muted-foreground);
1093
+ text-align: center;
1094
+ }
1095
+
1096
+ .lapis-plugin-registry-state[data-compact="true"] {
1097
+ min-height: 7rem;
1098
+ align-items: flex-start;
1099
+ flex-direction: row;
1100
+ justify-content: flex-start;
1101
+ border: 1px solid var(--ui-lapis-plugin-border);
1102
+ border-radius: var(--ui-lapis-plugin-radius);
1103
+ padding: 0.75rem;
1104
+ text-align: start;
1105
+ }
1106
+
1107
+ .lapis-plugin-registry-state__icon {
1108
+ position: relative;
1109
+ display: grid;
1110
+ width: 4.5rem;
1111
+ height: 4.25rem;
1112
+ flex: 0 0 auto;
1113
+ place-items: center;
1114
+ color: color-mix(
1115
+ in srgb,
1116
+ var(--ui-lapis-plugin-accent) 58%,
1117
+ var(--ui-lapis-plugin-surface)
1118
+ );
1119
+ }
1120
+
1121
+ .lapis-plugin-registry-state__icon > svg:first-child {
1122
+ width: 3.5rem;
1123
+ height: 3.5rem;
1124
+ fill: color-mix(in srgb, var(--ui-lapis-plugin-accent) 10%, transparent);
1125
+ stroke-width: 1.5;
1126
+ transform: rotate(-7deg);
1127
+ }
1128
+
1129
+ .lapis-plugin-registry-state__icon > svg:last-child:not(:first-child) {
1130
+ position: absolute;
1131
+ inset-block-start: 0;
1132
+ inset-inline-end: 0;
1133
+ width: 1.25rem;
1134
+ height: 1.25rem;
1135
+ fill: currentColor;
1136
+ }
1137
+
1138
+ .lapis-plugin-registry-state[data-state-kind="success"]
1139
+ .lapis-plugin-registry-state__icon {
1140
+ color: var(--ui-lapis-plugin-success);
1141
+ }
1142
+
1143
+ .lapis-plugin-registry-state[data-state-kind="warning"]
1144
+ .lapis-plugin-registry-state__icon,
1145
+ .lapis-plugin-registry-state[data-state-kind="error"]
1146
+ .lapis-plugin-registry-state__icon {
1147
+ color: var(--ui-lapis-plugin-warning);
1148
+ }
1149
+
1150
+ .lapis-plugin-registry-state[data-compact="true"]
1151
+ .lapis-plugin-registry-state__icon {
1152
+ width: 1.75rem;
1153
+ height: 1.75rem;
1154
+ }
1155
+
1156
+ .lapis-plugin-registry-state[data-compact="true"]
1157
+ .lapis-plugin-registry-state__icon
1158
+ svg {
1159
+ position: static;
1160
+ width: 1rem;
1161
+ height: 1rem;
1162
+ fill: none;
1163
+ transform: none;
1164
+ }
1165
+
1166
+ .lapis-plugin-registry-state__body h2 {
1167
+ margin: 0;
1168
+ color: var(--ui-lapis-plugin-foreground);
1169
+ font-size: 0.95rem;
1170
+ font-weight: 650;
1171
+ }
1172
+
1173
+ .lapis-plugin-registry-state__body p {
1174
+ max-width: 32rem;
1175
+ margin: 0.35rem 0 0;
1176
+ font-size: 0.8125rem;
1177
+ line-height: 1.5;
1178
+ }
1179
+
1180
+ .lapis-plugin-registry-state__actions {
1181
+ display: flex;
1182
+ flex-wrap: wrap;
1183
+ align-items: center;
1184
+ justify-content: center;
1185
+ gap: 0.5rem;
1186
+ margin-top: 0.75rem;
1187
+ }
1188
+
1189
+ [data-compact="true"] .lapis-plugin-registry-state__actions {
1190
+ justify-content: flex-start;
1191
+ }
1192
+
1193
+ .lapis-plugin-registry-state__actions a {
1194
+ color: var(--ui-lapis-plugin-accent);
1195
+ font-size: 0.75rem;
1196
+ text-decoration: none;
1197
+ }
1198
+
1199
+ .lapis-plugin-registry-state__actions a:hover {
1200
+ text-decoration: underline;
1201
+ }
1202
+
1203
+ .lapis-plugin-registry-state details {
1204
+ max-width: 100%;
1205
+ margin-top: 0.75rem;
1206
+ font-size: 0.75rem;
1207
+ }
1208
+
1209
+ .lapis-plugin-registry-state code {
1210
+ display: block;
1211
+ max-width: 100%;
1212
+ margin-top: 0.375rem;
1213
+ overflow-wrap: anywhere;
1214
+ white-space: pre-wrap;
1215
+ }
1216
+
1217
+ [data-ui-component="alert-dialog"][data-ui-part="alert-dialog-content"].lapis-plugin-uninstall-dialog {
1218
+ width: min(28rem, calc(100vw - 2rem)) !important;
1219
+ max-width: 28rem !important;
1220
+ gap: 1rem !important;
1221
+ padding: 1.25rem !important;
1222
+ }
1223
+
1224
+ .lapis-plugin-uninstall-dialog [data-ui-part="alert-dialog-header"] {
1225
+ grid-template-columns: 2.5rem minmax(0, 1fr);
1226
+ grid-template-rows: auto auto;
1227
+ place-items: start !important;
1228
+ column-gap: 0.75rem !important;
1229
+ text-align: start !important;
1230
+ }
1231
+
1232
+ .lapis-plugin-uninstall-dialog__media {
1233
+ grid-row: 1 / span 2;
1234
+ width: 2.5rem !important;
1235
+ height: 2.5rem !important;
1236
+ margin: 0 !important;
1237
+ border: 1px solid
1238
+ color-mix(in srgb, var(--ui-lapis-plugin-danger) 24%, transparent);
1239
+ color: var(--ui-lapis-plugin-danger);
1240
+ background: color-mix(
1241
+ in srgb,
1242
+ var(--ui-lapis-plugin-danger) 9%,
1243
+ var(--ui-lapis-plugin-surface)
1244
+ );
1245
+ }
1246
+
1247
+ .lapis-plugin-uninstall-dialog__media svg {
1248
+ width: 1rem;
1249
+ height: 1rem;
1250
+ }
1251
+
1252
+ .lapis-plugin-uninstall-dialog [data-ui-part="alert-dialog-title"],
1253
+ .lapis-plugin-uninstall-dialog [data-ui-part="alert-dialog-description"] {
1254
+ grid-column: 2;
1255
+ }
1256
+
1257
+ .lapis-plugin-uninstall-dialog__target {
1258
+ min-width: 0;
1259
+ }
1260
+
1261
+ .lapis-plugin-uninstall-dialog__target .lapis-plugin-registry-row {
1262
+ border-color: color-mix(
1263
+ in srgb,
1264
+ var(--ui-lapis-plugin-accent) 16%,
1265
+ var(--ui-lapis-plugin-border)
1266
+ );
1267
+ background: var(--ui-lapis-plugin-muted-surface);
1268
+ }
1269
+
1270
+ .lapis-plugin-uninstall-dialog__alternative {
1271
+ --ui-field-background: var(--ui-lapis-plugin-surface);
1272
+ --ui-field-foreground: var(--ui-lapis-plugin-muted-foreground);
1273
+ min-width: 0;
1274
+ justify-content: space-between;
1275
+ border: 1px solid var(--ui-lapis-plugin-border);
1276
+ border-radius: var(--ui-workspace-radius-medium, var(--radius));
1277
+ padding: 0.75rem;
1278
+ background: color-mix(
1279
+ in srgb,
1280
+ var(--ui-lapis-plugin-accent) 4%,
1281
+ var(--ui-lapis-plugin-surface)
1282
+ );
1283
+ }
1284
+
1285
+ .lapis-plugin-uninstall-dialog__alternative [data-ui-part="field-content"] {
1286
+ min-width: 0;
1287
+ gap: 0.125rem;
1288
+ }
1289
+
1290
+ .lapis-plugin-uninstall-dialog__alternative [data-ui-part="field-label"] {
1291
+ color: var(--ui-lapis-plugin-foreground);
1292
+ font-size: 0.8125rem;
1293
+ font-weight: 650;
1294
+ }
1295
+
1296
+ .lapis-plugin-uninstall-dialog__alternative [data-ui-part="field-description"] {
1297
+ color: var(--ui-lapis-plugin-muted-foreground);
1298
+ font-size: 0.75rem;
1299
+ }
1300
+
1301
+ .lapis-plugin-uninstall-dialog[data-action-mode="disable"]
1302
+ .lapis-plugin-uninstall-dialog__media {
1303
+ border-color: color-mix(
1304
+ in srgb,
1305
+ var(--ui-lapis-plugin-accent) 26%,
1306
+ transparent
1307
+ );
1308
+ color: var(--ui-lapis-plugin-accent);
1309
+ background: color-mix(
1310
+ in srgb,
1311
+ var(--ui-lapis-plugin-accent) 9%,
1312
+ var(--ui-lapis-plugin-surface)
1313
+ );
1314
+ }
1315
+
1316
+ .lapis-plugin-uninstall-dialog [data-ui-part="alert-dialog-footer"] {
1317
+ align-items: center;
1318
+ padding-top: 0.125rem;
1319
+ }
1320
+
1321
+ .lapis-plugin-uninstall-dialog [data-ui-part="alert-dialog-cancel"],
1322
+ .lapis-plugin-uninstall-dialog [data-ui-part="alert-dialog-action"] {
1323
+ display: inline-flex;
1324
+ width: auto;
1325
+ min-height: 2.25rem;
1326
+ align-items: center;
1327
+ justify-content: center;
1328
+ gap: 0.375rem;
1329
+ border: 1px solid transparent;
1330
+ border-radius: var(--ui-workspace-radius-small, 0.375rem);
1331
+ padding: 0.5rem 0.875rem;
1332
+ font-size: 0.8125rem;
1333
+ font-weight: 650;
1334
+ line-height: 1;
1335
+ cursor: pointer;
1336
+ transition:
1337
+ border-color 120ms ease,
1338
+ background-color 120ms ease,
1339
+ color 120ms ease,
1340
+ filter 120ms ease;
1341
+ }
1342
+
1343
+ .lapis-plugin-uninstall-dialog [data-ui-part="alert-dialog-cancel"] {
1344
+ border-color: var(--ui-lapis-plugin-border);
1345
+ color: var(--ui-lapis-plugin-foreground);
1346
+ background: var(--ui-lapis-plugin-surface);
1347
+ }
1348
+
1349
+ .lapis-plugin-uninstall-dialog [data-ui-part="alert-dialog-cancel"]:hover {
1350
+ border-color: color-mix(
1351
+ in srgb,
1352
+ var(--ui-lapis-plugin-accent) 28%,
1353
+ var(--ui-lapis-plugin-border)
1354
+ );
1355
+ background: var(--ui-lapis-plugin-hover);
1356
+ }
1357
+
1358
+ .lapis-plugin-uninstall-dialog
1359
+ [data-ui-part="alert-dialog-action"].lapis-plugin-uninstall-dialog__confirm--uninstall {
1360
+ border-color: var(--ui-lapis-plugin-danger) !important;
1361
+ color: var(--ui-lapis-plugin-danger-foreground) !important;
1362
+ background-color: var(--ui-lapis-plugin-danger) !important;
1363
+ }
1364
+
1365
+ .lapis-plugin-uninstall-dialog
1366
+ [data-ui-part="alert-dialog-action"].lapis-plugin-uninstall-dialog__confirm--disable {
1367
+ border-color: var(--ui-lapis-plugin-accent) !important;
1368
+ color: var(--ui-lapis-plugin-accent-foreground) !important;
1369
+ background-color: var(--ui-lapis-plugin-accent) !important;
1370
+ }
1371
+
1372
+ .lapis-plugin-uninstall-dialog [data-ui-part="alert-dialog-action"]:hover {
1373
+ filter: brightness(0.9);
1374
+ }
1375
+
1376
+ .lapis-plugin-uninstall-dialog
1377
+ [data-ui-part="alert-dialog-cancel"]:focus-visible,
1378
+ .lapis-plugin-uninstall-dialog
1379
+ [data-ui-part="alert-dialog-action"]:focus-visible {
1380
+ outline: 2px solid var(--ui-lapis-plugin-accent);
1381
+ outline-offset: 2px;
1382
+ }
1383
+
1384
+ .lapis-plugin-uninstall-dialog [data-ui-part="alert-dialog-cancel"]:disabled,
1385
+ .lapis-plugin-uninstall-dialog [data-ui-part="alert-dialog-action"]:disabled {
1386
+ opacity: 0.55;
1387
+ cursor: not-allowed;
1388
+ }
1389
+
1390
+ .lapis-plugin-uninstall-dialog [data-ui-part="alert-dialog-action"] svg {
1391
+ width: 0.875rem;
1392
+ height: 0.875rem;
1393
+ }
1394
+
1395
+ @media (max-width: 64rem) {
1396
+ .lapis-plugin-registry-toolbar__controls {
1397
+ justify-content: flex-start;
1398
+ }
1399
+ }
1400
+
1401
+ @media (max-width: 48rem) {
1402
+ .lapis-plugin-registry-toolbar
1403
+ .cv-search-filter-input[data-input-mode="plain"],
1404
+ .lapis-plugin-registry-toolbar .cv-search-filter-bar__filters {
1405
+ width: 100%;
1406
+ flex-basis: 100%;
1407
+ }
1408
+
1409
+ .lapis-plugin-registry-row {
1410
+ grid-template-columns: 2rem minmax(0, 1fr);
1411
+ align-items: start;
1412
+ }
1413
+
1414
+ .lapis-plugin-registry-row__actions {
1415
+ position: static;
1416
+ grid-column: 2;
464
1417
  justify-content: flex-start;
465
1418
  }
466
1419
 
467
- .lapis-plugin-detail-dialog {
468
- width: calc(100vw - 1rem);
469
- max-width: calc(100vw - 1rem);
1420
+ .lapis-plugin-registry-row[data-has-actions="true"]
1421
+ .lapis-plugin-registry-row__description,
1422
+ .lapis-plugin-registry-row[data-has-actions="true"]
1423
+ .lapis-plugin-registry-row__metadata,
1424
+ .lapis-plugin-registry-row[data-has-actions="true"]
1425
+ .lapis-plugin-registry-row__status-reason {
1426
+ width: 100%;
1427
+ }
1428
+
1429
+ .lapis-plugin-registry-row__description {
1430
+ white-space: normal;
470
1431
  }
471
1432
  }
472
1433
 
473
1434
  @media (prefers-reduced-motion: reduce) {
474
- .lapis-plugin-management__icon[data-spinning="true"] {
1435
+ .lapis-plugin-registry-row {
1436
+ transition: none;
1437
+ }
1438
+
1439
+ .lapis-plugin-uninstall-dialog [data-ui-part="alert-dialog-cancel"],
1440
+ .lapis-plugin-uninstall-dialog [data-ui-part="alert-dialog-action"] {
1441
+ transition: none;
1442
+ }
1443
+
1444
+ .lapis-plugin-registry__refresh svg[data-spinning="true"],
1445
+ .lapis-plugin-registry-row__actions svg[data-spinning="true"] {
475
1446
  animation: none;
476
1447
  }
477
1448
  }