@graphty/graph-io 0.3.49 → 0.3.50

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.
Files changed (208) hide show
  1. package/dist/chunks/{approximations-Bzn3L-je.js → approximations-BRXsll0T.js} +2 -2
  2. package/dist/chunks/{approximations-Bzn3L-je.js.map → approximations-BRXsll0T.js.map} +1 -1
  3. package/dist/chunks/{block-iptrlMBb.js → block-yl0f_qLO.js} +27 -2
  4. package/dist/chunks/block-yl0f_qLO.js.map +1 -0
  5. package/dist/chunks/{context-C3p0RQxR.js → context-DizmppHy.js} +2 -2
  6. package/dist/chunks/{context-C3p0RQxR.js.map → context-DizmppHy.js.map} +1 -1
  7. package/dist/chunks/{credentials-DXHx7nwR.js → credentials-CmvJXYeH.js} +58 -9
  8. package/dist/chunks/credentials-CmvJXYeH.js.map +1 -0
  9. package/dist/chunks/{descriptor-DLA5kINx.js → descriptor-Dhez_Cew.js} +5 -1
  10. package/dist/chunks/{descriptor-DLA5kINx.js.map → descriptor-Dhez_Cew.js.map} +1 -1
  11. package/dist/chunks/{emit-BwHQkZle.js → emit-7Jkpg0yd.js} +132 -4
  12. package/dist/chunks/emit-7Jkpg0yd.js.map +1 -0
  13. package/dist/chunks/{exporter-nDfxIK5D.js → exporter-1Ajud15J.js} +4 -4
  14. package/dist/chunks/{exporter-nDfxIK5D.js.map → exporter-1Ajud15J.js.map} +1 -1
  15. package/dist/chunks/{exporter-D9yMtocA.js → exporter-B6yvL3wy.js} +3 -3
  16. package/dist/chunks/{exporter-D9yMtocA.js.map → exporter-B6yvL3wy.js.map} +1 -1
  17. package/dist/chunks/{exporter-_jrBTnos.js → exporter-CA5q8ROP.js} +4 -4
  18. package/dist/chunks/{exporter-_jrBTnos.js.map → exporter-CA5q8ROP.js.map} +1 -1
  19. package/dist/chunks/{exporter-D2CETOMK.js → exporter-CQQZFJ2v.js} +72 -10
  20. package/dist/chunks/exporter-CQQZFJ2v.js.map +1 -0
  21. package/dist/chunks/{generic-ymWCETAJ.js → generic-Dc21MAdg.js} +3 -3
  22. package/dist/chunks/{generic-ymWCETAJ.js.map → generic-Dc21MAdg.js.map} +1 -1
  23. package/dist/chunks/{importer-CT9mJ1nn.js → importer-C6NVpCXp.js} +7 -6
  24. package/dist/chunks/importer-C6NVpCXp.js.map +1 -0
  25. package/dist/chunks/{importer-GREKMdIf.js → importer-CKFe4q54.js} +4 -4
  26. package/dist/chunks/{importer-GREKMdIf.js.map → importer-CKFe4q54.js.map} +1 -1
  27. package/dist/chunks/{importer-PqaaKKnY.js → importer-CKbUbsJA.js} +4 -4
  28. package/dist/chunks/{importer-PqaaKKnY.js.map → importer-CKbUbsJA.js.map} +1 -1
  29. package/dist/chunks/{importer-DaLTjbds.js → importer-ClCsdgTJ.js} +97 -7
  30. package/dist/chunks/importer-ClCsdgTJ.js.map +1 -0
  31. package/dist/chunks/{importer-B92x1xY5.js → importer-CyVZTrf0.js} +3 -3
  32. package/dist/chunks/{importer-B92x1xY5.js.map → importer-CyVZTrf0.js.map} +1 -1
  33. package/dist/chunks/{importer-vRq4h3j5.js → importer-DgG4v1Ms.js} +89 -20
  34. package/dist/chunks/importer-DgG4v1Ms.js.map +1 -0
  35. package/dist/chunks/{importer-Vn5QvmmJ.js → importer-asFUrIsj.js} +2 -2
  36. package/dist/chunks/{importer-Vn5QvmmJ.js.map → importer-asFUrIsj.js.map} +1 -1
  37. package/dist/chunks/{lexicon-Clf4QIyl.js → lexicon-IVRq2Uoo.js} +2 -2
  38. package/dist/chunks/{lexicon-Clf4QIyl.js.map → lexicon-IVRq2Uoo.js.map} +1 -1
  39. package/dist/chunks/{round-trip-Zm3_ivgq.js → round-trip-Cy3_SHRZ.js} +2 -2
  40. package/dist/chunks/{round-trip-Zm3_ivgq.js.map → round-trip-Cy3_SHRZ.js.map} +1 -1
  41. package/dist/chunks/{sigv4-EokFic1V.js → sigv4-BXwVbza3.js} +3 -3
  42. package/dist/chunks/{sigv4-EokFic1V.js.map → sigv4-BXwVbza3.js.map} +1 -1
  43. package/dist/chunks/{styles-CCs214_3.js → styles-CAVmBLgp.js} +4 -4
  44. package/dist/chunks/{styles-CCs214_3.js.map → styles-CAVmBLgp.js.map} +1 -1
  45. package/dist/chunks/{styles-DPQQIig4.js → styles-CPczw1Jz.js} +4 -4
  46. package/dist/chunks/{styles-DPQQIig4.js.map → styles-CPczw1Jz.js.map} +1 -1
  47. package/dist/chunks/{styles-Cm62yyQX.js → styles-boK6Ln54.js} +65 -30
  48. package/dist/chunks/styles-boK6Ln54.js.map +1 -0
  49. package/dist/chunks/{styles-yed-UMFdNqze.js → styles-yed-XeFBQ6VS.js} +8 -8
  50. package/dist/chunks/{styles-yed-UMFdNqze.js.map → styles-yed-XeFBQ6VS.js.map} +1 -1
  51. package/dist/cx.js +2 -2
  52. package/dist/cx2.js +2 -2
  53. package/dist/cys.js +1 -1
  54. package/dist/dot.js +7 -4
  55. package/dist/gexf.js +2 -2
  56. package/dist/gml.js +8 -8
  57. package/dist/gml.js.map +1 -1
  58. package/dist/graph-io.js +129 -104
  59. package/dist/graph-io.js.map +1 -1
  60. package/dist/graphml.js +2 -2
  61. package/dist/json.js +1 -1
  62. package/dist/pajek.js +1 -1
  63. package/dist/sources-cypher.js +25 -22
  64. package/dist/sources-cypher.js.map +1 -1
  65. package/dist/sources-ndex.js +2 -2
  66. package/dist/sources-rest.js +20 -4
  67. package/dist/sources-rest.js.map +1 -1
  68. package/dist/sources-sparql.js +40 -6
  69. package/dist/sources-sparql.js.map +1 -1
  70. package/dist/src/formats/dot/exporter.d.ts.map +1 -1
  71. package/dist/src/formats/dot/exporter.js +34 -2
  72. package/dist/src/formats/dot/exporter.js.map +1 -1
  73. package/dist/src/formats/dot/importer.d.ts +6 -1
  74. package/dist/src/formats/dot/importer.d.ts.map +1 -1
  75. package/dist/src/formats/dot/importer.js +65 -5
  76. package/dist/src/formats/dot/importer.js.map +1 -1
  77. package/dist/src/formats/dot/index.d.ts +3 -1
  78. package/dist/src/formats/dot/index.d.ts.map +1 -1
  79. package/dist/src/formats/dot/index.js +2 -1
  80. package/dist/src/formats/dot/index.js.map +1 -1
  81. package/dist/src/formats/dot/label-places.d.ts +7 -0
  82. package/dist/src/formats/dot/label-places.d.ts.map +1 -1
  83. package/dist/src/formats/dot/label-places.js +9 -3
  84. package/dist/src/formats/dot/label-places.js.map +1 -1
  85. package/dist/src/formats/dot/names.d.ts +13 -0
  86. package/dist/src/formats/dot/names.d.ts.map +1 -1
  87. package/dist/src/formats/dot/names.js +13 -0
  88. package/dist/src/formats/dot/names.js.map +1 -1
  89. package/dist/src/formats/dot/styles.d.ts +10 -0
  90. package/dist/src/formats/dot/styles.d.ts.map +1 -1
  91. package/dist/src/formats/dot/styles.js +49 -3
  92. package/dist/src/formats/dot/styles.js.map +1 -1
  93. package/dist/src/formats/gml/styles.js +1 -1
  94. package/dist/src/formats/gml/styles.js.map +1 -1
  95. package/dist/src/formats/graphml/styles-yed.js +3 -3
  96. package/dist/src/formats/graphml/styles-yed.js.map +1 -1
  97. package/dist/src/formats/graphml/styles-yfiles3.d.ts.map +1 -1
  98. package/dist/src/formats/graphml/styles-yfiles3.js +6 -4
  99. package/dist/src/formats/graphml/styles-yfiles3.js.map +1 -1
  100. package/dist/src/formats/json/styles.d.ts.map +1 -1
  101. package/dist/src/formats/json/styles.js +94 -6
  102. package/dist/src/formats/json/styles.js.map +1 -1
  103. package/dist/src/formats/pajek/draw.d.ts +8 -0
  104. package/dist/src/formats/pajek/draw.d.ts.map +1 -1
  105. package/dist/src/formats/pajek/draw.js +10 -0
  106. package/dist/src/formats/pajek/draw.js.map +1 -1
  107. package/dist/src/formats/pajek/styles.d.ts.map +1 -1
  108. package/dist/src/formats/pajek/styles.js +142 -25
  109. package/dist/src/formats/pajek/styles.js.map +1 -1
  110. package/dist/src/index.d.ts +3 -3
  111. package/dist/src/index.d.ts.map +1 -1
  112. package/dist/src/index.js +2 -2
  113. package/dist/src/index.js.map +1 -1
  114. package/dist/src/sources/credentials.d.ts +50 -1
  115. package/dist/src/sources/credentials.d.ts.map +1 -1
  116. package/dist/src/sources/credentials.js +69 -0
  117. package/dist/src/sources/credentials.js.map +1 -1
  118. package/dist/src/sources/cypher/index.d.ts.map +1 -1
  119. package/dist/src/sources/cypher/index.js +12 -11
  120. package/dist/src/sources/cypher/index.js.map +1 -1
  121. package/dist/src/sources/cypher/query-builder.d.ts +6 -6
  122. package/dist/src/sources/cypher/query-builder.d.ts.map +1 -1
  123. package/dist/src/sources/cypher/query-builder.js +15 -15
  124. package/dist/src/sources/cypher/query-builder.js.map +1 -1
  125. package/dist/src/sources/rest/descriptor.d.ts.map +1 -1
  126. package/dist/src/sources/rest/descriptor.js +4 -0
  127. package/dist/src/sources/rest/descriptor.js.map +1 -1
  128. package/dist/src/sources/rest/openalex.d.ts +4 -2
  129. package/dist/src/sources/rest/openalex.d.ts.map +1 -1
  130. package/dist/src/sources/rest/openalex.js +4 -2
  131. package/dist/src/sources/rest/openalex.js.map +1 -1
  132. package/dist/src/sources/rest/source.d.ts.map +1 -1
  133. package/dist/src/sources/rest/source.js +23 -0
  134. package/dist/src/sources/rest/source.js.map +1 -1
  135. package/dist/src/sources/run.d.ts +2 -0
  136. package/dist/src/sources/run.d.ts.map +1 -1
  137. package/dist/src/sources/run.js +30 -3
  138. package/dist/src/sources/run.js.map +1 -1
  139. package/dist/src/sources/sparql/index.d.ts.map +1 -1
  140. package/dist/src/sources/sparql/index.js +14 -1
  141. package/dist/src/sources/sparql/index.js.map +1 -1
  142. package/dist/src/sources/sparql/query.d.ts +2 -1
  143. package/dist/src/sources/sparql/query.d.ts.map +1 -1
  144. package/dist/src/sources/sparql/query.js +55 -4
  145. package/dist/src/sources/sparql/query.js.map +1 -1
  146. package/dist/src/sources/types.d.ts +29 -0
  147. package/dist/src/sources/types.d.ts.map +1 -1
  148. package/dist/src/styles/canon/enums.d.ts.map +1 -1
  149. package/dist/src/styles/canon/enums.js +8 -0
  150. package/dist/src/styles/canon/enums.js.map +1 -1
  151. package/dist/src/styles/cyjs/cascade.d.ts.map +1 -1
  152. package/dist/src/styles/cyjs/cascade.js +124 -0
  153. package/dist/src/styles/cyjs/cascade.js.map +1 -1
  154. package/dist/src/styles/cyjs/defaults-table.d.ts.map +1 -1
  155. package/dist/src/styles/cyjs/defaults-table.js +1 -0
  156. package/dist/src/styles/cyjs/defaults-table.js.map +1 -1
  157. package/dist/src/styles/cyjs/emit.d.ts.map +1 -1
  158. package/dist/src/styles/cyjs/emit.js +30 -1
  159. package/dist/src/styles/cyjs/emit.js.map +1 -1
  160. package/dist/src/styles/cyjs/mappers.d.ts.map +1 -1
  161. package/dist/src/styles/cyjs/mappers.js +14 -0
  162. package/dist/src/styles/cyjs/mappers.js.map +1 -1
  163. package/dist/src/styles/types.d.ts +65 -0
  164. package/dist/src/styles/types.d.ts.map +1 -1
  165. package/dist/src/styles/vocabulary.d.ts.map +1 -1
  166. package/dist/src/styles/vocabulary.js +21 -0
  167. package/dist/src/styles/vocabulary.js.map +1 -1
  168. package/dist/styles.js +6 -6
  169. package/dist/xgmml.js +3 -3
  170. package/package.json +2 -2
  171. package/src/formats/dot/exporter.ts +37 -1
  172. package/src/formats/dot/importer.ts +75 -4
  173. package/src/formats/dot/index.ts +3 -1
  174. package/src/formats/dot/label-places.ts +16 -3
  175. package/src/formats/dot/names.ts +15 -0
  176. package/src/formats/dot/styles.ts +55 -3
  177. package/src/formats/gml/styles.ts +1 -1
  178. package/src/formats/graphml/styles-yed.ts +3 -3
  179. package/src/formats/graphml/styles-yfiles3.ts +6 -4
  180. package/src/formats/json/styles.ts +102 -6
  181. package/src/formats/pajek/draw.ts +11 -0
  182. package/src/formats/pajek/styles.ts +151 -26
  183. package/src/index.ts +7 -0
  184. package/src/sources/credentials.ts +90 -1
  185. package/src/sources/cypher/index.ts +12 -11
  186. package/src/sources/cypher/query-builder.ts +15 -15
  187. package/src/sources/rest/descriptor.ts +4 -0
  188. package/src/sources/rest/openalex.ts +4 -2
  189. package/src/sources/rest/source.ts +25 -0
  190. package/src/sources/run.ts +35 -3
  191. package/src/sources/sparql/index.ts +16 -1
  192. package/src/sources/sparql/query.ts +58 -4
  193. package/src/sources/types.ts +33 -0
  194. package/src/styles/canon/enums.ts +9 -0
  195. package/src/styles/cyjs/cascade.ts +143 -0
  196. package/src/styles/cyjs/defaults-table.ts +1 -0
  197. package/src/styles/cyjs/emit.ts +35 -1
  198. package/src/styles/cyjs/mappers.ts +14 -0
  199. package/src/styles/types.ts +65 -0
  200. package/src/styles/vocabulary.ts +21 -0
  201. package/dist/chunks/block-iptrlMBb.js.map +0 -1
  202. package/dist/chunks/credentials-DXHx7nwR.js.map +0 -1
  203. package/dist/chunks/emit-BwHQkZle.js.map +0 -1
  204. package/dist/chunks/exporter-D2CETOMK.js.map +0 -1
  205. package/dist/chunks/importer-CT9mJ1nn.js.map +0 -1
  206. package/dist/chunks/importer-DaLTjbds.js.map +0 -1
  207. package/dist/chunks/importer-vRq4h3j5.js.map +0 -1
  208. package/dist/chunks/styles-Cm62yyQX.js.map +0 -1
