From db8f2eb46ae3ff844d6272d6813e594b9ec1c344 Mon Sep 17 00:00:00 2001 From: Sean Lynch Date: Thu, 24 Jul 2025 17:13:12 -0400 Subject: [PATCH 1/2] feat(Bars): Pass `data` to `children` snippet --- .changeset/two-baths-thank.md | 5 +++++ packages/layerchart/src/lib/components/Bars.svelte | 10 ++-------- 2 files changed, 7 insertions(+), 8 deletions(-) create mode 100644 .changeset/two-baths-thank.md diff --git a/.changeset/two-baths-thank.md b/.changeset/two-baths-thank.md new file mode 100644 index 000000000..8fbbf3177 --- /dev/null +++ b/.changeset/two-baths-thank.md @@ -0,0 +1,5 @@ +--- +'layerchart': patch +--- + +feat(Bars): Pass `data` to `children` snippet diff --git a/packages/layerchart/src/lib/components/Bars.svelte b/packages/layerchart/src/lib/components/Bars.svelte index 329f9516e..ec0af9ddb 100644 --- a/packages/layerchart/src/lib/components/Bars.svelte +++ b/packages/layerchart/src/lib/components/Bars.svelte @@ -18,7 +18,7 @@ */ onBarClick?: (e: MouseEvent, detail: { data: any }) => void; - children?: Snippet; + children?: Snippet<[{ data: any[] }]>; // TODO: investigate [key: string]: any; } & Omit; @@ -42,9 +42,6 @@ data: dataProp, onBarClick = () => {}, children, - radius = 0, - strokeWidth = 0, - stroke = 'black', ...restProps }: BarsProps = $props(); @@ -54,14 +51,11 @@ {#if children} - {@render children()} + {@render children({ data })} {:else} {#each data as d, i (key(d, i))} onBarClick(e, { data: d })} {...extractLayerProps(restProps, 'bars-bar')} From bcb4b83cd28d8aedda7eb6f763c9e12df0e9276b Mon Sep 17 00:00:00 2001 From: Sean Lynch Date: Thu, 24 Jul 2025 17:13:37 -0400 Subject: [PATCH 2/2] docs: Add "Single stack with indicator (rounded)" example --- .../docs/components/BarChart/+page.svelte | 119 ++++++++++++++++++ 1 file changed, 119 insertions(+) diff --git a/packages/layerchart/src/routes/docs/components/BarChart/+page.svelte b/packages/layerchart/src/routes/docs/components/BarChart/+page.svelte index f03599a7d..6a39495c6 100644 --- a/packages/layerchart/src/routes/docs/components/BarChart/+page.svelte +++ b/packages/layerchart/src/routes/docs/components/BarChart/+page.svelte @@ -4,6 +4,7 @@ asAny, Axis, BarChart, + Bar, Bars, Highlight, Layer, @@ -1271,7 +1272,107 @@ bandPadding={0} padding={{ top: 12, bottom: 12 }} orientation="horizontal" + grid={false} + props={{ + tooltip: { + context: { mode: 'bounds' }, + }, + }} + {renderContext} + {debug} + > + {#snippet axis({ context })} + + {#snippet tickLabel({ props })} + + {/snippet} + + {/snippet} + + {#snippet aboveMarks({ context })} + + {/snippet} + + {#snippet tooltip({ context })} + + {#snippet children({ data })} + + + + + {/snippet} + + {/snippet} + + + + +

Single stack with indicator (rounded)

+ + +
+ 1} + xBaseline={undefined} + xNice={false} + c="label" + cRange={[ + 'var(--color-blue-500)', + 'var(--color-blue-400)', + 'var(--color-teal-500)', + 'var(--color-yellow-500)', + 'var(--color-orange-500)', + 'var(--color-red-500)', + ]} + bandPadding={0} + padding={{ top: 12, bottom: 12 }} + orientation="horizontal" + grid={false} props={{ + bars: { + rounded: 'none', + strokeWidth: 0, + }, tooltip: { context: { mode: 'bounds' }, }, @@ -1287,6 +1388,24 @@ {/snippet} + {#snippet marks({ context, series, getBarsProps })} + {#each series as s, i (s.key)} + + {#snippet children({ data })} + {#each data as d, i} + + {/each} + {/snippet} + + {/each} + {/snippet} + {#snippet aboveMarks({ context })}