@altertable/data-app 0.67.0 → 0.68.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/dist/chunks/{index-8qfxv0h5.js → index-gvers8jw.js} +173 -3
- package/dist/chunks/{index-8qfxv0h5.js.map → index-gvers8jw.js.map} +4 -3
- package/dist/react/index.js +24 -12
- package/dist/react/index.js.map +3 -4
- package/dist/react/ui/index.js +1105 -238
- package/dist/react/ui/index.js.map +15 -10
- package/dist/types/react/style-contract.d.ts +12 -0
- package/dist/types/react/ui/ChartLegend.d.ts +1 -1
- package/dist/types/react/ui/ComposedChart.d.ts +1 -1
- package/dist/types/react/ui/FunnelChart.d.ts +20 -0
- package/dist/types/react/ui/JourneyChart.d.ts +10 -0
- package/dist/types/react/ui/RetentionChart.d.ts +27 -0
- package/dist/types/react/ui/chart-data.d.ts +9 -0
- package/dist/types/react/ui/chart-primitives.d.ts +4 -2
- package/dist/types/react/ui/chartColor.d.ts +1 -0
- package/dist/types/react/ui/index.d.ts +7 -0
- package/dist/types/react/ui/journey-flow.d.ts +49 -0
- package/dist/types/react/ui/useSvgId.d.ts +2 -0
- package/dist/worker.js +1 -1
- package/docs/contract.md +2 -1
- package/docs/ui.md +20 -2
- package/docs/widgets.md +15 -12
- package/docs/worker.md +2 -1
- package/package.json +1 -1
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
|
-
"sources": ["../src/react/shellStyles.ts", "../src/react/ui/StaticDataApp.tsx", "../src/react/ui/GettingStarted.tsx", "../src/react/ui/DataAppSkeleton.tsx", "../src/react/ui/GlossaryExplanation.tsx", "../src/react/ui/GlossaryDefinition.tsx", "../src/react/ui/TrendChart.tsx", "../src/react/ui/chart-primitives.tsx", "../src/react/ui/chart-data.ts", "../src/react/ui/LineChart.tsx", "../src/react/ui/AreaChart.tsx", "../src/react/ui/
|
|
3
|
+
"sources": ["../src/react/shellStyles.ts", "../src/react/ui/StaticDataApp.tsx", "../src/react/ui/GettingStarted.tsx", "../src/react/ui/DataAppSkeleton.tsx", "../src/react/ui/GlossaryExplanation.tsx", "../src/react/ui/GlossaryDefinition.tsx", "../src/react/ui/TrendChart.tsx", "../src/react/ui/chart-primitives.tsx", "../src/react/ui/ChartLegend.tsx", "../src/react/ui/chart-data.ts", "../src/react/ui/LineChart.tsx", "../src/react/ui/AreaChart.tsx", "../src/react/ui/PieChart.tsx", "../src/react/ui/ScatterChart.tsx", "../src/react/ui/BarChart.tsx", "../src/react/ui/RadioGroup.tsx", "../src/react/ui/CheckboxGroup.tsx", "../src/react/ui/ComposedChart.tsx", "../src/react/ui/ComposedChartLegend.tsx", "../src/react/ui/FunnelChart.tsx", "../src/react/ui/useSvgId.ts", "../src/react/ui/RetentionChart.tsx", "../src/react/ui/JourneyChart.tsx", "../src/react/ui/journey-flow.ts"],
|
|
4
4
|
"sourcesContent": [
|
|
5
5
|
"import { injectStyles } from '@/src/react/injectStyles';\nimport type { DataAppStylesOptions } from '@/src/react/styles';\n\n// Replaced with the compiled shell stylesheet by the package build.\ndeclare const SHELL_STYLES: string;\n\n/** Install shared layout, widget surface, and skeleton styles once per document, before mounting. */\nexport function injectDataAppShellStyles(\n options: DataAppStylesOptions = {}\n): HTMLStyleElement {\n return injectStyles({\n name: 'injectDataAppShellStyles',\n attribute: 'data-altertable-shell-styles',\n css: SHELL_STYLES,\n options,\n });\n}\n",
|
|
6
6
|
"import {\n DataAppFrame,\n type StaticDataAppProps,\n} from '@/src/react/ui/DataAppFrame';\n\nexport type DataAppProps = StaticDataAppProps;\n\n/** Setup and static screens; fetched data uses the declared-view DataApp. */\nexport function DataApp(props: DataAppProps) {\n return <DataAppFrame {...props} />;\n}\n",
|
|
@@ -9,20 +9,25 @@
|
|
|
9
9
|
"import { AppIcon } from '@/src/react/ui/icons';\nimport type { ComponentPropsWithRef, ReactNode } from 'react';\nimport type { DisclosedQuery } from '@/src/core/contract';\nimport type { DataContext, GlossaryEntry } from '@/src/react/ui/data-context';\nimport { AboutData, type AboutEmpty } from '@/src/react/ui/AboutData';\n\nexport type GlossaryExplanationProps = {\n entry: GlossaryEntry;\n empty?: AboutEmpty;\n title?: ReactNode;\n description?: ReactNode;\n visual?: ReactNode;\n queries?: DisclosedQuery[];\n dataContext?: DataContext;\n} & Omit<ComponentPropsWithRef<'button'>, 'children' | 'title'>;\n\n/** Opens the inspect sheet for one glossary term. Prefer a card's evidence slot\n * when the surface already has a title, description, and visual. */\nexport function GlossaryExplanation({\n entry,\n empty,\n title,\n description,\n visual,\n queries,\n dataContext,\n className,\n ...props\n}: GlossaryExplanationProps) {\n return (\n <AboutData\n {...props}\n shortcut={false}\n iconOnly\n variant=\"ghost\"\n title={title ?? entry.term}\n description={description}\n visual={visual}\n references={{ kind: 'entries', entries: [entry] }}\n empty={empty}\n dataContext={dataContext}\n queries={queries}\n className={className ?? 'altertable-inspect-trigger'}\n tooltip=\"Explore this term\"\n aria-label={props['aria-label'] ?? `Explore ${entry.term}`}\n >\n <AppIcon name=\"openDetails\" />\n </AboutData>\n );\n}\n",
|
|
10
10
|
"import type { ReactNode } from 'react';\nimport type { GlossaryEntry } from '@/src/react/ui/data-context';\nimport { HelpPopover } from '@/src/react/ui/HelpPopover';\n\nexport type GlossaryDefinitionProps = {\n entry: GlossaryEntry;\n children?: ReactNode;\n};\n\nexport function GlossaryDefinition({\n entry,\n children,\n}: GlossaryDefinitionProps) {\n return (\n <HelpPopover\n trigger={children ?? entry.term}\n triggerLabel={`Explain ${entry.term}`}\n label={entry.term}\n triggerProps={{\n className: 'altertable-glossary-definition-trigger',\n 'data-atbl-control': 'help',\n }}\n panelProps={{ className: 'altertable-glossary-definition-popover' }}\n >\n <strong>{entry.term}</strong>\n <div>{entry.definition}</div>\n </HelpPopover>\n );\n}\n",
|
|
11
11
|
"import { Tooltip } from '@/src/react/ui/Tooltip';\nimport { useLayoutEffect, useRef, useState } from 'react';\nimport {\n AreaChart as RechartsAreaChart,\n LineChart as RechartsLineChart,\n ReferenceLine,\n} from 'recharts';\nimport {\n ChartArea,\n ChartLine,\n ChartDot,\n ChartXAxis,\n ChartYAxis,\n} from '@/src/react/ui/chart-primitives';\nimport type { ValueChartProps } from '@/src/react/ui/chart-data';\nimport { validateChartItems } from '@/src/react/ui/chart-data';\n\n/** Ordered, equally spaced samples; negative values share an explicit zero baseline. */\nexport function TrendChart({\n items,\n unit,\n ariaLabel,\n formatValue = value => new Intl.NumberFormat().format(value),\n area = false,\n}: ValueChartProps & { area?: boolean }) {\n validateChartItems(area ? 'area' : 'line', items);\n const Plot = area ? RechartsAreaChart : RechartsLineChart;\n const [activeIndex, setActiveIndex] = useState<number>();\n const scrollport = useRef<HTMLDivElement>(null);\n useLayoutEffect(() => {\n const element = scrollport.current;\n if (element) element.scrollLeft = element.scrollWidth - element.clientWidth;\n }, [items]);\n const magnitude = items.reduce(\n (max, item) => Math.max(max, Math.abs(item.value)),\n 1\n );\n const low = items.reduce(\n (min, item) => Math.min(min, item.value / magnitude),\n 0\n );\n const high = items.reduce(\n (max, item) => Math.max(max, item.value / magnitude),\n 0\n );\n return (\n <section className=\"altertable-trend-chart\" aria-label={ariaLabel}>\n {items.length === 0 && <span>No data</span>}\n {items.length > 0 && (\n <>\n <div className=\"altertable-trend-scroll\" ref={scrollport}>\n <div\n className=\"altertable-trend-plot\"\n style={{ minWidth: items.length * 40 }}\n >\n <div className=\"altertable-chart-canvas\" aria-hidden=\"true\">\n <Plot\n data={items.map(item => ({\n ...item,\n plotValue: item.value / magnitude,\n }))}\n title={ariaLabel}\n responsive\n width=\"100%\"\n height={220}\n margin={{ top: 12, right: 0, bottom: 12, left: 0 }}\n accessibilityLayer={false}\n tabIndex={-1}\n >\n <ChartXAxis hide dataKey=\"id\" scale=\"band\" />\n <ChartYAxis\n hide\n domain={[low, high === low ? low + 1 : high]}\n />\n <ReferenceLine y={0} stroke=\"var(--atbl-border)\" />\n {area && (\n <ChartArea\n dataKey=\"plotValue\"\n stroke=\"none\"\n fill=\"var(--atbl-accent)\"\n dot={false}\n activeDot={false}\n />\n )}\n <ChartLine\n dataKey=\"plotValue\"\n dot={({ cx, cy, index }) => (\n <ChartDot\n cx={cx}\n cy={cy}\n active={index === activeIndex}\n />\n )}\n activeDot={false}\n />\n </Plot>\n </div>\n <div className=\"altertable-trend-points\">\n {items.map((item, index) => (\n <Tooltip\n key={item.id}\n variant=\"chart\"\n onOpenChange={open =>\n setActiveIndex(current =>\n open ? index : current === index ? undefined : current\n )\n }\n content={\n <>\n <strong>{item.label}</strong>\n <span>\n {formatValue(item.value)} {unit}\n </span>\n </>\n }\n className=\"altertable-chart-column\"\n >\n <button\n data-atbl-focus=\"ring\"\n data-atbl-control=\"default\"\n type=\"button\"\n tabIndex={-1}\n className=\"altertable-trend-point\"\n aria-label={`${item.label}: ${formatValue(item.value)} ${unit}`}\n >\n <span className=\"altertable-trend-hit\" />\n <span className=\"altertable-trend-label\">\n {item.label}\n </span>\n </button>\n </Tooltip>\n ))}\n </div>\n </div>\n </div>\n </>\n )}\n </section>\n );\n}\n",
|
|
12
|
-
"import type { ComponentProps } from 'react';\nimport {\n Area,\n Dot,\n type DotProps,\n Bar,\n Line,\n Scatter,\n XAxis,\n YAxis,\n CartesianGrid,\n Tooltip,\n DefaultTooltipContent,\n type BarProps,\n type LineProps,\n type AreaProps,\n} from 'recharts';\nimport { TooltipSurface } from '@/src/react/ui/TooltipSurface';\n\
|
|
13
|
-
"import {
|
|
12
|
+
"import type { ComponentProps } from 'react';\nimport {\n Area,\n Dot,\n type DotProps,\n Bar,\n Line,\n Scatter,\n XAxis,\n YAxis,\n CartesianGrid,\n Tooltip,\n DefaultTooltipContent,\n type BarProps,\n type LineProps,\n type AreaProps,\n} from 'recharts';\nimport { ChartLegend } from '@/src/react/ui/ChartLegend';\nimport { TooltipSurface } from '@/src/react/ui/TooltipSurface';\n\nimport { chartBarFill } from '@/src/react/ui/chartColor';\nconst accent = 'var(--atbl-accent)';\n/** Hollow sample marker shared by standalone and composed series. */\nexport function ChartDot({\n active = false,\n stroke = accent,\n fill = active ? stroke : 'var(--atbl-surface)',\n r = active ? 4.5 : 3,\n ...props\n}: DotProps & { active?: boolean }) {\n return <Dot stroke={stroke} fill={fill} r={r} strokeWidth={2} {...props} />;\n}\n\n/** Shared series defaults; native props override every authored choice. */\nexport function ChartBar<Row = unknown, Value = number | null>(\n props: BarProps<Row, Value>\n) {\n return (\n <Bar<Row, Value>\n fill={chartBarFill}\n radius={[5, 5, 0, 0]}\n maxBarSize={30}\n activeBar={{ fill: accent }}\n isAnimationActive={false}\n {...props}\n />\n );\n}\n\n/** Themed hollow sample dots are enabled by default; dot=false hides them.\n * activeDot independently controls the hovered point. Native dot props and renderers remain available. */\nexport function ChartLine<Row = unknown, Value = number | null>({\n stroke = accent,\n dot,\n activeDot,\n ...props\n}: LineProps<Row, Value>) {\n return (\n <Line<Row, Value>\n type=\"linear\"\n stroke={stroke}\n strokeWidth={2}\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n dot={\n dot === undefined || dot === true\n ? ({ cx, cy }) => <ChartDot cx={cx} cy={cy} stroke={stroke} />\n : dot\n }\n activeDot={\n activeDot === undefined || activeDot === true\n ? ({ cx, cy }) => <ChartDot cx={cx} cy={cy} stroke={stroke} active />\n : activeDot\n }\n isAnimationActive={false}\n {...props}\n />\n );\n}\n\n/** Filled series with the same sample-dot and activeDot options as ChartLine. */\nexport function ChartArea<Row = unknown, Value = number | null>({\n stroke = accent,\n dot,\n activeDot,\n ...props\n}: AreaProps<Row, Value>) {\n return (\n <Area<Row, Value>\n legendType=\"square\"\n type=\"linear\"\n stroke={stroke}\n strokeWidth={2}\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n fill={stroke}\n fillOpacity={0.14}\n dot={\n dot === undefined || dot === true\n ? ({ cx, cy }) => <ChartDot cx={cx} cy={cy} stroke={stroke} />\n : dot\n }\n activeDot={\n activeDot === undefined || activeDot === true\n ? ({ cx, cy }) => <ChartDot cx={cx} cy={cy} stroke={stroke} active />\n : activeDot\n }\n isAnimationActive={false}\n {...props}\n />\n );\n}\n\nexport function ChartScatter<Row = unknown, Value = number>(\n props: ComponentProps<typeof Scatter<Row, Value>>\n) {\n return (\n <Scatter<Row, Value> fill={accent} isAnimationActive={false} {...props} />\n );\n}\n\nexport function ChartXAxis<Row = unknown, Value = string | number>(\n props: ComponentProps<typeof XAxis<Row, Value>>\n) {\n return (\n <XAxis<Row, Value>\n stroke=\"var(--atbl-muted)\"\n tickLine={false}\n axisLine={{ stroke: 'var(--atbl-border)' }}\n tick={{ fontSize: 'var(--atbl-type-meta-size)' }}\n {...props}\n />\n );\n}\n\nexport function ChartYAxis<Row = unknown, Value = number>(\n props: ComponentProps<typeof YAxis<Row, Value>>\n) {\n return (\n <YAxis<Row, Value>\n stroke=\"var(--atbl-muted)\"\n tickLine={false}\n axisLine={false}\n tick={{ fontSize: 'var(--atbl-type-meta-size)' }}\n {...props}\n />\n );\n}\n\nexport function ChartGrid(props: ComponentProps<typeof CartesianGrid>) {\n return (\n <CartesianGrid stroke=\"var(--atbl-border)\" vertical={false} {...props} />\n );\n}\n\nexport function ChartTooltipContent(\n props: ComponentProps<typeof DefaultTooltipContent> & { active?: boolean }\n) {\n if (!props.active) return null;\n return (\n <TooltipSurface data-variant=\"chart\" role=\"tooltip\">\n <DefaultTooltipContent\n {...props}\n separator=\"\"\n payload={props.payload?.map(entry => ({\n ...entry,\n unit: undefined,\n formatter: (value, name, _item, index, payload) => {\n const formatter = entry.formatter ?? props.formatter;\n const formatted = formatter\n ? formatter(value, name, entry, index, props.payload ?? payload)\n : Array.isArray(value)\n ? value.join(' ~ ')\n : value;\n if (formatted == null) return null;\n const [displayValue, displayName] = Array.isArray(formatted)\n ? formatted\n : [formatted, name];\n return [\n <span\n key={entry.graphicalItemId}\n className=\"altertable-chart-tooltip-row\"\n >\n <ChartLegend.Marker\n kind=\"square\"\n className=\"altertable-chart-tooltip-marker\"\n color={\n entry.color ??\n entry.stroke ??\n entry.fill ??\n 'var(--atbl-accent)'\n }\n />\n <span className=\"altertable-chart-tooltip-reading\">\n {displayName}\n {displayName !== undefined && displayName !== ''\n ? (props.separator ?? ' : ')\n : ''}\n {displayValue}\n {entry.unit}\n </span>\n </span>,\n '',\n ];\n },\n }))}\n contentStyle={{\n margin: 0,\n padding: 0,\n background: 'transparent',\n border: 0,\n whiteSpace: 'normal',\n ...props.contentStyle,\n }}\n labelStyle={{\n color: 'var(--atbl-text)',\n fontSize: 'var(--atbl-type-body-size)',\n fontWeight: 650,\n lineHeight: 1.2,\n ...props.labelStyle,\n }}\n itemStyle={{\n color: 'var(--atbl-text)',\n paddingTop: 2,\n paddingBottom: 0,\n ...props.itemStyle,\n }}\n />\n </TooltipSurface>\n );\n}\n\n/** Uses the same surface as single-series inspection; Recharts owns interaction. */\nexport function ChartTooltip(props: ComponentProps<typeof Tooltip>) {\n return (\n <Tooltip\n content={<ChartTooltipContent />}\n cursor={false}\n isAnimationActive={false}\n {...props}\n />\n );\n}\n",
|
|
13
|
+
"import {\n Children,\n useId,\n useState,\n type ComponentPropsWithRef,\n type ReactNode,\n} from 'react';\nimport { classNames } from '@/src/react/ui/classNames';\nimport { chartBarFill } from '@/src/react/ui/chartColor';\n\nexport type ChartLegendProps = {\n children: ReactNode;\n layout?: 'horizontal' | 'vertical';\n align?: 'start' | 'center' | 'end';\n /** Maximum visible cells, including the expansion control; defaults to six. */\n maxVisibleItems?: number;\n} & Omit<ComponentPropsWithRef<'ul'>, 'children'>;\n\n/** Optional chart key, placed beside any chart with the app's layout components.\n * Items describe displayed series or categories; the caller owns series visibility and interactions. */\nfunction ChartLegendRoot({\n children,\n layout = 'horizontal',\n align = 'start',\n maxVisibleItems = 6,\n className,\n 'aria-label': ariaLabel = 'Chart legend',\n ...props\n}: ChartLegendProps) {\n const [expanded, setExpanded] = useState(false);\n const listId = useId();\n const items = Children.toArray(children);\n const limit = Number.isFinite(maxVisibleItems)\n ? Math.max(1, Math.floor(maxVisibleItems))\n : 6;\n const visibleCount = items.length > limit ? limit - 1 : limit;\n const hiddenCount = Math.max(0, items.length - visibleCount);\n return (\n <div className=\"altertable-chart-legend-container\">\n <ul\n id={listId}\n {...props}\n aria-label={ariaLabel}\n data-layout={layout}\n data-align={align}\n className={classNames('altertable-chart-legend', className)}\n >\n {expanded ? items : items.slice(0, visibleCount)}\n {hiddenCount > 0 && (\n <li className=\"altertable-chart-legend-overflow\">\n <button\n type=\"button\"\n data-atbl-control=\"action\"\n data-atbl-focus=\"ring\"\n className=\"altertable-chart-legend-action\"\n aria-expanded={expanded}\n aria-controls={props.id ?? listId}\n onClick={() => setExpanded(value => !value)}\n >\n {expanded ? 'Show fewer' : `+${hiddenCount} more`}\n </button>\n </li>\n )}\n </ul>\n </div>\n );\n}\n\nexport type ChartLegendItemProps = ComponentPropsWithRef<'li'> & {\n inactive?: boolean;\n};\n\n/** Descriptive by default; compose a button inside the item for an authored series toggle. */\nfunction ChartLegendItem({\n inactive,\n className,\n ...props\n}: ChartLegendItemProps) {\n return (\n <li\n {...props}\n data-inactive={inactive || undefined}\n className={classNames('altertable-chart-legend-item', className)}\n />\n );\n}\n\nexport type ChartLegendMarkerKind =\n | 'square'\n | 'bar'\n | 'line'\n | 'area'\n | 'point'\n | 'slice';\nexport type ChartLegendMarkerProps = Omit<\n ComponentPropsWithRef<'svg'>,\n 'children'\n> & {\n kind: ChartLegendMarkerKind;\n};\n\n/** Decorative mark; color accepts public palette tokens or any CSS color.\n * Defaults match the shared bar or accent-colored series primitives. */\nfunction ChartLegendMarker({\n kind,\n color = kind === 'bar' ? chartBarFill : 'var(--atbl-accent)',\n className,\n style,\n ...props\n}: ChartLegendMarkerProps) {\n return (\n <svg\n {...props}\n aria-hidden=\"true\"\n focusable=\"false\"\n viewBox={kind === 'square' ? '0 0 8 8' : '0 0 20 12'}\n data-kind={kind}\n className={classNames('altertable-chart-legend-marker', className)}\n style={{ color, ...style }}\n >\n {kind === 'square' && <rect width=\"8\" height=\"8\" fill=\"currentColor\" />}\n {kind === 'bar' && (\n <path d=\"M6 11V3Q6 1 8 1H12Q14 1 14 3V11Z\" fill=\"currentColor\" />\n )}\n {kind === 'slice' && (\n <rect x=\"5\" y=\"1\" width=\"10\" height=\"10\" rx=\"2\" fill=\"currentColor\" />\n )}\n {kind === 'point' && <circle cx=\"10\" cy=\"6\" r=\"3\" fill=\"currentColor\" />}\n {kind === 'line' && (\n <>\n <path\n d=\"M1 6H19\"\n fill=\"none\"\n stroke=\"currentColor\"\n strokeWidth=\"2\"\n strokeLinecap=\"round\"\n />\n <circle\n cx=\"10\"\n cy=\"6\"\n r=\"2.5\"\n fill=\"var(--atbl-surface)\"\n stroke=\"currentColor\"\n strokeWidth=\"2\"\n />\n </>\n )}\n {kind === 'area' && (\n <>\n <path\n d=\"M1 10L7 5L13 7L19 2V11H1Z\"\n fill=\"currentColor\"\n fillOpacity=\"0.14\"\n />\n <path\n d=\"M1 10L7 5L13 7L19 2\"\n fill=\"none\"\n stroke=\"currentColor\"\n strokeWidth=\"2\"\n strokeLinejoin=\"round\"\n strokeLinecap=\"round\"\n />\n </>\n )}\n </svg>\n );\n}\n\nexport type ChartLegendLabelProps = ComponentPropsWithRef<'span'>;\nfunction ChartLegendLabel({\n className,\n children,\n title,\n ...props\n}: ChartLegendLabelProps) {\n return (\n <span\n {...props}\n title={title ?? (typeof children === 'string' ? children : undefined)}\n className={classNames('altertable-chart-legend-label', className)}\n >\n {children}\n </span>\n );\n}\n\nexport const ChartLegend = Object.assign(ChartLegendRoot, {\n Item: ChartLegendItem,\n Marker: ChartLegendMarker,\n Label: ChartLegendLabel,\n});\n",
|
|
14
|
+
"import { invariant } from '@/src/core/invariant';\n\n/** Ordered category or time-series sample. IDs are unique and nonblank; values are finite. */\nexport type ChartItem = { id: string; label: string; value: number };\nexport type ValueChartProps = {\n /** Ordered samples; the chart validates IDs and values when rendering. */\n items: readonly ChartItem[];\n unit: string;\n ariaLabel: string;\n formatValue?: (value: number) => string;\n};\n\nexport type CountChartProps = {\n /** Accessible measure and scope description. */\n ariaLabel: string;\n /** Population unit, such as users or sessions. */\n unit: string;\n /** Formats counts; rates use percentage formatting. */\n formatValue?: (value: number) => string;\n className?: string;\n};\n\n/** Independent observation on two finite numeric axes. */\nexport type ScatterChartItem = {\n id: string;\n label: string;\n x: number;\n y: number;\n};\ntype ChartKind = 'bar' | 'line' | 'area' | 'pie' | 'scatter';\ntype ItemFor<Kind extends ChartKind> = Kind extends 'scatter'\n ? ScatterChartItem\n : ChartItem;\n/** Validate standalone item-based chart inputs. */\nexport function validateChartItems<Kind extends ChartKind>(\n kind: Kind,\n items: readonly ItemFor<Kind>[]\n): void {\n const ids = new Set<string>();\n for (const item of items) {\n invariant(\n item.id.trim().length > 0,\n `${kind} chart IDs must be nonempty and unique: blank ID.`\n );\n invariant(\n !ids.has(item.id),\n `${kind} chart IDs must be nonempty and unique: duplicate \"${item.id}\".`\n );\n ids.add(item.id);\n if (kind === 'scatter') {\n const point = item as ScatterChartItem;\n invariant(\n Number.isFinite(point.x) && Number.isFinite(point.y),\n `scatter chart \"${item.id}\" requires finite values for x and y.`\n );\n } else {\n const point = item as ChartItem;\n invariant(\n Number.isFinite(point.value),\n `${kind} chart \"${item.id}\" requires finite values.`\n );\n invariant(\n (kind !== 'bar' && kind !== 'pie') || point.value >= 0,\n `${kind} chart \"${item.id}\" requires nonnegative values.`\n );\n }\n }\n}\n",
|
|
14
15
|
"import type { ChartItem, ValueChartProps } from '@/src/react/ui/chart-data';\nimport { TrendChart } from '@/src/react/ui/TrendChart';\n\nexport type LineChartItem = ChartItem;\nexport type LineChartProps = ValueChartProps;\n\n/** Equally spaced finite samples in supplied order; fill missing periods explicitly.\n * Supports negative values, single points, and horizontal scrolling for long series.\n * Compose inside VisualizationWidget; hover/touch tooltips need no caller state. */\nexport function LineChart(props: LineChartProps) {\n return <TrendChart {...props} />;\n}\n",
|
|
15
16
|
"import type { ChartItem, ValueChartProps } from '@/src/react/ui/chart-data';\nimport { TrendChart } from '@/src/react/ui/TrendChart';\n\nexport type AreaChartItem = ChartItem;\nexport type AreaChartProps = ValueChartProps;\n\n/** Ordered finite samples filled to a zero baseline, including negative values.\n * Samples are equally spaced; supply missing periods explicitly.\n * Compose inside VisualizationWidget; hover/touch tooltips need no caller state. */\nexport function AreaChart(props: AreaChartProps) {\n return <TrendChart {...props} area />;\n}\n",
|
|
16
|
-
"import {
|
|
17
|
-
"import { ChartLegend } from '@/src/react/ui/ChartLegend';\nimport { Tooltip } from '@/src/react/ui/Tooltip';\nimport { useState } from 'react';\nimport type { ChartItem, ValueChartProps } from '@/src/react/ui/chart-data';\nimport { validateChartItems } from '@/src/react/ui/chart-data';\n\nexport type PieChartItem = ChartItem;\nexport type PieChartProps = ValueChartProps & {\n /** Omit the built-in key when composing a separate ChartLegend. */\n showLegend?: boolean;\n};\n\n/** Nonnegative, mutually exclusive parts; shares use the sum of supplied items.\n * Include Other to represent the whole. Zero values remain in the legend; all-zero\n * data shows an empty circle. Colors follow item order. Compose inside VisualizationWidget;\n * hover/touch tooltips coordinate slice and legend emphasis without caller state. */\nexport function PieChart({\n items,\n unit,\n ariaLabel,\n showLegend = true,\n formatValue = value => new Intl.NumberFormat().format(value),\n}: PieChartProps) {\n validateChartItems('pie', items);\n const [previewId, setPreviewId] = useState<string | null>(null);\n const [plotOpen, setPlotOpen] = useState(false);\n const [legendId, setLegendId] = useState<string | null>(null);\n const maximum = items.reduce((max, item) => Math.max(max, item.value), 0);\n const total = maximum\n ? items.reduce((sum, item) => sum + item.value / maximum, 0)\n : 0;\n let cursor = -Math.PI / 2;\n const slices: (PieChartItem & {\n share: number;\n color: string;\n path: string;\n })[] = [];\n for (const [index, item] of items.entries()) {\n const share = total ? item.value / maximum / total : 0;\n const start = cursor;\n cursor += share * Math.PI * 2;\n const middle = (start + cursor) / 2;\n function point(angle: number) {\n return `${110 + Math.cos(angle) * 100},${110 + Math.sin(angle) * 100}`;\n }\n slices.push({\n ...item,\n share,\n color: `var(--atbl-chart-${(index % 8) + 1})`,\n path: `${share === 1 ? 'M' : 'M110,110 L'}${point(start)} A100,100 0 0 1 ${point(middle)} A100,100 0 0 1 ${point(cursor)} Z`,\n });\n }\n function percent(share: number) {\n return new Intl.NumberFormat('en-US', {\n style: 'percent',\n maximumFractionDigits: 1,\n }).format(share);\n }\n function detail(item: (typeof slices)[number]) {\n return (\n <>\n <strong>{item.label}</strong>\n <span>\n {formatValue(item.value)} {unit} · {percent(item.share)}\n </span>\n </>\n );\n }\n const preview = slices.find(item => item.id === previewId);\n return (\n <section className=\"altertable-pie-chart\" aria-label={ariaLabel}>\n {items.length === 0 && <span>No data</span>}\n {items.length > 0 && (\n <>\n <div className=\"altertable-pie-plot\">\n <Tooltip\n variant=\"chart\"\n className=\"altertable-pie-tooltip\"\n onOpenChange={setPlotOpen}\n content={preview ? detail(preview) : null}\n >\n <svg viewBox=\"0 0 220 220\" aria-hidden=\"true\" focusable=\"false\">\n {total === 0 ? (\n <circle\n cx=\"110\"\n cy=\"110\"\n r=\"100\"\n className=\"altertable-pie-empty\"\n />\n ) : (\n slices\n .filter(item => item.share > 0)\n .map(item => (\n <path\n key={item.id}\n d={item.path}\n fill={item.color}\n className=\"altertable-pie-slice\"\n data-active={\n item.id ===\n (plotOpen && previewId\n ? previewId\n : showLegend\n ? legendId\n : null) || undefined\n }\n onPointerDown={event => {\n if (plotOpen && previewId !== item.id)\n event.preventDefault();\n setPreviewId(item.id);\n }}\n onPointerEnter={event => {\n if (event.pointerType === 'mouse')\n setPreviewId(item.id);\n }}\n onPointerLeave={event => {\n if (event.pointerType === 'mouse') setPreviewId(null);\n }}\n />\n ))\n )}\n </svg>\n </Tooltip>\n {total === 0 && (\n <span className=\"altertable-pie-empty-label\">\n No nonzero values\n </span>\n )}\n </div>\n {showLegend && (\n <ChartLegend\n layout=\"vertical\"\n aria-label={`${ariaLabel} legend`}\n className=\"altertable-pie-legend\"\n >\n {slices.map(item => (\n <ChartLegend.Item key={item.id}>\n <Tooltip\n variant=\"chart\"\n content={detail(item)}\n onOpenChange={open =>\n setLegendId(current =>\n open ? item.id : current === item.id ? null : current\n )\n }\n >\n <button\n data-atbl-focus=\"ring\"\n data-atbl-control=\"default\"\n type=\"button\"\n tabIndex={-1}\n aria-label={`${item.label}: ${formatValue(item.value)} ${unit}, ${percent(item.share)}`}\n >\n <ChartLegend.Marker kind=\"slice\" color={item.color} />\n <ChartLegend.Label className=\"altertable-pie-label\">\n {item.label}\n </ChartLegend.Label>\n <strong>{formatValue(item.value)}</strong>\n <span>{percent(item.share)}</span>\n </button>\n </Tooltip>\n </ChartLegend.Item>\n ))}\n </ChartLegend>\n )}\n </>\n )}\n </section>\n );\n}\n",
|
|
17
|
+
"import { ChartLegend } from '@/src/react/ui/ChartLegend';\nimport { Tooltip } from '@/src/react/ui/Tooltip';\nimport { useState } from 'react';\nimport type { ChartItem, ValueChartProps } from '@/src/react/ui/chart-data';\nimport { validateChartItems } from '@/src/react/ui/chart-data';\n\nexport type PieChartItem = ChartItem;\nexport type PieChartProps = ValueChartProps & {\n /** Omit the built-in key when composing a separate ChartLegend. */\n showLegend?: boolean;\n};\n\n/** Nonnegative, mutually exclusive parts; shares use the sum of supplied items.\n * Include Other to represent the whole. Zero values remain in the legend; all-zero\n * data shows an empty circle. Colors follow item order. Compose inside VisualizationWidget;\n * hover/touch tooltips coordinate slice and legend emphasis without caller state. */\nexport function PieChart({\n items,\n unit,\n ariaLabel,\n showLegend = true,\n formatValue = value => new Intl.NumberFormat().format(value),\n}: PieChartProps) {\n validateChartItems('pie', items);\n const [previewId, setPreviewId] = useState<string | null>(null);\n const [plotOpen, setPlotOpen] = useState(false);\n const [legendId, setLegendId] = useState<string | null>(null);\n const maximum = items.reduce((max, item) => Math.max(max, item.value), 0);\n const total = maximum\n ? items.reduce((sum, item) => sum + item.value / maximum, 0)\n : 0;\n let cursor = -Math.PI / 2;\n const slices: (PieChartItem & {\n share: number;\n color: string;\n path: string;\n })[] = [];\n for (const [index, item] of items.entries()) {\n const share = total ? item.value / maximum / total : 0;\n const start = cursor;\n cursor += share * Math.PI * 2;\n const middle = (start + cursor) / 2;\n function point(angle: number) {\n return `${110 + Math.cos(angle) * 100},${110 + Math.sin(angle) * 100}`;\n }\n slices.push({\n ...item,\n share,\n color: `var(--atbl-chart-${(index % 8) + 1})`,\n path: `${share === 1 ? 'M' : 'M110,110 L'}${point(start)} A100,100 0 0 1 ${point(middle)} A100,100 0 0 1 ${point(cursor)} Z`,\n });\n }\n function percent(share: number) {\n return new Intl.NumberFormat('en-US', {\n style: 'percent',\n maximumFractionDigits: 1,\n }).format(share);\n }\n function detail(item: (typeof slices)[number]) {\n return (\n <>\n <strong>{item.label}</strong>\n <span>\n {formatValue(item.value)} {unit} · {percent(item.share)}\n </span>\n </>\n );\n }\n const preview = slices.find(item => item.id === previewId);\n return (\n <section className=\"altertable-pie-chart\" aria-label={ariaLabel}>\n {items.length === 0 && <span>No data</span>}\n {items.length > 0 && (\n <>\n <div className=\"altertable-pie-plot\">\n <Tooltip\n variant=\"chart\"\n className=\"altertable-pie-tooltip\"\n onOpenChange={setPlotOpen}\n content={preview ? detail(preview) : null}\n >\n <svg viewBox=\"0 0 220 220\" aria-hidden=\"true\" focusable=\"false\">\n {total === 0 ? (\n <circle\n cx=\"110\"\n cy=\"110\"\n r=\"100\"\n className=\"altertable-pie-empty\"\n />\n ) : (\n slices\n .filter(item => item.share > 0)\n .map(item => (\n <path\n key={item.id}\n d={item.path}\n fill={item.color}\n className=\"altertable-pie-slice\"\n data-active={\n item.id ===\n (plotOpen && previewId\n ? previewId\n : showLegend\n ? legendId\n : null) || undefined\n }\n onPointerDown={event => {\n if (plotOpen && previewId !== item.id)\n event.preventDefault();\n setPreviewId(item.id);\n }}\n onPointerEnter={event => {\n if (event.pointerType === 'mouse')\n setPreviewId(item.id);\n }}\n onPointerLeave={event => {\n if (event.pointerType === 'mouse') setPreviewId(null);\n }}\n />\n ))\n )}\n </svg>\n </Tooltip>\n {total === 0 && (\n <span className=\"altertable-pie-empty-label\">\n No nonzero values\n </span>\n )}\n </div>\n {showLegend && (\n <ChartLegend\n layout=\"vertical\"\n aria-label={`${ariaLabel} legend`}\n className=\"altertable-pie-legend\"\n >\n {slices.map(item => (\n <ChartLegend.Item key={item.id}>\n <Tooltip\n variant=\"chart\"\n content={detail(item)}\n onOpenChange={open =>\n setLegendId(current =>\n open ? item.id : current === item.id ? null : current\n )\n }\n >\n <button\n data-atbl-focus=\"ring\"\n data-atbl-control=\"default\"\n type=\"button\"\n tabIndex={-1}\n aria-label={`${item.label}: ${formatValue(item.value)} ${unit}, ${percent(item.share)}`}\n >\n <ChartLegend.Marker kind=\"square\" color={item.color} />\n <ChartLegend.Label className=\"altertable-pie-label\">\n {item.label}\n </ChartLegend.Label>\n <strong>{formatValue(item.value)}</strong>\n <span>{percent(item.share)}</span>\n </button>\n </Tooltip>\n </ChartLegend.Item>\n ))}\n </ChartLegend>\n )}\n </>\n )}\n </section>\n );\n}\n",
|
|
18
18
|
"import { Tooltip } from '@/src/react/ui/Tooltip';\n\nimport { validateChartItems } from '@/src/react/ui/chart-data';\n\nimport type { ScatterChartItem } from '@/src/react/ui/chart-data';\nexport type { ScatterChartItem } from '@/src/react/ui/chart-data';\nexport type ScatterChartProps = {\n items: readonly ScatterChartItem[];\n xLabel: string;\n yLabel: string;\n xUnit: string;\n yUnit: string;\n ariaLabel: string;\n formatX?: (value: number) => string;\n formatY?: (value: number) => string;\n};\n\nfunction formatNumber(value: number) {\n return new Intl.NumberFormat(undefined, { maximumFractionDigits: 1 }).format(\n value\n );\n}\n\nfunction scale(values: readonly number[]) {\n const magnitude = values.reduce(\n (max, value) => Math.max(max, Math.abs(value)),\n 1\n );\n const low = values.reduce(\n (min, value) => Math.min(min, value / magnitude),\n 0\n );\n const high =\n values.reduce((max, value) => Math.max(max, value / magnitude), 0) ||\n (low === 0 ? 1 : 0);\n const span = high - low;\n return {\n position(value: number) {\n return ((value / magnitude - low) / span) * 100;\n },\n ticks: [low, low + span / 2, high].map(value => value * magnitude),\n };\n}\n\n/** Independent finite X/Y observations on linear axes that include zero.\n * Negative and constant coordinates are supported. Axis labels and units describe\n * tooltips as well as the plot; formatX/formatY format ticks and tooltip values.\n * Compose inside VisualizationWidget; hover/touch tooltips need no caller state. */\nexport function ScatterChart({\n items,\n xLabel,\n yLabel,\n xUnit,\n yUnit,\n ariaLabel,\n formatX = formatNumber,\n formatY = formatNumber,\n}: ScatterChartProps) {\n validateChartItems('scatter', items);\n const xScale = scale(items.map(item => item.x));\n const yScale = scale(items.map(item => item.y));\n return (\n <section className=\"altertable-scatter-chart\" aria-label={ariaLabel}>\n {items.length === 0 && <span>No data</span>}\n {items.length > 0 && (\n <>\n <p className=\"altertable-scatter-axis-title\">\n {yLabel}\n {yUnit && ` (${yUnit})`}\n </p>\n <div className=\"altertable-scatter-axes\">\n <div className=\"altertable-scatter-plot\">\n {yScale.ticks.map((value, index) => (\n <div\n key={index}\n className=\"altertable-scatter-gridline\"\n style={{ bottom: `${index * 50}%` }}\n aria-hidden=\"true\"\n >\n <span title={formatY(value)}>{formatY(value)}</span>\n </div>\n ))}\n {xScale.ticks.map((value, index) => (\n <span\n key={index}\n className=\"altertable-scatter-x-tick\"\n data-edge={index}\n style={{ left: `${index * 50}%` }}\n aria-hidden=\"true\"\n title={formatX(value)}\n >\n {formatX(value)}\n </span>\n ))}\n {items.map(item => (\n <Tooltip\n key={item.id}\n variant=\"chart\"\n content={\n <>\n <strong>{item.label}</strong>\n <span>\n {xLabel}: {formatX(item.x)} {xUnit}\n </span>\n <span>\n {yLabel}: {formatY(item.y)} {yUnit}\n </span>\n </>\n }\n className=\"altertable-scatter-tooltip\"\n style={{\n left: `${xScale.position(item.x)}%`,\n bottom: `${yScale.position(item.y)}%`,\n }}\n >\n <button\n data-atbl-focus=\"ring\"\n data-atbl-control=\"default\"\n type=\"button\"\n tabIndex={-1}\n className=\"altertable-scatter-point\"\n aria-label={`${item.label}: ${xLabel} ${formatX(item.x)} ${xUnit}, ${yLabel} ${formatY(item.y)} ${yUnit}`}\n >\n <span />\n </button>\n </Tooltip>\n ))}\n </div>\n </div>\n <p className=\"altertable-scatter-axis-title altertable-scatter-x-title\">\n {xLabel}\n {xUnit && ` (${xUnit})`}\n </p>\n </>\n )}\n </section>\n );\n}\n",
|
|
19
|
-
"import { Tooltip } from '@/src/react/ui/Tooltip';\nimport { useLayoutEffect, useRef, useState } from 'react';\n\nimport {\n validateChartItems,\n type ChartItem,\n type ValueChartProps,\n} from '@/src/react/ui/chart-data';\n\nimport { BarChart as RechartsBarChart, Cell } from 'recharts';\nimport {\n ChartBar,\n ChartXAxis,\n ChartYAxis,\n
|
|
19
|
+
"import { chartBarFill } from '@/src/react/ui/chartColor';\nimport { Tooltip } from '@/src/react/ui/Tooltip';\nimport { useLayoutEffect, useRef, useState } from 'react';\n\nimport {\n validateChartItems,\n type ChartItem,\n type ValueChartProps,\n} from '@/src/react/ui/chart-data';\n\nimport { BarChart as RechartsBarChart, Cell } from 'recharts';\nimport {\n ChartBar,\n ChartXAxis,\n ChartYAxis,\n} from '@/src/react/ui/chart-primitives';\n\nexport type BarChartItem = ChartItem;\n\nexport type BarChartProps = ValueChartProps;\n\n/** Nonnegative category values. Compose inside VisualizationWidget for a titled panel.\n * Owns hover/touch tooltips; no selection state or keyboard navigation. */\nexport function BarChart({\n items,\n unit,\n ariaLabel,\n formatValue = value => new Intl.NumberFormat().format(value),\n}: BarChartProps) {\n validateChartItems('bar', items);\n const [activeId, setActiveId] = useState<string>();\n const scrollport = useRef<HTMLDivElement>(null);\n\n useLayoutEffect(() => {\n const element = scrollport.current;\n if (element) element.scrollLeft = element.scrollWidth - element.clientWidth;\n }, [items]);\n\n const maximum = items.reduce((max, item) => Math.max(max, item.value), 1);\n\n return (\n <section className=\"altertable-selectable-bars\" aria-label={ariaLabel}>\n {items.length === 0 && <span>No data</span>}\n <div className=\"altertable-selectable-bars-scroll\" ref={scrollport}>\n <div\n className=\"altertable-selectable-bars-plot\"\n style={{ minWidth: items.length * 45 }}\n >\n <div className=\"altertable-chart-canvas\" aria-hidden=\"true\">\n <RechartsBarChart\n data={items.map(item => ({\n ...item,\n plotValue: item.value / maximum,\n }))}\n title={ariaLabel}\n responsive\n width=\"100%\"\n height={220}\n margin={{ top: 0, right: 0, bottom: 0, left: 0 }}\n accessibilityLayer={false}\n tabIndex={-1}\n barCategoryGap=\"24%\"\n >\n <ChartXAxis hide dataKey=\"id\" scale=\"band\" />\n <ChartYAxis hide domain={[0, 1]} allowDataOverflow />\n <ChartBar\n dataKey=\"plotValue\"\n minPointSize={value => ((value ?? 0) > 0 ? 7 : 0)}\n >\n {items.map(item => (\n <Cell\n key={item.id}\n fill={\n activeId === item.id ? 'var(--atbl-accent)' : chartBarFill\n }\n />\n ))}\n </ChartBar>\n </RechartsBarChart>\n </div>\n <div className=\"altertable-selectable-bars-items\">\n {items.map(item => (\n <Tooltip\n key={item.id}\n variant=\"chart\"\n onOpenChange={open =>\n setActiveId(current =>\n open ? item.id : current === item.id ? undefined : current\n )\n }\n content={\n <>\n <strong>{item.label}</strong>\n <span>\n {formatValue(item.value)} {unit}\n </span>\n </>\n }\n className=\"altertable-chart-column\"\n >\n <button\n data-atbl-focus=\"ring\"\n data-atbl-control=\"default\"\n type=\"button\"\n tabIndex={-1}\n className=\"altertable-selectable-bars-item\"\n aria-label={`${item.label}: ${formatValue(item.value)} ${unit}`}\n >\n <span className=\"altertable-selectable-bars-area\" />\n <span className=\"altertable-selectable-bars-label\">\n {item.label}\n </span>\n </button>\n </Tooltip>\n ))}\n </div>\n </div>\n </div>\n </section>\n );\n}\n",
|
|
20
20
|
"import type { ComponentPropsWithRef, ReactNode } from 'react';\nimport {\n RadioGroup as AriaRadioGroup,\n Radio as AriaRadio,\n Label,\n} from 'react-aria-components';\nimport { classNames } from '@/src/react/ui/classNames';\nimport { validateChoiceOptions, type ChoiceOption } from '@/src/core/variables';\n\nexport type RadioGroupProps = Omit<\n ComponentPropsWithRef<typeof AriaRadioGroup>,\n 'className' | 'children'\n> & { children: ReactNode; label: string; className?: string };\nexport function RadioGroup({\n label,\n className,\n children,\n ...props\n}: RadioGroupProps) {\n return (\n <AriaRadioGroup\n {...props}\n className={classNames('altertable-radio-group', className)}\n >\n <Label className=\"altertable-control-label\">{label}</Label>\n {children}\n </AriaRadioGroup>\n );\n}\nexport type RadioProps = Omit<\n ComponentPropsWithRef<typeof AriaRadio>,\n 'className'\n> & { className?: string };\nexport function Radio({ className, children, ...props }: RadioProps) {\n return (\n <AriaRadio\n {...props}\n data-atbl-control=\"action\"\n data-atbl-focus=\"ring\"\n className={classNames('altertable-radio', className)}\n >\n {state => (\n <>\n <span className=\"altertable-radio-mark\" aria-hidden=\"true\" />\n {typeof children === 'function' ? children(state) : children}\n </>\n )}\n </AriaRadio>\n );\n}\nexport type SegmentedControlProps = Omit<RadioGroupProps, 'children'> & {\n options: readonly ChoiceOption[];\n};\n/** A compact radio group; arrow keys follow standard radio selection behavior. */\nexport function SegmentedControl({\n options,\n className,\n ...props\n}: SegmentedControlProps) {\n validateChoiceOptions(options);\n return (\n <RadioGroup\n {...props}\n orientation=\"horizontal\"\n className={classNames('altertable-segmented-control', className)}\n >\n <div className=\"altertable-segmented-options\">\n {options.map(option => (\n <Radio\n key={option.id}\n value={option.id}\n data-atbl-internal-surface=\"option\"\n >\n {option.label}\n </Radio>\n ))}\n </div>\n </RadioGroup>\n );\n}\n",
|
|
21
21
|
"import type { ComponentPropsWithRef } from 'react';\nimport { invariant } from '@/src/core/invariant';\nimport { CheckboxGroupContext } from '@/src/react/ui/Checkbox';\nimport { classNames } from '@/src/react/ui/classNames';\nexport type CheckboxGroupProps = Omit<\n ComponentPropsWithRef<'fieldset'>,\n 'onChange'\n> & {\n label: string;\n values: readonly string[];\n onChange: (values: string[]) => void;\n};\nexport function CheckboxGroup({\n label,\n values,\n onChange,\n className,\n children,\n disabled,\n ...props\n}: CheckboxGroupProps) {\n invariant(\n new Set(values).size === values.length,\n 'Checkbox group values must be unique.'\n );\n return (\n <fieldset\n {...props}\n disabled={disabled}\n className={classNames('altertable-checkbox-group', className)}\n >\n <legend>{label}</legend>\n <CheckboxGroupContext\n value={{\n values,\n disabled,\n onChange(value, checked) {\n onChange(\n checked\n ? [...values.filter(item => item !== value), value]\n : values.filter(item => item !== value)\n );\n },\n }}\n >\n {children}\n </CheckboxGroupContext>\n </fieldset>\n );\n}\n",
|
|
22
|
-
"import type
|
|
23
|
-
"import type { ComponentProps } from 'react';\nimport {
|
|
22
|
+
"import { useState, type ComponentProps } from 'react';\nimport { ComposedChartLegend as Legend } from '@/src/react/ui/ComposedChartLegend';\nimport {\n ComposedChart as RechartsComposedChart,\n ZAxis,\n ReferenceLine,\n ReferenceArea,\n ReferenceDot,\n Brush,\n Cell,\n Label,\n LabelList,\n ErrorBar,\n} from 'recharts';\n\nimport {\n ChartBar as Bar,\n ChartDot as Dot,\n ChartLine as Line,\n ChartArea as Area,\n ChartScatter as Scatter,\n ChartXAxis as XAxis,\n ChartYAxis as YAxis,\n ChartGrid as CartesianGrid,\n ChartTooltip as Tooltip,\n} from '@/src/react/ui/chart-primitives';\n\nexport type ComposedChartProps<Row = unknown> = Omit<\n ComponentProps<typeof RechartsComposedChart<Row>>,\n 'data' | 'title'\n> & {\n /** Displayed rows; series and axes select fields with Recharts dataKey props. */\n data: readonly Row[];\n /** Describes the measures and scope for assistive technology. */\n ariaLabel: string;\n};\n\n/** Compose Cartesian series inside VisualizationWidget. Defaults to responsive\n * full width and 300px height. Children retain native Recharts props and behavior,\n * including stacking, numeric/time axes, missing values, tooltips, and keyboard\n * navigation. Match yAxisId on axes and series for different units; use stackId\n * for stacks. Preserve missing measures as null and choose connectNulls deliberately.\n * Use public chart tokens for series colors. Dataset bindings own\n * loading, empty results, evidence, and CSV; this primitive owns only the plot. */\nfunction ComposedChartRoot<Row>({\n data,\n ariaLabel,\n width = '100%',\n height = 300,\n responsive = true,\n className,\n ...props\n}: ComposedChartProps<Row>) {\n const [pointerFocus, setPointerFocus] = useState(false);\n return (\n <section\n className={['altertable-composed-chart', className]\n .filter(Boolean)\n .join(' ')}\n aria-label={ariaLabel}\n data-atbl-internal-pointer-focus={pointerFocus || undefined}\n onPointerDownCapture={() => setPointerFocus(true)}\n onKeyDownCapture={() => setPointerFocus(false)}\n onBlurCapture={event => {\n if (!event.currentTarget.contains(event.relatedTarget))\n setPointerFocus(false);\n }}\n >\n <RechartsComposedChart\n data-atbl-focus=\"inset\"\n {...props}\n data={data}\n width={width}\n height={height}\n responsive={responsive}\n title={ariaLabel}\n />\n </section>\n );\n}\n\n/** Shared themed series and controls; other children retain native Recharts defaults. */\nexport const ComposedChart = Object.assign(ComposedChartRoot, {\n Dot,\n Area,\n Bar,\n Line,\n Scatter,\n XAxis,\n YAxis,\n ZAxis,\n CartesianGrid,\n Tooltip,\n Legend,\n ReferenceLine,\n ReferenceArea,\n ReferenceDot,\n Brush,\n Cell,\n Label,\n LabelList,\n ErrorBar,\n});\n",
|
|
23
|
+
"import type { ComponentProps } from 'react';\nimport { Legend, type LegendPayload } from 'recharts';\nimport {\n ChartLegend,\n type ChartLegendMarkerKind,\n} from '@/src/react/ui/ChartLegend';\n\nexport type ComposedChartLegendProps = ComponentProps<typeof Legend> & {\n maxVisibleItems?: number;\n};\ntype LegendContentProps = ComposedChartLegendProps & {\n payload?: readonly LegendPayload[];\n};\n\nconst legendMarkerKinds: Partial<\n Record<NonNullable<LegendPayload['type']>, ChartLegendMarkerKind>\n> = {\n square: 'area',\n rect: 'bar',\n line: 'line',\n plainline: 'line',\n};\n\nfunction LegendContent({\n payload = [],\n maxVisibleItems,\n formatter,\n layout,\n align,\n labelStyle,\n iconType,\n iconSize = 8,\n inactiveColor = 'var(--atbl-muted)',\n position,\n verticalAlign,\n onClick,\n onMouseEnter,\n onMouseLeave,\n 'aria-label': ariaLabel,\n}: LegendContentProps) {\n if (!payload.some(entry => entry.type !== 'none')) return null;\n const vertical =\n layout === 'vertical' ||\n (layout === 'auto' && (position === 'left' || position === 'right'));\n return (\n <ChartLegend\n aria-label={ariaLabel}\n className={\n position === 'top' || (position == null && verticalAlign === 'top')\n ? 'altertable-composed-chart-legend-above'\n : position === 'bottom' ||\n (position == null && verticalAlign !== 'middle' && !vertical)\n ? 'altertable-composed-chart-legend-below'\n : undefined\n }\n maxVisibleItems={maxVisibleItems}\n layout={vertical ? 'vertical' : 'horizontal'}\n align={align === 'right' ? 'end' : align === 'left' ? 'start' : 'center'}\n >\n {payload.map((entry, index) => {\n if (entry.type === 'none') return null;\n const type = iconType ?? entry.type;\n const kind = iconType\n ? (legendMarkerKinds[type ?? 'none'] ?? 'point')\n : 'square';\n const formatLabel = entry.formatter ?? formatter;\n const label = formatLabel\n ? formatLabel(entry.value, entry, index)\n : entry.value;\n const content = (\n <>\n {type !== 'none' &&\n (entry.legendIcon ?? (\n <ChartLegend.Marker\n kind={kind}\n color={entry.inactive ? inactiveColor : entry.color}\n style={{\n width: iconSize,\n height: kind === 'square' ? iconSize : iconSize * 0.6,\n }}\n />\n ))}\n <ChartLegend.Label style={labelStyle}>{label}</ChartLegend.Label>\n </>\n );\n return (\n <ChartLegend.Item\n key={index}\n inactive={entry.inactive}\n onMouseEnter={\n onMouseEnter\n ? event => onMouseEnter(entry, index, event)\n : undefined\n }\n onMouseLeave={\n onMouseLeave\n ? event => onMouseLeave(entry, index, event)\n : undefined\n }\n >\n {onClick ? (\n <button\n type=\"button\"\n data-atbl-control=\"action\"\n data-atbl-focus=\"ring\"\n className=\"altertable-chart-legend-action\"\n onClick={event => onClick(entry, index, event)}\n >\n {content}\n </button>\n ) : (\n content\n )}\n </ChartLegend.Item>\n );\n })}\n </ChartLegend>\n );\n}\n\n/** Opt in inside ComposedChart to derive the shared legend from its displayed series.\n * Native positioning, sorting, formatters, callbacks, and custom content remain available. */\nexport function ComposedChartLegend({\n maxVisibleItems,\n ...props\n}: ComposedChartLegendProps) {\n return (\n <Legend\n iconSize={8}\n inactiveColor=\"var(--atbl-muted)\"\n content={<LegendContent maxVisibleItems={maxVisibleItems} />}\n {...props}\n />\n );\n}\n",
|
|
24
|
+
"import { Fragment, useEffect, useRef, useState } from 'react';\nimport { invariant } from '@/src/core/invariant';\nimport { useSvgId } from '@/src/react/ui/useSvgId';\nimport { ChartLegend } from '@/src/react/ui/ChartLegend';\nimport { ComposedChart } from '@/src/react/ui/ComposedChart';\nimport { ChartTooltipContent } from '@/src/react/ui/chart-primitives';\nimport { classNames } from '@/src/react/ui/classNames';\nimport type { CountChartProps } from '@/src/react/ui/chart-data';\nimport { formatNumber, formatPercent } from '@/src/core/format';\n\n/** Ordered step with a unique, nonblank ID. */\nexport type FunnelChartStep = { id: string; label: string };\nexport type FunnelChartSeries = {\n /** Unique, nonblank population ID. */\n id: string;\n label: string;\n /** Finite, nonnegative counts aligned with steps and nonincreasing. */\n values: readonly number[];\n};\nexport type FunnelChartProps = CountChartProps & {\n steps: readonly FunnelChartStep[];\n series: readonly FunnelChartSeries[];\n};\n\n/** Conversion columns with previous-step drop-off, normalized to each series' first step.\n * Owns series highlighting and portion-specific inspection; compose inside VisualizationWidget. */\nexport function FunnelChart({\n steps,\n series,\n unit,\n ariaLabel,\n className,\n formatValue = formatNumber,\n}: FunnelChartProps) {\n const chartId = useSvgId();\n const [highlighted, setHighlighted] = useState<{\n id: string;\n conversion: boolean;\n step: number;\n } | null>(null);\n const clearTimer = useRef<ReturnType<typeof setTimeout> | null>(null);\n function cancelClear() {\n if (clearTimer.current !== null) clearTimeout(clearTimer.current);\n clearTimer.current = null;\n }\n useEffect(() => cancelClear, []);\n function highlight(id: string, conversion: boolean, step: number) {\n cancelClear();\n setHighlighted({ id, conversion, step });\n }\n function clearHighlight() {\n cancelClear();\n setHighlighted(null);\n }\n function scheduleClear() {\n cancelClear();\n clearTimer.current = setTimeout(() => setHighlighted(null), 100);\n }\n for (const [kind, items] of [\n ['funnel step', steps],\n ['funnel series', series],\n ] as const) {\n const ids = new Set<string>();\n for (const item of items) {\n invariant(\n item.id.trim().length > 0 && !ids.has(item.id),\n `${kind} chart IDs must be nonblank and unique.`\n );\n ids.add(item.id);\n }\n }\n for (const item of series) {\n invariant(\n item.values.length === steps.length,\n 'funnel chart counts must align with steps.'\n );\n item.values.forEach((value, index) => {\n invariant(\n Number.isFinite(value) && value >= 0,\n 'funnel chart counts must be finite and nonnegative.'\n );\n invariant(\n index === 0 || value <= item.values[index - 1]!,\n 'funnel chart counts must be nonincreasing.'\n );\n });\n }\n function reading(item: FunnelChartSeries, index: number) {\n const first = item.values[0] ?? 0;\n const current = item.values[index]!;\n const previous = item.values[Math.max(0, index - 1)]!;\n return {\n current,\n previous,\n dropped: previous - current,\n conversion: first > 0 ? current / first : null,\n dropOff: first > 0 ? (previous - current) / first : null,\n };\n }\n const data = steps.map((step, index) => ({\n label: step.label,\n index,\n ...Object.fromEntries(\n series.flatMap((item, seriesIndex) => {\n const value = reading(item, index);\n return [\n [`conversion${seriesIndex}`, (value.conversion ?? 0) * 100],\n [\n `drop${seriesIndex}`,\n (value.dropOff ?? (index === 0 ? 1 : 0)) * 100,\n ],\n ];\n })\n ),\n }));\n return (\n <section\n className={classNames('altertable-funnel-chart', className)}\n aria-label={ariaLabel}\n onKeyDownCapture={clearHighlight}\n >\n {steps.length === 0 || series.length === 0 ? (\n <span>No data</span>\n ) : (\n <>\n <div className=\"altertable-funnel-summary\">\n {series.map((item, index) => (\n <div key={item.id}>\n <span>\n <ChartLegend.Marker\n kind=\"square\"\n color={`var(--atbl-chart-${(index % 8) + 1})`}\n />\n {item.label}\n </span>\n <strong>\n {formatPercent(reading(item, steps.length - 1).conversion)}\n </strong>\n </div>\n ))}\n </div>\n <p className=\"altertable-analytics-note\">\n {steps[0]!.label} → {steps.at(-1)!.label}\n </p>\n <div className=\"altertable-funnel-scroll\">\n <div\n style={{\n minWidth: steps.length * Math.max(96, series.length * 40),\n }}\n >\n <ComposedChart\n data={data}\n ariaLabel={`${ariaLabel} plot`}\n height={300}\n barCategoryGap=\"4%\"\n barGap={1}\n onMouseLeave={clearHighlight}\n >\n <ComposedChart.CartesianGrid />\n <ComposedChart.XAxis dataKey=\"label\" interval={0} height={48} />\n <ComposedChart.YAxis\n domain={[0, 100]}\n width={42}\n tickFormatter={value => `${value}%`}\n />\n <defs>\n {series.map((item, index) => (\n <Fragment key={item.id}>\n <linearGradient\n id={`${chartId}-gradient-${index}`}\n x1=\"0\"\n x2=\"0\"\n y1=\"1\"\n y2=\"0\"\n >\n <stop\n offset=\"0%\"\n stopColor={`var(--atbl-chart-${(index % 8) + 1})`}\n stopOpacity={0.5}\n />\n <stop\n offset=\"100%\"\n stopColor={`var(--atbl-chart-${(index % 8) + 1})`}\n stopOpacity={0.7}\n />\n </linearGradient>\n <pattern\n id={`${chartId}-hatch-${index}`}\n patternUnits=\"userSpaceOnUse\"\n width=\"6\"\n height=\"6\"\n patternTransform=\"rotate(45)\"\n >\n <rect\n width=\"8\"\n height=\"8\"\n fill={`var(--atbl-chart-${(index % 8) + 1})`}\n fillOpacity={0.16}\n />\n <line\n x1=\"0\"\n y1=\"0\"\n x2=\"0\"\n y2=\"8\"\n stroke={`var(--atbl-chart-${(index % 8) + 1})`}\n strokeOpacity={0.4}\n strokeWidth=\"2\"\n />\n </pattern>\n </Fragment>\n ))}\n </defs>\n {series.map((item, index) => (\n <Fragment key={item.id}>\n <ComposedChart.Bar\n dataKey={`conversion${index}`}\n name={item.label}\n stackId={item.id}\n fill={`url(#${chartId}-gradient-${index})`}\n radius={0}\n maxBarSize={undefined}\n activeBar={false}\n minPointSize={0}\n opacity={\n !highlighted || highlighted.id === item.id ? 1 : 0.2\n }\n onMouseEnter={bar =>\n highlight(item.id, true, bar.payload.index)\n }\n onMouseLeave={scheduleClear}\n onClick={bar =>\n highlight(item.id, true, bar.payload.index)\n }\n />\n <ComposedChart.Bar\n dataKey={`drop${index}`}\n name={`${item.label} drop-off`}\n stackId={item.id}\n fill={`url(#${chartId}-hatch-${index})`}\n opacity={\n !highlighted || highlighted.id === item.id ? 1 : 0.2\n }\n onMouseEnter={bar =>\n highlight(item.id, false, bar.payload.index)\n }\n onMouseLeave={scheduleClear}\n onClick={bar =>\n highlight(item.id, false, bar.payload.index)\n }\n radius={0}\n maxBarSize={undefined}\n activeBar={false}\n />\n </Fragment>\n ))}\n <ComposedChart.Tooltip\n content={({ active, payload }) => {\n const index = payload?.[0]?.payload.index;\n if (!active || typeof index !== 'number') return null;\n const tooltipItems = series\n .filter(\n item =>\n !highlighted ||\n highlighted.step !== index ||\n item.id === highlighted.id\n )\n .flatMap(item => {\n const value = reading(item, index);\n const selected = highlighted?.step === index;\n const readings = selected\n ? [highlighted.conversion]\n : [true, false];\n const seriesIndex = series.indexOf(item);\n return readings.map(conversion => ({\n name: item.label,\n graphicalItemId: `${item.id}-${conversion ? 'conversion' : 'drop-off'}`,\n dataKey: `${item.id}-${conversion ? 'conversion' : 'drop-off'}`,\n color: `var(--atbl-chart-${(seriesIndex % 8) + 1})`,\n value:\n (conversion ? value.conversion : value.dropOff) ??\n 0,\n formatter: () => (\n <>\n {formatPercent(\n conversion ? value.conversion : value.dropOff\n )}{' '}\n {conversion ? 'conversion' : 'drop-off'}\n <span className=\"altertable-funnel-tooltip-detail\">\n {formatValue(\n conversion ? value.current : value.dropped\n )}{' '}\n of {formatValue(value.previous)} {unit}\n </span>\n </>\n ),\n }));\n });\n return (\n <ChartTooltipContent\n active\n label={steps[index]!.label}\n payload={tooltipItems}\n />\n );\n }}\n />\n </ComposedChart>\n </div>\n </div>\n <ul className=\"altertable-sr-only\">\n {steps.map((step, index) => (\n <li key={step.id}>\n {step.label}\n {series.map(item => {\n const value = reading(item, index);\n return (\n <span key={item.id}>\n {' '}\n · {item.label}: {formatValue(value.current)} {unit},{' '}\n {formatPercent(value.conversion)} conversion,{' '}\n {formatValue(value.dropped)} dropped off\n </span>\n );\n })}\n </li>\n ))}\n </ul>\n </>\n )}\n </section>\n );\n}\n",
|
|
25
|
+
"import { useId } from 'react';\n\n/** Stable React ID for SVG definitions and their URL references; safe with identifier prefixes. */\nexport function useSvgId(): string {\n const id = useId();\n return `svg-${Array.from(id, character =>\n /[a-zA-Z0-9-]/.test(character)\n ? character\n : `_${character.codePointAt(0)!.toString(16)}_`\n ).join('')}`;\n}\n",
|
|
26
|
+
"import { Fragment } from 'react';\nimport { invariant } from '@/src/core/invariant';\nimport { ComposedChart } from '@/src/react/ui/ComposedChart';\nimport { ChartLegend } from '@/src/react/ui/ChartLegend';\nimport { TooltipSurface } from '@/src/react/ui/TooltipSurface';\nimport { classNames } from '@/src/react/ui/classNames';\nimport type { CountChartProps } from '@/src/react/ui/chart-data';\nimport { formatNumber, formatPercent } from '@/src/core/format';\n\nexport type RetentionChartPoint = {\n /** Nonnegative integer, unique per series; uneven offsets retain their distance. */\n offset: number;\n /** Must agree across series for the same offset. */\n label: string;\n /** Observed retention fraction in [0, 1], or null for an unobserved period. */\n rate: number | null;\n /** Finite count in [0, cohortSize]; null exactly when rate is null. */\n retainedCount: number | null;\n /** Observed but still accumulating; drawn as a dotted tail. */\n incomplete?: boolean;\n};\nexport type RetentionChartSeries = {\n /** Unique, nonblank cohort or segment ID. */\n id: string;\n label: string;\n /** Finite, nonnegative starting population. */\n cohortSize: number;\n points: readonly RetentionChartPoint[];\n};\nexport type RetentionChartProps = CountChartProps & {\n series: readonly RetentionChartSeries[];\n};\n\n/** Query-defined retention curves with count inspection and dotted incomplete periods.\n * Rates are not recomputed from counts. Compose inside VisualizationWidget. */\nexport function RetentionChart({\n series,\n unit,\n ariaLabel,\n className,\n formatValue = formatNumber,\n}: RetentionChartProps) {\n const ids = new Set<string>();\n const offsets = new Map<number, string>();\n for (const item of series) {\n invariant(\n item.id.trim().length > 0 && !ids.has(item.id),\n 'retention series chart IDs must be nonblank and unique.'\n );\n ids.add(item.id);\n invariant(\n Number.isFinite(item.cohortSize) && item.cohortSize >= 0,\n 'retention chart counts must be finite and nonnegative.'\n );\n const seen = new Set<number>();\n for (const point of item.points) {\n invariant(\n Number.isSafeInteger(point.offset) &&\n point.offset >= 0 &&\n !seen.has(point.offset),\n 'retention chart offsets must be unique nonnegative integers within each series.'\n );\n seen.add(point.offset);\n invariant(\n point.rate === null ||\n (Number.isFinite(point.rate) && point.rate >= 0 && point.rate <= 1),\n 'retention chart rates must be finite fractions between 0 and 1, or null.'\n );\n invariant(\n (point.rate === null) === (point.retainedCount === null),\n 'retention chart unobserved rates and counts must both be null.'\n );\n if (point.retainedCount !== null) {\n invariant(\n Number.isFinite(point.retainedCount) && point.retainedCount >= 0,\n 'retention chart counts must be finite and nonnegative.'\n );\n invariant(\n point.retainedCount <= item.cohortSize,\n 'retention chart retained counts cannot exceed cohort size.'\n );\n }\n invariant(\n !offsets.has(point.offset) || offsets.get(point.offset) === point.label,\n 'retention chart labels must agree for the same offset.'\n );\n offsets.set(point.offset, point.label);\n }\n }\n const data: ({ offset: number; label: string } & Record<\n string,\n number | string | null\n >)[] = [...offsets]\n .sort(([a], [b]) => a - b)\n .map(([offset, label]) => ({\n offset,\n label,\n ...Object.fromEntries(\n series.flatMap((_, index) => [\n [`rate${index}`, null],\n [`tail${index}`, null],\n ])\n ),\n }));\n series.forEach((item, index) => {\n const points = [...item.points].sort((a, b) => a.offset - b.offset);\n points.forEach((point, pointIndex) => {\n const row = data.find(row => row.offset === point.offset)!;\n row[point.incomplete ? `tail${index}` : `rate${index}`] =\n point.rate === null ? null : point.rate * 100;\n if (point.incomplete && pointIndex > 0) {\n const previous = points[pointIndex - 1]!;\n data.find(row => row.offset === previous.offset)![`tail${index}`] =\n previous.rate === null ? null : previous.rate * 100;\n }\n });\n });\n return (\n <section\n className={classNames('altertable-retention-chart', className)}\n aria-label={ariaLabel}\n >\n {data.length === 0 ? (\n <span>No data</span>\n ) : (\n <>\n <ComposedChart data={data} ariaLabel={`${ariaLabel} plot`}>\n <ComposedChart.CartesianGrid />\n <ComposedChart.XAxis\n dataKey=\"offset\"\n type=\"number\"\n domain={[0, Math.max(1, ...offsets.keys())]}\n tickFormatter={value =>\n offsets.get(Number(value)) ??\n (data[0]?.label.replace(/\\d+(?:\\.\\d+)?/, String(value)) ||\n String(value))\n }\n />\n <ComposedChart.YAxis\n domain={[0, 100]}\n width={42}\n tickFormatter={value => `${value}%`}\n />\n {series.map((item, index) => (\n <Fragment key={item.id}>\n <ComposedChart.Line\n dataKey={`rate${index}`}\n name={item.label}\n stroke={`var(--atbl-chart-${(index % 8) + 1})`}\n connectNulls={false}\n />\n <ComposedChart.Line\n dataKey={`tail${index}`}\n name={item.label}\n stroke={`var(--atbl-chart-${(index % 8) + 1})`}\n strokeDasharray=\"3 3\"\n dot={false}\n activeDot={false}\n connectNulls={false}\n />\n </Fragment>\n ))}\n <ComposedChart.Tooltip\n filterNull={false}\n content={({ active, payload }) => {\n const offset = payload?.[0]?.payload.offset;\n if (!active || typeof offset !== 'number') return null;\n return (\n <TooltipSurface data-variant=\"chart\" role=\"tooltip\">\n <strong>{offsets.get(offset)}</strong>\n {series.map(item => {\n const point = item.points.find(\n point => point.offset === offset\n );\n if (!point) return null;\n return (\n <span key={item.id}>\n {item.label}:{' '}\n {point.rate === null\n ? 'Not observed'\n : `${formatPercent(point.rate)} · ${formatValue(point.retainedCount!)} / ${formatValue(item.cohortSize)} ${unit}${point.incomplete ? ' · Incomplete period' : ''}`}\n </span>\n );\n })}\n </TooltipSurface>\n );\n }}\n />\n </ComposedChart>\n <ChartLegend aria-label={`${ariaLabel} cohorts`}>\n {series.map((item, index) => (\n <ChartLegend.Item key={item.id}>\n <ChartLegend.Marker\n kind=\"square\"\n color={`var(--atbl-chart-${(index % 8) + 1})`}\n />\n <ChartLegend.Label>{item.label}</ChartLegend.Label>\n </ChartLegend.Item>\n ))}\n </ChartLegend>\n <ul className=\"altertable-sr-only\">\n {series.map(item => (\n <li key={item.id}>\n {item.label}\n {item.points.map(point => (\n <span key={point.offset}>\n {' '}\n · {point.label}:{' '}\n {point.rate === null\n ? 'Not observed'\n : `${formatPercent(point.rate)} · ${formatValue(point.retainedCount!)} / ${formatValue(item.cohortSize)} ${unit}${point.incomplete ? ' · Incomplete period' : ''}`}\n </span>\n ))}\n </li>\n ))}\n </ul>\n </>\n )}\n </section>\n );\n}\n",
|
|
27
|
+
"import { useLayoutEffect, useRef, useState } from 'react';\nimport { invariant } from '@/src/core/invariant';\nimport { Button } from '@/src/react/ui/Button';\nimport { classNames } from '@/src/react/ui/classNames';\nimport type { CountChartProps } from '@/src/react/ui/chart-data';\nimport { formatNumber, formatPercent } from '@/src/core/format';\nimport {\n buildJourneyFlow,\n limitJourneyFlow,\n type JourneyChartPath,\n type JourneyNode,\n} from '@/src/react/ui/journey-flow';\n\nexport type { JourneyChartPath } from '@/src/react/ui/journey-flow';\nexport type JourneyChartProps = CountChartProps & {\n /** Full paths and their population counts. Branches and outcomes are derived internally. */\n paths: readonly JourneyChartPath[];\n};\n\n/** Path exploration with two initial steps, expandable prefixes, and three events per depth.\n * Counts and flows use the Step 1 population. Compose inside VisualizationWidget. */\nexport function JourneyChart({\n paths,\n unit,\n ariaLabel,\n className,\n formatValue = formatNumber,\n}: JourneyChartProps) {\n const ids = new Set<string>();\n let total = 0;\n for (const path of paths) {\n invariant(\n path.id.trim().length > 0 && !ids.has(path.id),\n 'journey path chart IDs must be nonblank and unique.'\n );\n ids.add(path.id);\n invariant(\n Number.isFinite(path.count) && path.count >= 0,\n 'journey chart counts must be finite and nonnegative.'\n );\n total += path.count;\n invariant(\n path.steps.length > 0 &&\n path.steps.every(step => step.event.trim().length > 0),\n 'journey chart paths require nonblank events.'\n );\n }\n invariant(\n Number.isFinite(total),\n 'journey chart total count must be finite.'\n );\n // A changed displayed result starts a new exploration, including in inspection views.\n return (\n <section\n className={classNames('altertable-journey-chart', className)}\n aria-label={ariaLabel}\n >\n {paths.length === 0 ? (\n <span>No data</span>\n ) : (\n <JourneyFlow\n key={JSON.stringify(paths)}\n paths={paths}\n unit={unit}\n formatValue={formatValue}\n />\n )}\n </section>\n );\n}\n\nfunction JourneyFlow({\n paths,\n unit,\n formatValue,\n}: Pick<JourneyChartProps, 'paths' | 'unit'> & {\n formatValue: (value: number) => string;\n}) {\n const [expandedBranch, setExpandedBranch] = useState<string[]>([]);\n const [visibleEventsByDepth, setVisibleEventsByDepth] = useState<\n Record<number, number>\n >({});\n const graph = limitJourneyFlow(\n buildJourneyFlow(paths, expandedBranch),\n visibleEventsByDepth\n );\n const scrollRef = useRef<HTMLDivElement>(null);\n const pendingDepth = useRef<number | null>(null);\n const depthCount = Math.max(0, ...graph.nodes.map(node => node.depth)) + 1;\n const startingCount = graph.nodes\n .filter(node => node.depth === 0)\n .reduce((sum, node) => sum + node.count, 0);\n function percent(count: number) {\n return formatPercent(startingCount > 0 ? count / startingCount : null);\n }\n const nodeWidth = 176;\n const nodeHeight = 96;\n const barWidth = 16;\n const rowSpacing = nodeHeight + 80;\n const columnSpacing = nodeWidth + 112;\n const width = 34 + nodeWidth + (depthCount - 1) * columnSpacing;\n function columnX(depth: number) {\n return 10 + depth * columnSpacing;\n }\n useLayoutEffect(() => {\n const depth = pendingDepth.current;\n const container = scrollRef.current;\n if (depth === null || !container || depth >= depthCount) return;\n pendingDepth.current = null;\n const left = columnX(depth);\n const right = left + nodeWidth + 24;\n const nextLeft =\n left < container.scrollLeft\n ? left - 24\n : right > container.scrollLeft + container.clientWidth\n ? right - container.clientWidth\n : container.scrollLeft;\n if (nextLeft !== container.scrollLeft)\n container.scrollTo({\n left: Math.max(0, nextLeft),\n behavior: window.matchMedia('(prefers-reduced-motion: reduce)').matches\n ? 'instant'\n : 'smooth',\n });\n });\n const columns = Array.from({ length: depthCount }, (_, depth) =>\n graph.nodes\n .filter(node => node.depth === depth)\n .sort((a, b) => {\n function rank(node: JourneyNode) {\n return node.outcome === 'event'\n ? 0\n : node.outcome === 'other'\n ? 1\n : 2;\n }\n return (\n rank(a) - rank(b) || b.count - a.count || a.key.localeCompare(b.key)\n );\n })\n );\n const positions = new Map<\n string,\n { node: JourneyNode; x: number; y: number }\n >();\n columns.forEach((column, depth) => {\n const parent = columns[depth - 1]?.find(node => node.expanded);\n const parentY = parent ? positions.get(parent.key)?.y : undefined;\n const top = Math.max(\n 104,\n (parentY ?? 104) - (column.length > 1 ? rowSpacing : 0)\n );\n column.forEach((node, index) =>\n positions.set(node.key, {\n node,\n x: columnX(depth),\n y: top + index * rowSpacing,\n })\n );\n });\n const height = Math.max(\n 280,\n ...[...positions.values()].map(position => position.y + nodeHeight + 40)\n );\n const outgoingOffsets = new Map<string, number>();\n const incomingOffsets = new Map<string, number>();\n const orderedLinks = [...graph.links].sort(\n (a, b) =>\n (positions.get(a.source)?.y ?? 0) - (positions.get(b.source)?.y ?? 0) ||\n (positions.get(a.target)?.y ?? 0) - (positions.get(b.target)?.y ?? 0)\n );\n const links = orderedLinks.flatMap(link => {\n const source = positions.get(link.source);\n const target = positions.get(link.target);\n if (!source || !target || link.count <= 0 || startingCount <= 0) return [];\n const x0 = source.x + barWidth;\n const x1 = target.x;\n const mid = (x0 + x1) / 2;\n const sourceTop = source.y + (outgoingOffsets.get(link.source) ?? 0);\n const targetTop = target.y + (incomingOffsets.get(link.target) ?? 0);\n const thickness = (link.count / startingCount) * nodeHeight;\n outgoingOffsets.set(\n link.source,\n (outgoingOffsets.get(link.source) ?? 0) + thickness\n );\n incomingOffsets.set(\n link.target,\n (incomingOffsets.get(link.target) ?? 0) + thickness\n );\n return [\n {\n muted: target.node.outcome === 'end' || target.node.outcome === 'other',\n d: `M${x0},${sourceTop} C${mid},${sourceTop} ${mid},${targetTop} ${x1},${targetTop} L${x1},${targetTop + thickness} C${mid},${targetTop + thickness} ${mid},${sourceTop + thickness} ${x0},${sourceTop + thickness} Z`,\n },\n ];\n });\n return (\n <div ref={scrollRef} className=\"altertable-journey-scroll\">\n <div\n className=\"altertable-journey-plot\"\n style={{ minWidth: width, minHeight: height }}\n >\n <svg width=\"100%\" height=\"100%\" aria-hidden=\"true\" focusable=\"false\">\n <path\n d={links\n .filter(link => !link.muted)\n .map(link => link.d)\n .join(' ')}\n fill=\"color-mix(in srgb, var(--atbl-chart-5) 22%, var(--atbl-surface))\"\n />\n <path\n d={links\n .filter(link => link.muted)\n .map(link => link.d)\n .join(' ')}\n fill=\"color-mix(in srgb, var(--atbl-muted) 22%, var(--atbl-surface))\"\n />\n </svg>\n {columns.map((column, depth) => (\n <span\n key={depth}\n className=\"altertable-journey-stage\"\n style={{ left: columnX(depth) }}\n >\n {column.length > 0 &&\n column.every(\n node => node.outcome !== 'event' && node.outcome !== 'other'\n )\n ? 'Outcome'\n : `Step ${depth + 1}`}\n </span>\n ))}\n {[...positions.values()].map(({ node, x, y }) => (\n <div\n key={node.key}\n className=\"altertable-journey-node\"\n style={{\n left: x,\n top: y,\n width: nodeWidth,\n height:\n startingCount > 0\n ? (node.count / startingCount) * nodeHeight\n : 0,\n }}\n >\n <div\n className=\"altertable-journey-bar\"\n data-event={node.outcome === 'event' || undefined}\n aria-hidden=\"true\"\n style={{ width: barWidth }}\n />\n <section\n aria-label={`${node.label}, step ${node.depth + 1}, ${formatValue(node.count)} ${unit}`}\n className=\"altertable-journey-label\"\n >\n <span className=\"altertable-journey-name\" title={node.label}>\n {node.label}\n </span>\n <span>\n {formatValue(node.count)} {unit} · {percent(node.count)}\n </span>\n {node.hiddenBranchCount ? (\n <span>\n {node.hiddenBranchCount} hidden{' '}\n {node.hiddenBranchCount === 1 ? 'event' : 'events'}\n </span>\n ) : null}\n </section>\n {node.expandable && (\n <Button\n variant=\"outline\"\n size=\"icon-compact\"\n className=\"altertable-journey-expand\"\n aria-label={`${node.expanded ? 'Less' : 'More'} after ${node.label}, step ${node.depth + 1}`}\n aria-expanded={Boolean(node.expanded)}\n onClick={() => {\n pendingDepth.current = node.expanded ? null : node.depth + 1;\n setVisibleEventsByDepth(limits =>\n Object.fromEntries(\n Object.entries(limits).filter(\n ([depth]) => Number(depth) <= node.depth\n )\n )\n );\n setExpandedBranch(\n node.expanded\n ? (node.branchKeys ?? []).slice(0, -1)\n : (node.branchKeys ?? [])\n );\n }}\n >\n {node.expanded ? '−' : '›'}\n </Button>\n )}\n {node.outcome === 'other' && (\n <Button\n size=\"compact\"\n variant=\"ghost\"\n className=\"altertable-journey-more\"\n aria-label={`Show more events at step ${node.depth + 1}`}\n onClick={() =>\n setVisibleEventsByDepth(limits => ({\n ...limits,\n [node.depth]: (limits[node.depth] ?? 3) + 3,\n }))\n }\n >\n Show more events\n </Button>\n )}\n </div>\n ))}\n </div>\n </div>\n );\n}\n",
|
|
28
|
+
"/** Aggregated route; repeated events remain distinct by depth and prefix. */\nexport type JourneyChartPath = {\n /** Unique, nonblank path ID. */\n id: string;\n /** At least one nonblank event; null property means no property grouping. */\n steps: readonly { event: string; property: string | null }[];\n /** Finite, nonnegative population following this route. */\n count: number;\n /** True: converted; false: dropped off; null: no conversion classification. */\n converted: boolean | null;\n /** Stops at the last loaded event, without adding an outcome or expand control. */\n truncated: boolean;\n};\n\nexport type JourneyNode = {\n key: string;\n label: string;\n depth: number;\n outcome: 'event' | 'converted' | 'drop-off' | 'truncated' | 'end' | 'other';\n count: number;\n pathKeys: string[];\n branchKeys?: string[];\n expandable?: boolean;\n expanded?: boolean;\n hiddenBranchCount?: number;\n};\n\nconst journeyOutcomeLabels = {\n truncated: 'More steps',\n 'drop-off': 'Drop-off',\n converted: 'Converted',\n end: 'End of path',\n} as const;\n\nexport function journeyNodes(\n path: JourneyChartPath\n): Omit<JourneyNode, 'count' | 'pathKeys'>[] {\n const nodes: Omit<JourneyNode, 'count' | 'pathKeys'>[] = path.steps.map(\n (step, depth) => ({\n key: JSON.stringify([depth, 'event', step.event, step.property]),\n label:\n step.property === null\n ? step.event\n : `${step.event} · ${step.property}`,\n depth,\n outcome: 'event',\n })\n );\n const outcome = path.truncated\n ? 'truncated'\n : path.converted === false\n ? 'drop-off'\n : path.converted === true\n ? 'converted'\n : 'end';\n nodes.push({\n key: JSON.stringify([nodes.length, outcome]),\n label: journeyOutcomeLabels[outcome],\n depth: nodes.length,\n outcome,\n });\n return nodes;\n}\n\nexport function buildJourneyFlow(\n paths: readonly JourneyChartPath[],\n expandedBranch?: string[]\n) {\n const nodes = new Map<string, JourneyNode>();\n const links = new Map<\n string,\n {\n key: string;\n source: string;\n target: string;\n count: number;\n pathKeys: string[];\n }\n >();\n for (const path of paths) {\n const fullSequence = journeyNodes(path);\n if (path.truncated) fullSequence.pop();\n const sequence =\n expandedBranch === undefined\n ? fullSequence\n : fullSequence.flatMap((node, index) => {\n const branchKeys = fullSequence\n .slice(0, index + 1)\n .map(step => step.key);\n const parentExpanded =\n index <= 1 ||\n branchKeys\n .slice(0, index)\n .every((key, depth) => expandedBranch[depth] === key);\n if (!parentExpanded) return [];\n return [\n {\n ...node,\n key: JSON.stringify(branchKeys),\n branchKeys,\n expandable: index >= 1 && index < fullSequence.length - 1,\n expanded: branchKeys.every(\n (key, depth) => expandedBranch[depth] === key\n ),\n },\n ];\n });\n sequence.forEach((node, index) => {\n const current = nodes.get(node.key) ?? {\n ...node,\n count: 0,\n pathKeys: [],\n };\n current.count += path.count;\n if ('expandable' in node && node.expandable) current.expandable = true;\n current.pathKeys.push(path.id);\n nodes.set(node.key, current);\n const previous = sequence[index - 1];\n if (!previous) return;\n const key = JSON.stringify([previous.key, node.key]);\n const link = links.get(key) ?? {\n key,\n source: previous.key,\n target: node.key,\n count: 0,\n pathKeys: [],\n };\n link.count += path.count;\n link.pathKeys.push(path.id);\n links.set(key, link);\n });\n }\n return { nodes: [...nodes.values()], links: [...links.values()] };\n}\n\nexport function limitJourneyFlow(\n graph: ReturnType<typeof buildJourneyFlow>,\n visibleEventsByDepth: Record<number, number> = {}\n) {\n const nodes: JourneyNode[] = [];\n const replacements = new Map<string, string>();\n for (const depth of new Set(graph.nodes.map(node => node.depth))) {\n const column = graph.nodes\n .filter(node => node.depth === depth)\n .sort(\n (a, b) =>\n Number(Boolean(b.expanded)) - Number(Boolean(a.expanded)) ||\n b.count - a.count ||\n a.key.localeCompare(b.key)\n );\n const events = column.filter(node => node.outcome === 'event');\n const outcomes = column.filter(node => node.outcome !== 'event');\n const limit = visibleEventsByDepth[depth] ?? 3;\n if (events.length <= limit) {\n nodes.push(...column);\n continue;\n }\n nodes.push(...events.slice(0, limit), ...outcomes);\n const hidden = events.slice(limit);\n const key = JSON.stringify(['other', depth]);\n hidden.forEach(node => replacements.set(node.key, key));\n nodes.push({\n key,\n label: 'More events',\n depth,\n outcome: 'other',\n hiddenBranchCount: hidden.length,\n count: hidden.reduce((sum, node) => sum + node.count, 0),\n pathKeys: [...new Set(hidden.flatMap(node => node.pathKeys))],\n });\n }\n const links = new Map<string, (typeof graph.links)[number]>();\n for (const link of graph.links) {\n const source = replacements.get(link.source) ?? link.source;\n const target = replacements.get(link.target) ?? link.target;\n const key = JSON.stringify([source, target]);\n const existing = links.get(key);\n if (existing) {\n existing.count += link.count;\n existing.pathKeys.push(...link.pathKeys);\n } else {\n links.set(key, {\n ...link,\n key,\n source,\n target,\n pathKeys: [...link.pathKeys],\n });\n }\n }\n return { nodes, links: [...links.values()] };\n}\n"
|
|
24
29
|
],
|
|
25
|
-
"mappings": ";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAOO,SAAS,wBAAwB,CACtC,UAAgC,CAAC,GACf;AAAA,EAClB,OAAO,aAAa;AAAA,IAClB,MAAM;AAAA,IACN,WAAW;AAAA,IACX,KAAK;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;A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",
|
|
26
|
-
"debugId": "
|
|
30
|
+
"mappings": ";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAOO,SAAS,wBAAwB,CACtC,UAAgC,CAAC,GACf;AAAA,EAClB,OAAO,aAAa;AAAA,IAClB,MAAM;AAAA,IACN,WAAW;AAAA,IACX,KAAK;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AA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",
|
|
31
|
+
"debugId": "6CFD84691873BB8C64756E2164756E21",
|
|
27
32
|
"names": []
|
|
28
33
|
}
|