basalt-ui 1.20.0 → 1.22.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.
- package/AGENTS.md +11 -5
- package/CHANGELOG.md +33 -0
- package/MIGRATING.md +231 -50
- package/README.md +57 -10
- package/agent/rules/basalt-app.md +49 -2
- package/agent/rules/basalt-charts.md +15 -12
- package/agent/rules/basalt-content.md +4 -0
- package/agent/rules/basalt-router.md +57 -5
- package/agent/rules/basalt-state.md +21 -3
- package/agent/rules/basalt-tokens.md +78 -16
- package/agent/skills/basalt-app/SKILL.md +5 -1
- package/agent/skills/basalt-charts/SKILL.md +5 -3
- package/agent/templates/CLAUDE-block.md.tpl +11 -5
- package/configs/lefthook.yml +48 -15
- package/configs/oxlint-plugin.js +218 -69
- package/configs/oxlint-plugin.test.ts +331 -9
- package/dist/charts/kinds/Bars.d.ts +1 -1
- package/dist/charts/kinds/Bars.d.ts.map +1 -1
- package/dist/charts/kinds/Donut.d.ts +1 -1
- package/dist/charts/kinds/Donut.d.ts.map +1 -1
- package/dist/charts/kinds/DualPanel.d.ts +1 -1
- package/dist/charts/kinds/DualPanel.d.ts.map +1 -1
- package/dist/charts/kinds/Heatmap.d.ts +1 -1
- package/dist/charts/kinds/Heatmap.d.ts.map +1 -1
- package/dist/charts/kinds/MultiLine.d.ts +1 -1
- package/dist/charts/kinds/MultiLine.d.ts.map +1 -1
- package/dist/charts/kinds/StackedArea.d.ts +1 -1
- package/dist/charts/kinds/StackedArea.d.ts.map +1 -1
- package/dist/charts/kinds/ZonedLine.d.ts +1 -1
- package/dist/charts/kinds/ZonedLine.d.ts.map +1 -1
- package/dist/cli/index.d.ts +55 -15
- package/dist/cli/index.d.ts.map +1 -1
- package/dist/cli/index.js +521 -71
- package/dist/cli/waiver-audit.test.d.ts +2 -0
- package/dist/cli/waiver-audit.test.d.ts.map +1 -0
- package/dist/guard/index.d.ts +114 -2
- package/dist/guard/index.d.ts.map +1 -1
- package/dist/guard/index.js +216 -33
- package/dist/router-tanstack/multi-search-param-store.d.ts +13 -0
- package/dist/router-tanstack/multi-search-param-store.d.ts.map +1 -1
- package/dist/router-tanstack/multi-search-param-store.js +4 -1
- package/dist/router-tanstack/search-param-store.d.ts +29 -5
- package/dist/router-tanstack/search-param-store.d.ts.map +1 -1
- package/dist/router-tanstack/search-param-store.js +31 -3
- package/dist/router-tanstack/search-param-store.test.d.ts +2 -0
- package/dist/router-tanstack/search-param-store.test.d.ts.map +1 -0
- package/dist/shell/index.d.ts +12 -5
- package/dist/shell/index.d.ts.map +1 -1
- package/dist/shell/index.js +24 -6
- package/dist/tokens/index.d.ts +3 -1
- package/dist/tokens/index.d.ts.map +1 -1
- package/dist/tokens/index.js +5 -1
- package/dist/tokens/palette.d.ts +2 -2
- package/dist/tokens/palette.js +2 -2
- package/dist/tokens/text-scale.test.d.ts +2 -0
- package/dist/tokens/text-scale.test.d.ts.map +1 -0
- package/dist/tokens.css +4 -2
- package/dist/vite.d.ts +28 -3
- package/dist/vite.d.ts.map +1 -1
- package/dist/vite.js +75 -26
- package/llms.txt +2 -2
- package/package.json +1 -1
- package/src/charts/kinds/Bars.tsx +1 -1
- package/src/charts/kinds/Donut.tsx +1 -1
- package/src/charts/kinds/DualPanel.tsx +2 -2
- package/src/charts/kinds/Heatmap.tsx +1 -1
- package/src/charts/kinds/MultiLine.tsx +1 -1
- package/src/charts/kinds/StackedArea.tsx +1 -1
- package/src/charts/kinds/ZonedLine.tsx +1 -1
- package/src/cli/check-theme.test.ts +35 -0
- package/src/cli/help.test.ts +5 -1
- package/src/cli/index.ts +978 -133
- package/src/cli/init-sync.test.ts +2 -0
- package/src/cli/template-ledger.test.ts +1 -1
- package/src/cli/toolchain-wiring.test.ts +352 -1
- package/src/cli/waiver-audit.test.ts +211 -0
- package/src/guard/check-source.test.ts +638 -1
- package/src/guard/index.ts +556 -63
- package/src/router-tanstack/multi-search-param-store.ts +16 -1
- package/src/router-tanstack/search-param-store.test.ts +135 -0
- package/src/router-tanstack/search-param-store.ts +90 -8
- package/src/shell/app-mobile-nav.tsx +1 -1
- package/src/shell/index.test.tsx +52 -0
- package/src/shell/index.tsx +64 -13
- package/src/tokens/index.ts +24 -1
- package/src/tokens/palette.ts +2 -2
- package/src/tokens/text-scale.test.ts +51 -0
- package/src/vite.test.ts +158 -6
- package/src/vite.ts +176 -34
|
@@ -44,6 +44,13 @@ beforeEach(() => {
|
|
|
44
44
|
},
|
|
45
45
|
}),
|
|
46
46
|
)
|
|
47
|
+
// `shadow-basalt-export` and `ai-sdk-major` both scope through `isBasaltScopedFile`, so a fixture
|
|
48
|
+
// repo with NO manifest is out of scope for both and every other assertion here would pass
|
|
49
|
+
// vacuously. Written per-test by the `ai-sdk-major` block, which needs its own `ai` pin.
|
|
50
|
+
writeFileSync(
|
|
51
|
+
resolve(dir, 'package.json'),
|
|
52
|
+
JSON.stringify({ name: 'fixture', version: '0.0.0', dependencies: { 'basalt-ui': '^1.21.0' } }),
|
|
53
|
+
)
|
|
47
54
|
})
|
|
48
55
|
|
|
49
56
|
afterEach(() => {
|
|
@@ -51,7 +58,10 @@ afterEach(() => {
|
|
|
51
58
|
})
|
|
52
59
|
|
|
53
60
|
/** Writes `source` as the sole fixture file and runs oxlint against the temp fixture repo. */
|
|
54
|
-
function run(
|
|
61
|
+
function run(
|
|
62
|
+
source: string,
|
|
63
|
+
filename = 'fixture.tsx',
|
|
64
|
+
): { code: number; rules: Set<string>; output: string } {
|
|
55
65
|
const filePath = resolve(dir, filename)
|
|
56
66
|
mkdirSync(dirname(filePath), { recursive: true })
|
|
57
67
|
writeFileSync(filePath, source)
|
|
@@ -60,7 +70,7 @@ function run(source: string, filename = 'fixture.tsx'): { code: number; rules: S
|
|
|
60
70
|
const rules = new Set(
|
|
61
71
|
[...output.matchAll(/\(basalt\/([\w-]+)\)/g)].map((match) => match[1] as string),
|
|
62
72
|
)
|
|
63
|
-
return { code: result.exitCode ?? 0, rules }
|
|
73
|
+
return { code: result.exitCode ?? 0, rules, output }
|
|
64
74
|
}
|
|
65
75
|
|
|
66
76
|
// ── no-raw-font-size ─────────────────────────────────────────────────────────
|
|
@@ -467,6 +477,29 @@ describe('basalt/ai-sdk-major', () => {
|
|
|
467
477
|
expect(rules).not.toContain('ai-sdk-major')
|
|
468
478
|
})
|
|
469
479
|
|
|
480
|
+
// The ORDERING half of the scoping fix, and the layout `init` produces for a monorepo: one
|
|
481
|
+
// manifest carrying BOTH the workspace-root CLI devDependency and `basalt.roots` naming the app.
|
|
482
|
+
// Dep-first returned in-scope on that root before `roots` was ever read, so rb's `apps/api` — no
|
|
483
|
+
// basalt dependency, deliberately on a different `ai` major, explicitly outside the roots — kept
|
|
484
|
+
// taking 3 errors and kept its `.oxlintrc.json` override.
|
|
485
|
+
it('reads basalt.roots BEFORE the basalt-ui dependency in the same manifest', () => {
|
|
486
|
+
writeFileSync(
|
|
487
|
+
resolve(dir, 'package.json'),
|
|
488
|
+
JSON.stringify({
|
|
489
|
+
basalt: { roots: ['apps/web/src'] },
|
|
490
|
+
devDependencies: { 'basalt-ui': '^1.20.0' },
|
|
491
|
+
dependencies: { ai: '5.0.196' },
|
|
492
|
+
}),
|
|
493
|
+
)
|
|
494
|
+
const outside = run(`import { streamText } from 'ai'\n`, 'apps/api/src/llm.ts')
|
|
495
|
+
expect(outside.code).toBe(0)
|
|
496
|
+
expect(outside.rules).not.toContain('ai-sdk-major')
|
|
497
|
+
|
|
498
|
+
// …and the declared root itself is still in scope, so the reorder narrows nothing it shouldn't.
|
|
499
|
+
const inside = run(`import { streamText } from 'ai'\n`, 'apps/web/src/llm.ts')
|
|
500
|
+
expect(inside.rules).toContain('ai-sdk-major')
|
|
501
|
+
})
|
|
502
|
+
|
|
470
503
|
it('DOES flag a file inside a declared basalt.roots', () => {
|
|
471
504
|
writeFileSync(
|
|
472
505
|
resolve(dir, 'package.json'),
|
|
@@ -559,13 +592,13 @@ describe('basalt/hand-rolled-plot', () => {
|
|
|
559
592
|
expect(rules).not.toContain('hand-rolled-plot')
|
|
560
593
|
})
|
|
561
594
|
|
|
562
|
-
//
|
|
563
|
-
//
|
|
564
|
-
it('a
|
|
595
|
+
// `theme-allow-file` is the written declaration about the file, and it covers every assembly node
|
|
596
|
+
// in it — the DualPanel shape.
|
|
597
|
+
it('a theme-allow-file declaration covers the whole file', () => {
|
|
565
598
|
const { code, rules } = run(
|
|
566
599
|
`${CHARTS_IMPORT}export const C = () => (
|
|
567
600
|
<svg>
|
|
568
|
-
{/* theme-allow basalt/hand-rolled-plot: multi-pane shape, not a single cartesian plot */}
|
|
601
|
+
{/* theme-allow-file basalt/hand-rolled-plot: multi-pane shape, not a single cartesian plot */}
|
|
569
602
|
<AxisLeftNumeric scale={a} />
|
|
570
603
|
<HoverOverlay width={1} height={1} />
|
|
571
604
|
<Crosshair x={0} top={0} bottom={1} />
|
|
@@ -576,6 +609,23 @@ describe('basalt/hand-rolled-plot', () => {
|
|
|
576
609
|
expect(rules).not.toContain('hand-rolled-plot')
|
|
577
610
|
})
|
|
578
611
|
|
|
612
|
+
// The other half of the 1.20.0 fix. Naming the rule AND giving a reason used to promote the
|
|
613
|
+
// waiver to the whole file, which made whole-file the ONLY expressible scope: the shape the rule's
|
|
614
|
+
// own message asks for was the shape that granted immunity. It is now what it reads as — one node.
|
|
615
|
+
it('a named-with-a-reason theme-allow waives its own node ONLY, not the file', () => {
|
|
616
|
+
const { code, rules } = run(
|
|
617
|
+
`${CHARTS_IMPORT}export const C = () => (
|
|
618
|
+
<svg>
|
|
619
|
+
{/* theme-allow basalt/hand-rolled-plot — this one axis is drawn against a second scale */}
|
|
620
|
+
<AxisLeftNumeric scale={a} />
|
|
621
|
+
<HoverOverlay width={1} height={1} />
|
|
622
|
+
</svg>
|
|
623
|
+
)\n`,
|
|
624
|
+
)
|
|
625
|
+
expect(code).toBe(1)
|
|
626
|
+
expect(rules).toContain('hand-rolled-plot')
|
|
627
|
+
})
|
|
628
|
+
|
|
579
629
|
// The linewatch defect: a BARE comment used to buy the whole file permanent immunity, because
|
|
580
630
|
// only the first node was reported and the waiver was tested there. It now waives its own node
|
|
581
631
|
// and nothing else, so everything added to the file afterwards is still reported.
|
|
@@ -616,25 +666,152 @@ export const C = () => <svg><Crosshair x={0} /></svg>\n`,
|
|
|
616
666
|
expect(rules).not.toContain('hand-rolled-plot')
|
|
617
667
|
})
|
|
618
668
|
|
|
669
|
+
// `code` is 1 in both of these and that is correct: a CONSUMER file declaring `CartesianChart`
|
|
670
|
+
// shadows a basalt export, which `shadow-basalt-export` now sees since it reads the charts barrel
|
|
671
|
+
// too. The assertion under test is that `hand-rolled-plot` stays silent — a rule saying "compose
|
|
672
|
+
// X" cannot fire inside X.
|
|
619
673
|
it('does NOT flag the module that DEFINES CartesianChart (function form)', () => {
|
|
620
|
-
const {
|
|
674
|
+
const { rules } = run(
|
|
621
675
|
`import { AxisBottomDate } from '../primitives/Axes'
|
|
622
676
|
export function CartesianChart() {
|
|
623
677
|
return <svg><AxisBottomDate scale={s} top={0} tickValues={[]} /></svg>
|
|
624
678
|
}\n`,
|
|
625
679
|
)
|
|
626
|
-
expect(code).toBe(0)
|
|
627
680
|
expect(rules).not.toContain('hand-rolled-plot')
|
|
628
681
|
})
|
|
629
682
|
|
|
630
683
|
it('does NOT flag the module that DEFINES CartesianChart (const form)', () => {
|
|
631
|
-
const {
|
|
684
|
+
const { rules } = run(
|
|
632
685
|
`import { AxisBottomDate } from '../primitives/Axes'
|
|
633
686
|
export const CartesianChart = () => <svg><AxisBottomDate scale={s} top={0} tickValues={[]} /></svg>\n`,
|
|
687
|
+
)
|
|
688
|
+
expect(rules).not.toContain('hand-rolled-plot')
|
|
689
|
+
})
|
|
690
|
+
})
|
|
691
|
+
|
|
692
|
+
// ── theme-allow grammar — the accepted and rejected shapes, exhaustively ─────
|
|
693
|
+
//
|
|
694
|
+
// Two rounds produced three holes in this one contract, so it gets a matrix rather than a case.
|
|
695
|
+
// `hand-rolled-plot` is the vehicle: it is the only rule with BOTH scopes, so one fixture shape
|
|
696
|
+
// exercises the node waiver, the file declaration and the prefix rule at once.
|
|
697
|
+
|
|
698
|
+
describe('theme-allow grammar', () => {
|
|
699
|
+
/** Two assembly nodes, with `annotation` placed as a comment-only line above the first. */
|
|
700
|
+
function twoNodes(annotation: string): { code: number; rules: Set<string> } {
|
|
701
|
+
return run(
|
|
702
|
+
`${CHARTS_IMPORT}export const C = () => (
|
|
703
|
+
<svg>
|
|
704
|
+
${annotation}
|
|
705
|
+
<AxisLeftNumeric scale={a} />
|
|
706
|
+
<HoverOverlay width={1} height={1} />
|
|
707
|
+
</svg>
|
|
708
|
+
)\n`,
|
|
709
|
+
)
|
|
710
|
+
}
|
|
711
|
+
|
|
712
|
+
const waivesFirstNodeOnly = (annotation: string) => {
|
|
713
|
+
const { rules } = twoNodes(annotation)
|
|
714
|
+
expect([annotation, rules.has('hand-rolled-plot')]).toEqual([annotation, true])
|
|
715
|
+
}
|
|
716
|
+
const waivesWholeFile = (annotation: string) => {
|
|
717
|
+
const { rules } = twoNodes(annotation)
|
|
718
|
+
expect([annotation, rules.has('hand-rolled-plot')]).toEqual([annotation, false])
|
|
719
|
+
}
|
|
720
|
+
|
|
721
|
+
// ── ACCEPTED as a NODE waiver (the second node still reports) ──────────────
|
|
722
|
+
|
|
723
|
+
it.each([
|
|
724
|
+
'{/* theme-allow */}',
|
|
725
|
+
'{/* theme-allow hand-rolled-plot */}',
|
|
726
|
+
'{/* theme-allow hand-rolled-plot — a reason */}',
|
|
727
|
+
'{/* theme-allow basalt/hand-rolled-plot: a reason */}',
|
|
728
|
+
'{/* theme-allow hand-rolled-plot, raw-hex — two ids */}',
|
|
729
|
+
'{/*theme-allow hand-rolled-plot — no space after the opener*/}',
|
|
730
|
+
])('%s waives its own node and leaves the rest policed', waivesFirstNodeOnly)
|
|
731
|
+
|
|
732
|
+
// ── ACCEPTED as a FILE declaration (nothing in the file reports) ───────────
|
|
733
|
+
|
|
734
|
+
it.each([
|
|
735
|
+
'{/* theme-allow-file hand-rolled-plot — a reason */}',
|
|
736
|
+
'{/* theme-allow-file basalt/hand-rolled-plot: a reason */}',
|
|
737
|
+
'{/* theme-allow-file hand-rolled-plot */}',
|
|
738
|
+
'{/* theme-allow-file hand-rolled-plot, chart-legend-literal — two ids */}',
|
|
739
|
+
])('%s declares the whole file', waivesWholeFile)
|
|
740
|
+
|
|
741
|
+
it('a theme-allow-file inside a docblock, detached from any node, declares the file', () => {
|
|
742
|
+
const { code, rules } = run(
|
|
743
|
+
`${CHARTS_IMPORT}/**
|
|
744
|
+
* A two-pane shape.
|
|
745
|
+
*
|
|
746
|
+
* theme-allow-file hand-rolled-plot — two panes over one x scale is not a single plot
|
|
747
|
+
*/
|
|
748
|
+
export const C = () => (
|
|
749
|
+
<svg>
|
|
750
|
+
<AxisLeftNumeric scale={a} />
|
|
751
|
+
<HoverOverlay width={1} height={1} />
|
|
752
|
+
</svg>
|
|
753
|
+
)\n`,
|
|
634
754
|
)
|
|
635
755
|
expect(code).toBe(0)
|
|
636
756
|
expect(rules).not.toContain('hand-rolled-plot')
|
|
637
757
|
})
|
|
758
|
+
|
|
759
|
+
// ── REJECTED — prose that merely MENTIONS the token (the linewatch defect) ─
|
|
760
|
+
|
|
761
|
+
// The whole class: a file documenting its own waivers used to disarm itself. Every one of these
|
|
762
|
+
// parsed as the bare blanket form under the old `indexOf('theme-allow')` and silenced the node
|
|
763
|
+
// below it. All four are shapes taken from real consumer source.
|
|
764
|
+
it.each([
|
|
765
|
+
'{/* Since 1.20.0 a `theme-allow` that names a rule is a file declaration */}',
|
|
766
|
+
'{/* see the theme-allow contract for how this file is waived */}',
|
|
767
|
+
'{/* `theme-allow` with a reason declares the whole FILE wherever it is written */}',
|
|
768
|
+
'{/* each with a theme-allow saying why */}',
|
|
769
|
+
])('%s is prose, not an annotation — it waives nothing', (annotation) => {
|
|
770
|
+
const { code, rules } = twoNodes(annotation)
|
|
771
|
+
expect([annotation, code]).toEqual([annotation, 1])
|
|
772
|
+
expect([annotation, rules.has('hand-rolled-plot')]).toEqual([annotation, true])
|
|
773
|
+
})
|
|
774
|
+
|
|
775
|
+
it('a prose docblock line mentioning theme-allow-file does not declare the file', () => {
|
|
776
|
+
const { rules } = twoNodes(
|
|
777
|
+
'{/* the shape to write here is a theme-allow-file hand-rolled-plot — see the docs */}',
|
|
778
|
+
)
|
|
779
|
+
expect(rules).toContain('hand-rolled-plot')
|
|
780
|
+
})
|
|
781
|
+
|
|
782
|
+
// ── REJECTED — a longer word that merely STARTS with the token ─────────────
|
|
783
|
+
|
|
784
|
+
// `theme-allow-unscoped` is a KIND NAME, written in prose constantly. It used to consume no id,
|
|
785
|
+
// fall through to the empty-`rules` branch, and read as a blanket waiver.
|
|
786
|
+
it('a comment starting with the kind name `theme-allow-unscoped` is not an annotation', () => {
|
|
787
|
+
const { rules } = twoNodes('{/* theme-allow-unscoped is what reports a bare waiver */}')
|
|
788
|
+
expect(rules).toContain('hand-rolled-plot')
|
|
789
|
+
})
|
|
790
|
+
|
|
791
|
+
// ── REJECTED — a bare file declaration, and a typo'd id ────────────────────
|
|
792
|
+
|
|
793
|
+
it('a BARE theme-allow-file waives nothing — file scope must name its ids', () => {
|
|
794
|
+
const { code, rules } = twoNodes('{/* theme-allow-file — everything in here is bespoke */}')
|
|
795
|
+
expect(code).toBe(1)
|
|
796
|
+
expect(rules).toContain('hand-rolled-plot')
|
|
797
|
+
})
|
|
798
|
+
|
|
799
|
+
it("a theme-allow-file naming a typo'd id waives nothing", () => {
|
|
800
|
+
const { rules } = twoNodes('{/* theme-allow-file hand-rolled-plott — a reason */}')
|
|
801
|
+
expect(rules).toContain('hand-rolled-plot')
|
|
802
|
+
})
|
|
803
|
+
|
|
804
|
+
it('a theme-allow-file scoped to a DIFFERENT rule does not waive this one', () => {
|
|
805
|
+
const { rules } = twoNodes('{/* theme-allow-file raw-hex — the swatch is a measured pixel */}')
|
|
806
|
+
expect(rules).toContain('hand-rolled-plot')
|
|
807
|
+
})
|
|
808
|
+
|
|
809
|
+
// ── REJECTED — the token inside a string literal, not a comment ────────────
|
|
810
|
+
|
|
811
|
+
it('the token inside a string literal is code, not an annotation', () => {
|
|
812
|
+
const { rules } = twoNodes("{'theme-allow hand-rolled-plot — a reason'}")
|
|
813
|
+
expect(rules).toContain('hand-rolled-plot')
|
|
814
|
+
})
|
|
638
815
|
})
|
|
639
816
|
|
|
640
817
|
// ── chart-legend-literal ─────────────────────────────────────────────────────
|
|
@@ -697,6 +874,42 @@ describe('basalt/shadow-basalt-export', () => {
|
|
|
697
874
|
expect(rules).not.toContain('shadow-basalt-export')
|
|
698
875
|
})
|
|
699
876
|
|
|
877
|
+
// The rule read ONLY the root barrel, and `./charts` is deliberately not re-exported from it —
|
|
878
|
+
// so a consumer whose forks all live in the chart layer, which is the layer forks actually live
|
|
879
|
+
// in, could never trip it. Correctly silent, for the wrong reason.
|
|
880
|
+
it('sees the charts layer, not just the root barrel', () => {
|
|
881
|
+
const { code, rules } = run(`export function ChartCard() { return null }\n`)
|
|
882
|
+
expect(code).toBe(1)
|
|
883
|
+
expect(rules).toContain('shadow-basalt-export')
|
|
884
|
+
})
|
|
885
|
+
|
|
886
|
+
it('sees the content layer too', () => {
|
|
887
|
+
const { rules } = run(`export function ReadingProgress() { return null }\n`)
|
|
888
|
+
expect(rules).toContain('shadow-basalt-export')
|
|
889
|
+
})
|
|
890
|
+
|
|
891
|
+
// …but a barrel is not only basalt's own names. `./charts` re-exports `Bar`, `Line`, `Pie`,
|
|
892
|
+
// `AreaClosed` … straight from `@visx/shape`, and a local `Bar` is not a fork of anything basalt
|
|
893
|
+
// wrote. The playground's own demo tripped on it the moment the rule started reading that barrel.
|
|
894
|
+
it('does NOT flag a name the barrel merely re-exports from a third party', () => {
|
|
895
|
+
const { code, rules } = run(`export function Bar() { return null }\n`)
|
|
896
|
+
expect(code).toBe(0)
|
|
897
|
+
expect(rules).not.toContain('shadow-basalt-export')
|
|
898
|
+
})
|
|
899
|
+
|
|
900
|
+
// A NAME collision is the whole of the signal, so renaming defeats the rule in one keystroke —
|
|
901
|
+
// linewatch's forks are `Cell` and `Box`, rb's is `Stat`, and all three are invisible here. That
|
|
902
|
+
// limit cannot be closed without intent analysis, so the rule STATES it rather than implying
|
|
903
|
+
// coverage it does not have.
|
|
904
|
+
it('a renamed fork is invisible, and the message says so rather than implying coverage', () => {
|
|
905
|
+
expect(run(`export function Stat() { return null }\n`).rules).not.toContain(
|
|
906
|
+
'shadow-basalt-export',
|
|
907
|
+
)
|
|
908
|
+
const { output } = run(`export function EmptyState() { return null }\n`)
|
|
909
|
+
expect(output).toContain('tripwire, not coverage')
|
|
910
|
+
expect(output).toContain('Silence here is not evidence')
|
|
911
|
+
})
|
|
912
|
+
|
|
700
913
|
// The export list is derived from the real barrel, so a TYPE export must not create a collision:
|
|
701
914
|
// a local `StatCardProps` is an ordinary thing for a consumer to declare.
|
|
702
915
|
it('does NOT flag a name that basalt exports only as a type', () => {
|
|
@@ -712,6 +925,115 @@ describe('basalt/shadow-basalt-export', () => {
|
|
|
712
925
|
expect(code).toBe(0)
|
|
713
926
|
expect(rules).not.toContain('shadow-basalt-export')
|
|
714
927
|
})
|
|
928
|
+
|
|
929
|
+
// The scoping fix, mirroring `ai-sdk-major`'s. obsidian's `packages/obsidian-vault-core` is
|
|
930
|
+
// React-free, carries no basalt-ui dependency, and sits outside the root's declared
|
|
931
|
+
// `basalt.roots` — so it CANNOT import the export it was told it had forked. The rule reported
|
|
932
|
+
// `SlugTracker` there anyway, because it was the one rule in this file that never asked.
|
|
933
|
+
it('does NOT flag a package that does not depend on basalt-ui at all', () => {
|
|
934
|
+
writeFileSync(resolve(dir, 'package.json'), JSON.stringify({ name: 'standalone' }))
|
|
935
|
+
const { code, rules } = run(`export function EmptyState() { return null }\n`)
|
|
936
|
+
expect(code).toBe(0)
|
|
937
|
+
expect(rules).not.toContain('shadow-basalt-export')
|
|
938
|
+
})
|
|
939
|
+
|
|
940
|
+
it('does NOT flag a file outside a declared basalt.roots', () => {
|
|
941
|
+
writeFileSync(
|
|
942
|
+
resolve(dir, 'package.json'),
|
|
943
|
+
JSON.stringify({
|
|
944
|
+
basalt: { roots: ['packages/ui/src'] },
|
|
945
|
+
devDependencies: { 'basalt-ui': '^1.21.0' },
|
|
946
|
+
}),
|
|
947
|
+
)
|
|
948
|
+
expect(
|
|
949
|
+
run(`export function EmptyState() { return null }\n`, 'packages/core/src/a.tsx').rules,
|
|
950
|
+
).not.toContain('shadow-basalt-export')
|
|
951
|
+
// …and the declared root is still policed, so the narrowing costs no real coverage.
|
|
952
|
+
expect(
|
|
953
|
+
run(`export function EmptyState() { return null }\n`, 'packages/ui/src/a.tsx').rules,
|
|
954
|
+
).toContain('shadow-basalt-export')
|
|
955
|
+
})
|
|
956
|
+
|
|
957
|
+
// The second half: a PascalCase name is not a component. The nine-barrel widening pulled every
|
|
958
|
+
// PascalCase value export into range, and a bare-PascalCase test then matched a plain data class
|
|
959
|
+
// (obsidian's `SlugTracker` — the same NAME basalt's `./content` exports, and nothing else).
|
|
960
|
+
it('does NOT flag a plain class that merely shares a name', () => {
|
|
961
|
+
const { code, rules } = run(`export class SlugTracker {}\n`, 'slug.ts')
|
|
962
|
+
expect(code).toBe(0)
|
|
963
|
+
expect(rules).not.toContain('shadow-basalt-export')
|
|
964
|
+
})
|
|
965
|
+
|
|
966
|
+
it('DOES still flag a legacy class component (one that extends)', () => {
|
|
967
|
+
const { rules } = run(`export class EmptyState extends Component {}\n`)
|
|
968
|
+
expect(rules).toContain('shadow-basalt-export')
|
|
969
|
+
})
|
|
970
|
+
|
|
971
|
+
it('does NOT flag a non-function binding that shares a name', () => {
|
|
972
|
+
const { code, rules } = run(`export const EmptyState = { label: 'none' }\n`, 'consts.ts')
|
|
973
|
+
expect(code).toBe(0)
|
|
974
|
+
expect(rules).not.toContain('shadow-basalt-export')
|
|
975
|
+
})
|
|
976
|
+
|
|
977
|
+
it('DOES still flag a memo/forwardRef-wrapped component', () => {
|
|
978
|
+
expect(run(`export const EmptyState = memo(() => null)\n`).rules).toContain(
|
|
979
|
+
'shadow-basalt-export',
|
|
980
|
+
)
|
|
981
|
+
expect(run(`export const EmptyState = React.forwardRef(() => null)\n`).rules).toContain(
|
|
982
|
+
'shadow-basalt-export',
|
|
983
|
+
)
|
|
984
|
+
})
|
|
985
|
+
})
|
|
986
|
+
|
|
987
|
+
// ── theme-allow comment shapes (the plugin half of the annotation contract) ───
|
|
988
|
+
|
|
989
|
+
// The prefix rule has had three holes found in three rounds, so every comment shape a consumer
|
|
990
|
+
// actually writes is pinned here — and the guard's copy is pinned identically in
|
|
991
|
+
// `src/guard/check-source.test.ts`. The two must agree on what an annotation IS.
|
|
992
|
+
describe('theme-allow comment shapes', () => {
|
|
993
|
+
const flags = (source: string): boolean => run(source).rules.has('no-raw-font-size')
|
|
994
|
+
|
|
995
|
+
it.each([
|
|
996
|
+
[
|
|
997
|
+
'own line //',
|
|
998
|
+
`// theme-allow no-raw-font-size — deliberate\nexport const C = <Text fz={10} />\n`,
|
|
999
|
+
],
|
|
1000
|
+
[
|
|
1001
|
+
'trailing //',
|
|
1002
|
+
`export const C = <Text fz={10} /> // theme-allow no-raw-font-size — deliberate\n`,
|
|
1003
|
+
],
|
|
1004
|
+
[
|
|
1005
|
+
'trailing block',
|
|
1006
|
+
`export const C = <Text fz={10} /* theme-allow no-raw-font-size — deliberate */ />\n`,
|
|
1007
|
+
],
|
|
1008
|
+
[
|
|
1009
|
+
'JSX expression comment',
|
|
1010
|
+
`export const C = () => (\n <div>\n {/* theme-allow no-raw-font-size — deliberate */}\n <Text fz={10} />\n </div>\n)\n`,
|
|
1011
|
+
],
|
|
1012
|
+
[
|
|
1013
|
+
'JSX expression comment, token on its own wrapped line',
|
|
1014
|
+
`export const C = () => (\n <div>\n {/*\n theme-allow no-raw-font-size — deliberate */}\n <Text fz={10} />\n </div>\n)\n`,
|
|
1015
|
+
],
|
|
1016
|
+
[
|
|
1017
|
+
'block gutter',
|
|
1018
|
+
`/**\n * theme-allow no-raw-font-size — deliberate\n */\nexport const C = <Text fz={10} />\n`,
|
|
1019
|
+
],
|
|
1020
|
+
[
|
|
1021
|
+
'docblock opener',
|
|
1022
|
+
`/** theme-allow no-raw-font-size — deliberate */\nexport const C = <Text fz={10} />\n`,
|
|
1023
|
+
],
|
|
1024
|
+
])('%s waives', (_name, source) => {
|
|
1025
|
+
expect(flags(source as string)).toBe(false)
|
|
1026
|
+
})
|
|
1027
|
+
|
|
1028
|
+
// The false NEGATIVE the prefix rule exists to close: prose that MENTIONS the token is not an
|
|
1029
|
+
// annotation. linewatch documented its own waivers in a docblock and disarmed the file.
|
|
1030
|
+
it('prose that merely mentions the token does not waive', () => {
|
|
1031
|
+
expect(
|
|
1032
|
+
flags(
|
|
1033
|
+
`// each chart here needs a theme-allow no-raw-font-size eventually\nexport const C = <Text fz={10} />\n`,
|
|
1034
|
+
),
|
|
1035
|
+
).toBe(true)
|
|
1036
|
+
})
|
|
715
1037
|
})
|
|
716
1038
|
|
|
717
1039
|
// ── hand-rolled-shell ────────────────────────────────────────────────────────
|
|
@@ -104,7 +104,7 @@ export type BarsProps<T> = {
|
|
|
104
104
|
/** Legend config forwarded to `CartesianChart`; `false` disables the legend (sparkline escape).
|
|
105
105
|
* Default `{ placement: 'bottom' }`. */
|
|
106
106
|
legend?: ChartLegendConfig | false;
|
|
107
|
-
/** Accessible text alternative, forwarded as `aria-label` (+ `role="
|
|
107
|
+
/** Accessible text alternative, forwarded as `aria-label` (+ `role="group"`). */
|
|
108
108
|
ariaLabel?: string;
|
|
109
109
|
/** Forwarded to `CartesianChart` — see `ChartPending`'s JSDoc for the three-state rationale. */
|
|
110
110
|
isPending?: boolean;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Bars.d.ts","sourceRoot":"","sources":["../../../src/charts/kinds/Bars.tsx"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"Bars.d.ts","sourceRoot":"","sources":["../../../src/charts/kinds/Bars.tsx"],"names":[],"mappings":"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"}
|
|
@@ -44,7 +44,7 @@ export type DonutProps<K extends string = SeriesKey> = {
|
|
|
44
44
|
centerContent?: ReactNode;
|
|
45
45
|
innerRatio?: number;
|
|
46
46
|
padAngle?: number;
|
|
47
|
-
/** Accessible text alternative, forwarded to `ChartFrame` as `aria-label` (+ `role="
|
|
47
|
+
/** Accessible text alternative, forwarded to `ChartFrame` as `aria-label` (+ `role="group"`). */
|
|
48
48
|
ariaLabel?: string;
|
|
49
49
|
/** Forwarded to `ChartFrame` — see `ChartPending`'s JSDoc for the three-state rationale. */
|
|
50
50
|
isPending?: boolean;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Donut.d.ts","sourceRoot":"","sources":["../../../src/charts/kinds/Donut.tsx"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAgB,SAAS,EAAE,MAAM,OAAO,CAAA;AAKpD,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAA;AAE/C;;;;GAIG;AACH,MAAM,MAAM,UAAU,CAAC,CAAC,SAAS,MAAM,GAAG,SAAS,IAAI;IAAE,GAAG,EAAE,CAAC,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,CAAA;AAEhF,MAAM,MAAM,UAAU,CAAC,CAAC,SAAS,MAAM,GAAG,SAAS,IAAI;IACrD,IAAI,EAAE,UAAU,CAAC,CAAC,CAAC,EAAE,CAAA;IACrB,mFAAmF;IACnF,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,WAAW,EAAE,CAAC,GAAG,EAAE,CAAC,KAAK,MAAM,CAAA;IAC/B,WAAW,EAAE,CAAC,CAAC,EAAE,MAAM,KAAK,MAAM,CAAA;IAClC,WAAW,CAAC,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,MAAM,CAAA;IACrC,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,cAAc,CAAC,EAAE,MAAM,CAAA;IACvB;;;;;;;;;;;;;;;;;;;;;;OAsBG;IACH,aAAa,CAAC,EAAE,SAAS,CAAA;IACzB,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB
|
|
1
|
+
{"version":3,"file":"Donut.d.ts","sourceRoot":"","sources":["../../../src/charts/kinds/Donut.tsx"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAgB,SAAS,EAAE,MAAM,OAAO,CAAA;AAKpD,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAA;AAE/C;;;;GAIG;AACH,MAAM,MAAM,UAAU,CAAC,CAAC,SAAS,MAAM,GAAG,SAAS,IAAI;IAAE,GAAG,EAAE,CAAC,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,CAAA;AAEhF,MAAM,MAAM,UAAU,CAAC,CAAC,SAAS,MAAM,GAAG,SAAS,IAAI;IACrD,IAAI,EAAE,UAAU,CAAC,CAAC,CAAC,EAAE,CAAA;IACrB,mFAAmF;IACnF,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,WAAW,EAAE,CAAC,GAAG,EAAE,CAAC,KAAK,MAAM,CAAA;IAC/B,WAAW,EAAE,CAAC,CAAC,EAAE,MAAM,KAAK,MAAM,CAAA;IAClC,WAAW,CAAC,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,MAAM,CAAA;IACrC,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,cAAc,CAAC,EAAE,MAAM,CAAA;IACvB;;;;;;;;;;;;;;;;;;;;;;OAsBG;IACH,aAAa,CAAC,EAAE,SAAS,CAAA;IACzB,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,iGAAiG;IACjG,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,4FAA4F;IAC5F,SAAS,CAAC,EAAE,OAAO,CAAA;CACpB,CAAA;AAED;;;;;;;;GAQG;AACH,iBAAS,UAAU,CAAC,CAAC,SAAS,MAAM,GAAG,SAAS,EAAE,KAAK,EAAE,UAAU,CAAC,CAAC,CAAC,+BAoBrE;AA4JD;;;GAGG;AACH,eAAO,MAAM,KAAK,EAAuB,OAAO,UAAU,CAAA"}
|
|
@@ -79,7 +79,7 @@ export type DualPanelProps<T> = {
|
|
|
79
79
|
/** Legend config forwarded to `ChartFrame`; `false` disables the legend (sparkline escape).
|
|
80
80
|
* Default `{ placement: 'bottom' }`. */
|
|
81
81
|
legend?: ChartLegendConfig | false;
|
|
82
|
-
/** Accessible text alternative, forwarded to `ChartFrame` as `aria-label` (+ `role="
|
|
82
|
+
/** Accessible text alternative, forwarded to `ChartFrame` as `aria-label` (+ `role="group"`). */
|
|
83
83
|
ariaLabel?: string;
|
|
84
84
|
/** Forwarded to `ChartFrame` — see `ChartPending`'s JSDoc for the three-state rationale. */
|
|
85
85
|
isPending?: boolean;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"DualPanel.d.ts","sourceRoot":"","sources":["../../../src/charts/kinds/DualPanel.tsx"],"names":[],"mappings":"AAmBA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,yBAAyB,CAAA;AACvD,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,mBAAmB,CAAA;AAIzD,OAAO,KAAK,EAAE,iBAAiB,EAAE,WAAW,EAAe,MAAM,WAAW,CAAA;AAK5E,MAAM,MAAM,cAAc,CAAC,CAAC,IAAI;IAC9B,IAAI,EAAE,CAAC,EAAE,CAAA;IACT,mFAAmF;IACnF,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,OAAO,EAAE,MAAM,CAAA;IACf,IAAI,EAAE,CAAC,CAAC,EAAE,CAAC,KAAK,MAAM,CAAA;IACtB;gEAC4D;IAC5D,OAAO,CAAC,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,MAAM,CAAA;IACjC;;;;OAIG;IACH,gBAAgB,CAAC,EAAE,gBAAgB,CAAA;IACnC;8DAC0D;IAC1D,MAAM,EAAE,WAAW,CAAC,CAAC,CAAC,EAAE,CAAA;IACxB,+EAA+E;IAC/E,UAAU,CAAC,EAAE,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,MAAM,CAAA;IACtC,2EAA2E;IAC3E,WAAW,CAAC,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,EAAE,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAE,CAAA;IACxD,wGAAwG;IACxG,WAAW,CAAC,EAAE;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAC;QAAC,MAAM,CAAC,EAAE,OAAO,CAAA;KAAE,EAAE,CAAA;IAClE,oDAAoD;IACpD,QAAQ,CAAC,EAAE,QAAQ,EAAE,CAAA;IACrB,8DAA8D;IAC9D,MAAM,EAAE,CAAC,CAAC,EAAE,CAAC,KAAK,MAAM,GAAG,IAAI,CAAA;IAC/B,QAAQ,EAAE,MAAM,CAAA;IAChB,gBAAgB,EAAE,MAAM,CAAA;IACxB,gBAAgB,EAAE,MAAM,CAAA;IACxB,6DAA6D;IAC7D,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,SAAS,EAAE,CAAC,CAAC,EAAE,MAAM,KAAK,MAAM,CAAA;IAChC,+FAA+F;IAC/F,YAAY,EAAE,CAAC,CAAC,EAAE,MAAM,KAAK,MAAM,CAAA;IACnC;;yFAEqF;IACrF,SAAS,CAAC,EAAE,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,CAAC,KAAK,MAAM,CAAA;IACvC;;;OAGG;IACH,aAAa,CAAC,EAAE,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,MAAM,CAAA;IACzC;iGAC6F;IAC7F,iBAAiB,CAAC,EAAE,MAAM,CAAA;IAC1B,kEAAkE;IAClE,YAAY,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,KAAK;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE,GAAG,IAAI,CAAA;IAC/D;;;;;OAKG;IACH,YAAY,CAAC,EAAE,CAAC,GAAG,EAAE,MAAM,EAAE,CAAC,EAAE,CAAC,KAAK,MAAM,CAAA;IAC5C;;;;;OAKG;IACH,QAAQ,CAAC,EAAE,OAAO,CAAA;IAClB;4CACwC;IACxC,MAAM,CAAC,EAAE,iBAAiB,GAAG,KAAK,CAAA;IAClC
|
|
1
|
+
{"version":3,"file":"DualPanel.d.ts","sourceRoot":"","sources":["../../../src/charts/kinds/DualPanel.tsx"],"names":[],"mappings":"AAmBA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,yBAAyB,CAAA;AACvD,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,mBAAmB,CAAA;AAIzD,OAAO,KAAK,EAAE,iBAAiB,EAAE,WAAW,EAAe,MAAM,WAAW,CAAA;AAK5E,MAAM,MAAM,cAAc,CAAC,CAAC,IAAI;IAC9B,IAAI,EAAE,CAAC,EAAE,CAAA;IACT,mFAAmF;IACnF,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,OAAO,EAAE,MAAM,CAAA;IACf,IAAI,EAAE,CAAC,CAAC,EAAE,CAAC,KAAK,MAAM,CAAA;IACtB;gEAC4D;IAC5D,OAAO,CAAC,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,MAAM,CAAA;IACjC;;;;OAIG;IACH,gBAAgB,CAAC,EAAE,gBAAgB,CAAA;IACnC;8DAC0D;IAC1D,MAAM,EAAE,WAAW,CAAC,CAAC,CAAC,EAAE,CAAA;IACxB,+EAA+E;IAC/E,UAAU,CAAC,EAAE,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,MAAM,CAAA;IACtC,2EAA2E;IAC3E,WAAW,CAAC,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,EAAE,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAE,CAAA;IACxD,wGAAwG;IACxG,WAAW,CAAC,EAAE;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAC;QAAC,MAAM,CAAC,EAAE,OAAO,CAAA;KAAE,EAAE,CAAA;IAClE,oDAAoD;IACpD,QAAQ,CAAC,EAAE,QAAQ,EAAE,CAAA;IACrB,8DAA8D;IAC9D,MAAM,EAAE,CAAC,CAAC,EAAE,CAAC,KAAK,MAAM,GAAG,IAAI,CAAA;IAC/B,QAAQ,EAAE,MAAM,CAAA;IAChB,gBAAgB,EAAE,MAAM,CAAA;IACxB,gBAAgB,EAAE,MAAM,CAAA;IACxB,6DAA6D;IAC7D,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,SAAS,EAAE,CAAC,CAAC,EAAE,MAAM,KAAK,MAAM,CAAA;IAChC,+FAA+F;IAC/F,YAAY,EAAE,CAAC,CAAC,EAAE,MAAM,KAAK,MAAM,CAAA;IACnC;;yFAEqF;IACrF,SAAS,CAAC,EAAE,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,CAAC,KAAK,MAAM,CAAA;IACvC;;;OAGG;IACH,aAAa,CAAC,EAAE,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,MAAM,CAAA;IACzC;iGAC6F;IAC7F,iBAAiB,CAAC,EAAE,MAAM,CAAA;IAC1B,kEAAkE;IAClE,YAAY,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,KAAK;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE,GAAG,IAAI,CAAA;IAC/D;;;;;OAKG;IACH,YAAY,CAAC,EAAE,CAAC,GAAG,EAAE,MAAM,EAAE,CAAC,EAAE,CAAC,KAAK,MAAM,CAAA;IAC5C;;;;;OAKG;IACH,QAAQ,CAAC,EAAE,OAAO,CAAA;IAClB;4CACwC;IACxC,MAAM,CAAC,EAAE,iBAAiB,GAAG,KAAK,CAAA;IAClC,iGAAiG;IACjG,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,4FAA4F;IAC5F,SAAS,CAAC,EAAE,OAAO,CAAA;CACpB,CAAA;AAID;;;;;;;;;;;GAWG;AACH,iBAAS,cAAc,CAAC,CAAC,EAAE,KAAK,EAAE,cAAc,CAAC,CAAC,CAAC,+BAmClD;AAggBD;;;GAGG;AACH,eAAO,MAAM,SAAS,EAA2B,OAAO,cAAc,CAAA"}
|
|
@@ -45,7 +45,7 @@ export type HeatmapProps<T> = {
|
|
|
45
45
|
min: string;
|
|
46
46
|
max: string;
|
|
47
47
|
};
|
|
48
|
-
/** Accessible text alternative, forwarded to `ChartFrame` as `aria-label` (+ `role="
|
|
48
|
+
/** Accessible text alternative, forwarded to `ChartFrame` as `aria-label` (+ `role="group"`). */
|
|
49
49
|
ariaLabel?: string;
|
|
50
50
|
/** Forwarded to `ChartFrame` — see `ChartPending`'s JSDoc for the three-state rationale. */
|
|
51
51
|
isPending?: boolean;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Heatmap.d.ts","sourceRoot":"","sources":["../../../src/charts/kinds/Heatmap.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAgB,SAAS,EAAE,MAAM,OAAO,CAAA;AAWpD,kFAAkF;AAClF,KAAK,WAAW,GAAG;IAAE,GAAG,EAAE,MAAM,CAAC;IAAC,GAAG,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,CAAA;AAK9D,MAAM,MAAM,YAAY,CAAC,CAAC,IAAI;IAC5B,IAAI,EAAE,CAAC,EAAE,CAAA;IACT,8FAA8F;IAC9F,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,qFAAqF;IACrF,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,uFAAuF;IACvF,IAAI,CAAC,EAAE,OAAO,CAAA;IACd,OAAO,EAAE,MAAM,CAAA;IACf,4DAA4D;IAC5D,MAAM,EAAE,CAAC,CAAC,EAAE,CAAC,KAAK,MAAM,CAAA;IACxB,+DAA+D;IAC/D,MAAM,EAAE,CAAC,CAAC,EAAE,CAAC,KAAK,MAAM,CAAA;IACxB,yCAAyC;IACzC,QAAQ,EAAE,CAAC,CAAC,EAAE,CAAC,KAAK,MAAM,CAAA;IAC1B,+DAA+D;IAC/D,IAAI,CAAC,EAAE,MAAM,EAAE,CAAA;IACf,kEAAkE;IAClE,IAAI,CAAC,EAAE,MAAM,EAAE,CAAA;IACf,yDAAyD;IACzD,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,2DAA2D;IAC3D,SAAS,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,KAAK,MAAM,CAAA;IAClD,yCAAyC;IACzC,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB,kDAAkD;IAClD,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB,uCAAuC;IACvC,WAAW,CAAC,EAAE,CAAC,CAAC,EAAE,MAAM,KAAK,MAAM,CAAA;IACnC,2DAA2D;IAC3D,QAAQ,CAAC,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,MAAM,CAAA;IAClC,8DAA8D;IAC9D,QAAQ,CAAC,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,MAAM,CAAA;IAClC,iEAAiE;IACjE,aAAa,CAAC,EAAE,CAAC,IAAI,EAAE,WAAW,KAAK,SAAS,CAAA;IAChD,2EAA2E;IAC3E,MAAM,CAAC,EAAE;QAAE,GAAG,EAAE,MAAM,CAAC;QAAC,GAAG,EAAE,MAAM,CAAA;KAAE,CAAA;IACrC
|
|
1
|
+
{"version":3,"file":"Heatmap.d.ts","sourceRoot":"","sources":["../../../src/charts/kinds/Heatmap.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAgB,SAAS,EAAE,MAAM,OAAO,CAAA;AAWpD,kFAAkF;AAClF,KAAK,WAAW,GAAG;IAAE,GAAG,EAAE,MAAM,CAAC;IAAC,GAAG,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,CAAA;AAK9D,MAAM,MAAM,YAAY,CAAC,CAAC,IAAI;IAC5B,IAAI,EAAE,CAAC,EAAE,CAAA;IACT,8FAA8F;IAC9F,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,qFAAqF;IACrF,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,uFAAuF;IACvF,IAAI,CAAC,EAAE,OAAO,CAAA;IACd,OAAO,EAAE,MAAM,CAAA;IACf,4DAA4D;IAC5D,MAAM,EAAE,CAAC,CAAC,EAAE,CAAC,KAAK,MAAM,CAAA;IACxB,+DAA+D;IAC/D,MAAM,EAAE,CAAC,CAAC,EAAE,CAAC,KAAK,MAAM,CAAA;IACxB,yCAAyC;IACzC,QAAQ,EAAE,CAAC,CAAC,EAAE,CAAC,KAAK,MAAM,CAAA;IAC1B,+DAA+D;IAC/D,IAAI,CAAC,EAAE,MAAM,EAAE,CAAA;IACf,kEAAkE;IAClE,IAAI,CAAC,EAAE,MAAM,EAAE,CAAA;IACf,yDAAyD;IACzD,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,2DAA2D;IAC3D,SAAS,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,KAAK,MAAM,CAAA;IAClD,yCAAyC;IACzC,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB,kDAAkD;IAClD,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB,uCAAuC;IACvC,WAAW,CAAC,EAAE,CAAC,CAAC,EAAE,MAAM,KAAK,MAAM,CAAA;IACnC,2DAA2D;IAC3D,QAAQ,CAAC,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,MAAM,CAAA;IAClC,8DAA8D;IAC9D,QAAQ,CAAC,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,MAAM,CAAA;IAClC,iEAAiE;IACjE,aAAa,CAAC,EAAE,CAAC,IAAI,EAAE,WAAW,KAAK,SAAS,CAAA;IAChD,2EAA2E;IAC3E,MAAM,CAAC,EAAE;QAAE,GAAG,EAAE,MAAM,CAAC;QAAC,GAAG,EAAE,MAAM,CAAA;KAAE,CAAA;IACrC,iGAAiG;IACjG,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,4FAA4F;IAC5F,SAAS,CAAC,EAAE,OAAO,CAAA;CACpB,CAAA;AAgCD;;;;;;;;;;GAUG;AACH,iBAAS,YAAY,CAAC,CAAC,EAAE,KAAK,EAAE,YAAY,CAAC,CAAC,CAAC,+BAiB9C;AA6KD;;;GAGG;AACH,eAAO,MAAM,OAAO,EAAyB,OAAO,YAAY,CAAA"}
|
|
@@ -48,7 +48,7 @@ export type MultiLineProps<T> = {
|
|
|
48
48
|
/** Legend config forwarded to `CartesianChart`; `false` disables the legend (sparkline escape).
|
|
49
49
|
* Default `{ placement: 'bottom' }`. */
|
|
50
50
|
legend?: ChartLegendConfig | false;
|
|
51
|
-
/** Accessible text alternative, forwarded to `CartesianChart` as `aria-label` (+ `role="
|
|
51
|
+
/** Accessible text alternative, forwarded to `CartesianChart` as `aria-label` (+ `role="group"`). */
|
|
52
52
|
ariaLabel?: string;
|
|
53
53
|
/** Forwarded to `CartesianChart` — see `ChartPending`'s JSDoc for the three-state rationale. */
|
|
54
54
|
isPending?: boolean;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"MultiLine.d.ts","sourceRoot":"","sources":["../../../src/charts/kinds/MultiLine.tsx"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,mBAAmB,CAAA;AACzD,OAAO,KAAK,EAAE,sBAAsB,EAAE,UAAU,EAAe,MAAM,8BAA8B,CAAA;AAEnG,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,0BAA0B,CAAA;AACzD,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,yBAAyB,CAAA;AAEvD,OAAO,KAAK,EAAE,iBAAiB,EAAE,WAAW,EAAE,MAAM,WAAW,CAAA;AAG/D,MAAM,MAAM,cAAc,CAAC,CAAC,IAAI;IAC9B,IAAI,EAAE,CAAC,EAAE,CAAA;IACT,0EAA0E;IAC1E,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,OAAO,EAAE,MAAM,CAAA;IACf,oEAAoE;IACpE,IAAI,EAAE,CAAC,CAAC,EAAE,CAAC,KAAK,MAAM,CAAA;IACtB;mFAC+E;IAC/E,MAAM,EAAE,WAAW,CAAC,CAAC,CAAC,EAAE,CAAA;IACxB;gEAC4D;IAC5D,CAAC,CAAC,EAAE,UAAU,CAAC,CAAC,CAAC,CAAA;IACjB;kEAC8D;IAC9D,EAAE,CAAC,EAAE,UAAU,CAAC,CAAC,CAAC,CAAA;IAClB,iFAAiF;IACjF,KAAK,CAAC,EAAE,QAAQ,EAAE,CAAA;IAClB;sBACkB;IAClB,MAAM,CAAC,EAAE,SAAS,EAAE,CAAA;IACpB,wFAAwF;IACxF,QAAQ,CAAC,EAAE;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAC;QAAC,MAAM,CAAC,EAAE,OAAO,CAAA;KAAE,EAAE,CAAA;IAC/D,wDAAwD;IACxD,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,6DAA6D;IAC7D,OAAO,CAAC,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,MAAM,CAAA;IACjC;;;;OAIG;IACH,gBAAgB,CAAC,EAAE,gBAAgB,CAAA;IACnC;mFAC+E;IAC/E,OAAO,CAAC,EAAE,sBAAsB,CAAC,CAAC,CAAC,GAAG,KAAK,CAAA;IAC3C,4DAA4D;IAC5D,WAAW,CAAC,EAAE,QAAQ,GAAG,MAAM,CAAA;IAC/B;4CACwC;IACxC,MAAM,CAAC,EAAE,iBAAiB,GAAG,KAAK,CAAA;IAClC,
|
|
1
|
+
{"version":3,"file":"MultiLine.d.ts","sourceRoot":"","sources":["../../../src/charts/kinds/MultiLine.tsx"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,mBAAmB,CAAA;AACzD,OAAO,KAAK,EAAE,sBAAsB,EAAE,UAAU,EAAe,MAAM,8BAA8B,CAAA;AAEnG,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,0BAA0B,CAAA;AACzD,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,yBAAyB,CAAA;AAEvD,OAAO,KAAK,EAAE,iBAAiB,EAAE,WAAW,EAAE,MAAM,WAAW,CAAA;AAG/D,MAAM,MAAM,cAAc,CAAC,CAAC,IAAI;IAC9B,IAAI,EAAE,CAAC,EAAE,CAAA;IACT,0EAA0E;IAC1E,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,OAAO,EAAE,MAAM,CAAA;IACf,oEAAoE;IACpE,IAAI,EAAE,CAAC,CAAC,EAAE,CAAC,KAAK,MAAM,CAAA;IACtB;mFAC+E;IAC/E,MAAM,EAAE,WAAW,CAAC,CAAC,CAAC,EAAE,CAAA;IACxB;gEAC4D;IAC5D,CAAC,CAAC,EAAE,UAAU,CAAC,CAAC,CAAC,CAAA;IACjB;kEAC8D;IAC9D,EAAE,CAAC,EAAE,UAAU,CAAC,CAAC,CAAC,CAAA;IAClB,iFAAiF;IACjF,KAAK,CAAC,EAAE,QAAQ,EAAE,CAAA;IAClB;sBACkB;IAClB,MAAM,CAAC,EAAE,SAAS,EAAE,CAAA;IACpB,wFAAwF;IACxF,QAAQ,CAAC,EAAE;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAC;QAAC,MAAM,CAAC,EAAE,OAAO,CAAA;KAAE,EAAE,CAAA;IAC/D,wDAAwD;IACxD,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,6DAA6D;IAC7D,OAAO,CAAC,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,MAAM,CAAA;IACjC;;;;OAIG;IACH,gBAAgB,CAAC,EAAE,gBAAgB,CAAA;IACnC;mFAC+E;IAC/E,OAAO,CAAC,EAAE,sBAAsB,CAAC,CAAC,CAAC,GAAG,KAAK,CAAA;IAC3C,4DAA4D;IAC5D,WAAW,CAAC,EAAE,QAAQ,GAAG,MAAM,CAAA;IAC/B;4CACwC;IACxC,MAAM,CAAC,EAAE,iBAAiB,GAAG,KAAK,CAAA;IAClC,qGAAqG;IACrG,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,gGAAgG;IAChG,SAAS,CAAC,EAAE,OAAO,CAAA;CACpB,CAAA;AA4BD;;;;;;;;;;;;GAYG;AACH,iBAAS,cAAc,CAAC,CAAC,EAAE,KAAK,EAAE,cAAc,CAAC,CAAC,CAAC,+BAoDlD;AAmHD;;;GAGG;AACH,eAAO,MAAM,SAAS,EAA2B,OAAO,cAAc,CAAA"}
|
|
@@ -28,7 +28,7 @@ export type StackedAreaProps<T> = {
|
|
|
28
28
|
/** Legend config forwarded to `CartesianChart`; `false` disables the legend (sparkline escape).
|
|
29
29
|
* Default `{ placement: 'bottom' }`. */
|
|
30
30
|
legend?: ChartLegendConfig | false;
|
|
31
|
-
/** Accessible text alternative, forwarded as `aria-label` (+ `role="
|
|
31
|
+
/** Accessible text alternative, forwarded as `aria-label` (+ `role="group"`). */
|
|
32
32
|
ariaLabel?: string;
|
|
33
33
|
/** Forwarded to `CartesianChart` — see `ChartPending`'s JSDoc for the three-state rationale. */
|
|
34
34
|
isPending?: boolean;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"StackedArea.d.ts","sourceRoot":"","sources":["../../../src/charts/kinds/StackedArea.tsx"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,mBAAmB,CAAA;AAEzD,OAAO,KAAK,EAAE,UAAU,EAAe,MAAM,8BAA8B,CAAA;AAC3E,OAAO,KAAK,EAAE,iBAAiB,EAAE,WAAW,EAAE,MAAM,WAAW,CAAA;AAE/D,MAAM,MAAM,gBAAgB,CAAC,CAAC,IAAI;IAChC,IAAI,EAAE,CAAC,EAAE,CAAA;IACT,0EAA0E;IAC1E,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,OAAO,EAAE,MAAM,CAAA;IACf,IAAI,EAAE,CAAC,CAAC,EAAE,CAAC,KAAK,MAAM,CAAA;IACtB;4FACwF;IACxF,MAAM,EAAE,WAAW,CAAC,CAAC,CAAC,EAAE,CAAA;IACxB;;;qEAGiE;IACjE,CAAC,CAAC,EAAE,UAAU,CAAC,CAAC,CAAC,CAAA;IACjB,sDAAsD;IACtD,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,6DAA6D;IAC7D,OAAO,CAAC,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,MAAM,CAAA;IACjC;;;;OAIG;IACH,gBAAgB,CAAC,EAAE,gBAAgB,CAAA;IACnC;4CACwC;IACxC,MAAM,CAAC,EAAE,iBAAiB,GAAG,KAAK,CAAA;IAClC
|
|
1
|
+
{"version":3,"file":"StackedArea.d.ts","sourceRoot":"","sources":["../../../src/charts/kinds/StackedArea.tsx"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,mBAAmB,CAAA;AAEzD,OAAO,KAAK,EAAE,UAAU,EAAe,MAAM,8BAA8B,CAAA;AAC3E,OAAO,KAAK,EAAE,iBAAiB,EAAE,WAAW,EAAE,MAAM,WAAW,CAAA;AAE/D,MAAM,MAAM,gBAAgB,CAAC,CAAC,IAAI;IAChC,IAAI,EAAE,CAAC,EAAE,CAAA;IACT,0EAA0E;IAC1E,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,OAAO,EAAE,MAAM,CAAA;IACf,IAAI,EAAE,CAAC,CAAC,EAAE,CAAC,KAAK,MAAM,CAAA;IACtB;4FACwF;IACxF,MAAM,EAAE,WAAW,CAAC,CAAC,CAAC,EAAE,CAAA;IACxB;;;qEAGiE;IACjE,CAAC,CAAC,EAAE,UAAU,CAAC,CAAC,CAAC,CAAA;IACjB,sDAAsD;IACtD,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,6DAA6D;IAC7D,OAAO,CAAC,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,MAAM,CAAA;IACjC;;;;OAIG;IACH,gBAAgB,CAAC,EAAE,gBAAgB,CAAA;IACnC;4CACwC;IACxC,MAAM,CAAC,EAAE,iBAAiB,GAAG,KAAK,CAAA;IAClC,iFAAiF;IACjF,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,gGAAgG;IAChG,SAAS,CAAC,EAAE,OAAO,CAAA;CACpB,CAAA;AAED;;;;;;;;;;;;GAYG;AACH,iBAAS,gBAAgB,CAAC,CAAC,EAAE,KAAK,EAAE,gBAAgB,CAAC,CAAC,CAAC,+BA+EtD;AA+CD;;;;GAIG;AACH,eAAO,MAAM,WAAW,EAA6B,OAAO,gBAAgB,CAAA"}
|
|
@@ -61,7 +61,7 @@ export type ZonedLineProps<T> = {
|
|
|
61
61
|
/** Legend config forwarded to `CartesianChart`; `false` disables the legend (sparkline escape).
|
|
62
62
|
* Default `{ placement: 'bottom' }`. */
|
|
63
63
|
legend?: ChartLegendConfig | false;
|
|
64
|
-
/** Accessible text alternative, forwarded to `CartesianChart` as `aria-label` (+ `role="
|
|
64
|
+
/** Accessible text alternative, forwarded to `CartesianChart` as `aria-label` (+ `role="group"`). */
|
|
65
65
|
ariaLabel?: string;
|
|
66
66
|
/** Forwarded to `CartesianChart` — see `ChartPending`'s JSDoc for the three-state rationale. */
|
|
67
67
|
isPending?: boolean;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ZonedLine.d.ts","sourceRoot":"","sources":["../../../src/charts/kinds/ZonedLine.tsx"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,mBAAmB,CAAA;AAEzD,OAAO,KAAK,EAAE,sBAAsB,EAAE,UAAU,EAAe,MAAM,8BAA8B,CAAA;AAEnG,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,0BAA0B,CAAA;AACzD,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,yBAAyB,CAAA;AAEvD,OAAO,KAAK,EAAE,iBAAiB,EAAE,WAAW,EAAE,MAAM,WAAW,CAAA;AAG/D,4FAA4F;AAC5F,MAAM,MAAM,aAAa,GAAG,QAAQ,CAAA;AAEpC,mFAAmF;AACnF,MAAM,MAAM,kBAAkB,GAAG;IAC/B,KAAK,EAAE,MAAM,CAAA;IACb,IAAI,EAAE,OAAO,GAAG,OAAO,CAAA;IACvB,IAAI,EAAE,MAAM,CAAA;CACb,CAAA;AAED,0EAA0E;AAC1E,MAAM,MAAM,gBAAgB,GAAG;IAC7B,KAAK,EAAE,MAAM,CAAA;IACb,KAAK,EAAE,MAAM,CAAA;IACb,oDAAoD;IACpD,MAAM,CAAC,EAAE,OAAO,CAAA;CACjB,CAAA;AAED,MAAM,MAAM,cAAc,CAAC,CAAC,IAAI;IAC9B,IAAI,EAAE,CAAC,EAAE,CAAA;IACT,0EAA0E;IAC1E,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,OAAO,EAAE,MAAM,CAAA;IACf,oEAAoE;IACpE,IAAI,EAAE,CAAC,CAAC,EAAE,CAAC,KAAK,MAAM,CAAA;IACtB;;wEAEoE;IACpE,MAAM,EAAE,WAAW,CAAC,CAAC,CAAC,EAAE,CAAA;IACxB;gEAC4D;IAC5D,CAAC,CAAC,EAAE,UAAU,CAAC,CAAC,CAAC,CAAA;IACjB,KAAK,CAAC,EAAE,aAAa,EAAE,CAAA;IACvB;sBACkB;IAClB,MAAM,CAAC,EAAE,SAAS,EAAE,CAAA;IACpB,UAAU,CAAC,EAAE,kBAAkB,EAAE,CAAA;IACjC,QAAQ,CAAC,EAAE,gBAAgB,EAAE,CAAA;IAC7B,wDAAwD;IACxD,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,6DAA6D;IAC7D,OAAO,CAAC,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,MAAM,CAAA;IACjC;;;;OAIG;IACH,gBAAgB,CAAC,EAAE,gBAAgB,CAAA;IACnC;qGACiG;IACjG,OAAO,CAAC,EAAE,sBAAsB,CAAC,CAAC,CAAC,GAAG,KAAK,CAAA;IAC3C;;;;;OAKG;IACH,QAAQ,CAAC,EAAE,MAAM,GAAG,OAAO,CAAA;IAC3B;4CACwC;IACxC,MAAM,CAAC,EAAE,iBAAiB,GAAG,KAAK,CAAA;IAClC,
|
|
1
|
+
{"version":3,"file":"ZonedLine.d.ts","sourceRoot":"","sources":["../../../src/charts/kinds/ZonedLine.tsx"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,mBAAmB,CAAA;AAEzD,OAAO,KAAK,EAAE,sBAAsB,EAAE,UAAU,EAAe,MAAM,8BAA8B,CAAA;AAEnG,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,0BAA0B,CAAA;AACzD,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,yBAAyB,CAAA;AAEvD,OAAO,KAAK,EAAE,iBAAiB,EAAE,WAAW,EAAE,MAAM,WAAW,CAAA;AAG/D,4FAA4F;AAC5F,MAAM,MAAM,aAAa,GAAG,QAAQ,CAAA;AAEpC,mFAAmF;AACnF,MAAM,MAAM,kBAAkB,GAAG;IAC/B,KAAK,EAAE,MAAM,CAAA;IACb,IAAI,EAAE,OAAO,GAAG,OAAO,CAAA;IACvB,IAAI,EAAE,MAAM,CAAA;CACb,CAAA;AAED,0EAA0E;AAC1E,MAAM,MAAM,gBAAgB,GAAG;IAC7B,KAAK,EAAE,MAAM,CAAA;IACb,KAAK,EAAE,MAAM,CAAA;IACb,oDAAoD;IACpD,MAAM,CAAC,EAAE,OAAO,CAAA;CACjB,CAAA;AAED,MAAM,MAAM,cAAc,CAAC,CAAC,IAAI;IAC9B,IAAI,EAAE,CAAC,EAAE,CAAA;IACT,0EAA0E;IAC1E,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,OAAO,EAAE,MAAM,CAAA;IACf,oEAAoE;IACpE,IAAI,EAAE,CAAC,CAAC,EAAE,CAAC,KAAK,MAAM,CAAA;IACtB;;wEAEoE;IACpE,MAAM,EAAE,WAAW,CAAC,CAAC,CAAC,EAAE,CAAA;IACxB;gEAC4D;IAC5D,CAAC,CAAC,EAAE,UAAU,CAAC,CAAC,CAAC,CAAA;IACjB,KAAK,CAAC,EAAE,aAAa,EAAE,CAAA;IACvB;sBACkB;IAClB,MAAM,CAAC,EAAE,SAAS,EAAE,CAAA;IACpB,UAAU,CAAC,EAAE,kBAAkB,EAAE,CAAA;IACjC,QAAQ,CAAC,EAAE,gBAAgB,EAAE,CAAA;IAC7B,wDAAwD;IACxD,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,6DAA6D;IAC7D,OAAO,CAAC,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,MAAM,CAAA;IACjC;;;;OAIG;IACH,gBAAgB,CAAC,EAAE,gBAAgB,CAAA;IACnC;qGACiG;IACjG,OAAO,CAAC,EAAE,sBAAsB,CAAC,CAAC,CAAC,GAAG,KAAK,CAAA;IAC3C;;;;;OAKG;IACH,QAAQ,CAAC,EAAE,MAAM,GAAG,OAAO,CAAA;IAC3B;4CACwC;IACxC,MAAM,CAAC,EAAE,iBAAiB,GAAG,KAAK,CAAA;IAClC,qGAAqG;IACrG,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,gGAAgG;IAChG,SAAS,CAAC,EAAE,OAAO,CAAA;CACpB,CAAA;AAiBD;;;;;;;;;;;;GAYG;AACH,iBAAS,cAAc,CAAC,CAAC,EAAE,KAAK,EAAE,cAAc,CAAC,CAAC,CAAC,+BA+DlD;AA+ED;;;GAGG;AACH,eAAO,MAAM,SAAS,EAA2B,OAAO,cAAc,CAAA"}
|