@loom-framework/core 0.1.0-alpha.84 → 0.1.0-alpha.85

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 (302) hide show
  1. package/builtin-skills/antd/SKILL.md +266 -0
  2. package/builtin-skills/antv-g2-chart/SKILL.md +1067 -0
  3. package/builtin-skills/antv-g2-chart/references/animations/g2-animation-intro.md +176 -0
  4. package/builtin-skills/antv-g2-chart/references/animations/g2-animation-keyframe.md +149 -0
  5. package/builtin-skills/antv-g2-chart/references/animations/g2-animation-types.md +253 -0
  6. package/builtin-skills/antv-g2-chart/references/components/g2-comp-annotation.md +237 -0
  7. package/builtin-skills/antv-g2-chart/references/components/g2-comp-axis-config.md +648 -0
  8. package/builtin-skills/antv-g2-chart/references/components/g2-comp-axis-radar.md +219 -0
  9. package/builtin-skills/antv-g2-chart/references/components/g2-comp-label-config.md +174 -0
  10. package/builtin-skills/antv-g2-chart/references/components/g2-comp-legend-category.md +278 -0
  11. package/builtin-skills/antv-g2-chart/references/components/g2-comp-legend-config.md +363 -0
  12. package/builtin-skills/antv-g2-chart/references/components/g2-comp-legend-continuous.md +264 -0
  13. package/builtin-skills/antv-g2-chart/references/components/g2-comp-scrollbar.md +276 -0
  14. package/builtin-skills/antv-g2-chart/references/components/g2-comp-slider.md +333 -0
  15. package/builtin-skills/antv-g2-chart/references/components/g2-comp-title.md +149 -0
  16. package/builtin-skills/antv-g2-chart/references/components/g2-comp-tooltip-config.md +358 -0
  17. package/builtin-skills/antv-g2-chart/references/compositions/g2-comp-facet-circle.md +97 -0
  18. package/builtin-skills/antv-g2-chart/references/compositions/g2-comp-facet-rect.md +241 -0
  19. package/builtin-skills/antv-g2-chart/references/compositions/g2-comp-geo-map.md +210 -0
  20. package/builtin-skills/antv-g2-chart/references/compositions/g2-comp-geoview.md +143 -0
  21. package/builtin-skills/antv-g2-chart/references/compositions/g2-comp-repeat-matrix.md +171 -0
  22. package/builtin-skills/antv-g2-chart/references/compositions/g2-comp-space-flex.md +142 -0
  23. package/builtin-skills/antv-g2-chart/references/compositions/g2-comp-space-layer.md +149 -0
  24. package/builtin-skills/antv-g2-chart/references/compositions/g2-comp-timing-keyframe.md +91 -0
  25. package/builtin-skills/antv-g2-chart/references/compositions/g2-comp-view.md +309 -0
  26. package/builtin-skills/antv-g2-chart/references/concepts/g2-concept-chart-selection.md +235 -0
  27. package/builtin-skills/antv-g2-chart/references/concepts/g2-concept-color-theory.md +287 -0
  28. package/builtin-skills/antv-g2-chart/references/concepts/g2-concept-visual-channels.md +180 -0
  29. package/builtin-skills/antv-g2-chart/references/coordinates/g2-coord-cartesian.md +131 -0
  30. package/builtin-skills/antv-g2-chart/references/coordinates/g2-coord-fisheye.md +131 -0
  31. package/builtin-skills/antv-g2-chart/references/coordinates/g2-coord-helix.md +141 -0
  32. package/builtin-skills/antv-g2-chart/references/coordinates/g2-coord-parallel.md +129 -0
  33. package/builtin-skills/antv-g2-chart/references/coordinates/g2-coord-polar.md +143 -0
  34. package/builtin-skills/antv-g2-chart/references/coordinates/g2-coord-radial.md +214 -0
  35. package/builtin-skills/antv-g2-chart/references/coordinates/g2-coord-theta.md +171 -0
  36. package/builtin-skills/antv-g2-chart/references/coordinates/g2-coord-transpose.md +195 -0
  37. package/builtin-skills/antv-g2-chart/references/core/g2-core-chart-init.md +266 -0
  38. package/builtin-skills/antv-g2-chart/references/core/g2-core-encode-channel.md +197 -0
  39. package/builtin-skills/antv-g2-chart/references/core/g2-core-view-composition.md +224 -0
  40. package/builtin-skills/antv-g2-chart/references/data/g2-data-ema.md +190 -0
  41. package/builtin-skills/antv-g2-chart/references/data/g2-data-fetch.md +167 -0
  42. package/builtin-skills/antv-g2-chart/references/data/g2-data-filter.md +212 -0
  43. package/builtin-skills/antv-g2-chart/references/data/g2-data-fold.md +260 -0
  44. package/builtin-skills/antv-g2-chart/references/data/g2-data-format-tabular.md +280 -0
  45. package/builtin-skills/antv-g2-chart/references/data/g2-data-kde.md +426 -0
  46. package/builtin-skills/antv-g2-chart/references/data/g2-data-log.md +140 -0
  47. package/builtin-skills/antv-g2-chart/references/data/g2-data-slice.md +147 -0
  48. package/builtin-skills/antv-g2-chart/references/data/g2-data-sort.md +251 -0
  49. package/builtin-skills/antv-g2-chart/references/data/g2-data-sortby.md +183 -0
  50. package/builtin-skills/antv-g2-chart/references/data/g2-data-transform-patterns.md +394 -0
  51. package/builtin-skills/antv-g2-chart/references/interactions/g2-interaction-adaptive-filter.md +118 -0
  52. package/builtin-skills/antv-g2-chart/references/interactions/g2-interaction-brush-axis.md +112 -0
  53. package/builtin-skills/antv-g2-chart/references/interactions/g2-interaction-brush-filter.md +122 -0
  54. package/builtin-skills/antv-g2-chart/references/interactions/g2-interaction-brush-x-y-highlight.md +127 -0
  55. package/builtin-skills/antv-g2-chart/references/interactions/g2-interaction-brush-xy.md +118 -0
  56. package/builtin-skills/antv-g2-chart/references/interactions/g2-interaction-brush.md +184 -0
  57. package/builtin-skills/antv-g2-chart/references/interactions/g2-interaction-brushx-filter.md +170 -0
  58. package/builtin-skills/antv-g2-chart/references/interactions/g2-interaction-brushx-highlight.md +186 -0
  59. package/builtin-skills/antv-g2-chart/references/interactions/g2-interaction-brushy-filter.md +170 -0
  60. package/builtin-skills/antv-g2-chart/references/interactions/g2-interaction-brushy-highlight.md +185 -0
  61. package/builtin-skills/antv-g2-chart/references/interactions/g2-interaction-chart-index.md +127 -0
  62. package/builtin-skills/antv-g2-chart/references/interactions/g2-interaction-drilldown.md +149 -0
  63. package/builtin-skills/antv-g2-chart/references/interactions/g2-interaction-element-highlight-by.md +125 -0
  64. package/builtin-skills/antv-g2-chart/references/interactions/g2-interaction-element-highlight.md +235 -0
  65. package/builtin-skills/antv-g2-chart/references/interactions/g2-interaction-element-hover-scale.md +109 -0
  66. package/builtin-skills/antv-g2-chart/references/interactions/g2-interaction-element-point-move.md +152 -0
  67. package/builtin-skills/antv-g2-chart/references/interactions/g2-interaction-element-select-by.md +133 -0
  68. package/builtin-skills/antv-g2-chart/references/interactions/g2-interaction-element-select.md +249 -0
  69. package/builtin-skills/antv-g2-chart/references/interactions/g2-interaction-fisheye.md +117 -0
  70. package/builtin-skills/antv-g2-chart/references/interactions/g2-interaction-legend-filter.md +130 -0
  71. package/builtin-skills/antv-g2-chart/references/interactions/g2-interaction-legend-highlight.md +130 -0
  72. package/builtin-skills/antv-g2-chart/references/interactions/g2-interaction-poptip.md +105 -0
  73. package/builtin-skills/antv-g2-chart/references/interactions/g2-interaction-scrollbar-filter.md +144 -0
  74. package/builtin-skills/antv-g2-chart/references/interactions/g2-interaction-slider-filter.md +231 -0
  75. package/builtin-skills/antv-g2-chart/references/interactions/g2-interaction-slider-wheel.md +138 -0
  76. package/builtin-skills/antv-g2-chart/references/interactions/g2-interaction-tooltip.md +192 -0
  77. package/builtin-skills/antv-g2-chart/references/interactions/g2-interaction-treemap-drilldown.md +152 -0
  78. package/builtin-skills/antv-g2-chart/references/label-transform/g2-label-transform-contrast-reverse.md +170 -0
  79. package/builtin-skills/antv-g2-chart/references/label-transform/g2-label-transform-exceed-adjust.md +146 -0
  80. package/builtin-skills/antv-g2-chart/references/label-transform/g2-label-transform-overflow-hide.md +185 -0
  81. package/builtin-skills/antv-g2-chart/references/label-transform/g2-label-transform-overflow-stroke.md +147 -0
  82. package/builtin-skills/antv-g2-chart/references/label-transform/g2-label-transform-overlap-dodge-y.md +225 -0
  83. package/builtin-skills/antv-g2-chart/references/label-transform/g2-label-transform-overlap-hide.md +213 -0
  84. package/builtin-skills/antv-g2-chart/references/marks/g2-mark-arc-diagram.md +196 -0
  85. package/builtin-skills/antv-g2-chart/references/marks/g2-mark-arc-donut.md +148 -0
  86. package/builtin-skills/antv-g2-chart/references/marks/g2-mark-arc-pie.md +212 -0
  87. package/builtin-skills/antv-g2-chart/references/marks/g2-mark-area-basic.md +168 -0
  88. package/builtin-skills/antv-g2-chart/references/marks/g2-mark-area-stacked.md +150 -0
  89. package/builtin-skills/antv-g2-chart/references/marks/g2-mark-beeswarm.md +134 -0
  90. package/builtin-skills/antv-g2-chart/references/marks/g2-mark-bi-directional-bar.md +297 -0
  91. package/builtin-skills/antv-g2-chart/references/marks/g2-mark-box-boxplot.md +163 -0
  92. package/builtin-skills/antv-g2-chart/references/marks/g2-mark-boxplot.md +340 -0
  93. package/builtin-skills/antv-g2-chart/references/marks/g2-mark-bullet.md +203 -0
  94. package/builtin-skills/antv-g2-chart/references/marks/g2-mark-cell-heatmap.md +370 -0
  95. package/builtin-skills/antv-g2-chart/references/marks/g2-mark-chord.md +341 -0
  96. package/builtin-skills/antv-g2-chart/references/marks/g2-mark-connector.md +126 -0
  97. package/builtin-skills/antv-g2-chart/references/marks/g2-mark-contourline.md +243 -0
  98. package/builtin-skills/antv-g2-chart/references/marks/g2-mark-density.md +457 -0
  99. package/builtin-skills/antv-g2-chart/references/marks/g2-mark-distribution-curve.md +298 -0
  100. package/builtin-skills/antv-g2-chart/references/marks/g2-mark-funnel.md +329 -0
  101. package/builtin-skills/antv-g2-chart/references/marks/g2-mark-gantt.md +208 -0
  102. package/builtin-skills/antv-g2-chart/references/marks/g2-mark-gauge.md +247 -0
  103. package/builtin-skills/antv-g2-chart/references/marks/g2-mark-heatmap.md +130 -0
  104. package/builtin-skills/antv-g2-chart/references/marks/g2-mark-histogram.md +186 -0
  105. package/builtin-skills/antv-g2-chart/references/marks/g2-mark-image.md +129 -0
  106. package/builtin-skills/antv-g2-chart/references/marks/g2-mark-interval-basic.md +528 -0
  107. package/builtin-skills/antv-g2-chart/references/marks/g2-mark-interval-grouped.md +161 -0
  108. package/builtin-skills/antv-g2-chart/references/marks/g2-mark-interval-normalized.md +147 -0
  109. package/builtin-skills/antv-g2-chart/references/marks/g2-mark-interval-stacked.md +183 -0
  110. package/builtin-skills/antv-g2-chart/references/marks/g2-mark-k-chart.md +237 -0
  111. package/builtin-skills/antv-g2-chart/references/marks/g2-mark-line-basic.md +353 -0
  112. package/builtin-skills/antv-g2-chart/references/marks/g2-mark-line-multi.md +156 -0
  113. package/builtin-skills/antv-g2-chart/references/marks/g2-mark-linex-liney.md +176 -0
  114. package/builtin-skills/antv-g2-chart/references/marks/g2-mark-link.md +134 -0
  115. package/builtin-skills/antv-g2-chart/references/marks/g2-mark-liquid.md +125 -0
  116. package/builtin-skills/antv-g2-chart/references/marks/g2-mark-mosaic.md +257 -0
  117. package/builtin-skills/antv-g2-chart/references/marks/g2-mark-pack.md +424 -0
  118. package/builtin-skills/antv-g2-chart/references/marks/g2-mark-parallel.md +195 -0
  119. package/builtin-skills/antv-g2-chart/references/marks/g2-mark-partition.md +275 -0
  120. package/builtin-skills/antv-g2-chart/references/marks/g2-mark-path.md +135 -0
  121. package/builtin-skills/antv-g2-chart/references/marks/g2-mark-point-bubble.md +138 -0
  122. package/builtin-skills/antv-g2-chart/references/marks/g2-mark-point-scatter.md +177 -0
  123. package/builtin-skills/antv-g2-chart/references/marks/g2-mark-polygon.md +130 -0
  124. package/builtin-skills/antv-g2-chart/references/marks/g2-mark-radar.md +231 -0
  125. package/builtin-skills/antv-g2-chart/references/marks/g2-mark-radial-bar.md +226 -0
  126. package/builtin-skills/antv-g2-chart/references/marks/g2-mark-range-rangey.md +253 -0
  127. package/builtin-skills/antv-g2-chart/references/marks/g2-mark-rangex.md +293 -0
  128. package/builtin-skills/antv-g2-chart/references/marks/g2-mark-rect.md +115 -0
  129. package/builtin-skills/antv-g2-chart/references/marks/g2-mark-regression-curve.md +276 -0
  130. package/builtin-skills/antv-g2-chart/references/marks/g2-mark-rose.md +182 -0
  131. package/builtin-skills/antv-g2-chart/references/marks/g2-mark-sankey.md +217 -0
  132. package/builtin-skills/antv-g2-chart/references/marks/g2-mark-shape.md +160 -0
  133. package/builtin-skills/antv-g2-chart/references/marks/g2-mark-spiral.md +257 -0
  134. package/builtin-skills/antv-g2-chart/references/marks/g2-mark-sunburst.md +327 -0
  135. package/builtin-skills/antv-g2-chart/references/marks/g2-mark-text.md +309 -0
  136. package/builtin-skills/antv-g2-chart/references/marks/g2-mark-tree.md +235 -0
  137. package/builtin-skills/antv-g2-chart/references/marks/g2-mark-treemap.md +426 -0
  138. package/builtin-skills/antv-g2-chart/references/marks/g2-mark-vector.md +108 -0
  139. package/builtin-skills/antv-g2-chart/references/marks/g2-mark-venn.md +204 -0
  140. package/builtin-skills/antv-g2-chart/references/marks/g2-mark-violin.md +307 -0
  141. package/builtin-skills/antv-g2-chart/references/marks/g2-mark-wordcloud.md +155 -0
  142. package/builtin-skills/antv-g2-chart/references/palette/g2-palette-category10.md +196 -0
  143. package/builtin-skills/antv-g2-chart/references/palette/g2-palette-category20.md +238 -0
  144. package/builtin-skills/antv-g2-chart/references/patterns/g2-pattern-performance.md +181 -0
  145. package/builtin-skills/antv-g2-chart/references/patterns/g2-pattern-responsive.md +232 -0
  146. package/builtin-skills/antv-g2-chart/references/patterns/g2-pattern-v4-to-v5.md +223 -0
  147. package/builtin-skills/antv-g2-chart/references/scales/g2-scale-band.md +127 -0
  148. package/builtin-skills/antv-g2-chart/references/scales/g2-scale-linear.md +259 -0
  149. package/builtin-skills/antv-g2-chart/references/scales/g2-scale-log.md +226 -0
  150. package/builtin-skills/antv-g2-chart/references/scales/g2-scale-ordinal.md +135 -0
  151. package/builtin-skills/antv-g2-chart/references/scales/g2-scale-point.md +242 -0
  152. package/builtin-skills/antv-g2-chart/references/scales/g2-scale-pow-sqrt.md +124 -0
  153. package/builtin-skills/antv-g2-chart/references/scales/g2-scale-quantile-quantize.md +119 -0
  154. package/builtin-skills/antv-g2-chart/references/scales/g2-scale-sequential.md +267 -0
  155. package/builtin-skills/antv-g2-chart/references/scales/g2-scale-threshold.md +133 -0
  156. package/builtin-skills/antv-g2-chart/references/scales/g2-scale-time.md +159 -0
  157. package/builtin-skills/antv-g2-chart/references/themes/g2-theme-builtin.md +192 -0
  158. package/builtin-skills/antv-g2-chart/references/themes/g2-theme-custom.md +183 -0
  159. package/builtin-skills/antv-g2-chart/references/transforms/g2-transform-bin.md +153 -0
  160. package/builtin-skills/antv-g2-chart/references/transforms/g2-transform-binx.md +133 -0
  161. package/builtin-skills/antv-g2-chart/references/transforms/g2-transform-diffy.md +130 -0
  162. package/builtin-skills/antv-g2-chart/references/transforms/g2-transform-dodgex.md +90 -0
  163. package/builtin-skills/antv-g2-chart/references/transforms/g2-transform-flexx.md +115 -0
  164. package/builtin-skills/antv-g2-chart/references/transforms/g2-transform-group.md +233 -0
  165. package/builtin-skills/antv-g2-chart/references/transforms/g2-transform-groupcolor.md +182 -0
  166. package/builtin-skills/antv-g2-chart/references/transforms/g2-transform-groupx.md +265 -0
  167. package/builtin-skills/antv-g2-chart/references/transforms/g2-transform-groupy.md +167 -0
  168. package/builtin-skills/antv-g2-chart/references/transforms/g2-transform-jitter.md +149 -0
  169. package/builtin-skills/antv-g2-chart/references/transforms/g2-transform-jitterx.md +177 -0
  170. package/builtin-skills/antv-g2-chart/references/transforms/g2-transform-jittery.md +177 -0
  171. package/builtin-skills/antv-g2-chart/references/transforms/g2-transform-normalizey.md +83 -0
  172. package/builtin-skills/antv-g2-chart/references/transforms/g2-transform-pack.md +164 -0
  173. package/builtin-skills/antv-g2-chart/references/transforms/g2-transform-sample.md +143 -0
  174. package/builtin-skills/antv-g2-chart/references/transforms/g2-transform-select.md +147 -0
  175. package/builtin-skills/antv-g2-chart/references/transforms/g2-transform-selectx.md +179 -0
  176. package/builtin-skills/antv-g2-chart/references/transforms/g2-transform-selecty.md +179 -0
  177. package/builtin-skills/antv-g2-chart/references/transforms/g2-transform-sort-color.md +115 -0
  178. package/builtin-skills/antv-g2-chart/references/transforms/g2-transform-sortx.md +285 -0
  179. package/builtin-skills/antv-g2-chart/references/transforms/g2-transform-sorty.md +117 -0
  180. package/builtin-skills/antv-g2-chart/references/transforms/g2-transform-stack-enter.md +158 -0
  181. package/builtin-skills/antv-g2-chart/references/transforms/g2-transform-stacky.md +218 -0
  182. package/builtin-skills/antv-g2-chart/references/transforms/g2-transform-symmetryy.md +122 -0
  183. package/builtin-skills/chart-visualization/SKILL.md +101 -0
  184. package/{templates/loom-skill → builtin-skills/loom}/SKILL.md +20 -9
  185. package/{templates/loom-skill → builtin-skills/loom}/references/README.md +3 -3
  186. package/dist/capability-generator.d.ts +1 -1
  187. package/dist/capability-generator.js +3 -3
  188. package/dist/capability-generator.js.map +1 -1
  189. package/dist/cli/commands/generate-page.d.ts.map +1 -1
  190. package/dist/cli/commands/generate-page.js +1 -163
  191. package/dist/cli/commands/generate-page.js.map +1 -1
  192. package/dist/cli/commands/init.d.ts.map +1 -1
  193. package/dist/cli/commands/init.js +57 -294
  194. package/dist/cli/commands/init.js.map +1 -1
  195. package/dist/cli/generators/capability-generator.d.ts +35 -0
  196. package/dist/cli/generators/capability-generator.d.ts.map +1 -0
  197. package/dist/cli/generators/capability-generator.js +115 -0
  198. package/dist/cli/generators/capability-generator.js.map +1 -0
  199. package/dist/cli/helpers/column-template.d.ts +18 -0
  200. package/dist/cli/helpers/column-template.d.ts.map +1 -0
  201. package/dist/cli/helpers/column-template.js +151 -0
  202. package/dist/cli/helpers/column-template.js.map +1 -0
  203. package/dist/cli/helpers/field-template.d.ts +4 -0
  204. package/dist/cli/helpers/field-template.d.ts.map +1 -1
  205. package/dist/cli/helpers/field-template.js +4 -3
  206. package/dist/cli/helpers/field-template.js.map +1 -1
  207. package/dist/cli/templates/backend-entry.d.ts +5 -0
  208. package/dist/cli/templates/backend-entry.d.ts.map +1 -0
  209. package/dist/cli/templates/backend-entry.js +17 -0
  210. package/dist/cli/templates/backend-entry.js.map +1 -0
  211. package/dist/cli/templates/frontend-entry.d.ts +11 -0
  212. package/dist/cli/templates/frontend-entry.d.ts.map +1 -0
  213. package/dist/cli/templates/frontend-entry.js +77 -0
  214. package/dist/cli/templates/frontend-entry.js.map +1 -0
  215. package/dist/cli/templates/gitignore.d.ts +5 -0
  216. package/dist/cli/templates/gitignore.d.ts.map +1 -0
  217. package/dist/cli/templates/gitignore.js +13 -0
  218. package/dist/cli/templates/gitignore.js.map +1 -0
  219. package/dist/cli/templates/index.d.ts +12 -0
  220. package/dist/cli/templates/index.d.ts.map +1 -0
  221. package/dist/cli/templates/index.js +12 -0
  222. package/dist/cli/templates/index.js.map +1 -0
  223. package/dist/cli/templates/loom-config.d.ts +10 -0
  224. package/dist/cli/templates/loom-config.d.ts.map +1 -0
  225. package/dist/cli/templates/loom-config.js +31 -0
  226. package/dist/cli/templates/loom-config.js.map +1 -0
  227. package/dist/cli/templates/package-json.d.ts +9 -0
  228. package/dist/cli/templates/package-json.d.ts.map +1 -0
  229. package/dist/cli/templates/package-json.js +39 -0
  230. package/dist/cli/templates/package-json.js.map +1 -0
  231. package/dist/cli/templates/readme.d.ts +9 -0
  232. package/dist/cli/templates/readme.d.ts.map +1 -0
  233. package/dist/cli/templates/readme.js +47 -0
  234. package/dist/cli/templates/readme.js.map +1 -0
  235. package/dist/cli/templates/tsconfig.d.ts +6 -0
  236. package/dist/cli/templates/tsconfig.d.ts.map +1 -0
  237. package/dist/cli/templates/tsconfig.js +41 -0
  238. package/dist/cli/templates/tsconfig.js.map +1 -0
  239. package/dist/cli/templates/vite-config.d.ts +5 -0
  240. package/dist/cli/templates/vite-config.d.ts.map +1 -0
  241. package/dist/cli/templates/vite-config.js +24 -0
  242. package/dist/cli/templates/vite-config.js.map +1 -0
  243. package/dist/commands.d.ts +1 -5
  244. package/dist/commands.d.ts.map +1 -1
  245. package/dist/commands.js +0 -11
  246. package/dist/commands.js.map +1 -1
  247. package/dist/config.d.ts +15 -122
  248. package/dist/config.d.ts.map +1 -1
  249. package/dist/config.js +2 -52
  250. package/dist/config.js.map +1 -1
  251. package/dist/dashboard-config.d.ts +117 -0
  252. package/dist/dashboard-config.d.ts.map +1 -0
  253. package/dist/dashboard-config.js +59 -0
  254. package/dist/dashboard-config.js.map +1 -0
  255. package/dist/index.d.ts +2 -2
  256. package/dist/index.d.ts.map +1 -1
  257. package/dist/index.js +1 -1
  258. package/dist/index.js.map +1 -1
  259. package/dist/server-bin.js +30 -62
  260. package/dist/server-bin.js.map +1 -1
  261. package/dist/types/adapter.d.ts +28 -0
  262. package/dist/types/adapter.d.ts.map +1 -0
  263. package/dist/types/adapter.js +5 -0
  264. package/dist/types/adapter.js.map +1 -0
  265. package/dist/types/ai.d.ts +52 -0
  266. package/dist/types/ai.d.ts.map +1 -0
  267. package/dist/types/ai.js +5 -0
  268. package/dist/types/ai.js.map +1 -0
  269. package/dist/types/chat.d.ts +46 -0
  270. package/dist/types/chat.d.ts.map +1 -0
  271. package/dist/types/chat.js +5 -0
  272. package/dist/types/chat.js.map +1 -0
  273. package/dist/types/command.d.ts +25 -0
  274. package/dist/types/command.d.ts.map +1 -0
  275. package/dist/types/command.js +5 -0
  276. package/dist/types/command.js.map +1 -0
  277. package/dist/types/config.d.ts +30 -0
  278. package/dist/types/config.d.ts.map +1 -0
  279. package/dist/types/config.js +5 -0
  280. package/dist/types/config.js.map +1 -0
  281. package/dist/types/dashboard.d.ts +42 -0
  282. package/dist/types/dashboard.d.ts.map +1 -0
  283. package/dist/types/dashboard.js +5 -0
  284. package/dist/types/dashboard.js.map +1 -0
  285. package/dist/types/index.d.ts +14 -0
  286. package/dist/types/index.d.ts.map +1 -0
  287. package/dist/types/index.js +8 -0
  288. package/dist/types/index.js.map +1 -0
  289. package/dist/types/model.d.ts +59 -0
  290. package/dist/types/model.d.ts.map +1 -0
  291. package/dist/types/model.js +5 -0
  292. package/dist/types/model.js.map +1 -0
  293. package/dist/types.d.ts +4 -250
  294. package/dist/types.d.ts.map +1 -1
  295. package/dist/types.js +4 -3
  296. package/dist/types.js.map +1 -1
  297. package/package.json +2 -2
  298. /package/{templates → builtin-skills}/app-skill/SKILL.md +0 -0
  299. /package/{templates → builtin-skills}/app-skill/references/data-semantics.md +0 -0
  300. /package/{templates → builtin-skills}/app-skill/references/models.md +0 -0
  301. /package/{templates/loom-skill → builtin-skills/loom}/references/dashboard.md +0 -0
  302. /package/{templates/loom-skill → builtin-skills/loom}/references/data-model.md +0 -0
