@saasicat/ui-vue 0.22.2 → 0.24.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/{chunk-XMMFN2WJ.js → chunk-VYMTWCTT.js} +51 -1
- package/dist/client/index.cjs +57 -0
- package/dist/client/index.d.cts +58 -1
- package/dist/client/index.d.ts +58 -1
- package/dist/client/index.js +15 -1
- package/dist/index.cjs +321 -159
- package/dist/index.d.cts +67 -4
- package/dist/index.d.ts +67 -4
- package/dist/index.js +72 -2
- 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/client/identity-accents.ts +129 -0
- package/src/client/index.ts +1 -0
- package/src/components/BundleVersionPublishDialog.vue +17 -17
- package/src/components/KvBlock.vue +6 -6
- package/src/components/MarketingPromotionsTab.vue +84 -80
- 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 +49 -49
- 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 +64 -63
- 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 +50 -50
- package/src/components/plan-detail/PlanDetail.vue +178 -157
- package/src/components/plan-detail/PlanTitleEdit.vue +11 -11
- package/src/components/plan-list/PlanList.vue +116 -100
- package/src/components/plan-matrix/PlanMatrix.vue +97 -114
- package/src/components/plan-review/PlanReview.vue +61 -57
- package/src/components/plan-version-editor/PlanVersionEditor.vue +246 -203
- 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 +37 -37
- package/src/pages-standard/DashboardPage.vue +22 -19
- package/src/pages-standard/DiscoveryPage.vue +55 -49
- package/src/pages-standard/EmailHistoryPage.vue +53 -71
- package/src/pages-standard/MarketingCatalogPage.vue +245 -221
- 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 +10 -7
- 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 +16 -50
- 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/discovery-page/discovery-ui.ts +10 -7
- package/src/pages-standard/marketing-catalog/MarketingCatalogAdmin.vue +2 -5
- package/src/pages-standard/plan-versions/PlanDiffCard.vue +27 -20
- package/src/pages-standard/plan-versions/PlanVersionsDiff.vue +24 -16
- 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-standard/tenants/format.ts +11 -12
- package/src/pages-tenant/LimitsRow.vue +4 -4
- package/src/pages-tenant/MySubscriptionBundlesPage.vue +70 -61
- package/src/pages-tenant/OnboardingConfigurator.vue +25 -25
- package/src/pages-tenant/PackageSnapshotPanel.vue +10 -16
- package/src/pages-tenant/PendingVersionBanner.vue +12 -12
- package/src/pages-tenant/PlanChangeWizard.vue +22 -76
- package/src/pages-tenant/TenantPlanSection.vue +19 -69
- package/src/pages-tenant/UsageBar.vue +7 -7
- package/src/pages-tenant/default-i18n.ts +113 -0
- 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 +34 -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 +74 -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 +112 -0
- package/src/ui/theme/tokens.scale.css +103 -0
- package/src/ui/theme/tokens.semantic.dark.css +185 -0
- package/src/ui/theme/tokens.semantic.light.css +242 -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,53 @@ 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
|
-
|
|
583
|
-
|
|
582
|
+
/* Hatched from the two warning TINTS, not from the saturated amber.
|
|
583
|
+
* `--sa-color-warning-strong` is a border and icon tone: it put the label
|
|
584
|
+
* at 2.34:1 in light and 1.34:1 in dark on every second stripe. The tinted
|
|
585
|
+
* pair is what the guide documents for text on a status surface, and what
|
|
586
|
+
* `.live` above already uses. */
|
|
587
|
+
background: repeating-linear-gradient(
|
|
588
|
+
135deg,
|
|
589
|
+
var(--sa-color-warning-surface) 0 8px,
|
|
590
|
+
var(--sa-color-warning-surface-strong) 8px 16px
|
|
591
|
+
);
|
|
592
|
+
color: var(--sa-color-warning-fg);
|
|
584
593
|
font-weight: 700;
|
|
585
594
|
}
|
|
586
595
|
.pd-timeline-seg.is-selected {
|
|
587
596
|
position: relative;
|
|
588
597
|
z-index: 1;
|
|
589
|
-
outline: 2px solid var(--sa-
|
|
598
|
+
outline: 2px solid var(--sa-color-accent);
|
|
590
599
|
outline-offset: -2px;
|
|
591
|
-
box-shadow: 0 0 0 3px
|
|
600
|
+
box-shadow: 0 0 0 3px var(--sa-shadow-tint-3);
|
|
592
601
|
font-weight: 700;
|
|
593
602
|
}
|
|
594
603
|
.pd-timeline-seg.is-selected.superseded {
|
|
595
|
-
color: var(--sa-heading);
|
|
604
|
+
color: var(--sa-color-fg-heading);
|
|
596
605
|
}
|
|
597
606
|
.pd-timeline-seg.is-selected.live {
|
|
598
|
-
outline-color:
|
|
599
|
-
box-shadow: 0 0 0 3px
|
|
607
|
+
outline-color: var(--sa-color-positive);
|
|
608
|
+
box-shadow: 0 0 0 3px var(--sa-shadow-tint-4);
|
|
600
609
|
}
|
|
601
610
|
.pd-timeline-seg.is-selected.draft {
|
|
602
|
-
outline-color:
|
|
603
|
-
box-shadow: 0 0 0 3px
|
|
611
|
+
outline-color: var(--sa-color-warning-fg);
|
|
612
|
+
box-shadow: 0 0 0 3px var(--sa-shadow-tint-4);
|
|
604
613
|
}
|
|
605
614
|
.pd-timeline-ticks {
|
|
606
615
|
display: flex;
|
|
607
616
|
justify-content: space-between;
|
|
608
617
|
margin-top: 6px;
|
|
609
|
-
font: 500
|
|
610
|
-
color: var(--sa-
|
|
618
|
+
font: 500 var(--sa-text-xs) var(--sa-font-mono);
|
|
619
|
+
color: var(--sa-color-fg-subtle);
|
|
611
620
|
}
|
|
612
621
|
|
|
613
622
|
/* versions table */
|
|
@@ -623,21 +632,21 @@ async function executeTerminate(): Promise<void> {
|
|
|
623
632
|
64px minmax(0, 1.4fr) minmax(0, 1.1fr) minmax(0, 0.8fr) minmax(0, 1fr)
|
|
624
633
|
minmax(96px, auto);
|
|
625
634
|
align-items: stretch;
|
|
626
|
-
border-top: 1px solid var(--sa-border-soft);
|
|
635
|
+
border-top: 1px solid var(--sa-color-border-soft);
|
|
627
636
|
margin-top: 12px;
|
|
628
637
|
}
|
|
629
638
|
.pd-versions-head {
|
|
630
639
|
display: contents;
|
|
631
640
|
}
|
|
632
641
|
.pd-versions-head > div {
|
|
633
|
-
background:
|
|
642
|
+
background: var(--sa-color-bg-surface-raised);
|
|
634
643
|
padding: 9px 12px;
|
|
635
|
-
font-size:
|
|
644
|
+
font-size: var(--sa-text-2xs);
|
|
636
645
|
text-transform: uppercase;
|
|
637
646
|
letter-spacing: 0.1em;
|
|
638
|
-
color: var(--sa-muted);
|
|
647
|
+
color: var(--sa-color-fg-muted);
|
|
639
648
|
font-weight: 700;
|
|
640
|
-
border-bottom: 1px solid var(--sa-border);
|
|
649
|
+
border-bottom: 1px solid var(--sa-color-border);
|
|
641
650
|
}
|
|
642
651
|
.pd-vrow {
|
|
643
652
|
display: contents;
|
|
@@ -645,41 +654,41 @@ async function executeTerminate(): Promise<void> {
|
|
|
645
654
|
}
|
|
646
655
|
.pd-vrow > div {
|
|
647
656
|
padding: 13px 12px;
|
|
648
|
-
border-bottom: 1px solid var(--sa-border-soft);
|
|
657
|
+
border-bottom: 1px solid var(--sa-color-border-soft);
|
|
649
658
|
display: flex;
|
|
650
659
|
align-items: center;
|
|
651
|
-
font-size:
|
|
652
|
-
color: var(--sa-heading);
|
|
660
|
+
font-size: var(--sa-text-md);
|
|
661
|
+
color: var(--sa-color-fg-heading);
|
|
653
662
|
}
|
|
654
663
|
.pd-vrow:hover > div {
|
|
655
|
-
background:
|
|
664
|
+
background: var(--sa-color-bg-surface-raised);
|
|
656
665
|
}
|
|
657
666
|
.pd-vrow.is-draft > div {
|
|
658
|
-
background:
|
|
667
|
+
background: var(--sa-color-warning-surface);
|
|
659
668
|
}
|
|
660
669
|
.pd-vrow.is-draft:hover > div {
|
|
661
|
-
background:
|
|
670
|
+
background: var(--sa-color-warning-surface);
|
|
662
671
|
}
|
|
663
672
|
.pd-vrow.is-selected > div {
|
|
664
|
-
background: var(--sa-
|
|
665
|
-
box-shadow: inset 0 -1px 0 0
|
|
673
|
+
background: var(--sa-color-accent-surface-strong) !important;
|
|
674
|
+
box-shadow: inset 0 -1px 0 0 var(--sa-color-info-border);
|
|
666
675
|
}
|
|
667
676
|
.pd-vrow.is-selected.is-draft > div {
|
|
668
|
-
background:
|
|
669
|
-
box-shadow: inset 0 -1px 0 0
|
|
677
|
+
background: var(--sa-color-warning-surface-strong) !important;
|
|
678
|
+
box-shadow: inset 0 -1px 0 0 var(--sa-color-warning-border);
|
|
670
679
|
}
|
|
671
680
|
.pd-vrow.is-selected > div:first-child {
|
|
672
681
|
box-shadow:
|
|
673
|
-
inset 3px 0 0 0 var(--sa-
|
|
674
|
-
inset 0 -1px 0 0
|
|
682
|
+
inset 3px 0 0 0 var(--sa-color-accent),
|
|
683
|
+
inset 0 -1px 0 0 var(--sa-color-info-border);
|
|
675
684
|
}
|
|
676
685
|
.pd-vrow.is-draft > div:first-child {
|
|
677
|
-
box-shadow: inset 3px 0 0 0
|
|
686
|
+
box-shadow: inset 3px 0 0 0 var(--sa-color-warning-strong);
|
|
678
687
|
}
|
|
679
688
|
.pd-vrow.is-selected.is-draft > div:first-child {
|
|
680
689
|
box-shadow:
|
|
681
|
-
inset 3px 0 0 0
|
|
682
|
-
inset 0 -1px 0 0
|
|
690
|
+
inset 3px 0 0 0 var(--sa-color-warning-strong),
|
|
691
|
+
inset 0 -1px 0 0 var(--sa-color-warning-border);
|
|
683
692
|
}
|
|
684
693
|
.pd-vcol {
|
|
685
694
|
display: flex;
|
|
@@ -688,7 +697,7 @@ async function executeTerminate(): Promise<void> {
|
|
|
688
697
|
align-items: flex-start;
|
|
689
698
|
}
|
|
690
699
|
.pd-v-num {
|
|
691
|
-
font: 700
|
|
700
|
+
font: 700 var(--sa-text-lg) var(--sa-font-body);
|
|
692
701
|
}
|
|
693
702
|
.pd-validity {
|
|
694
703
|
display: flex;
|
|
@@ -701,33 +710,33 @@ async function executeTerminate(): Promise<void> {
|
|
|
701
710
|
gap: 6px;
|
|
702
711
|
}
|
|
703
712
|
.pd-validity-sub {
|
|
704
|
-
font-size:
|
|
705
|
-
color: var(--sa-
|
|
713
|
+
font-size: var(--sa-text-xs);
|
|
714
|
+
color: var(--sa-color-fg-subtle);
|
|
706
715
|
}
|
|
707
716
|
.pd-validity-date {
|
|
708
|
-
font: 500
|
|
717
|
+
font: 500 var(--sa-text-md) var(--sa-font-mono);
|
|
709
718
|
}
|
|
710
719
|
.pd-arrow-inf {
|
|
711
|
-
font: 600
|
|
712
|
-
color: var(--sa-
|
|
720
|
+
font: 600 var(--sa-text-md) var(--sa-font-mono);
|
|
721
|
+
color: var(--sa-color-fg-subtle);
|
|
713
722
|
}
|
|
714
723
|
.pd-pricing-m {
|
|
715
|
-
font: 600
|
|
724
|
+
font: 600 var(--sa-text-md) var(--sa-font-body);
|
|
716
725
|
}
|
|
717
726
|
.pd-pricing-y {
|
|
718
|
-
font: 500
|
|
719
|
-
color: var(--sa-
|
|
727
|
+
font: 500 var(--sa-text-xs) var(--sa-font-body);
|
|
728
|
+
color: var(--sa-color-fg-subtle);
|
|
720
729
|
margin-top: 2px;
|
|
721
730
|
}
|
|
722
731
|
.pd-impact-num {
|
|
723
|
-
font: 700
|
|
732
|
+
font: 700 var(--sa-text-lg) var(--sa-font-body);
|
|
724
733
|
}
|
|
725
734
|
.pd-impact-sub {
|
|
726
|
-
font-size:
|
|
727
|
-
color: var(--sa-
|
|
735
|
+
font-size: var(--sa-text-xs);
|
|
736
|
+
color: var(--sa-color-fg-subtle);
|
|
728
737
|
}
|
|
729
738
|
.pd-change-note {
|
|
730
|
-
color: var(--sa-
|
|
739
|
+
color: var(--sa-color-fg-subtle);
|
|
731
740
|
font-style: italic;
|
|
732
741
|
overflow: hidden;
|
|
733
742
|
text-overflow: ellipsis;
|
|
@@ -744,10 +753,10 @@ async function executeTerminate(): Promise<void> {
|
|
|
744
753
|
align-items: center;
|
|
745
754
|
padding: 3px 8px;
|
|
746
755
|
border-radius: 999px;
|
|
747
|
-
font: 600
|
|
748
|
-
background: var(--sa-warning-
|
|
749
|
-
color:
|
|
750
|
-
border: 1px solid
|
|
756
|
+
font: 600 var(--sa-text-xs) var(--sa-font-mono);
|
|
757
|
+
background: var(--sa-color-warning-surface);
|
|
758
|
+
color: var(--sa-color-warning-fg);
|
|
759
|
+
border: 1px solid var(--sa-color-warning-border);
|
|
751
760
|
white-space: nowrap;
|
|
752
761
|
}
|
|
753
762
|
|
|
@@ -757,24 +766,24 @@ async function executeTerminate(): Promise<void> {
|
|
|
757
766
|
gap: 6px;
|
|
758
767
|
}
|
|
759
768
|
.pd-diff-chip {
|
|
760
|
-
font: 700
|
|
769
|
+
font: 700 var(--sa-text-xs) var(--sa-font-mono);
|
|
761
770
|
padding: 3px 8px;
|
|
762
771
|
border-radius: 6px;
|
|
763
772
|
}
|
|
764
773
|
.pd-diff-chip.add {
|
|
765
|
-
background: var(--sa-positive-
|
|
766
|
-
color:
|
|
767
|
-
border: 1px solid
|
|
774
|
+
background: var(--sa-color-positive-surface);
|
|
775
|
+
color: var(--sa-color-positive-fg);
|
|
776
|
+
border: 1px solid var(--sa-color-positive-border);
|
|
768
777
|
}
|
|
769
778
|
.pd-diff-chip.rm {
|
|
770
|
-
background:
|
|
771
|
-
color:
|
|
772
|
-
border: 1px solid
|
|
779
|
+
background: var(--sa-color-negative-surface);
|
|
780
|
+
color: var(--sa-color-negative-fg);
|
|
781
|
+
border: 1px solid var(--sa-color-negative-border);
|
|
773
782
|
}
|
|
774
783
|
.pd-diff-chip.mod {
|
|
775
|
-
background: var(--sa-border-soft);
|
|
776
|
-
color: var(--sa-
|
|
777
|
-
border: 1px solid var(--sa-border);
|
|
784
|
+
background: var(--sa-color-border-soft);
|
|
785
|
+
color: var(--sa-color-fg-secondary);
|
|
786
|
+
border: 1px solid var(--sa-color-border);
|
|
778
787
|
}
|
|
779
788
|
.pd-diff-list {
|
|
780
789
|
padding: 12px;
|
|
@@ -786,23 +795,35 @@ async function executeTerminate(): Promise<void> {
|
|
|
786
795
|
display: flex;
|
|
787
796
|
align-items: center;
|
|
788
797
|
gap: 10px;
|
|
789
|
-
background:
|
|
790
|
-
border: 1px solid var(--sa-border);
|
|
798
|
+
background: var(--sa-color-bg-surface);
|
|
799
|
+
border: 1px solid var(--sa-color-border);
|
|
791
800
|
border-radius: 8px;
|
|
792
801
|
padding: 11px 12px 11px 0;
|
|
793
802
|
overflow: hidden;
|
|
794
803
|
}
|
|
795
804
|
.pd-diff-row.add {
|
|
796
|
-
background: linear-gradient(
|
|
797
|
-
|
|
805
|
+
background: linear-gradient(
|
|
806
|
+
90deg,
|
|
807
|
+
var(--sa-color-positive-surface) 0%,
|
|
808
|
+
var(--sa-color-bg-surface) 60%
|
|
809
|
+
);
|
|
810
|
+
border-color: var(--sa-color-positive-border);
|
|
798
811
|
}
|
|
799
812
|
.pd-diff-row.rm {
|
|
800
|
-
background: linear-gradient(
|
|
801
|
-
|
|
813
|
+
background: linear-gradient(
|
|
814
|
+
90deg,
|
|
815
|
+
var(--sa-color-negative-surface) 0%,
|
|
816
|
+
var(--sa-color-bg-surface) 60%
|
|
817
|
+
);
|
|
818
|
+
border-color: var(--sa-color-negative-border);
|
|
802
819
|
}
|
|
803
820
|
.pd-diff-row.mod {
|
|
804
|
-
background: linear-gradient(
|
|
805
|
-
|
|
821
|
+
background: linear-gradient(
|
|
822
|
+
90deg,
|
|
823
|
+
var(--sa-color-bg-sunken) 0%,
|
|
824
|
+
var(--sa-color-bg-surface) 60%
|
|
825
|
+
);
|
|
826
|
+
border-color: var(--sa-color-border);
|
|
806
827
|
}
|
|
807
828
|
.pd-diff-icon {
|
|
808
829
|
width: 32px;
|
|
@@ -810,17 +831,17 @@ async function executeTerminate(): Promise<void> {
|
|
|
810
831
|
display: grid;
|
|
811
832
|
place-items: center;
|
|
812
833
|
flex: 0 0 32px;
|
|
813
|
-
color:
|
|
814
|
-
font: 700
|
|
834
|
+
color: var(--sa-color-fg-on-accent);
|
|
835
|
+
font: 700 var(--sa-text-lg) var(--sa-font-body);
|
|
815
836
|
}
|
|
816
837
|
.pd-diff-row.add .pd-diff-icon {
|
|
817
|
-
background:
|
|
838
|
+
background: var(--sa-color-positive-strong);
|
|
818
839
|
}
|
|
819
840
|
.pd-diff-row.rm .pd-diff-icon {
|
|
820
|
-
background:
|
|
841
|
+
background: var(--sa-color-negative-strong);
|
|
821
842
|
}
|
|
822
843
|
.pd-diff-row.mod .pd-diff-icon {
|
|
823
|
-
background: var(--sa-
|
|
844
|
+
background: var(--sa-color-inverse-surface);
|
|
824
845
|
}
|
|
825
846
|
.pd-diff-body {
|
|
826
847
|
flex: 1;
|
|
@@ -831,63 +852,63 @@ async function executeTerminate(): Promise<void> {
|
|
|
831
852
|
flex-wrap: wrap;
|
|
832
853
|
}
|
|
833
854
|
.pd-diff-kind {
|
|
834
|
-
font: 700
|
|
855
|
+
font: 700 var(--sa-text-2xs) var(--sa-font-mono);
|
|
835
856
|
text-transform: uppercase;
|
|
836
857
|
letter-spacing: 0.1em;
|
|
837
|
-
color: var(--sa-muted);
|
|
858
|
+
color: var(--sa-color-fg-muted);
|
|
838
859
|
}
|
|
839
860
|
.pd-diff-label {
|
|
840
|
-
font-size:
|
|
861
|
+
font-size: var(--sa-text-md);
|
|
841
862
|
font-weight: 600;
|
|
842
|
-
color: var(--sa-heading);
|
|
863
|
+
color: var(--sa-color-fg-heading);
|
|
843
864
|
}
|
|
844
865
|
.pd-diff-key {
|
|
845
|
-
font: 500
|
|
846
|
-
color: var(--sa-
|
|
866
|
+
font: 500 var(--sa-text-xs) var(--sa-font-mono);
|
|
867
|
+
color: var(--sa-color-fg-subtle);
|
|
847
868
|
}
|
|
848
869
|
.pd-diff-vals {
|
|
849
870
|
display: flex;
|
|
850
871
|
align-items: center;
|
|
851
872
|
gap: 6px;
|
|
852
|
-
font: 500
|
|
873
|
+
font: 500 var(--sa-text-sm) var(--sa-font-mono);
|
|
853
874
|
}
|
|
854
875
|
.pd-diff-strike {
|
|
855
876
|
text-decoration: line-through;
|
|
856
|
-
color: var(--sa-
|
|
877
|
+
color: var(--sa-color-fg-subtle);
|
|
857
878
|
}
|
|
858
879
|
.pd-diff-arrow {
|
|
859
|
-
color:
|
|
880
|
+
color: var(--sa-color-fg-disabled);
|
|
860
881
|
}
|
|
861
882
|
.pd-diff-new {
|
|
862
|
-
color:
|
|
883
|
+
color: var(--sa-color-positive-fg);
|
|
863
884
|
font-weight: 600;
|
|
864
885
|
}
|
|
865
886
|
.pd-diff-tag {
|
|
866
887
|
margin-left: auto;
|
|
867
|
-
font-size:
|
|
888
|
+
font-size: var(--sa-text-xs);
|
|
868
889
|
font-weight: 600;
|
|
869
890
|
padding: 2px 9px;
|
|
870
891
|
border-radius: 999px;
|
|
871
892
|
border: 1px solid;
|
|
872
893
|
}
|
|
873
894
|
.pd-diff-tag.add {
|
|
874
|
-
background:
|
|
875
|
-
color:
|
|
876
|
-
border-color:
|
|
895
|
+
background: var(--sa-color-bg-surface);
|
|
896
|
+
color: var(--sa-color-positive-fg);
|
|
897
|
+
border-color: var(--sa-color-positive-border);
|
|
877
898
|
}
|
|
878
899
|
.pd-diff-tag.rm {
|
|
879
|
-
background:
|
|
880
|
-
color:
|
|
881
|
-
border-color:
|
|
900
|
+
background: var(--sa-color-bg-surface);
|
|
901
|
+
color: var(--sa-color-negative-fg);
|
|
902
|
+
border-color: var(--sa-color-negative-border);
|
|
882
903
|
}
|
|
883
904
|
.pd-diff-tag.mod {
|
|
884
|
-
background:
|
|
885
|
-
color: var(--sa-
|
|
886
|
-
border-color:
|
|
905
|
+
background: var(--sa-color-bg-surface);
|
|
906
|
+
color: var(--sa-color-fg-secondary);
|
|
907
|
+
border-color: var(--sa-color-border-strong);
|
|
887
908
|
}
|
|
888
909
|
.pd-diff-row.plain {
|
|
889
|
-
background:
|
|
890
|
-
border-color: var(--sa-border);
|
|
910
|
+
background: var(--sa-color-bg-surface);
|
|
911
|
+
border-color: var(--sa-color-border);
|
|
891
912
|
padding: 11px 12px 11px 0;
|
|
892
913
|
}
|
|
893
914
|
.pd-diff-section {
|
|
@@ -896,10 +917,10 @@ async function executeTerminate(): Promise<void> {
|
|
|
896
917
|
gap: 8px;
|
|
897
918
|
margin-top: 6px;
|
|
898
919
|
padding: 0 2px;
|
|
899
|
-
font-size:
|
|
920
|
+
font-size: var(--sa-text-xs);
|
|
900
921
|
text-transform: uppercase;
|
|
901
922
|
letter-spacing: 0.1em;
|
|
902
|
-
color: var(--sa-
|
|
923
|
+
color: var(--sa-color-fg-subtle);
|
|
903
924
|
font-weight: 700;
|
|
904
925
|
}
|
|
905
926
|
.pd-diff-section:first-child {
|
|
@@ -908,18 +929,18 @@ async function executeTerminate(): Promise<void> {
|
|
|
908
929
|
.pd-diff-section hr {
|
|
909
930
|
flex: 1;
|
|
910
931
|
border: 0;
|
|
911
|
-
border-top: 1px dashed var(--sa-border);
|
|
932
|
+
border-top: 1px dashed var(--sa-color-border);
|
|
912
933
|
}
|
|
913
934
|
.pd-diff-empty {
|
|
914
935
|
padding: 28px 18px;
|
|
915
936
|
text-align: center;
|
|
916
|
-
color: var(--sa-
|
|
917
|
-
font-size:
|
|
937
|
+
color: var(--sa-color-fg-subtle);
|
|
938
|
+
font-size: var(--sa-text-md);
|
|
918
939
|
}
|
|
919
940
|
.pd-diff-empty b {
|
|
920
941
|
display: block;
|
|
921
|
-
color: var(--sa-
|
|
922
|
-
font-size:
|
|
942
|
+
color: var(--sa-color-fg-secondary);
|
|
943
|
+
font-size: var(--sa-text-lg);
|
|
923
944
|
margin-bottom: 4px;
|
|
924
945
|
}
|
|
925
946
|
|
|
@@ -935,7 +956,7 @@ async function executeTerminate(): Promise<void> {
|
|
|
935
956
|
align-items: center;
|
|
936
957
|
gap: 14px;
|
|
937
958
|
padding: 9px 0;
|
|
938
|
-
border-top: 1px solid var(--sa-border-soft);
|
|
959
|
+
border-top: 1px solid var(--sa-color-border-soft);
|
|
939
960
|
}
|
|
940
961
|
.pd-audit-row:first-child {
|
|
941
962
|
border-top: 0;
|
|
@@ -947,48 +968,48 @@ async function executeTerminate(): Promise<void> {
|
|
|
947
968
|
flex: 0 0 auto;
|
|
948
969
|
}
|
|
949
970
|
.pd-audit-draft {
|
|
950
|
-
background:
|
|
971
|
+
background: var(--sa-color-warning-strong);
|
|
951
972
|
}
|
|
952
973
|
.pd-audit-add {
|
|
953
|
-
background:
|
|
974
|
+
background: var(--sa-color-positive-strong);
|
|
954
975
|
}
|
|
955
976
|
.pd-audit-change {
|
|
956
|
-
background: var(--sa-
|
|
977
|
+
background: var(--sa-color-accent);
|
|
957
978
|
}
|
|
958
979
|
.pd-audit-publish {
|
|
959
|
-
background:
|
|
980
|
+
background: var(--sa-color-feature);
|
|
960
981
|
}
|
|
961
982
|
.pd-audit-remove {
|
|
962
|
-
background:
|
|
983
|
+
background: var(--sa-color-negative-strong);
|
|
963
984
|
}
|
|
964
985
|
.pd-audit-when {
|
|
965
|
-
font-size:
|
|
966
|
-
color: var(--sa-muted);
|
|
986
|
+
font-size: var(--sa-text-sm);
|
|
987
|
+
color: var(--sa-color-fg-muted);
|
|
967
988
|
min-width: 130px;
|
|
968
989
|
}
|
|
969
990
|
.pd-audit-avatar {
|
|
970
991
|
width: 24px;
|
|
971
992
|
height: 24px;
|
|
972
993
|
border-radius: 50%;
|
|
973
|
-
background: var(--sa-
|
|
974
|
-
color:
|
|
994
|
+
background: var(--sa-color-inverse-bg);
|
|
995
|
+
color: var(--sa-color-fg-on-accent);
|
|
975
996
|
display: grid;
|
|
976
997
|
place-items: center;
|
|
977
|
-
font: 700
|
|
998
|
+
font: 700 var(--sa-text-xs) var(--sa-font-body);
|
|
978
999
|
flex: 0 0 auto;
|
|
979
1000
|
}
|
|
980
1001
|
.pd-audit-who {
|
|
981
|
-
font-size:
|
|
982
|
-
color: var(--sa-
|
|
1002
|
+
font-size: var(--sa-text-sm);
|
|
1003
|
+
color: var(--sa-color-fg-secondary);
|
|
983
1004
|
min-width: 64px;
|
|
984
1005
|
}
|
|
985
1006
|
.pd-audit-what {
|
|
986
|
-
font-size:
|
|
987
|
-
color: var(--sa-heading);
|
|
1007
|
+
font-size: var(--sa-text-md);
|
|
1008
|
+
color: var(--sa-color-fg-heading);
|
|
988
1009
|
flex: 1;
|
|
989
1010
|
}
|
|
990
1011
|
|
|
991
|
-
@media (max-width:
|
|
1012
|
+
@media (max-width: 1023.98px) {
|
|
992
1013
|
.pd-body {
|
|
993
1014
|
grid-template-columns: 1fr;
|
|
994
1015
|
}
|