@invinite-org/chartlang-adapter-kit 1.4.0 → 1.6.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (71) hide show
  1. package/CHANGELOG.md +158 -0
  2. package/dist/base/bufferingAdapter.d.ts +1 -0
  3. package/dist/base/bufferingAdapter.d.ts.map +1 -1
  4. package/dist/base/bufferingAdapter.js +1 -0
  5. package/dist/base/bufferingAdapter.js.map +1 -1
  6. package/dist/base/passThroughAdapter.d.ts +1 -0
  7. package/dist/base/passThroughAdapter.d.ts.map +1 -1
  8. package/dist/base/passThroughAdapter.js +1 -0
  9. package/dist/base/passThroughAdapter.js.map +1 -1
  10. package/dist/canvas/glyphs.d.ts +209 -0
  11. package/dist/canvas/glyphs.d.ts.map +1 -0
  12. package/dist/canvas/glyphs.js +219 -0
  13. package/dist/canvas/glyphs.js.map +1 -0
  14. package/dist/canvas/index.d.ts +2 -0
  15. package/dist/canvas/index.d.ts.map +1 -1
  16. package/dist/canvas/index.js +1 -0
  17. package/dist/canvas/index.js.map +1 -1
  18. package/dist/canvas/mockContext.d.ts +42 -0
  19. package/dist/canvas/mockContext.d.ts.map +1 -1
  20. package/dist/canvas/mockContext.js +50 -0
  21. package/dist/canvas/mockContext.js.map +1 -1
  22. package/dist/canvas/renderCtx.d.ts +6 -0
  23. package/dist/canvas/renderCtx.d.ts.map +1 -1
  24. package/dist/canvas/renderCtx.js.map +1 -1
  25. package/dist/capabilities/capabilities.d.ts +16 -0
  26. package/dist/capabilities/capabilities.d.ts.map +1 -1
  27. package/dist/capabilities/capabilities.js +16 -0
  28. package/dist/capabilities/capabilities.js.map +1 -1
  29. package/dist/defineAdapter.d.ts +2 -0
  30. package/dist/defineAdapter.d.ts.map +1 -1
  31. package/dist/defineAdapter.js +1 -0
  32. package/dist/defineAdapter.js.map +1 -1
  33. package/dist/geometry/index.d.ts +3 -0
  34. package/dist/geometry/index.d.ts.map +1 -1
  35. package/dist/geometry/index.js +2 -0
  36. package/dist/geometry/index.js.map +1 -1
  37. package/dist/geometry/renderOrder.d.ts +52 -0
  38. package/dist/geometry/renderOrder.d.ts.map +1 -0
  39. package/dist/geometry/renderOrder.js +35 -0
  40. package/dist/geometry/renderOrder.js.map +1 -0
  41. package/dist/geometry/shift.d.ts +117 -0
  42. package/dist/geometry/shift.d.ts.map +1 -0
  43. package/dist/geometry/shift.js +141 -0
  44. package/dist/geometry/shift.js.map +1 -0
  45. package/dist/index.d.ts +5 -2
  46. package/dist/index.d.ts.map +1 -1
  47. package/dist/index.js +3 -1
  48. package/dist/index.js.map +1 -1
  49. package/dist/interaction/domWiring.d.ts +90 -0
  50. package/dist/interaction/domWiring.d.ts.map +1 -0
  51. package/dist/interaction/domWiring.js +113 -0
  52. package/dist/interaction/domWiring.js.map +1 -0
  53. package/dist/interaction/index.d.ts +5 -0
  54. package/dist/interaction/index.d.ts.map +1 -0
  55. package/dist/interaction/index.js +5 -0
  56. package/dist/interaction/index.js.map +1 -0
  57. package/dist/interaction/viewController.d.ts +132 -0
  58. package/dist/interaction/viewController.d.ts.map +1 -0
  59. package/dist/interaction/viewController.js +133 -0
  60. package/dist/interaction/viewController.js.map +1 -0
  61. package/dist/mocks/mockCandleSource.d.ts +12 -0
  62. package/dist/mocks/mockCandleSource.d.ts.map +1 -1
  63. package/dist/mocks/mockCandleSource.js +13 -4
  64. package/dist/mocks/mockCandleSource.js.map +1 -1
  65. package/dist/types.d.ts +91 -8
  66. package/dist/types.d.ts.map +1 -1
  67. package/dist/types.js.map +1 -1
  68. package/dist/validation/validateEmission.d.ts.map +1 -1
  69. package/dist/validation/validateEmission.js +10 -0
  70. package/dist/validation/validateEmission.js.map +1 -1
  71. package/package.json +2 -2
