@commonpub/layer 0.7.2 → 0.7.4

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 (64) hide show
  1. package/components/CommentSection.vue +4 -4
  2. package/components/ContentAttachments.vue +4 -4
  3. package/components/DiscussionItem.vue +1 -1
  4. package/components/FeedItem.vue +1 -1
  5. package/components/MessageThread.vue +1 -1
  6. package/components/NotificationItem.vue +1 -1
  7. package/components/editors/ArticleEditor.vue +11 -12
  8. package/components/editors/BlogEditor.vue +17 -18
  9. package/components/editors/ExplainerEditor.vue +13 -14
  10. package/components/editors/ProjectEditor.vue +17 -18
  11. package/components/hub/HubHero.vue +2 -2
  12. package/components/hub/HubLayout.vue +1 -1
  13. package/components/hub/HubProducts.vue +2 -2
  14. package/components/hub/HubSidebarCard.vue +2 -2
  15. package/components/views/ArticleView.vue +15 -15
  16. package/components/views/BlogView.vue +14 -14
  17. package/components/views/ExplainerView.vue +11 -11
  18. package/components/views/ProjectView.vue +36 -36
  19. package/composables/useMarkdownImport.ts +1 -1
  20. package/package.json +9 -9
  21. package/pages/admin/theme.vue +1 -1
  22. package/pages/authorize_interaction.vue +1 -1
  23. package/pages/docs/[siteSlug]/edit.vue +4 -4
  24. package/pages/federated-hubs/[id]/index.vue +6 -6
  25. package/pages/federated-hubs/[id]/posts/[postId].vue +5 -5
  26. package/pages/hubs/[slug]/index.vue +6 -6
  27. package/pages/hubs/[slug]/posts/[postId].vue +6 -6
  28. package/pages/hubs/index.vue +2 -2
  29. package/pages/mirror/[id].vue +2 -2
  30. package/pages/u/[username]/[type]/[slug]/edit.vue +2 -1
  31. package/server/api/docs/[siteSlug]/search.get.ts +2 -1
  32. package/theme/components.css +2 -2
  33. package/theme/layouts.css +2 -2
  34. package/theme/prose.css +4 -4
  35. package/components/editors/BlockCanvas.vue +0 -487
  36. package/components/editors/BlockInsertZone.vue +0 -84
  37. package/components/editors/BlockPicker.vue +0 -285
  38. package/components/editors/BlockWrapper.vue +0 -192
  39. package/components/editors/EditorBlocks.vue +0 -248
  40. package/components/editors/EditorSection.vue +0 -81
  41. package/components/editors/EditorShell.vue +0 -196
  42. package/components/editors/EditorTagInput.vue +0 -114
  43. package/components/editors/EditorVisibility.vue +0 -110
  44. package/components/editors/blocks/BuildStepBlock.vue +0 -102
  45. package/components/editors/blocks/CalloutBlock.vue +0 -122
  46. package/components/editors/blocks/CheckpointBlock.vue +0 -27
  47. package/components/editors/blocks/CodeBlock.vue +0 -177
  48. package/components/editors/blocks/DividerBlock.vue +0 -22
  49. package/components/editors/blocks/DownloadsBlock.vue +0 -41
  50. package/components/editors/blocks/EmbedBlock.vue +0 -20
  51. package/components/editors/blocks/GalleryBlock.vue +0 -236
  52. package/components/editors/blocks/HeadingBlock.vue +0 -96
  53. package/components/editors/blocks/ImageBlock.vue +0 -271
  54. package/components/editors/blocks/MarkdownBlock.vue +0 -258
  55. package/components/editors/blocks/MathBlock.vue +0 -37
  56. package/components/editors/blocks/PartsListBlock.vue +0 -358
  57. package/components/editors/blocks/QuizBlock.vue +0 -47
  58. package/components/editors/blocks/QuoteBlock.vue +0 -101
  59. package/components/editors/blocks/SectionHeaderBlock.vue +0 -130
  60. package/components/editors/blocks/SliderBlock.vue +0 -318
  61. package/components/editors/blocks/TextBlock.vue +0 -201
  62. package/components/editors/blocks/ToolListBlock.vue +0 -70
  63. package/components/editors/blocks/VideoBlock.vue +0 -22
  64. package/composables/useBlockEditor.ts +0 -187
