@saasicat/ui-vue 0.22.2 → 0.23.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.
- package/README.md +1 -1
- package/dist/{chunk-LY52T4N4.js → chunk-TQQMKWN6.js} +58 -1
- package/dist/index.cjs +213 -159
- package/dist/index.d.cts +2 -2
- package/dist/index.d.ts +2 -2
- package/dist/index.js +7 -1
- package/dist/quasar/index.cjs +116 -20
- package/dist/quasar/index.d.cts +48 -3
- package/dist/quasar/index.d.ts +48 -3
- package/dist/quasar/index.js +58 -3
- package/dist/{use-super-admin-i18n-CgTuNi8h.d.cts → use-sa-theme-B5t7oXph.d.cts} +51 -1
- package/dist/{use-super-admin-i18n-CHNdsSlm.d.ts → use-sa-theme-OUBlaqgl.d.ts} +51 -1
- package/package.json +5 -2
- package/src/components/BundleVersionPublishDialog.vue +17 -17
- package/src/components/KvBlock.vue +6 -6
- package/src/components/MarketingPromotionsTab.vue +78 -78
- package/src/components/MfaPromptDialog.vue +2 -2
- package/src/components/TenantActionConfirmDialog.vue +5 -5
- package/src/components/VersionDiffPreview.vue +18 -18
- package/src/components/bundle-editor/BundleCreatePanel.vue +52 -52
- package/src/components/bundle-editor/BundleFeaturesEditor.vue +20 -20
- package/src/components/bundle-editor/BundlePlanCompatPicker.vue +33 -33
- package/src/components/bundle-editor/BundleQuotasEditor.vue +26 -26
- package/src/components/bundle-editor/BundleStatusBanner.vue +21 -21
- package/src/components/bundle-editor/BundleVersionInlineEditor.vue +48 -48
- package/src/components/bundle-editor/BundleVersionStrip.vue +30 -30
- package/src/components/dialogs/PilotCreateDialog.vue +20 -20
- package/src/components/dialogs/PilotEditDialog.vue +6 -6
- package/src/components/dialogs/PromoCodeCreateDialog.vue +9 -9
- package/src/components/dialogs/PromoCodeDialogFields.vue +61 -61
- package/src/components/dialogs/PromoCodeEditDialog.vue +11 -11
- package/src/components/dialogs/pilot-dialog.css +48 -48
- package/src/components/plan/PlanCycleToggle.vue +9 -16
- package/src/components/plan/PlanGrid.vue +30 -34
- package/src/components/plan/PriceSummary.vue +35 -35
- package/src/components/plan/PromoCodeInput.vue +26 -26
- package/src/components/plan/PublicBundleGrid.vue +32 -28
- package/src/components/plan-create-dialog/PlanCreateDialog.vue +49 -49
- package/src/components/plan-detail/PlanDetail.vue +172 -156
- package/src/components/plan-detail/PlanTitleEdit.vue +11 -11
- package/src/components/plan-list/PlanList.vue +98 -77
- package/src/components/plan-matrix/PlanMatrix.vue +89 -89
- package/src/components/plan-review/PlanReview.vue +60 -56
- package/src/components/plan-version-editor/PlanVersionEditor.vue +224 -200
- package/src/components/wizard-stepper/WizardStepper.vue +17 -17
- package/src/index.ts +1 -0
- package/src/pages-standard/AdminLayout.vue +58 -37
- package/src/pages-standard/AdminManifestErrorPage.vue +6 -6
- package/src/pages-standard/AuditPage.vue +3 -3
- package/src/pages-standard/BundlesPage.vue +36 -36
- package/src/pages-standard/DashboardPage.vue +17 -17
- package/src/pages-standard/DiscoveryPage.vue +55 -49
- package/src/pages-standard/EmailHistoryPage.vue +53 -71
- package/src/pages-standard/MarketingCatalogPage.vue +226 -218
- package/src/pages-standard/PilotsPage.vue +7 -6
- package/src/pages-standard/PlatformEmailPage.vue +18 -18
- package/src/pages-standard/PromoCodeDetailPage.vue +3 -3
- package/src/pages-standard/PromoCodesPage.vue +7 -6
- package/src/pages-standard/SuperAdminLoginPage.vue +39 -25
- package/src/pages-standard/SuperAdminSetupWizard.vue +44 -33
- package/src/pages-standard/TenantDetailPage.vue +7 -7
- package/src/pages-standard/TenantsPage.vue +11 -46
- package/src/pages-standard/bundles-page/BundleAccordionList.vue +13 -13
- package/src/pages-standard/discovery-page/CatalogEntryTransPanel.vue +24 -24
- package/src/pages-standard/discovery-page/DiscoveryCapList.vue +22 -22
- package/src/pages-standard/discovery-page/DiscoveryFeatureCard.vue +39 -39
- package/src/pages-standard/discovery-page/DiscoveryQuotaCard.vue +26 -26
- package/src/pages-standard/discovery-page/DiscoveryStatusControl.vue +1 -1
- package/src/pages-standard/plan-versions/PlanDiffCard.vue +16 -16
- package/src/pages-standard/plan-versions/PlanVersionsDiff.vue +21 -15
- package/src/pages-standard/plan-versions/PlanVersionsTimeline.vue +45 -45
- package/src/pages-standard/plans-page/PlanBundleOverview.vue +21 -15
- package/src/pages-standard/plans-page/PlanPublishDialog.vue +4 -4
- package/src/pages-standard/plans-page/PlansPageToast.vue +6 -6
- package/src/pages-standard/sa-theme.css +9 -687
- package/src/pages-standard/tenants/StatusPill.vue +13 -13
- package/src/pages-tenant/LimitsRow.vue +4 -4
- package/src/pages-tenant/MySubscriptionBundlesPage.vue +61 -61
- package/src/pages-tenant/OnboardingConfigurator.vue +24 -24
- package/src/pages-tenant/PackageSnapshotPanel.vue +10 -16
- package/src/pages-tenant/PendingVersionBanner.vue +12 -12
- package/src/pages-tenant/PlanChangeWizard.vue +20 -27
- package/src/pages-tenant/TenantPlanSection.vue +13 -21
- package/src/pages-tenant/UsageBar.vue +7 -7
- package/src/pages-tenant/tenant-plan-section/BundlePreviewDialog.vue +14 -14
- package/src/pages-tenant/tenant-plan-section/TenantBundleStore.vue +10 -10
- package/src/pages-tenant/tenant-plan-section/TenantFeatureMatrix.vue +2 -2
- package/src/quasar/create-super-admin-app.ts +96 -1
- package/src/quasar/dark-bridge.ts +66 -0
- package/src/quasar/index.ts +1 -0
- package/src/ui/theme/_breakpoints.scss +28 -0
- package/src/ui/theme/base.css +50 -0
- package/src/ui/theme/components/body.css +23 -0
- package/src/ui/theme/components/button.css +158 -0
- package/src/ui/theme/components/card.css +48 -0
- package/src/ui/theme/components/field.css +38 -0
- package/src/ui/theme/components/hero.css +46 -0
- package/src/ui/theme/components/paginator.css +63 -0
- package/src/ui/theme/components/section.css +67 -0
- package/src/ui/theme/components/statistics.css +189 -0
- package/src/ui/theme/components/table.css +60 -0
- package/src/ui/theme/index.css +42 -0
- package/src/ui/theme/tokens.legacy.css +147 -0
- package/src/ui/theme/tokens.primitive.css +108 -0
- package/src/ui/theme/tokens.scale.css +103 -0
- package/src/ui/theme/tokens.semantic.dark.css +173 -0
- package/src/ui/theme/tokens.semantic.light.css +212 -0
- package/src/vue/use-sa-theme.ts +154 -0
|
@@ -405,7 +405,7 @@ async function executeTerminate(): Promise<void> {
|
|
|
405
405
|
|
|
406
406
|
<style>
|
|
407
407
|
.pd-code {
|
|
408
|
-
font: 500
|
|
408
|
+
font: 500 var(--sa-text-xs) var(--sa-font-mono);
|
|
409
409
|
}
|
|
410
410
|
|
|
411
411
|
/* buttons + chips (1:1 styles.css) */
|
|
@@ -415,29 +415,29 @@ async function executeTerminate(): Promise<void> {
|
|
|
415
415
|
gap: 7px;
|
|
416
416
|
padding: 8px 14px;
|
|
417
417
|
border-radius: 7px;
|
|
418
|
-
font: 500
|
|
418
|
+
font: 500 var(--sa-text-md) var(--sa-font-body);
|
|
419
419
|
cursor: pointer;
|
|
420
|
-
border: 1px solid var(--sa-border-strong);
|
|
421
|
-
background:
|
|
422
|
-
color: var(--sa-heading);
|
|
420
|
+
border: 1px solid var(--sa-color-border-strong);
|
|
421
|
+
background: var(--sa-color-bg-surface);
|
|
422
|
+
color: var(--sa-color-fg-heading);
|
|
423
423
|
transition:
|
|
424
424
|
background 0.12s,
|
|
425
425
|
border-color 0.12s;
|
|
426
426
|
}
|
|
427
427
|
.btn:hover {
|
|
428
|
-
background: var(--sa-bg-
|
|
428
|
+
background: var(--sa-color-bg-sunken);
|
|
429
429
|
}
|
|
430
430
|
.btn.primary {
|
|
431
|
-
background: var(--sa-
|
|
432
|
-
border-color: var(--sa-
|
|
433
|
-
color:
|
|
431
|
+
background: var(--sa-color-accent);
|
|
432
|
+
border-color: var(--sa-color-accent);
|
|
433
|
+
color: var(--sa-color-fg-on-accent);
|
|
434
434
|
}
|
|
435
435
|
.btn.primary:hover {
|
|
436
|
-
background: var(--sa-
|
|
436
|
+
background: var(--sa-color-accent-strong);
|
|
437
437
|
}
|
|
438
438
|
.btn.btn--sm {
|
|
439
439
|
padding: 5px 9px;
|
|
440
|
-
font-size:
|
|
440
|
+
font-size: var(--sa-text-sm);
|
|
441
441
|
gap: 5px;
|
|
442
442
|
}
|
|
443
443
|
.chip {
|
|
@@ -446,26 +446,26 @@ async function executeTerminate(): Promise<void> {
|
|
|
446
446
|
gap: 5px;
|
|
447
447
|
padding: 2px 8px;
|
|
448
448
|
border-radius: 999px;
|
|
449
|
-
font-size:
|
|
449
|
+
font-size: var(--sa-text-xs);
|
|
450
450
|
font-weight: 600;
|
|
451
|
-
background: var(--sa-bg-
|
|
452
|
-
color: var(--sa-
|
|
453
|
-
border: 1px solid var(--sa-border);
|
|
451
|
+
background: var(--sa-color-bg-sunken);
|
|
452
|
+
color: var(--sa-color-fg-secondary);
|
|
453
|
+
border: 1px solid var(--sa-color-border);
|
|
454
454
|
}
|
|
455
455
|
.chip.live {
|
|
456
|
-
background: var(--sa-positive-
|
|
457
|
-
color:
|
|
458
|
-
border-color:
|
|
456
|
+
background: var(--sa-color-positive-surface);
|
|
457
|
+
color: var(--sa-color-positive-fg);
|
|
458
|
+
border-color: var(--sa-color-positive-border);
|
|
459
459
|
}
|
|
460
460
|
.chip.draft {
|
|
461
|
-
background: var(--sa-warning-
|
|
462
|
-
color:
|
|
463
|
-
border-color:
|
|
461
|
+
background: var(--sa-color-warning-surface);
|
|
462
|
+
color: var(--sa-color-warning-fg);
|
|
463
|
+
border-color: var(--sa-color-warning-border);
|
|
464
464
|
}
|
|
465
465
|
.chip.supersed {
|
|
466
|
-
background: var(--sa-border-soft);
|
|
467
|
-
color: var(--sa-
|
|
468
|
-
border-color:
|
|
466
|
+
background: var(--sa-color-border-soft);
|
|
467
|
+
color: var(--sa-color-fg-secondary);
|
|
468
|
+
border-color: var(--sa-color-border-strong);
|
|
469
469
|
}
|
|
470
470
|
.chip.dot::before {
|
|
471
471
|
content: '';
|
|
@@ -496,18 +496,18 @@ async function executeTerminate(): Promise<void> {
|
|
|
496
496
|
align-items: flex-start;
|
|
497
497
|
gap: 12px;
|
|
498
498
|
padding: 14px 16px 12px;
|
|
499
|
-
border-bottom: 1px solid var(--sa-border-soft);
|
|
499
|
+
border-bottom: 1px solid var(--sa-color-border-soft);
|
|
500
500
|
}
|
|
501
501
|
.pd-panel-title {
|
|
502
|
-
font-size:
|
|
502
|
+
font-size: var(--sa-text-lg);
|
|
503
503
|
font-weight: 700;
|
|
504
504
|
margin: 0;
|
|
505
505
|
letter-spacing: -0.01em;
|
|
506
|
-
color: var(--sa-heading);
|
|
506
|
+
color: var(--sa-color-fg-heading);
|
|
507
507
|
}
|
|
508
508
|
.pd-panel-sub {
|
|
509
|
-
font-size:
|
|
510
|
-
color: var(--sa-muted);
|
|
509
|
+
font-size: var(--sa-text-sm);
|
|
510
|
+
color: var(--sa-color-fg-muted);
|
|
511
511
|
margin-top: 3px;
|
|
512
512
|
}
|
|
513
513
|
.pd-panel-head-right {
|
|
@@ -525,13 +525,13 @@ async function executeTerminate(): Promise<void> {
|
|
|
525
525
|
display: flex;
|
|
526
526
|
align-items: center;
|
|
527
527
|
gap: 6px;
|
|
528
|
-
font-size:
|
|
529
|
-
color: var(--sa-
|
|
528
|
+
font-size: var(--sa-text-xs);
|
|
529
|
+
color: var(--sa-color-fg-subtle);
|
|
530
530
|
margin-bottom: 8px;
|
|
531
531
|
font-weight: 500;
|
|
532
532
|
}
|
|
533
533
|
.pd-timeline-hint svg {
|
|
534
|
-
color:
|
|
534
|
+
color: var(--sa-color-fg-disabled);
|
|
535
535
|
width: 12px;
|
|
536
536
|
height: 12px;
|
|
537
537
|
}
|
|
@@ -540,16 +540,16 @@ async function executeTerminate(): Promise<void> {
|
|
|
540
540
|
height: 24px;
|
|
541
541
|
border-radius: 6px;
|
|
542
542
|
overflow: hidden;
|
|
543
|
-
background: var(--sa-border-soft);
|
|
544
|
-
border: 1px solid var(--sa-border);
|
|
543
|
+
background: var(--sa-color-border-soft);
|
|
544
|
+
border: 1px solid var(--sa-color-border);
|
|
545
545
|
}
|
|
546
546
|
.pd-timeline-seg {
|
|
547
547
|
display: flex;
|
|
548
548
|
align-items: center;
|
|
549
549
|
justify-content: center;
|
|
550
|
-
font: 600
|
|
551
|
-
color:
|
|
552
|
-
border-right: 1px solid
|
|
550
|
+
font: 600 var(--sa-text-xs) var(--sa-font-body);
|
|
551
|
+
color: var(--sa-color-fg-secondary);
|
|
552
|
+
border-right: 1px solid var(--sa-color-border-soft);
|
|
553
553
|
white-space: nowrap;
|
|
554
554
|
padding: 0 8px;
|
|
555
555
|
min-width: 0;
|
|
@@ -570,44 +570,48 @@ async function executeTerminate(): Promise<void> {
|
|
|
570
570
|
transform: translateY(0);
|
|
571
571
|
}
|
|
572
572
|
.pd-timeline-seg.superseded {
|
|
573
|
-
background: var(--sa-border);
|
|
574
|
-
color: var(--sa-
|
|
573
|
+
background: var(--sa-color-border);
|
|
574
|
+
color: var(--sa-color-fg-secondary);
|
|
575
575
|
}
|
|
576
576
|
.pd-timeline-seg.live {
|
|
577
|
-
background:
|
|
578
|
-
color:
|
|
577
|
+
background: var(--sa-color-positive-surface-strong);
|
|
578
|
+
color: var(--sa-color-positive-fg);
|
|
579
579
|
font-weight: 700;
|
|
580
580
|
}
|
|
581
581
|
.pd-timeline-seg.draft {
|
|
582
|
-
background: repeating-linear-gradient(
|
|
583
|
-
|
|
582
|
+
background: repeating-linear-gradient(
|
|
583
|
+
135deg,
|
|
584
|
+
var(--sa-color-warning-border) 0 8px,
|
|
585
|
+
var(--sa-color-warning-strong) 8px 16px
|
|
586
|
+
);
|
|
587
|
+
color: var(--sa-color-warning-fg);
|
|
584
588
|
font-weight: 700;
|
|
585
589
|
}
|
|
586
590
|
.pd-timeline-seg.is-selected {
|
|
587
591
|
position: relative;
|
|
588
592
|
z-index: 1;
|
|
589
|
-
outline: 2px solid var(--sa-
|
|
593
|
+
outline: 2px solid var(--sa-color-accent);
|
|
590
594
|
outline-offset: -2px;
|
|
591
|
-
box-shadow: 0 0 0 3px
|
|
595
|
+
box-shadow: 0 0 0 3px var(--sa-shadow-tint-3);
|
|
592
596
|
font-weight: 700;
|
|
593
597
|
}
|
|
594
598
|
.pd-timeline-seg.is-selected.superseded {
|
|
595
|
-
color: var(--sa-heading);
|
|
599
|
+
color: var(--sa-color-fg-heading);
|
|
596
600
|
}
|
|
597
601
|
.pd-timeline-seg.is-selected.live {
|
|
598
|
-
outline-color:
|
|
599
|
-
box-shadow: 0 0 0 3px
|
|
602
|
+
outline-color: var(--sa-color-positive);
|
|
603
|
+
box-shadow: 0 0 0 3px var(--sa-shadow-tint-4);
|
|
600
604
|
}
|
|
601
605
|
.pd-timeline-seg.is-selected.draft {
|
|
602
|
-
outline-color:
|
|
603
|
-
box-shadow: 0 0 0 3px
|
|
606
|
+
outline-color: var(--sa-color-warning-fg);
|
|
607
|
+
box-shadow: 0 0 0 3px var(--sa-shadow-tint-4);
|
|
604
608
|
}
|
|
605
609
|
.pd-timeline-ticks {
|
|
606
610
|
display: flex;
|
|
607
611
|
justify-content: space-between;
|
|
608
612
|
margin-top: 6px;
|
|
609
|
-
font: 500
|
|
610
|
-
color: var(--sa-
|
|
613
|
+
font: 500 var(--sa-text-xs) var(--sa-font-mono);
|
|
614
|
+
color: var(--sa-color-fg-subtle);
|
|
611
615
|
}
|
|
612
616
|
|
|
613
617
|
/* versions table */
|
|
@@ -623,21 +627,21 @@ async function executeTerminate(): Promise<void> {
|
|
|
623
627
|
64px minmax(0, 1.4fr) minmax(0, 1.1fr) minmax(0, 0.8fr) minmax(0, 1fr)
|
|
624
628
|
minmax(96px, auto);
|
|
625
629
|
align-items: stretch;
|
|
626
|
-
border-top: 1px solid var(--sa-border-soft);
|
|
630
|
+
border-top: 1px solid var(--sa-color-border-soft);
|
|
627
631
|
margin-top: 12px;
|
|
628
632
|
}
|
|
629
633
|
.pd-versions-head {
|
|
630
634
|
display: contents;
|
|
631
635
|
}
|
|
632
636
|
.pd-versions-head > div {
|
|
633
|
-
background:
|
|
637
|
+
background: var(--sa-color-bg-surface-raised);
|
|
634
638
|
padding: 9px 12px;
|
|
635
|
-
font-size:
|
|
639
|
+
font-size: var(--sa-text-2xs);
|
|
636
640
|
text-transform: uppercase;
|
|
637
641
|
letter-spacing: 0.1em;
|
|
638
|
-
color: var(--sa-muted);
|
|
642
|
+
color: var(--sa-color-fg-muted);
|
|
639
643
|
font-weight: 700;
|
|
640
|
-
border-bottom: 1px solid var(--sa-border);
|
|
644
|
+
border-bottom: 1px solid var(--sa-color-border);
|
|
641
645
|
}
|
|
642
646
|
.pd-vrow {
|
|
643
647
|
display: contents;
|
|
@@ -645,41 +649,41 @@ async function executeTerminate(): Promise<void> {
|
|
|
645
649
|
}
|
|
646
650
|
.pd-vrow > div {
|
|
647
651
|
padding: 13px 12px;
|
|
648
|
-
border-bottom: 1px solid var(--sa-border-soft);
|
|
652
|
+
border-bottom: 1px solid var(--sa-color-border-soft);
|
|
649
653
|
display: flex;
|
|
650
654
|
align-items: center;
|
|
651
|
-
font-size:
|
|
652
|
-
color: var(--sa-heading);
|
|
655
|
+
font-size: var(--sa-text-md);
|
|
656
|
+
color: var(--sa-color-fg-heading);
|
|
653
657
|
}
|
|
654
658
|
.pd-vrow:hover > div {
|
|
655
|
-
background:
|
|
659
|
+
background: var(--sa-color-bg-surface-raised);
|
|
656
660
|
}
|
|
657
661
|
.pd-vrow.is-draft > div {
|
|
658
|
-
background:
|
|
662
|
+
background: var(--sa-color-warning-surface);
|
|
659
663
|
}
|
|
660
664
|
.pd-vrow.is-draft:hover > div {
|
|
661
|
-
background:
|
|
665
|
+
background: var(--sa-color-warning-surface);
|
|
662
666
|
}
|
|
663
667
|
.pd-vrow.is-selected > div {
|
|
664
|
-
background: var(--sa-
|
|
665
|
-
box-shadow: inset 0 -1px 0 0
|
|
668
|
+
background: var(--sa-color-accent-surface-strong) !important;
|
|
669
|
+
box-shadow: inset 0 -1px 0 0 var(--sa-color-info-border);
|
|
666
670
|
}
|
|
667
671
|
.pd-vrow.is-selected.is-draft > div {
|
|
668
|
-
background:
|
|
669
|
-
box-shadow: inset 0 -1px 0 0
|
|
672
|
+
background: var(--sa-color-warning-surface-strong) !important;
|
|
673
|
+
box-shadow: inset 0 -1px 0 0 var(--sa-color-warning-border);
|
|
670
674
|
}
|
|
671
675
|
.pd-vrow.is-selected > div:first-child {
|
|
672
676
|
box-shadow:
|
|
673
|
-
inset 3px 0 0 0 var(--sa-
|
|
674
|
-
inset 0 -1px 0 0
|
|
677
|
+
inset 3px 0 0 0 var(--sa-color-accent),
|
|
678
|
+
inset 0 -1px 0 0 var(--sa-color-info-border);
|
|
675
679
|
}
|
|
676
680
|
.pd-vrow.is-draft > div:first-child {
|
|
677
|
-
box-shadow: inset 3px 0 0 0
|
|
681
|
+
box-shadow: inset 3px 0 0 0 var(--sa-color-warning-strong);
|
|
678
682
|
}
|
|
679
683
|
.pd-vrow.is-selected.is-draft > div:first-child {
|
|
680
684
|
box-shadow:
|
|
681
|
-
inset 3px 0 0 0
|
|
682
|
-
inset 0 -1px 0 0
|
|
685
|
+
inset 3px 0 0 0 var(--sa-color-warning-strong),
|
|
686
|
+
inset 0 -1px 0 0 var(--sa-color-warning-border);
|
|
683
687
|
}
|
|
684
688
|
.pd-vcol {
|
|
685
689
|
display: flex;
|
|
@@ -688,7 +692,7 @@ async function executeTerminate(): Promise<void> {
|
|
|
688
692
|
align-items: flex-start;
|
|
689
693
|
}
|
|
690
694
|
.pd-v-num {
|
|
691
|
-
font: 700
|
|
695
|
+
font: 700 var(--sa-text-lg) var(--sa-font-body);
|
|
692
696
|
}
|
|
693
697
|
.pd-validity {
|
|
694
698
|
display: flex;
|
|
@@ -701,33 +705,33 @@ async function executeTerminate(): Promise<void> {
|
|
|
701
705
|
gap: 6px;
|
|
702
706
|
}
|
|
703
707
|
.pd-validity-sub {
|
|
704
|
-
font-size:
|
|
705
|
-
color: var(--sa-
|
|
708
|
+
font-size: var(--sa-text-xs);
|
|
709
|
+
color: var(--sa-color-fg-subtle);
|
|
706
710
|
}
|
|
707
711
|
.pd-validity-date {
|
|
708
|
-
font: 500
|
|
712
|
+
font: 500 var(--sa-text-md) var(--sa-font-mono);
|
|
709
713
|
}
|
|
710
714
|
.pd-arrow-inf {
|
|
711
|
-
font: 600
|
|
712
|
-
color: var(--sa-
|
|
715
|
+
font: 600 var(--sa-text-md) var(--sa-font-mono);
|
|
716
|
+
color: var(--sa-color-fg-subtle);
|
|
713
717
|
}
|
|
714
718
|
.pd-pricing-m {
|
|
715
|
-
font: 600
|
|
719
|
+
font: 600 var(--sa-text-md) var(--sa-font-body);
|
|
716
720
|
}
|
|
717
721
|
.pd-pricing-y {
|
|
718
|
-
font: 500
|
|
719
|
-
color: var(--sa-
|
|
722
|
+
font: 500 var(--sa-text-xs) var(--sa-font-body);
|
|
723
|
+
color: var(--sa-color-fg-subtle);
|
|
720
724
|
margin-top: 2px;
|
|
721
725
|
}
|
|
722
726
|
.pd-impact-num {
|
|
723
|
-
font: 700
|
|
727
|
+
font: 700 var(--sa-text-lg) var(--sa-font-body);
|
|
724
728
|
}
|
|
725
729
|
.pd-impact-sub {
|
|
726
|
-
font-size:
|
|
727
|
-
color: var(--sa-
|
|
730
|
+
font-size: var(--sa-text-xs);
|
|
731
|
+
color: var(--sa-color-fg-subtle);
|
|
728
732
|
}
|
|
729
733
|
.pd-change-note {
|
|
730
|
-
color: var(--sa-
|
|
734
|
+
color: var(--sa-color-fg-subtle);
|
|
731
735
|
font-style: italic;
|
|
732
736
|
overflow: hidden;
|
|
733
737
|
text-overflow: ellipsis;
|
|
@@ -744,10 +748,10 @@ async function executeTerminate(): Promise<void> {
|
|
|
744
748
|
align-items: center;
|
|
745
749
|
padding: 3px 8px;
|
|
746
750
|
border-radius: 999px;
|
|
747
|
-
font: 600
|
|
748
|
-
background: var(--sa-warning-
|
|
749
|
-
color:
|
|
750
|
-
border: 1px solid
|
|
751
|
+
font: 600 var(--sa-text-xs) var(--sa-font-mono);
|
|
752
|
+
background: var(--sa-color-warning-surface);
|
|
753
|
+
color: var(--sa-color-warning-fg);
|
|
754
|
+
border: 1px solid var(--sa-color-warning-border);
|
|
751
755
|
white-space: nowrap;
|
|
752
756
|
}
|
|
753
757
|
|
|
@@ -757,24 +761,24 @@ async function executeTerminate(): Promise<void> {
|
|
|
757
761
|
gap: 6px;
|
|
758
762
|
}
|
|
759
763
|
.pd-diff-chip {
|
|
760
|
-
font: 700
|
|
764
|
+
font: 700 var(--sa-text-xs) var(--sa-font-mono);
|
|
761
765
|
padding: 3px 8px;
|
|
762
766
|
border-radius: 6px;
|
|
763
767
|
}
|
|
764
768
|
.pd-diff-chip.add {
|
|
765
|
-
background: var(--sa-positive-
|
|
766
|
-
color:
|
|
767
|
-
border: 1px solid
|
|
769
|
+
background: var(--sa-color-positive-surface);
|
|
770
|
+
color: var(--sa-color-positive-fg);
|
|
771
|
+
border: 1px solid var(--sa-color-positive-border);
|
|
768
772
|
}
|
|
769
773
|
.pd-diff-chip.rm {
|
|
770
|
-
background:
|
|
771
|
-
color:
|
|
772
|
-
border: 1px solid
|
|
774
|
+
background: var(--sa-color-negative-surface);
|
|
775
|
+
color: var(--sa-color-negative-fg);
|
|
776
|
+
border: 1px solid var(--sa-color-negative-border);
|
|
773
777
|
}
|
|
774
778
|
.pd-diff-chip.mod {
|
|
775
|
-
background: var(--sa-border-soft);
|
|
776
|
-
color: var(--sa-
|
|
777
|
-
border: 1px solid var(--sa-border);
|
|
779
|
+
background: var(--sa-color-border-soft);
|
|
780
|
+
color: var(--sa-color-fg-secondary);
|
|
781
|
+
border: 1px solid var(--sa-color-border);
|
|
778
782
|
}
|
|
779
783
|
.pd-diff-list {
|
|
780
784
|
padding: 12px;
|
|
@@ -786,23 +790,35 @@ async function executeTerminate(): Promise<void> {
|
|
|
786
790
|
display: flex;
|
|
787
791
|
align-items: center;
|
|
788
792
|
gap: 10px;
|
|
789
|
-
background:
|
|
790
|
-
border: 1px solid var(--sa-border);
|
|
793
|
+
background: var(--sa-color-bg-surface);
|
|
794
|
+
border: 1px solid var(--sa-color-border);
|
|
791
795
|
border-radius: 8px;
|
|
792
796
|
padding: 11px 12px 11px 0;
|
|
793
797
|
overflow: hidden;
|
|
794
798
|
}
|
|
795
799
|
.pd-diff-row.add {
|
|
796
|
-
background: linear-gradient(
|
|
797
|
-
|
|
800
|
+
background: linear-gradient(
|
|
801
|
+
90deg,
|
|
802
|
+
var(--sa-color-positive-surface) 0%,
|
|
803
|
+
var(--sa-color-bg-surface) 60%
|
|
804
|
+
);
|
|
805
|
+
border-color: var(--sa-color-positive-border);
|
|
798
806
|
}
|
|
799
807
|
.pd-diff-row.rm {
|
|
800
|
-
background: linear-gradient(
|
|
801
|
-
|
|
808
|
+
background: linear-gradient(
|
|
809
|
+
90deg,
|
|
810
|
+
var(--sa-color-negative-surface) 0%,
|
|
811
|
+
var(--sa-color-bg-surface) 60%
|
|
812
|
+
);
|
|
813
|
+
border-color: var(--sa-color-negative-border);
|
|
802
814
|
}
|
|
803
815
|
.pd-diff-row.mod {
|
|
804
|
-
background: linear-gradient(
|
|
805
|
-
|
|
816
|
+
background: linear-gradient(
|
|
817
|
+
90deg,
|
|
818
|
+
var(--sa-color-bg-sunken) 0%,
|
|
819
|
+
var(--sa-color-bg-surface) 60%
|
|
820
|
+
);
|
|
821
|
+
border-color: var(--sa-color-border);
|
|
806
822
|
}
|
|
807
823
|
.pd-diff-icon {
|
|
808
824
|
width: 32px;
|
|
@@ -810,17 +826,17 @@ async function executeTerminate(): Promise<void> {
|
|
|
810
826
|
display: grid;
|
|
811
827
|
place-items: center;
|
|
812
828
|
flex: 0 0 32px;
|
|
813
|
-
color:
|
|
814
|
-
font: 700
|
|
829
|
+
color: var(--sa-color-fg-on-accent);
|
|
830
|
+
font: 700 var(--sa-text-lg) var(--sa-font-body);
|
|
815
831
|
}
|
|
816
832
|
.pd-diff-row.add .pd-diff-icon {
|
|
817
|
-
background:
|
|
833
|
+
background: var(--sa-color-positive-strong);
|
|
818
834
|
}
|
|
819
835
|
.pd-diff-row.rm .pd-diff-icon {
|
|
820
|
-
background:
|
|
836
|
+
background: var(--sa-color-negative-strong);
|
|
821
837
|
}
|
|
822
838
|
.pd-diff-row.mod .pd-diff-icon {
|
|
823
|
-
background: var(--sa-
|
|
839
|
+
background: var(--sa-color-inverse-surface);
|
|
824
840
|
}
|
|
825
841
|
.pd-diff-body {
|
|
826
842
|
flex: 1;
|
|
@@ -831,63 +847,63 @@ async function executeTerminate(): Promise<void> {
|
|
|
831
847
|
flex-wrap: wrap;
|
|
832
848
|
}
|
|
833
849
|
.pd-diff-kind {
|
|
834
|
-
font: 700
|
|
850
|
+
font: 700 var(--sa-text-2xs) var(--sa-font-mono);
|
|
835
851
|
text-transform: uppercase;
|
|
836
852
|
letter-spacing: 0.1em;
|
|
837
|
-
color: var(--sa-muted);
|
|
853
|
+
color: var(--sa-color-fg-muted);
|
|
838
854
|
}
|
|
839
855
|
.pd-diff-label {
|
|
840
|
-
font-size:
|
|
856
|
+
font-size: var(--sa-text-md);
|
|
841
857
|
font-weight: 600;
|
|
842
|
-
color: var(--sa-heading);
|
|
858
|
+
color: var(--sa-color-fg-heading);
|
|
843
859
|
}
|
|
844
860
|
.pd-diff-key {
|
|
845
|
-
font: 500
|
|
846
|
-
color: var(--sa-
|
|
861
|
+
font: 500 var(--sa-text-xs) var(--sa-font-mono);
|
|
862
|
+
color: var(--sa-color-fg-subtle);
|
|
847
863
|
}
|
|
848
864
|
.pd-diff-vals {
|
|
849
865
|
display: flex;
|
|
850
866
|
align-items: center;
|
|
851
867
|
gap: 6px;
|
|
852
|
-
font: 500
|
|
868
|
+
font: 500 var(--sa-text-sm) var(--sa-font-mono);
|
|
853
869
|
}
|
|
854
870
|
.pd-diff-strike {
|
|
855
871
|
text-decoration: line-through;
|
|
856
|
-
color: var(--sa-
|
|
872
|
+
color: var(--sa-color-fg-subtle);
|
|
857
873
|
}
|
|
858
874
|
.pd-diff-arrow {
|
|
859
|
-
color:
|
|
875
|
+
color: var(--sa-color-fg-disabled);
|
|
860
876
|
}
|
|
861
877
|
.pd-diff-new {
|
|
862
|
-
color:
|
|
878
|
+
color: var(--sa-color-positive-fg);
|
|
863
879
|
font-weight: 600;
|
|
864
880
|
}
|
|
865
881
|
.pd-diff-tag {
|
|
866
882
|
margin-left: auto;
|
|
867
|
-
font-size:
|
|
883
|
+
font-size: var(--sa-text-xs);
|
|
868
884
|
font-weight: 600;
|
|
869
885
|
padding: 2px 9px;
|
|
870
886
|
border-radius: 999px;
|
|
871
887
|
border: 1px solid;
|
|
872
888
|
}
|
|
873
889
|
.pd-diff-tag.add {
|
|
874
|
-
background:
|
|
875
|
-
color:
|
|
876
|
-
border-color:
|
|
890
|
+
background: var(--sa-color-bg-surface);
|
|
891
|
+
color: var(--sa-color-positive-fg);
|
|
892
|
+
border-color: var(--sa-color-positive-border);
|
|
877
893
|
}
|
|
878
894
|
.pd-diff-tag.rm {
|
|
879
|
-
background:
|
|
880
|
-
color:
|
|
881
|
-
border-color:
|
|
895
|
+
background: var(--sa-color-bg-surface);
|
|
896
|
+
color: var(--sa-color-negative-fg);
|
|
897
|
+
border-color: var(--sa-color-negative-border);
|
|
882
898
|
}
|
|
883
899
|
.pd-diff-tag.mod {
|
|
884
|
-
background:
|
|
885
|
-
color: var(--sa-
|
|
886
|
-
border-color:
|
|
900
|
+
background: var(--sa-color-bg-surface);
|
|
901
|
+
color: var(--sa-color-fg-secondary);
|
|
902
|
+
border-color: var(--sa-color-border-strong);
|
|
887
903
|
}
|
|
888
904
|
.pd-diff-row.plain {
|
|
889
|
-
background:
|
|
890
|
-
border-color: var(--sa-border);
|
|
905
|
+
background: var(--sa-color-bg-surface);
|
|
906
|
+
border-color: var(--sa-color-border);
|
|
891
907
|
padding: 11px 12px 11px 0;
|
|
892
908
|
}
|
|
893
909
|
.pd-diff-section {
|
|
@@ -896,10 +912,10 @@ async function executeTerminate(): Promise<void> {
|
|
|
896
912
|
gap: 8px;
|
|
897
913
|
margin-top: 6px;
|
|
898
914
|
padding: 0 2px;
|
|
899
|
-
font-size:
|
|
915
|
+
font-size: var(--sa-text-xs);
|
|
900
916
|
text-transform: uppercase;
|
|
901
917
|
letter-spacing: 0.1em;
|
|
902
|
-
color: var(--sa-
|
|
918
|
+
color: var(--sa-color-fg-subtle);
|
|
903
919
|
font-weight: 700;
|
|
904
920
|
}
|
|
905
921
|
.pd-diff-section:first-child {
|
|
@@ -908,18 +924,18 @@ async function executeTerminate(): Promise<void> {
|
|
|
908
924
|
.pd-diff-section hr {
|
|
909
925
|
flex: 1;
|
|
910
926
|
border: 0;
|
|
911
|
-
border-top: 1px dashed var(--sa-border);
|
|
927
|
+
border-top: 1px dashed var(--sa-color-border);
|
|
912
928
|
}
|
|
913
929
|
.pd-diff-empty {
|
|
914
930
|
padding: 28px 18px;
|
|
915
931
|
text-align: center;
|
|
916
|
-
color: var(--sa-
|
|
917
|
-
font-size:
|
|
932
|
+
color: var(--sa-color-fg-subtle);
|
|
933
|
+
font-size: var(--sa-text-md);
|
|
918
934
|
}
|
|
919
935
|
.pd-diff-empty b {
|
|
920
936
|
display: block;
|
|
921
|
-
color: var(--sa-
|
|
922
|
-
font-size:
|
|
937
|
+
color: var(--sa-color-fg-secondary);
|
|
938
|
+
font-size: var(--sa-text-lg);
|
|
923
939
|
margin-bottom: 4px;
|
|
924
940
|
}
|
|
925
941
|
|
|
@@ -935,7 +951,7 @@ async function executeTerminate(): Promise<void> {
|
|
|
935
951
|
align-items: center;
|
|
936
952
|
gap: 14px;
|
|
937
953
|
padding: 9px 0;
|
|
938
|
-
border-top: 1px solid var(--sa-border-soft);
|
|
954
|
+
border-top: 1px solid var(--sa-color-border-soft);
|
|
939
955
|
}
|
|
940
956
|
.pd-audit-row:first-child {
|
|
941
957
|
border-top: 0;
|
|
@@ -947,44 +963,44 @@ async function executeTerminate(): Promise<void> {
|
|
|
947
963
|
flex: 0 0 auto;
|
|
948
964
|
}
|
|
949
965
|
.pd-audit-draft {
|
|
950
|
-
background:
|
|
966
|
+
background: var(--sa-color-warning-strong);
|
|
951
967
|
}
|
|
952
968
|
.pd-audit-add {
|
|
953
|
-
background:
|
|
969
|
+
background: var(--sa-color-positive-strong);
|
|
954
970
|
}
|
|
955
971
|
.pd-audit-change {
|
|
956
|
-
background: var(--sa-
|
|
972
|
+
background: var(--sa-color-accent);
|
|
957
973
|
}
|
|
958
974
|
.pd-audit-publish {
|
|
959
|
-
background:
|
|
975
|
+
background: var(--sa-color-feature);
|
|
960
976
|
}
|
|
961
977
|
.pd-audit-remove {
|
|
962
|
-
background:
|
|
978
|
+
background: var(--sa-color-negative-strong);
|
|
963
979
|
}
|
|
964
980
|
.pd-audit-when {
|
|
965
|
-
font-size:
|
|
966
|
-
color: var(--sa-muted);
|
|
981
|
+
font-size: var(--sa-text-sm);
|
|
982
|
+
color: var(--sa-color-fg-muted);
|
|
967
983
|
min-width: 130px;
|
|
968
984
|
}
|
|
969
985
|
.pd-audit-avatar {
|
|
970
986
|
width: 24px;
|
|
971
987
|
height: 24px;
|
|
972
988
|
border-radius: 50%;
|
|
973
|
-
background: var(--sa-
|
|
974
|
-
color:
|
|
989
|
+
background: var(--sa-color-inverse-bg);
|
|
990
|
+
color: var(--sa-color-fg-on-accent);
|
|
975
991
|
display: grid;
|
|
976
992
|
place-items: center;
|
|
977
|
-
font: 700
|
|
993
|
+
font: 700 var(--sa-text-xs) var(--sa-font-body);
|
|
978
994
|
flex: 0 0 auto;
|
|
979
995
|
}
|
|
980
996
|
.pd-audit-who {
|
|
981
|
-
font-size:
|
|
982
|
-
color: var(--sa-
|
|
997
|
+
font-size: var(--sa-text-sm);
|
|
998
|
+
color: var(--sa-color-fg-secondary);
|
|
983
999
|
min-width: 64px;
|
|
984
1000
|
}
|
|
985
1001
|
.pd-audit-what {
|
|
986
|
-
font-size:
|
|
987
|
-
color: var(--sa-heading);
|
|
1002
|
+
font-size: var(--sa-text-md);
|
|
1003
|
+
color: var(--sa-color-fg-heading);
|
|
988
1004
|
flex: 1;
|
|
989
1005
|
}
|
|
990
1006
|
|