@@ -1,4 +1,4 @@
1
- import { i as num6, a as canonEnum, b as STYLE_ISSUE, d as canonColor, _ as CSS_COLORS, h as StyleNotes, C as canonicalFor, p as plainCell, W as evalContinuous, X as numberOf, D as degreeValues, Q as refSource, w as STYLE_PROPERTIES, U as resolveRules, V as matches } from "./block-iptrlMBb.js";
1
+ import { i as num6, a as canonEnum, b as STYLE_ISSUE, d as canonColor, _ as CSS_COLORS, h as StyleNotes, C as canonicalFor, p as plainCell, W as evalContinuous, X as numberOf, D as degreeValues, Q as refSource, w as STYLE_PROPERTIES, U as resolveRules, V as matches } from "./block-yl0f_qLO.js";
2
2
  import { d as canonBends, c as canonNodeOffsets, a as flattenQuadSpline } from "./bends-BGXjv_U4.js";
3
3
  const STYLE_WORK_BUDGET = 2e8;
4
4
  class StyleBudget {
@@ -78,6 +78,7 @@ const CYJS_DEFAULT_STYLESHEET = [
78
78
  selector: ":parent",
79
79
  style: {
80
80
  shape: "rectangle",
81
+ padding: "10px",
81
82
  "background-color": "rgb(238,238,238)",
82
83
  "border-color": "rgb(204,204,204)",
83
84
  "border-width": "1px"
@@ -644,6 +645,18 @@ const CYJS_NODE_PROPERTIES = new Map([
644
645
  ["height", { property: "height", type: "nodeSize" }],
645
646
  // a node is drawn this much larger on every side (`nodeSizes`)
646
647
  ["padding", { property: "_padding", type: "text" }],
648
+ // how a compound parent is sized round its children (`groupBoxes`)
649
+ [
650
+ "padding-relative-to",
651
+ { property: "_paddingOf", type: "enum", enums: ["width", "height", "average", "min", "max"] }
652
+ ],
653
+ ["min-width", { property: "_minWidth", type: "text" }],
654
+ ["min-height", { property: "_minHeight", type: "text" }],
655
+ ["min-width-bias-left", { property: "_biasLeft", type: "text" }],
656
+ ["min-width-bias-right", { property: "_biasRight", type: "text" }],
657
+ ["min-height-bias-top", { property: "_biasTop", type: "text" }],
658
+ ["min-height-bias-bottom", { property: "_biasBottom", type: "text" }],
659
+ ["compound-sizing-wrt-labels", { property: "_compoundLabels", type: "enum", enums: ["include", "exclude"] }],
647
660
  [
648
661
  "text-valign",
649
662
  { property: "_valign", type: "enum", enums: ["top", "top-inside", "center", "bottom", "bottom-inside"] }
@@ -715,6 +728,8 @@ const CYJS_EDGE_PROPERTIES = new Map([
715
728
  // where the ends meet the nodes, read with the routes (`edgePorts`)
716
729
  ["source-endpoint", { property: "_sourceEndpoint", type: "text" }],
717
730
  ["target-endpoint", { property: "_targetEndpoint", type: "text" }],
731
+ ["source-distance-from-node", { property: "sourceNodeGap", type: "size" }],
732
+ ["target-distance-from-node", { property: "targetNodeGap", type: "size" }],
718
733
  // a bundle's control points are this far apart, so the curves' middles half of it (see cyjsNeutral)
719
734
  ["control-point-step-size", { property: "fanSpacing", type: "size" }],
720
735
  ["arrow-scale", { property: "arrowSize", type: "positive" }],
@@ -2873,6 +2888,7 @@ function evaluateTarget(kind, graph, sheet, matcher, input, env) {
2873
2888
  if (kind === "node") {
2874
2889
  const read = { kind, els, cells, order, rendered: input.rendered, notes };
2875
2890
  nodeSizes(graph, read, drawn);
2891
+ groupBoxes(graph, read, drawn);
2876
2892
  mixedLabelPlaces(graph, read, drawn);
2877
2893
  }
2878
2894
  if (kind === "edge") {
@@ -3132,7 +3148,9 @@ const CYJS_EDGE_ONLY = /* @__PURE__ */ new Set([
3132
3148
  "target-text-margin-x",
3133
3149
  "target-text-margin-y",
3134
3150
  "source-text-rotation",
3135
- "target-text-rotation"
3151
+ "target-text-rotation",
3152
+ "source-distance-from-node",
3153
+ "target-distance-from-node"
3136
3154
  ]);
3137
3155
  function matchList(sel, kind, n, matcher, ix) {
3138
3156
  if (sel.queries.length === 0) {
@@ -3746,6 +3764,87 @@ function nodeSizes(graph, read, values) {
3746
3764
  }
3747
3765
  }
3748
3766
  }
3767
+ const PADDING_OF_PART = {
3768
+ property: "_paddingOf",
3769
+ type: "enum",
3770
+ enums: ["width", "height", "average", "min", "max"]
3771
+ };
3772
+ const LABELS_PART = { property: "_compoundLabels", type: "enum", enums: ["include", "exclude"] };
3773
+ function measureOf(text2) {
3774
+ if (typeof text2 !== "string" && typeof text2 !== "number") {
3775
+ return null;
3776
+ }
3777
+ const value = Number.parseFloat(String(text2));
3778
+ return Number.isFinite(value) ? { value, percent: String(text2).trim().endsWith("%") } : null;
3779
+ }
3780
+ function biasShare(near2, far, min) {
3781
+ const percent = (text2) => {
3782
+ const m = measureOf(text2);
3783
+ if (m === null || m.value <= 0) {
3784
+ return 0;
3785
+ }
3786
+ return m.percent ? m.value : m.value * 100 / min;
3787
+ };
3788
+ const a = percent(near2);
3789
+ const total = a + percent(far);
3790
+ return total > 0 ? a / total : null;
3791
+ }
3792
+ function groupBoxes(graph, read, values) {
3793
+ const word = (name, spec = TEXT_PART) => drawnColumn(read, name, spec);
3794
+ const padding = word("padding");
3795
+ const paddingOf2 = word("padding-relative-to", PADDING_OF_PART);
3796
+ const labels = word("compound-sizing-wrt-labels", LABELS_PART);
3797
+ const axes = [
3798
+ { min: word("min-width"), near: word("min-width-bias-left"), far: word("min-width-bias-right") },
3799
+ { min: word("min-height"), near: word("min-height-bias-top"), far: word("min-height-bias-bottom") }
3800
+ ];
3801
+ const names = [
3802
+ ["groupMinWidth", "groupMinWidthBiasLeft"],
3803
+ ["groupMinHeight", "groupMinHeightBiasTop"]
3804
+ ];
3805
+ const n = read.order.length;
3806
+ const put = (p, k, v) => {
3807
+ const column = values[p] ?? new Array(n).fill(null);
3808
+ values[p] = column;
3809
+ column[k] = v;
3810
+ };
3811
+ for (let k = 0; k < n; k++) {
3812
+ const core = read.order[k];
3813
+ if (core < 0 || graph.children[core].length === 0) {
3814
+ continue;
3815
+ }
3816
+ for (const [p, v] of groupPaddingValues(padding[k], paddingOf2[k])) {
3817
+ put(p, k, v);
3818
+ }
3819
+ put("groupIncludeLabels", k, labels[k] !== "exclude");
3820
+ axes.forEach((axis, a) => {
3821
+ for (const [p, v] of groupMinValues(axis.min[k], axis.near[k], axis.far[k], names[a])) {
3822
+ put(p, k, v);
3823
+ }
3824
+ });
3825
+ }
3826
+ }
3827
+ function groupPaddingValues(padding, of) {
3828
+ const pad = measureOf(padding);
3829
+ if (pad?.percent !== true) {
3830
+ return [["groupPadding", Math.max(0, pad?.value ?? 0)]];
3831
+ }
3832
+ return [
3833
+ ["groupPaddingRatio", Math.max(0, pad.value / 100)],
3834
+ ["groupPaddingOf", typeof of === "string" ? of : "width"]
3835
+ ];
3836
+ }
3837
+ function groupMinValues(min, near2, far, names) {
3838
+ const m = measureOf(min);
3839
+ if (m === null || m.percent || m.value <= 0) {
3840
+ return [];
3841
+ }
3842
+ const share = biasShare(near2, far, m.value);
3843
+ return share === null ? [[names[0], m.value]] : [
3844
+ [names[0], m.value],
3845
+ [names[1], share]
3846
+ ];
3847
+ }
3749
3848
  const VALIGN_PART = {
3750
3849
  property: "_valign",
3751
3850
  type: "enum",
@@ -4471,7 +4570,36 @@ function toCyjs(target, property, value) {
4471
4570
  case "labelBorderWidth":
4472
4571
  return ifNumber(value, (v) => exact({ "text-border-width": v, "text-border-opacity": 1 }));
4473
4572
  default:
4474
- return propertyToCyjs(property, value, specs);
4573
+ return groupToCyjs(property, value) ?? propertyToCyjs(property, value, specs);
4574
+ }
4575
+ }
4576
+ function groupToCyjs(property, value) {
4577
+ const percent = (v) => `${num6(v * 100)}%`;
4578
+ switch (property) {
4579
+ case "groupPadding":
4580
+ return ifNumber(value, (v) => exact({ padding: `${num6(v)}px` }));
4581
+ case "groupPaddingRatio":
4582
+ return ifNumber(value, (v) => exact({ padding: percent(v) }));
4583
+ case "groupPaddingOf":
4584
+ return exact({ "padding-relative-to": String(value) });
4585
+ case "groupMinWidth":
4586
+ return ifNumber(value, (v) => exact({ "min-width": `${num6(v)}px` }));
4587
+ case "groupMinHeight":
4588
+ return ifNumber(value, (v) => exact({ "min-height": `${num6(v)}px` }));
4589
+ case "groupMinWidthBiasLeft":
4590
+ return ifNumber(
4591
+ value,
4592
+ (v) => exact({ "min-width-bias-left": percent(v), "min-width-bias-right": percent(1 - v) })
4593
+ );
4594
+ case "groupMinHeightBiasTop":
4595
+ return ifNumber(
4596
+ value,
4597
+ (v) => exact({ "min-height-bias-top": percent(v), "min-height-bias-bottom": percent(1 - v) })
4598
+ );
4599
+ case "groupIncludeLabels":
4600
+ return exact({ "compound-sizing-wrt-labels": value === false ? "exclude" : "include" });
4601
+ default:
4602
+ return null;
4475
4603
  }
4476
4604
  }
4477
4605
  function ifNumber(value, write) {
@@ -5040,4 +5168,4 @@ export {
5040
5168
  evaluateCytoscapeJs as e,
5041
5169
  toCytoscapeStylesheet as t
5042
5170
  };
5043
- //# sourceMappingURL=emit-BwHQkZle.js.map
5171
+ //# sourceMappingURL=emit-7Jkpg0yd.js.map