@@ -268,7 +268,7 @@ useJsonLd({
268
268
  align-items: center;
269
269
  justify-content: center;
270
270
  overflow: hidden;
271
- border-bottom: 1px solid var(--border);
271
+ border-bottom: var(--border-width-default) solid var(--border);
272
272
  }
273
273
 
274
274
  .cpub-cover::after {
@@ -327,7 +327,7 @@ useJsonLd({
327
327
  letter-spacing: 0.1em;
328
328
  text-transform: uppercase;
329
329
  color: var(--accent);
330
- border: 1px solid var(--border);
330
+ border: var(--border-width-default) solid var(--border);
331
331
  background: var(--accent-bg);
332
332
  padding: 3px 10px;
333
333
  margin-bottom: 16px;
@@ -359,7 +359,7 @@ useJsonLd({
359
359
  height: 28px;
360
360
  border-radius: 50%;
361
361
  background: var(--surface3);
362
- border: 1px solid var(--border);
362
+ border: var(--border-width-default) solid var(--border);
363
363
  display: flex;
364
364
  align-items: center;
365
365
  justify-content: center;
@@ -420,7 +420,7 @@ useJsonLd({
420
420
  font-size: 10px;
421
421
  font-family: var(--font-mono);
422
422
  padding: 2px 8px;
423
- border: 1px solid var(--border2);
423
+ border: var(--border-width-default) solid var(--border2);
424
424
  color: var(--text-dim);
425
425
  background: var(--surface2);
426
426
  text-decoration: none;
@@ -445,8 +445,8 @@ useJsonLd({
445
445
  align-items: center;
446
446
  gap: 6px;
447
447
  padding: 14px 0;
448
- border-top: 1px solid var(--border);
449
- border-bottom: 1px solid var(--border);
448
+ border-top: var(--border-width-default) solid var(--border);
449
+ border-bottom: var(--border-width-default) solid var(--border);
450
450
  margin-bottom: 28px;
451
451
  }
452
452
 
@@ -470,7 +470,7 @@ useJsonLd({
470
470
  font-family: var(--font-mono);
471
471
  color: var(--text-dim);
472
472
  background: var(--surface);
473
- border: 1px solid var(--border);
473
+ border: var(--border-width-default) solid var(--border);
474
474
  padding: 5px 12px;
475
475
  cursor: pointer;
476
476
  transition: background var(--transition-fast), color var(--transition-fast);
@@ -503,7 +503,7 @@ useJsonLd({
503
503
  margin: 40px 0 12px;
504
504
  letter-spacing: -0.01em;
505
505
  padding-bottom: 8px;
506
- border-bottom: 1px solid var(--border);
506
+ border-bottom: var(--border-width-default) solid var(--border);
507
507
  }
508
508
 
509
509
  .cpub-prose :deep(h3) {
@@ -524,7 +524,7 @@ useJsonLd({
524
524
  font-size: 13px;
525
525
  color: var(--teal);
526
526
  background: var(--surface2);
527
- border: 1px solid var(--border);
527
+ border: var(--border-width-default) solid var(--border);
528
528
  padding: 1px 6px;
529
529
  }
530
530
 
@@ -562,7 +562,7 @@ useJsonLd({
562
562
 
563
563
  .cpub-prose :deep(hr) {
564
564
  border: none;
565
- border-top: 1px solid var(--border);
565
+ border-top: var(--border-width-default) solid var(--border);
566
566
  margin: 36px 0;
567
567
  }
568
568
 
@@ -573,7 +573,7 @@ useJsonLd({
573
573
  gap: 6px;
574
574
  margin: 40px 0 32px;
575
575
  padding-top: 24px;
576
- border-top: 1px solid var(--border);
576
+ border-top: var(--border-width-default) solid var(--border);
577
577
  }
578
578
 
579
579
  .cpub-tags-label {
@@ -589,7 +589,7 @@ useJsonLd({
589
589
  /* ── AUTHOR CARD ── */
590
590
  .cpub-author-card {
591
591
  background: var(--surface);
592
- border: 1px solid var(--border);
592
+ border: var(--border-width-default) solid var(--border);
593
593
  padding: 24px;
594
594
  display: flex;
595
595
  gap: 20px;
@@ -684,7 +684,7 @@ useJsonLd({
684
684
  text-transform: uppercase;
685
685
  margin-bottom: 16px;
686
686
  padding-bottom: 8px;
687
- border-bottom: 1px solid var(--border);
687
+ border-bottom: var(--border-width-default) solid var(--border);
688
688
  }
689
689
 
690
690
  .cpub-related-grid {
@@ -696,7 +696,7 @@ useJsonLd({
696
696
 
697
697
  .cpub-related-card {
698
698
  background: var(--surface);
699
- border: 1px solid var(--border);
699
+ border: var(--border-width-default) solid var(--border);
700
700
  overflow: hidden;
701
701
  cursor: pointer;
702
702
  transition: box-shadow var(--transition-fast);
@@ -715,7 +715,7 @@ useJsonLd({
715
715
  justify-content: center;
716
716
  position: relative;
717
717
  overflow: hidden;
718
- border-bottom: 1px solid var(--border);
718
+ border-bottom: var(--border-width-default) solid var(--border);
719
719
  }
720
720
 
721
721
  .cpub-related-card-thumb::after {
@@ -227,7 +227,7 @@ const hasSeries = computed(() => !!seriesTitle.value && seriesTotalParts.value >
227
227
  letter-spacing: 0.1em;
228
228
  text-transform: uppercase;
229
229
  color: var(--green);
230
- border: 1px solid var(--border);
230
+ border: var(--border-width-default) solid var(--border);
231
231
  background: var(--green-bg);
232
232
  padding: 3px 10px;
233
233
  margin-bottom: 16px;
@@ -250,7 +250,7 @@ const hasSeries = computed(() => !!seriesTitle.value && seriesTotalParts.value >
250
250
  height: 28px;
251
251
  border-radius: 50%;
252
252
  background: var(--surface3);
253
- border: 1px solid var(--border);
253
+ border: var(--border-width-default) solid var(--border);
254
254
  display: flex;
255
255
  align-items: center;
256
256
  justify-content: center;
@@ -307,7 +307,7 @@ const hasSeries = computed(() => !!seriesTitle.value && seriesTotalParts.value >
307
307
  font-size: 10px;
308
308
  font-family: var(--font-mono);
309
309
  padding: 2px 8px;
310
- border: 1px solid var(--border2);
310
+ border: var(--border-width-default) solid var(--border2);
311
311
  color: var(--text-dim);
312
312
  background: var(--surface2);
313
313
  text-decoration: none;
@@ -332,8 +332,8 @@ const hasSeries = computed(() => !!seriesTitle.value && seriesTotalParts.value >
332
332
  align-items: center;
333
333
  gap: 6px;
334
334
  padding: 14px 0;
335
- border-top: 1px solid var(--border);
336
- border-bottom: 1px solid var(--border);
335
+ border-top: var(--border-width-default) solid var(--border);
336
+ border-bottom: var(--border-width-default) solid var(--border);
337
337
  margin-bottom: 36px;
338
338
  }
339
339
 
@@ -355,7 +355,7 @@ const hasSeries = computed(() => !!seriesTitle.value && seriesTotalParts.value >
355
355
  font-family: var(--font-mono);
356
356
  color: var(--text-dim);
357
357
  background: var(--surface);
358
- border: 1px solid var(--border);
358
+ border: var(--border-width-default) solid var(--border);
359
359
  padding: 5px 12px;
360
360
  cursor: pointer;
361
361
  transition: background var(--transition-fast), color var(--transition-fast);
@@ -407,7 +407,7 @@ const hasSeries = computed(() => !!seriesTitle.value && seriesTotalParts.value >
407
407
  font-size: 12.5px;
408
408
  color: var(--teal);
409
409
  background: var(--surface2);
410
- border: 1px solid var(--border2);
410
+ border: var(--border-width-default) solid var(--border2);
411
411
  padding: 1px 6px;
412
412
  }
413
413
 
@@ -454,14 +454,14 @@ const hasSeries = computed(() => !!seriesTitle.value && seriesTotalParts.value >
454
454
 
455
455
  .cpub-prose :deep(hr) {
456
456
  border: none;
457
- border-top: 1px solid var(--border);
457
+ border-top: var(--border-width-default) solid var(--border);
458
458
  margin: 36px 0;
459
459
  }
460
460
 
461
461
  /* ── SERIES NAV ── */
462
462
  .cpub-series-nav {
463
463
  background: var(--surface);
464
- border: 1px solid var(--border);
464
+ border: var(--border-width-default) solid var(--border);
465
465
  padding: 20px;
466
466
  margin: 40px 0;
467
467
  box-shadow: var(--shadow-sm);
@@ -518,7 +518,7 @@ const hasSeries = computed(() => !!seriesTitle.value && seriesTotalParts.value >
518
518
  height: 4px;
519
519
  background: var(--surface3);
520
520
  overflow: hidden;
521
- border: 1px solid var(--border2);
521
+ border: var(--border-width-default) solid var(--border2);
522
522
  }
523
523
 
524
524
  .cpub-series-progress-fill {
@@ -534,7 +534,7 @@ const hasSeries = computed(() => !!seriesTitle.value && seriesTotalParts.value >
534
534
 
535
535
  .cpub-series-nav-btn {
536
536
  background: var(--surface);
537
- border: 1px solid var(--border);
537
+ border: var(--border-width-default) solid var(--border);
538
538
  padding: 12px 14px;
539
539
  cursor: pointer;
540
540
  text-decoration: none;
@@ -582,7 +582,7 @@ const hasSeries = computed(() => !!seriesTitle.value && seriesTotalParts.value >
582
582
  gap: 6px;
583
583
  margin: 36px 0 28px;
584
584
  padding-top: 20px;
585
- border-top: 1px solid var(--border);
585
+ border-top: var(--border-width-default) solid var(--border);
586
586
  }
587
587
 
588
588
  .cpub-tags-label {
@@ -598,7 +598,7 @@ const hasSeries = computed(() => !!seriesTitle.value && seriesTotalParts.value >
598
598
  /* ── AUTHOR CARD ── */
599
599
  .cpub-author-card {
600
600
  background: var(--surface);
601
- border: 1px solid var(--border);
601
+ border: var(--border-width-default) solid var(--border);
602
602
  padding: 22px;
603
603
  display: flex;
604
604
  gap: 18px;
@@ -671,7 +671,7 @@ const hasSeries = computed(() => !!seriesTitle.value && seriesTotalParts.value >
671
671
  font-family: var(--font-sans);
672
672
  font-size: 12px;
673
673
  padding: 6px 14px;
674
- border: 1px solid var(--border);
674
+ border: var(--border-width-default) solid var(--border);
675
675
  background: var(--surface);
676
676
  color: var(--text);
677
677
  cursor: pointer;
@@ -355,7 +355,7 @@ onUnmounted(() => { document.removeEventListener('keydown', onKeydown); });
355
355
  align-items: center;
356
356
  justify-content: center;
357
357
  background: var(--surface, #1a1a1a);
358
- border: 1px solid var(--border, #333);
358
+ border: var(--border-width-default) solid var(--border, #333);
359
359
  color: var(--text-dim, #999);
360
360
  font-size: 14px;
361
361
  text-decoration: none;
@@ -387,7 +387,7 @@ onUnmounted(() => { document.removeEventListener('keydown', onKeydown); });
387
387
  top: 3px; left: 0; right: 0;
388
388
  height: 48px;
389
389
  background: var(--surface);
390
- border-bottom: 1px solid var(--border);
390
+ border-bottom: var(--border-width-default) solid var(--border);
391
391
  display: flex;
392
392
  align-items: center;
393
393
  gap: 10px;
@@ -441,7 +441,7 @@ onUnmounted(() => { document.removeEventListener('keydown', onKeydown); });
441
441
  align-items: center;
442
442
  justify-content: center;
443
443
  background: var(--surface);
444
- border: 1px solid var(--border);
444
+ border: var(--border-width-default) solid var(--border);
445
445
  color: var(--text-dim);
446
446
  cursor: pointer;
447
447
  font-size: 12px;
@@ -467,7 +467,7 @@ onUnmounted(() => { document.removeEventListener('keydown', onKeydown); });
467
467
  width: 200px;
468
468
  flex-shrink: 0;
469
469
  background: var(--surface);
470
- border-right: 1px solid var(--border);
470
+ border-right: var(--border-width-default) solid var(--border);
471
471
  display: flex;
472
472
  flex-direction: column;
473
473
  overflow-y: auto;
@@ -479,7 +479,7 @@ onUnmounted(() => { document.removeEventListener('keydown', onKeydown); });
479
479
  letter-spacing: 0.12em;
480
480
  color: var(--text-faint);
481
481
  text-transform: uppercase;
482
- border-bottom: 1px solid var(--border);
482
+ border-bottom: var(--border-width-default) solid var(--border);
483
483
  }
484
484
  .cpub-toc-list { list-style: none; padding: 6px 0; }
485
485
  .cpub-toc-item button {
@@ -516,7 +516,7 @@ onUnmounted(() => { document.removeEventListener('keydown', onKeydown); });
516
516
  align-items: center;
517
517
  gap: 8px;
518
518
  padding: 12px 14px;
519
- border-top: 1px solid var(--border);
519
+ border-top: var(--border-width-default) solid var(--border);
520
520
  margin-top: auto;
521
521
  }
522
522
  .cpub-sidebar-author-avatar {
@@ -524,7 +524,7 @@ onUnmounted(() => { document.removeEventListener('keydown', onKeydown); });
524
524
  height: 24px;
525
525
  border-radius: var(--radius-full);
526
526
  background: var(--surface3);
527
- border: 1px solid var(--border);
527
+ border: var(--border-width-default) solid var(--border);
528
528
  display: flex;
529
529
  align-items: center;
530
530
  justify-content: center;
@@ -674,7 +674,7 @@ onUnmounted(() => { document.removeEventListener('keydown', onKeydown); });
674
674
  font-family: var(--font-mono);
675
675
  font-size: 13px;
676
676
  background: var(--surface2);
677
- border: 1px solid var(--border);
677
+ border: var(--border-width-default) solid var(--border);
678
678
  padding: 1px 6px;
679
679
  color: var(--accent);
680
680
  }
@@ -718,7 +718,7 @@ onUnmounted(() => { document.removeEventListener('keydown', onKeydown); });
718
718
  justify-content: space-between;
719
719
  margin-top: 48px;
720
720
  padding-top: 24px;
721
- border-top: 1px solid var(--border);
721
+ border-top: var(--border-width-default) solid var(--border);
722
722
  }
723
723
 
724
724
  .cpub-progress-dots { display: flex; align-items: center; gap: 5px; }
@@ -742,7 +742,7 @@ onUnmounted(() => { document.removeEventListener('keydown', onKeydown); });
742
742
  gap: 8px;
743
743
  padding: 10px 18px;
744
744
  background: var(--accent);
745
- border: 1px solid var(--border);
745
+ border: var(--border-width-default) solid var(--border);
746
746
  color: var(--color-text-inverse);
747
747
  font-size: 13px;
748
748
  font-weight: 600;
@@ -759,7 +759,7 @@ onUnmounted(() => { document.removeEventListener('keydown', onKeydown); });
759
759
  gap: 8px;
760
760
  padding: 10px 18px;
761
761
  background: var(--surface);
762
- border: 1px solid var(--border);
762
+ border: var(--border-width-default) solid var(--border);
763
763
  color: var(--text);
764
764
  font-size: 13px;
765
765
  font-weight: 500;
@@ -590,7 +590,7 @@ async function handleBuild(): Promise<void> {
590
590
  background: var(--surface2);
591
591
  overflow: hidden;
592
592
  flex-shrink: 0;
593
- border-bottom: 1px solid var(--border);
593
+ border-bottom: var(--border-width-default) solid var(--border);
594
594
  }
595
595
 
596
596
  .cpub-hero-cover-grid {
@@ -653,14 +653,14 @@ async function handleBuild(): Promise<void> {
653
653
 
654
654
  .cpub-badge-featured {
655
655
  background: var(--yellow-bg);
656
- border: 1px solid var(--border);
656
+ border: var(--border-width-default) solid var(--border);
657
657
  color: var(--yellow);
658
658
  box-shadow: var(--shadow-sm);
659
659
  }
660
660
 
661
661
  .cpub-badge-outline {
662
662
  background: var(--surface);
663
- border: 1px solid var(--border);
663
+ border: var(--border-width-default) solid var(--border);
664
664
  color: var(--text-dim);
665
665
  box-shadow: var(--shadow-sm);
666
666
  }
@@ -721,7 +721,7 @@ async function handleBuild(): Promise<void> {
721
721
  height: 28px;
722
722
  border-radius: 50%;
723
723
  background: var(--surface3);
724
- border: 1px solid var(--border);
724
+ border: var(--border-width-default) solid var(--border);
725
725
  display: flex;
726
726
  align-items: center;
727
727
  justify-content: center;
@@ -768,7 +768,7 @@ async function handleBuild(): Promise<void> {
768
768
  font-family: var(--font-mono);
769
769
  color: var(--accent);
770
770
  background: var(--accent-bg);
771
- border: 1px solid var(--border);
771
+ border: var(--border-width-default) solid var(--border);
772
772
  padding: 2px 7px;
773
773
  }
774
774
 
@@ -789,7 +789,7 @@ async function handleBuild(): Promise<void> {
789
789
  .cpub-author-tag {
790
790
  font-size: 9px; font-family: var(--font-mono); text-transform: uppercase;
791
791
  letter-spacing: 0.04em; color: var(--text-faint); padding: 1px 6px;
792
- border: 1px solid var(--border); background: var(--surface); text-decoration: none;
792
+ border: var(--border-width-default) solid var(--border); background: var(--surface); text-decoration: none;
793
793
  }
794
794
  .cpub-author-tag:hover { color: var(--accent); border-color: var(--accent); }
795
795
 
@@ -816,7 +816,7 @@ async function handleBuild(): Promise<void> {
816
816
  .cpub-engage-btn {
817
817
  font-size: 12px;
818
818
  padding: 6px 13px;
819
- border: 1px solid var(--border);
819
+ border: var(--border-width-default) solid var(--border);
820
820
  background: var(--surface);
821
821
  color: var(--text-dim);
822
822
  cursor: pointer;
@@ -849,7 +849,7 @@ async function handleBuild(): Promise<void> {
849
849
  .cpub-inline-meta-chip {
850
850
  display: inline-flex; align-items: center; gap: 5px;
851
851
  font-size: 11px; font-family: var(--font-mono); color: var(--text-dim);
852
- padding: 3px 10px; background: var(--surface2); border: 1px solid var(--border);
852
+ padding: 3px 10px; background: var(--surface2); border: var(--border-width-default) solid var(--border);
853
853
  white-space: nowrap;
854
854
  }
855
855
  .cpub-inline-meta-link { text-decoration: none; cursor: pointer; }
@@ -861,7 +861,7 @@ async function handleBuild(): Promise<void> {
861
861
  .cpub-itag {
862
862
  font-size: 10px; font-family: var(--font-mono); text-transform: uppercase;
863
863
  letter-spacing: 0.04em; padding: 2px 8px; color: var(--text-faint);
864
- border: 1px solid var(--border); background: var(--surface);
864
+ border: var(--border-width-default) solid var(--border); background: var(--surface);
865
865
  }
866
866
 
867
867
  /* ── TABS ── */
@@ -870,7 +870,7 @@ async function handleBuild(): Promise<void> {
870
870
  top: 48px;
871
871
  z-index: 50;
872
872
  background: var(--bg);
873
- border-bottom: 1px solid var(--border);
873
+ border-bottom: var(--border-width-default) solid var(--border);
874
874
  margin-bottom: 28px;
875
875
  }
876
876
 
@@ -948,7 +948,7 @@ async function handleBuild(): Promise<void> {
948
948
  font-size: 11px;
949
949
  background: var(--surface2);
950
950
  padding: 2px 5px;
951
- border: 1px solid var(--border2);
951
+ border: var(--border-width-default) solid var(--border2);
952
952
  color: var(--accent);
953
953
  }
954
954
 
@@ -962,7 +962,7 @@ async function handleBuild(): Promise<void> {
962
962
 
963
963
  .cpub-prose :deep(hr) {
964
964
  border: none;
965
- border-top: 1px solid var(--border);
965
+ border-top: var(--border-width-default) solid var(--border);
966
966
  margin: 24px 0;
967
967
  }
968
968
 
@@ -995,7 +995,7 @@ async function handleBuild(): Promise<void> {
995
995
  .cpub-toc-nav {
996
996
  display: flex; flex-direction: column; gap: 0;
997
997
  position: relative;
998
- border-left: 1px solid var(--border);
998
+ border-left: var(--border-width-default) solid var(--border);
999
999
  }
1000
1000
  .cpub-toc-item {
1001
1001
  display: flex; align-items: flex-start; text-align: left; background: none;
@@ -1022,7 +1022,7 @@ async function handleBuild(): Promise<void> {
1022
1022
 
1023
1023
  .cpub-sb-card {
1024
1024
  background: var(--surface);
1025
- border: 1px solid var(--border);
1025
+ border: var(--border-width-default) solid var(--border);
1026
1026
  padding: 18px;
1027
1027
  box-shadow: var(--shadow-sm);
1028
1028
  }
@@ -1036,14 +1036,14 @@ async function handleBuild(): Promise<void> {
1036
1036
  color: var(--text-dim);
1037
1037
  margin-bottom: 14px;
1038
1038
  padding-bottom: 8px;
1039
- border-bottom: 1px solid var(--border);
1039
+ border-bottom: var(--border-width-default) solid var(--border);
1040
1040
  }
1041
1041
 
1042
1042
  /* Stats grid */
1043
1043
  .cpub-stats-grid {
1044
1044
  display: grid;
1045
1045
  grid-template-columns: 1fr 1fr;
1046
- border: 1px solid var(--border);
1046
+ border: var(--border-width-default) solid var(--border);
1047
1047
  overflow: hidden;
1048
1048
  }
1049
1049
 
@@ -1051,8 +1051,8 @@ async function handleBuild(): Promise<void> {
1051
1051
  background: var(--surface2);
1052
1052
  padding: 14px;
1053
1053
  text-align: center;
1054
- border-right: 1px solid var(--border);
1055
- border-bottom: 1px solid var(--border);
1054
+ border-right: var(--border-width-default) solid var(--border);
1055
+ border-bottom: var(--border-width-default) solid var(--border);
1056
1056
  }
1057
1057
 
1058
1058
  .cpub-stat-cell:nth-child(2n) { border-right: none; }
@@ -1105,7 +1105,7 @@ async function handleBuild(): Promise<void> {
1105
1105
  align-items: center;
1106
1106
  gap: 10px;
1107
1107
  padding: 8px 0;
1108
- border-bottom: 1px solid var(--border2);
1108
+ border-bottom: var(--border-width-default) solid var(--border2);
1109
1109
  font-size: 12px;
1110
1110
  }
1111
1111
 
@@ -1115,7 +1115,7 @@ async function handleBuild(): Promise<void> {
1115
1115
  width: 28px;
1116
1116
  height: 28px;
1117
1117
  background: var(--surface2);
1118
- border: 1px solid var(--border2);
1118
+ border: var(--border-width-default) solid var(--border2);
1119
1119
  display: flex;
1120
1120
  align-items: center;
1121
1121
  justify-content: center;
@@ -1150,7 +1150,7 @@ async function handleBuild(): Promise<void> {
1150
1150
  font-size: 10px;
1151
1151
  font-family: var(--font-mono);
1152
1152
  padding: 4px 10px;
1153
- border: 1px solid var(--border);
1153
+ border: var(--border-width-default) solid var(--border);
1154
1154
  color: var(--text-dim);
1155
1155
  background: var(--surface);
1156
1156
  cursor: pointer;
@@ -1169,7 +1169,7 @@ async function handleBuild(): Promise<void> {
1169
1169
  align-items: center;
1170
1170
  justify-content: space-between;
1171
1171
  padding: 7px 0;
1172
- border-bottom: 1px solid var(--border2);
1172
+ border-bottom: var(--border-width-default) solid var(--border2);
1173
1173
  font-size: 12px;
1174
1174
  }
1175
1175
 
@@ -1188,7 +1188,7 @@ async function handleBuild(): Promise<void> {
1188
1188
  width: 44px;
1189
1189
  height: 44px;
1190
1190
  background: var(--purple-bg);
1191
- border: 1px solid var(--border);
1191
+ border: var(--border-width-default) solid var(--border);
1192
1192
  display: flex;
1193
1193
  align-items: center;
1194
1194
  justify-content: center;
@@ -1225,7 +1225,7 @@ async function handleBuild(): Promise<void> {
1225
1225
  .cpub-btn {
1226
1226
  font-size: 12px;
1227
1227
  padding: 6px 14px;
1228
- border: 1px solid var(--border);
1228
+ border: var(--border-width-default) solid var(--border);
1229
1229
  background: var(--surface);
1230
1230
  color: var(--text);
1231
1231
  cursor: pointer;
@@ -1245,7 +1245,7 @@ async function handleBuild(): Promise<void> {
1245
1245
  background: var(--surface3);
1246
1246
  color: var(--text-faint);
1247
1247
  padding: 1px 5px;
1248
- border: 1px solid var(--border2);
1248
+ border: var(--border-width-default) solid var(--border2);
1249
1249
  }
1250
1250
 
1251
1251
  /* BOM products in sidebar */
@@ -1258,7 +1258,7 @@ async function handleBuild(): Promise<void> {
1258
1258
  margin-top: 12px;
1259
1259
  margin-bottom: 8px;
1260
1260
  padding-top: 8px;
1261
- border-top: 1px solid var(--border2);
1261
+ border-top: var(--border-width-default) solid var(--border2);
1262
1262
  }
1263
1263
 
1264
1264
  .cpub-bom-product-row {
@@ -1298,7 +1298,7 @@ async function handleBuild(): Promise<void> {
1298
1298
  gap: 8px;
1299
1299
  margin-bottom: 16px;
1300
1300
  padding-bottom: 10px;
1301
- border-bottom: 1px solid var(--border);
1301
+ border-bottom: var(--border-width-default) solid var(--border);
1302
1302
  }
1303
1303
 
1304
1304
  .cpub-tab-section-title i { font-size: 12px; color: var(--text-faint); }
@@ -1324,12 +1324,12 @@ async function handleBuild(): Promise<void> {
1324
1324
  padding: 8px 12px;
1325
1325
  text-align: left;
1326
1326
  background: var(--surface2);
1327
- border-bottom: 1px solid var(--border);
1327
+ border-bottom: var(--border-width-default) solid var(--border);
1328
1328
  }
1329
1329
 
1330
1330
  .cpub-parts-table td {
1331
1331
  padding: 10px 12px;
1332
- border-bottom: 1px solid var(--border2);
1332
+ border-bottom: var(--border-width-default) solid var(--border2);
1333
1333
  color: var(--text-dim);
1334
1334
  }
1335
1335
 
@@ -1344,7 +1344,7 @@ async function handleBuild(): Promise<void> {
1344
1344
  display: flex; align-items: center; gap: 12px;
1345
1345
  padding: 10px 14px;
1346
1346
  background: var(--surface);
1347
- border: 1px solid var(--border);
1347
+ border: var(--border-width-default) solid var(--border);
1348
1348
  box-shadow: var(--shadow-sm);
1349
1349
  }
1350
1350
 
@@ -1365,7 +1365,7 @@ async function handleBuild(): Promise<void> {
1365
1365
  .cpub-build-steps { display: flex; flex-direction: column; gap: 16px; }
1366
1366
 
1367
1367
  .cpub-build-step {
1368
- border: 1px solid var(--border);
1368
+ border: var(--border-width-default) solid var(--border);
1369
1369
  overflow: hidden;
1370
1370
  box-shadow: var(--shadow-sm);
1371
1371
  }
@@ -1402,7 +1402,7 @@ async function handleBuild(): Promise<void> {
1402
1402
  width: 100%;
1403
1403
  max-height: 400px;
1404
1404
  object-fit: cover;
1405
- border: 1px solid var(--border);
1405
+ border: var(--border-width-default) solid var(--border);
1406
1406
  margin-top: 12px;
1407
1407
  }
1408
1408
 
@@ -1410,7 +1410,7 @@ async function handleBuild(): Promise<void> {
1410
1410
  .cpub-code-tab { display: flex; flex-direction: column; gap: 16px; }
1411
1411
 
1412
1412
  .cpub-code-snippet {
1413
- border: 1px solid var(--border);
1413
+ border: var(--border-width-default) solid var(--border);
1414
1414
  overflow: hidden;
1415
1415
  box-shadow: var(--shadow-sm);
1416
1416
  }
@@ -1419,7 +1419,7 @@ async function handleBuild(): Promise<void> {
1419
1419
  display: flex; align-items: center; gap: 8px;
1420
1420
  padding: 8px 14px;
1421
1421
  background: var(--surface2);
1422
- border-bottom: 1px solid var(--border);
1422
+ border-bottom: var(--border-width-default) solid var(--border);
1423
1423
  }
1424
1424
 
1425
1425
  .cpub-code-lang-label {
@@ -1457,14 +1457,14 @@ async function handleBuild(): Promise<void> {
1457
1457
  display: flex; align-items: center; gap: 12px;
1458
1458
  padding: 12px 14px;
1459
1459
  background: var(--surface);
1460
- border: 1px solid var(--border);
1460
+ border: var(--border-width-default) solid var(--border);
1461
1461
  box-shadow: var(--shadow-sm);
1462
1462
  }
1463
1463
 
1464
1464
  .cpub-file-icon {
1465
1465
  width: 32px; height: 32px;
1466
1466
  background: var(--surface2);
1467
- border: 1px solid var(--border2);
1467
+ border: var(--border-width-default) solid var(--border2);
1468
1468
  display: flex; align-items: center; justify-content: center;
1469
1469
  font-size: 12px; color: var(--text-faint); flex-shrink: 0;
1470
1470
  }
@@ -3,7 +3,7 @@
3
3
  */
4
4
  import { markdownToBlockTuples } from '@commonpub/editor';
5
5
  import type { BlockTuple } from '@commonpub/editor';
6
- import type { BlockEditor } from './useBlockEditor';
6
+ import type { BlockEditor } from '@commonpub/editor/vue';
7
7
 
8
8
  export function useMarkdownImport(blockEditor: BlockEditor) {
9
9
  const importing = ref(false);
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@commonpub/layer",
3
- "version": "0.7.2",
3
+ "version": "0.7.4",
4
4
  "type": "module",
5
5
  "main": "./nuxt.config.ts",
6
6
  "files": [
@@ -50,16 +50,16 @@
50
50
  "vue": "^3.4.0",
51
51
  "vue-router": "^4.3.0",
52
52
  "zod": "^4.3.6",
53
- "@commonpub/config": "0.8.0",
54
- "@commonpub/docs": "0.6.1",
55
- "@commonpub/editor": "0.5.0",
56
- "@commonpub/explainer": "0.7.2",
53
+ "@commonpub/config": "0.9.0",
54
+ "@commonpub/editor": "0.6.1",
55
+ "@commonpub/explainer": "0.7.3",
56
+ "@commonpub/docs": "0.6.2",
57
57
  "@commonpub/auth": "0.5.0",
58
- "@commonpub/learning": "0.5.0",
59
58
  "@commonpub/protocol": "0.9.7",
60
- "@commonpub/server": "2.27.2",
61
- "@commonpub/schema": "0.9.2",
62
- "@commonpub/ui": "0.8.4"
59
+ "@commonpub/ui": "0.8.5",
60
+ "@commonpub/learning": "0.5.0",
61
+ "@commonpub/schema": "0.9.3",
62
+ "@commonpub/server": "2.27.3"
63
63
  },
64
64
  "devDependencies": {
65
65
  "@testing-library/jest-dom": "^6.9.1",
@@ -456,7 +456,7 @@ function removeTokenOverride(key: string): void {
456
456
  display: inline-block;
457
457
  width: 14px;
458
458
  height: 14px;
459
- border: 1px solid var(--border2);
459
+ border: var(--border-width-default) solid var(--border2);
460
460
  flex-shrink: 0;
461
461
  }
462
462