@@ -89,6 +89,22 @@ export declare const capabilities: {
89
89
  multiTimeframe(enabled: boolean): {
90
90
  multiTimeframe: boolean;
91
91
  };
92
+ /**
93
+ * Declares whether the adapter can deliver candle streams for a symbol
94
+ * other than the chart's own. Independent of `multiTimeframe` — setting one
95
+ * does not imply the other.
96
+ *
97
+ * @since 1.6
98
+ * @stable
99
+ * @example
100
+ * import { capabilities } from "@invinite-org/chartlang-adapter-kit";
101
+ *
102
+ * const partial = capabilities.multiSymbol(false);
103
+ * void partial;
104
+ */
105
+ multiSymbol(enabled: boolean): {
106
+ multiSymbol: boolean;
107
+ };
92
108
  /**
93
109
  * Declares the maximum supported sub-pane count for one script.
94
110
  *
@@ -1 +1 @@
1
- {"version":3,"file":"capabilities.d.ts","sourceRoot":"","sources":["../../src/capabilities/capabilities.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,aAAa,EAAE,kBAAkB,EAAE,MAAM,8BAA8B,CAAC;AAEtF,OAAO,KAAK,EAAE,YAAY,EAAE,WAAW,EAAE,QAAQ,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAErF;;;;;;;;;;;GAWG;AACH,eAAO,MAAM,kBAAkB,EAAE,aAAa,CAAC,QAAQ,CAiBrD,CAAC;AAEH;;;;;;;;;;;;;;;;;GAiBG;AACH,eAAO,MAAM,YAAY;YACb,WAAW,CAAC,QAAQ,CAAC;gBAGjB,WAAW,CAAC,QAAQ,CAAC;sBAGf,WAAW,CAAC,QAAQ,CAAC;gBAG3B,WAAW,CAAC,QAAQ,CAAC;IAGjC,sDAAsD;iBACzC,WAAW,CAAC,QAAQ,CAAC;IAGlC,wDAAwD;YAChD,WAAW,CAAC,QAAQ,CAAC;IAG7B;6BACyB;kBACX,WAAW,CAAC,QAAQ,CAAC;IAGnC,uDAAuD;aAC9C,WAAW,CAAC,QAAQ,CAAC;IAG9B,4DAA4D;cAClD,WAAW,CAAC,QAAQ,CAAC;IAG/B;;;;;6BAKyB;sBACP,WAAW,CAAC,QAAQ,CAAC;IAYvC;6BACyB;sBACP,WAAW,CAAC,QAAQ,CAAC;wBAGnB,aAAa,CAAC,YAAY,CAAC,GAAG,WAAW,CAAC,YAAY,CAAC;UAGrE,CAAC,WAAW,aAAa,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,GAAG,WAAW,CAAC,CAAC,CAAC;IAShE;;;;;;;;;;;;OAYG;oBACa,aAAa,CAAC,kBAAkB,CAAC,GAAG;QAChD,SAAS,EAAE,aAAa,CAAC,kBAAkB,CAAC,CAAC;KAChD;IAGD;;;;;;;;;;OAUG;4BACqB,OAAO,GAAG;QAAE,cAAc,EAAE,OAAO,CAAA;KAAE;IAG7D;;;;;;;;;;OAUG;kBACW,MAAM,GAAG;QAAE,QAAQ,EAAE,MAAM,CAAA;KAAE;IAG3C;;;;;;;;;;OAUG;0BACmB,aAAa,CAAC,YAAY,CAAC,GAAG;QAChD,aAAa,EAAE,WAAW,CAAC,YAAY,CAAC,CAAC;KAC5C;IAGD;;;;;;;;;;;;OAYG;iCAC0B,aAAa,GAAG;QAAE,oBAAoB,EAAE,aAAa,CAAA;KAAE;IAGpF;;;;;;;;;;OAUG;6BACsB,OAAO,GAAG;QAAE,eAAe,EAAE,OAAO,CAAA;KAAE;IAG/D;;;;;;;;;;OAUG;kBACW,OAAO,GAAG;QAAE,IAAI,EAAE,OAAO,CAAA;KAAE;IAczC,sDAAsD;gBAC1C,WAAW,CAAC,WAAW,CAAC;IAGpC,iEAAiE;0BAC3C,WAAW,CAAC,WAAW,CAAC;IAG9C,gEAAgE;yBAC3C,WAAW,CAAC,WAAW,CAAC;IAG7C,+DAA+D;wBAC3C,WAAW,CAAC,WAAW,CAAC;IAG5C,4DAA4D;qBAC3C,WAAW,CAAC,WAAW,CAAC;IAGzC,6DAA6D;sBAC3C,WAAW,CAAC,WAAW,CAAC;IAG1C,2DAA2D;qBAC1C,WAAW,CAAC,WAAW,CAAC;IAGzC,mEAAmE;4BAC3C,WAAW,CAAC,WAAW,CAAC;IAGhD,0DAA0D;oBAC1C,WAAW,CAAC,WAAW,CAAC;IAGxC,0DAA0D;oBAC1C,WAAW,CAAC,WAAW,CAAC;IAGxC,wDAAwD;kBAC1C,WAAW,CAAC,WAAW,CAAC;IAGtC,yDAAyD;mBAC1C,WAAW,CAAC,WAAW,CAAC;IAGvC,sDAAsD;gBAC1C,WAAW,CAAC,WAAW,CAAC;IAGpC,oEAAoE;uBACjD,WAAW,CAAC,WAAW,CAAC;IAG3C,wDAAwD;kBAC1C,WAAW,CAAC,WAAW,CAAC;IAGtC,qDAAqD;eAC1C,WAAW,CAAC,WAAW,CAAC;IAGnC,uDAAuD;iBAC1C,WAAW,CAAC,WAAW,CAAC;IAGrC,8DAA8D;uBAC3C,WAAW,CAAC,WAAW,CAAC;IAG3C,qDAAqD;eAC1C,WAAW,CAAC,WAAW,CAAC;IAGnC,6DAA6D;uBAC1C,WAAW,CAAC,WAAW,CAAC;IAG3C,uDAAuD;iBAC1C,WAAW,CAAC,WAAW,CAAC;IAGrC,sDAAsD;gBAC1C,WAAW,CAAC,WAAW,CAAC;IAGpC,uDAAuD;iBAC1C,WAAW,CAAC,WAAW,CAAC;IAGrC,8DAA8D;uBAC3C,WAAW,CAAC,WAAW,CAAC;IAG3C,+DAA+D;uBAC5C,WAAW,CAAC,WAAW,CAAC;IAG3C,iEAAiE;yBAC5C,WAAW,CAAC,WAAW,CAAC;IAG7C,+DAA+D;wBAC3C,WAAW,CAAC,WAAW,CAAC;IAG5C,iEAAiE;yBAC5C,WAAW,CAAC,WAAW,CAAC;IAG7C,kEAAkE;2BAC3C,WAAW,CAAC,WAAW,CAAC;IAG/C,kEAAkE;2BAC3C,WAAW,CAAC,WAAW,CAAC;IAG/C,iEAAiE;0BAC3C,WAAW,CAAC,WAAW,CAAC;IAG9C,qEAAqE;6BAC5C,WAAW,CAAC,WAAW,CAAC;IAGjD,6DAA6D;sBAC3C,WAAW,CAAC,WAAW,CAAC;IAG1C,+DAA+D;uBAC5C,WAAW,CAAC,WAAW,CAAC;IAG3C,2DAA2D;oBAC3C,WAAW,CAAC,WAAW,CAAC;IAGxC,+DAA+D;uBAC5C,WAAW,CAAC,WAAW,CAAC;IAG3C,gEAAgE;wBAC5C,WAAW,CAAC,WAAW,CAAC;IAG5C,4DAA4D;qBAC3C,WAAW,CAAC,WAAW,CAAC;IAGzC,6DAA6D;sBAC3C,WAAW,CAAC,WAAW,CAAC;IAG1C,gEAAgE;wBAC5C,WAAW,CAAC,WAAW,CAAC;IAG5C,0DAA0D;mBAC3C,WAAW,CAAC,WAAW,CAAC;IAGvC,mEAAmE;2BAC5C,WAAW,CAAC,WAAW,CAAC;IAG/C,6DAA6D;sBAC3C,WAAW,CAAC,WAAW,CAAC;IAG1C,0DAA0D;mBAC3C,WAAW,CAAC,WAAW,CAAC;IAGvC,2DAA2D;qBAC1C,WAAW,CAAC,WAAW,CAAC;IAGzC,0DAA0D;oBAC1C,WAAW,CAAC,WAAW,CAAC;IAGxC,+DAA+D;wBAC3C,WAAW,CAAC,WAAW,CAAC;IAG5C,gEAAgE;yBAC3C,WAAW,CAAC,WAAW,CAAC;IAG7C,oEAAoE;4BAC5C,WAAW,CAAC,WAAW,CAAC;IAGhD,8DAA8D;uBAC3C,WAAW,CAAC,WAAW,CAAC;IAG3C,kEAAkE;2BAC3C,WAAW,CAAC,WAAW,CAAC;IAG/C,sEAAsE;8BAC5C,WAAW,CAAC,WAAW,CAAC;IAGlD,sEAAsE;8BAC5C,WAAW,CAAC,WAAW,CAAC;IAGlD,yEAAyE;iCAC5C,WAAW,CAAC,WAAW,CAAC;IAGrD,uEAAuE;+BAC5C,WAAW,CAAC,WAAW,CAAC;IAGnD,sEAAsE;8BAC5C,WAAW,CAAC,WAAW,CAAC;IAGlD,sEAAsE;8BAC5C,WAAW,CAAC,WAAW,CAAC;IAGlD,8DAA8D;uBAC3C,WAAW,CAAC,WAAW,CAAC;IAG3C,6DAA6D;sBAC3C,WAAW,CAAC,WAAW,CAAC;IAG1C,2DAA2D;oBAC3C,WAAW,CAAC,WAAW,CAAC;IAGxC,uDAAuD;iBAC1C,WAAW,CAAC,WAAW,CAAC;IAGrC,uDAAuD;iBAC1C,WAAW,CAAC,WAAW,CAAC;IAGrC,uDAAuD;iBAC1C,WAAW,CAAC,WAAW,CAAC;IAWrC,yDAAyD;uBACtC,WAAW,CAAC,WAAW,CAAC;IAU3C;;;;;;;;;OASG;sBACe,WAAW,CAAC,WAAW,CAAC;IAa1C,oDAAoD;wBAChC,WAAW,CAAC,WAAW,CAAC;IAG5C,uDAAuD;2BAChC,WAAW,CAAC,WAAW,CAAC;IAG/C,yDAAyD;6BAChC,WAAW,CAAC,WAAW,CAAC;IASjD,sDAAsD;0BAChC,WAAW,CAAC,WAAW,CAAC;IAQ9C,yDAAyD;sBACvC,WAAW,CAAC,WAAW,CAAC;IAc1C,mDAAmD;uBAChC,WAAW,CAAC,WAAW,CAAC;IAG3C,wDAAwD;4BAChC,WAAW,CAAC,WAAW,CAAC;IAGhD,+DAA+D;0BACzC,WAAW,CAAC,WAAW,CAAC;IAU9C,2DAA2D;0BACrC,WAAW,CAAC,WAAW,CAAC;IAS9C,oDAAoD;wBAChC,WAAW,CAAC,WAAW,CAAC;IAG5C,wDAAwD;4BAChC,WAAW,CAAC,WAAW,CAAC;IAIhD;;;;;;;;OAQG;yBACkB,WAAW,CAAC,WAAW,CAAC;CAGhD,CAAC"}
1
+ {"version":3,"file":"capabilities.d.ts","sourceRoot":"","sources":["../../src/capabilities/capabilities.ts"],"names":[],"mappings":"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"}
@@ -148,6 +148,22 @@ export const capabilities = {
148
148
  multiTimeframe(enabled) {
149
149
  return { multiTimeframe: enabled };
150
150
  },
151
+ /**
152
+ * Declares whether the adapter can deliver candle streams for a symbol
153
+ * other than the chart's own. Independent of `multiTimeframe` — setting one
154
+ * does not imply the other.
155
+ *
156
+ * @since 1.6
157
+ * @stable
158
+ * @example
159
+ * import { capabilities } from "@invinite-org/chartlang-adapter-kit";
160
+ *
161
+ * const partial = capabilities.multiSymbol(false);
162
+ * void partial;
163
+ */
164
+ multiSymbol(enabled) {
165
+ return { multiSymbol: enabled };
166
+ },
151
167
  /**
152
168
  * Declares the maximum supported sub-pane count for one script.
153
169
  *
@@ -1 +1 @@
1
- {"version":3,"file":"capabilities.js","sourceRoot":"","sources":["../../src/capabilities/capabilities.ts"],"names":[],"mappings":"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","sourcesContent":["// Copyright (c) 2026 Invinite. Licensed under the MIT License.\n// See the LICENSE file in the repo root for full license text.\n\nimport { DRAWING_KINDS } from \"@invinite-org/chartlang-core\";\n\nimport type { DrawingCounts, IntervalDescriptor } from \"@invinite-org/chartlang-core\";\n\nimport type { AlertChannel, DrawingKind, PlotKind, SymInfoField } from \"../types.js\";\n\n/**\n * Canonical Phase-5 plot-kind set. Adapters that can render the full\n * script-facing plot inventory can pass this directly to\n * `Capabilities.plots`.\n *\n * @since 0.5\n * @stable\n * @example\n * import { PHASE_5_PLOT_KINDS } from \"@invinite-org/chartlang-adapter-kit\";\n * const plots = new Set(PHASE_5_PLOT_KINDS);\n * void plots;\n */\nexport const PHASE_5_PLOT_KINDS: ReadonlyArray<PlotKind> = Object.freeze([\n \"line\",\n \"step-line\",\n \"horizontal-line\",\n \"histogram\",\n \"area\",\n \"filled-band\",\n \"label\",\n \"marker\",\n \"shape\",\n \"character\",\n \"arrow\",\n \"candle-override\",\n \"bar-override\",\n \"bg-color\",\n \"bar-color\",\n \"horizontal-histogram\",\n]);\n\n/**\n * Helpers that assemble the `ReadonlySet` pieces of a `Capabilities`\n * bag. Phase 1 shipped the three line variants + an alert-channel\n * builder + a generic `union` combinator. Phase 2 adds one builder per\n * new `PlotKind` (`histogram`, `area`, `filledBand`, `label`,\n * `marker`) plus `allPhase2Plots()` — the union of every Phase-1 +\n * Phase-2 kind.\n *\n * @since 0.1\n * @stable\n * @example\n * import { capabilities } from \"@invinite-org/chartlang-adapter-kit\";\n *\n * const plots = capabilities.allPhase2Plots();\n * const alerts = capabilities.alerts(\"toast\", \"log\");\n * const merged = capabilities.union(plots, capabilities.label());\n * void merged;\n */\nexport const capabilities = {\n line(): ReadonlySet<PlotKind> {\n return new Set<PlotKind>([\"line\"]);\n },\n stepLine(): ReadonlySet<PlotKind> {\n return new Set<PlotKind>([\"step-line\"]);\n },\n horizontalLine(): ReadonlySet<PlotKind> {\n return new Set<PlotKind>([\"horizontal-line\"]);\n },\n allLines(): ReadonlySet<PlotKind> {\n return new Set<PlotKind>([\"line\", \"step-line\", \"horizontal-line\"]);\n },\n /** Phase-2 histogram plot kind. @since 0.2 @stable */\n histogram(): ReadonlySet<PlotKind> {\n return new Set<PlotKind>([\"histogram\"]);\n },\n /** Phase-2 filled-area plot kind. @since 0.2 @stable */\n area(): ReadonlySet<PlotKind> {\n return new Set<PlotKind>([\"area\"]);\n },\n /** Phase-2 filled-band (between two polylines) plot kind.\n * @since 0.2 @stable */\n filledBand(): ReadonlySet<PlotKind> {\n return new Set<PlotKind>([\"filled-band\"]);\n },\n /** Phase-2 text-label plot kind. @since 0.2 @stable */\n label(): ReadonlySet<PlotKind> {\n return new Set<PlotKind>([\"label\"]);\n },\n /** Phase-2 discrete-marker plot kind. @since 0.2 @stable */\n marker(): ReadonlySet<PlotKind> {\n return new Set<PlotKind>([\"marker\"]);\n },\n /** Union of every plot kind that ships through Phase 2 — `line`,\n * `step-line`, `horizontal-line`, `histogram`, `area`,\n * `filled-band`, `label`, `marker`. Phase-5 kinds are deliberately\n * excluded; the bundled `capabilities.union(...)` combinator\n * composes additional sets when needed.\n * @since 0.2 @stable */\n allPhase2Plots(): ReadonlySet<PlotKind> {\n return new Set<PlotKind>([\n \"line\",\n \"step-line\",\n \"horizontal-line\",\n \"histogram\",\n \"area\",\n \"filled-band\",\n \"label\",\n \"marker\",\n ]);\n },\n /** Union of every plot kind that ships through Phase 5.\n * @since 0.5 @stable */\n allPhase5Plots(): ReadonlySet<PlotKind> {\n return new Set<PlotKind>(PHASE_5_PLOT_KINDS);\n },\n alerts(...channels: ReadonlyArray<AlertChannel>): ReadonlySet<AlertChannel> {\n return new Set<AlertChannel>(channels);\n },\n union<T>(...sets: ReadonlyArray<ReadonlySet<T>>): ReadonlySet<T> {\n const out = new Set<T>();\n for (const s of sets) {\n for (const v of s) {\n out.add(v);\n }\n }\n return out;\n },\n /**\n * Timeframe descriptors this adapter can deliver, preserving picker order.\n *\n * @since 0.4\n * @stable\n * @example\n * import { capabilities } from \"@invinite-org/chartlang-adapter-kit\";\n *\n * const partial = capabilities.intervals([\n * { value: \"1D\", label: \"1 day\", group: \"daily\" },\n * ]);\n * void partial;\n */\n intervals(list: ReadonlyArray<IntervalDescriptor>): {\n intervals: ReadonlyArray<IntervalDescriptor>;\n } {\n return { intervals: Object.freeze(list.slice()) };\n },\n /**\n * Declares whether the adapter can deliver secondary candle streams.\n *\n * @since 0.4\n * @stable\n * @example\n * import { capabilities } from \"@invinite-org/chartlang-adapter-kit\";\n *\n * const partial = capabilities.multiTimeframe(false);\n * void partial;\n */\n multiTimeframe(enabled: boolean): { multiTimeframe: boolean } {\n return { multiTimeframe: enabled };\n },\n /**\n * Declares the maximum supported sub-pane count for one script.\n *\n * @since 0.4\n * @stable\n * @example\n * import { capabilities } from \"@invinite-org/chartlang-adapter-kit\";\n *\n * const partial = capabilities.subPanes(Number.MAX_SAFE_INTEGER);\n * void partial;\n */\n subPanes(max: number): { subPanes: number } {\n return { subPanes: max };\n },\n /**\n * Declares which `syminfo.*` fields this adapter populates.\n *\n * @since 0.4\n * @stable\n * @example\n * import { capabilities } from \"@invinite-org/chartlang-adapter-kit\";\n *\n * const partial = capabilities.symInfoFields([\"ticker\", \"mintick\"]);\n * void partial;\n */\n symInfoFields(fields: ReadonlyArray<SymInfoField>): {\n symInfoFields: ReadonlySet<SymInfoField>;\n } {\n return { symInfoFields: new Set(fields) };\n },\n /**\n * Declares the adapter's per-script drawing-emission budget.\n *\n * @since 0.4\n * @stable\n * @example\n * import { capabilities } from \"@invinite-org/chartlang-adapter-kit\";\n *\n * const partial = capabilities.maxDrawingsPerScript({\n * lines: 50, labels: 50, boxes: 50, polylines: 50, other: 50,\n * });\n * void partial;\n */\n maxDrawingsPerScript(counts: DrawingCounts): { maxDrawingsPerScript: DrawingCounts } {\n return { maxDrawingsPerScript: Object.freeze({ ...counts }) };\n },\n /**\n * Declares whether user-wired alert conditions are supported.\n *\n * @since 0.4\n * @stable\n * @example\n * import { capabilities } from \"@invinite-org/chartlang-adapter-kit\";\n *\n * const partial = capabilities.alertConditions(false);\n * void partial;\n */\n alertConditions(enabled: boolean): { alertConditions: boolean } {\n return { alertConditions: enabled };\n },\n /**\n * Declares whether runtime log messages are rendered by the adapter.\n *\n * @since 0.4\n * @stable\n * @example\n * import { capabilities } from \"@invinite-org/chartlang-adapter-kit\";\n *\n * const partial = capabilities.logs(false);\n * void partial;\n */\n logs(enabled: boolean): { logs: boolean } {\n return { logs: enabled };\n },\n\n // ------------------------------------------------------------\n // Phase 3 — per-kind drawing builders (62, incl. the Phase-2\n // `fill-between` ribbon). Each returns a\n // single-element `Set<DrawingKind>` so adapters can compose via\n // `capabilities.union(...)`. The 13 category-group builders +\n // `allPhase3Drawings()` below are the canonical user-facing\n // surface; per-kind builders exist for precision opt-in.\n // @since 0.3 @stable\n // ------------------------------------------------------------\n\n /** Phase-3 `line` drawing kind. @since 0.3 @stable */\n drawLine(): ReadonlySet<DrawingKind> {\n return new Set<DrawingKind>([\"line\"]);\n },\n /** Phase-3 `horizontal-line` drawing kind. @since 0.3 @stable */\n drawHorizontalLine(): ReadonlySet<DrawingKind> {\n return new Set<DrawingKind>([\"horizontal-line\"]);\n },\n /** Phase-3 `horizontal-ray` drawing kind. @since 0.3 @stable */\n drawHorizontalRay(): ReadonlySet<DrawingKind> {\n return new Set<DrawingKind>([\"horizontal-ray\"]);\n },\n /** Phase-3 `vertical-line` drawing kind. @since 0.3 @stable */\n drawVerticalLine(): ReadonlySet<DrawingKind> {\n return new Set<DrawingKind>([\"vertical-line\"]);\n },\n /** Phase-3 `cross-line` drawing kind. @since 0.3 @stable */\n drawCrossLine(): ReadonlySet<DrawingKind> {\n return new Set<DrawingKind>([\"cross-line\"]);\n },\n /** Phase-3 `trend-angle` drawing kind. @since 0.3 @stable */\n drawTrendAngle(): ReadonlySet<DrawingKind> {\n return new Set<DrawingKind>([\"trend-angle\"]);\n },\n /** Phase-3 `rectangle` drawing kind. @since 0.3 @stable */\n drawRectangle(): ReadonlySet<DrawingKind> {\n return new Set<DrawingKind>([\"rectangle\"]);\n },\n /** Phase-3 `rotated-rectangle` drawing kind. @since 0.3 @stable */\n drawRotatedRectangle(): ReadonlySet<DrawingKind> {\n return new Set<DrawingKind>([\"rotated-rectangle\"]);\n },\n /** Phase-3 `triangle` drawing kind. @since 0.3 @stable */\n drawTriangle(): ReadonlySet<DrawingKind> {\n return new Set<DrawingKind>([\"triangle\"]);\n },\n /** Phase-3 `polyline` drawing kind. @since 0.3 @stable */\n drawPolyline(): ReadonlySet<DrawingKind> {\n return new Set<DrawingKind>([\"polyline\"]);\n },\n /** Phase-3 `circle` drawing kind. @since 0.3 @stable */\n drawCircle(): ReadonlySet<DrawingKind> {\n return new Set<DrawingKind>([\"circle\"]);\n },\n /** Phase-3 `ellipse` drawing kind. @since 0.3 @stable */\n drawEllipse(): ReadonlySet<DrawingKind> {\n return new Set<DrawingKind>([\"ellipse\"]);\n },\n /** Phase-3 `path` drawing kind. @since 0.3 @stable */\n drawPath(): ReadonlySet<DrawingKind> {\n return new Set<DrawingKind>([\"path\"]);\n },\n /** `fill-between` filled-ribbon drawing kind. @since 0.4 @stable */\n drawFillBetween(): ReadonlySet<DrawingKind> {\n return new Set<DrawingKind>([\"fill-between\"]);\n },\n /** Phase-3 `marker` drawing kind. @since 0.3 @stable */\n drawMarker(): ReadonlySet<DrawingKind> {\n return new Set<DrawingKind>([\"marker\"]);\n },\n /** Phase-3 `arc` drawing kind. @since 0.3 @stable */\n drawArc(): ReadonlySet<DrawingKind> {\n return new Set<DrawingKind>([\"arc\"]);\n },\n /** Phase-3 `curve` drawing kind. @since 0.3 @stable */\n drawCurve(): ReadonlySet<DrawingKind> {\n return new Set<DrawingKind>([\"curve\"]);\n },\n /** Phase-3 `double-curve` drawing kind. @since 0.3 @stable */\n drawDoubleCurve(): ReadonlySet<DrawingKind> {\n return new Set<DrawingKind>([\"double-curve\"]);\n },\n /** Phase-3 `pen` drawing kind. @since 0.3 @stable */\n drawPen(): ReadonlySet<DrawingKind> {\n return new Set<DrawingKind>([\"pen\"]);\n },\n /** Phase-3 `highlighter` drawing kind. @since 0.3 @stable */\n drawHighlighter(): ReadonlySet<DrawingKind> {\n return new Set<DrawingKind>([\"highlighter\"]);\n },\n /** Phase-3 `brush` drawing kind. @since 0.3 @stable */\n drawBrush(): ReadonlySet<DrawingKind> {\n return new Set<DrawingKind>([\"brush\"]);\n },\n /** Phase-3 `text` drawing kind. @since 0.3 @stable */\n drawText(): ReadonlySet<DrawingKind> {\n return new Set<DrawingKind>([\"text\"]);\n },\n /** Phase-3 `arrow` drawing kind. @since 0.3 @stable */\n drawArrow(): ReadonlySet<DrawingKind> {\n return new Set<DrawingKind>([\"arrow\"]);\n },\n /** Phase-3 `arrow-marker` drawing kind. @since 0.3 @stable */\n drawArrowMarker(): ReadonlySet<DrawingKind> {\n return new Set<DrawingKind>([\"arrow-marker\"]);\n },\n /** Phase-3 `arrow-mark-up` drawing kind. @since 0.3 @stable */\n drawArrowMarkUp(): ReadonlySet<DrawingKind> {\n return new Set<DrawingKind>([\"arrow-mark-up\"]);\n },\n /** Phase-3 `arrow-mark-down` drawing kind. @since 0.3 @stable */\n drawArrowMarkDown(): ReadonlySet<DrawingKind> {\n return new Set<DrawingKind>([\"arrow-mark-down\"]);\n },\n /** Phase-3 `trend-channel` drawing kind. @since 0.3 @stable */\n drawTrendChannel(): ReadonlySet<DrawingKind> {\n return new Set<DrawingKind>([\"trend-channel\"]);\n },\n /** Phase-3 `flat-top-bottom` drawing kind. @since 0.3 @stable */\n drawFlatTopBottom(): ReadonlySet<DrawingKind> {\n return new Set<DrawingKind>([\"flat-top-bottom\"]);\n },\n /** Phase-3 `disjoint-channel` drawing kind. @since 0.3 @stable */\n drawDisjointChannel(): ReadonlySet<DrawingKind> {\n return new Set<DrawingKind>([\"disjoint-channel\"]);\n },\n /** Phase-3 `regression-trend` drawing kind. @since 0.3 @stable */\n drawRegressionTrend(): ReadonlySet<DrawingKind> {\n return new Set<DrawingKind>([\"regression-trend\"]);\n },\n /** Phase-3 `fib-retracement` drawing kind. @since 0.3 @stable */\n drawFibRetracement(): ReadonlySet<DrawingKind> {\n return new Set<DrawingKind>([\"fib-retracement\"]);\n },\n /** Phase-3 `fib-trend-extension` drawing kind. @since 0.3 @stable */\n drawFibTrendExtension(): ReadonlySet<DrawingKind> {\n return new Set<DrawingKind>([\"fib-trend-extension\"]);\n },\n /** Phase-3 `fib-channel` drawing kind. @since 0.3 @stable */\n drawFibChannel(): ReadonlySet<DrawingKind> {\n return new Set<DrawingKind>([\"fib-channel\"]);\n },\n /** Phase-3 `fib-time-zone` drawing kind. @since 0.3 @stable */\n drawFibTimeZone(): ReadonlySet<DrawingKind> {\n return new Set<DrawingKind>([\"fib-time-zone\"]);\n },\n /** Phase-3 `fib-wedge` drawing kind. @since 0.3 @stable */\n drawFibWedge(): ReadonlySet<DrawingKind> {\n return new Set<DrawingKind>([\"fib-wedge\"]);\n },\n /** Phase-3 `fib-speed-fan` drawing kind. @since 0.3 @stable */\n drawFibSpeedFan(): ReadonlySet<DrawingKind> {\n return new Set<DrawingKind>([\"fib-speed-fan\"]);\n },\n /** Phase-3 `fib-speed-arcs` drawing kind. @since 0.3 @stable */\n drawFibSpeedArcs(): ReadonlySet<DrawingKind> {\n return new Set<DrawingKind>([\"fib-speed-arcs\"]);\n },\n /** Phase-3 `fib-spiral` drawing kind. @since 0.3 @stable */\n drawFibSpiral(): ReadonlySet<DrawingKind> {\n return new Set<DrawingKind>([\"fib-spiral\"]);\n },\n /** Phase-3 `fib-circles` drawing kind. @since 0.3 @stable */\n drawFibCircles(): ReadonlySet<DrawingKind> {\n return new Set<DrawingKind>([\"fib-circles\"]);\n },\n /** Phase-3 `fib-trend-time` drawing kind. @since 0.3 @stable */\n drawFibTrendTime(): ReadonlySet<DrawingKind> {\n return new Set<DrawingKind>([\"fib-trend-time\"]);\n },\n /** Phase-3 `gann-box` drawing kind. @since 0.3 @stable */\n drawGannBox(): ReadonlySet<DrawingKind> {\n return new Set<DrawingKind>([\"gann-box\"]);\n },\n /** Phase-3 `gann-square-fixed` drawing kind. @since 0.3 @stable */\n drawGannSquareFixed(): ReadonlySet<DrawingKind> {\n return new Set<DrawingKind>([\"gann-square-fixed\"]);\n },\n /** Phase-3 `gann-square` drawing kind. @since 0.3 @stable */\n drawGannSquare(): ReadonlySet<DrawingKind> {\n return new Set<DrawingKind>([\"gann-square\"]);\n },\n /** Phase-3 `gann-fan` drawing kind. @since 0.3 @stable */\n drawGannFan(): ReadonlySet<DrawingKind> {\n return new Set<DrawingKind>([\"gann-fan\"]);\n },\n /** Phase-3 `pitchfork` drawing kind. @since 0.3 @stable */\n drawPitchfork(): ReadonlySet<DrawingKind> {\n return new Set<DrawingKind>([\"pitchfork\"]);\n },\n /** Phase-3 `pitchfan` drawing kind. @since 0.3 @stable */\n drawPitchfan(): ReadonlySet<DrawingKind> {\n return new Set<DrawingKind>([\"pitchfan\"]);\n },\n /** Phase-3 `xabcd-pattern` drawing kind. @since 0.3 @stable */\n drawXabcdPattern(): ReadonlySet<DrawingKind> {\n return new Set<DrawingKind>([\"xabcd-pattern\"]);\n },\n /** Phase-3 `cypher-pattern` drawing kind. @since 0.3 @stable */\n drawCypherPattern(): ReadonlySet<DrawingKind> {\n return new Set<DrawingKind>([\"cypher-pattern\"]);\n },\n /** Phase-3 `head-and-shoulders` drawing kind. @since 0.3 @stable */\n drawHeadAndShoulders(): ReadonlySet<DrawingKind> {\n return new Set<DrawingKind>([\"head-and-shoulders\"]);\n },\n /** Phase-3 `abcd-pattern` drawing kind. @since 0.3 @stable */\n drawAbcdPattern(): ReadonlySet<DrawingKind> {\n return new Set<DrawingKind>([\"abcd-pattern\"]);\n },\n /** Phase-3 `triangle-pattern` drawing kind. @since 0.3 @stable */\n drawTrianglePattern(): ReadonlySet<DrawingKind> {\n return new Set<DrawingKind>([\"triangle-pattern\"]);\n },\n /** Phase-3 `three-drives-pattern` drawing kind. @since 0.3 @stable */\n drawThreeDrivesPattern(): ReadonlySet<DrawingKind> {\n return new Set<DrawingKind>([\"three-drives-pattern\"]);\n },\n /** Phase-3 `elliott-impulse-wave` drawing kind. @since 0.3 @stable */\n drawElliottImpulseWave(): ReadonlySet<DrawingKind> {\n return new Set<DrawingKind>([\"elliott-impulse-wave\"]);\n },\n /** Phase-3 `elliott-correction-wave` drawing kind. @since 0.3 @stable */\n drawElliottCorrectionWave(): ReadonlySet<DrawingKind> {\n return new Set<DrawingKind>([\"elliott-correction-wave\"]);\n },\n /** Phase-3 `elliott-triangle-wave` drawing kind. @since 0.3 @stable */\n drawElliottTriangleWave(): ReadonlySet<DrawingKind> {\n return new Set<DrawingKind>([\"elliott-triangle-wave\"]);\n },\n /** Phase-3 `elliott-double-combo` drawing kind. @since 0.3 @stable */\n drawElliottDoubleCombo(): ReadonlySet<DrawingKind> {\n return new Set<DrawingKind>([\"elliott-double-combo\"]);\n },\n /** Phase-3 `elliott-triple-combo` drawing kind. @since 0.3 @stable */\n drawElliottTripleCombo(): ReadonlySet<DrawingKind> {\n return new Set<DrawingKind>([\"elliott-triple-combo\"]);\n },\n /** Phase-3 `cyclic-lines` drawing kind. @since 0.3 @stable */\n drawCyclicLines(): ReadonlySet<DrawingKind> {\n return new Set<DrawingKind>([\"cyclic-lines\"]);\n },\n /** Phase-3 `time-cycles` drawing kind. @since 0.3 @stable */\n drawTimeCycles(): ReadonlySet<DrawingKind> {\n return new Set<DrawingKind>([\"time-cycles\"]);\n },\n /** Phase-3 `sine-line` drawing kind. @since 0.3 @stable */\n drawSineLine(): ReadonlySet<DrawingKind> {\n return new Set<DrawingKind>([\"sine-line\"]);\n },\n /** Phase-3 `group` drawing kind. @since 0.3 @stable */\n drawGroup(): ReadonlySet<DrawingKind> {\n return new Set<DrawingKind>([\"group\"]);\n },\n /** Phase-3 `frame` drawing kind. @since 0.3 @stable */\n drawFrame(): ReadonlySet<DrawingKind> {\n return new Set<DrawingKind>([\"frame\"]);\n },\n /** Phase-5 `table` drawing kind. @since 0.5 @stable */\n drawTable(): ReadonlySet<DrawingKind> {\n return new Set<DrawingKind>([\"table\"]);\n },\n\n // ------------------------------------------------------------\n // Phase 3 — category-group builders (13). Each covers the kinds\n // of one §10.2 category. Combine via `union(...)` for adapters\n // that support multiple categories.\n // @since 0.3 @stable\n // ------------------------------------------------------------\n\n /** All 6 line / ray drawing kinds. @since 0.3 @stable */\n allLineDrawings(): ReadonlySet<DrawingKind> {\n return new Set<DrawingKind>([\n \"line\",\n \"horizontal-line\",\n \"horizontal-ray\",\n \"vertical-line\",\n \"cross-line\",\n \"trend-angle\",\n ]);\n },\n /**\n * All 9 box / shape drawing kinds. @since 0.3 @stable\n *\n * @remarks Capability categories are orthogonal to budget buckets:\n * `polyline`, `path`, and `fill-between` are budgeted under the\n * `polylines` bucket and `marker` under `labels` — not the `boxes`\n * bucket (see `bucketFor` in `@invinite-org/chartlang-core`). An\n * adapter that declares this set must size those buckets accordingly\n * or those four kinds drop with `drawing-budget-exceeded`.\n */\n allBoxDrawings(): ReadonlySet<DrawingKind> {\n return new Set<DrawingKind>([\n \"rectangle\",\n \"rotated-rectangle\",\n \"triangle\",\n \"polyline\",\n \"circle\",\n \"ellipse\",\n \"path\",\n \"fill-between\",\n \"marker\",\n ]);\n },\n /** All 3 curve drawing kinds. @since 0.3 @stable */\n allCurveDrawings(): ReadonlySet<DrawingKind> {\n return new Set<DrawingKind>([\"arc\", \"curve\", \"double-curve\"]);\n },\n /** All 3 freehand drawing kinds. @since 0.3 @stable */\n allFreehandDrawings(): ReadonlySet<DrawingKind> {\n return new Set<DrawingKind>([\"pen\", \"highlighter\", \"brush\"]);\n },\n /** All 5 annotation drawing kinds. @since 0.3 @stable */\n allAnnotationDrawings(): ReadonlySet<DrawingKind> {\n return new Set<DrawingKind>([\n \"text\",\n \"arrow\",\n \"arrow-marker\",\n \"arrow-mark-up\",\n \"arrow-mark-down\",\n ]);\n },\n /** All 4 channel drawing kinds. @since 0.3 @stable */\n allChannelDrawings(): ReadonlySet<DrawingKind> {\n return new Set<DrawingKind>([\n \"trend-channel\",\n \"flat-top-bottom\",\n \"disjoint-channel\",\n \"regression-trend\",\n ]);\n },\n /** All 10 fibonacci drawing kinds. @since 0.3 @stable */\n allFibDrawings(): ReadonlySet<DrawingKind> {\n return new Set<DrawingKind>([\n \"fib-retracement\",\n \"fib-trend-extension\",\n \"fib-channel\",\n \"fib-time-zone\",\n \"fib-wedge\",\n \"fib-speed-fan\",\n \"fib-speed-arcs\",\n \"fib-spiral\",\n \"fib-circles\",\n \"fib-trend-time\",\n ]);\n },\n /** All 4 gann drawing kinds. @since 0.3 @stable */\n allGannDrawings(): ReadonlySet<DrawingKind> {\n return new Set<DrawingKind>([\"gann-box\", \"gann-square-fixed\", \"gann-square\", \"gann-fan\"]);\n },\n /** All 2 pitchfork drawing kinds. @since 0.3 @stable */\n allPitchforkDrawings(): ReadonlySet<DrawingKind> {\n return new Set<DrawingKind>([\"pitchfork\", \"pitchfan\"]);\n },\n /** All 6 harmonic-pattern drawing kinds. @since 0.3 @stable */\n allPatternDrawings(): ReadonlySet<DrawingKind> {\n return new Set<DrawingKind>([\n \"xabcd-pattern\",\n \"cypher-pattern\",\n \"head-and-shoulders\",\n \"abcd-pattern\",\n \"triangle-pattern\",\n \"three-drives-pattern\",\n ]);\n },\n /** All 5 elliott-wave drawing kinds. @since 0.3 @stable */\n allElliottDrawings(): ReadonlySet<DrawingKind> {\n return new Set<DrawingKind>([\n \"elliott-impulse-wave\",\n \"elliott-correction-wave\",\n \"elliott-triangle-wave\",\n \"elliott-double-combo\",\n \"elliott-triple-combo\",\n ]);\n },\n /** All 3 cycle drawing kinds. @since 0.3 @stable */\n allCycleDrawings(): ReadonlySet<DrawingKind> {\n return new Set<DrawingKind>([\"cyclic-lines\", \"time-cycles\", \"sine-line\"]);\n },\n /** All 2 container drawing kinds. @since 0.3 @stable */\n allContainerDrawings(): ReadonlySet<DrawingKind> {\n return new Set<DrawingKind>([\"group\", \"frame\"]);\n },\n\n /**\n * Every drawing kind that ships in Phase 3 — the union of every\n * category group above. Canvas2d declares this set as its\n * `Capabilities.drawings` (Task 4) so the conformance suite\n * covers all 62 non-table kinds end-to-end.\n *\n * @since 0.3\n * @stable\n */\n allPhase3Drawings(): ReadonlySet<DrawingKind> {\n return new Set<DrawingKind>(DRAWING_KINDS.filter((kind) => kind !== \"table\"));\n },\n};\n"]}
1
+ {"version":3,"file":"capabilities.js","sourceRoot":"","sources":["../../src/capabilities/capabilities.ts"],"names":[],"mappings":"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","sourcesContent":["// Copyright (c) 2026 Invinite. Licensed under the MIT License.\n// See the LICENSE file in the repo root for full license text.\n\nimport { DRAWING_KINDS } from \"@invinite-org/chartlang-core\";\n\nimport type { DrawingCounts, IntervalDescriptor } from \"@invinite-org/chartlang-core\";\n\nimport type { AlertChannel, DrawingKind, PlotKind, SymInfoField } from \"../types.js\";\n\n/**\n * Canonical Phase-5 plot-kind set. Adapters that can render the full\n * script-facing plot inventory can pass this directly to\n * `Capabilities.plots`.\n *\n * @since 0.5\n * @stable\n * @example\n * import { PHASE_5_PLOT_KINDS } from \"@invinite-org/chartlang-adapter-kit\";\n * const plots = new Set(PHASE_5_PLOT_KINDS);\n * void plots;\n */\nexport const PHASE_5_PLOT_KINDS: ReadonlyArray<PlotKind> = Object.freeze([\n \"line\",\n \"step-line\",\n \"horizontal-line\",\n \"histogram\",\n \"area\",\n \"filled-band\",\n \"label\",\n \"marker\",\n \"shape\",\n \"character\",\n \"arrow\",\n \"candle-override\",\n \"bar-override\",\n \"bg-color\",\n \"bar-color\",\n \"horizontal-histogram\",\n]);\n\n/**\n * Helpers that assemble the `ReadonlySet` pieces of a `Capabilities`\n * bag. Phase 1 shipped the three line variants + an alert-channel\n * builder + a generic `union` combinator. Phase 2 adds one builder per\n * new `PlotKind` (`histogram`, `area`, `filledBand`, `label`,\n * `marker`) plus `allPhase2Plots()` — the union of every Phase-1 +\n * Phase-2 kind.\n *\n * @since 0.1\n * @stable\n * @example\n * import { capabilities } from \"@invinite-org/chartlang-adapter-kit\";\n *\n * const plots = capabilities.allPhase2Plots();\n * const alerts = capabilities.alerts(\"toast\", \"log\");\n * const merged = capabilities.union(plots, capabilities.label());\n * void merged;\n */\nexport const capabilities = {\n line(): ReadonlySet<PlotKind> {\n return new Set<PlotKind>([\"line\"]);\n },\n stepLine(): ReadonlySet<PlotKind> {\n return new Set<PlotKind>([\"step-line\"]);\n },\n horizontalLine(): ReadonlySet<PlotKind> {\n return new Set<PlotKind>([\"horizontal-line\"]);\n },\n allLines(): ReadonlySet<PlotKind> {\n return new Set<PlotKind>([\"line\", \"step-line\", \"horizontal-line\"]);\n },\n /** Phase-2 histogram plot kind. @since 0.2 @stable */\n histogram(): ReadonlySet<PlotKind> {\n return new Set<PlotKind>([\"histogram\"]);\n },\n /** Phase-2 filled-area plot kind. @since 0.2 @stable */\n area(): ReadonlySet<PlotKind> {\n return new Set<PlotKind>([\"area\"]);\n },\n /** Phase-2 filled-band (between two polylines) plot kind.\n * @since 0.2 @stable */\n filledBand(): ReadonlySet<PlotKind> {\n return new Set<PlotKind>([\"filled-band\"]);\n },\n /** Phase-2 text-label plot kind. @since 0.2 @stable */\n label(): ReadonlySet<PlotKind> {\n return new Set<PlotKind>([\"label\"]);\n },\n /** Phase-2 discrete-marker plot kind. @since 0.2 @stable */\n marker(): ReadonlySet<PlotKind> {\n return new Set<PlotKind>([\"marker\"]);\n },\n /** Union of every plot kind that ships through Phase 2 — `line`,\n * `step-line`, `horizontal-line`, `histogram`, `area`,\n * `filled-band`, `label`, `marker`. Phase-5 kinds are deliberately\n * excluded; the bundled `capabilities.union(...)` combinator\n * composes additional sets when needed.\n * @since 0.2 @stable */\n allPhase2Plots(): ReadonlySet<PlotKind> {\n return new Set<PlotKind>([\n \"line\",\n \"step-line\",\n \"horizontal-line\",\n \"histogram\",\n \"area\",\n \"filled-band\",\n \"label\",\n \"marker\",\n ]);\n },\n /** Union of every plot kind that ships through Phase 5.\n * @since 0.5 @stable */\n allPhase5Plots(): ReadonlySet<PlotKind> {\n return new Set<PlotKind>(PHASE_5_PLOT_KINDS);\n },\n alerts(...channels: ReadonlyArray<AlertChannel>): ReadonlySet<AlertChannel> {\n return new Set<AlertChannel>(channels);\n },\n union<T>(...sets: ReadonlyArray<ReadonlySet<T>>): ReadonlySet<T> {\n const out = new Set<T>();\n for (const s of sets) {\n for (const v of s) {\n out.add(v);\n }\n }\n return out;\n },\n /**\n * Timeframe descriptors this adapter can deliver, preserving picker order.\n *\n * @since 0.4\n * @stable\n * @example\n * import { capabilities } from \"@invinite-org/chartlang-adapter-kit\";\n *\n * const partial = capabilities.intervals([\n * { value: \"1D\", label: \"1 day\", group: \"daily\" },\n * ]);\n * void partial;\n */\n intervals(list: ReadonlyArray<IntervalDescriptor>): {\n intervals: ReadonlyArray<IntervalDescriptor>;\n } {\n return { intervals: Object.freeze(list.slice()) };\n },\n /**\n * Declares whether the adapter can deliver secondary candle streams.\n *\n * @since 0.4\n * @stable\n * @example\n * import { capabilities } from \"@invinite-org/chartlang-adapter-kit\";\n *\n * const partial = capabilities.multiTimeframe(false);\n * void partial;\n */\n multiTimeframe(enabled: boolean): { multiTimeframe: boolean } {\n return { multiTimeframe: enabled };\n },\n /**\n * Declares whether the adapter can deliver candle streams for a symbol\n * other than the chart's own. Independent of `multiTimeframe` — setting one\n * does not imply the other.\n *\n * @since 1.6\n * @stable\n * @example\n * import { capabilities } from \"@invinite-org/chartlang-adapter-kit\";\n *\n * const partial = capabilities.multiSymbol(false);\n * void partial;\n */\n multiSymbol(enabled: boolean): { multiSymbol: boolean } {\n return { multiSymbol: enabled };\n },\n /**\n * Declares the maximum supported sub-pane count for one script.\n *\n * @since 0.4\n * @stable\n * @example\n * import { capabilities } from \"@invinite-org/chartlang-adapter-kit\";\n *\n * const partial = capabilities.subPanes(Number.MAX_SAFE_INTEGER);\n * void partial;\n */\n subPanes(max: number): { subPanes: number } {\n return { subPanes: max };\n },\n /**\n * Declares which `syminfo.*` fields this adapter populates.\n *\n * @since 0.4\n * @stable\n * @example\n * import { capabilities } from \"@invinite-org/chartlang-adapter-kit\";\n *\n * const partial = capabilities.symInfoFields([\"ticker\", \"mintick\"]);\n * void partial;\n */\n symInfoFields(fields: ReadonlyArray<SymInfoField>): {\n symInfoFields: ReadonlySet<SymInfoField>;\n } {\n return { symInfoFields: new Set(fields) };\n },\n /**\n * Declares the adapter's per-script drawing-emission budget.\n *\n * @since 0.4\n * @stable\n * @example\n * import { capabilities } from \"@invinite-org/chartlang-adapter-kit\";\n *\n * const partial = capabilities.maxDrawingsPerScript({\n * lines: 50, labels: 50, boxes: 50, polylines: 50, other: 50,\n * });\n * void partial;\n */\n maxDrawingsPerScript(counts: DrawingCounts): { maxDrawingsPerScript: DrawingCounts } {\n return { maxDrawingsPerScript: Object.freeze({ ...counts }) };\n },\n /**\n * Declares whether user-wired alert conditions are supported.\n *\n * @since 0.4\n * @stable\n * @example\n * import { capabilities } from \"@invinite-org/chartlang-adapter-kit\";\n *\n * const partial = capabilities.alertConditions(false);\n * void partial;\n */\n alertConditions(enabled: boolean): { alertConditions: boolean } {\n return { alertConditions: enabled };\n },\n /**\n * Declares whether runtime log messages are rendered by the adapter.\n *\n * @since 0.4\n * @stable\n * @example\n * import { capabilities } from \"@invinite-org/chartlang-adapter-kit\";\n *\n * const partial = capabilities.logs(false);\n * void partial;\n */\n logs(enabled: boolean): { logs: boolean } {\n return { logs: enabled };\n },\n\n // ------------------------------------------------------------\n // Phase 3 — per-kind drawing builders (62, incl. the Phase-2\n // `fill-between` ribbon). Each returns a\n // single-element `Set<DrawingKind>` so adapters can compose via\n // `capabilities.union(...)`. The 13 category-group builders +\n // `allPhase3Drawings()` below are the canonical user-facing\n // surface; per-kind builders exist for precision opt-in.\n // @since 0.3 @stable\n // ------------------------------------------------------------\n\n /** Phase-3 `line` drawing kind. @since 0.3 @stable */\n drawLine(): ReadonlySet<DrawingKind> {\n return new Set<DrawingKind>([\"line\"]);\n },\n /** Phase-3 `horizontal-line` drawing kind. @since 0.3 @stable */\n drawHorizontalLine(): ReadonlySet<DrawingKind> {\n return new Set<DrawingKind>([\"horizontal-line\"]);\n },\n /** Phase-3 `horizontal-ray` drawing kind. @since 0.3 @stable */\n drawHorizontalRay(): ReadonlySet<DrawingKind> {\n return new Set<DrawingKind>([\"horizontal-ray\"]);\n },\n /** Phase-3 `vertical-line` drawing kind. @since 0.3 @stable */\n drawVerticalLine(): ReadonlySet<DrawingKind> {\n return new Set<DrawingKind>([\"vertical-line\"]);\n },\n /** Phase-3 `cross-line` drawing kind. @since 0.3 @stable */\n drawCrossLine(): ReadonlySet<DrawingKind> {\n return new Set<DrawingKind>([\"cross-line\"]);\n },\n /** Phase-3 `trend-angle` drawing kind. @since 0.3 @stable */\n drawTrendAngle(): ReadonlySet<DrawingKind> {\n return new Set<DrawingKind>([\"trend-angle\"]);\n },\n /** Phase-3 `rectangle` drawing kind. @since 0.3 @stable */\n drawRectangle(): ReadonlySet<DrawingKind> {\n return new Set<DrawingKind>([\"rectangle\"]);\n },\n /** Phase-3 `rotated-rectangle` drawing kind. @since 0.3 @stable */\n drawRotatedRectangle(): ReadonlySet<DrawingKind> {\n return new Set<DrawingKind>([\"rotated-rectangle\"]);\n },\n /** Phase-3 `triangle` drawing kind. @since 0.3 @stable */\n drawTriangle(): ReadonlySet<DrawingKind> {\n return new Set<DrawingKind>([\"triangle\"]);\n },\n /** Phase-3 `polyline` drawing kind. @since 0.3 @stable */\n drawPolyline(): ReadonlySet<DrawingKind> {\n return new Set<DrawingKind>([\"polyline\"]);\n },\n /** Phase-3 `circle` drawing kind. @since 0.3 @stable */\n drawCircle(): ReadonlySet<DrawingKind> {\n return new Set<DrawingKind>([\"circle\"]);\n },\n /** Phase-3 `ellipse` drawing kind. @since 0.3 @stable */\n drawEllipse(): ReadonlySet<DrawingKind> {\n return new Set<DrawingKind>([\"ellipse\"]);\n },\n /** Phase-3 `path` drawing kind. @since 0.3 @stable */\n drawPath(): ReadonlySet<DrawingKind> {\n return new Set<DrawingKind>([\"path\"]);\n },\n /** `fill-between` filled-ribbon drawing kind. @since 0.4 @stable */\n drawFillBetween(): ReadonlySet<DrawingKind> {\n return new Set<DrawingKind>([\"fill-between\"]);\n },\n /** Phase-3 `marker` drawing kind. @since 0.3 @stable */\n drawMarker(): ReadonlySet<DrawingKind> {\n return new Set<DrawingKind>([\"marker\"]);\n },\n /** Phase-3 `arc` drawing kind. @since 0.3 @stable */\n drawArc(): ReadonlySet<DrawingKind> {\n return new Set<DrawingKind>([\"arc\"]);\n },\n /** Phase-3 `curve` drawing kind. @since 0.3 @stable */\n drawCurve(): ReadonlySet<DrawingKind> {\n return new Set<DrawingKind>([\"curve\"]);\n },\n /** Phase-3 `double-curve` drawing kind. @since 0.3 @stable */\n drawDoubleCurve(): ReadonlySet<DrawingKind> {\n return new Set<DrawingKind>([\"double-curve\"]);\n },\n /** Phase-3 `pen` drawing kind. @since 0.3 @stable */\n drawPen(): ReadonlySet<DrawingKind> {\n return new Set<DrawingKind>([\"pen\"]);\n },\n /** Phase-3 `highlighter` drawing kind. @since 0.3 @stable */\n drawHighlighter(): ReadonlySet<DrawingKind> {\n return new Set<DrawingKind>([\"highlighter\"]);\n },\n /** Phase-3 `brush` drawing kind. @since 0.3 @stable */\n drawBrush(): ReadonlySet<DrawingKind> {\n return new Set<DrawingKind>([\"brush\"]);\n },\n /** Phase-3 `text` drawing kind. @since 0.3 @stable */\n drawText(): ReadonlySet<DrawingKind> {\n return new Set<DrawingKind>([\"text\"]);\n },\n /** Phase-3 `arrow` drawing kind. @since 0.3 @stable */\n drawArrow(): ReadonlySet<DrawingKind> {\n return new Set<DrawingKind>([\"arrow\"]);\n },\n /** Phase-3 `arrow-marker` drawing kind. @since 0.3 @stable */\n drawArrowMarker(): ReadonlySet<DrawingKind> {\n return new Set<DrawingKind>([\"arrow-marker\"]);\n },\n /** Phase-3 `arrow-mark-up` drawing kind. @since 0.3 @stable */\n drawArrowMarkUp(): ReadonlySet<DrawingKind> {\n return new Set<DrawingKind>([\"arrow-mark-up\"]);\n },\n /** Phase-3 `arrow-mark-down` drawing kind. @since 0.3 @stable */\n drawArrowMarkDown(): ReadonlySet<DrawingKind> {\n return new Set<DrawingKind>([\"arrow-mark-down\"]);\n },\n /** Phase-3 `trend-channel` drawing kind. @since 0.3 @stable */\n drawTrendChannel(): ReadonlySet<DrawingKind> {\n return new Set<DrawingKind>([\"trend-channel\"]);\n },\n /** Phase-3 `flat-top-bottom` drawing kind. @since 0.3 @stable */\n drawFlatTopBottom(): ReadonlySet<DrawingKind> {\n return new Set<DrawingKind>([\"flat-top-bottom\"]);\n },\n /** Phase-3 `disjoint-channel` drawing kind. @since 0.3 @stable */\n drawDisjointChannel(): ReadonlySet<DrawingKind> {\n return new Set<DrawingKind>([\"disjoint-channel\"]);\n },\n /** Phase-3 `regression-trend` drawing kind. @since 0.3 @stable */\n drawRegressionTrend(): ReadonlySet<DrawingKind> {\n return new Set<DrawingKind>([\"regression-trend\"]);\n },\n /** Phase-3 `fib-retracement` drawing kind. @since 0.3 @stable */\n drawFibRetracement(): ReadonlySet<DrawingKind> {\n return new Set<DrawingKind>([\"fib-retracement\"]);\n },\n /** Phase-3 `fib-trend-extension` drawing kind. @since 0.3 @stable */\n drawFibTrendExtension(): ReadonlySet<DrawingKind> {\n return new Set<DrawingKind>([\"fib-trend-extension\"]);\n },\n /** Phase-3 `fib-channel` drawing kind. @since 0.3 @stable */\n drawFibChannel(): ReadonlySet<DrawingKind> {\n return new Set<DrawingKind>([\"fib-channel\"]);\n },\n /** Phase-3 `fib-time-zone` drawing kind. @since 0.3 @stable */\n drawFibTimeZone(): ReadonlySet<DrawingKind> {\n return new Set<DrawingKind>([\"fib-time-zone\"]);\n },\n /** Phase-3 `fib-wedge` drawing kind. @since 0.3 @stable */\n drawFibWedge(): ReadonlySet<DrawingKind> {\n return new Set<DrawingKind>([\"fib-wedge\"]);\n },\n /** Phase-3 `fib-speed-fan` drawing kind. @since 0.3 @stable */\n drawFibSpeedFan(): ReadonlySet<DrawingKind> {\n return new Set<DrawingKind>([\"fib-speed-fan\"]);\n },\n /** Phase-3 `fib-speed-arcs` drawing kind. @since 0.3 @stable */\n drawFibSpeedArcs(): ReadonlySet<DrawingKind> {\n return new Set<DrawingKind>([\"fib-speed-arcs\"]);\n },\n /** Phase-3 `fib-spiral` drawing kind. @since 0.3 @stable */\n drawFibSpiral(): ReadonlySet<DrawingKind> {\n return new Set<DrawingKind>([\"fib-spiral\"]);\n },\n /** Phase-3 `fib-circles` drawing kind. @since 0.3 @stable */\n drawFibCircles(): ReadonlySet<DrawingKind> {\n return new Set<DrawingKind>([\"fib-circles\"]);\n },\n /** Phase-3 `fib-trend-time` drawing kind. @since 0.3 @stable */\n drawFibTrendTime(): ReadonlySet<DrawingKind> {\n return new Set<DrawingKind>([\"fib-trend-time\"]);\n },\n /** Phase-3 `gann-box` drawing kind. @since 0.3 @stable */\n drawGannBox(): ReadonlySet<DrawingKind> {\n return new Set<DrawingKind>([\"gann-box\"]);\n },\n /** Phase-3 `gann-square-fixed` drawing kind. @since 0.3 @stable */\n drawGannSquareFixed(): ReadonlySet<DrawingKind> {\n return new Set<DrawingKind>([\"gann-square-fixed\"]);\n },\n /** Phase-3 `gann-square` drawing kind. @since 0.3 @stable */\n drawGannSquare(): ReadonlySet<DrawingKind> {\n return new Set<DrawingKind>([\"gann-square\"]);\n },\n /** Phase-3 `gann-fan` drawing kind. @since 0.3 @stable */\n drawGannFan(): ReadonlySet<DrawingKind> {\n return new Set<DrawingKind>([\"gann-fan\"]);\n },\n /** Phase-3 `pitchfork` drawing kind. @since 0.3 @stable */\n drawPitchfork(): ReadonlySet<DrawingKind> {\n return new Set<DrawingKind>([\"pitchfork\"]);\n },\n /** Phase-3 `pitchfan` drawing kind. @since 0.3 @stable */\n drawPitchfan(): ReadonlySet<DrawingKind> {\n return new Set<DrawingKind>([\"pitchfan\"]);\n },\n /** Phase-3 `xabcd-pattern` drawing kind. @since 0.3 @stable */\n drawXabcdPattern(): ReadonlySet<DrawingKind> {\n return new Set<DrawingKind>([\"xabcd-pattern\"]);\n },\n /** Phase-3 `cypher-pattern` drawing kind. @since 0.3 @stable */\n drawCypherPattern(): ReadonlySet<DrawingKind> {\n return new Set<DrawingKind>([\"cypher-pattern\"]);\n },\n /** Phase-3 `head-and-shoulders` drawing kind. @since 0.3 @stable */\n drawHeadAndShoulders(): ReadonlySet<DrawingKind> {\n return new Set<DrawingKind>([\"head-and-shoulders\"]);\n },\n /** Phase-3 `abcd-pattern` drawing kind. @since 0.3 @stable */\n drawAbcdPattern(): ReadonlySet<DrawingKind> {\n return new Set<DrawingKind>([\"abcd-pattern\"]);\n },\n /** Phase-3 `triangle-pattern` drawing kind. @since 0.3 @stable */\n drawTrianglePattern(): ReadonlySet<DrawingKind> {\n return new Set<DrawingKind>([\"triangle-pattern\"]);\n },\n /** Phase-3 `three-drives-pattern` drawing kind. @since 0.3 @stable */\n drawThreeDrivesPattern(): ReadonlySet<DrawingKind> {\n return new Set<DrawingKind>([\"three-drives-pattern\"]);\n },\n /** Phase-3 `elliott-impulse-wave` drawing kind. @since 0.3 @stable */\n drawElliottImpulseWave(): ReadonlySet<DrawingKind> {\n return new Set<DrawingKind>([\"elliott-impulse-wave\"]);\n },\n /** Phase-3 `elliott-correction-wave` drawing kind. @since 0.3 @stable */\n drawElliottCorrectionWave(): ReadonlySet<DrawingKind> {\n return new Set<DrawingKind>([\"elliott-correction-wave\"]);\n },\n /** Phase-3 `elliott-triangle-wave` drawing kind. @since 0.3 @stable */\n drawElliottTriangleWave(): ReadonlySet<DrawingKind> {\n return new Set<DrawingKind>([\"elliott-triangle-wave\"]);\n },\n /** Phase-3 `elliott-double-combo` drawing kind. @since 0.3 @stable */\n drawElliottDoubleCombo(): ReadonlySet<DrawingKind> {\n return new Set<DrawingKind>([\"elliott-double-combo\"]);\n },\n /** Phase-3 `elliott-triple-combo` drawing kind. @since 0.3 @stable */\n drawElliottTripleCombo(): ReadonlySet<DrawingKind> {\n return new Set<DrawingKind>([\"elliott-triple-combo\"]);\n },\n /** Phase-3 `cyclic-lines` drawing kind. @since 0.3 @stable */\n drawCyclicLines(): ReadonlySet<DrawingKind> {\n return new Set<DrawingKind>([\"cyclic-lines\"]);\n },\n /** Phase-3 `time-cycles` drawing kind. @since 0.3 @stable */\n drawTimeCycles(): ReadonlySet<DrawingKind> {\n return new Set<DrawingKind>([\"time-cycles\"]);\n },\n /** Phase-3 `sine-line` drawing kind. @since 0.3 @stable */\n drawSineLine(): ReadonlySet<DrawingKind> {\n return new Set<DrawingKind>([\"sine-line\"]);\n },\n /** Phase-3 `group` drawing kind. @since 0.3 @stable */\n drawGroup(): ReadonlySet<DrawingKind> {\n return new Set<DrawingKind>([\"group\"]);\n },\n /** Phase-3 `frame` drawing kind. @since 0.3 @stable */\n drawFrame(): ReadonlySet<DrawingKind> {\n return new Set<DrawingKind>([\"frame\"]);\n },\n /** Phase-5 `table` drawing kind. @since 0.5 @stable */\n drawTable(): ReadonlySet<DrawingKind> {\n return new Set<DrawingKind>([\"table\"]);\n },\n\n // ------------------------------------------------------------\n // Phase 3 — category-group builders (13). Each covers the kinds\n // of one §10.2 category. Combine via `union(...)` for adapters\n // that support multiple categories.\n // @since 0.3 @stable\n // ------------------------------------------------------------\n\n /** All 6 line / ray drawing kinds. @since 0.3 @stable */\n allLineDrawings(): ReadonlySet<DrawingKind> {\n return new Set<DrawingKind>([\n \"line\",\n \"horizontal-line\",\n \"horizontal-ray\",\n \"vertical-line\",\n \"cross-line\",\n \"trend-angle\",\n ]);\n },\n /**\n * All 9 box / shape drawing kinds. @since 0.3 @stable\n *\n * @remarks Capability categories are orthogonal to budget buckets:\n * `polyline`, `path`, and `fill-between` are budgeted under the\n * `polylines` bucket and `marker` under `labels` — not the `boxes`\n * bucket (see `bucketFor` in `@invinite-org/chartlang-core`). An\n * adapter that declares this set must size those buckets accordingly\n * or those four kinds drop with `drawing-budget-exceeded`.\n */\n allBoxDrawings(): ReadonlySet<DrawingKind> {\n return new Set<DrawingKind>([\n \"rectangle\",\n \"rotated-rectangle\",\n \"triangle\",\n \"polyline\",\n \"circle\",\n \"ellipse\",\n \"path\",\n \"fill-between\",\n \"marker\",\n ]);\n },\n /** All 3 curve drawing kinds. @since 0.3 @stable */\n allCurveDrawings(): ReadonlySet<DrawingKind> {\n return new Set<DrawingKind>([\"arc\", \"curve\", \"double-curve\"]);\n },\n /** All 3 freehand drawing kinds. @since 0.3 @stable */\n allFreehandDrawings(): ReadonlySet<DrawingKind> {\n return new Set<DrawingKind>([\"pen\", \"highlighter\", \"brush\"]);\n },\n /** All 5 annotation drawing kinds. @since 0.3 @stable */\n allAnnotationDrawings(): ReadonlySet<DrawingKind> {\n return new Set<DrawingKind>([\n \"text\",\n \"arrow\",\n \"arrow-marker\",\n \"arrow-mark-up\",\n \"arrow-mark-down\",\n ]);\n },\n /** All 4 channel drawing kinds. @since 0.3 @stable */\n allChannelDrawings(): ReadonlySet<DrawingKind> {\n return new Set<DrawingKind>([\n \"trend-channel\",\n \"flat-top-bottom\",\n \"disjoint-channel\",\n \"regression-trend\",\n ]);\n },\n /** All 10 fibonacci drawing kinds. @since 0.3 @stable */\n allFibDrawings(): ReadonlySet<DrawingKind> {\n return new Set<DrawingKind>([\n \"fib-retracement\",\n \"fib-trend-extension\",\n \"fib-channel\",\n \"fib-time-zone\",\n \"fib-wedge\",\n \"fib-speed-fan\",\n \"fib-speed-arcs\",\n \"fib-spiral\",\n \"fib-circles\",\n \"fib-trend-time\",\n ]);\n },\n /** All 4 gann drawing kinds. @since 0.3 @stable */\n allGannDrawings(): ReadonlySet<DrawingKind> {\n return new Set<DrawingKind>([\"gann-box\", \"gann-square-fixed\", \"gann-square\", \"gann-fan\"]);\n },\n /** All 2 pitchfork drawing kinds. @since 0.3 @stable */\n allPitchforkDrawings(): ReadonlySet<DrawingKind> {\n return new Set<DrawingKind>([\"pitchfork\", \"pitchfan\"]);\n },\n /** All 6 harmonic-pattern drawing kinds. @since 0.3 @stable */\n allPatternDrawings(): ReadonlySet<DrawingKind> {\n return new Set<DrawingKind>([\n \"xabcd-pattern\",\n \"cypher-pattern\",\n \"head-and-shoulders\",\n \"abcd-pattern\",\n \"triangle-pattern\",\n \"three-drives-pattern\",\n ]);\n },\n /** All 5 elliott-wave drawing kinds. @since 0.3 @stable */\n allElliottDrawings(): ReadonlySet<DrawingKind> {\n return new Set<DrawingKind>([\n \"elliott-impulse-wave\",\n \"elliott-correction-wave\",\n \"elliott-triangle-wave\",\n \"elliott-double-combo\",\n \"elliott-triple-combo\",\n ]);\n },\n /** All 3 cycle drawing kinds. @since 0.3 @stable */\n allCycleDrawings(): ReadonlySet<DrawingKind> {\n return new Set<DrawingKind>([\"cyclic-lines\", \"time-cycles\", \"sine-line\"]);\n },\n /** All 2 container drawing kinds. @since 0.3 @stable */\n allContainerDrawings(): ReadonlySet<DrawingKind> {\n return new Set<DrawingKind>([\"group\", \"frame\"]);\n },\n\n /**\n * Every drawing kind that ships in Phase 3 — the union of every\n * category group above. Canvas2d declares this set as its\n * `Capabilities.drawings` (Task 4) so the conformance suite\n * covers all 62 non-table kinds end-to-end.\n *\n * @since 0.3\n * @stable\n */\n allPhase3Drawings(): ReadonlySet<DrawingKind> {\n return new Set<DrawingKind>(DRAWING_KINDS.filter((kind) => kind !== \"table\"));\n },\n};\n"]}
@@ -18,6 +18,7 @@ import type { Adapter } from "./types.js";
18
18
  * inputs: new Set(),
19
19
  * intervals: [],
20
20
  * multiTimeframe: false,
21
+ * multiSymbol: false,
21
22
  * subPanes: 0,
22
23
  * symInfoFields: new Set(),
23
24
  * maxDrawingsPerScript: {
@@ -57,6 +58,7 @@ export type DefineAdapterOpts = Omit<Adapter, "dispose"> & {
57
58
  * inputs: new Set(),
58
59
  * intervals: [],
59
60
  * multiTimeframe: false,
61
+ * multiSymbol: false,
60
62
  * subPanes: 0,
61
63
  * symInfoFields: new Set(),
62
64
  * maxDrawingsPerScript: {
@@ -1 +1 @@
1
- {"version":3,"file":"defineAdapter.d.ts","sourceRoot":"","sources":["../src/defineAdapter.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,YAAY,CAAC;AAE1C;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA8BG;AACH,MAAM,MAAM,iBAAiB,GAAG,IAAI,CAAC,OAAO,EAAE,SAAS,CAAC,GAAG;IACvD,QAAQ,CAAC,OAAO,CAAC,EAAE,MAAM,IAAI,CAAC;CACjC,CAAC;AAEF;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAoCG;AACH,wBAAgB,aAAa,CAAC,IAAI,EAAE,iBAAiB,GAAG,OAAO,CAW9D"}
1
+ {"version":3,"file":"defineAdapter.d.ts","sourceRoot":"","sources":["../src/defineAdapter.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,YAAY,CAAC;AAE1C;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA+BG;AACH,MAAM,MAAM,iBAAiB,GAAG,IAAI,CAAC,OAAO,EAAE,SAAS,CAAC,GAAG;IACvD,QAAQ,CAAC,OAAO,CAAC,EAAE,MAAM,IAAI,CAAC;CACjC,CAAC;AAEF;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAqCG;AACH,wBAAgB,aAAa,CAAC,IAAI,EAAE,iBAAiB,GAAG,OAAO,CAW9D"}
@@ -24,6 +24,7 @@
24
24
  * inputs: new Set(),
25
25
  * intervals: [],
26
26
  * multiTimeframe: false,
27
+ * multiSymbol: false,
27
28
  * subPanes: 0,
28
29
  * symInfoFields: new Set(),
29
30
  * maxDrawingsPerScript: {
@@ -1 +1 @@
1
- {"version":3,"file":"defineAdapter.js","sourceRoot":"","sources":["../src/defineAdapter.ts"],"names":[],"mappings":"AAAA,+DAA+D;AAC/D,+DAA+D;AAuC/D;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAoCG;AACH,MAAM,UAAU,aAAa,CAAC,IAAuB;IACjD,OAAO;QACH,EAAE,EAAE,IAAI,CAAC,EAAE;QACX,IAAI,EAAE,IAAI,CAAC,IAAI;QACf,YAAY,EAAE,IAAI,CAAC,YAAY;QAC/B,GAAG,CAAC,IAAI,CAAC,aAAa,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,aAAa,EAAE,IAAI,CAAC,aAAa,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QAClF,GAAG,CAAC,IAAI,CAAC,OAAO,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,IAAI,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QAChE,OAAO,EAAE,IAAI,CAAC,OAAO;QACrB,WAAW,EAAE,IAAI,CAAC,WAAW;QAC7B,OAAO,EAAE,IAAI,CAAC,OAAO,IAAI,WAAW;KACvC,CAAC;AACN,CAAC;AAED,SAAS,WAAW;IAChB,oBAAoB;AACxB,CAAC","sourcesContent":["// Copyright (c) 2026 Invinite. Licensed under the MIT License.\n// See the LICENSE file in the repo root for full license text.\n\nimport type { Adapter } from \"./types.js\";\n\n/**\n * Options accepted by {@link defineAdapter}. `dispose` is optional —\n * `defineAdapter` substitutes a no-op when omitted.\n *\n * @since 0.1\n * @stable\n * @example\n * const opts: DefineAdapterOpts = {\n * id: \"demo\",\n * name: \"Demo\",\n * capabilities: {\n * plots: new Set(),\n * drawings: new Set(),\n * alerts: new Set(),\n * alertConditions: false,\n * logs: false,\n * inputs: new Set(),\n * intervals: [],\n * multiTimeframe: false,\n * subPanes: 0,\n * symInfoFields: new Set(),\n * maxDrawingsPerScript: {\n * lines: 0, labels: 0, boxes: 0, polylines: 0, other: 0,\n * },\n * maxLookback: 0,\n * maxTickHz: 0,\n * },\n * candles: () => ({ async *[Symbol.asyncIterator]() {} }),\n * onEmissions: () => {},\n * };\n */\nexport type DefineAdapterOpts = Omit<Adapter, \"dispose\"> & {\n readonly dispose?: () => void;\n};\n\n/**\n * Wrap an adapter description in a stable factory so consumer-repo\n * adapters get a single entry point + a default no-op `dispose`. The\n * returned object aliases the supplied callbacks by reference — no\n * normalisation, no cloning.\n *\n * @since 0.1\n * @stable\n * @example\n * import { defineAdapter, capabilities, mockCandleSource }\n * from \"@invinite-org/chartlang-adapter-kit\";\n *\n * const adapter = defineAdapter({\n * id: \"demo\",\n * name: \"Demo\",\n * capabilities: {\n * plots: capabilities.allLines(),\n * drawings: new Set(),\n * alerts: new Set(),\n * alertConditions: false,\n * logs: false,\n * inputs: new Set(),\n * intervals: [],\n * multiTimeframe: false,\n * subPanes: 0,\n * symInfoFields: new Set(),\n * maxDrawingsPerScript: {\n * lines: 0, labels: 0, boxes: 0, polylines: 0, other: 0,\n * },\n * maxLookback: 5000,\n * maxTickHz: 10,\n * },\n * candles: () => mockCandleSource([]),\n * onEmissions: () => {},\n * });\n * void adapter;\n */\nexport function defineAdapter(opts: DefineAdapterOpts): Adapter {\n return {\n id: opts.id,\n name: opts.name,\n capabilities: opts.capabilities,\n ...(opts.resolveInputs !== undefined ? { resolveInputs: opts.resolveInputs } : {}),\n ...(opts.symInfo !== undefined ? { symInfo: opts.symInfo } : {}),\n candles: opts.candles,\n onEmissions: opts.onEmissions,\n dispose: opts.dispose ?? noopDispose,\n };\n}\n\nfunction noopDispose(): void {\n // intentional no-op\n}\n"]}
1
+ {"version":3,"file":"defineAdapter.js","sourceRoot":"","sources":["../src/defineAdapter.ts"],"names":[],"mappings":"AAAA,+DAA+D;AAC/D,+DAA+D;AAwC/D;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAqCG;AACH,MAAM,UAAU,aAAa,CAAC,IAAuB;IACjD,OAAO;QACH,EAAE,EAAE,IAAI,CAAC,EAAE;QACX,IAAI,EAAE,IAAI,CAAC,IAAI;QACf,YAAY,EAAE,IAAI,CAAC,YAAY;QAC/B,GAAG,CAAC,IAAI,CAAC,aAAa,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,aAAa,EAAE,IAAI,CAAC,aAAa,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QAClF,GAAG,CAAC,IAAI,CAAC,OAAO,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,IAAI,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QAChE,OAAO,EAAE,IAAI,CAAC,OAAO;QACrB,WAAW,EAAE,IAAI,CAAC,WAAW;QAC7B,OAAO,EAAE,IAAI,CAAC,OAAO,IAAI,WAAW;KACvC,CAAC;AACN,CAAC;AAED,SAAS,WAAW;IAChB,oBAAoB;AACxB,CAAC","sourcesContent":["// Copyright (c) 2026 Invinite. Licensed under the MIT License.\n// See the LICENSE file in the repo root for full license text.\n\nimport type { Adapter } from \"./types.js\";\n\n/**\n * Options accepted by {@link defineAdapter}. `dispose` is optional —\n * `defineAdapter` substitutes a no-op when omitted.\n *\n * @since 0.1\n * @stable\n * @example\n * const opts: DefineAdapterOpts = {\n * id: \"demo\",\n * name: \"Demo\",\n * capabilities: {\n * plots: new Set(),\n * drawings: new Set(),\n * alerts: new Set(),\n * alertConditions: false,\n * logs: false,\n * inputs: new Set(),\n * intervals: [],\n * multiTimeframe: false,\n * multiSymbol: false,\n * subPanes: 0,\n * symInfoFields: new Set(),\n * maxDrawingsPerScript: {\n * lines: 0, labels: 0, boxes: 0, polylines: 0, other: 0,\n * },\n * maxLookback: 0,\n * maxTickHz: 0,\n * },\n * candles: () => ({ async *[Symbol.asyncIterator]() {} }),\n * onEmissions: () => {},\n * };\n */\nexport type DefineAdapterOpts = Omit<Adapter, \"dispose\"> & {\n readonly dispose?: () => void;\n};\n\n/**\n * Wrap an adapter description in a stable factory so consumer-repo\n * adapters get a single entry point + a default no-op `dispose`. The\n * returned object aliases the supplied callbacks by reference — no\n * normalisation, no cloning.\n *\n * @since 0.1\n * @stable\n * @example\n * import { defineAdapter, capabilities, mockCandleSource }\n * from \"@invinite-org/chartlang-adapter-kit\";\n *\n * const adapter = defineAdapter({\n * id: \"demo\",\n * name: \"Demo\",\n * capabilities: {\n * plots: capabilities.allLines(),\n * drawings: new Set(),\n * alerts: new Set(),\n * alertConditions: false,\n * logs: false,\n * inputs: new Set(),\n * intervals: [],\n * multiTimeframe: false,\n * multiSymbol: false,\n * subPanes: 0,\n * symInfoFields: new Set(),\n * maxDrawingsPerScript: {\n * lines: 0, labels: 0, boxes: 0, polylines: 0, other: 0,\n * },\n * maxLookback: 5000,\n * maxTickHz: 10,\n * },\n * candles: () => mockCandleSource([]),\n * onEmissions: () => {},\n * });\n * void adapter;\n */\nexport function defineAdapter(opts: DefineAdapterOpts): Adapter {\n return {\n id: opts.id,\n name: opts.name,\n capabilities: opts.capabilities,\n ...(opts.resolveInputs !== undefined ? { resolveInputs: opts.resolveInputs } : {}),\n ...(opts.symInfo !== undefined ? { symInfo: opts.symInfo } : {}),\n candles: opts.candles,\n onEmissions: opts.onEmissions,\n dispose: opts.dispose ?? noopDispose,\n };\n}\n\nfunction noopDispose(): void {\n // intentional no-op\n}\n"]}
@@ -1,4 +1,7 @@
1
1
  export { decomposeDrawing } from "./decompose.js";
2
2
  export { priceToY, timeToX, worldPointToPixel } from "./project.js";
3
+ export { RENDER_BAND, sortByRenderOrder } from "./renderOrder.js";
4
+ export type { RenderOrderKey } from "./renderOrder.js";
5
+ export { maxShiftedTime, medianBarSpacing, projectShiftedX, shiftedBarIndex, shiftedBarTime, } from "./shift.js";
3
6
  export type { DrawPrimitive, FillStyle, Point2, StrokeStyle, Viewport } from "./types.js";
4
7
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/geometry/index.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,gBAAgB,EAAE,MAAM,gBAAgB,CAAC;AAClD,OAAO,EAAE,QAAQ,EAAE,OAAO,EAAE,iBAAiB,EAAE,MAAM,cAAc,CAAC;AACpE,YAAY,EAAE,aAAa,EAAE,SAAS,EAAE,MAAM,EAAE,WAAW,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/geometry/index.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,gBAAgB,EAAE,MAAM,gBAAgB,CAAC;AAClD,OAAO,EAAE,QAAQ,EAAE,OAAO,EAAE,iBAAiB,EAAE,MAAM,cAAc,CAAC;AACpE,OAAO,EAAE,WAAW,EAAE,iBAAiB,EAAE,MAAM,kBAAkB,CAAC;AAClE,YAAY,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AACvD,OAAO,EACH,cAAc,EACd,gBAAgB,EAChB,eAAe,EACf,eAAe,EACf,cAAc,GACjB,MAAM,YAAY,CAAC;AACpB,YAAY,EAAE,aAAa,EAAE,SAAS,EAAE,MAAM,EAAE,WAAW,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC"}
@@ -2,4 +2,6 @@
2
2
  // See the LICENSE file in the repo root for full license text.
3
3
  export { decomposeDrawing } from "./decompose.js";
4
4
  export { priceToY, timeToX, worldPointToPixel } from "./project.js";
5
+ export { RENDER_BAND, sortByRenderOrder } from "./renderOrder.js";
6
+ export { maxShiftedTime, medianBarSpacing, projectShiftedX, shiftedBarIndex, shiftedBarTime, } from "./shift.js";
5
7
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/geometry/index.ts"],"names":[],"mappings":"AAAA,+DAA+D;AAC/D,+DAA+D;AAE/D,OAAO,EAAE,gBAAgB,EAAE,MAAM,gBAAgB,CAAC;AAClD,OAAO,EAAE,QAAQ,EAAE,OAAO,EAAE,iBAAiB,EAAE,MAAM,cAAc,CAAC","sourcesContent":["// Copyright (c) 2026 Invinite. Licensed under the MIT License.\n// See the LICENSE file in the repo root for full license text.\n\nexport { decomposeDrawing } from \"./decompose.js\";\nexport { priceToY, timeToX, worldPointToPixel } from \"./project.js\";\nexport type { DrawPrimitive, FillStyle, Point2, StrokeStyle, Viewport } from \"./types.js\";\n"]}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/geometry/index.ts"],"names":[],"mappings":"AAAA,+DAA+D;AAC/D,+DAA+D;AAE/D,OAAO,EAAE,gBAAgB,EAAE,MAAM,gBAAgB,CAAC;AAClD,OAAO,EAAE,QAAQ,EAAE,OAAO,EAAE,iBAAiB,EAAE,MAAM,cAAc,CAAC;AACpE,OAAO,EAAE,WAAW,EAAE,iBAAiB,EAAE,MAAM,kBAAkB,CAAC;AAElE,OAAO,EACH,cAAc,EACd,gBAAgB,EAChB,eAAe,EACf,eAAe,EACf,cAAc,GACjB,MAAM,YAAY,CAAC","sourcesContent":["// Copyright (c) 2026 Invinite. Licensed under the MIT License.\n// See the LICENSE file in the repo root for full license text.\n\nexport { decomposeDrawing } from \"./decompose.js\";\nexport { priceToY, timeToX, worldPointToPixel } from \"./project.js\";\nexport { RENDER_BAND, sortByRenderOrder } from \"./renderOrder.js\";\nexport type { RenderOrderKey } from \"./renderOrder.js\";\nexport {\n maxShiftedTime,\n medianBarSpacing,\n projectShiftedX,\n shiftedBarIndex,\n shiftedBarTime,\n} from \"./shift.js\";\nexport type { DrawPrimitive, FillStyle, Point2, StrokeStyle, Viewport } from \"./types.js\";\n"]}
@@ -0,0 +1,52 @@
1
+ /**
2
+ * Default render-order bands. At the default `z = 0` the composite key
3
+ * reduces to `(band, seq)` = series → glyphs → hlines → drawings, the
4
+ * phase order every adapter shared before `z` existed. A `z < 0` mark
5
+ * sorts beneath `z = 0` marks; a `z > 0` plot sorts above drawings —
6
+ * the lever a fixed band stack cannot express.
7
+ *
8
+ * @since 1.7
9
+ * @stable
10
+ * @example
11
+ * const seriesBeforeDrawing = RENDER_BAND.series < RENDER_BAND.drawing;
12
+ * void seriesBeforeDrawing;
13
+ */
14
+ export declare const RENDER_BAND: {
15
+ readonly series: 0;
16
+ readonly glyph: 1;
17
+ readonly hline: 2;
18
+ readonly drawing: 3;
19
+ };
20
+ /**
21
+ * The structural key a mark must carry to participate in the z-sort:
22
+ * presentation `z` (default 0), its default `band`, and a global
23
+ * monotonic declaration `seq` (ingest order = script order) that makes
24
+ * the comparator total and deterministic.
25
+ *
26
+ * @since 1.7
27
+ * @stable
28
+ * @example
29
+ * const k: RenderOrderKey = { z: 0, band: RENDER_BAND.series, seq: 0 };
30
+ * void k;
31
+ */
32
+ export type RenderOrderKey = {
33
+ readonly z: number;
34
+ readonly band: number;
35
+ readonly seq: number;
36
+ };
37
+ /**
38
+ * Stable total order for the z-ordered paint pass: ascending by `z`,
39
+ * then `band`, then `seq`. Sorts in place and returns the same array
40
+ * for chaining. Generic over the mark payload so every adapter keeps
41
+ * its own mark union and shares ONE comparator (no hand-port).
42
+ *
43
+ * @since 1.7
44
+ * @stable
45
+ * @example
46
+ * const marks = [{ z: 1, band: 0, seq: 0 }, { z: 0, band: 0, seq: 1 }];
47
+ * sortByRenderOrder(marks);
48
+ * // marks[0].z === 0
49
+ * void marks;
50
+ */
51
+ export declare function sortByRenderOrder<T extends RenderOrderKey>(marks: T[]): T[];
52
+ //# sourceMappingURL=renderOrder.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"renderOrder.d.ts","sourceRoot":"","sources":["../../src/geometry/renderOrder.ts"],"names":[],"mappings":"AAGA;;;;;;;;;;;;GAYG;AACH,eAAO,MAAM,WAAW;;;;;CAAyD,CAAC;AAElF;;;;;;;;;;;GAWG;AACH,MAAM,MAAM,cAAc,GAAG;IAAE,QAAQ,CAAC,CAAC,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAA;CAAE,CAAC;AAEjG;;;;;;;;;;;;;GAaG;AACH,wBAAgB,iBAAiB,CAAC,CAAC,SAAS,cAAc,EAAE,KAAK,EAAE,CAAC,EAAE,GAAG,CAAC,EAAE,CAG3E"}
@@ -0,0 +1,35 @@
1
+ // Copyright (c) 2026 Invinite. Licensed under the MIT License.
2
+ // See the LICENSE file in the repo root for full license text.
3
+ /**
4
+ * Default render-order bands. At the default `z = 0` the composite key
5
+ * reduces to `(band, seq)` = series → glyphs → hlines → drawings, the
6
+ * phase order every adapter shared before `z` existed. A `z < 0` mark
7
+ * sorts beneath `z = 0` marks; a `z > 0` plot sorts above drawings —
8
+ * the lever a fixed band stack cannot express.
9
+ *
10
+ * @since 1.7
11
+ * @stable
12
+ * @example
13
+ * const seriesBeforeDrawing = RENDER_BAND.series < RENDER_BAND.drawing;
14
+ * void seriesBeforeDrawing;
15
+ */
16
+ export const RENDER_BAND = { series: 0, glyph: 1, hline: 2, drawing: 3 };
17
+ /**
18
+ * Stable total order for the z-ordered paint pass: ascending by `z`,
19
+ * then `band`, then `seq`. Sorts in place and returns the same array
20
+ * for chaining. Generic over the mark payload so every adapter keeps
21
+ * its own mark union and shares ONE comparator (no hand-port).
22
+ *
23
+ * @since 1.7
24
+ * @stable
25
+ * @example
26
+ * const marks = [{ z: 1, band: 0, seq: 0 }, { z: 0, band: 0, seq: 1 }];
27
+ * sortByRenderOrder(marks);
28
+ * // marks[0].z === 0
29
+ * void marks;
30
+ */
31
+ export function sortByRenderOrder(marks) {
32
+ marks.sort((a, b) => a.z - b.z || a.band - b.band || a.seq - b.seq);
33
+ return marks;
34
+ }
35
+ //# sourceMappingURL=renderOrder.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"renderOrder.js","sourceRoot":"","sources":["../../src/geometry/renderOrder.ts"],"names":[],"mappings":"AAAA,+DAA+D;AAC/D,+DAA+D;AAE/D;;;;;;;;;;;;GAYG;AACH,MAAM,CAAC,MAAM,WAAW,GAAG,EAAE,MAAM,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,OAAO,EAAE,CAAC,EAAW,CAAC;AAgBlF;;;;;;;;;;;;;GAaG;AACH,MAAM,UAAU,iBAAiB,CAA2B,KAAU;IAClE,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,GAAG,CAAC,CAAC,IAAI,IAAI,CAAC,CAAC,GAAG,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC;IACpE,OAAO,KAAK,CAAC;AACjB,CAAC","sourcesContent":["// Copyright (c) 2026 Invinite. Licensed under the MIT License.\n// See the LICENSE file in the repo root for full license text.\n\n/**\n * Default render-order bands. At the default `z = 0` the composite key\n * reduces to `(band, seq)` = series → glyphs → hlines → drawings, the\n * phase order every adapter shared before `z` existed. A `z < 0` mark\n * sorts beneath `z = 0` marks; a `z > 0` plot sorts above drawings —\n * the lever a fixed band stack cannot express.\n *\n * @since 1.7\n * @stable\n * @example\n * const seriesBeforeDrawing = RENDER_BAND.series < RENDER_BAND.drawing;\n * void seriesBeforeDrawing;\n */\nexport const RENDER_BAND = { series: 0, glyph: 1, hline: 2, drawing: 3 } as const;\n\n/**\n * The structural key a mark must carry to participate in the z-sort:\n * presentation `z` (default 0), its default `band`, and a global\n * monotonic declaration `seq` (ingest order = script order) that makes\n * the comparator total and deterministic.\n *\n * @since 1.7\n * @stable\n * @example\n * const k: RenderOrderKey = { z: 0, band: RENDER_BAND.series, seq: 0 };\n * void k;\n */\nexport type RenderOrderKey = { readonly z: number; readonly band: number; readonly seq: number };\n\n/**\n * Stable total order for the z-ordered paint pass: ascending by `z`,\n * then `band`, then `seq`. Sorts in place and returns the same array\n * for chaining. Generic over the mark payload so every adapter keeps\n * its own mark union and shares ONE comparator (no hand-port).\n *\n * @since 1.7\n * @stable\n * @example\n * const marks = [{ z: 1, band: 0, seq: 0 }, { z: 0, band: 0, seq: 1 }];\n * sortByRenderOrder(marks);\n * // marks[0].z === 0\n * void marks;\n */\nexport function sortByRenderOrder<T extends RenderOrderKey>(marks: T[]): T[] {\n marks.sort((a, b) => a.z - b.z || a.band - b.band || a.seq - b.seq);\n return marks;\n}\n"]}
@@ -0,0 +1,117 @@
1
+ import type { Viewport } from "./types.js";
2
+ /**
3
+ * Median adjacent-bar time delta of a run, used to extrapolate the time
4
+ * of a bar that lies past the data edge (a future `+k` shift) or before
5
+ * the first bar (a far-past `−k` shift). Returns `0` for a run of fewer
6
+ * than two bars — a degenerate, zero-spacing run that
7
+ * {@link shiftedBarTime} maps to the anchor bar's own time (no NaN).
8
+ *
9
+ * @since 1.7
10
+ * @stable
11
+ * @example
12
+ * const s = medianBarSpacing([{ time: 0 }, { time: 10 }, { time: 30 }]);
13
+ * // s === 15 (median of deltas [10, 20])
14
+ * void s;
15
+ */
16
+ export declare function medianBarSpacing(bars: ReadonlyArray<{
17
+ readonly time: number;
18
+ }>): number;
19
+ /**
20
+ * Resolve the world time a series point computed at bar index `bar`
21
+ * should render at when displaced by `xShift` bars. The target index
22
+ * `j = bar + xShift`:
23
+ *
24
+ * - in range (`0 ≤ j ≤ last`) ⇒ that bar's exact `time`;
25
+ * - past the last bar (`j > last`) ⇒ extrapolated from the last bar's
26
+ * time and `spacing` (`+k` future projection);
27
+ * - before the first bar (`j < 0`) ⇒ extrapolated from the first bar's
28
+ * time and `spacing` (far-past `−k` projection).
29
+ *
30
+ * `xShift` omitted / `0` with an in-range `bar` returns the bar's own
31
+ * time, so the drawn x is byte-identical to the pre-shift
32
+ * `timeToX(point.time)`. An empty bar run returns `0`.
33
+ *
34
+ * @since 1.7
35
+ * @stable
36
+ * @example
37
+ * const bars = [{ time: 0 }, { time: 10 }, { time: 20 }];
38
+ * const t = shiftedBarTime({ bars, bar: 1, xShift: -1, spacing: 10 });
39
+ * // t === 0 (bar 1 shifted one left → bar 0's time)
40
+ * void t;
41
+ */
42
+ export declare function shiftedBarTime(args: {
43
+ readonly bars: ReadonlyArray<{
44
+ readonly time: number;
45
+ }>;
46
+ readonly bar: number;
47
+ readonly xShift: number | undefined;
48
+ readonly spacing: number;
49
+ }): number;
50
+ /**
51
+ * Map a series point's `bar` + `xShift` to an x pixel coordinate:
52
+ * {@link shiftedBarTime} resolves the displaced world time, then
53
+ * {@link timeToX} projects it into the viewport. The single projection
54
+ * funnel every shifted-series render path (line, step-line, histogram,
55
+ * shape / character / arrow glyphs) routes through so the bar-offset
56
+ * math is defined once. Pure on world inputs only — no `ctx`.
57
+ *
58
+ * @since 1.7
59
+ * @stable
60
+ * @example
61
+ * const bars = [{ time: 0 }, { time: 10 }, { time: 20 }];
62
+ * const vp = { xMin: 0, xMax: 20, yMin: 0, yMax: 1, pxWidth: 200, pxHeight: 1 };
63
+ * const x = projectShiftedX({ bars, bar: 0, xShift: 1, spacing: 10 }, vp);
64
+ * // x === 100 (bar 0 shifted one right → bar 1's x)
65
+ * void x;
66
+ */
67
+ export declare function projectShiftedX(args: {
68
+ readonly bars: ReadonlyArray<{
69
+ readonly time: number;
70
+ }>;
71
+ readonly bar: number;
72
+ readonly xShift: number | undefined;
73
+ readonly spacing: number;
74
+ }, viewport: Viewport): number;
75
+ /**
76
+ * The largest world time any of `points` reaches once its POSITIVE
77
+ * `xShift` is applied, never below the `xMax` seed. A self-scaled adapter
78
+ * widens its pane's data `xMax` by this value so a `+k` future-projected
79
+ * point stays inside the viewport instead of being clipped past the data
80
+ * edge. Only `xShift > 0` targets extend the edge — a far-past (`−k`)
81
+ * point is canvas-clipped at negative x and never widens the window, and
82
+ * an omitted / `0` shift contributes nothing. Pass the pane's current
83
+ * `xMax` (e.g. the last bar's time) as the seed; an empty bar run leaves
84
+ * the seed unchanged.
85
+ *
86
+ * @since 1.7
87
+ * @stable
88
+ * @example
89
+ * const bars = [{ time: 0 }, { time: 10 }, { time: 20 }];
90
+ * const pts = [{ bar: 2, xShift: 2 }, { bar: 0, xShift: -1 }];
91
+ * const xMax = maxShiftedTime(pts, bars, 10, 20);
92
+ * // xMax === 40 (bar 2 shifted +2 → time 40; the −1 point is ignored)
93
+ * void xMax;
94
+ */
95
+ export declare function maxShiftedTime(points: ReadonlyArray<{
96
+ readonly bar: number;
97
+ readonly xShift?: number;
98
+ }>, bars: ReadonlyArray<{
99
+ readonly time: number;
100
+ }>, spacing: number, xMax: number): number;
101
+ /**
102
+ * The (possibly out-of-range) category index a point computed at `bar`
103
+ * occupies when displaced by `xShift`: `bar + (xShift ?? 0)`. A
104
+ * category/index adapter (ECharts) writes the value at this column,
105
+ * extending its category axis by `max(0, index − lastIndex)` synthetic
106
+ * future slots and clipping a negative `index` (no negative category) —
107
+ * the index analogue of {@link shiftedBarTime}'s time extrapolation.
108
+ *
109
+ * @since 1.7
110
+ * @stable
111
+ * @example
112
+ * const j = shiftedBarIndex(3, 5);
113
+ * // j === 8
114
+ * void j;
115
+ */
116
+ export declare function shiftedBarIndex(bar: number, xShift: number | undefined): number;
117
+ //# sourceMappingURL=shift.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"shift.d.ts","sourceRoot":"","sources":["../../src/geometry/shift.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AAU3C;;;;;;;;;;;;;GAaG;AACH,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,aAAa,CAAC;IAAE,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAA;CAAE,CAAC,GAAG,MAAM,CASvF;AAED;;;;;;;;;;;;;;;;;;;;;;GAsBG;AACH,wBAAgB,cAAc,CAAC,IAAI,EAAE;IACjC,QAAQ,CAAC,IAAI,EAAE,aAAa,CAAC;QAAE,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IACxD,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC;IACrB,QAAQ,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,CAAC;IACpC,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;CAC5B,GAAG,MAAM,CAQT;AAED;;;;;;;;;;;;;;;;GAgBG;AACH,wBAAgB,eAAe,CAC3B,IAAI,EAAE;IACF,QAAQ,CAAC,IAAI,EAAE,aAAa,CAAC;QAAE,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IACxD,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC;IACrB,QAAQ,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,CAAC;IACpC,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;CAC5B,EACD,QAAQ,EAAE,QAAQ,GACnB,MAAM,CAER;AAED;;;;;;;;;;;;;;;;;;;GAmBG;AACH,wBAAgB,cAAc,CAC1B,MAAM,EAAE,aAAa,CAAC;IAAE,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,CAAA;CAAE,CAAC,EACzE,IAAI,EAAE,aAAa,CAAC;IAAE,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAA;CAAE,CAAC,EAC9C,OAAO,EAAE,MAAM,EACf,IAAI,EAAE,MAAM,GACb,MAAM,CASR;AAED;;;;;;;;;;;;;;GAcG;AACH,wBAAgB,eAAe,CAAC,GAAG,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,SAAS,GAAG,MAAM,CAE/E"}