@pipelex/mthds-ui 0.8.0 → 0.10.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/dist/{chunk-7VQUZ35P.js → chunk-D2ID5Z3Y.js} +49 -2
- package/dist/{chunk-7VQUZ35P.js.map → chunk-D2ID5Z3Y.js.map} +1 -1
- package/dist/graph/index.d.ts +6 -4
- package/dist/graph/index.js +9 -1
- package/dist/graph/react/index.css +11 -3
- package/dist/graph/react/index.css.map +1 -1
- package/dist/graph/react/index.d.ts +60 -13
- package/dist/graph/react/index.js +329 -200
- package/dist/graph/react/index.js.map +1 -1
- package/dist/graph/react/viewer/GraphToolbar.css +18 -3
- package/dist/index.d.ts +1 -1
- package/dist/index.js +9 -1
- package/dist/standalone/graph-standalone.html +141 -97
- package/dist/standalone/graph-viewer.css +99 -57
- package/dist/standalone/graph-viewer.js +9 -9
- package/dist/{types-D7NALhbw.d.ts → types-CEDZIAmh.d.ts} +72 -2
- package/package.json +2 -2
|
@@ -2100,16 +2100,31 @@ button.stuff-viewer-local-file--button:focus-visible {
|
|
|
2100
2100
|
/* Token-only styling: theme switching happens by swapping `--surface-*`, */
|
|
2101
2101
|
/* `--text-*`, `--border-*`, and `--color-accent` values on the container. */
|
|
2102
2102
|
|
|
2103
|
+
/* The ReactFlow <Panel> owns positioning now (anchor + margin). It sits above
|
|
2104
|
+
the graph but the old code used z-index 11, so keep parity. */
|
|
2105
|
+
.graph-toolbar-panel {
|
|
2106
|
+
z-index: 11;
|
|
2107
|
+
}
|
|
2108
|
+
|
|
2103
2109
|
.graph-toolbar {
|
|
2104
|
-
position: absolute;
|
|
2105
|
-
top: 8px;
|
|
2106
2110
|
display: flex;
|
|
2107
2111
|
align-items: center;
|
|
2108
2112
|
gap: 4px;
|
|
2109
|
-
z-index: 11;
|
|
2110
2113
|
pointer-events: auto;
|
|
2111
2114
|
}
|
|
2112
2115
|
|
|
2116
|
+
/* Vertical bar — `center-left` / `center-right` anchors. Stack the buttons in a
|
|
2117
|
+
column and rotate the separators so they divide rows instead of columns. */
|
|
2118
|
+
.graph-toolbar--vertical {
|
|
2119
|
+
flex-direction: column;
|
|
2120
|
+
}
|
|
2121
|
+
|
|
2122
|
+
.graph-toolbar--vertical .graph-toolbar-separator {
|
|
2123
|
+
width: 18px;
|
|
2124
|
+
height: 1px;
|
|
2125
|
+
margin: 2px 0;
|
|
2126
|
+
}
|
|
2127
|
+
|
|
2113
2128
|
.graph-toolbar-btn {
|
|
2114
2129
|
all: unset;
|
|
2115
2130
|
box-sizing: border-box;
|
|
@@ -2172,20 +2187,37 @@ button.stuff-viewer-local-file--button:focus-visible {
|
|
|
2172
2187
|
|
|
2173
2188
|
/* ─── Standalone GraphViewer chrome (toolbar, theme, layout) ─────────── */
|
|
2174
2189
|
|
|
2175
|
-
* {
|
|
2190
|
+
* {
|
|
2191
|
+
box-sizing: border-box;
|
|
2192
|
+
margin: 0;
|
|
2193
|
+
padding: 0;
|
|
2194
|
+
}
|
|
2176
2195
|
|
|
2177
|
-
html,
|
|
2196
|
+
html,
|
|
2197
|
+
body {
|
|
2178
2198
|
height: 100%;
|
|
2179
2199
|
overflow: hidden;
|
|
2180
|
-
font-family:
|
|
2200
|
+
font-family:
|
|
2201
|
+
"Inter",
|
|
2202
|
+
-apple-system,
|
|
2203
|
+
sans-serif;
|
|
2181
2204
|
}
|
|
2182
2205
|
|
|
2183
2206
|
/* ─── Theme system ──────────────────────────────────────────────────── */
|
|
2184
2207
|
|
|
2185
|
-
|
|
2208
|
+
/* `data-theme="system"` defaults to the dark palette so a host with no
|
|
2209
|
+
`prefers-color-scheme` support (legacy WebKit / older Electron / some
|
|
2210
|
+
webviews) still gets themed chrome on first paint, before — and even if —
|
|
2211
|
+
the JS bundle loads. This mirrors the JS side, where `detectSystemTheme()`
|
|
2212
|
+
also falls back to dark. The `prefers-color-scheme: light` query below flips
|
|
2213
|
+
it to light when the engine supports it; `prefers-color-scheme: dark` needs
|
|
2214
|
+
no block because it already matches this default. */
|
|
2215
|
+
body[data-theme="dark"],
|
|
2216
|
+
body[data-theme="system"],
|
|
2217
|
+
body:not([data-theme]) {
|
|
2186
2218
|
--chrome-bg: #0d1117;
|
|
2187
2219
|
--chrome-surface: #161b22;
|
|
2188
|
-
--chrome-border: rgba(255,255,255,0.08);
|
|
2220
|
+
--chrome-border: rgba(255, 255, 255, 0.08);
|
|
2189
2221
|
--chrome-text: #e2e8f0;
|
|
2190
2222
|
--chrome-text-muted: #8b949e;
|
|
2191
2223
|
background: #0a0a0f;
|
|
@@ -2195,7 +2227,7 @@ body[data-theme="dark"], body:not([data-theme]) {
|
|
|
2195
2227
|
body[data-theme="light"] {
|
|
2196
2228
|
--chrome-bg: #ffffff;
|
|
2197
2229
|
--chrome-surface: #f6f8fa;
|
|
2198
|
-
--chrome-border: rgba(0,0,0,0.1);
|
|
2230
|
+
--chrome-border: rgba(0, 0, 0, 0.1);
|
|
2199
2231
|
--chrome-text: #1f2328;
|
|
2200
2232
|
--chrome-text-muted: #656d76;
|
|
2201
2233
|
background: #ffffff;
|
|
@@ -2206,7 +2238,7 @@ body[data-theme="light"] {
|
|
|
2206
2238
|
body[data-theme="system"] {
|
|
2207
2239
|
--chrome-bg: #ffffff;
|
|
2208
2240
|
--chrome-surface: #f6f8fa;
|
|
2209
|
-
--chrome-border: rgba(0,0,0,0.1);
|
|
2241
|
+
--chrome-border: rgba(0, 0, 0, 0.1);
|
|
2210
2242
|
--chrome-text: #1f2328;
|
|
2211
2243
|
--chrome-text-muted: #656d76;
|
|
2212
2244
|
background: #ffffff;
|
|
@@ -2214,18 +2246,6 @@ body[data-theme="light"] {
|
|
|
2214
2246
|
}
|
|
2215
2247
|
}
|
|
2216
2248
|
|
|
2217
|
-
@media (prefers-color-scheme: dark) {
|
|
2218
|
-
body[data-theme="system"] {
|
|
2219
|
-
--chrome-bg: #0d1117;
|
|
2220
|
-
--chrome-surface: #161b22;
|
|
2221
|
-
--chrome-border: rgba(255,255,255,0.08);
|
|
2222
|
-
--chrome-text: #e2e8f0;
|
|
2223
|
-
--chrome-text-muted: #8b949e;
|
|
2224
|
-
background: #0a0a0f;
|
|
2225
|
-
color: #e2e8f0;
|
|
2226
|
-
}
|
|
2227
|
-
}
|
|
2228
|
-
|
|
2229
2249
|
/* ─── Layout ────────────────────────────────────────────────────────── */
|
|
2230
2250
|
|
|
2231
2251
|
#app-container {
|
|
@@ -2253,7 +2273,9 @@ body[data-theme="light"] {
|
|
|
2253
2273
|
z-index: 20;
|
|
2254
2274
|
}
|
|
2255
2275
|
|
|
2256
|
-
.toolbar-spacer {
|
|
2276
|
+
.toolbar-spacer {
|
|
2277
|
+
flex: 1;
|
|
2278
|
+
}
|
|
2257
2279
|
|
|
2258
2280
|
.toolbar-btn {
|
|
2259
2281
|
all: unset;
|
|
@@ -2265,7 +2287,9 @@ body[data-theme="light"] {
|
|
|
2265
2287
|
height: 28px;
|
|
2266
2288
|
border-radius: 4px;
|
|
2267
2289
|
color: var(--chrome-text-muted);
|
|
2268
|
-
transition:
|
|
2290
|
+
transition:
|
|
2291
|
+
background 0.15s,
|
|
2292
|
+
color 0.15s;
|
|
2269
2293
|
}
|
|
2270
2294
|
|
|
2271
2295
|
.toolbar-btn:hover {
|
|
@@ -2279,8 +2303,12 @@ body[data-theme="light"] {
|
|
|
2279
2303
|
}
|
|
2280
2304
|
|
|
2281
2305
|
/* Direction toggle */
|
|
2282
|
-
.direction-icon {
|
|
2283
|
-
|
|
2306
|
+
.direction-icon {
|
|
2307
|
+
display: none;
|
|
2308
|
+
}
|
|
2309
|
+
.direction-icon.active {
|
|
2310
|
+
display: inline-flex;
|
|
2311
|
+
}
|
|
2284
2312
|
|
|
2285
2313
|
/* Controllers toggle */
|
|
2286
2314
|
.toggle-switch {
|
|
@@ -2293,7 +2321,9 @@ body[data-theme="light"] {
|
|
|
2293
2321
|
user-select: none;
|
|
2294
2322
|
}
|
|
2295
2323
|
|
|
2296
|
-
.toggle-switch input {
|
|
2324
|
+
.toggle-switch input {
|
|
2325
|
+
display: none;
|
|
2326
|
+
}
|
|
2297
2327
|
|
|
2298
2328
|
.toggle-track {
|
|
2299
2329
|
width: 28px;
|
|
@@ -2305,7 +2335,7 @@ body[data-theme="light"] {
|
|
|
2305
2335
|
}
|
|
2306
2336
|
|
|
2307
2337
|
.toggle-switch input:checked + .toggle-track {
|
|
2308
|
-
background: #
|
|
2338
|
+
background: #50fa7b44;
|
|
2309
2339
|
}
|
|
2310
2340
|
|
|
2311
2341
|
.toggle-knob {
|
|
@@ -2316,39 +2346,22 @@ body[data-theme="light"] {
|
|
|
2316
2346
|
height: 12px;
|
|
2317
2347
|
border-radius: 50%;
|
|
2318
2348
|
background: var(--chrome-text-muted);
|
|
2319
|
-
transition:
|
|
2349
|
+
transition:
|
|
2350
|
+
left 0.15s,
|
|
2351
|
+
background 0.15s;
|
|
2320
2352
|
}
|
|
2321
2353
|
|
|
2322
2354
|
.toggle-switch input:checked + .toggle-track .toggle-knob {
|
|
2323
2355
|
left: 14px;
|
|
2324
|
-
background: #
|
|
2356
|
+
background: #50fa7b;
|
|
2325
2357
|
}
|
|
2326
2358
|
|
|
2327
2359
|
.toggle-label {
|
|
2328
2360
|
font-size: 11px;
|
|
2329
2361
|
}
|
|
2330
2362
|
|
|
2331
|
-
/*
|
|
2332
|
-
|
|
2333
|
-
all: unset;
|
|
2334
|
-
cursor: pointer;
|
|
2335
|
-
display: flex;
|
|
2336
|
-
align-items: center;
|
|
2337
|
-
gap: 4px;
|
|
2338
|
-
font-size: 10px;
|
|
2339
|
-
color: var(--chrome-text-muted);
|
|
2340
|
-
padding: 4px 8px;
|
|
2341
|
-
border-radius: 4px;
|
|
2342
|
-
transition: background 0.15s;
|
|
2343
|
-
}
|
|
2344
|
-
|
|
2345
|
-
.theme-btn:hover {
|
|
2346
|
-
background: var(--chrome-border);
|
|
2347
|
-
}
|
|
2348
|
-
|
|
2349
|
-
.theme-label {
|
|
2350
|
-
text-transform: capitalize;
|
|
2351
|
-
}
|
|
2363
|
+
/* The theme toggle lives in the in-graph toolbar (library-owned tri-state);
|
|
2364
|
+
the standalone page no longer renders its own theme button. */
|
|
2352
2365
|
|
|
2353
2366
|
/* ─── Header branding ───────────────────────────────────────────────── */
|
|
2354
2367
|
|
|
@@ -2363,7 +2376,10 @@ body[data-theme="light"] {
|
|
|
2363
2376
|
opacity: 0.7;
|
|
2364
2377
|
}
|
|
2365
2378
|
|
|
2379
|
+
/* `system` defaults to the dark logo (hide the light variant), matching the
|
|
2380
|
+
chrome default above; the `prefers-color-scheme: light` query flips it. */
|
|
2366
2381
|
body[data-theme="dark"] .header-logo.light-logo,
|
|
2382
|
+
body[data-theme="system"] .header-logo.light-logo,
|
|
2367
2383
|
body:not([data-theme]) .header-logo.light-logo {
|
|
2368
2384
|
display: none;
|
|
2369
2385
|
}
|
|
@@ -2385,14 +2401,40 @@ body[data-theme="light"] .header-logo.light-logo {
|
|
|
2385
2401
|
}
|
|
2386
2402
|
}
|
|
2387
2403
|
|
|
2388
|
-
@media (prefers-color-scheme: dark) {
|
|
2389
|
-
body[data-theme="system"] .header-logo.light-logo {
|
|
2390
|
-
display: none;
|
|
2391
|
-
}
|
|
2392
|
-
}
|
|
2393
|
-
|
|
2394
2404
|
.header-title {
|
|
2395
2405
|
font-size: 12px;
|
|
2396
2406
|
font-weight: 600;
|
|
2397
2407
|
color: var(--chrome-text-muted);
|
|
2398
2408
|
}
|
|
2409
|
+
|
|
2410
|
+
/* ─── Error screen ──────────────────────────────────────────────────── */
|
|
2411
|
+
|
|
2412
|
+
/* Shown when the embedded config or spec is malformed. Uses explicit colors
|
|
2413
|
+
rather than the `--chrome-*` vars so it stays legible even when the theme
|
|
2414
|
+
parse is the thing that failed. */
|
|
2415
|
+
.standalone-error {
|
|
2416
|
+
display: flex;
|
|
2417
|
+
flex-direction: column;
|
|
2418
|
+
gap: 8px;
|
|
2419
|
+
height: 100%;
|
|
2420
|
+
padding: 24px;
|
|
2421
|
+
overflow: auto;
|
|
2422
|
+
background: #0a0a0f;
|
|
2423
|
+
color: #e2e8f0;
|
|
2424
|
+
}
|
|
2425
|
+
|
|
2426
|
+
.standalone-error-title {
|
|
2427
|
+
font-size: 14px;
|
|
2428
|
+
font-weight: 600;
|
|
2429
|
+
color: #ff6b6b;
|
|
2430
|
+
}
|
|
2431
|
+
|
|
2432
|
+
.standalone-error-message {
|
|
2433
|
+
margin: 0;
|
|
2434
|
+
font-family: ui-monospace, "SF Mono", Menlo, monospace;
|
|
2435
|
+
font-size: 12px;
|
|
2436
|
+
line-height: 1.5;
|
|
2437
|
+
white-space: pre-wrap;
|
|
2438
|
+
word-break: break-word;
|
|
2439
|
+
color: #8b949e;
|
|
2440
|
+
}
|