@beehexa/vueflow-tokens 2611.5.4 → 2611.6.1

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/README.md CHANGED
@@ -58,11 +58,15 @@ glass/gradients, or override core controls in each consumer.
58
58
  Preserve graph IDs, stored coordinates and relationship direction on theme changes.
59
59
  Exports must capture the current graph surface/font rather than force white/system fonts.
60
60
 
61
- Ordinary nodes, MiniMap cards and Controls use `radius.100` (8 px). Controls
62
- round exposed corners without clipping focus, and MiniMap fills clip.
63
- Connector logos retain nested `radius.075` (6 px). Decision/loop nodes and graph
64
- handles keep their circular geometry; `FLOW_EDGE.radius` remains edge-path geometry.
65
- Consumer-owned inspector cards and controls/toolbars use `--bh-radius-100`; dialogs/drawers use `radius.150` (12 px).
61
+ Ordinary nodes, MiniMap cards and outer Controls/dock frames use `radius.100`
62
+ (8px). Individual compact control Buttons and menu items retain `radius.050` (4px);
63
+ floating zoom-menu surfaces use `radius.overlay` (8px), independently of those items.
64
+ MiniMap fills clip; Controls retain exposed focus rings. Native legend popovers
65
+ keep `radius.100`, while the native keyboard-shortcuts Dialog uses `radius.150`
66
+ (12px), independently of its control Buttons. Connector logos retain nested
67
+ `radius.075` (6px). Decision/loop nodes and graph handles keep their circular
68
+ geometry; `FLOW_EDGE.radius` remains edge-path geometry. Consumer-owned inspector
69
+ Cards use `radius.100`; dialogs/drawers use `radius.150`.
66
70
 
67
71
  Bind `data-bh-high-contrast="true"` on the actual `bh-vue-flow` host when the user's
68
72
  high-contrast setting is enabled. Native node/edge/path, graph buttons and custom
@@ -86,7 +90,7 @@ Tags in the Ant Design Vue family. Category labels are not execution status.
86
90
  Resting handles use the neutral icon role, not keyboard-focus color. TaskFlow-style
87
91
  graph fullscreen uses an isolated local stacking context at `z-index.modal` (400), allowing
88
92
  global inspectors above it. Child chrome may use private z10/z15 within that context,
89
- not global1001/1002. This is not an editor takeover at `z-index.fullscreen` (450).
93
+ not global1001/1002. Editor takeovers use the same `z-index.modal` layer.
90
94
 
91
95
  ## Build and validation
92
96
 
package/dist/styles.css CHANGED
@@ -215,7 +215,6 @@
215
215
  --wf-node-muted: var(--bh-diagram-node-desc);
216
216
  --wf-node-border: var(--bh-diagram-node-border);
217
217
  --wf-node-radius: var(--bh-radius-100);
218
- --wf-node-selected-border: var(--bh-diagram-node-border);
219
218
  --wf-node-ring: var(--bh-diagram-selection-ring);
220
219
  --wf-node-shape-shadow: none;
221
220
  --wf-node-shape-selected: none;
@@ -229,6 +228,53 @@
229
228
  --wf-node-kind-bg: var(--bh-diagram-node-fill);
230
229
  --wf-node-kind-fg: var(--bh-diagram-node-desc);
231
230
  }
