system-canvas 0.1.15 → 0.1.17

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/index.d.ts CHANGED
@@ -9,7 +9,7 @@ export { rollupNodes, rollupNodesDeep } from './rollup.js';
9
9
  export { computeCategorySlotRegions, resolveAccessor, resolveAccessorOr, getCategorySlots, pickRefIndicatorCorner, slotEntries, computeReflowReservations, } from './slots.js';
10
10
  export type { ReflowReservations } from './slots.js';
11
11
  export { getAtPath, setAtPath } from './paths.js';
12
- export { measureTextWidth, wrapText, wrapTextWithBreaks } from './text.js';
12
+ export { measureTextWidth, truncateToWidth, wrapText, wrapTextWithBreaks, } from './text.js';
13
13
  export { resolveCanvas, buildNodeMap, getNodeLabel, getGroupChildren, validateCanvas, generateNodeId, getNodeMenuOptions, createNodeFromOption, addNode, updateNode, removeNode, generateEdgeId, addEdge, updateEdge, removeEdge, } from './canvas.js';
14
14
  export declare const themes: {
15
15
  readonly dark: import("./types.js").CanvasTheme;
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AACA,YAAY,EACV,WAAW,EACX,QAAQ,EACR,IAAI,EACJ,QAAQ,EACR,SAAS,EACT,eAAe,EACf,UAAU,EACV,UAAU,EACV,UAAU,EACV,eAAe,EACf,kBAAkB,EAClB,WAAW,EACX,UAAU,EACV,kBAAkB,EAClB,SAAS,EACT,SAAS,EACT,UAAU,EACV,eAAe,EACf,UAAU,EACV,UAAU,EACV,WAAW,EACX,gBAAgB,EAChB,YAAY,EACZ,WAAW,EACX,aAAa,EACb,eAAe,EACf,WAAW,EACX,gBAAgB,EAChB,eAAe,EACf,mBAAmB,EACnB,qBAAqB,EACrB,2BAA2B,EAC3B,4BAA4B,EAC5B,UAAU,EACV,UAAU,EACV,cAAc,EACd,UAAU,EACV,eAAe,EAEf,YAAY,EACZ,aAAa,EACb,QAAQ,EACR,SAAS,EACT,YAAY,EACZ,SAAS,EACT,QAAQ,EACR,kBAAkB,EAClB,OAAO,EACP,QAAQ,EACR,QAAQ,EACR,UAAU,EACV,YAAY,EACZ,WAAW,EACX,QAAQ,EACR,YAAY,EACZ,aAAa,EACb,iBAAiB,GAClB,MAAM,YAAY,CAAA;AAGnB,OAAO,EACL,SAAS,EACT,aAAa,EACb,UAAU,EACV,cAAc,EACd,SAAS,EACT,YAAY,EACZ,YAAY,EACZ,YAAY,EACZ,WAAW,GACZ,MAAM,mBAAmB,CAAA;AAG1B,OAAO,EACL,kBAAkB,EAClB,SAAS,EACT,eAAe,EACf,mBAAmB,EACnB,kBAAkB,EAClB,WAAW,EACX,iBAAiB,EACjB,sBAAsB,EACtB,cAAc,EACd,cAAc,GACf,MAAM,sBAAsB,CAAA;AAC7B,YAAY,EAAE,IAAI,EAAE,MAAM,sBAAsB,CAAA;AAGhD,OAAO,EAAE,UAAU,EAAE,UAAU,EAAE,SAAS,EAAE,WAAW,EAAE,MAAM,YAAY,CAAA;AAG3E,OAAO,EACL,kBAAkB,EAClB,wBAAwB,EACxB,cAAc,EACd,qBAAqB,EACrB,mBAAmB,EACnB,oBAAoB,GACrB,MAAM,cAAc,CAAA;AAGrB,OAAO,EACL,sBAAsB,EACtB,sBAAsB,GACvB,MAAM,kBAAkB,CAAA;AAGzB,OAAO,EAAE,WAAW,EAAE,eAAe,EAAE,MAAM,aAAa,CAAA;AAG1D,OAAO,EACL,0BAA0B,EAC1B,eAAe,EACf,iBAAiB,EACjB,gBAAgB,EAChB,sBAAsB,EACtB,WAAW,EACX,yBAAyB,GAC1B,MAAM,YAAY,CAAA;AACnB,YAAY,EAAE,kBAAkB,EAAE,MAAM,YAAY,CAAA;AAGpD,OAAO,EAAE,SAAS,EAAE,SAAS,EAAE,MAAM,YAAY,CAAA;AAKjD,OAAO,EAAE,gBAAgB,EAAE,QAAQ,EAAE,kBAAkB,EAAE,MAAM,WAAW,CAAA;AAG1E,OAAO,EACL,aAAa,EACb,YAAY,EACZ,YAAY,EACZ,gBAAgB,EAChB,cAAc,EACd,cAAc,EACd,kBAAkB,EAClB,oBAAoB,EACpB,OAAO,EACP,UAAU,EACV,UAAU,EACV,cAAc,EACd,OAAO,EACP,UAAU,EACV,UAAU,GACX,MAAM,aAAa,CAAA;AAUpB,eAAO,MAAM,MAAM;;;;;;;CAOT,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AACA,YAAY,EACV,WAAW,EACX,QAAQ,EACR,IAAI,EACJ,QAAQ,EACR,SAAS,EACT,eAAe,EACf,UAAU,EACV,UAAU,EACV,UAAU,EACV,eAAe,EACf,kBAAkB,EAClB,WAAW,EACX,UAAU,EACV,kBAAkB,EAClB,SAAS,EACT,SAAS,EACT,UAAU,EACV,eAAe,EACf,UAAU,EACV,UAAU,EACV,WAAW,EACX,gBAAgB,EAChB,YAAY,EACZ,WAAW,EACX,aAAa,EACb,eAAe,EACf,WAAW,EACX,gBAAgB,EAChB,eAAe,EACf,mBAAmB,EACnB,qBAAqB,EACrB,2BAA2B,EAC3B,4BAA4B,EAC5B,UAAU,EACV,UAAU,EACV,cAAc,EACd,UAAU,EACV,eAAe,EAEf,YAAY,EACZ,aAAa,EACb,QAAQ,EACR,SAAS,EACT,YAAY,EACZ,SAAS,EACT,QAAQ,EACR,kBAAkB,EAClB,OAAO,EACP,QAAQ,EACR,QAAQ,EACR,UAAU,EACV,YAAY,EACZ,WAAW,EACX,QAAQ,EACR,YAAY,EACZ,aAAa,EACb,iBAAiB,GAClB,MAAM,YAAY,CAAA;AAGnB,OAAO,EACL,SAAS,EACT,aAAa,EACb,UAAU,EACV,cAAc,EACd,SAAS,EACT,YAAY,EACZ,YAAY,EACZ,YAAY,EACZ,WAAW,GACZ,MAAM,mBAAmB,CAAA;AAG1B,OAAO,EACL,kBAAkB,EAClB,SAAS,EACT,eAAe,EACf,mBAAmB,EACnB,kBAAkB,EAClB,WAAW,EACX,iBAAiB,EACjB,sBAAsB,EACtB,cAAc,EACd,cAAc,GACf,MAAM,sBAAsB,CAAA;AAC7B,YAAY,EAAE,IAAI,EAAE,MAAM,sBAAsB,CAAA;AAGhD,OAAO,EAAE,UAAU,EAAE,UAAU,EAAE,SAAS,EAAE,WAAW,EAAE,MAAM,YAAY,CAAA;AAG3E,OAAO,EACL,kBAAkB,EAClB,wBAAwB,EACxB,cAAc,EACd,qBAAqB,EACrB,mBAAmB,EACnB,oBAAoB,GACrB,MAAM,cAAc,CAAA;AAGrB,OAAO,EACL,sBAAsB,EACtB,sBAAsB,GACvB,MAAM,kBAAkB,CAAA;AAGzB,OAAO,EAAE,WAAW,EAAE,eAAe,EAAE,MAAM,aAAa,CAAA;AAG1D,OAAO,EACL,0BAA0B,EAC1B,eAAe,EACf,iBAAiB,EACjB,gBAAgB,EAChB,sBAAsB,EACtB,WAAW,EACX,yBAAyB,GAC1B,MAAM,YAAY,CAAA;AACnB,YAAY,EAAE,kBAAkB,EAAE,MAAM,YAAY,CAAA;AAGpD,OAAO,EAAE,SAAS,EAAE,SAAS,EAAE,MAAM,YAAY,CAAA;AAKjD,OAAO,EACL,gBAAgB,EAChB,eAAe,EACf,QAAQ,EACR,kBAAkB,GACnB,MAAM,WAAW,CAAA;AAGlB,OAAO,EACL,aAAa,EACb,YAAY,EACZ,YAAY,EACZ,gBAAgB,EAChB,cAAc,EACd,cAAc,EACd,kBAAkB,EAClB,oBAAoB,EACpB,OAAO,EACP,UAAU,EACV,UAAU,EACV,cAAc,EACd,OAAO,EACP,UAAU,EACV,UAAU,GACX,MAAM,aAAa,CAAA;AAUpB,eAAO,MAAM,MAAM;;;;;;;CAOT,CAAA"}
package/dist/index.js CHANGED
@@ -17,7 +17,7 @@ export { getAtPath, setAtPath } from './paths.js';
17
17
  // Text measurement & wrapping (used by `kind: 'text'` slots; exported for
18
18
  // consumers writing `kind: 'custom'` body renderers that need the same
19
19
  // wrap behavior).
20
- export { measureTextWidth, wrapText, wrapTextWithBreaks } from './text.js';
20
+ export { measureTextWidth, truncateToWidth, wrapText, wrapTextWithBreaks, } from './text.js';
21
21
  // Canvas helpers
22
22
  export { resolveCanvas, buildNodeMap, getNodeLabel, getGroupChildren, validateCanvas, generateNodeId, getNodeMenuOptions, createNodeFromOption, addNode, updateNode, removeNode, generateEdgeId, addEdge, updateEdge, removeEdge, } from './canvas.js';
23
23
  // Convenience theme collection
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AA6DA,SAAS;AACT,OAAO,EACL,SAAS,EACT,aAAa,EACb,UAAU,EACV,cAAc,EACd,SAAS,EACT,YAAY,EACZ,YAAY,EACZ,YAAY,EACZ,WAAW,GACZ,MAAM,mBAAmB,CAAA;AAE1B,sBAAsB;AACtB,OAAO,EACL,kBAAkB,EAClB,SAAS,EACT,eAAe,EACf,mBAAmB,EACnB,kBAAkB,EAClB,WAAW,EACX,iBAAiB,EACjB,sBAAsB,EACtB,cAAc,EACd,cAAc,GACf,MAAM,sBAAsB,CAAA;AAG7B,eAAe;AACf,OAAO,EAAE,UAAU,EAAE,UAAU,EAAE,SAAS,EAAE,WAAW,EAAE,MAAM,YAAY,CAAA;AAE3E,iBAAiB;AACjB,OAAO,EACL,kBAAkB,EAClB,wBAAwB,EACxB,cAAc,EACd,qBAAqB,EACrB,mBAAmB,EACnB,oBAAoB,GACrB,MAAM,cAAc,CAAA;AAErB,iCAAiC;AACjC,OAAO,EACL,sBAAsB,EACtB,sBAAsB,GACvB,MAAM,kBAAkB,CAAA;AAEzB,iBAAiB;AACjB,OAAO,EAAE,WAAW,EAAE,eAAe,EAAE,MAAM,aAAa,CAAA;AAE1D,wBAAwB;AACxB,OAAO,EACL,0BAA0B,EAC1B,eAAe,EACf,iBAAiB,EACjB,gBAAgB,EAChB,sBAAsB,EACtB,WAAW,EACX,yBAAyB,GAC1B,MAAM,YAAY,CAAA;AAGnB,wEAAwE;AACxE,OAAO,EAAE,SAAS,EAAE,SAAS,EAAE,MAAM,YAAY,CAAA;AAEjD,0EAA0E;AAC1E,uEAAuE;AACvE,kBAAkB;AAClB,OAAO,EAAE,gBAAgB,EAAE,QAAQ,EAAE,kBAAkB,EAAE,MAAM,WAAW,CAAA;AAE1E,iBAAiB;AACjB,OAAO,EACL,aAAa,EACb,YAAY,EACZ,YAAY,EACZ,gBAAgB,EAChB,cAAc,EACd,cAAc,EACd,kBAAkB,EAClB,oBAAoB,EACpB,OAAO,EACP,UAAU,EACV,UAAU,EACV,cAAc,EACd,OAAO,EACP,UAAU,EACV,UAAU,GACX,MAAM,aAAa,CAAA;AAEpB,+BAA+B;AAC/B,OAAO,EAAE,SAAS,IAAI,KAAK,EAAE,MAAM,kBAAkB,CAAA;AACrD,OAAO,EAAE,aAAa,IAAI,SAAS,EAAE,MAAM,sBAAsB,CAAA;AACjE,OAAO,EAAE,UAAU,IAAI,MAAM,EAAE,MAAM,mBAAmB,CAAA;AACxD,OAAO,EAAE,cAAc,IAAI,UAAU,EAAE,MAAM,uBAAuB,CAAA;AACpE,OAAO,EAAE,SAAS,IAAI,KAAK,EAAE,MAAM,kBAAkB,CAAA;AACrD,OAAO,EAAE,YAAY,IAAI,QAAQ,EAAE,MAAM,qBAAqB,CAAA;AAE9D,MAAM,CAAC,MAAM,MAAM,GAAG;IACpB,IAAI,EAAE,KAAK;IACX,QAAQ,EAAE,SAAS;IACnB,KAAK,EAAE,MAAM;IACb,SAAS,EAAE,UAAU;IACrB,IAAI,EAAE,KAAK;IACX,OAAO,EAAE,QAAQ;CACT,CAAA"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AA6DA,SAAS;AACT,OAAO,EACL,SAAS,EACT,aAAa,EACb,UAAU,EACV,cAAc,EACd,SAAS,EACT,YAAY,EACZ,YAAY,EACZ,YAAY,EACZ,WAAW,GACZ,MAAM,mBAAmB,CAAA;AAE1B,sBAAsB;AACtB,OAAO,EACL,kBAAkB,EAClB,SAAS,EACT,eAAe,EACf,mBAAmB,EACnB,kBAAkB,EAClB,WAAW,EACX,iBAAiB,EACjB,sBAAsB,EACtB,cAAc,EACd,cAAc,GACf,MAAM,sBAAsB,CAAA;AAG7B,eAAe;AACf,OAAO,EAAE,UAAU,EAAE,UAAU,EAAE,SAAS,EAAE,WAAW,EAAE,MAAM,YAAY,CAAA;AAE3E,iBAAiB;AACjB,OAAO,EACL,kBAAkB,EAClB,wBAAwB,EACxB,cAAc,EACd,qBAAqB,EACrB,mBAAmB,EACnB,oBAAoB,GACrB,MAAM,cAAc,CAAA;AAErB,iCAAiC;AACjC,OAAO,EACL,sBAAsB,EACtB,sBAAsB,GACvB,MAAM,kBAAkB,CAAA;AAEzB,iBAAiB;AACjB,OAAO,EAAE,WAAW,EAAE,eAAe,EAAE,MAAM,aAAa,CAAA;AAE1D,wBAAwB;AACxB,OAAO,EACL,0BAA0B,EAC1B,eAAe,EACf,iBAAiB,EACjB,gBAAgB,EAChB,sBAAsB,EACtB,WAAW,EACX,yBAAyB,GAC1B,MAAM,YAAY,CAAA;AAGnB,wEAAwE;AACxE,OAAO,EAAE,SAAS,EAAE,SAAS,EAAE,MAAM,YAAY,CAAA;AAEjD,0EAA0E;AAC1E,uEAAuE;AACvE,kBAAkB;AAClB,OAAO,EACL,gBAAgB,EAChB,eAAe,EACf,QAAQ,EACR,kBAAkB,GACnB,MAAM,WAAW,CAAA;AAElB,iBAAiB;AACjB,OAAO,EACL,aAAa,EACb,YAAY,EACZ,YAAY,EACZ,gBAAgB,EAChB,cAAc,EACd,cAAc,EACd,kBAAkB,EAClB,oBAAoB,EACpB,OAAO,EACP,UAAU,EACV,UAAU,EACV,cAAc,EACd,OAAO,EACP,UAAU,EACV,UAAU,GACX,MAAM,aAAa,CAAA;AAEpB,+BAA+B;AAC/B,OAAO,EAAE,SAAS,IAAI,KAAK,EAAE,MAAM,kBAAkB,CAAA;AACrD,OAAO,EAAE,aAAa,IAAI,SAAS,EAAE,MAAM,sBAAsB,CAAA;AACjE,OAAO,EAAE,UAAU,IAAI,MAAM,EAAE,MAAM,mBAAmB,CAAA;AACxD,OAAO,EAAE,cAAc,IAAI,UAAU,EAAE,MAAM,uBAAuB,CAAA;AACpE,OAAO,EAAE,SAAS,IAAI,KAAK,EAAE,MAAM,kBAAkB,CAAA;AACrD,OAAO,EAAE,YAAY,IAAI,QAAQ,EAAE,MAAM,qBAAqB,CAAA;AAE9D,MAAM,CAAC,MAAM,MAAM,GAAG;IACpB,IAAI,EAAE,KAAK;IACX,QAAQ,EAAE,SAAS;IACnB,KAAK,EAAE,MAAM;IACb,SAAS,EAAE,UAAU;IACrB,IAAI,EAAE,KAAK;IACX,OAAO,EAAE,QAAQ;CACT,CAAA"}
@@ -1 +1 @@
1
- {"version":3,"file":"slots.d.ts","sourceRoot":"","sources":["../src/slots.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,WAAW,EAEX,aAAa,EACb,YAAY,EACZ,YAAY,EACZ,WAAW,EACX,YAAY,EACZ,QAAQ,EACR,QAAQ,EACT,MAAM,YAAY,CAAA;AAmCnB;;;;GAIG;AACH,wBAAgB,0BAA0B,CACxC,IAAI,EAAE,YAAY,EAClB,KAAK,EAAE,WAAW,EAClB,KAAK,CAAC,EAAE,aAAa,GACpB,MAAM,CAAC,YAAY,EAAE,QAAQ,CAAC,CAqKhC;AA4DD;;;GAGG;AACH,wBAAgB,eAAe,CAAC,CAAC,EAAE,QAAQ,EAAE,YAAY,CAAC,CAAC,CAAC,EAAE,GAAG,EAAE,WAAW,GAAG,CAAC,CAEjF;AAED;;;GAGG;AACH,wBAAgB,iBAAiB,CAAC,CAAC,EACjC,QAAQ,EAAE,YAAY,CAAC,CAAC,CAAC,GAAG,SAAS,EACrC,QAAQ,EAAE,CAAC,EACX,GAAG,EAAE,WAAW,GACf,CAAC,CAGH;AAED;;;GAGG;AACH,wBAAgB,gBAAgB,CAC9B,IAAI,EAAE,YAAY,EAClB,KAAK,EAAE,WAAW,GACjB,aAAa,GAAG,SAAS,CAI3B;AAMD,KAAK,MAAM,GAAG,SAAS,GAAG,UAAU,GAAG,YAAY,GAAG,aAAa,CAAA;AAEnE;;;;;;;;;;;GAWG;AACH,wBAAgB,sBAAsB,CACpC,aAAa,EAAE,MAAM,EACrB,KAAK,EAAE,aAAa,GAAG,SAAS,GAC/B,MAAM,CAyBR;AAMD;;;;GAIG;AACH,wBAAgB,WAAW,CACzB,KAAK,EAAE,aAAa,GACnB,KAAK,CAAC,CAAC,YAAY,EAAE,QAAQ,CAAC,CAAC,CAwBjC;AAMD,MAAM,WAAW,kBAAkB;IACjC,GAAG,EAAE,MAAM,CAAA;IACX,MAAM,EAAE,MAAM,CAAA;IACd,IAAI,EAAE,MAAM,CAAA;IACZ,KAAK,EAAE,MAAM,CAAA;CACd;AAED;;;;;;;;;;;;;GAaG;AACH,wBAAgB,yBAAyB,CACvC,IAAI,EAAE,YAAY,EAClB,KAAK,EAAE,WAAW,EAClB,KAAK,EAAE,aAAa,GAAG,SAAS,GAC/B,kBAAkB,CAEpB"}
1
+ {"version":3,"file":"slots.d.ts","sourceRoot":"","sources":["../src/slots.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,WAAW,EAEX,aAAa,EACb,YAAY,EACZ,YAAY,EACZ,WAAW,EACX,YAAY,EACZ,QAAQ,EACR,QAAQ,EACT,MAAM,YAAY,CAAA;AA8EnB;;;;GAIG;AACH,wBAAgB,0BAA0B,CACxC,IAAI,EAAE,YAAY,EAClB,KAAK,EAAE,WAAW,EAClB,KAAK,CAAC,EAAE,aAAa,GACpB,MAAM,CAAC,YAAY,EAAE,QAAQ,CAAC,CAmNhC;AA4DD;;;GAGG;AACH,wBAAgB,eAAe,CAAC,CAAC,EAAE,QAAQ,EAAE,YAAY,CAAC,CAAC,CAAC,EAAE,GAAG,EAAE,WAAW,GAAG,CAAC,CAEjF;AAED;;;GAGG;AACH,wBAAgB,iBAAiB,CAAC,CAAC,EACjC,QAAQ,EAAE,YAAY,CAAC,CAAC,CAAC,GAAG,SAAS,EACrC,QAAQ,EAAE,CAAC,EACX,GAAG,EAAE,WAAW,GACf,CAAC,CAGH;AAED;;;GAGG;AACH,wBAAgB,gBAAgB,CAC9B,IAAI,EAAE,YAAY,EAClB,KAAK,EAAE,WAAW,GACjB,aAAa,GAAG,SAAS,CAI3B;AAMD,KAAK,MAAM,GAAG,SAAS,GAAG,UAAU,GAAG,YAAY,GAAG,aAAa,CAAA;AAEnE;;;;;;;;;;;GAWG;AACH,wBAAgB,sBAAsB,CACpC,aAAa,EAAE,MAAM,EACrB,KAAK,EAAE,aAAa,GAAG,SAAS,GAC/B,MAAM,CAyBR;AAMD;;;;GAIG;AACH,wBAAgB,WAAW,CACzB,KAAK,EAAE,aAAa,GACnB,KAAK,CAAC,CAAC,YAAY,EAAE,QAAQ,CAAC,CAAC,CAwBjC;AAMD,MAAM,WAAW,kBAAkB;IACjC,GAAG,EAAE,MAAM,CAAA;IACX,MAAM,EAAE,MAAM,CAAA;IACd,IAAI,EAAE,MAAM,CAAA;IACZ,KAAK,EAAE,MAAM,CAAA;CACd;AAED;;;;;;;;;;;;;GAaG;AACH,wBAAgB,yBAAyB,CACvC,IAAI,EAAE,YAAY,EAClB,KAAK,EAAE,WAAW,EAClB,KAAK,EAAE,aAAa,GAAG,SAAS,GAC/B,kBAAkB,CAEpB"}
package/dist/slots.js CHANGED
@@ -29,6 +29,47 @@ const TAB_BADGE_EM = 1.4;
29
29
  const TAB_BADGE_LIFT = 10;
30
30
  /** How far the tab badge extends past the node's right edge (in px). */
31
31
  const TAB_BADGE_OVERHANG = 8;
32
+ /**
33
+ * Clearance width (icon footprint + gap) that a header / footer region
34
+ * must leave for a sibling corner slot. Returns 0 for non-badge or
35
+ * absent specs so header geometry stays byte-identical to the
36
+ * pre-patch behavior when no corner badge is present.
37
+ *
38
+ * Mirrors the rendered-width logic in `computeReflowReservationsInternal`'s
39
+ * `topLeft` reservation block (see the body-label `left` block in
40
+ * `computeReflowReservationsInternal` below) so an icon with an
41
+ * explicit oversize `size` is fully cleared. Static-number `size`
42
+ * accessors are honored; function accessors (`(ctx) => …`) fall back
43
+ * to the region-width footprint, matching the existing body-label
44
+ * convention.
45
+ *
46
+ * `color` slots are edge strips, not corner badges — they paint at
47
+ * `LEFT_EDGE_PX` thickness and don't intrude into header territory.
48
+ * `progress` / `count` / `pill` / `text` / `custom` in corner regions
49
+ * are not enclosed in this clearance because none of them are used as
50
+ * header-adjacent siblings today; if a future pattern wants pill
51
+ * clearance on the header, extend this helper.
52
+ */
53
+ function cornerSlotClearance(spec, fontSize) {
54
+ if (!spec)
55
+ return 0;
56
+ if (spec.kind !== 'dot' && spec.kind !== 'icon')
57
+ return 0;
58
+ const corner = CORNER_EM * fontSize;
59
+ let renderedWidth = corner;
60
+ if (spec.kind === 'icon') {
61
+ const explicitSize = spec.size;
62
+ if (typeof explicitSize === 'number' && explicitSize > corner) {
63
+ renderedWidth = explicitSize;
64
+ }
65
+ }
66
+ const gap = Math.max(8, Math.round(fontSize * 0.75));
67
+ // The badge is centered in a `corner`-wide region; for an oversize
68
+ // icon, the extra width spills symmetrically. Half-spill on the
69
+ // inner side + the icon's own footprint + the gap.
70
+ const overhang = Math.max(0, (renderedWidth - corner) / 2);
71
+ return overhang + corner + gap;
72
+ }
32
73
  /**
33
74
  * Compute the region rect (in canvas-space) for every slot position on a
34
75
  * resolved node. Pure geometry — no knowledge of which slots are actually
@@ -176,18 +217,64 @@ export function computeCategorySlotRegions(node, theme, slots) {
176
217
  width: corner,
177
218
  height: corner,
178
219
  },
179
- header: {
180
- x: x + HEADER_INSET_X,
181
- y: y + HEADER_INSET_Y,
182
- width: Math.max(0, width - HEADER_INSET_X * 2),
183
- height: header,
184
- },
185
- footer: {
186
- x: x + HEADER_INSET_X,
187
- y: y + height - FOOTER_INSET_Y - footer,
188
- width: Math.max(0, width - HEADER_INSET_X * 2),
189
- height: footer,
190
- },
220
+ header: (() => {
221
+ // The header strip would otherwise overlap a `topLeft` /
222
+ // `topRight` corner badge (dot/icon): header starts at
223
+ // `HEADER_INSET_X` (14) while a corner badge occupies
224
+ // `CORNER_INSET` (8) to `CORNER_INSET + corner` (~24). Shift
225
+ // the header's left/right edges to clear the badge plus a
226
+ // small gap — same arithmetic the body-label reservation
227
+ // uses in `computeReflowReservationsInternal`. `color` slots
228
+ // are thin edge strips, not corner badges, and don't need
229
+ // clearance here.
230
+ let hx = x + HEADER_INSET_X;
231
+ let hw = Math.max(0, width - HEADER_INSET_X * 2);
232
+ const leftClear = cornerSlotClearance(slots?.topLeft, fs);
233
+ if (leftClear > 0) {
234
+ const leftEdge = x + CORNER_INSET + leftClear;
235
+ const shift = Math.max(0, leftEdge - hx);
236
+ hx += shift;
237
+ hw = Math.max(0, hw - shift);
238
+ }
239
+ const rightClear = cornerSlotClearance(slots?.topRight, fs);
240
+ if (rightClear > 0) {
241
+ const rightEdge = x + width - CORNER_INSET - rightClear;
242
+ const currentRight = hx + hw;
243
+ const shrink = Math.max(0, currentRight - rightEdge);
244
+ hw = Math.max(0, hw - shrink);
245
+ }
246
+ return { x: hx, y: y + HEADER_INSET_Y, width: hw, height: header };
247
+ })(),
248
+ footer: (() => {
249
+ // Same treatment as the header for `bottomLeft` / `bottomRight`
250
+ // sibling badges. Not exercised by anything in the demo today,
251
+ // but the asymmetry is real — a footer text starting at
252
+ // `HEADER_INSET_X` overlaps a bottomLeft corner badge by ~10px
253
+ // at `fs=13`. Patching for symmetry now is cheaper than
254
+ // fielding the next bug report.
255
+ let fx = x + HEADER_INSET_X;
256
+ let fw = Math.max(0, width - HEADER_INSET_X * 2);
257
+ const leftClear = cornerSlotClearance(slots?.bottomLeft, fs);
258
+ if (leftClear > 0) {
259
+ const leftEdge = x + CORNER_INSET + leftClear;
260
+ const shift = Math.max(0, leftEdge - fx);
261
+ fx += shift;
262
+ fw = Math.max(0, fw - shift);
263
+ }
264
+ const rightClear = cornerSlotClearance(slots?.bottomRight, fs);
265
+ if (rightClear > 0) {
266
+ const rightEdge = x + width - CORNER_INSET - rightClear;
267
+ const currentRight = fx + fw;
268
+ const shrink = Math.max(0, currentRight - rightEdge);
269
+ fw = Math.max(0, fw - shrink);
270
+ }
271
+ return {
272
+ x: fx,
273
+ y: y + height - FOOTER_INSET_Y - footer,
274
+ width: fw,
275
+ height: footer,
276
+ };
277
+ })(),
191
278
  body: {
192
279
  x: bodyX,
193
280
  y: bodyY,
@@ -395,9 +482,44 @@ function computeReflowReservationsInternal(node, theme, slots) {
395
482
  // brand-glyph icon in `topLeft` (the canonical "platform" use case) is
396
483
  // visually the same affordance as a status dot — a small thing next to
397
484
  // the title.
485
+ //
486
+ // For `kind: 'icon'`, the consumer can override the auto-fit size via
487
+ // `spec.size`. When that explicit size exceeds the slot region's
488
+ // width, the icon visibly overflows the slot box — the renderer
489
+ // centers the glyph in the region, so a larger icon pokes out
490
+ // symmetrically left AND right of the region. Reserve the icon's
491
+ // actual rendered width (anchored at the slot's left edge), not just
492
+ // the region's width, so the title clears the overflowing glyph
493
+ // instead of crashing into it.
494
+ //
495
+ // We deliberately use a static-value read for `spec.size` rather than
496
+ // resolving the accessor. The accessor needs a full `SlotContext`
497
+ // (region, theme, canvases, rollups) which we don't have here in the
498
+ // pure-geometry reservation pass — and 99% of icon size overrides
499
+ // are static numbers, not per-node-dynamic. Function-valued sizes
500
+ // fall back to the region-width reservation; an icon dynamically
501
+ // sized larger than its slot can still set a static lower bound or
502
+ // accept the visual crowding.
503
+ //
504
+ // The padding-after-icon is keyed off `fontSize` so it scales with
505
+ // the theme. At fontSize 13 (the default) the gap is 10px — enough
506
+ // breathing room that the title doesn't read as crowding the glyph.
398
507
  if (slots.topLeft &&
399
508
  (slots.topLeft.kind === 'dot' || slots.topLeft.kind === 'icon')) {
400
- left = Math.max(left, regions.topLeft.x + regions.topLeft.width - node.x + 6);
509
+ const region = regions.topLeft;
510
+ let renderedWidth = region.width;
511
+ if (slots.topLeft.kind === 'icon') {
512
+ const explicitSize = slots.topLeft.size;
513
+ if (typeof explicitSize === 'number' && explicitSize > region.width) {
514
+ renderedWidth = explicitSize;
515
+ }
516
+ }
517
+ // The icon is centered in the region; its left edge is at
518
+ // `region.x + (region.width - renderedWidth) / 2`. The body title
519
+ // needs to clear THAT left edge plus the rendered width.
520
+ const iconLeftFromNode = region.x - node.x + (region.width - renderedWidth) / 2;
521
+ const gap = Math.max(8, Math.round(theme.node.fontSize * 0.75));
522
+ left = Math.max(left, iconLeftFromNode + renderedWidth + gap);
401
523
  }
402
524
  // Dashboard-card pattern. Two flavors:
403
525
  //
package/dist/slots.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"slots.js","sourceRoot":"","sources":["../src/slots.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"slots.js","sourceRoot":"","sources":["../src/slots.ts"],"names":[],"mappings":"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"}
package/dist/text.d.ts CHANGED
@@ -31,4 +31,19 @@ export declare function wrapText(text: string, maxWidth: number, fontSize: numbe
31
31
  * for fixed-height regions where overflow would clip mid-glyph.
32
32
  */
33
33
  export declare function wrapTextWithBreaks(text: string, maxWidth: number, fontSize: number, maxLines?: number): string[];
34
+ /**
35
+ * Trim `text` to fit within `maxWidth` at `fontSize`, appending an
36
+ * ellipsis when truncation occurs. Character-wise — drops one
37
+ * character at a time from the end, suitable for single-token strings
38
+ * (usernames, file paths, ids) that have no word boundaries to step
39
+ * back through.
40
+ *
41
+ * Returns the original string unchanged when it already fits, so
42
+ * callers can use this unconditionally without measuring first.
43
+ *
44
+ * For paragraph-style text where dropping whole words reads better,
45
+ * use `wrapTextWithBreaks` with a `maxLines` cap instead — its
46
+ * truncation step is word-aware.
47
+ */
48
+ export declare function truncateToWidth(text: string, maxWidth: number, fontSize: number): string;
34
49
  //# sourceMappingURL=text.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"text.d.ts","sourceRoot":"","sources":["../src/text.ts"],"names":[],"mappings":"AA8BA;;;;;;GAMG;AACH,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,MAAM,CAGvE;AAED;;;;;;;;;;;;GAYG;AACH,wBAAgB,QAAQ,CACtB,IAAI,EAAE,MAAM,EACZ,QAAQ,EAAE,MAAM,EAChB,QAAQ,EAAE,MAAM,GACf,MAAM,EAAE,CAmBV;AAED;;;;;;;;;GASG;AACH,wBAAgB,kBAAkB,CAChC,IAAI,EAAE,MAAM,EACZ,QAAQ,EAAE,MAAM,EAChB,QAAQ,EAAE,MAAM,EAChB,QAAQ,CAAC,EAAE,MAAM,GAChB,MAAM,EAAE,CAkBV"}
1
+ {"version":3,"file":"text.d.ts","sourceRoot":"","sources":["../src/text.ts"],"names":[],"mappings":"AA8BA;;;;;;GAMG;AACH,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,MAAM,CAGvE;AAED;;;;;;;;;;;;GAYG;AACH,wBAAgB,QAAQ,CACtB,IAAI,EAAE,MAAM,EACZ,QAAQ,EAAE,MAAM,EAChB,QAAQ,EAAE,MAAM,GACf,MAAM,EAAE,CAmBV;AAED;;;;;;;;;GASG;AACH,wBAAgB,kBAAkB,CAChC,IAAI,EAAE,MAAM,EACZ,QAAQ,EAAE,MAAM,EAChB,QAAQ,EAAE,MAAM,EAChB,QAAQ,CAAC,EAAE,MAAM,GAChB,MAAM,EAAE,CAkBV;AAED;;;;;;;;;;;;;GAaG;AACH,wBAAgB,eAAe,CAC7B,IAAI,EAAE,MAAM,EACZ,QAAQ,EAAE,MAAM,EAChB,QAAQ,EAAE,MAAM,GACf,MAAM,CA2BR"}
package/dist/text.js CHANGED
@@ -106,10 +106,56 @@ export function wrapTextWithBreaks(text, maxWidth, fontSize, maxLines) {
106
106
  return out;
107
107
  }
108
108
  /**
109
- * Trim `line` so that `line + '…'` fits within `maxWidth`. If the entire
110
- * line already fits, just appends the ellipsis. Conservative — drops one
111
- * word at a time from the end rather than a single character, to avoid
112
- * truncating mid-word.
109
+ * Trim `text` to fit within `maxWidth` at `fontSize`, appending an
110
+ * ellipsis when truncation occurs. Character-wise — drops one
111
+ * character at a time from the end, suitable for single-token strings
112
+ * (usernames, file paths, ids) that have no word boundaries to step
113
+ * back through.
114
+ *
115
+ * Returns the original string unchanged when it already fits, so
116
+ * callers can use this unconditionally without measuring first.
117
+ *
118
+ * For paragraph-style text where dropping whole words reads better,
119
+ * use `wrapTextWithBreaks` with a `maxLines` cap instead — its
120
+ * truncation step is word-aware.
121
+ */
122
+ export function truncateToWidth(text, maxWidth, fontSize) {
123
+ if (!text)
124
+ return text;
125
+ if (maxWidth <= 0)
126
+ return text;
127
+ if (measureTextWidth(text, fontSize) <= maxWidth)
128
+ return text;
129
+ const ellipsis = '…';
130
+ // Binary search the longest prefix that fits with the ellipsis
131
+ // appended. Avoids an O(n) measure loop on long strings without
132
+ // changing the visual result.
133
+ let lo = 0;
134
+ let hi = text.length;
135
+ let best = 0;
136
+ while (lo <= hi) {
137
+ const mid = (lo + hi) >> 1;
138
+ const candidate = text.slice(0, mid) + ellipsis;
139
+ if (measureTextWidth(candidate, fontSize) <= maxWidth) {
140
+ best = mid;
141
+ lo = mid + 1;
142
+ }
143
+ else {
144
+ hi = mid - 1;
145
+ }
146
+ }
147
+ // best === 0 means even the ellipsis alone doesn't fit (region too
148
+ // narrow). Return the lone ellipsis so the caller still gets a
149
+ // visible "there is content here" indicator rather than an empty
150
+ // string that reads as missing.
151
+ return text.slice(0, best) + ellipsis;
152
+ }
153
+ /**
154
+ * Trim `line` so that `line + '…'` fits within `maxWidth`. Word-aware:
155
+ * drops one whole word at a time from the end. Falls back to
156
+ * character-wise truncation via `truncateToWidth` when the whole line
157
+ * is a single long word (e.g. a long username or file path) — otherwise
158
+ * the result would still overflow.
113
159
  */
114
160
  function ellipsize(line, maxWidth, fontSize) {
115
161
  const ellipsis = '…';
@@ -123,7 +169,8 @@ function ellipsize(line, maxWidth, fontSize) {
123
169
  if (measureTextWidth(candidate, fontSize) <= maxWidth)
124
170
  return candidate;
125
171
  }
126
- // Single word longer than maxWidth — return as-is with ellipsis.
127
- return line + ellipsis;
172
+ // Single word longer than maxWidth — fall back to character-wise
173
+ // truncation so the rendered text actually fits.
174
+ return truncateToWidth(line, maxWidth, fontSize);
128
175
  }
129
176
  //# sourceMappingURL=text.js.map
package/dist/text.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"text.js","sourceRoot":"","sources":["../src/text.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"text.js","sourceRoot":"","sources":["../src/text.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "system-canvas",
3
- "version": "0.1.15",
3
+ "version": "0.1.17",
4
4
  "description": "Interactive, zoomable SVG diagrams from JSON Canvas documents. Pure TypeScript core with types, themes, edge routing, and viewport math.",
5
5
  "license": "MIT",
6
6
  "type": "module",