@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
|
@@ -839,8 +839,8 @@ async function onLocaleChange(loc: string): Promise<void> {
|
|
|
839
839
|
<style>
|
|
840
840
|
.sa-marketing {
|
|
841
841
|
padding: 22px 26px;
|
|
842
|
-
background: var(--sa-bg-app);
|
|
843
|
-
color: var(--sa-heading);
|
|
842
|
+
background: var(--sa-color-bg-app);
|
|
843
|
+
color: var(--sa-color-fg-heading);
|
|
844
844
|
font-family: var(--sa-font-body);
|
|
845
845
|
min-height: 100%;
|
|
846
846
|
box-sizing: border-box;
|
|
@@ -855,8 +855,8 @@ async function onLocaleChange(loc: string): Promise<void> {
|
|
|
855
855
|
.sa-marketing-locale-switch {
|
|
856
856
|
display: inline-flex;
|
|
857
857
|
gap: 2px;
|
|
858
|
-
background: var(--sa-bg-surface);
|
|
859
|
-
border: 1px solid var(--sa-border);
|
|
858
|
+
background: var(--sa-color-bg-surface);
|
|
859
|
+
border: 1px solid var(--sa-color-border);
|
|
860
860
|
border-radius: 8px;
|
|
861
861
|
padding: 3px;
|
|
862
862
|
}
|
|
@@ -865,13 +865,13 @@ async function onLocaleChange(loc: string): Promise<void> {
|
|
|
865
865
|
border: 0;
|
|
866
866
|
background: transparent;
|
|
867
867
|
border-radius: 6px;
|
|
868
|
-
font: 500
|
|
869
|
-
color: var(--sa-
|
|
868
|
+
font: 500 var(--sa-text-sm) var(--sa-font-mono);
|
|
869
|
+
color: var(--sa-color-fg-secondary);
|
|
870
870
|
cursor: pointer;
|
|
871
871
|
}
|
|
872
872
|
.sa-marketing-locale-btn.active {
|
|
873
|
-
background: var(--sa-
|
|
874
|
-
color: var(--sa-
|
|
873
|
+
background: var(--sa-color-accent-surface-strong);
|
|
874
|
+
color: var(--sa-color-accent-strong);
|
|
875
875
|
font-weight: 600;
|
|
876
876
|
}
|
|
877
877
|
.sa-marketing-locale-mgr {
|
|
@@ -881,52 +881,52 @@ async function onLocaleChange(loc: string): Promise<void> {
|
|
|
881
881
|
flex-wrap: wrap;
|
|
882
882
|
}
|
|
883
883
|
.sa-marketing-locale-mgr-label {
|
|
884
|
-
font-size:
|
|
885
|
-
color: var(--sa-
|
|
884
|
+
font-size: var(--sa-text-xs);
|
|
885
|
+
color: var(--sa-color-fg-subtle);
|
|
886
886
|
}
|
|
887
887
|
.sa-marketing-locale-pill {
|
|
888
888
|
display: inline-flex;
|
|
889
889
|
align-items: center;
|
|
890
|
-
border: 1px solid var(--sa-border);
|
|
890
|
+
border: 1px solid var(--sa-color-border);
|
|
891
891
|
border-radius: 7px;
|
|
892
892
|
overflow: hidden;
|
|
893
893
|
}
|
|
894
894
|
.sa-marketing-locale-pill.active {
|
|
895
|
-
border-color: var(--sa-
|
|
896
|
-
background: var(--sa-
|
|
895
|
+
border-color: var(--sa-color-accent-strong);
|
|
896
|
+
background: var(--sa-color-accent-surface-strong);
|
|
897
897
|
}
|
|
898
898
|
.sa-marketing-locale-pill-btn {
|
|
899
899
|
border: 0;
|
|
900
900
|
background: transparent;
|
|
901
901
|
padding: 4px 8px;
|
|
902
|
-
font: 600
|
|
903
|
-
color: var(--sa-
|
|
902
|
+
font: 600 var(--sa-text-xs) var(--sa-font-mono);
|
|
903
|
+
color: var(--sa-color-fg-secondary);
|
|
904
904
|
cursor: pointer;
|
|
905
905
|
}
|
|
906
906
|
.sa-marketing-locale-pill.active .sa-marketing-locale-pill-btn {
|
|
907
|
-
color: var(--sa-
|
|
907
|
+
color: var(--sa-color-accent-strong);
|
|
908
908
|
}
|
|
909
909
|
.sa-marketing-locale-x {
|
|
910
910
|
border: 0;
|
|
911
911
|
background: transparent;
|
|
912
912
|
padding: 4px 7px;
|
|
913
|
-
color: var(--sa-
|
|
913
|
+
color: var(--sa-color-fg-subtle);
|
|
914
914
|
cursor: pointer;
|
|
915
|
-
font-size:
|
|
915
|
+
font-size: var(--sa-text-md);
|
|
916
916
|
}
|
|
917
917
|
.sa-marketing-locale-x:hover {
|
|
918
|
-
color:
|
|
918
|
+
color: var(--sa-color-negative);
|
|
919
919
|
}
|
|
920
920
|
.sa-marketing-locale-add-wrap {
|
|
921
921
|
position: relative;
|
|
922
922
|
}
|
|
923
923
|
.sa-marketing-locale-add {
|
|
924
|
-
border: 1px dashed var(--sa-border);
|
|
924
|
+
border: 1px dashed var(--sa-color-border);
|
|
925
925
|
background: transparent;
|
|
926
926
|
border-radius: 7px;
|
|
927
927
|
padding: 4px 9px;
|
|
928
|
-
font-size:
|
|
929
|
-
color: var(--sa-
|
|
928
|
+
font-size: var(--sa-text-xs);
|
|
929
|
+
color: var(--sa-color-fg-secondary);
|
|
930
930
|
cursor: pointer;
|
|
931
931
|
}
|
|
932
932
|
.sa-marketing-locale-add:disabled {
|
|
@@ -938,10 +938,10 @@ async function onLocaleChange(loc: string): Promise<void> {
|
|
|
938
938
|
top: 100%;
|
|
939
939
|
right: 0;
|
|
940
940
|
margin-top: 4px;
|
|
941
|
-
background: var(--sa-bg-surface);
|
|
942
|
-
border: 1px solid var(--sa-border);
|
|
941
|
+
background: var(--sa-color-bg-surface);
|
|
942
|
+
border: 1px solid var(--sa-color-border);
|
|
943
943
|
border-radius: 8px;
|
|
944
|
-
box-shadow: 0 8px 24px
|
|
944
|
+
box-shadow: 0 8px 24px var(--sa-shadow-tint-3);
|
|
945
945
|
padding: 4px;
|
|
946
946
|
display: flex;
|
|
947
947
|
flex-direction: column;
|
|
@@ -955,46 +955,46 @@ async function onLocaleChange(loc: string): Promise<void> {
|
|
|
955
955
|
padding: 6px 10px;
|
|
956
956
|
text-align: left;
|
|
957
957
|
border-radius: 6px;
|
|
958
|
-
font: 600
|
|
958
|
+
font: 600 var(--sa-text-xs) var(--sa-font-mono);
|
|
959
959
|
cursor: pointer;
|
|
960
960
|
}
|
|
961
961
|
.sa-marketing-locale-picker-row:hover {
|
|
962
|
-
background: var(--sa-
|
|
962
|
+
background: var(--sa-color-accent-surface-strong);
|
|
963
963
|
}
|
|
964
964
|
|
|
965
965
|
.sa-marketing-banner {
|
|
966
966
|
border-radius: 8px;
|
|
967
967
|
padding: 10px 14px;
|
|
968
|
-
font-size:
|
|
968
|
+
font-size: var(--sa-text-md);
|
|
969
969
|
margin-bottom: 14px;
|
|
970
970
|
display: flex;
|
|
971
971
|
align-items: center;
|
|
972
972
|
gap: 8px;
|
|
973
973
|
}
|
|
974
974
|
.sa-marketing-banner--error {
|
|
975
|
-
background:
|
|
976
|
-
color:
|
|
977
|
-
border: 1px solid
|
|
975
|
+
background: var(--sa-color-negative-surface);
|
|
976
|
+
color: var(--sa-color-negative-fg);
|
|
977
|
+
border: 1px solid var(--sa-color-negative-border);
|
|
978
978
|
}
|
|
979
979
|
.sa-marketing-banner--info {
|
|
980
|
-
background: var(--sa-
|
|
981
|
-
color:
|
|
982
|
-
border: 1px solid
|
|
980
|
+
background: var(--sa-color-accent-surface-strong);
|
|
981
|
+
color: var(--sa-color-info-fg);
|
|
982
|
+
border: 1px solid var(--sa-color-info-border);
|
|
983
983
|
}
|
|
984
984
|
.sa-marketing-banner-x {
|
|
985
985
|
margin-left: auto;
|
|
986
986
|
background: transparent;
|
|
987
987
|
border: 0;
|
|
988
988
|
cursor: pointer;
|
|
989
|
-
font-size:
|
|
989
|
+
font-size: var(--sa-text-xl);
|
|
990
990
|
line-height: 1;
|
|
991
991
|
color: inherit;
|
|
992
992
|
}
|
|
993
993
|
.sa-marketing-loading {
|
|
994
994
|
padding: 40px;
|
|
995
995
|
text-align: center;
|
|
996
|
-
color: var(--sa-
|
|
997
|
-
font-size:
|
|
996
|
+
color: var(--sa-color-fg-subtle);
|
|
997
|
+
font-size: var(--sa-text-md);
|
|
998
998
|
}
|
|
999
999
|
|
|
1000
1000
|
.sa-marketing-toolbar {
|
|
@@ -1006,16 +1006,16 @@ async function onLocaleChange(loc: string): Promise<void> {
|
|
|
1006
1006
|
.sa-marketing-tabbar {
|
|
1007
1007
|
display: inline-flex;
|
|
1008
1008
|
gap: 2px;
|
|
1009
|
-
background: var(--sa-bg-surface);
|
|
1010
|
-
border: 1px solid var(--sa-border);
|
|
1009
|
+
background: var(--sa-color-bg-surface);
|
|
1010
|
+
border: 1px solid var(--sa-color-border);
|
|
1011
1011
|
border-radius: 8px;
|
|
1012
1012
|
padding: 3px;
|
|
1013
1013
|
}
|
|
1014
1014
|
.sa-marketing-tab {
|
|
1015
1015
|
padding: 6px 14px;
|
|
1016
1016
|
border-radius: 6px;
|
|
1017
|
-
font: 500
|
|
1018
|
-
color: var(--sa-
|
|
1017
|
+
font: 500 var(--sa-text-md) var(--sa-font-body);
|
|
1018
|
+
color: var(--sa-color-fg-secondary);
|
|
1019
1019
|
background: transparent;
|
|
1020
1020
|
border: 0;
|
|
1021
1021
|
cursor: pointer;
|
|
@@ -1024,50 +1024,50 @@ async function onLocaleChange(loc: string): Promise<void> {
|
|
|
1024
1024
|
color 0.12s;
|
|
1025
1025
|
}
|
|
1026
1026
|
.sa-marketing-tab:hover {
|
|
1027
|
-
color: var(--sa-heading);
|
|
1027
|
+
color: var(--sa-color-fg-heading);
|
|
1028
1028
|
}
|
|
1029
1029
|
.sa-marketing-tab.active {
|
|
1030
|
-
background: var(--sa-
|
|
1031
|
-
color: var(--sa-
|
|
1030
|
+
background: var(--sa-color-accent-surface-strong);
|
|
1031
|
+
color: var(--sa-color-accent-strong);
|
|
1032
1032
|
font-weight: 600;
|
|
1033
1033
|
}
|
|
1034
1034
|
.sa-marketing-tab-count {
|
|
1035
1035
|
display: inline-block;
|
|
1036
1036
|
margin-left: 5px;
|
|
1037
|
-
background:
|
|
1038
|
-
color:
|
|
1039
|
-
font-size:
|
|
1037
|
+
background: var(--sa-color-positive-surface-strong);
|
|
1038
|
+
color: var(--sa-color-positive-fg);
|
|
1039
|
+
font-size: var(--sa-text-2xs);
|
|
1040
1040
|
font-weight: 700;
|
|
1041
1041
|
padding: 1px 6px;
|
|
1042
1042
|
border-radius: 999px;
|
|
1043
1043
|
}
|
|
1044
1044
|
.sa-marketing-meta {
|
|
1045
1045
|
margin-left: auto;
|
|
1046
|
-
font-size:
|
|
1047
|
-
color: var(--sa-
|
|
1046
|
+
font-size: var(--sa-text-sm);
|
|
1047
|
+
color: var(--sa-color-fg-secondary);
|
|
1048
1048
|
display: flex;
|
|
1049
1049
|
align-items: center;
|
|
1050
1050
|
gap: 8px;
|
|
1051
1051
|
}
|
|
1052
1052
|
.sa-marketing-meta code {
|
|
1053
|
-
font: 500
|
|
1054
|
-
background: var(--sa-border-soft);
|
|
1055
|
-
color: var(--sa-
|
|
1053
|
+
font: 500 var(--sa-text-xs) var(--sa-font-mono);
|
|
1054
|
+
background: var(--sa-color-border-soft);
|
|
1055
|
+
color: var(--sa-color-fg-secondary);
|
|
1056
1056
|
padding: 2px 7px;
|
|
1057
1057
|
border-radius: 4px;
|
|
1058
1058
|
}
|
|
1059
1059
|
|
|
1060
1060
|
/* ── Public catalog preview ── */
|
|
1061
1061
|
.sa-marketing-window {
|
|
1062
|
-
background: var(--sa-bg-surface);
|
|
1063
|
-
border: 1px solid var(--sa-border);
|
|
1062
|
+
background: var(--sa-color-bg-surface);
|
|
1063
|
+
border: 1px solid var(--sa-color-border);
|
|
1064
1064
|
border-radius: 12px;
|
|
1065
1065
|
overflow: hidden;
|
|
1066
1066
|
}
|
|
1067
1067
|
.sa-marketing-chrome {
|
|
1068
1068
|
height: 36px;
|
|
1069
|
-
background: var(--sa-border-soft);
|
|
1070
|
-
border-bottom: 1px solid var(--sa-border);
|
|
1069
|
+
background: var(--sa-color-border-soft);
|
|
1070
|
+
border-bottom: 1px solid var(--sa-color-border);
|
|
1071
1071
|
display: flex;
|
|
1072
1072
|
align-items: center;
|
|
1073
1073
|
padding: 0 14px;
|
|
@@ -1081,36 +1081,40 @@ async function onLocaleChange(loc: string): Promise<void> {
|
|
|
1081
1081
|
.sa-marketing-chrome-url {
|
|
1082
1082
|
margin-left: 18px;
|
|
1083
1083
|
flex: 1;
|
|
1084
|
-
background: var(--sa-bg-surface);
|
|
1085
|
-
border: 1px solid var(--sa-border);
|
|
1084
|
+
background: var(--sa-color-bg-surface);
|
|
1085
|
+
border: 1px solid var(--sa-color-border);
|
|
1086
1086
|
border-radius: 6px;
|
|
1087
1087
|
padding: 4px 10px;
|
|
1088
|
-
font: 500
|
|
1089
|
-
color: var(--sa-
|
|
1088
|
+
font: 500 var(--sa-text-sm) var(--sa-font-mono);
|
|
1089
|
+
color: var(--sa-color-fg-secondary);
|
|
1090
1090
|
max-width: 380px;
|
|
1091
1091
|
}
|
|
1092
1092
|
.sa-marketing-canvas {
|
|
1093
|
-
background: linear-gradient(
|
|
1093
|
+
background: linear-gradient(
|
|
1094
|
+
180deg,
|
|
1095
|
+
var(--sa-color-bg-surface-raised) 0%,
|
|
1096
|
+
var(--sa-color-bg-surface) 100%
|
|
1097
|
+
);
|
|
1094
1098
|
padding: 36px 32px 28px;
|
|
1095
1099
|
}
|
|
1096
1100
|
.sa-marketing-eyebrow {
|
|
1097
|
-
font: 700
|
|
1101
|
+
font: 700 var(--sa-text-xs) var(--sa-font-body);
|
|
1098
1102
|
letter-spacing: 0.14em;
|
|
1099
1103
|
text-transform: uppercase;
|
|
1100
|
-
color: var(--sa-
|
|
1104
|
+
color: var(--sa-color-accent);
|
|
1101
1105
|
text-align: center;
|
|
1102
1106
|
}
|
|
1103
1107
|
.sa-marketing-hero {
|
|
1104
|
-
font-size:
|
|
1108
|
+
font-size: var(--sa-text-4xl);
|
|
1105
1109
|
font-weight: 700;
|
|
1106
1110
|
letter-spacing: -0.025em;
|
|
1107
|
-
color: var(--sa-heading);
|
|
1111
|
+
color: var(--sa-color-fg-heading);
|
|
1108
1112
|
text-align: center;
|
|
1109
1113
|
margin: 10px 0 6px;
|
|
1110
1114
|
}
|
|
1111
1115
|
.sa-marketing-sub {
|
|
1112
|
-
font-size:
|
|
1113
|
-
color: var(--sa-
|
|
1116
|
+
font-size: var(--sa-text-lg);
|
|
1117
|
+
color: var(--sa-color-fg-secondary);
|
|
1114
1118
|
text-align: center;
|
|
1115
1119
|
max-width: 540px;
|
|
1116
1120
|
margin: 0 auto 26px;
|
|
@@ -1121,8 +1125,8 @@ async function onLocaleChange(loc: string): Promise<void> {
|
|
|
1121
1125
|
gap: 16px;
|
|
1122
1126
|
}
|
|
1123
1127
|
.sa-marketing-card {
|
|
1124
|
-
background: var(--sa-bg-surface);
|
|
1125
|
-
border: 1px solid var(--sa-border);
|
|
1128
|
+
background: var(--sa-color-bg-surface);
|
|
1129
|
+
border: 1px solid var(--sa-color-border);
|
|
1126
1130
|
border-radius: 12px;
|
|
1127
1131
|
padding: 22px 20px 20px;
|
|
1128
1132
|
display: flex;
|
|
@@ -1135,20 +1139,20 @@ async function onLocaleChange(loc: string): Promise<void> {
|
|
|
1135
1139
|
}
|
|
1136
1140
|
.sa-marketing-card:hover {
|
|
1137
1141
|
transform: translateY(-2px);
|
|
1138
|
-
box-shadow: 0 8px 24px
|
|
1142
|
+
box-shadow: 0 8px 24px var(--sa-shadow-tint-1);
|
|
1139
1143
|
}
|
|
1140
1144
|
.sa-marketing-card.featured {
|
|
1141
|
-
border-color:
|
|
1142
|
-
box-shadow: 0 10px 32px
|
|
1145
|
+
border-color: var(--sa-color-info-border);
|
|
1146
|
+
box-shadow: 0 10px 32px var(--sa-shadow-tint-2);
|
|
1143
1147
|
}
|
|
1144
1148
|
.sa-marketing-card-badge {
|
|
1145
1149
|
position: absolute;
|
|
1146
1150
|
top: -10px;
|
|
1147
1151
|
left: 50%;
|
|
1148
1152
|
transform: translateX(-50%);
|
|
1149
|
-
background: var(--sa-
|
|
1150
|
-
color:
|
|
1151
|
-
font: 700
|
|
1153
|
+
background: var(--sa-color-accent);
|
|
1154
|
+
color: var(--sa-color-fg-on-accent);
|
|
1155
|
+
font: 700 var(--sa-text-xs) var(--sa-font-body);
|
|
1152
1156
|
letter-spacing: 0.1em;
|
|
1153
1157
|
text-transform: uppercase;
|
|
1154
1158
|
padding: 4px 12px;
|
|
@@ -1156,21 +1160,21 @@ async function onLocaleChange(loc: string): Promise<void> {
|
|
|
1156
1160
|
white-space: nowrap;
|
|
1157
1161
|
}
|
|
1158
1162
|
.sa-marketing-card-key {
|
|
1159
|
-
font: 700
|
|
1163
|
+
font: 700 var(--sa-text-xs) var(--sa-font-mono);
|
|
1160
1164
|
letter-spacing: 0.08em;
|
|
1161
|
-
color: var(--sa-
|
|
1165
|
+
color: var(--sa-color-fg-subtle);
|
|
1162
1166
|
text-transform: uppercase;
|
|
1163
1167
|
}
|
|
1164
1168
|
.sa-marketing-card-name {
|
|
1165
|
-
font-size:
|
|
1169
|
+
font-size: var(--sa-text-2xl);
|
|
1166
1170
|
font-weight: 700;
|
|
1167
1171
|
letter-spacing: -0.02em;
|
|
1168
|
-
color: var(--sa-heading);
|
|
1172
|
+
color: var(--sa-color-fg-heading);
|
|
1169
1173
|
margin: 2px 0 4px;
|
|
1170
1174
|
}
|
|
1171
1175
|
.sa-marketing-card-desc {
|
|
1172
|
-
font-size:
|
|
1173
|
-
color: var(--sa-
|
|
1176
|
+
font-size: var(--sa-text-md);
|
|
1177
|
+
color: var(--sa-color-fg-secondary);
|
|
1174
1178
|
line-height: 1.4;
|
|
1175
1179
|
min-height: 36px;
|
|
1176
1180
|
}
|
|
@@ -1181,18 +1185,18 @@ async function onLocaleChange(loc: string): Promise<void> {
|
|
|
1181
1185
|
gap: 6px;
|
|
1182
1186
|
}
|
|
1183
1187
|
.sa-marketing-card-price-big {
|
|
1184
|
-
font-size:
|
|
1188
|
+
font-size: var(--sa-text-4xl);
|
|
1185
1189
|
font-weight: 700;
|
|
1186
1190
|
letter-spacing: -0.03em;
|
|
1187
|
-
color: var(--sa-heading);
|
|
1191
|
+
color: var(--sa-color-fg-heading);
|
|
1188
1192
|
}
|
|
1189
1193
|
.sa-marketing-card-price-unit {
|
|
1190
|
-
font-size:
|
|
1191
|
-
color: var(--sa-
|
|
1194
|
+
font-size: var(--sa-text-md);
|
|
1195
|
+
color: var(--sa-color-fg-subtle);
|
|
1192
1196
|
}
|
|
1193
1197
|
.sa-marketing-card-price-y {
|
|
1194
|
-
font-size:
|
|
1195
|
-
color: var(--sa-
|
|
1198
|
+
font-size: var(--sa-text-sm);
|
|
1199
|
+
color: var(--sa-color-fg-subtle);
|
|
1196
1200
|
margin-bottom: 12px;
|
|
1197
1201
|
}
|
|
1198
1202
|
.sa-marketing-card-cta {
|
|
@@ -1200,41 +1204,41 @@ async function onLocaleChange(loc: string): Promise<void> {
|
|
|
1200
1204
|
margin-top: 14px;
|
|
1201
1205
|
padding: 9px 12px;
|
|
1202
1206
|
border-radius: 8px;
|
|
1203
|
-
border: 1px solid var(--sa-border);
|
|
1204
|
-
background: var(--sa-bg-surface);
|
|
1205
|
-
color: var(--sa-heading);
|
|
1206
|
-
font: 600
|
|
1207
|
+
border: 1px solid var(--sa-color-border);
|
|
1208
|
+
background: var(--sa-color-bg-surface);
|
|
1209
|
+
color: var(--sa-color-fg-heading);
|
|
1210
|
+
font: 600 var(--sa-text-md) var(--sa-font-body);
|
|
1207
1211
|
cursor: pointer;
|
|
1208
1212
|
transition:
|
|
1209
1213
|
background 0.12s,
|
|
1210
1214
|
border-color 0.12s;
|
|
1211
1215
|
}
|
|
1212
1216
|
.sa-marketing-card-cta:hover {
|
|
1213
|
-
background: var(--sa-bg-
|
|
1217
|
+
background: var(--sa-color-bg-sunken);
|
|
1214
1218
|
}
|
|
1215
1219
|
.sa-marketing-card.featured .sa-marketing-card-cta {
|
|
1216
|
-
background: var(--sa-
|
|
1217
|
-
border-color: var(--sa-
|
|
1218
|
-
color:
|
|
1220
|
+
background: var(--sa-color-accent);
|
|
1221
|
+
border-color: var(--sa-color-accent);
|
|
1222
|
+
color: var(--sa-color-fg-on-accent);
|
|
1219
1223
|
}
|
|
1220
1224
|
.sa-marketing-card.featured .sa-marketing-card-cta:hover {
|
|
1221
|
-
background: var(--sa-
|
|
1225
|
+
background: var(--sa-color-accent-strong);
|
|
1222
1226
|
}
|
|
1223
1227
|
.sa-marketing-card-trialnote {
|
|
1224
|
-
font-size:
|
|
1225
|
-
color: var(--sa-
|
|
1228
|
+
font-size: var(--sa-text-xs);
|
|
1229
|
+
color: var(--sa-color-fg-subtle);
|
|
1226
1230
|
text-align: center;
|
|
1227
1231
|
margin-top: 6px;
|
|
1228
1232
|
}
|
|
1229
1233
|
.sa-marketing-card.has-promo {
|
|
1230
|
-
border-color:
|
|
1234
|
+
border-color: var(--sa-color-positive-strong);
|
|
1231
1235
|
}
|
|
1232
1236
|
.sa-marketing-promo-ribbon {
|
|
1233
1237
|
position: absolute;
|
|
1234
1238
|
top: 12px;
|
|
1235
1239
|
right: -2px;
|
|
1236
|
-
color:
|
|
1237
|
-
font-size:
|
|
1240
|
+
color: var(--sa-color-fg-on-accent);
|
|
1241
|
+
font-size: var(--sa-text-xs);
|
|
1238
1242
|
font-weight: 700;
|
|
1239
1243
|
padding: 3px 12px 3px 10px;
|
|
1240
1244
|
border-radius: 4px 0 0 4px;
|
|
@@ -1246,27 +1250,27 @@ async function onLocaleChange(loc: string): Promise<void> {
|
|
|
1246
1250
|
margin-top: 2px;
|
|
1247
1251
|
}
|
|
1248
1252
|
.sa-marketing-card-price-strike s {
|
|
1249
|
-
color: var(--sa-
|
|
1250
|
-
font-size:
|
|
1253
|
+
color: var(--sa-color-fg-subtle);
|
|
1254
|
+
font-size: var(--sa-text-lg);
|
|
1251
1255
|
}
|
|
1252
1256
|
.sa-marketing-price-regular {
|
|
1253
|
-
font-size:
|
|
1257
|
+
font-size: var(--sa-text-2xs);
|
|
1254
1258
|
text-transform: uppercase;
|
|
1255
1259
|
letter-spacing: 0.5px;
|
|
1256
|
-
color: var(--sa-
|
|
1260
|
+
color: var(--sa-color-fg-subtle);
|
|
1257
1261
|
}
|
|
1258
1262
|
.sa-marketing-card-fineprint {
|
|
1259
|
-
font-size:
|
|
1260
|
-
color:
|
|
1263
|
+
font-size: var(--sa-text-2xs);
|
|
1264
|
+
color: var(--sa-color-positive);
|
|
1261
1265
|
text-align: center;
|
|
1262
1266
|
margin-top: 6px;
|
|
1263
1267
|
}
|
|
1264
1268
|
.sa-marketing-card-includes {
|
|
1265
1269
|
margin-top: 18px;
|
|
1266
|
-
font-size:
|
|
1270
|
+
font-size: var(--sa-text-xs);
|
|
1267
1271
|
text-transform: uppercase;
|
|
1268
1272
|
letter-spacing: 0.08em;
|
|
1269
|
-
color: var(--sa-
|
|
1273
|
+
color: var(--sa-color-fg-subtle);
|
|
1270
1274
|
font-weight: 700;
|
|
1271
1275
|
}
|
|
1272
1276
|
.sa-marketing-card-features {
|
|
@@ -1276,8 +1280,8 @@ async function onLocaleChange(loc: string): Promise<void> {
|
|
|
1276
1280
|
display: flex;
|
|
1277
1281
|
flex-direction: column;
|
|
1278
1282
|
gap: 7px;
|
|
1279
|
-
font-size:
|
|
1280
|
-
color:
|
|
1283
|
+
font-size: var(--sa-text-md);
|
|
1284
|
+
color: var(--sa-color-fg-body);
|
|
1281
1285
|
}
|
|
1282
1286
|
.sa-marketing-card-features li {
|
|
1283
1287
|
display: flex;
|
|
@@ -1286,42 +1290,42 @@ async function onLocaleChange(loc: string): Promise<void> {
|
|
|
1286
1290
|
line-height: 1.35;
|
|
1287
1291
|
}
|
|
1288
1292
|
.sa-marketing-card-features .sa-marketing-tick {
|
|
1289
|
-
color:
|
|
1293
|
+
color: var(--sa-color-positive-strong);
|
|
1290
1294
|
flex: 0 0 14px;
|
|
1291
1295
|
margin-top: 1px;
|
|
1292
1296
|
}
|
|
1293
1297
|
.sa-marketing-card-features b {
|
|
1294
|
-
color: var(--sa-heading);
|
|
1298
|
+
color: var(--sa-color-fg-heading);
|
|
1295
1299
|
font-weight: 700;
|
|
1296
1300
|
}
|
|
1297
1301
|
.sa-marketing-card-features-empty {
|
|
1298
1302
|
margin-top: 8px;
|
|
1299
|
-
font-size:
|
|
1300
|
-
color: var(--sa-
|
|
1303
|
+
font-size: var(--sa-text-sm);
|
|
1304
|
+
color: var(--sa-color-fg-subtle);
|
|
1301
1305
|
}
|
|
1302
1306
|
|
|
1303
1307
|
/* ── Marketing administration ── */
|
|
1304
1308
|
.sa-marketing-admin {
|
|
1305
|
-
background: var(--sa-bg-surface);
|
|
1306
|
-
border: 1px solid var(--sa-border);
|
|
1309
|
+
background: var(--sa-color-bg-surface);
|
|
1310
|
+
border: 1px solid var(--sa-color-border);
|
|
1307
1311
|
border-radius: 10px;
|
|
1308
1312
|
}
|
|
1309
1313
|
.sa-marketing-admin-head {
|
|
1310
1314
|
padding: 14px 16px;
|
|
1311
|
-
border-bottom: 1px solid var(--sa-border-soft);
|
|
1315
|
+
border-bottom: 1px solid var(--sa-color-border-soft);
|
|
1312
1316
|
display: flex;
|
|
1313
1317
|
align-items: center;
|
|
1314
1318
|
gap: 12px;
|
|
1315
1319
|
}
|
|
1316
1320
|
.sa-marketing-admin-title {
|
|
1317
|
-
font-size:
|
|
1321
|
+
font-size: var(--sa-text-lg);
|
|
1318
1322
|
font-weight: 700;
|
|
1319
1323
|
letter-spacing: -0.01em;
|
|
1320
|
-
color: var(--sa-heading);
|
|
1324
|
+
color: var(--sa-color-fg-heading);
|
|
1321
1325
|
}
|
|
1322
1326
|
.sa-marketing-admin-sub {
|
|
1323
|
-
font-size:
|
|
1324
|
-
color: var(--sa-
|
|
1327
|
+
font-size: var(--sa-text-sm);
|
|
1328
|
+
color: var(--sa-color-fg-secondary);
|
|
1325
1329
|
}
|
|
1326
1330
|
.sa-marketing-admin-grid {
|
|
1327
1331
|
display: grid;
|
|
@@ -1332,28 +1336,28 @@ async function onLocaleChange(loc: string): Promise<void> {
|
|
|
1332
1336
|
display: contents;
|
|
1333
1337
|
}
|
|
1334
1338
|
.sa-marketing-admin-thead > div {
|
|
1335
|
-
background:
|
|
1339
|
+
background: var(--sa-color-bg-surface-raised);
|
|
1336
1340
|
padding: 10px 14px;
|
|
1337
|
-
font-size:
|
|
1341
|
+
font-size: var(--sa-text-xs);
|
|
1338
1342
|
text-transform: uppercase;
|
|
1339
1343
|
letter-spacing: 0.1em;
|
|
1340
|
-
color: var(--sa-
|
|
1344
|
+
color: var(--sa-color-fg-secondary);
|
|
1341
1345
|
font-weight: 700;
|
|
1342
|
-
border-bottom: 1px solid var(--sa-border);
|
|
1346
|
+
border-bottom: 1px solid var(--sa-color-border);
|
|
1343
1347
|
}
|
|
1344
1348
|
.sa-marketing-admin-row {
|
|
1345
1349
|
display: contents;
|
|
1346
1350
|
}
|
|
1347
1351
|
.sa-marketing-admin-row > div {
|
|
1348
1352
|
padding: 12px 14px;
|
|
1349
|
-
border-bottom: 1px solid var(--sa-border-soft);
|
|
1353
|
+
border-bottom: 1px solid var(--sa-color-border-soft);
|
|
1350
1354
|
display: flex;
|
|
1351
1355
|
align-items: center;
|
|
1352
|
-
font-size:
|
|
1353
|
-
color: var(--sa-heading);
|
|
1356
|
+
font-size: var(--sa-text-md);
|
|
1357
|
+
color: var(--sa-color-fg-heading);
|
|
1354
1358
|
}
|
|
1355
1359
|
.sa-marketing-admin-row--disabled > div {
|
|
1356
|
-
background:
|
|
1360
|
+
background: var(--sa-color-bg-surface-raised);
|
|
1357
1361
|
}
|
|
1358
1362
|
.sa-marketing-admin-row-end {
|
|
1359
1363
|
justify-content: flex-end;
|
|
@@ -1370,41 +1374,41 @@ async function onLocaleChange(loc: string): Promise<void> {
|
|
|
1370
1374
|
border-radius: 8px;
|
|
1371
1375
|
display: grid;
|
|
1372
1376
|
place-items: center;
|
|
1373
|
-
font: 700
|
|
1377
|
+
font: 700 var(--sa-text-2xs) var(--sa-font-mono);
|
|
1374
1378
|
border: 1px solid;
|
|
1375
1379
|
}
|
|
1376
1380
|
.sa-marketing-plan-label {
|
|
1377
|
-
font-size:
|
|
1381
|
+
font-size: var(--sa-text-md);
|
|
1378
1382
|
font-weight: 700;
|
|
1379
|
-
color: var(--sa-heading);
|
|
1383
|
+
color: var(--sa-color-fg-heading);
|
|
1380
1384
|
}
|
|
1381
1385
|
.sa-marketing-plan-key {
|
|
1382
|
-
font: 500
|
|
1383
|
-
color: var(--sa-
|
|
1386
|
+
font: 500 var(--sa-text-xs) var(--sa-font-mono);
|
|
1387
|
+
color: var(--sa-color-fg-subtle);
|
|
1384
1388
|
}
|
|
1385
1389
|
|
|
1386
1390
|
.sa-marketing-field {
|
|
1387
1391
|
width: 100%;
|
|
1388
1392
|
padding: 5px 8px;
|
|
1389
|
-
font: 400
|
|
1390
|
-
color: var(--sa-heading);
|
|
1391
|
-
background: var(--sa-bg-surface);
|
|
1392
|
-
border: 1px solid var(--sa-border-strong);
|
|
1393
|
+
font: 400 var(--sa-text-sm) var(--sa-font-body);
|
|
1394
|
+
color: var(--sa-color-fg-heading);
|
|
1395
|
+
background: var(--sa-color-bg-surface);
|
|
1396
|
+
border: 1px solid var(--sa-color-border-strong);
|
|
1393
1397
|
border-radius: 6px;
|
|
1394
1398
|
}
|
|
1395
1399
|
.sa-marketing-field:focus {
|
|
1396
1400
|
outline: none;
|
|
1397
|
-
border-color: var(--sa-
|
|
1398
|
-
box-shadow: 0 0 0 3px var(--sa-
|
|
1401
|
+
border-color: var(--sa-color-accent);
|
|
1402
|
+
box-shadow: 0 0 0 3px var(--sa-color-accent-surface-strong);
|
|
1399
1403
|
}
|
|
1400
1404
|
.sa-marketing-field:disabled {
|
|
1401
|
-
background: var(--sa-border-soft);
|
|
1402
|
-
color: var(--sa-
|
|
1405
|
+
background: var(--sa-color-border-soft);
|
|
1406
|
+
color: var(--sa-color-fg-subtle);
|
|
1403
1407
|
cursor: not-allowed;
|
|
1404
1408
|
}
|
|
1405
1409
|
.sa-marketing-field--area {
|
|
1406
1410
|
resize: vertical;
|
|
1407
|
-
font-size:
|
|
1411
|
+
font-size: var(--sa-text-md);
|
|
1408
1412
|
line-height: 1.4;
|
|
1409
1413
|
}
|
|
1410
1414
|
|
|
@@ -1420,7 +1424,7 @@ async function onLocaleChange(loc: string): Promise<void> {
|
|
|
1420
1424
|
.sa-marketing-toggle span {
|
|
1421
1425
|
position: absolute;
|
|
1422
1426
|
inset: 0;
|
|
1423
|
-
background:
|
|
1427
|
+
background: var(--sa-color-border-strong);
|
|
1424
1428
|
border-radius: 999px;
|
|
1425
1429
|
transition: background 0.15s;
|
|
1426
1430
|
cursor: pointer;
|
|
@@ -1430,15 +1434,15 @@ async function onLocaleChange(loc: string): Promise<void> {
|
|
|
1430
1434
|
position: absolute;
|
|
1431
1435
|
width: 16px;
|
|
1432
1436
|
height: 16px;
|
|
1433
|
-
background:
|
|
1437
|
+
background: var(--sa-color-bg-surface);
|
|
1434
1438
|
border-radius: 50%;
|
|
1435
1439
|
left: 2px;
|
|
1436
1440
|
top: 2px;
|
|
1437
1441
|
transition: transform 0.15s;
|
|
1438
|
-
box-shadow: 0 1px 2px
|
|
1442
|
+
box-shadow: 0 1px 2px var(--sa-shadow-tint-4);
|
|
1439
1443
|
}
|
|
1440
1444
|
.sa-marketing-toggle input:checked + span {
|
|
1441
|
-
background: var(--sa-
|
|
1445
|
+
background: var(--sa-color-accent);
|
|
1442
1446
|
}
|
|
1443
1447
|
.sa-marketing-toggle input:checked + span::before {
|
|
1444
1448
|
transform: translateX(16px);
|
|
@@ -1454,24 +1458,24 @@ async function onLocaleChange(loc: string): Promise<void> {
|
|
|
1454
1458
|
gap: 5px;
|
|
1455
1459
|
padding: 2px 8px;
|
|
1456
1460
|
border-radius: 999px;
|
|
1457
|
-
font-size:
|
|
1461
|
+
font-size: var(--sa-text-xs);
|
|
1458
1462
|
font-weight: 600;
|
|
1459
1463
|
border: 1px solid;
|
|
1460
1464
|
}
|
|
1461
1465
|
.sa-marketing-chip--muted {
|
|
1462
|
-
background: var(--sa-border-soft);
|
|
1463
|
-
color: var(--sa-
|
|
1464
|
-
border-color:
|
|
1466
|
+
background: var(--sa-color-border-soft);
|
|
1467
|
+
color: var(--sa-color-fg-secondary);
|
|
1468
|
+
border-color: var(--sa-color-border-strong);
|
|
1465
1469
|
}
|
|
1466
1470
|
.sa-marketing-chip--featured {
|
|
1467
|
-
background: var(--sa-
|
|
1468
|
-
color: var(--sa-
|
|
1469
|
-
border-color:
|
|
1471
|
+
background: var(--sa-color-accent-surface-strong);
|
|
1472
|
+
color: var(--sa-color-accent-strong);
|
|
1473
|
+
border-color: var(--sa-color-info-border);
|
|
1470
1474
|
}
|
|
1471
1475
|
.sa-marketing-chip--live {
|
|
1472
|
-
background: var(--sa-positive-
|
|
1473
|
-
color:
|
|
1474
|
-
border-color:
|
|
1476
|
+
background: var(--sa-color-positive-surface);
|
|
1477
|
+
color: var(--sa-color-positive-fg);
|
|
1478
|
+
border-color: var(--sa-color-positive-border);
|
|
1475
1479
|
}
|
|
1476
1480
|
.sa-marketing-chip--live::before {
|
|
1477
1481
|
content: '';
|
|
@@ -1490,16 +1494,16 @@ async function onLocaleChange(loc: string): Promise<void> {
|
|
|
1490
1494
|
border: 1px solid transparent;
|
|
1491
1495
|
border-radius: 6px;
|
|
1492
1496
|
cursor: pointer;
|
|
1493
|
-
color: var(--sa-
|
|
1497
|
+
color: var(--sa-color-fg-subtle);
|
|
1494
1498
|
transition:
|
|
1495
1499
|
background 0.12s,
|
|
1496
1500
|
color 0.12s,
|
|
1497
1501
|
border-color 0.12s;
|
|
1498
1502
|
}
|
|
1499
1503
|
.sa-marketing-expand-btn:hover {
|
|
1500
|
-
background: var(--sa-border-soft);
|
|
1501
|
-
color: var(--sa-
|
|
1502
|
-
border-color: var(--sa-border);
|
|
1504
|
+
background: var(--sa-color-border-soft);
|
|
1505
|
+
color: var(--sa-color-accent);
|
|
1506
|
+
border-color: var(--sa-color-border);
|
|
1503
1507
|
}
|
|
1504
1508
|
.sa-marketing-chev {
|
|
1505
1509
|
display: inline-flex;
|
|
@@ -1511,8 +1515,12 @@ async function onLocaleChange(loc: string): Promise<void> {
|
|
|
1511
1515
|
|
|
1512
1516
|
.sa-marketing-admin-expand {
|
|
1513
1517
|
grid-column: 1 / -1;
|
|
1514
|
-
background: linear-gradient(
|
|
1515
|
-
|
|
1518
|
+
background: linear-gradient(
|
|
1519
|
+
180deg,
|
|
1520
|
+
var(--sa-color-bg-surface-raised) 0%,
|
|
1521
|
+
var(--sa-color-bg-surface) 100%
|
|
1522
|
+
);
|
|
1523
|
+
border-bottom: 1px solid var(--sa-color-border-soft);
|
|
1516
1524
|
padding: 18px 20px 22px;
|
|
1517
1525
|
}
|
|
1518
1526
|
.sa-marketing-expand-grid {
|
|
@@ -1531,15 +1539,15 @@ async function onLocaleChange(loc: string): Promise<void> {
|
|
|
1531
1539
|
gap: 6px;
|
|
1532
1540
|
}
|
|
1533
1541
|
.sa-marketing-expand-label {
|
|
1534
|
-
font-size:
|
|
1542
|
+
font-size: var(--sa-text-xs);
|
|
1535
1543
|
text-transform: uppercase;
|
|
1536
1544
|
letter-spacing: 0.1em;
|
|
1537
|
-
color: var(--sa-
|
|
1545
|
+
color: var(--sa-color-fg-secondary);
|
|
1538
1546
|
font-weight: 700;
|
|
1539
1547
|
}
|
|
1540
1548
|
.sa-marketing-expand-hint {
|
|
1541
|
-
font-size:
|
|
1542
|
-
color: var(--sa-
|
|
1549
|
+
font-size: var(--sa-text-xs);
|
|
1550
|
+
color: var(--sa-color-fg-subtle);
|
|
1543
1551
|
}
|
|
1544
1552
|
.sa-marketing-field-head {
|
|
1545
1553
|
display: flex;
|
|
@@ -1548,11 +1556,11 @@ async function onLocaleChange(loc: string): Promise<void> {
|
|
|
1548
1556
|
flex-wrap: wrap;
|
|
1549
1557
|
}
|
|
1550
1558
|
.sa-marketing-source-hint {
|
|
1551
|
-
font-size:
|
|
1552
|
-
color: var(--sa-
|
|
1559
|
+
font-size: var(--sa-text-xs);
|
|
1560
|
+
color: var(--sa-color-fg-subtle);
|
|
1553
1561
|
}
|
|
1554
1562
|
.sa-marketing-source-hint em {
|
|
1555
|
-
color: var(--sa-
|
|
1563
|
+
color: var(--sa-color-fg-secondary);
|
|
1556
1564
|
font-style: normal;
|
|
1557
1565
|
}
|
|
1558
1566
|
.sa-marketing-locked-value {
|
|
@@ -1560,17 +1568,17 @@ async function onLocaleChange(loc: string): Promise<void> {
|
|
|
1560
1568
|
align-items: center;
|
|
1561
1569
|
gap: 8px;
|
|
1562
1570
|
padding: 8px 10px;
|
|
1563
|
-
background: var(--sa-bg-surface);
|
|
1564
|
-
border: 1px solid var(--sa-border);
|
|
1571
|
+
background: var(--sa-color-bg-surface);
|
|
1572
|
+
border: 1px solid var(--sa-color-border);
|
|
1565
1573
|
border-radius: 6px;
|
|
1566
|
-
font-size:
|
|
1567
|
-
color: var(--sa-heading);
|
|
1574
|
+
font-size: var(--sa-text-md);
|
|
1575
|
+
color: var(--sa-color-fg-heading);
|
|
1568
1576
|
}
|
|
1569
1577
|
.sa-marketing-locked-hint {
|
|
1570
|
-
font-size:
|
|
1578
|
+
font-size: var(--sa-text-2xs);
|
|
1571
1579
|
text-transform: uppercase;
|
|
1572
|
-
color: var(--sa-
|
|
1573
|
-
background:
|
|
1580
|
+
color: var(--sa-color-fg-subtle);
|
|
1581
|
+
background: var(--sa-color-bg-sunken);
|
|
1574
1582
|
padding: 1px 6px;
|
|
1575
1583
|
border-radius: 4px;
|
|
1576
1584
|
margin-left: auto;
|
|
@@ -1579,14 +1587,14 @@ async function onLocaleChange(loc: string): Promise<void> {
|
|
|
1579
1587
|
display: flex;
|
|
1580
1588
|
align-items: center;
|
|
1581
1589
|
gap: 10px;
|
|
1582
|
-
background: var(--sa-bg-surface);
|
|
1583
|
-
border: 1px solid var(--sa-border);
|
|
1590
|
+
background: var(--sa-color-bg-surface);
|
|
1591
|
+
border: 1px solid var(--sa-color-border);
|
|
1584
1592
|
border-radius: 8px;
|
|
1585
1593
|
padding: 8px 12px;
|
|
1586
1594
|
}
|
|
1587
1595
|
.sa-marketing-trial-label {
|
|
1588
|
-
font-size:
|
|
1589
|
-
color: var(--sa-heading);
|
|
1596
|
+
font-size: var(--sa-text-md);
|
|
1597
|
+
color: var(--sa-color-fg-heading);
|
|
1590
1598
|
}
|
|
1591
1599
|
.sa-marketing-trial-days {
|
|
1592
1600
|
margin-left: auto;
|
|
@@ -1595,8 +1603,8 @@ async function onLocaleChange(loc: string): Promise<void> {
|
|
|
1595
1603
|
gap: 6px;
|
|
1596
1604
|
}
|
|
1597
1605
|
.sa-marketing-trial-unit {
|
|
1598
|
-
font-size:
|
|
1599
|
-
color: var(--sa-
|
|
1606
|
+
font-size: var(--sa-text-sm);
|
|
1607
|
+
color: var(--sa-color-fg-secondary);
|
|
1600
1608
|
}
|
|
1601
1609
|
|
|
1602
1610
|
.sa-marketing-tf-head {
|
|
@@ -1615,8 +1623,8 @@ async function onLocaleChange(loc: string): Promise<void> {
|
|
|
1615
1623
|
align-items: center;
|
|
1616
1624
|
}
|
|
1617
1625
|
.sa-marketing-tf-num {
|
|
1618
|
-
font: 600
|
|
1619
|
-
color: var(--sa-
|
|
1626
|
+
font: 600 var(--sa-text-xs) var(--sa-font-mono);
|
|
1627
|
+
color: var(--sa-color-fg-subtle);
|
|
1620
1628
|
text-align: center;
|
|
1621
1629
|
}
|
|
1622
1630
|
.sa-marketing-tf-actions {
|
|
@@ -1628,39 +1636,39 @@ async function onLocaleChange(loc: string): Promise<void> {
|
|
|
1628
1636
|
height: 24px;
|
|
1629
1637
|
display: grid;
|
|
1630
1638
|
place-items: center;
|
|
1631
|
-
background: var(--sa-bg-surface);
|
|
1632
|
-
border: 1px solid var(--sa-border);
|
|
1639
|
+
background: var(--sa-color-bg-surface);
|
|
1640
|
+
border: 1px solid var(--sa-color-border);
|
|
1633
1641
|
border-radius: 5px;
|
|
1634
1642
|
cursor: pointer;
|
|
1635
|
-
font: 600
|
|
1636
|
-
color: var(--sa-
|
|
1643
|
+
font: 600 var(--sa-text-2xs) var(--sa-font-body);
|
|
1644
|
+
color: var(--sa-color-fg-secondary);
|
|
1637
1645
|
padding: 0;
|
|
1638
1646
|
transition:
|
|
1639
1647
|
background 0.12s,
|
|
1640
1648
|
border-color 0.12s;
|
|
1641
1649
|
}
|
|
1642
1650
|
.sa-marketing-iconbtn:hover:not(:disabled) {
|
|
1643
|
-
background: var(--sa-border-soft);
|
|
1644
|
-
border-color:
|
|
1651
|
+
background: var(--sa-color-border-soft);
|
|
1652
|
+
border-color: var(--sa-color-border-strong);
|
|
1645
1653
|
}
|
|
1646
1654
|
.sa-marketing-iconbtn:disabled {
|
|
1647
1655
|
opacity: 0.35;
|
|
1648
1656
|
cursor: not-allowed;
|
|
1649
1657
|
}
|
|
1650
1658
|
.sa-marketing-iconbtn--danger {
|
|
1651
|
-
color:
|
|
1659
|
+
color: var(--sa-color-negative-fg);
|
|
1652
1660
|
}
|
|
1653
1661
|
.sa-marketing-iconbtn--danger:hover:not(:disabled) {
|
|
1654
|
-
background:
|
|
1655
|
-
border-color:
|
|
1662
|
+
background: var(--sa-color-negative-surface);
|
|
1663
|
+
border-color: var(--sa-color-negative-border);
|
|
1656
1664
|
}
|
|
1657
1665
|
.sa-marketing-tf-empty {
|
|
1658
1666
|
padding: 14px;
|
|
1659
1667
|
text-align: center;
|
|
1660
|
-
font-size:
|
|
1661
|
-
color: var(--sa-
|
|
1662
|
-
background: var(--sa-bg-surface);
|
|
1663
|
-
border: 1px dashed
|
|
1668
|
+
font-size: var(--sa-text-sm);
|
|
1669
|
+
color: var(--sa-color-fg-subtle);
|
|
1670
|
+
background: var(--sa-color-bg-surface);
|
|
1671
|
+
border: 1px dashed var(--sa-color-border-strong);
|
|
1664
1672
|
border-radius: 8px;
|
|
1665
1673
|
}
|
|
1666
1674
|
.sa-marketing-tf-add {
|
|
@@ -1681,10 +1689,10 @@ async function onLocaleChange(loc: string): Promise<void> {
|
|
|
1681
1689
|
gap: 5px;
|
|
1682
1690
|
padding: 3px 9px;
|
|
1683
1691
|
border-radius: 999px;
|
|
1684
|
-
background: var(--sa-bg-surface);
|
|
1685
|
-
border: 1px dashed
|
|
1686
|
-
font-size:
|
|
1687
|
-
color: var(--sa-
|
|
1692
|
+
background: var(--sa-color-bg-surface);
|
|
1693
|
+
border: 1px dashed var(--sa-color-border-strong);
|
|
1694
|
+
font-size: var(--sa-text-sm);
|
|
1695
|
+
color: var(--sa-color-fg-secondary);
|
|
1688
1696
|
cursor: pointer;
|
|
1689
1697
|
transition:
|
|
1690
1698
|
background 0.12s,
|
|
@@ -1693,14 +1701,14 @@ async function onLocaleChange(loc: string): Promise<void> {
|
|
|
1693
1701
|
}
|
|
1694
1702
|
.sa-marketing-tf-chip em {
|
|
1695
1703
|
font-style: normal;
|
|
1696
|
-
color: var(--sa-
|
|
1697
|
-
font: 500
|
|
1704
|
+
color: var(--sa-color-fg-subtle);
|
|
1705
|
+
font: 500 var(--sa-text-xs) var(--sa-font-mono);
|
|
1698
1706
|
}
|
|
1699
1707
|
.sa-marketing-tf-chip:hover:not(:disabled) {
|
|
1700
|
-
background: var(--sa-
|
|
1701
|
-
border-color:
|
|
1708
|
+
background: var(--sa-color-accent-surface-strong);
|
|
1709
|
+
border-color: var(--sa-color-info-border);
|
|
1702
1710
|
border-style: solid;
|
|
1703
|
-
color: var(--sa-
|
|
1711
|
+
color: var(--sa-color-accent-strong);
|
|
1704
1712
|
}
|
|
1705
1713
|
.sa-marketing-tf-chip:disabled {
|
|
1706
1714
|
opacity: 0.5;
|
|
@@ -1723,12 +1731,12 @@ async function onLocaleChange(loc: string): Promise<void> {
|
|
|
1723
1731
|
margin-top: 6px;
|
|
1724
1732
|
}
|
|
1725
1733
|
.sa-marketing-version-tab {
|
|
1726
|
-
border: 1px solid var(--sa-border);
|
|
1727
|
-
background:
|
|
1734
|
+
border: 1px solid var(--sa-color-border);
|
|
1735
|
+
background: var(--sa-color-bg-surface);
|
|
1728
1736
|
border-radius: 6px;
|
|
1729
1737
|
padding: 2px 8px;
|
|
1730
|
-
font: 600
|
|
1731
|
-
color: var(--sa-muted);
|
|
1738
|
+
font: 600 var(--sa-text-xs) var(--sa-font-mono, ui-monospace, monospace);
|
|
1739
|
+
color: var(--sa-color-fg-muted);
|
|
1732
1740
|
cursor: pointer;
|
|
1733
1741
|
letter-spacing: 0.02em;
|
|
1734
1742
|
transition:
|
|
@@ -1737,13 +1745,13 @@ async function onLocaleChange(loc: string): Promise<void> {
|
|
|
1737
1745
|
color 0.1s;
|
|
1738
1746
|
}
|
|
1739
1747
|
.sa-marketing-version-tab:hover {
|
|
1740
|
-
border-color:
|
|
1741
|
-
background: var(--sa-bg-
|
|
1742
|
-
color: var(--sa-
|
|
1748
|
+
border-color: var(--sa-color-border-strong);
|
|
1749
|
+
background: var(--sa-color-bg-sunken);
|
|
1750
|
+
color: var(--sa-color-fg-secondary);
|
|
1743
1751
|
}
|
|
1744
1752
|
.sa-marketing-version-tab--active {
|
|
1745
|
-
border-color: var(--sa-
|
|
1746
|
-
background: var(--sa-
|
|
1747
|
-
color: var(--sa-
|
|
1753
|
+
border-color: var(--sa-color-accent-strong);
|
|
1754
|
+
background: var(--sa-color-accent-surface-strong);
|
|
1755
|
+
color: var(--sa-color-accent-strong);
|
|
1748
1756
|
}
|
|
1749
1757
|
</style>
|