231
+ /* Opt-in graph contrast uses theme-resolved semantic ink, not a fixed light-mode
232
+ palette. Preserve selection/failure colours and native edge/arrow pairing. */
233
+ .bh-workflow-canvas[data-bh-contrast='high'] {
234
+ --wf-focus-outline: var(--bh-border-width-accent) solid var(--bh-color-border-focus);
235
+ }
236
+ .bh-workflow-canvas[data-bh-contrast='high'] .wf-canvas {
237
+ --wf-edge: var(--bh-color-text);
238
+ --wf-label-fg: var(--bh-color-text);
239
+ --wf-label-border: var(--bh-color-text);
240
+ --wf-node-border: var(--bh-color-text);
241
+ --wf-node-muted: var(--bh-color-text);
242
+ --wf-node-kind-fg: var(--bh-color-text);
243
+ --wf-tone-fg: var(--bh-color-text);
244
+ }
245
+ /* Execution belongs to the node outline/content; the independent outer ring
246
+ continues to carry selection, hover and keyboard focus. */
247
+ .bh-workflow-canvas .wf-node {
248
+ --wf-node-selected-border: var(--wf-node-border);
249
+ }
250
+ .bh-workflow-canvas .wf-node[data-execution-state='ranOk'] {
251
+ --wf-node-border: var(--bh-diagram-state-ran-ok);
252
+ --wf-node-bg: var(--bh-diagram-ran-ok-fill);
253
+ --wf-node-state-ink: var(--bh-diagram-state-ran-ok);
254
+ }
255
+ .bh-workflow-canvas .wf-node[data-execution-state='ranFailed'] {
256
+ --wf-node-border: var(--bh-diagram-fail-stroke);
257
+ --wf-node-bg: var(--bh-diagram-fail-fill);
258
+ --wf-node-fg: var(--bh-diagram-fail-title);
259
+ --wf-node-muted: var(--bh-diagram-fail-desc);
260
+ }
261
+ .bh-workflow-canvas .wf-node[data-execution-state='neverReached'] {
262
+ --wf-node-border: var(--bh-diagram-unreached-stroke);
263
+ --wf-node-bg: var(--bh-diagram-unreached-fill);
264
+ --wf-node-fg: var(--bh-diagram-unreached-title);
265
+ --wf-node-muted: var(--bh-diagram-unreached-desc);
266
+ }
267
+ .bh-workflow-canvas .wf-node[data-execution-state='branchNotTaken'] {
268
+ --wf-node-border: var(--bh-diagram-nottaken-stroke);
269
+ --wf-node-bg: var(--bh-diagram-nottaken-fill);
270
+ --wf-node-fg: var(--bh-diagram-nottaken-title);
271
+ --wf-node-muted: var(--bh-diagram-nottaken-desc);
272
+ }
273
+ .bh-workflow-canvas .wf-node[data-execution-state='branchNotTaken'] .wf-node__outline {
274
+ stroke-dasharray: 6 3;
275
+ }
276
+ .bh-workflow-canvas .wf-node__execution { color: var(--wf-node-state-ink, var(--wf-node-fg)); }
277
+ .bh-workflow-canvas .wf-node__body { align-items: flex-start; }
232
278
  .bh-workflow-canvas .wf-node__badge {
233
279
  width: var(--bh-diagram-tile-size);
234
280
  height: var(--bh-diagram-tile-size);
@@ -241,11 +287,23 @@
241
287
  padding: 0;
242
288
  background: transparent;
243
289
  }
290
+ /* The native minimum is not enough for a Source title, glyph and run marker.
291
+ Grow to their intrinsic width; the native maximum still wraps long titles. */
292
+ .bh-workflow-canvas .wf-node.wf-node--shape-stadium { width: max-content; }
244
293
  .bh-workflow-canvas .wf-node__title {
245
294
  white-space: normal;
246
295
  overflow-wrap: anywhere;
296
+ font: var(--bh-font-heading-xsmall);
247
297
  }
248
298
  .bh-workflow-canvas .wf-node__head { height: auto; }
299
+ .bh-workflow-canvas .wf-node__subtitle {
300
+ font: var(--bh-font-body-default);
301
+ min-height: 0;
302
+ }
303
+ .bh-workflow-canvas :is(.wf-node__kind, .wf-node__caption, .wf-node__indicators) {
304
+ font: var(--bh-font-body-small);
305
+ }
306
+ .bh-workflow-canvas .wf-node__foot { height: auto; }
249
307
  .bh-workflow-canvas .wf-node__logos { padding-block-start: var(--bh-space-050); }
250
308
  /* Native node image geometry has no independent aspect-ratio input. */
251
309
  .bh-workflow-canvas .wf-node__logos > img {
@@ -273,6 +331,16 @@
273
331
  padding-left: var(--bh-space-050);
274
332
  border-left-width: var(--bh-border-width-default);
275
333
  }
334
+ /* Floating menu surfaces use the overlay role, independently of compact controls. */
335
+ .bh-workflow-canvas .wf-dock__menu {
336
+ border-radius: var(--bh-radius-overlay);
337
+ }
338
+ .bh-workflow-canvas :is(.vue-flow__minimap, .wf-legend__box) {
339
+ border-radius: var(--bh-radius-100);
340
+ }
341
+ .bh-workflow-canvas .wf-shortcuts__dialog {
342
+ border-radius: var(--bh-radius-150);
343
+ }
276
344
  .bh-workflow-canvas .wf-dock__btn {
277
345
  gap: var(--bh-space-050);
278
346
  padding-inline: var(--bh-space-075);
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@beehexa/vueflow-tokens",
3
- "version": "2611.5.4",
3
+ "version": "2611.6.1",
4
4
  "description": "Source-backed Beehexa theme, semantic categories and geometry for VueFlow 1",
5
5
  "repository": {
6
6
  "type": "git",
@@ -29,7 +29,7 @@
29
29
  "./package.json": "./package.json"
30
30
  },
31
31
  "dependencies": {
32
- "@beehexa/design-tokens": "2611.5.4"
32
+ "@beehexa/design-tokens": "2611.6.1"
33
33
  },
34
34
  "peerDependencies": {
35
35
  "@vue-flow/core": "^1.0.0",