maxidl commited on
Commit
978838a
·
verified ·
1 Parent(s): 3a0043e

Upload index.html with huggingface_hub

Browse files
Files changed (1) hide show
  1. index.html +33 -2
index.html CHANGED
@@ -157,6 +157,14 @@
157
  cursor: pointer;
158
  accent-color: #4361ee;
159
  }
 
 
 
 
 
 
 
 
160
  .checkbox-item .model-name.missing {
161
  text-decoration: line-through;
162
  opacity: 0.5;
@@ -1081,7 +1089,7 @@
1081
  }
1082
  lastCkpt = m.is_checkpoint;
1083
 
1084
- const lbl = document.createElement('label');
1085
  lbl.className = 'checkbox-item';
1086
 
1087
  const cb = document.createElement('input');
@@ -1092,7 +1100,24 @@
1092
  cb.addEventListener('change', () => this.renderChart());
1093
 
1094
  const dot = document.createElement('span');
1095
- dot.style.cssText = `display:inline-block;width:9px;height:9px;border-radius:50%;background:${MODEL_COLORS[m.model_display_name]}`;
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1096
 
1097
  const name = document.createElement('span');
1098
  name.className = 'model-name';
@@ -1122,6 +1147,12 @@
1122
  }
1123
  });
1124
 
 
 
 
 
 
 
1125
  lbl.append(cb, dot, name);
1126
  container.appendChild(lbl);
1127
  }
 
157
  cursor: pointer;
158
  accent-color: #4361ee;
159
  }
160
+ .checkbox-item .color-dot {
161
+ cursor: pointer;
162
+ border: 1px solid transparent;
163
+ transition: border-color 0.15s;
164
+ }
165
+ .checkbox-item .color-dot:hover {
166
+ border-color: #888;
167
+ }
168
  .checkbox-item .model-name.missing {
169
  text-decoration: line-through;
170
  opacity: 0.5;
 
1089
  }
1090
  lastCkpt = m.is_checkpoint;
1091
 
1092
+ const lbl = document.createElement('div');
1093
  lbl.className = 'checkbox-item';
1094
 
1095
  const cb = document.createElement('input');
 
1100
  cb.addEventListener('change', () => this.renderChart());
1101
 
1102
  const dot = document.createElement('span');
1103
+ dot.className = 'color-dot';
1104
+ dot.dataset.model = m.model_display_name;
1105
+ dot.style.cssText = `display:inline-block;width:9px;height:9px;border-radius:50%;background:${MODEL_COLORS[m.model_display_name]};position:relative`;
1106
+
1107
+ const colorInput = document.createElement('input');
1108
+ colorInput.type = 'color';
1109
+ colorInput.value = MODEL_COLORS[m.model_display_name];
1110
+ colorInput.style.cssText = 'position:absolute;top:0;left:0;width:100%;height:100%;opacity:0;cursor:pointer;border:none;padding:0';
1111
+ colorInput.addEventListener('click', (e) => e.stopPropagation());
1112
+ colorInput.addEventListener('input', (e) => {
1113
+ const newColor = e.target.value;
1114
+ MODEL_COLORS[m.model_display_name] = newColor;
1115
+ document.querySelectorAll(`.color-dot[data-model="${CSS.escape(m.model_display_name)}"]`).forEach(d => {
1116
+ d.style.background = newColor;
1117
+ });
1118
+ panels.forEach((p) => p.renderChart());
1119
+ });
1120
+ dot.appendChild(colorInput);
1121
 
1122
  const name = document.createElement('span');
1123
  name.className = 'model-name';
 
1147
  }
1148
  });
1149
 
1150
+ // Click on name or container (but not dot) toggles checkbox
1151
+ name.addEventListener('click', () => { cb.checked = !cb.checked; cb.dispatchEvent(new Event('change')); });
1152
+ lbl.addEventListener('click', (e) => {
1153
+ if (e.target === lbl) { cb.checked = !cb.checked; cb.dispatchEvent(new Event('change')); }
1154
+ });
1155
+
1156
  lbl.append(cb, dot, name);
1157
  container.appendChild(lbl);
1158
  }