vzcode 2.10.0 → 2.12.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,250 @@
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-bg-canvas {
1068
+ position: absolute;
1069
+ top: 50%;
1070
+ left: 0;
1071
+ transform: translateY(-50%);
1072
+ width: 100%;
1073
+ height: 12px;
1074
+ border-radius: 6px;
1075
+ pointer-events: none;
1076
+ }
1077
+
1078
+ .slider-input {
1079
+ width: 100%;
1080
+ height: 8px;
1081
+ background: transparent;
1082
+ outline: none;
1083
+ border: none;
1084
+ cursor: pointer;
1085
+ position: relative;
1086
+ z-index: 2;
1087
+
1088
+ // Remove default styling
1089
+ -webkit-appearance: none;
1090
+ appearance: none;
1091
+
1092
+ // Custom track
1093
+ &::-webkit-slider-track {
1094
+ width: 100%;
1095
+ height: 8px;
1096
+ background: var(--vh-color-neutral-02);
1097
+ border-radius: 4px;
1098
+ border: none;
1099
+ }
1100
+
1101
+ &::-moz-range-track {
1102
+ width: 100%;
1103
+ height: 8px;
1104
+ background: var(--vh-color-neutral-02);
1105
+ border-radius: 4px;
1106
+ border: none;
1107
+ }
1108
+
1109
+ // Custom thumb
1110
+ &::-webkit-slider-thumb {
1111
+ -webkit-appearance: none;
1112
+ appearance: none;
1113
+ width: 18px;
1114
+ height: 18px;
1115
+ background: linear-gradient(
1116
+ 135deg,
1117
+ #66ecff,
1118
+ #00ffff
1119
+ );
1120
+ border-radius: 50%;
1121
+ cursor: pointer;
1122
+ border: 2px solid var(--vh-color-neutral-01);
1123
+ box-shadow: 0 2px 6px rgba(0, 0, 0, 0.3);
1124
+ transition: all 0.2s ease;
1125
+ position: relative;
1126
+ z-index: 3;
1127
+
1128
+ &:hover {
1129
+ transform: scale(1.1);
1130
+ box-shadow: 0 3px 8px rgba(102, 236, 255, 0.4);
1131
+ }
1132
+
1133
+ &:active {
1134
+ transform: scale(1.05);
1135
+ box-shadow: 0 2px 4px rgba(0, 0, 0, 0.4);
1136
+ }
1137
+ }
1138
+
1139
+ &::-moz-range-thumb {
1140
+ width: 18px;
1141
+ height: 18px;
1142
+ background: linear-gradient(
1143
+ 135deg,
1144
+ #66ecff,
1145
+ #00ffff
1146
+ );
1147
+ border-radius: 50%;
1148
+ cursor: pointer;
1149
+ border: 2px solid var(--vh-color-neutral-01);
1150
+ box-shadow: 0 2px 6px rgba(0, 0, 0, 0.3);
1151
+ transition: all 0.2s ease;
1152
+
1153
+ &:hover {
1154
+ transform: scale(1.1);
1155
+ box-shadow: 0 3px 8px rgba(102, 236, 255, 0.4);
1156
+ }
1157
+
1158
+ &:active {
1159
+ transform: scale(1.05);
1160
+ box-shadow: 0 2px 4px rgba(0, 0, 0, 0.4);
1161
+ }
1162
+ }
1163
+
1164
+ // Focus styles
1165
+ &:focus {
1166
+ outline: none;
1167
+
1168
+ &::-webkit-slider-thumb {
1169
+ box-shadow: 0 0 0 3px rgba(102, 236, 255, 0.3);
1170
+ }
1171
+
1172
+ &::-moz-range-thumb {
1173
+ box-shadow: 0 0 0 3px rgba(102, 236, 255, 0.3);
1174
+ }
1175
+ }
1176
+ }
1177
+
1178
+ .slider-track-fill {
1179
+ position: absolute;
1180
+ top: 50%;
1181
+ left: 0;
1182
+ height: 8px;
1183
+ background: linear-gradient(90deg, #77fd8c, #66ecff);
1184
+ border-radius: 4px;
1185
+ transform: translateY(-50%);
1186
+ transition: width 0.1s ease;
1187
+ pointer-events: none;
1188
+ z-index: 1;
1189
+ }
1190
+
1191
+ .slider-bounds {
1192
+ display: flex;
1193
+ justify-content: space-between;
1194
+ align-items: center;
1195
+ margin-top: 1px;
1196
+ }
1197
+
1198
+ .min-value,
1199
+ .max-value {
1200
+ font-family: var(--vzcode-font-family);
1201
+ font-size: 10px;
1202
+ color: var(--vh-color-neutral-03);
1203
+ font-weight: 400;
1204
+ }
1205
+ }
960
1206
  }
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 };