vzcode 2.10.0 → 2.11.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.
@@ -957,4 +957,239 @@
957
957
  background: rgba(255, 255, 255, 0.02);
958
958
  }
959
959
  }
960
+
961
+ // Visual Editor Color Widget Styles
962
+ .visual-editor-color {
963
+ display: flex;
964
+ flex-direction: column;
965
+ gap: 12px;
966
+ padding: 12px 10px;
967
+ background: var(--vh-color-neutral-01);
968
+ border: 1px solid var(--vh-color-neutral-02);
969
+ border-radius: 8px;
970
+ transition: all 0.2s ease;
971
+ width: 100%;
972
+ box-sizing: border-box;
973
+
974
+ &:hover {
975
+ border-color: var(--vh-color-neutral-03);
976
+ background: rgba(255, 255, 255, 0.02);
977
+ }
978
+ }
979
+
980
+ .color-header {
981
+ display: flex;
982
+ justify-content: space-between;
983
+ align-items: center;
984
+ margin-bottom: 4px;
985
+ }
986
+
987
+ .color-label {
988
+ font-family: var(--vzcode-font-family);
989
+ font-size: 13px;
990
+ font-weight: 500;
991
+ color: var(--vh-color-neutral-04);
992
+ margin: 0;
993
+ }
994
+
995
+ .color-value {
996
+ font-family: var(--vzcode-font-family);
997
+ font-size: 13px;
998
+ font-weight: 600;
999
+ color: #66ecff; // SKY color from theme
1000
+ background: rgba(102, 236, 255, 0.1);
1001
+ padding: 2px 6px;
1002
+ border-radius: 4px;
1003
+ min-width: 60px;
1004
+ text-align: center;
1005
+ font-family: monospace;
1006
+ }
1007
+
1008
+ .color-preview {
1009
+ width: 100%;
1010
+ height: 40px;
1011
+ border-radius: 6px;
1012
+ border: 1px solid var(--vh-color-neutral-03);
1013
+ box-shadow: inset 0 1px 3px rgba(0, 0, 0, 0.2);
1014
+ transition: all 0.2s ease;
1015
+
1016
+ &:hover {
1017
+ border-color: var(--vh-color-neutral-04);
1018
+ box-shadow: inset 0 1px 3px rgba(0, 0, 0, 0.3);
1019
+ }
1020
+ }
1021
+
1022
+ .lch-sliders {
1023
+ display: flex;
1024
+ flex-direction: column;
1025
+ gap: 12px;
1026
+ }
1027
+
1028
+ .lch-slider {
1029
+ display: flex;
1030
+ flex-direction: column;
1031
+ gap: 6px;
1032
+
1033
+ .slider-header {
1034
+ display: flex;
1035
+ justify-content: space-between;
1036
+ align-items: center;
1037
+ margin-bottom: 2px;
1038
+ }
1039
+
1040
+ .slider-label {
1041
+ font-family: var(--vzcode-font-family);
1042
+ font-size: 12px;
1043
+ font-weight: 500;
1044
+ color: var(--vh-color-neutral-04);
1045
+ margin: 0;
1046
+ }
1047
+
1048
+ .slider-value {
1049
+ font-family: var(--vzcode-font-family);
1050
+ font-size: 12px;
1051
+ font-weight: 600;
1052
+ color: #66ecff;
1053
+ background: rgba(102, 236, 255, 0.1);
1054
+ padding: 1px 4px;
1055
+ border-radius: 3px;
1056
+ min-width: 30px;
1057
+ text-align: center;
1058
+ }
1059
+
1060
+ .slider-container {
1061
+ position: relative;
1062
+ height: 16px;
1063
+ display: flex;
1064
+ align-items: center;
1065
+ }
1066
+
1067
+ .slider-input {
1068
+ width: 100%;
1069
+ height: 4px;
1070
+ background: transparent;
1071
+ outline: none;
1072
+ border: none;
1073
+ cursor: pointer;
1074
+ position: relative;
1075
+ z-index: 2;
1076
+
1077
+ // Remove default styling
1078
+ -webkit-appearance: none;
1079
+ appearance: none;
1080
+
1081
+ // Custom track
1082
+ &::-webkit-slider-track {
1083
+ width: 100%;
1084
+ height: 4px;
1085
+ background: var(--vh-color-neutral-02);
1086
+ border-radius: 2px;
1087
+ border: none;
1088
+ }
1089
+
1090
+ &::-moz-range-track {
1091
+ width: 100%;
1092
+ height: 4px;
1093
+ background: var(--vh-color-neutral-02);
1094
+ border-radius: 2px;
1095
+ border: none;
1096
+ }
1097
+
1098
+ // Custom thumb
1099
+ &::-webkit-slider-thumb {
1100
+ -webkit-appearance: none;
1101
+ appearance: none;
1102
+ width: 14px;
1103
+ height: 14px;
1104
+ background: linear-gradient(
1105
+ 135deg,
1106
+ #66ecff,
1107
+ #00ffff
1108
+ );
1109
+ border-radius: 50%;
1110
+ cursor: pointer;
1111
+ border: 1px solid var(--vh-color-neutral-01);
1112
+ box-shadow: 0 1px 3px rgba(0, 0, 0, 0.3);
1113
+ transition: all 0.2s ease;
1114
+ position: relative;
1115
+ z-index: 3;
1116
+
1117
+ &:hover {
1118
+ transform: scale(1.1);
1119
+ box-shadow: 0 2px 4px rgba(102, 236, 255, 0.4);
1120
+ }
1121
+
1122
+ &:active {
1123
+ transform: scale(1.05);
1124
+ box-shadow: 0 1px 2px rgba(0, 0, 0, 0.4);
1125
+ }
1126
+ }
1127
+
1128
+ &::-moz-range-thumb {
1129
+ width: 14px;
1130
+ height: 14px;
1131
+ background: linear-gradient(
1132
+ 135deg,
1133
+ #66ecff,
1134
+ #00ffff
1135
+ );
1136
+ border-radius: 50%;
1137
+ cursor: pointer;
1138
+ border: 1px solid var(--vh-color-neutral-01);
1139
+ box-shadow: 0 1px 3px rgba(0, 0, 0, 0.3);
1140
+ transition: all 0.2s ease;
1141
+
1142
+ &:hover {
1143
+ transform: scale(1.1);
1144
+ box-shadow: 0 2px 4px rgba(102, 236, 255, 0.4);
1145
+ }
1146
+
1147
+ &:active {
1148
+ transform: scale(1.05);
1149
+ box-shadow: 0 1px 2px rgba(0, 0, 0, 0.4);
1150
+ }
1151
+ }
1152
+
1153
+ // Focus styles
1154
+ &:focus {
1155
+ outline: none;
1156
+
1157
+ &::-webkit-slider-thumb {
1158
+ box-shadow: 0 0 0 2px rgba(102, 236, 255, 0.3);
1159
+ }
1160
+
1161
+ &::-moz-range-thumb {
1162
+ box-shadow: 0 0 0 2px rgba(102, 236, 255, 0.3);
1163
+ }
1164
+ }
1165
+ }
1166
+
1167
+ .slider-track-fill {
1168
+ position: absolute;
1169
+ top: 50%;
1170
+ left: 0;
1171
+ height: 4px;
1172
+ background: linear-gradient(90deg, #77fd8c, #66ecff);
1173
+ border-radius: 2px;
1174
+ transform: translateY(-50%);
1175
+ transition: width 0.1s ease;
1176
+ pointer-events: none;
1177
+ z-index: 1;
1178
+ }
1179
+
1180
+ .slider-bounds {
1181
+ display: flex;
1182
+ justify-content: space-between;
1183
+ align-items: center;
1184
+ margin-top: 1px;
1185
+ }
1186
+
1187
+ .min-value,
1188
+ .max-value {
1189
+ font-family: var(--vzcode-font-family);
1190
+ font-size: 10px;
1191
+ color: var(--vh-color-neutral-03);
1192
+ font-weight: 400;
1193
+ }
1194
+ }
960
1195
  }
package/src/types.ts CHANGED
@@ -213,4 +213,5 @@ export type VisualEditorConfigEntry =
213
213
  property: string;
214
214
  label: string;
215
215
  options: string[];
216
- };
216
+ }
217
+ | { type: 'color'; property: string; label: string };