@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
|
@@ -563,10 +563,30 @@ const checklistOkCount = computed(() => checklist.value.filter((c) => c.ok).leng
|
|
|
563
563
|
// ── Diff vs. predecessor ────────────────────────────────────────────
|
|
564
564
|
const showDiff = ref(false);
|
|
565
565
|
|
|
566
|
+
// Roles rather than values, because these reach the DOM through a `:style`
|
|
567
|
+
// binding — see PlanVersionDiffDialog. Fixed light hexes there meant the dialog
|
|
568
|
+
// kept white-ish rows in dark mode while the label above them turned near-white
|
|
569
|
+
// with the theme, which is the one state where a diff has to be readable.
|
|
570
|
+
// An inline style resolves `var()`, so the indirection costs nothing.
|
|
566
571
|
const DIFF_STYLE = {
|
|
567
|
-
added: {
|
|
568
|
-
|
|
569
|
-
|
|
572
|
+
added: {
|
|
573
|
+
bg: 'var(--sa-color-positive-surface)',
|
|
574
|
+
border: 'var(--sa-color-positive-border)',
|
|
575
|
+
color: 'var(--sa-color-positive-fg)',
|
|
576
|
+
sign: '+',
|
|
577
|
+
},
|
|
578
|
+
removed: {
|
|
579
|
+
bg: 'var(--sa-color-negative-surface)',
|
|
580
|
+
border: 'var(--sa-color-negative-border)',
|
|
581
|
+
color: 'var(--sa-color-negative-fg)',
|
|
582
|
+
sign: '−',
|
|
583
|
+
},
|
|
584
|
+
changed: {
|
|
585
|
+
bg: 'var(--sa-color-warning-surface)',
|
|
586
|
+
border: 'var(--sa-color-warning-border)',
|
|
587
|
+
color: 'var(--sa-color-warning-fg)',
|
|
588
|
+
sign: '~',
|
|
589
|
+
},
|
|
570
590
|
} as const;
|
|
571
591
|
|
|
572
592
|
const diffStyles = computed(() => ({
|
|
@@ -754,10 +774,10 @@ function emitSave(): void {
|
|
|
754
774
|
align-items: center;
|
|
755
775
|
gap: 10px;
|
|
756
776
|
padding: 10px 22px;
|
|
757
|
-
background:
|
|
758
|
-
border-bottom: 1px solid
|
|
759
|
-
color:
|
|
760
|
-
font-size:
|
|
777
|
+
background: var(--sa-color-negative-surface);
|
|
778
|
+
border-bottom: 1px solid var(--sa-color-negative-border);
|
|
779
|
+
color: var(--sa-color-negative-fg);
|
|
780
|
+
font-size: var(--sa-text-md);
|
|
761
781
|
font-weight: 500;
|
|
762
782
|
}
|
|
763
783
|
.pve-error-ico {
|
|
@@ -769,16 +789,16 @@ function emitSave(): void {
|
|
|
769
789
|
display: inline-flex;
|
|
770
790
|
align-items: center;
|
|
771
791
|
gap: 6px;
|
|
772
|
-
font-size:
|
|
792
|
+
font-size: var(--sa-text-2xs);
|
|
773
793
|
font-weight: 700;
|
|
774
794
|
letter-spacing: 0.1em;
|
|
775
|
-
color: var(--sa-
|
|
795
|
+
color: var(--sa-color-fg-subtle);
|
|
776
796
|
}
|
|
777
797
|
.pve-mono {
|
|
778
|
-
font: 500
|
|
798
|
+
font: 500 var(--sa-text-xs) var(--sa-font-mono);
|
|
779
799
|
}
|
|
780
800
|
.pve-mono--xs {
|
|
781
|
-
font-size:
|
|
801
|
+
font-size: var(--sa-text-2xs);
|
|
782
802
|
}
|
|
783
803
|
|
|
784
804
|
/* ── Buttons & Chips ───────────────────────────────────────────── */
|
|
@@ -789,22 +809,22 @@ function emitSave(): void {
|
|
|
789
809
|
gap: 5px;
|
|
790
810
|
padding: 2px 8px;
|
|
791
811
|
border-radius: 999px;
|
|
792
|
-
font-size:
|
|
812
|
+
font-size: var(--sa-text-xs);
|
|
793
813
|
font-weight: 600;
|
|
794
814
|
letter-spacing: 0.01em;
|
|
795
|
-
background: var(--sa-bg-
|
|
796
|
-
color: var(--sa-
|
|
797
|
-
border: 1px solid var(--sa-border);
|
|
815
|
+
background: var(--sa-color-bg-sunken);
|
|
816
|
+
color: var(--sa-color-fg-secondary);
|
|
817
|
+
border: 1px solid var(--sa-color-border);
|
|
798
818
|
}
|
|
799
819
|
.pve-chip--plan {
|
|
800
|
-
background:
|
|
801
|
-
color:
|
|
802
|
-
border-color:
|
|
820
|
+
background: var(--sa-color-info-surface-strong);
|
|
821
|
+
color: var(--sa-color-info-fg);
|
|
822
|
+
border-color: var(--sa-color-info-border);
|
|
803
823
|
}
|
|
804
824
|
.pve-chip--draft {
|
|
805
|
-
background: var(--sa-warning-
|
|
806
|
-
color:
|
|
807
|
-
border-color:
|
|
825
|
+
background: var(--sa-color-warning-surface);
|
|
826
|
+
color: var(--sa-color-warning-fg);
|
|
827
|
+
border-color: var(--sa-color-warning-border);
|
|
808
828
|
}
|
|
809
829
|
.pve-chip--dot::before {
|
|
810
830
|
content: '';
|
|
@@ -814,18 +834,18 @@ function emitSave(): void {
|
|
|
814
834
|
background: currentColor;
|
|
815
835
|
}
|
|
816
836
|
.pve-chip--changes {
|
|
817
|
-
background: var(--sa-warning-
|
|
818
|
-
color:
|
|
819
|
-
border-color:
|
|
837
|
+
background: var(--sa-color-warning-surface);
|
|
838
|
+
color: var(--sa-color-warning-fg);
|
|
839
|
+
border-color: var(--sa-color-warning-border);
|
|
820
840
|
}
|
|
821
841
|
|
|
822
842
|
.pve-kbd {
|
|
823
|
-
font: 600
|
|
824
|
-
background: var(--sa-border-soft);
|
|
825
|
-
color: var(--sa-
|
|
843
|
+
font: 600 var(--sa-text-xs) var(--sa-font-mono);
|
|
844
|
+
background: var(--sa-color-border-soft);
|
|
845
|
+
color: var(--sa-color-fg-secondary);
|
|
826
846
|
padding: 2px 6px;
|
|
827
847
|
border-radius: 4px;
|
|
828
|
-
border: 1px solid var(--sa-border);
|
|
848
|
+
border: 1px solid var(--sa-color-border);
|
|
829
849
|
}
|
|
830
850
|
|
|
831
851
|
/* ── Body Grid ──────────────────────────────────────────────────── */
|
|
@@ -841,14 +861,14 @@ function emitSave(): void {
|
|
|
841
861
|
overflow: hidden;
|
|
842
862
|
display: grid;
|
|
843
863
|
grid-template-columns: 380px 1fr 400px;
|
|
844
|
-
background: var(--sa-bg-app);
|
|
864
|
+
background: var(--sa-color-bg-app);
|
|
845
865
|
}
|
|
846
866
|
|
|
847
867
|
.pve-col {
|
|
848
868
|
display: flex;
|
|
849
869
|
flex-direction: column;
|
|
850
|
-
border-right: 1px solid var(--sa-border);
|
|
851
|
-
background:
|
|
870
|
+
border-right: 1px solid var(--sa-color-border);
|
|
871
|
+
background: var(--sa-color-bg-surface);
|
|
852
872
|
min-width: 0;
|
|
853
873
|
overflow: hidden;
|
|
854
874
|
}
|
|
@@ -857,7 +877,7 @@ function emitSave(): void {
|
|
|
857
877
|
}
|
|
858
878
|
.pve-col-header {
|
|
859
879
|
padding: 16px 18px 12px;
|
|
860
|
-
border-bottom: 1px solid var(--sa-border);
|
|
880
|
+
border-bottom: 1px solid var(--sa-color-border);
|
|
861
881
|
display: flex;
|
|
862
882
|
align-items: flex-start;
|
|
863
883
|
gap: 8px;
|
|
@@ -870,19 +890,19 @@ function emitSave(): void {
|
|
|
870
890
|
padding: 16px 18px 12px;
|
|
871
891
|
}
|
|
872
892
|
.pve-col-title {
|
|
873
|
-
font-size:
|
|
893
|
+
font-size: var(--sa-text-lg);
|
|
874
894
|
font-weight: 700;
|
|
875
895
|
letter-spacing: -0.01em;
|
|
876
896
|
}
|
|
877
897
|
.pve-col-sub {
|
|
878
|
-
font-size:
|
|
879
|
-
color: var(--sa-muted);
|
|
898
|
+
font-size: var(--sa-text-sm);
|
|
899
|
+
color: var(--sa-color-fg-muted);
|
|
880
900
|
margin-top: 2px;
|
|
881
901
|
}
|
|
882
902
|
|
|
883
903
|
/* ── LEFT — Pool ───────────────────────────────────────────────── */
|
|
884
904
|
.pve-pool {
|
|
885
|
-
background:
|
|
905
|
+
background: var(--sa-color-bg-surface-raised);
|
|
886
906
|
}
|
|
887
907
|
.pve-search {
|
|
888
908
|
display: flex;
|
|
@@ -890,8 +910,8 @@ function emitSave(): void {
|
|
|
890
910
|
gap: 8px;
|
|
891
911
|
padding: 10px 14px;
|
|
892
912
|
margin: 10px 14px 0;
|
|
893
|
-
background:
|
|
894
|
-
border: 1px solid var(--sa-border);
|
|
913
|
+
background: var(--sa-color-bg-surface);
|
|
914
|
+
border: 1px solid var(--sa-color-border);
|
|
895
915
|
border-radius: 8px;
|
|
896
916
|
}
|
|
897
917
|
.pve-search input {
|
|
@@ -899,11 +919,11 @@ function emitSave(): void {
|
|
|
899
919
|
border: 0;
|
|
900
920
|
outline: 0;
|
|
901
921
|
background: transparent;
|
|
902
|
-
font:
|
|
903
|
-
color: var(--sa-heading);
|
|
922
|
+
font: var(--sa-text-md) var(--sa-font-body);
|
|
923
|
+
color: var(--sa-color-fg-heading);
|
|
904
924
|
}
|
|
905
925
|
.pve-search-ico {
|
|
906
|
-
color: var(--sa-
|
|
926
|
+
color: var(--sa-color-fg-subtle);
|
|
907
927
|
display: inline-flex;
|
|
908
928
|
}
|
|
909
929
|
.pve-tabs {
|
|
@@ -916,27 +936,27 @@ function emitSave(): void {
|
|
|
916
936
|
border: 0;
|
|
917
937
|
padding: 5px 10px;
|
|
918
938
|
border-radius: 6px;
|
|
919
|
-
font: 500
|
|
920
|
-
color: var(--sa-
|
|
939
|
+
font: 500 var(--sa-text-md) var(--sa-font-body);
|
|
940
|
+
color: var(--sa-color-fg-secondary);
|
|
921
941
|
cursor: pointer;
|
|
922
942
|
display: flex;
|
|
923
943
|
align-items: center;
|
|
924
944
|
gap: 6px;
|
|
925
945
|
}
|
|
926
946
|
.pve-tab--active {
|
|
927
|
-
background: var(--sa-
|
|
928
|
-
color:
|
|
947
|
+
background: var(--sa-color-inverse-bg);
|
|
948
|
+
color: var(--sa-color-fg-on-accent);
|
|
929
949
|
}
|
|
930
950
|
.pve-tab-count {
|
|
931
|
-
font-size:
|
|
951
|
+
font-size: var(--sa-text-xs);
|
|
932
952
|
padding: 1px 5px;
|
|
933
953
|
border-radius: 4px;
|
|
934
|
-
background: var(--sa-border);
|
|
935
|
-
color: var(--sa-
|
|
954
|
+
background: var(--sa-color-border);
|
|
955
|
+
color: var(--sa-color-fg-secondary);
|
|
936
956
|
}
|
|
937
957
|
.pve-tab--active .pve-tab-count {
|
|
938
|
-
background:
|
|
939
|
-
color:
|
|
958
|
+
background: var(--sa-color-inverse-border-strong);
|
|
959
|
+
color: var(--sa-color-fg-on-accent);
|
|
940
960
|
}
|
|
941
961
|
.pve-pool-list {
|
|
942
962
|
flex: 1;
|
|
@@ -945,10 +965,10 @@ function emitSave(): void {
|
|
|
945
965
|
padding: 6px 14px 18px;
|
|
946
966
|
}
|
|
947
967
|
.pve-pool-group {
|
|
948
|
-
font-size:
|
|
968
|
+
font-size: var(--sa-text-2xs);
|
|
949
969
|
text-transform: uppercase;
|
|
950
970
|
letter-spacing: 0.1em;
|
|
951
|
-
color: var(--sa-
|
|
971
|
+
color: var(--sa-color-fg-subtle);
|
|
952
972
|
font-weight: 700;
|
|
953
973
|
padding: 12px 4px 6px;
|
|
954
974
|
}
|
|
@@ -956,8 +976,8 @@ function emitSave(): void {
|
|
|
956
976
|
display: flex;
|
|
957
977
|
align-items: flex-start;
|
|
958
978
|
gap: 10px;
|
|
959
|
-
background:
|
|
960
|
-
border: 1px solid var(--sa-border);
|
|
979
|
+
background: var(--sa-color-bg-surface);
|
|
980
|
+
border: 1px solid var(--sa-color-border);
|
|
961
981
|
border-radius: 8px;
|
|
962
982
|
padding: 9px 10px;
|
|
963
983
|
margin-bottom: 6px;
|
|
@@ -968,22 +988,22 @@ function emitSave(): void {
|
|
|
968
988
|
user-select: none;
|
|
969
989
|
}
|
|
970
990
|
.pve-pool-card:hover {
|
|
971
|
-
border-color:
|
|
972
|
-
box-shadow: 0 1px 3px
|
|
991
|
+
border-color: var(--sa-color-scheduled-border);
|
|
992
|
+
box-shadow: 0 1px 3px var(--sa-shadow-tint-1);
|
|
973
993
|
}
|
|
974
994
|
.pve-pool-card:active {
|
|
975
995
|
cursor: grabbing;
|
|
976
996
|
}
|
|
977
997
|
.pve-pool-card--selected {
|
|
978
|
-
background: var(--sa-bg-
|
|
998
|
+
background: var(--sa-color-bg-sunken);
|
|
979
999
|
opacity: 0.7;
|
|
980
1000
|
}
|
|
981
1001
|
.pve-pool-card--partial {
|
|
982
|
-
border-color:
|
|
983
|
-
background: var(--sa-warning-
|
|
1002
|
+
border-color: var(--sa-color-warning-border);
|
|
1003
|
+
background: var(--sa-color-warning-surface);
|
|
984
1004
|
}
|
|
985
1005
|
.pve-pool-grip {
|
|
986
|
-
color:
|
|
1006
|
+
color: var(--sa-color-fg-disabled);
|
|
987
1007
|
padding-top: 3px;
|
|
988
1008
|
flex: 0 0 auto;
|
|
989
1009
|
}
|
|
@@ -997,9 +1017,9 @@ function emitSave(): void {
|
|
|
997
1017
|
gap: 8px;
|
|
998
1018
|
}
|
|
999
1019
|
.pve-pool-card-label {
|
|
1000
|
-
font-size:
|
|
1020
|
+
font-size: var(--sa-text-md);
|
|
1001
1021
|
font-weight: 600;
|
|
1002
|
-
color: var(--sa-heading);
|
|
1022
|
+
color: var(--sa-color-fg-heading);
|
|
1003
1023
|
}
|
|
1004
1024
|
.pve-pool-card-check {
|
|
1005
1025
|
display: inline-grid;
|
|
@@ -1007,8 +1027,8 @@ function emitSave(): void {
|
|
|
1007
1027
|
width: 16px;
|
|
1008
1028
|
height: 16px;
|
|
1009
1029
|
border-radius: 4px;
|
|
1010
|
-
background:
|
|
1011
|
-
color:
|
|
1030
|
+
background: var(--sa-color-positive-surface-strong);
|
|
1031
|
+
color: var(--sa-color-positive-fg);
|
|
1012
1032
|
margin-left: auto;
|
|
1013
1033
|
}
|
|
1014
1034
|
.pve-pool-card-meta {
|
|
@@ -1016,23 +1036,23 @@ function emitSave(): void {
|
|
|
1016
1036
|
gap: 5px;
|
|
1017
1037
|
align-items: center;
|
|
1018
1038
|
flex-wrap: wrap;
|
|
1019
|
-
font-size:
|
|
1020
|
-
color: var(--sa-
|
|
1039
|
+
font-size: var(--sa-text-xs);
|
|
1040
|
+
color: var(--sa-color-fg-subtle);
|
|
1021
1041
|
margin-top: 2px;
|
|
1022
1042
|
}
|
|
1023
1043
|
.pve-pool-card-key {
|
|
1024
|
-
font: 500
|
|
1025
|
-
color: var(--sa-muted);
|
|
1044
|
+
font: 500 var(--sa-text-2xs) var(--sa-font-mono);
|
|
1045
|
+
color: var(--sa-color-fg-muted);
|
|
1026
1046
|
}
|
|
1027
1047
|
.pve-pool-card-dot {
|
|
1028
|
-
color:
|
|
1048
|
+
color: var(--sa-color-fg-disabled);
|
|
1029
1049
|
}
|
|
1030
1050
|
|
|
1031
1051
|
.pve-empty {
|
|
1032
1052
|
padding: 24px 4px;
|
|
1033
1053
|
text-align: center;
|
|
1034
|
-
color: var(--sa-
|
|
1035
|
-
font-size:
|
|
1054
|
+
color: var(--sa-color-fg-subtle);
|
|
1055
|
+
font-size: var(--sa-text-md);
|
|
1036
1056
|
font-style: italic;
|
|
1037
1057
|
}
|
|
1038
1058
|
|
|
@@ -1045,12 +1065,16 @@ function emitSave(): void {
|
|
|
1045
1065
|
box-shadow 0.15s;
|
|
1046
1066
|
}
|
|
1047
1067
|
.pve-basket--dragover {
|
|
1048
|
-
background:
|
|
1049
|
-
box-shadow: inset 0 0 0 2px var(--sa-
|
|
1068
|
+
background: var(--sa-color-accent-surface);
|
|
1069
|
+
box-shadow: inset 0 0 0 2px var(--sa-color-accent);
|
|
1050
1070
|
}
|
|
1051
1071
|
.pve-basket-settings {
|
|
1052
|
-
background: linear-gradient(
|
|
1053
|
-
|
|
1072
|
+
background: linear-gradient(
|
|
1073
|
+
180deg,
|
|
1074
|
+
var(--sa-color-bg-sunken) 0%,
|
|
1075
|
+
var(--sa-color-bg-surface) 100%
|
|
1076
|
+
);
|
|
1077
|
+
border-bottom: 1px solid var(--sa-color-border);
|
|
1054
1078
|
padding: 14px 22px 16px;
|
|
1055
1079
|
display: flex;
|
|
1056
1080
|
flex-direction: column;
|
|
@@ -1062,8 +1086,8 @@ function emitSave(): void {
|
|
|
1062
1086
|
gap: 10px;
|
|
1063
1087
|
}
|
|
1064
1088
|
.pve-bs-label {
|
|
1065
|
-
font-size:
|
|
1066
|
-
color: var(--sa-
|
|
1089
|
+
font-size: var(--sa-text-sm);
|
|
1090
|
+
color: var(--sa-color-fg-secondary);
|
|
1067
1091
|
font-weight: 500;
|
|
1068
1092
|
min-width: 88px;
|
|
1069
1093
|
}
|
|
@@ -1072,34 +1096,34 @@ function emitSave(): void {
|
|
|
1072
1096
|
margin-left: 8px;
|
|
1073
1097
|
}
|
|
1074
1098
|
.pve-bs-input {
|
|
1075
|
-
background:
|
|
1076
|
-
border: 1px solid var(--sa-border);
|
|
1099
|
+
background: var(--sa-color-bg-surface);
|
|
1100
|
+
border: 1px solid var(--sa-color-border);
|
|
1077
1101
|
border-radius: 6px;
|
|
1078
1102
|
padding: 6px 10px;
|
|
1079
|
-
font:
|
|
1080
|
-
color: var(--sa-heading);
|
|
1103
|
+
font: var(--sa-text-md) var(--sa-font-body);
|
|
1104
|
+
color: var(--sa-color-fg-heading);
|
|
1081
1105
|
outline: none;
|
|
1082
1106
|
}
|
|
1083
1107
|
.pve-bs-input:focus {
|
|
1084
|
-
border-color: var(--sa-
|
|
1085
|
-
box-shadow: 0 0 0 3px
|
|
1108
|
+
border-color: var(--sa-color-accent);
|
|
1109
|
+
box-shadow: 0 0 0 3px var(--sa-shadow-tint-2);
|
|
1086
1110
|
}
|
|
1087
1111
|
.pve-bs-input--error {
|
|
1088
|
-
border-color:
|
|
1089
|
-
background:
|
|
1112
|
+
border-color: var(--sa-color-negative-strong);
|
|
1113
|
+
background: var(--sa-color-negative-surface);
|
|
1090
1114
|
}
|
|
1091
1115
|
.pve-bs-input--error:focus {
|
|
1092
|
-
border-color:
|
|
1093
|
-
box-shadow: 0 0 0 3px
|
|
1116
|
+
border-color: var(--sa-color-negative-strong);
|
|
1117
|
+
box-shadow: 0 0 0 3px var(--sa-shadow-tint-3);
|
|
1094
1118
|
}
|
|
1095
1119
|
.pve-bs-error {
|
|
1096
1120
|
display: flex;
|
|
1097
1121
|
align-items: center;
|
|
1098
1122
|
gap: 6px;
|
|
1099
1123
|
margin: -2px 0 2px;
|
|
1100
|
-
font-size:
|
|
1124
|
+
font-size: var(--sa-text-sm);
|
|
1101
1125
|
font-weight: 500;
|
|
1102
|
-
color:
|
|
1126
|
+
color: var(--sa-color-negative-fg);
|
|
1103
1127
|
}
|
|
1104
1128
|
.pve-bs-error svg {
|
|
1105
1129
|
flex: 0 0 auto;
|
|
@@ -1111,9 +1135,9 @@ function emitSave(): void {
|
|
|
1111
1135
|
.pve-bs-input-grp {
|
|
1112
1136
|
display: flex;
|
|
1113
1137
|
align-items: stretch;
|
|
1114
|
-
border: 1px solid var(--sa-border);
|
|
1138
|
+
border: 1px solid var(--sa-color-border);
|
|
1115
1139
|
border-radius: 6px;
|
|
1116
|
-
background:
|
|
1140
|
+
background: var(--sa-color-bg-surface);
|
|
1117
1141
|
overflow: hidden;
|
|
1118
1142
|
}
|
|
1119
1143
|
.pve-bs-input-grp--gap {
|
|
@@ -1127,17 +1151,17 @@ function emitSave(): void {
|
|
|
1127
1151
|
}
|
|
1128
1152
|
.pve-bs-prefix,
|
|
1129
1153
|
.pve-bs-suffix {
|
|
1130
|
-
background: var(--sa-bg-
|
|
1154
|
+
background: var(--sa-color-bg-sunken);
|
|
1131
1155
|
padding: 6px 10px;
|
|
1132
|
-
font-size:
|
|
1133
|
-
color: var(--sa-muted);
|
|
1156
|
+
font-size: var(--sa-text-sm);
|
|
1157
|
+
color: var(--sa-color-fg-muted);
|
|
1134
1158
|
display: grid;
|
|
1135
1159
|
place-items: center;
|
|
1136
|
-
border-right: 1px solid var(--sa-border);
|
|
1160
|
+
border-right: 1px solid var(--sa-color-border);
|
|
1137
1161
|
}
|
|
1138
1162
|
.pve-bs-suffix {
|
|
1139
1163
|
border-right: 0;
|
|
1140
|
-
border-left: 1px solid var(--sa-border);
|
|
1164
|
+
border-left: 1px solid var(--sa-color-border);
|
|
1141
1165
|
}
|
|
1142
1166
|
|
|
1143
1167
|
.pve-toggle {
|
|
@@ -1155,7 +1179,7 @@ function emitSave(): void {
|
|
|
1155
1179
|
.pve-toggle span {
|
|
1156
1180
|
position: absolute;
|
|
1157
1181
|
inset: 0;
|
|
1158
|
-
background:
|
|
1182
|
+
background: var(--sa-color-border-strong);
|
|
1159
1183
|
border-radius: 999px;
|
|
1160
1184
|
transition: background 0.15s;
|
|
1161
1185
|
}
|
|
@@ -1167,11 +1191,11 @@ function emitSave(): void {
|
|
|
1167
1191
|
width: 16px;
|
|
1168
1192
|
height: 16px;
|
|
1169
1193
|
border-radius: 50%;
|
|
1170
|
-
background:
|
|
1194
|
+
background: var(--sa-color-bg-surface);
|
|
1171
1195
|
transition: transform 0.15s;
|
|
1172
1196
|
}
|
|
1173
1197
|
.pve-toggle input:checked + span {
|
|
1174
|
-
background: var(--sa-
|
|
1198
|
+
background: var(--sa-color-accent);
|
|
1175
1199
|
}
|
|
1176
1200
|
.pve-toggle input:checked + span::before {
|
|
1177
1201
|
transform: translateX(16px);
|
|
@@ -1179,7 +1203,7 @@ function emitSave(): void {
|
|
|
1179
1203
|
|
|
1180
1204
|
.pve-basket-group {
|
|
1181
1205
|
padding: 14px 22px;
|
|
1182
|
-
border-bottom: 1px solid var(--sa-border-soft);
|
|
1206
|
+
border-bottom: 1px solid var(--sa-color-border-soft);
|
|
1183
1207
|
}
|
|
1184
1208
|
.pve-basket-group:last-child {
|
|
1185
1209
|
border-bottom: 0;
|
|
@@ -1196,41 +1220,41 @@ function emitSave(): void {
|
|
|
1196
1220
|
border-radius: 50%;
|
|
1197
1221
|
}
|
|
1198
1222
|
.pve-bg-dot--quota {
|
|
1199
|
-
background:
|
|
1223
|
+
background: var(--sa-color-quota);
|
|
1200
1224
|
}
|
|
1201
1225
|
.pve-bg-dot--feature {
|
|
1202
|
-
background:
|
|
1226
|
+
background: var(--sa-color-feature);
|
|
1203
1227
|
}
|
|
1204
1228
|
.pve-bg-dot--bundle {
|
|
1205
|
-
background:
|
|
1229
|
+
background: var(--sa-color-bundle);
|
|
1206
1230
|
}
|
|
1207
1231
|
.pve-bg-title {
|
|
1208
|
-
font-size:
|
|
1232
|
+
font-size: var(--sa-text-sm);
|
|
1209
1233
|
text-transform: uppercase;
|
|
1210
1234
|
letter-spacing: 0.1em;
|
|
1211
1235
|
font-weight: 700;
|
|
1212
|
-
color:
|
|
1236
|
+
color: var(--sa-color-fg-body);
|
|
1213
1237
|
}
|
|
1214
1238
|
.pve-bg-count {
|
|
1215
1239
|
margin-left: 6px;
|
|
1216
|
-
font-size:
|
|
1217
|
-
color: var(--sa-
|
|
1240
|
+
font-size: var(--sa-text-xs);
|
|
1241
|
+
color: var(--sa-color-fg-subtle);
|
|
1218
1242
|
}
|
|
1219
1243
|
|
|
1220
1244
|
.pve-dz {
|
|
1221
|
-
border: 1.5px dashed var(--sa-border-strong);
|
|
1245
|
+
border: 1.5px dashed var(--sa-color-border-strong);
|
|
1222
1246
|
border-radius: 10px;
|
|
1223
1247
|
padding: 12px;
|
|
1224
|
-
background:
|
|
1248
|
+
background: var(--sa-color-bg-surface-raised);
|
|
1225
1249
|
min-height: 60px;
|
|
1226
1250
|
}
|
|
1227
1251
|
.pve-basket--dragover .pve-dz {
|
|
1228
|
-
border-color: var(--sa-
|
|
1229
|
-
background:
|
|
1252
|
+
border-color: var(--sa-color-accent);
|
|
1253
|
+
background: var(--sa-color-accent-surface);
|
|
1230
1254
|
}
|
|
1231
1255
|
.pve-dz-empty {
|
|
1232
|
-
font-size:
|
|
1233
|
-
color: var(--sa-
|
|
1256
|
+
font-size: var(--sa-text-sm);
|
|
1257
|
+
color: var(--sa-color-fg-subtle);
|
|
1234
1258
|
text-align: center;
|
|
1235
1259
|
padding: 4px 0;
|
|
1236
1260
|
}
|
|
@@ -1243,8 +1267,8 @@ function emitSave(): void {
|
|
|
1243
1267
|
align-items: center;
|
|
1244
1268
|
gap: 10px;
|
|
1245
1269
|
padding: 8px 10px;
|
|
1246
|
-
background:
|
|
1247
|
-
border: 1px solid var(--sa-border);
|
|
1270
|
+
background: var(--sa-color-bg-surface);
|
|
1271
|
+
border: 1px solid var(--sa-color-border);
|
|
1248
1272
|
border-radius: 6px;
|
|
1249
1273
|
margin-bottom: 4px;
|
|
1250
1274
|
}
|
|
@@ -1258,43 +1282,43 @@ function emitSave(): void {
|
|
|
1258
1282
|
flex: 0 0 auto;
|
|
1259
1283
|
}
|
|
1260
1284
|
.pve-sel-dot--quota {
|
|
1261
|
-
background:
|
|
1285
|
+
background: var(--sa-color-quota);
|
|
1262
1286
|
}
|
|
1263
1287
|
.pve-sel-dot--feature {
|
|
1264
|
-
background:
|
|
1288
|
+
background: var(--sa-color-feature);
|
|
1265
1289
|
}
|
|
1266
1290
|
.pve-sel-dot--bundle {
|
|
1267
|
-
background:
|
|
1291
|
+
background: var(--sa-color-bundle);
|
|
1268
1292
|
}
|
|
1269
1293
|
.pve-sel-body {
|
|
1270
1294
|
flex: 1;
|
|
1271
1295
|
min-width: 0;
|
|
1272
1296
|
}
|
|
1273
1297
|
.pve-sel-label {
|
|
1274
|
-
font-size:
|
|
1298
|
+
font-size: var(--sa-text-md);
|
|
1275
1299
|
font-weight: 600;
|
|
1276
|
-
color: var(--sa-heading);
|
|
1300
|
+
color: var(--sa-color-fg-heading);
|
|
1277
1301
|
}
|
|
1278
1302
|
.pve-sel-sub {
|
|
1279
|
-
font: 500
|
|
1280
|
-
color: var(--sa-
|
|
1303
|
+
font: 500 var(--sa-text-xs) var(--sa-font-mono);
|
|
1304
|
+
color: var(--sa-color-fg-subtle);
|
|
1281
1305
|
}
|
|
1282
1306
|
.pve-sel-val-edit {
|
|
1283
1307
|
display: flex;
|
|
1284
1308
|
align-items: center;
|
|
1285
1309
|
gap: 4px;
|
|
1286
|
-
background: var(--sa-bg-
|
|
1310
|
+
background: var(--sa-color-bg-sunken);
|
|
1287
1311
|
padding: 3px 8px;
|
|
1288
1312
|
border-radius: 5px;
|
|
1289
|
-
border: 1px solid var(--sa-border);
|
|
1313
|
+
border: 1px solid var(--sa-color-border);
|
|
1290
1314
|
}
|
|
1291
1315
|
.pve-sel-val-input {
|
|
1292
1316
|
width: 64px;
|
|
1293
1317
|
border: 0;
|
|
1294
1318
|
outline: 0;
|
|
1295
1319
|
background: transparent;
|
|
1296
|
-
font: 600
|
|
1297
|
-
color: var(--sa-heading);
|
|
1320
|
+
font: 600 var(--sa-text-md) var(--sa-font-body);
|
|
1321
|
+
color: var(--sa-color-fg-heading);
|
|
1298
1322
|
text-align: right;
|
|
1299
1323
|
-moz-appearance: textfield;
|
|
1300
1324
|
}
|
|
@@ -1304,13 +1328,13 @@ function emitSave(): void {
|
|
|
1304
1328
|
margin: 0;
|
|
1305
1329
|
}
|
|
1306
1330
|
.pve-sel-val-unit {
|
|
1307
|
-
font-size:
|
|
1308
|
-
color: var(--sa-
|
|
1331
|
+
font-size: var(--sa-text-xs);
|
|
1332
|
+
color: var(--sa-color-fg-subtle);
|
|
1309
1333
|
}
|
|
1310
1334
|
.pve-sel-x {
|
|
1311
1335
|
background: transparent;
|
|
1312
1336
|
border: 0;
|
|
1313
|
-
color: var(--sa-
|
|
1337
|
+
color: var(--sa-color-fg-subtle);
|
|
1314
1338
|
cursor: pointer;
|
|
1315
1339
|
padding: 4px;
|
|
1316
1340
|
border-radius: 4px;
|
|
@@ -1318,13 +1342,13 @@ function emitSave(): void {
|
|
|
1318
1342
|
place-items: center;
|
|
1319
1343
|
}
|
|
1320
1344
|
.pve-sel-x:hover {
|
|
1321
|
-
background:
|
|
1322
|
-
color:
|
|
1345
|
+
background: var(--sa-color-negative-surface);
|
|
1346
|
+
color: var(--sa-color-negative-strong);
|
|
1323
1347
|
}
|
|
1324
1348
|
|
|
1325
1349
|
/* ── RIGHT — Preview ───────────────────────────────────────────── */
|
|
1326
1350
|
.pve-preview {
|
|
1327
|
-
background: var(--sa-bg-
|
|
1351
|
+
background: var(--sa-color-bg-sunken);
|
|
1328
1352
|
overflow: auto;
|
|
1329
1353
|
}
|
|
1330
1354
|
.pve-preview-toggle {
|
|
@@ -1334,9 +1358,9 @@ function emitSave(): void {
|
|
|
1334
1358
|
}
|
|
1335
1359
|
.pve-prev-window {
|
|
1336
1360
|
margin: 14px 18px;
|
|
1337
|
-
background:
|
|
1361
|
+
background: var(--sa-color-bg-surface);
|
|
1338
1362
|
border-radius: 10px;
|
|
1339
|
-
border: 1px solid var(--sa-border);
|
|
1363
|
+
border: 1px solid var(--sa-color-border);
|
|
1340
1364
|
overflow: hidden;
|
|
1341
1365
|
transition: max-width 0.18s;
|
|
1342
1366
|
}
|
|
@@ -1348,8 +1372,8 @@ function emitSave(): void {
|
|
|
1348
1372
|
align-items: center;
|
|
1349
1373
|
gap: 6px;
|
|
1350
1374
|
padding: 8px 12px;
|
|
1351
|
-
background: var(--sa-border-soft);
|
|
1352
|
-
border-bottom: 1px solid var(--sa-border);
|
|
1375
|
+
background: var(--sa-color-border-soft);
|
|
1376
|
+
border-bottom: 1px solid var(--sa-color-border);
|
|
1353
1377
|
}
|
|
1354
1378
|
.pve-prev-dot {
|
|
1355
1379
|
width: 9px;
|
|
@@ -1358,34 +1382,34 @@ function emitSave(): void {
|
|
|
1358
1382
|
}
|
|
1359
1383
|
.pve-prev-url {
|
|
1360
1384
|
flex: 1;
|
|
1361
|
-
background:
|
|
1385
|
+
background: var(--sa-color-bg-surface);
|
|
1362
1386
|
border-radius: 4px;
|
|
1363
1387
|
padding: 3px 10px;
|
|
1364
1388
|
margin-left: 10px;
|
|
1365
|
-
font: 500
|
|
1366
|
-
color: var(--sa-muted);
|
|
1367
|
-
border: 1px solid var(--sa-border);
|
|
1389
|
+
font: 500 var(--sa-text-xs) var(--sa-font-mono);
|
|
1390
|
+
color: var(--sa-color-fg-muted);
|
|
1391
|
+
border: 1px solid var(--sa-color-border);
|
|
1368
1392
|
}
|
|
1369
1393
|
.pve-prev-body {
|
|
1370
1394
|
padding: 18px 18px 16px;
|
|
1371
1395
|
}
|
|
1372
1396
|
.pve-prev-eyebrow {
|
|
1373
|
-
font-size:
|
|
1397
|
+
font-size: var(--sa-text-xs);
|
|
1374
1398
|
text-transform: uppercase;
|
|
1375
1399
|
letter-spacing: 0.12em;
|
|
1376
|
-
color: var(--sa-muted);
|
|
1400
|
+
color: var(--sa-color-fg-muted);
|
|
1377
1401
|
font-weight: 700;
|
|
1378
1402
|
}
|
|
1379
1403
|
.pve-prev-title {
|
|
1380
|
-
font-size:
|
|
1404
|
+
font-size: var(--sa-text-3xl);
|
|
1381
1405
|
font-weight: 700;
|
|
1382
1406
|
letter-spacing: -0.03em;
|
|
1383
1407
|
margin-top: 6px;
|
|
1384
|
-
color: var(--sa-heading);
|
|
1408
|
+
color: var(--sa-color-fg-heading);
|
|
1385
1409
|
}
|
|
1386
1410
|
.pve-prev-desc {
|
|
1387
|
-
font-size:
|
|
1388
|
-
color: var(--sa-
|
|
1411
|
+
font-size: var(--sa-text-md);
|
|
1412
|
+
color: var(--sa-color-fg-secondary);
|
|
1389
1413
|
margin-top: 6px;
|
|
1390
1414
|
line-height: 1.5;
|
|
1391
1415
|
}
|
|
@@ -1396,18 +1420,18 @@ function emitSave(): void {
|
|
|
1396
1420
|
margin-top: 14px;
|
|
1397
1421
|
}
|
|
1398
1422
|
.pve-prev-price-big {
|
|
1399
|
-
font-size:
|
|
1423
|
+
font-size: var(--sa-text-4xl);
|
|
1400
1424
|
font-weight: 700;
|
|
1401
1425
|
letter-spacing: -0.03em;
|
|
1402
|
-
color: var(--sa-heading);
|
|
1426
|
+
color: var(--sa-color-fg-heading);
|
|
1403
1427
|
}
|
|
1404
1428
|
.pve-prev-price-unit {
|
|
1405
|
-
font-size:
|
|
1406
|
-
color: var(--sa-muted);
|
|
1429
|
+
font-size: var(--sa-text-md);
|
|
1430
|
+
color: var(--sa-color-fg-muted);
|
|
1407
1431
|
}
|
|
1408
1432
|
.pve-prev-price-yearly {
|
|
1409
|
-
font-size:
|
|
1410
|
-
color:
|
|
1433
|
+
font-size: var(--sa-text-sm);
|
|
1434
|
+
color: var(--sa-color-positive-fg);
|
|
1411
1435
|
margin-top: 2px;
|
|
1412
1436
|
font-weight: 500;
|
|
1413
1437
|
}
|
|
@@ -1416,21 +1440,21 @@ function emitSave(): void {
|
|
|
1416
1440
|
width: 100%;
|
|
1417
1441
|
margin-top: 14px;
|
|
1418
1442
|
padding: 10px;
|
|
1419
|
-
background: var(--sa-
|
|
1420
|
-
color:
|
|
1443
|
+
background: var(--sa-color-inverse-bg);
|
|
1444
|
+
color: var(--sa-color-fg-on-accent);
|
|
1421
1445
|
border: 0;
|
|
1422
1446
|
border-radius: 7px;
|
|
1423
|
-
font: 600
|
|
1447
|
+
font: 600 var(--sa-text-md) var(--sa-font-body);
|
|
1424
1448
|
cursor: pointer;
|
|
1425
1449
|
}
|
|
1426
1450
|
.pve-prev-sep {
|
|
1427
1451
|
margin-top: 18px;
|
|
1428
1452
|
padding-top: 14px;
|
|
1429
|
-
border-top: 1px solid var(--sa-border-soft);
|
|
1430
|
-
font-size:
|
|
1453
|
+
border-top: 1px solid var(--sa-color-border-soft);
|
|
1454
|
+
font-size: var(--sa-text-xs);
|
|
1431
1455
|
text-transform: uppercase;
|
|
1432
1456
|
letter-spacing: 0.12em;
|
|
1433
|
-
color: var(--sa-
|
|
1457
|
+
color: var(--sa-color-fg-subtle);
|
|
1434
1458
|
font-weight: 700;
|
|
1435
1459
|
}
|
|
1436
1460
|
.pve-prev-list {
|
|
@@ -1445,8 +1469,8 @@ function emitSave(): void {
|
|
|
1445
1469
|
display: flex;
|
|
1446
1470
|
align-items: center;
|
|
1447
1471
|
gap: 8px;
|
|
1448
|
-
font-size:
|
|
1449
|
-
color: var(--sa-heading);
|
|
1472
|
+
font-size: var(--sa-text-md);
|
|
1473
|
+
color: var(--sa-color-fg-heading);
|
|
1450
1474
|
}
|
|
1451
1475
|
.pve-prev-list li b {
|
|
1452
1476
|
font-weight: 600;
|
|
@@ -1457,27 +1481,27 @@ function emitSave(): void {
|
|
|
1457
1481
|
width: 16px;
|
|
1458
1482
|
height: 16px;
|
|
1459
1483
|
border-radius: 50%;
|
|
1460
|
-
background:
|
|
1461
|
-
color:
|
|
1484
|
+
background: var(--sa-color-positive-surface-strong);
|
|
1485
|
+
color: var(--sa-color-positive-fg);
|
|
1462
1486
|
flex: 0 0 auto;
|
|
1463
1487
|
}
|
|
1464
1488
|
.pve-prev-empty {
|
|
1465
|
-
color: var(--sa-
|
|
1489
|
+
color: var(--sa-color-fg-subtle);
|
|
1466
1490
|
font-style: italic;
|
|
1467
1491
|
}
|
|
1468
1492
|
.pve-prev-foot {
|
|
1469
1493
|
margin-top: 16px;
|
|
1470
1494
|
padding-top: 14px;
|
|
1471
|
-
border-top: 1px solid var(--sa-border-soft);
|
|
1472
|
-
font-size:
|
|
1473
|
-
color: var(--sa-
|
|
1495
|
+
border-top: 1px solid var(--sa-color-border-soft);
|
|
1496
|
+
font-size: var(--sa-text-xs);
|
|
1497
|
+
color: var(--sa-color-fg-subtle);
|
|
1474
1498
|
line-height: 1.5;
|
|
1475
1499
|
}
|
|
1476
1500
|
|
|
1477
1501
|
.pve-prev-validate {
|
|
1478
1502
|
margin: 0 18px 18px;
|
|
1479
|
-
background:
|
|
1480
|
-
border: 1px solid var(--sa-border);
|
|
1503
|
+
background: var(--sa-color-bg-surface);
|
|
1504
|
+
border: 1px solid var(--sa-color-border);
|
|
1481
1505
|
border-radius: 8px;
|
|
1482
1506
|
padding: 12px;
|
|
1483
1507
|
}
|
|
@@ -1488,37 +1512,37 @@ function emitSave(): void {
|
|
|
1488
1512
|
margin-bottom: 6px;
|
|
1489
1513
|
}
|
|
1490
1514
|
.pve-prev-validate-tick {
|
|
1491
|
-
color: var(--sa-positive-
|
|
1515
|
+
color: var(--sa-color-positive-strong);
|
|
1492
1516
|
display: inline-flex;
|
|
1493
1517
|
}
|
|
1494
1518
|
.pve-prev-validate-title {
|
|
1495
|
-
font-size:
|
|
1519
|
+
font-size: var(--sa-text-md);
|
|
1496
1520
|
font-weight: 600;
|
|
1497
1521
|
}
|
|
1498
1522
|
.pve-prev-validate-count {
|
|
1499
1523
|
margin-left: auto;
|
|
1500
|
-
font-size:
|
|
1501
|
-
color: var(--sa-muted);
|
|
1524
|
+
font-size: var(--sa-text-xs);
|
|
1525
|
+
color: var(--sa-color-fg-muted);
|
|
1502
1526
|
}
|
|
1503
1527
|
.pve-vchk {
|
|
1504
1528
|
display: flex;
|
|
1505
1529
|
align-items: center;
|
|
1506
1530
|
gap: 6px;
|
|
1507
|
-
font-size:
|
|
1531
|
+
font-size: var(--sa-text-sm);
|
|
1508
1532
|
padding: 3px 0;
|
|
1509
1533
|
}
|
|
1510
1534
|
.pve-vchk--ok {
|
|
1511
|
-
color: var(--sa-
|
|
1535
|
+
color: var(--sa-color-fg-secondary);
|
|
1512
1536
|
}
|
|
1513
1537
|
.pve-vchk--ok span:first-child {
|
|
1514
|
-
color: var(--sa-positive-
|
|
1538
|
+
color: var(--sa-color-positive-strong);
|
|
1515
1539
|
display: inline-flex;
|
|
1516
1540
|
}
|
|
1517
1541
|
.pve-vchk--warn {
|
|
1518
|
-
color:
|
|
1542
|
+
color: var(--sa-color-warning-fg);
|
|
1519
1543
|
}
|
|
1520
1544
|
.pve-vchk--warn span:first-child {
|
|
1521
|
-
color: var(--sa-
|
|
1545
|
+
color: var(--sa-color-warning-strong);
|
|
1522
1546
|
display: inline-flex;
|
|
1523
1547
|
}
|
|
1524
1548
|
|
|
@@ -1535,39 +1559,39 @@ function emitSave(): void {
|
|
|
1535
1559
|
}
|
|
1536
1560
|
.pve-col {
|
|
1537
1561
|
border-right: 0;
|
|
1538
|
-
border-bottom: 1px solid var(--sa-border);
|
|
1562
|
+
border-bottom: 1px solid var(--sa-color-border);
|
|
1539
1563
|
}
|
|
1540
1564
|
}
|
|
1541
1565
|
|
|
1542
1566
|
/* ── Diff dialog ────────────────────────────────────────────────── */
|
|
1543
1567
|
.pve-diff-modal {
|
|
1544
|
-
background:
|
|
1568
|
+
background: var(--sa-color-bg-surface);
|
|
1545
1569
|
width: 560px;
|
|
1546
1570
|
max-width: 92vw;
|
|
1547
1571
|
border-radius: 14px;
|
|
1548
|
-
box-shadow: 0 24px 60px
|
|
1572
|
+
box-shadow: 0 24px 60px var(--sa-shadow-tint-4);
|
|
1549
1573
|
overflow: hidden;
|
|
1550
1574
|
font-family: var(--sa-font-body);
|
|
1551
|
-
color: var(--sa-heading);
|
|
1575
|
+
color: var(--sa-color-fg-heading);
|
|
1552
1576
|
}
|
|
1553
1577
|
.pve-diff-modal * {
|
|
1554
1578
|
box-sizing: border-box;
|
|
1555
1579
|
}
|
|
1556
1580
|
.pve-diff-head {
|
|
1557
1581
|
padding: 16px 20px;
|
|
1558
|
-
border-bottom: 1px solid var(--sa-border);
|
|
1582
|
+
border-bottom: 1px solid var(--sa-color-border);
|
|
1559
1583
|
display: flex;
|
|
1560
1584
|
align-items: flex-start;
|
|
1561
1585
|
gap: 12px;
|
|
1562
1586
|
}
|
|
1563
1587
|
.pve-diff-title {
|
|
1564
|
-
font-size:
|
|
1588
|
+
font-size: var(--sa-text-lg);
|
|
1565
1589
|
font-weight: 700;
|
|
1566
1590
|
letter-spacing: -0.01em;
|
|
1567
1591
|
}
|
|
1568
1592
|
.pve-diff-sub {
|
|
1569
|
-
font-size:
|
|
1570
|
-
color: var(--sa-muted);
|
|
1593
|
+
font-size: var(--sa-text-sm);
|
|
1594
|
+
color: var(--sa-color-fg-muted);
|
|
1571
1595
|
margin-top: 3px;
|
|
1572
1596
|
}
|
|
1573
1597
|
.pve-diff-close {
|
|
@@ -1577,15 +1601,15 @@ function emitSave(): void {
|
|
|
1577
1601
|
border-radius: 6px;
|
|
1578
1602
|
background: transparent;
|
|
1579
1603
|
border: 0;
|
|
1580
|
-
color: var(--sa-
|
|
1604
|
+
color: var(--sa-color-fg-subtle);
|
|
1581
1605
|
cursor: pointer;
|
|
1582
1606
|
display: grid;
|
|
1583
1607
|
place-items: center;
|
|
1584
1608
|
flex: 0 0 auto;
|
|
1585
1609
|
}
|
|
1586
1610
|
.pve-diff-close:hover {
|
|
1587
|
-
background:
|
|
1588
|
-
color: var(--sa-heading);
|
|
1611
|
+
background: var(--sa-color-bg-sunken);
|
|
1612
|
+
color: var(--sa-color-fg-heading);
|
|
1589
1613
|
}
|
|
1590
1614
|
.pve-diff-body {
|
|
1591
1615
|
padding: 14px 20px 18px;
|
|
@@ -1607,9 +1631,9 @@ function emitSave(): void {
|
|
|
1607
1631
|
width: 20px;
|
|
1608
1632
|
height: 20px;
|
|
1609
1633
|
border-radius: 5px;
|
|
1610
|
-
color:
|
|
1634
|
+
color: var(--sa-color-fg-on-accent);
|
|
1611
1635
|
font-weight: 800;
|
|
1612
|
-
font-size:
|
|
1636
|
+
font-size: var(--sa-text-md);
|
|
1613
1637
|
display: grid;
|
|
1614
1638
|
place-items: center;
|
|
1615
1639
|
flex: 0 0 auto;
|
|
@@ -1625,43 +1649,43 @@ function emitSave(): void {
|
|
|
1625
1649
|
flex-wrap: wrap;
|
|
1626
1650
|
}
|
|
1627
1651
|
.pve-diff-section {
|
|
1628
|
-
font-size:
|
|
1652
|
+
font-size: var(--sa-text-xs);
|
|
1629
1653
|
text-transform: uppercase;
|
|
1630
1654
|
letter-spacing: 0.08em;
|
|
1631
1655
|
font-weight: 700;
|
|
1632
1656
|
}
|
|
1633
1657
|
.pve-diff-label {
|
|
1634
|
-
font-size:
|
|
1658
|
+
font-size: var(--sa-text-md);
|
|
1635
1659
|
font-weight: 600;
|
|
1636
|
-
color: var(--sa-heading);
|
|
1660
|
+
color: var(--sa-color-fg-heading);
|
|
1637
1661
|
}
|
|
1638
1662
|
.pve-diff-change {
|
|
1639
1663
|
display: flex;
|
|
1640
1664
|
align-items: center;
|
|
1641
1665
|
gap: 8px;
|
|
1642
1666
|
margin-top: 3px;
|
|
1643
|
-
font-size:
|
|
1667
|
+
font-size: var(--sa-text-sm);
|
|
1644
1668
|
}
|
|
1645
1669
|
.pve-diff-from {
|
|
1646
1670
|
text-decoration: line-through;
|
|
1647
|
-
color: var(--sa-
|
|
1671
|
+
color: var(--sa-color-fg-subtle);
|
|
1648
1672
|
}
|
|
1649
1673
|
.pve-diff-to {
|
|
1650
|
-
color: var(--sa-heading);
|
|
1674
|
+
color: var(--sa-color-fg-heading);
|
|
1651
1675
|
font-weight: 600;
|
|
1652
1676
|
}
|
|
1653
1677
|
.pve-diff-arrow {
|
|
1654
1678
|
font-weight: 700;
|
|
1655
1679
|
}
|
|
1656
1680
|
.pve-diff-tag {
|
|
1657
|
-
font-size:
|
|
1658
|
-
background:
|
|
1681
|
+
font-size: var(--sa-text-2xs);
|
|
1682
|
+
background: var(--sa-color-bg-surface);
|
|
1659
1683
|
}
|
|
1660
1684
|
.pve-diff-empty {
|
|
1661
1685
|
padding: 24px 8px;
|
|
1662
1686
|
text-align: center;
|
|
1663
|
-
color: var(--sa-
|
|
1687
|
+
color: var(--sa-color-fg-subtle);
|
|
1664
1688
|
font-style: italic;
|
|
1665
|
-
font-size:
|
|
1689
|
+
font-size: var(--sa-text-md);
|
|
1666
1690
|
}
|
|
1667
1691
|
</style>
|