@pipelex/mthds-ui 0.7.0 → 0.9.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.
@@ -1007,6 +1007,19 @@ svg.react-flow__connectionline {
1007
1007
  .pipe-card--controller {
1008
1008
  --pipe-card-accent: var(--text-muted);
1009
1009
  }
1010
+
1011
+ /* Signature (unimplemented stub) — dashed + muted so it reads as "declared,
1012
+ not built yet", distinct from operator (solid accent) and controller (tinted). */
1013
+ .pipe-card--signature {
1014
+ --pipe-card-accent: var(--text-muted);
1015
+ border-left-style: dashed;
1016
+ opacity: 0.85;
1017
+ }
1018
+ .pipe-card-badge--signature {
1019
+ background: transparent;
1020
+ color: var(--text-muted);
1021
+ border: 1px dashed var(--text-muted);
1022
+ }
1010
1023
  @keyframes pipe-card-pulse {
1011
1024
  0%,
1012
1025
  100% {
@@ -2159,20 +2172,37 @@ button.stuff-viewer-local-file--button:focus-visible {
2159
2172
 
2160
2173
  /* ─── Standalone GraphViewer chrome (toolbar, theme, layout) ─────────── */
2161
2174
 
2162
- * { box-sizing: border-box; margin: 0; padding: 0; }
2175
+ * {
2176
+ box-sizing: border-box;
2177
+ margin: 0;
2178
+ padding: 0;
2179
+ }
2163
2180
 
2164
- html, body {
2181
+ html,
2182
+ body {
2165
2183
  height: 100%;
2166
2184
  overflow: hidden;
2167
- font-family: "Inter", -apple-system, sans-serif;
2185
+ font-family:
2186
+ "Inter",
2187
+ -apple-system,
2188
+ sans-serif;
2168
2189
  }
2169
2190
 
2170
2191
  /* ─── Theme system ──────────────────────────────────────────────────── */
2171
2192
 
2172
- body[data-theme="dark"], body:not([data-theme]) {
2193
+ /* `data-theme="system"` defaults to the dark palette so a host with no
2194
+ `prefers-color-scheme` support (legacy WebKit / older Electron / some
2195
+ webviews) still gets themed chrome on first paint, before — and even if —
2196
+ the JS bundle loads. This mirrors the JS side, where `detectSystemTheme()`
2197
+ also falls back to dark. The `prefers-color-scheme: light` query below flips
2198
+ it to light when the engine supports it; `prefers-color-scheme: dark` needs
2199
+ no block because it already matches this default. */
2200
+ body[data-theme="dark"],
2201
+ body[data-theme="system"],
2202
+ body:not([data-theme]) {
2173
2203
  --chrome-bg: #0d1117;
2174
2204
  --chrome-surface: #161b22;
2175
- --chrome-border: rgba(255,255,255,0.08);
2205
+ --chrome-border: rgba(255, 255, 255, 0.08);
2176
2206
  --chrome-text: #e2e8f0;
2177
2207
  --chrome-text-muted: #8b949e;
2178
2208
  background: #0a0a0f;
@@ -2182,7 +2212,7 @@ body[data-theme="dark"], body:not([data-theme]) {
2182
2212
  body[data-theme="light"] {
2183
2213
  --chrome-bg: #ffffff;
2184
2214
  --chrome-surface: #f6f8fa;
2185
- --chrome-border: rgba(0,0,0,0.1);
2215
+ --chrome-border: rgba(0, 0, 0, 0.1);
2186
2216
  --chrome-text: #1f2328;
2187
2217
  --chrome-text-muted: #656d76;
2188
2218
  background: #ffffff;
@@ -2193,7 +2223,7 @@ body[data-theme="light"] {
2193
2223
  body[data-theme="system"] {
2194
2224
  --chrome-bg: #ffffff;
2195
2225
  --chrome-surface: #f6f8fa;
2196
- --chrome-border: rgba(0,0,0,0.1);
2226
+ --chrome-border: rgba(0, 0, 0, 0.1);
2197
2227
  --chrome-text: #1f2328;
2198
2228
  --chrome-text-muted: #656d76;
2199
2229
  background: #ffffff;
@@ -2201,18 +2231,6 @@ body[data-theme="light"] {
2201
2231
  }
2202
2232
  }
2203
2233
 
2204
- @media (prefers-color-scheme: dark) {
2205
- body[data-theme="system"] {
2206
- --chrome-bg: #0d1117;
2207
- --chrome-surface: #161b22;
2208
- --chrome-border: rgba(255,255,255,0.08);
2209
- --chrome-text: #e2e8f0;
2210
- --chrome-text-muted: #8b949e;
2211
- background: #0a0a0f;
2212
- color: #e2e8f0;
2213
- }
2214
- }
2215
-
2216
2234
  /* ─── Layout ────────────────────────────────────────────────────────── */
2217
2235
 
2218
2236
  #app-container {
@@ -2240,7 +2258,9 @@ body[data-theme="light"] {
2240
2258
  z-index: 20;
2241
2259
  }
2242
2260
 
2243
- .toolbar-spacer { flex: 1; }
2261
+ .toolbar-spacer {
2262
+ flex: 1;
2263
+ }
2244
2264
 
2245
2265
  .toolbar-btn {
2246
2266
  all: unset;
@@ -2252,7 +2272,9 @@ body[data-theme="light"] {
2252
2272
  height: 28px;
2253
2273
  border-radius: 4px;
2254
2274
  color: var(--chrome-text-muted);
2255
- transition: background 0.15s, color 0.15s;
2275
+ transition:
2276
+ background 0.15s,
2277
+ color 0.15s;
2256
2278
  }
2257
2279
 
2258
2280
  .toolbar-btn:hover {
@@ -2266,8 +2288,12 @@ body[data-theme="light"] {
2266
2288
  }
2267
2289
 
2268
2290
  /* Direction toggle */
2269
- .direction-icon { display: none; }
2270
- .direction-icon.active { display: inline-flex; }
2291
+ .direction-icon {
2292
+ display: none;
2293
+ }
2294
+ .direction-icon.active {
2295
+ display: inline-flex;
2296
+ }
2271
2297
 
2272
2298
  /* Controllers toggle */
2273
2299
  .toggle-switch {
@@ -2280,7 +2306,9 @@ body[data-theme="light"] {
2280
2306
  user-select: none;
2281
2307
  }
2282
2308
 
2283
- .toggle-switch input { display: none; }
2309
+ .toggle-switch input {
2310
+ display: none;
2311
+ }
2284
2312
 
2285
2313
  .toggle-track {
2286
2314
  width: 28px;
@@ -2292,7 +2320,7 @@ body[data-theme="light"] {
2292
2320
  }
2293
2321
 
2294
2322
  .toggle-switch input:checked + .toggle-track {
2295
- background: #50FA7B44;
2323
+ background: #50fa7b44;
2296
2324
  }
2297
2325
 
2298
2326
  .toggle-knob {
@@ -2303,39 +2331,22 @@ body[data-theme="light"] {
2303
2331
  height: 12px;
2304
2332
  border-radius: 50%;
2305
2333
  background: var(--chrome-text-muted);
2306
- transition: left 0.15s, background 0.15s;
2334
+ transition:
2335
+ left 0.15s,
2336
+ background 0.15s;
2307
2337
  }
2308
2338
 
2309
2339
  .toggle-switch input:checked + .toggle-track .toggle-knob {
2310
2340
  left: 14px;
2311
- background: #50FA7B;
2341
+ background: #50fa7b;
2312
2342
  }
2313
2343
 
2314
2344
  .toggle-label {
2315
2345
  font-size: 11px;
2316
2346
  }
2317
2347
 
2318
- /* Theme toggle */
2319
- .theme-btn {
2320
- all: unset;
2321
- cursor: pointer;
2322
- display: flex;
2323
- align-items: center;
2324
- gap: 4px;
2325
- font-size: 10px;
2326
- color: var(--chrome-text-muted);
2327
- padding: 4px 8px;
2328
- border-radius: 4px;
2329
- transition: background 0.15s;
2330
- }
2331
-
2332
- .theme-btn:hover {
2333
- background: var(--chrome-border);
2334
- }
2335
-
2336
- .theme-label {
2337
- text-transform: capitalize;
2338
- }
2348
+ /* The theme toggle lives in the in-graph toolbar (library-owned tri-state);
2349
+ the standalone page no longer renders its own theme button. */
2339
2350
 
2340
2351
  /* ─── Header branding ───────────────────────────────────────────────── */
2341
2352
 
@@ -2350,7 +2361,10 @@ body[data-theme="light"] {
2350
2361
  opacity: 0.7;
2351
2362
  }
2352
2363
 
2364
+ /* `system` defaults to the dark logo (hide the light variant), matching the
2365
+ chrome default above; the `prefers-color-scheme: light` query flips it. */
2353
2366
  body[data-theme="dark"] .header-logo.light-logo,
2367
+ body[data-theme="system"] .header-logo.light-logo,
2354
2368
  body:not([data-theme]) .header-logo.light-logo {
2355
2369
  display: none;
2356
2370
  }
@@ -2372,14 +2386,40 @@ body[data-theme="light"] .header-logo.light-logo {
2372
2386
  }
2373
2387
  }
2374
2388
 
2375
- @media (prefers-color-scheme: dark) {
2376
- body[data-theme="system"] .header-logo.light-logo {
2377
- display: none;
2378
- }
2379
- }
2380
-
2381
2389
  .header-title {
2382
2390
  font-size: 12px;
2383
2391
  font-weight: 600;
2384
2392
  color: var(--chrome-text-muted);
2385
2393
  }
2394
+
2395
+ /* ─── Error screen ──────────────────────────────────────────────────── */
2396
+
2397
+ /* Shown when the embedded config or spec is malformed. Uses explicit colors
2398
+ rather than the `--chrome-*` vars so it stays legible even when the theme
2399
+ parse is the thing that failed. */
2400
+ .standalone-error {
2401
+ display: flex;
2402
+ flex-direction: column;
2403
+ gap: 8px;
2404
+ height: 100%;
2405
+ padding: 24px;
2406
+ overflow: auto;
2407
+ background: #0a0a0f;
2408
+ color: #e2e8f0;
2409
+ }
2410
+
2411
+ .standalone-error-title {
2412
+ font-size: 14px;
2413
+ font-weight: 600;
2414
+ color: #ff6b6b;
2415
+ }
2416
+
2417
+ .standalone-error-message {
2418
+ margin: 0;
2419
+ font-family: ui-monospace, "SF Mono", Menlo, monospace;
2420
+ font-size: 12px;
2421
+ line-height: 1.5;
2422
+ white-space: pre-wrap;
2423
+ word-break: break-word;
2424
+ color: #8b949e;
2425
+ }