@@ -0,0 +1,370 @@
1
+ ---
2
+ id: "g2-mark-cell-heatmap"
3
+ title: "G2 热力图(Cell Mark)"
4
+ description: |
5
+ 使用 Cell Mark 创建矩阵热力图,通过颜色深浅表示两个分类维度交叉点的数值大小,
6
+ 常用于相关性分析、时间-类别分布等场景。本文采用 Spec 模式。
7
+
8
+ library: "g2"
9
+ version: "5.x"
10
+ category: "marks"
11
+ subcategory: "cell"
12
+ tags:
13
+ - "热力图"
14
+ - "Cell"
15
+ - "heatmap"
16
+ - "矩阵"
17
+ - "相关性"
18
+ - "颜色映射"
19
+ - "spec"
20
+
21
+ related:
22
+ - "g2-core-encode-channel"
23
+ - "g2-scale-sequential"
24
+ - "g2-comp-legend-config"
25
+
26
+ use_cases:
27
+ - "展示两个分类维度的交叉数值(如相关矩阵)"
28
+ - "时间热力图(如每周各天的活跃度)"
29
+ - "用户行为矩阵分析"
30
+
31
+ anti_patterns:
32
+ - "数据为连续型 x/y 时改用密度图或等值线图"
33
+
34
+ difficulty: "beginner"
35
+ completeness: "full"
36
+ created: "2024-01-01"
37
+ updated: "2025-03-01"
38
+ author: "antv-team"
39
+ source_url: "https://g2.antv.antgroup.com/examples/heatmap/basic"
40
+ ---
41
+
42
+ ## 最小可运行示例
43
+
44
+ ```javascript
45
+ import { Chart } from '@antv/g2';
46
+
47
+ const chart = new Chart({
48
+ container: 'container',
49
+ width: 640,
50
+ height: 480,
51
+ });
52
+
53
+ chart.options({
54
+ type: 'cell',
55
+ data: [
56
+ { week: 'Mon', hour: '6AM', value: 10 },
57
+ { week: 'Mon', hour: '12PM', value: 80 },
58
+ { week: 'Mon', hour: '6PM', value: 60 },
59
+ { week: 'Tue', hour: '6AM', value: 5 },
60
+ { week: 'Tue', hour: '12PM', value: 95 },
61
+ { week: 'Tue', hour: '6PM', value: 70 },
62
+ { week: 'Wed', hour: '6AM', value: 20 },
63
+ { week: 'Wed', hour: '12PM', value: 75 },
64
+ { week: 'Wed', hour: '6PM', value: 55 },
65
+ ],
66
+ encode: {
67
+ x: 'week',
68
+ y: 'hour',
69
+ color: 'value', // 颜色深浅表示数值大小
70
+ },
71
+ scale: {
72
+ color: {
73
+ type: 'sequential', // 明确指定为顺序色阶
74
+ palette: 'YlOrRd' // 连续色阶:YlOrRd | Blues | Viridis 等
75
+ },
76
+ },
77
+ style: {
78
+ inset: 1, // 格子间距(px)
79
+ },
80
+ });
81
+
82
+ chart.render();
83
+ ```
84
+
85
+ ## 带数值标签的热力图
86
+
87
+ ```javascript
88
+ chart.options({
89
+ type: 'cell',
90
+ data,
91
+ encode: { x: 'week', y: 'hour', color: 'value' },
92
+ scale: {
93
+ color: { type: 'sequential', palette: 'Blues' },
94
+ },
95
+ labels: [
96
+ {
97
+ text: 'value',
98
+ style: {
99
+ fontSize: 11,
100
+ fill: (d) => d.value > 60 ? 'white' : '#333', // 深色背景用白字
101
+ },
102
+ },
103
+ ],
104
+ style: { inset: 2 },
105
+ });
106
+ ```
107
+
108
+ ## 相关系数矩阵
109
+
110
+ ```javascript
111
+ // 相关性分析热力图(-1 到 1 的发散色阶)
112
+ chart.options({
113
+ type: 'cell',
114
+ data: correlationData, // [{ x: '变量A', y: '变量B', corr: 0.75 }, ...]
115
+ encode: {
116
+ x: 'x',
117
+ y: 'y',
118
+ color: 'corr',
119
+ },
120
+ scale: {
121
+ color: {
122
+ type: 'sequential', // 明确指定为顺序色阶
123
+ palette: 'RdBu', // 发散色阶:红-白-蓝
124
+ domain: [-1, 1], // 固定数值范围
125
+ },
126
+ },
127
+ labels: [
128
+ {
129
+ text: (d) => d.corr.toFixed(2),
130
+ style: { fontSize: 10 },
131
+ },
132
+ ],
133
+ });
134
+ ```
135
+
136
+ ## 日历热力图(GitHub 风格)
137
+
138
+ ```javascript
139
+ // 每天活跃度的日历视图
140
+ chart.options({
141
+ type: 'cell',
142
+ data: dailyData, // [{ date: '2024-01-01', weekday: 'Mon', week: 1, value: 5 }, ...]
143
+ encode: {
144
+ x: 'week', // 第几周(1-53)
145
+ y: 'weekday', // 周几
146
+ color: 'value',
147
+ },
148
+ scale: {
149
+ color: { type: 'sequential', palette: 'Greens', domain: [0, 20] },
150
+ y: {
151
+ domain: ['Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat', 'Sun'],
152
+ },
153
+ },
154
+ style: { inset: 2, radius: 2 },
155
+ axis: {
156
+ y: { title: null },
157
+ x: { title: null, tickCount: 4 },
158
+ },
159
+ });
160
+ ```
161
+
162
+ ## 地形高程热力图
163
+
164
+ ```javascript
165
+ // 模拟地形高程数据
166
+ const terrainData = [];
167
+ for (let x = 0; x <= 50; x += 2) {
168
+ for (let y = 0; y <= 50; y += 2) {
169
+ // 模拟山峰地形:两个山峰的高程分布
170
+ const elevation1 = 100 * Math.exp(-((x - 15) ** 2 + (y - 15) ** 2) / 200);
171
+ const elevation2 = 80 * Math.exp(-((x - 35) ** 2 + (y - 35) ** 2) / 150);
172
+ const elevation = elevation1 + elevation2 + 10; // 基础海拔
173
+ terrainData.push({ x, y, elevation });
174
+ }
175
+ }
176
+
177
+ const chart = new Chart({
178
+ container: 'container',
179
+ autoFit: true,
180
+ });
181
+
182
+ chart.options({
183
+ type: 'cell',
184
+ data: terrainData,
185
+ encode: {
186
+ x: 'x',
187
+ y: 'y',
188
+ color: 'elevation',
189
+ },
190
+ style: {
191
+ stroke: '#333',
192
+ lineWidth: 0.5,
193
+ inset: 0.5,
194
+ },
195
+ scale: {
196
+ color: {
197
+ type: 'sequential',
198
+ palette: 'viridis',
199
+ },
200
+ },
201
+ legend: {
202
+ color: {
203
+ length: 300,
204
+ layout: { justifyContent: 'center' },
205
+ labelFormatter: (value) => `${Math.round(value)}m`,
206
+ },
207
+ },
208
+ tooltip: {
209
+ title: '海拔信息',
210
+ items: [
211
+ { field: 'x', name: '经度' },
212
+ { field: 'y', name: '纬度' },
213
+ {
214
+ field: 'elevation',
215
+ name: '海拔',
216
+ valueFormatter: (value) => `${Math.round(value)}m`,
217
+ },
218
+ ],
219
+ },
220
+ });
221
+
222
+ chart.render();
223
+ ```
224
+
225
+ ## 常见错误与修正
226
+
227
+ ### 错误 1:color 通道缺少 scale 配置导致离散色
228
+ ```javascript
229
+ // ❌ 问题:color 默认使用离散色阶,不适合连续数值
230
+ chart.options({ type: 'cell', encode: { x: 'a', y: 'b', color: 'value' } });
231
+ // value 是连续数值,却被映射到离散颜色
232
+
233
+ // ✅ 正确:指定连续色阶 palette 并明确类型为 sequential
234
+ chart.options({
235
+ type: 'cell',
236
+ encode: { x: 'a', y: 'b', color: 'value' },
237
+ scale: {
238
+ color: {
239
+ type: 'sequential', // 明确指定为顺序色阶
240
+ palette: 'Blues' // 或 'YlOrRd'、'Viridis' 等
241
+ }
242
+ },
243
+ });
244
+ ```
245
+
246
+ ### 错误 2:格子大小不均匀
247
+ ```javascript
248
+ // ❌ 问题:x/y 轴类别数量差异大时格子变形
249
+ // ✅ 解决:设置 Chart 的宽高比接近 x/y 分类数量之比
250
+ const chart = new Chart({
251
+ container: 'container',
252
+ width: xCategories.length * 40, // 每格 40px
253
+ height: yCategories.length * 40,
254
+ });
255
+ ```
256
+
257
+ ### 错误 3:未正确使用 transform.group 导致数据重复或缺失
258
+ ```javascript
259
+ // ❌ 问题:当 x/y 通道存在重复组合时,未使用 group 聚合会导致多个格子重叠或数据丢失
260
+ chart.options({
261
+ type: 'cell',
262
+ data: [
263
+ { day: 1, month: 0, temp: 10 },
264
+ { day: 1, month: 0, temp: 15 }, // 同一天同一月有两个温度记录
265
+ ],
266
+ encode: {
267
+ x: 'day',
268
+ y: 'month',
269
+ color: 'temp'
270
+ }
271
+ });
272
+ // 上述代码可能只显示其中一个值,或出现多个重叠格子
273
+
274
+ // ✅ 正确:使用 transform.group 对重复数据进行聚合(如取最大值、平均值等)
275
+ chart.options({
276
+ type: 'cell',
277
+ data: [
278
+ { day: 1, month: 0, temp: 10 },
279
+ { day: 1, month: 0, temp: 15 },
280
+ ],
281
+ encode: {
282
+ x: 'day',
283
+ y: 'month',
284
+ color: 'temp'
285
+ },
286
+ transform: [{
287
+ type: 'group',
288
+ color: 'max' // 对相同 x/y 组合的数据,取 temp 的最大值
289
+ }]
290
+ });
291
+ ```
292
+
293
+ ### 错误 4:未正确设置 scale.type 为 sequential 导致颜色映射异常
294
+ ```javascript
295
+ // ❌ 问题:color 通道未显式设置 scale.type 为 'sequential',可能导致颜色映射不符合预期
296
+ chart.options({
297
+ type: 'cell',
298
+ encode: { x: 'a', y: 'b', color: 'value' },
299
+ scale: { color: { palette: 'Blues' } } // 仅设置 palette,未设置 type
300
+ });
301
+
302
+ // ✅ 正确:明确指定 scale.type 为 'sequential'
303
+ chart.options({
304
+ type: 'cell',
305
+ encode: { x: 'a', y: 'b', color: 'value' },
306
+ scale: {
307
+ color: {
308
+ type: 'sequential', // 明确指定为顺序色阶
309
+ palette: 'Blues'
310
+ }
311
+ }
312
+ });
313
+ ```
314
+
315
+ ### 错误 5:调色板名称大小写敏感导致找不到调色板
316
+ ```javascript
317
+ // ❌ 问题:调色板名称大小写不匹配,如 'gnBu' 实际应为 'GnBu'
318
+ chart.options({
319
+ type: 'cell',
320
+ data,
321
+ encode: { x: 'day', y: 'month', color: 'temp' },
322
+ scale: {
323
+ color: { type: 'sequential', palette: 'gnBu' } // 小写 g 不符合实际命名
324
+ }
325
+ });
326
+
327
+ // ✅ 正确:使用正确的调色板名称(注意大小写)
328
+ chart.options({
329
+ type: 'cell',
330
+ data,
331
+ encode: { x: 'day', y: 'month', color: 'temp' },
332
+ scale: {
333
+ color: { type: 'sequential', palette: 'GnBu' } // 正确的大写 G
334
+ }
335
+ });
336
+ ```
337
+
338
+ ### 错误 6:数据未定义或引用错误
339
+ ```javascript
340
+ // ❌ 问题:使用了未定义的变量 'data'
341
+ const processedData = data.map(...);
342
+
343
+ // ✅ 正确:确保使用的数据变量已正确定义
344
+ const rawData = [...];
345
+ const processedData = rawData.map(...);
346
+ ```
347
+
348
+ ### 错误 7:动画配置语法错误
349
+ ```javascript
350
+ // ❌ 问题:animate.enter 应为对象而非字符串或其他类型
351
+ chart.options({
352
+ type: 'cell',
353
+ data,
354
+ encode: { x: 'x', y: 'y', color: 'value' },
355
+ animate: 'fadeIn' // 错误的配置方式
356
+ });
357
+
358
+ // ✅ 正确:使用标准的动画配置对象
359
+ chart.options({
360
+ type: 'cell',
361
+ data,
362
+ encode: { x: 'x', y: 'y', color: 'value' },
363
+ animate: {
364
+ enter: {
365
+ type: 'fadeIn',
366
+ duration: 1000
367
+ }
368
+ }
369
+ });
370
+ ```
@@ -0,0 +1,341 @@
1
+ ---
2
+ id: "g2-mark-chord"
3
+ title: "G2 和弦图(Chord Mark)"
4
+ description: |
5
+ 使用 Chord Mark 创建和弦图。和弦图用于展示节点之间的流向关系,
6
+ 常见于贸易流向、迁移数据、资金流动等场景。
7
+
8
+ library: "g2"
9
+ version: "5.x"
10
+ category: "marks"
11
+ tags:
12
+ - "和弦图"
13
+ - "Chord"
14
+ - "关系图"
15
+ - "流向图"
16
+ - "矩阵可视化"
17
+
18
+ related:
19
+ - "g2-mark-sankey"
20
+ - "g2-mark-link"
21
+ - "g2-coord-polar"
22
+
23
+ use_cases:
24
+ - "展示国家/地区间的贸易流向"
25
+ - "可视化人口迁移数据"
26
+ - "分析资金流动关系"
27
+ - "展示部门间的协作关系"
28
+
29
+ anti_patterns:
30
+ - "节点过多(>20个)时可视化效果差"
31
+ - "不适合展示单向简单关系(改用 Sankey)"
32
+ - "不适合展示层级结构数据"
33
+
34
+ difficulty: "intermediate"
35
+ completeness: "full"
36
+ created: "2025-03-26"
37
+ updated: "2025-03-26"
38
+ author: "antv-team"
39
+ source_url: "https://g2.antv.antgroup.com/examples/relationship/chord"
40
+ ---
41
+
42
+ ## 核心概念
43
+
44
+ Chord Mark 是 G2 v5 中用于绘制和弦图的复合标记:
45
+ - **节点(Node)**:圆弧上的多边形,表示实体
46
+ - **连线(Link)**:连接节点的带状区域,表示流向关系
47
+ - **布局**:自动计算节点位置和连线形状
48
+
49
+ **关键配置:**
50
+ - `encode.source`:边的起始节点字段
51
+ - `encode.target`:边的目标节点字段
52
+ - `encode.value`:边的权重字段
53
+ - `layout`:布局配置(节点宽度、间距等)
54
+
55
+ ## 最小可运行示例
56
+
57
+ ```javascript
58
+ import { Chart } from '@antv/g2';
59
+
60
+ const chart = new Chart({
61
+ container: 'container',
62
+ width: 640,
63
+ height: 480,
64
+ });
65
+
66
+ // 和弦图数据:节点 + 边
67
+ const data = {
68
+ nodes: [
69
+ { key: 'A', name: '产品A' },
70
+ { key: 'B', name: '产品B' },
71
+ { key: 'C', name: '产品C' },
72
+ ],
73
+ links: [
74
+ { source: 'A', target: 'B', value: 100 },
75
+ { source: 'B', target: 'C', value: 80 },
76
+ { source: 'C', target: 'A', value: 60 },
77
+ ],
78
+ };
79
+
80
+ chart.options({
81
+ type: 'chord',
82
+ data: {
83
+ value: data
84
+ },
85
+ encode: {
86
+ source: 'source',
87
+ target: 'target',
88
+ value: 'value',
89
+ },
90
+ });
91
+
92
+ chart.render();
93
+ ```
94
+
95
+ ## 常用变体
96
+
97
+ ### 带节点标签
98
+
99
+ ```javascript
100
+ chart.options({
101
+ type: 'chord',
102
+ data: {
103
+ value: data
104
+ },
105
+ encode: {
106
+ source: 'source',
107
+ target: 'target',
108
+ value: 'value',
109
+ nodeKey: 'key', // 节点标识字段
110
+ },
111
+ nodeLabels: [
112
+ { text: 'name', position: 'outside', fontSize: 12 },
113
+ ],
114
+ });
115
+ ```
116
+
117
+ ### 自定义布局
118
+
119
+ ```javascript
120
+ chart.options({
121
+ type: 'chord',
122
+ data: {
123
+ value: data
124
+ },
125
+ encode: {
126
+ source: 'source',
127
+ target: 'target',
128
+ value: 'value',
129
+ },
130
+ layout: {
131
+ nodeWidthRatio: 0.05, // 节点宽度比例 (0, 1)
132
+ nodePaddingRatio: 0.1, // 节点间距比例 [0, 1)
133
+ sortBy: 'weight', // 排序方式: 'id' | 'weight' | 'frequency' | null
134
+ },
135
+ });
136
+ ```
137
+
138
+ ### 自定义样式
139
+
140
+ ```javascript
141
+ chart.options({
142
+ type: 'chord',
143
+ data: {
144
+ value: data
145
+ },
146
+ encode: {
147
+ source: 'source',
148
+ target: 'target',
149
+ value: 'value',
150
+ nodeColor: 'key', // 节点颜色映射
151
+ linkColor: 'source', // 连线颜色映射
152
+ },
153
+ style: {
154
+ node: {
155
+ opacity: 1,
156
+ lineWidth: 1,
157
+ },
158
+ link: {
159
+ opacity: 0.5,
160
+ lineWidth: 1,
161
+ },
162
+ },
163
+ });
164
+ ```
165
+
166
+ ### 带 Tooltip
167
+
168
+ ```javascript
169
+ chart.options({
170
+ type: 'chord',
171
+ data: {
172
+ value: data
173
+ },
174
+ encode: {
175
+ source: 'source',
176
+ target: 'target',
177
+ value: 'value',
178
+ },
179
+ tooltip: {
180
+ node: {
181
+ title: '',
182
+ items: [(d) => ({ name: d.key, value: d.value })],
183
+ },
184
+ link: {
185
+ title: '',
186
+ items: [(d) => ({ name: `${d.source} → ${d.target}`, value: d.value })],
187
+ },
188
+ },
189
+ });
190
+ ```
191
+
192
+ ## Spec 完整结构速查
193
+
194
+ ```javascript
195
+ chart.options({
196
+ type: 'chord',
197
+ data: {
198
+ // 数据(nodes + links 结构)
199
+ value: {
200
+ nodes: [...],
201
+ links: [...],
202
+ },
203
+ },
204
+ // 通道映射
205
+ encode: {
206
+ source: 'source', // 边的起始节点
207
+ target: 'target', // 边的目标节点
208
+ value: 'value', // 边的权重
209
+ nodeKey: 'key', // 节点标识字段
210
+ nodeColor: 'key', // 节点颜色
211
+ linkColor: 'source', // 连线颜色
212
+ },
213
+
214
+ // 布局配置
215
+ layout: {
216
+ nodeWidthRatio: 0.05,
217
+ nodePaddingRatio: 0.1,
218
+ sortBy: null, // 'id' | 'weight' | 'frequency' | function
219
+ },
220
+
221
+ // 样式
222
+ style: {
223
+ node: { opacity: 1, lineWidth: 1 },
224
+ link: { opacity: 0.5, lineWidth: 1 },
225
+ label: { fontSize: 10 },
226
+ },
227
+
228
+ // 标签
229
+ nodeLabels: [{ text: 'name', position: 'outside' }],
230
+ linkLabels: [],
231
+
232
+ // Tooltip
233
+ tooltip: { ... },
234
+
235
+ // 动画
236
+ animate: {
237
+ node: { enter: { type: 'fadeIn' } },
238
+ link: { enter: { type: 'fadeIn' } },
239
+ },
240
+ });
241
+ ```
242
+
243
+ ## 完整类型参考
244
+
245
+ ```typescript
246
+ interface ChordSpec {
247
+ type: 'chord';
248
+ data: {
249
+ value: {
250
+ nodes: Array<{ key: string; [key: string]: any }>;
251
+ links: Array<{ source: string; target: string; value: number; [key: string]: any }>;
252
+ };
253
+ }
254
+ encode?: {
255
+ source?: string;
256
+ target?: string;
257
+ value?: string;
258
+ nodeKey?: string;
259
+ nodeColor?: string;
260
+ linkColor?: string;
261
+ };
262
+ layout?: {
263
+ nodeWidthRatio?: number; // (0, 1), default: 0.05
264
+ nodePaddingRatio?: number; // [0, 1), default: 0.1
265
+ sortBy?: 'id' | 'weight' | 'frequency' | ((data: any) => any) | null;
266
+ };
267
+ style?: {
268
+ node?: { opacity?: number; lineWidth?: number; fill?: string };
269
+ link?: { opacity?: number; lineWidth?: number; fill?: string };
270
+ label?: { fontSize?: number; fill?: string };
271
+ };
272
+ nodeLabels?: LabelOption[];
273
+ linkLabels?: LabelOption[];
274
+ tooltip?: TooltipOption;
275
+ animate?: AnimateOption;
276
+ }
277
+ ```
278
+
279
+ ## 常见错误与修正
280
+
281
+ ### 错误 1:数据格式不正确
282
+
283
+ ```javascript
284
+ // ❌ 错误:使用扁平数组
285
+ chart.options({
286
+ type: 'chord',
287
+ data: [
288
+ { source: 'A', target: 'B', value: 100 },
289
+ ],
290
+ });
291
+
292
+ // ✅ 正确:使用 nodes + links 结构
293
+ chart.options({
294
+ type: 'chord',
295
+ data: {
296
+ value: {
297
+ nodes: [{ key: 'A' }, { key: 'B' }],
298
+ links: [{ source: 'A', target: 'B', value: 100 }],
299
+ }
300
+ },
301
+ encode: { source: 'source', target: 'target', value: 'value' },
302
+ });
303
+ ```
304
+
305
+ ### 错误 2:节点 key 不匹配
306
+
307
+ ```javascript
308
+ // ❌ 错误:links 中的 source/target 与 nodes 的 key 不匹配
309
+ const data = {
310
+ nodes: [{ key: 'ProductA' }],
311
+ links: [{ source: 'A', target: 'B', value: 100 }], // 'A' ≠ 'ProductA'
312
+ };
313
+
314
+ // ✅ 正确:确保 key 一致
315
+ const data = {
316
+ nodes: [{ key: 'A' }, { key: 'B' }],
317
+ links: [{ source: 'A', target: 'B', value: 100 }],
318
+ };
319
+ ```
320
+
321
+ ### 错误 3:缺少 value 编码
322
+
323
+ ```javascript
324
+ // ❌ 错误:没有指定权重字段
325
+ chart.options({
326
+ type: 'chord',
327
+ data: {
328
+ value: data
329
+ },
330
+ encode: { source: 'source', target: 'target' },
331
+ });
332
+
333
+ // ✅ 正确:指定 value 字段
334
+ chart.options({
335
+ type: 'chord',
336
+ data: {
337
+ value: data
338
+ },
339
+ encode: { source: 'source', target: 'target', value: 'value' },
340
+ });
341
+ ```