@pstdio/ui 0.35.0 → 0.36.1
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/{MermaidComponent-DGDnQ6pb.js → MermaidComponent-Cxg7NtjX.js} +2 -2
- package/dist/{MermaidComponent-DGDnQ6pb.js.map → MermaidComponent-Cxg7NtjX.js.map} +1 -1
- package/dist/chat-ui.d.ts +3 -3
- package/dist/chat-ui.js +1 -1
- package/dist/{data-table-stats-row-DNJG8tLZ.js → data-table-stats-row-UuTinYfL.js} +2 -2
- package/dist/{data-table-stats-row-DNJG8tLZ.js.map → data-table-stats-row-UuTinYfL.js.map} +1 -1
- package/dist/data-table.d.ts +32 -1
- package/dist/data-table.js +540 -406
- package/dist/data-table.js.map +1 -1
- package/dist/index.d.ts +17 -21
- package/dist/index.js +861 -907
- package/dist/index.js.map +1 -1
- package/dist/kanban-renderer.d.ts +3 -1
- package/dist/kanban-renderer.js +171 -171
- package/dist/kanban-renderer.js.map +1 -1
- package/dist/{param-editor-IJzw1cA2.js → param-editor-I0dKQeeZ.js} +2 -2
- package/dist/{param-editor-IJzw1cA2.js.map → param-editor-I0dKQeeZ.js.map} +1 -1
- package/dist/{param-editor-field-DscIjv8s.js → param-editor-field-CBguLs_b.js} +2 -2
- package/dist/{param-editor-field-DscIjv8s.js.map → param-editor-field-CBguLs_b.js.map} +1 -1
- package/dist/param-editor.js +2 -2
- package/dist/{rich-text-DtQpHBlX.js → rich-text-BgDvOEGH.js} +657 -654
- package/dist/rich-text-BgDvOEGH.js.map +1 -0
- package/dist/rich-text.js +1 -1
- package/dist/{theme-kSkOHzbV.js → theme-0cbWICbg.js} +247 -163
- package/dist/theme-0cbWICbg.js.map +1 -0
- package/dist/theme.js +1 -1
- package/dist/{workspace-badge-CkJ_jTQw.d.ts → workspace-badge-Brm3Xr3m.d.ts} +1 -1
- package/dist/{workspace-badge-9g78pXHS.js → workspace-badge-DrvH8WKV.js} +38 -42
- package/dist/workspace-badge-DrvH8WKV.js.map +1 -0
- package/package.json +2 -2
- package/dist/rich-text-DtQpHBlX.js.map +0 -1
- package/dist/theme-kSkOHzbV.js.map +0 -1
- package/dist/workspace-badge-9g78pXHS.js.map +0 -1
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { f as e } from "./rich-text-
|
|
1
|
+
import { f as e } from "./rich-text-BgDvOEGH.js";
|
|
2
2
|
import { t } from "./mermaid-renderer-DImi0fDp.js";
|
|
3
3
|
import { Box as n, Button as r, Flex as i, Textarea as a } from "@chakra-ui/react";
|
|
4
4
|
import { c as o } from "react/compiler-runtime";
|
|
@@ -87,4 +87,4 @@ function m(m) {
|
|
|
87
87
|
//#endregion
|
|
88
88
|
export { m as default };
|
|
89
89
|
|
|
90
|
-
//# sourceMappingURL=MermaidComponent-
|
|
90
|
+
//# sourceMappingURL=MermaidComponent-Cxg7NtjX.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"MermaidComponent-
|
|
1
|
+
{"version":3,"file":"MermaidComponent-Cxg7NtjX.js","names":["Box","Button","Flex","Textarea","useLexicalComposerContext","useLexicalEditable","$getNodeByKey","useEffect","useState","MermaidRenderer","$isMermaidNode","MermaidComponentProps","code","nodeKey","MermaidComponent","props","$","_c","editor","isEditable","isEditing","setIsEditing","draftCode","setDraftCode","previewCode","setPreviewCode","t0","t1","t2","update","node","setCode","commitCodeChanges","t3","cancelEditing","t4","undefined","t5","t6","t7","Symbol","for","event","target","value","t8","t9","_c","$isMermaidNode","MermaidComponent","$","c","props","editor","useLexicalComposerContext","isEditable","useLexicalEditable","isEditing","setIsEditing","useState","draftCode","setDraftCode","code","previewCode","setPreviewCode","t0","t1","useEffect","t2","nodeKey","node","$getNodeByKey","commitCodeChanges","t3","cancelEditing","t4","t5","MermaidRenderer","Button","t6","Flex","t7","event","t8","Box","Textarea","t9"],"sources":["../src/components/rich-text/shared/plugins/MermaidPlugin/MermaidComponent.tsx"],"sourcesContent":["import { Box, Button, Flex, Textarea } from \"@chakra-ui/react\";\nimport { useLexicalComposerContext } from \"@lexical/react/LexicalComposerContext\";\nimport { useLexicalEditable } from \"@lexical/react/useLexicalEditable\";\nimport { $getNodeByKey } from \"lexical\";\nimport { useEffect, useState } from \"react\";\nimport { MermaidRenderer } from \"@/components/mermaid-renderer\";\nimport { $isMermaidNode } from \"./MermaidNode\";\n\ninterface MermaidComponentProps {\n code: string;\n nodeKey: string;\n}\n\nexport default function MermaidComponent(props: MermaidComponentProps) {\n const { code, nodeKey } = props;\n const [editor] = useLexicalComposerContext();\n const isEditable = useLexicalEditable();\n const [isEditing, setIsEditing] = useState(false);\n const [draftCode, setDraftCode] = useState(code);\n const [previewCode, setPreviewCode] = useState(code);\n\n useEffect(() => {\n setDraftCode(code);\n setPreviewCode(code);\n }, [code]);\n\n const commitCodeChanges = () => {\n editor.update(() => {\n const node = $getNodeByKey(nodeKey);\n if ($isMermaidNode(node)) {\n node.setCode(draftCode);\n }\n });\n\n setPreviewCode(draftCode);\n setIsEditing(false);\n };\n\n const cancelEditing = () => {\n setDraftCode(previewCode);\n setIsEditing(false);\n };\n\n if (!isEditing) {\n return (\n <MermaidRenderer\n key={previewCode}\n code={previewCode}\n isEditable={isEditable}\n onRequestEdit={isEditable ? () => setIsEditing(true) : undefined}\n />\n );\n }\n\n return (\n <Box borderWidth=\"1px\" borderColor=\"border.subtle\" borderRadius=\"md\" overflow=\"hidden\" width=\"100%\">\n <Flex justifyContent=\"flex-end\" alignItems=\"center\" gap=\"xs\" paddingX=\"sm\" paddingY=\"xs\" bg=\"bg.muted\">\n <Button size=\"xs\" variant=\"subtle\" onClick={cancelEditing}>\n Cancel\n </Button>\n <Button size=\"xs\" onClick={commitCodeChanges}>\n Preview\n </Button>\n </Flex>\n <Box padding=\"sm\" bg=\"bg.muted\">\n <Textarea\n value={draftCode}\n onChange={(event) => setDraftCode(event.target.value)}\n minHeight=\"180px\"\n resize=\"vertical\"\n fontFamily=\"mono\"\n fontSize=\"sm\"\n spellCheck={false}\n />\n </Box>\n </Box>\n );\n}\n"],"mappings":";;;;;;;;;;AAaA,SAAec,EAAAC,GAAA;CAAA,IAAAC,IAAAC,EAAA,EAAA,GACb,EAAAL,SAAAC,eAA0BE,GAC1B,CAAAG,KAAiBd,EAA0B,GAC3Ce,IAAmBd,EAAmB,GACtC,CAAAe,GAAAC,KAAkCb,EAAS,EAAK,GAChD,CAAAc,GAAAC,KAAkCf,EAASI,CAAI,GAC/C,CAAAY,GAAAC,KAAsCjB,EAASI,CAAI,GAAEc,GAAAC;CAErDpB,AAFqDS,EAAA,OAAAJ,KAK5Cc,IAAAV,EAAA,IAAAW,IAAAX,EAAA,OAHCU,UAAA;EAERD,AADAF,EAAaX,CAAI,GACjBa,EAAeb,CAAI;CAAC,GACnBe,IAAA,CAACf,CAAI,GAACI,EAAA,KAAAJ,GAAAI,EAAA,KAAAU,GAAAV,EAAA,KAAAW,IAHTpB,EAAUmB,GAGPC,CAAM;CAAC,IAAAC;CAAA,AAAAZ,EAAA,OAAAM,KAAAN,EAAA,OAAAE,KAAAF,EAAA,OAAAH,KAEgBe,UAAA;EASxBP,AARAH,EAAMW,aAAQ;GACZ,IAAAC,IAAaxB,EAAcO,CAAO;GAClC,AAAIH,EAAeoB,CAAI,KACrBA,EAAIC,QAAST,CAAS;EACvB,CACF,GAEDG,EAAeH,CAAS,GACxBD,EAAa,EAAK;CAAC,GACpBL,EAAA,KAAAM,GAAAN,EAAA,KAAAE,GAAAF,EAAA,KAAAH,GAAAG,EAAA,KAAAY,KAAAA,IAAAZ,EAAA;CAVD,IAAAgB,IAA0BJ,GAUxBK;CAAA,AAAAjB,EAAA,OAAAQ,IAKDS,IAAAjB,EAAA,MAHqBiB,UAAA;EAEpBZ,AADAE,EAAaC,CAAW,GACxBH,EAAa,EAAK;CAAC,GACpBL,EAAA,KAAAQ,GAAAR,EAAA,KAAAiB;CAHD,IAAAC,IAAsBD;CAKtB,IAAI,CAACb,GAAS;EAAA,IAAAe;EAAA,AAAAnB,EAAA,OAAAG,IAMwDgB,IAAAnB,EAAA,OAAjDmB,IAAAhB,UAAmBE,EAAa,EAAI,IAApCe,KAAAA,GAAiDpB,EAAA,KAAAG,GAAAH,EAAA,MAAAmB;EAAA,IAAAE;EAChE,OADgErB,EAAA,QAAAG,KAAAH,EAAA,QAAAQ,KAAAR,EAAA,QAAAmB,KAJlEE,IAAA,kBAACwC,GAAD;GAEQrD,MAAAA;GACML;GACG,eAAAgB;EAAiD,GAH3DX,CAG2D,GAChER,EAAA,MAAAG,GAAAH,EAAA,MAAAQ,GAAAR,EAAA,MAAAmB,GAAAnB,EAAA,MAAAqB,KAAAA,IAAArB,EAAA,KALFqB;CAKE;CAEL,IAAAF;CAAA,AAAAnB,EAAA,QAAAkB,IAOcC,IAAAnB,EAAA,OAFTmB,IAAA,kBAAC2C,GAAD;EAAa,MAAA;EAAa,SAAA;EAAkB5C,SAAAA;EAAe,UAAA;CAApD,CAAA,GAEElB,EAAA,MAAAkB,GAAAlB,EAAA,MAAAmB;CAAA,IAAAE;CAAA,AAAArB,EAAA,QAAAgB,IAGAK,IAAArB,EAAA,OAFTqB,IAAA,kBAACyC,GAAD;EAAa,MAAA;EAAc9C,SAAAA;EAAmB,UAAA;CAAvC,CAAA,GAEEhB,EAAA,MAAAgB,GAAAhB,EAAA,MAAAqB;CAAA,IAAAC;CAAA,AAAAtB,EAAA,QAAAmB,KAAAnB,EAAA,QAAAqB,KANXC,IAAA,kBAAC0C,GAAD;EAAqB,gBAAA;EAAsB,YAAA;EAAa,KAAA;EAAc,UAAA;EAAc,UAAA;EAAQ,IAAA;EAA5F,UAAA,CACE7C,GAGAE,CAJG;KAOErB,EAAA,MAAAmB,GAAAnB,EAAA,MAAAqB,GAAArB,EAAA,MAAAsB,KAAAA,IAAAtB,EAAA;CAAA,IAAAuB;CAAA,AAAAvB,EAAA,QAAAwB,OAAAC,IAAA,2BAAA,KAIOF,KAAAG,MAAWnB,EAAamB,EAAKC,OAAOC,KAAM,GAAC5B,EAAA,MAAAuB,KAAAA,IAAAvB,EAAA;CAAA,IAAA6B;CAAA,AAAA7B,EAAA,QAAAM,IAOnDuB,IAAA7B,EAAA,OAVN6B,IAAA,kBAACuC,GAAD;EAAa,SAAA;EAAQ,IAAA;EACnB,UAAA,kBAACC,GAAD;GACS/D,OAAAA;GACG,UAAAiB;GACA,WAAA;GACH,QAAA;GACI,YAAA;GACF,UAAA;GACG,YAAA;EAAK,CAAA;CARjB,CAAA,GAUEvB,EAAA,MAAAM,GAAAN,EAAA,MAAA6B;CAAA,IAAAC;CACF,OADE9B,EAAA,QAAAsB,KAAAtB,EAAA,QAAA6B,KAnBRC,IAAA,kBAACsC,GAAD;EAAiB,aAAA;EAAkB,aAAA;EAA6B,cAAA;EAAc,UAAA;EAAe,OAAA;EAA7F,UAAA,CACE9C,GAQAO,CATE;KAoBE7B,EAAA,MAAAsB,GAAAtB,EAAA,MAAA6B,GAAA7B,EAAA,MAAA8B,KAAAA,IAAA9B,EAAA,KApBN8B;AAoBM"}
|
package/dist/chat-ui.d.ts
CHANGED
|
@@ -10,6 +10,9 @@ type ConversationScrollButtonProps = IconButtonProps;
|
|
|
10
10
|
export declare const ChatPrimitives: {
|
|
11
11
|
readonly Root: import("@chakra-ui/react").ChakraComponent<import("react").ElementType, {
|
|
12
12
|
resize?: import("use-stick-to-bottom").Animation | undefined;
|
|
13
|
+
onChange?: import("react").ChangeEventHandler<HTMLDivElement, Element> | undefined;
|
|
14
|
+
onError?: import("react").ReactEventHandler<HTMLDivElement> | undefined;
|
|
15
|
+
onSubmit?: import("react").SubmitEventHandler<HTMLDivElement> | undefined;
|
|
13
16
|
slot?: string | undefined | undefined;
|
|
14
17
|
style?: import("react").CSSProperties | undefined;
|
|
15
18
|
title?: string | undefined | undefined;
|
|
@@ -139,7 +142,6 @@ export declare const ChatPrimitives: {
|
|
|
139
142
|
onFocusCapture?: import("react").FocusEventHandler<HTMLDivElement> | undefined;
|
|
140
143
|
onBlur?: import("react").FocusEventHandler<HTMLDivElement> | undefined;
|
|
141
144
|
onBlurCapture?: import("react").FocusEventHandler<HTMLDivElement> | undefined;
|
|
142
|
-
onChange?: import("react").ChangeEventHandler<HTMLDivElement, Element> | undefined;
|
|
143
145
|
onChangeCapture?: import("react").ChangeEventHandler<HTMLDivElement, Element> | undefined;
|
|
144
146
|
onBeforeInput?: import("react").InputEventHandler<HTMLDivElement> | undefined;
|
|
145
147
|
onBeforeInputCapture?: import("react").InputEventHandler<HTMLDivElement> | undefined;
|
|
@@ -147,13 +149,11 @@ export declare const ChatPrimitives: {
|
|
|
147
149
|
onInputCapture?: import("react").InputEventHandler<HTMLDivElement> | undefined;
|
|
148
150
|
onReset?: import("react").ReactEventHandler<HTMLDivElement> | undefined;
|
|
149
151
|
onResetCapture?: import("react").ReactEventHandler<HTMLDivElement> | undefined;
|
|
150
|
-
onSubmit?: import("react").SubmitEventHandler<HTMLDivElement> | undefined;
|
|
151
152
|
onSubmitCapture?: import("react").SubmitEventHandler<HTMLDivElement> | undefined;
|
|
152
153
|
onInvalid?: import("react").ReactEventHandler<HTMLDivElement> | undefined;
|
|
153
154
|
onInvalidCapture?: import("react").ReactEventHandler<HTMLDivElement> | undefined;
|
|
154
155
|
onLoad?: import("react").ReactEventHandler<HTMLDivElement> | undefined;
|
|
155
156
|
onLoadCapture?: import("react").ReactEventHandler<HTMLDivElement> | undefined;
|
|
156
|
-
onError?: import("react").ReactEventHandler<HTMLDivElement> | undefined;
|
|
157
157
|
onErrorCapture?: import("react").ReactEventHandler<HTMLDivElement> | undefined;
|
|
158
158
|
onKeyDown?: import("react").KeyboardEventHandler<HTMLDivElement> | undefined;
|
|
159
159
|
onKeyDownCapture?: import("react").KeyboardEventHandler<HTMLDivElement> | undefined;
|
package/dist/chat-ui.js
CHANGED
|
@@ -2,7 +2,7 @@ import { a as e, o as t, r as n } from "./prism-pSHJejZx.js";
|
|
|
2
2
|
import { n as r, t as i } from "./scroll-area-Cr1lNXAr.js";
|
|
3
3
|
import { t as a } from "./empty-state-3mVV_pV-.js";
|
|
4
4
|
import { n as o, t as s } from "./radio-CiFrDN6O.js";
|
|
5
|
-
import { c, l, o as u, s as d } from "./rich-text-
|
|
5
|
+
import { c, l, o as u, s as d } from "./rich-text-BgDvOEGH.js";
|
|
6
6
|
import { t as f } from "./diff-bubble-DZsarmSG.js";
|
|
7
7
|
import { AbsoluteCenter as p, Avatar as m, Badge as h, Box as g, Button as _, Card as v, Code as y, Flex as b, HStack as x, Icon as S, IconButton as C, Image as w, Kbd as T, Link as E, Portal as D, Skeleton as O, Spacer as k, Span as A, Spinner as j, Stack as M, Text as N, Textarea as P, Timeline as F, Tooltip as I, chakra as L, createSlotRecipeContext as R, defineSlotRecipe as z } from "@chakra-ui/react";
|
|
8
8
|
import { c as B } from "react/compiler-runtime";
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { L as e } from "./rich-text-BgDvOEGH.js";
|
|
2
2
|
import { Box as t, Flex as n, Table as r, Text as i } from "@chakra-ui/react";
|
|
3
3
|
import { c as a } from "react/compiler-runtime";
|
|
4
4
|
import { Fragment as o, jsx as s, jsxs as c } from "react/jsx-runtime";
|
|
@@ -412,4 +412,4 @@ function z(e) {
|
|
|
412
412
|
//#endregion
|
|
413
413
|
export { N as DataTableStatsRow };
|
|
414
414
|
|
|
415
|
-
//# sourceMappingURL=data-table-stats-row-
|
|
415
|
+
//# sourceMappingURL=data-table-stats-row-UuTinYfL.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"data-table-stats-row-DNJG8tLZ.js","names":["Chart","UseChartProps","useChart","ReactNode","Bar","BarChart","Tooltip","RechartsTooltip","useActiveTooltipCoordinate","usePlotArea","XAxis","YAxis","ChartSeries","NonNullable","T","StringKeyOf","Extract","StatChartCrosshair","$","_c","coordinate","plotArea","t0","y","height","t1","x","t2","width","t3","t4","DataTableStatChartProps","data","dataKey","color","ariaLabel","tooltipLabel","datum","tooltipValue","value","tooltipSeriesLabel","layout","categoryKey","domain","barSize","barCategoryGap","DataTableStatChart","props","undefined","name","series","chart","getBarValue","t5","datum_0","getCategoryValue","t6","t7","Symbol","for","top","right","bottom","left","t8","t9","t10","t11","t12","label","payload","datum_1","t13","t14","t15","t16","zIndex","t17","t18","t19","_c","_Fragment","RechartsTooltip","isDisplayValue","RowData","HistogramBin","start","end","count","HistogramStat","min","max","bins","TopValueStat","label","percentage","getStatValue","value","sortValue","getColumnStatValues","rows","columnId","map","row","filter","undefined","countUniqueStatValues","Set","size","buildTopValuesStat","limit","values","counts","Map","set","get","groups","entries","String","Math","round","length","sort","left","right","localeCompare","topGroups","slice","otherCount","reduce","total","group","buildHistogramStat","binCount","binWidth","Array","from","_","index","binIndex","floor","Box","Flex","Table","Text","Header","HeaderGroup","DataTableStatChart","buildHistogramStat","buildTopValuesStat","countUniqueStatValues","DataTableColumnStat","RowData","formatNumber","Intl","NumberFormat","undefined","maximumFractionDigits","format","STAT_CHART_COLOR","SingleValueStatProps","value","count","SingleValueStat","props","$","_c","t0","t1","t2","t3","t4","UniqueStatProps","rows","columnId","UniqueStat","T0","T1","t5","t6","t7","Symbol","for","t8","HistogramStatProps","binCount","HistogramStat","T2","t10","t9","bb0","histogram","t11","valueCount","bins","reduce","_temp","min","max","_temp2","_temp3","t12","t13","TopValuesStatProps","limit","TopValuesStat","groups","length","label","map","_temp6","DataTableStatProps","stat","DataTableStat","type","DataTableStatCellProps","header","headerGroup","columnStats","Partial","Record","fullWidth","DataTableStatCell","column","id","borderRight","headers","indexOf","width","DataTableStatsRowProps","noBorder","DataTableStatsRow","hasVisibleStats","some","header_0","total","bin","bin_0","start","end","Number","_temp4","datum","_temp5","group","percentage","_c","isDisplayValue","Tooltip$1","StatChartCrosshair","$","c","coordinate","useActiveTooltipCoordinate","plotArea","usePlotArea","t0","t1","t2","t3","t4","DataTableStatChart","props","layout","barCategoryGap","color","dataKey","data","chart","useChart","datum","getBarValue","t5","categoryKey","datum_0","getCategoryValue","t6","t7","t8","domain","Fragment","XAxis","YAxis","t9","t10","barSize","Bar","t11","t12","tooltipLabel","datum_1","payload","label","t13","tooltipSeriesLabel","tooltipValue","value","t14","Chart","t15","t16","t17","t18","BarChart","t19","ariaLabel","height","getStatValue","getColumnStatValues","rows","row","columnId","countUniqueStatValues","buildTopValuesStat","values","counts","groups","count","right","left","topGroups","limit","otherCount","total","group","buildHistogramStat","min","max","binWidth","binCount","bins","index","binIndex","formatNumber","STAT_CHART_COLOR","SingleValueStat","Text","Flex","UniqueStat","T0","T1","HistogramStat","T2","histogram","valueCount","_temp","_temp2","_temp3","TopValuesStat","_temp6","DataTableStat","stat","DataTableStatCell","columnStats","header","fullWidth","headerGroup","Table","DataTableStatsRow","noBorder","header_0","bin","bin_0","_temp4","_temp5","Box"],"sources":["../src/components/data-table/data-table-stat-chart.tsx","../src/components/data-table/data-table-stats.ts","../src/components/data-table/data-table-stats-row.tsx"],"sourcesContent":["import { Chart, type UseChartProps, useChart } from \"@chakra-ui/charts\";\nimport type { ReactNode } from \"react\";\nimport {\n Bar,\n BarChart,\n Tooltip as RechartsTooltip,\n useActiveTooltipCoordinate,\n usePlotArea,\n XAxis,\n YAxis,\n} from \"recharts\";\n\ntype ChartSeries<T> = NonNullable<UseChartProps<T>[\"series\"]>[number];\ntype StringKeyOf<T> = Extract<keyof T, string>;\n\nconst StatChartCrosshair = () => {\n const coordinate = useActiveTooltipCoordinate();\n const plotArea = usePlotArea();\n\n if (!coordinate || !plotArea) return null;\n\n return (\n <g pointerEvents=\"none\" stroke=\"var(--chakra-colors-border-emphasized)\" strokeWidth=\"1\">\n <line x1={coordinate.x} x2={coordinate.x} y1={plotArea.y} y2={plotArea.y + plotArea.height} />\n <line x1={plotArea.x} x2={plotArea.x + plotArea.width} y1={coordinate.y} y2={coordinate.y} />\n </g>\n );\n};\n\ninterface DataTableStatChartProps<T extends object> {\n data: T[];\n dataKey: StringKeyOf<T>;\n color: ChartSeries<T>[\"color\"];\n height: string;\n ariaLabel: string;\n tooltipLabel: (datum: T) => ReactNode;\n tooltipValue: (value: string | number) => ReactNode;\n tooltipSeriesLabel: string;\n layout?: \"horizontal\" | \"vertical\";\n categoryKey?: StringKeyOf<T>;\n domain?: [number, number];\n barSize?: number;\n barCategoryGap?: number;\n}\n\nexport const DataTableStatChart = <T extends object>(props: DataTableStatChartProps<T>) => {\n const {\n data,\n dataKey,\n color,\n height,\n ariaLabel,\n tooltipLabel,\n tooltipValue,\n tooltipSeriesLabel,\n layout = \"horizontal\",\n categoryKey,\n domain,\n barSize,\n barCategoryGap = 1,\n } = props;\n const chart = useChart({ data, series: [{ name: dataKey, color }] });\n const getBarValue = (datum: T) => datum[dataKey] as string | number;\n const getCategoryValue = categoryKey ? (datum: T) => datum[categoryKey] as string | number : undefined;\n\n return (\n <Chart.Root chart={chart} height={height} aspectRatio=\"auto\" cursor=\"crosshair\" aria-label={ariaLabel}>\n <BarChart\n responsive\n data={chart.data}\n layout={layout}\n margin={{ top: 2, right: 0, bottom: 0, left: 0 }}\n barCategoryGap={barCategoryGap}\n >\n {layout === \"vertical\" ? (\n <>\n <XAxis type=\"number\" domain={domain} hide />\n <YAxis type=\"category\" dataKey={getCategoryValue} hide />\n </>\n ) : null}\n <Bar dataKey={getBarValue} fill={chart.color(color)} barSize={barSize} isAnimationActive={false} />\n <RechartsTooltip\n allowEscapeViewBox={{ x: true, y: true }}\n content={\n <Chart.Tooltip\n labelFormatter={(label, payload) => {\n const datum = payload[0]?.payload as T | undefined;\n return datum ? tooltipLabel(datum) : label;\n }}\n formatter={(value) => [tooltipValue(value), tooltipSeriesLabel]}\n />\n }\n cursor={<StatChartCrosshair />}\n isAnimationActive={false}\n wrapperStyle={{ zIndex: 1800 }}\n />\n </BarChart>\n </Chart.Root>\n );\n};\n","import { isDisplayValue } from \"./helpers\";\nimport type { RowData } from \"./types\";\n\nexport interface HistogramBin {\n start: number;\n end: number;\n count: number;\n}\n\nexport interface HistogramStat {\n min: number;\n max: number;\n bins: HistogramBin[];\n}\n\nexport interface TopValueStat {\n label: string;\n count: number;\n percentage: number;\n}\n\nconst getStatValue = (value: unknown) => (isDisplayValue(value) ? value.sortValue : value);\n\nconst getColumnStatValues = (rows: RowData[], columnId: string) =>\n rows\n .map((row) => getStatValue(row[columnId]))\n .filter((value) => value !== null && value !== undefined && value !== \"\");\n\nexport const countUniqueStatValues = (rows: RowData[], columnId: string) =>\n new Set(getColumnStatValues(rows, columnId)).size;\n\nexport const buildTopValuesStat = (rows: RowData[], columnId: string, limit: number) => {\n const values = getColumnStatValues(rows, columnId);\n const counts = new Map<unknown, number>();\n\n for (const value of values) {\n counts.set(value, (counts.get(value) ?? 0) + 1);\n }\n\n const groups: TopValueStat[] = [...counts.entries()]\n .map(([value, count]) => ({\n label: String(value),\n count,\n percentage: Math.round((count / values.length) * 100),\n }))\n .sort((left, right) => right.count - left.count || left.label.localeCompare(right.label));\n const topGroups = groups.slice(0, limit);\n const otherCount = groups.slice(limit).reduce((total, group) => total + group.count, 0);\n\n if (otherCount === 0) return topGroups;\n\n return [\n ...topGroups,\n {\n label: \"Other\",\n count: otherCount,\n percentage: Math.round((otherCount / values.length) * 100),\n },\n ];\n};\n\nexport const buildHistogramStat = (rows: RowData[], columnId: string, binCount: number): HistogramStat | null => {\n const values = getColumnStatValues(rows, columnId).filter((value): value is number => typeof value === \"number\");\n if (values.length === 0) return null;\n\n const min = Math.min(...values);\n const max = Math.max(...values);\n const binWidth = (max - min) / binCount;\n const bins = Array.from({ length: binCount }, (_, index) => ({\n start: min + binWidth * index,\n end: min + binWidth * (index + 1),\n count: 0,\n }));\n\n for (const value of values) {\n const binIndex = value === max || binWidth === 0 ? binCount - 1 : Math.floor((value - min) / binWidth);\n bins[binIndex]!.count += 1;\n }\n\n return { min, max, bins };\n};\n","import { Box, Flex, Table, Text } from \"@chakra-ui/react\";\nimport type { Header, HeaderGroup } from \"@tanstack/react-table\";\nimport { DataTableStatChart } from \"./data-table-stat-chart\";\nimport { buildHistogramStat, buildTopValuesStat, countUniqueStatValues } from \"./data-table-stats\";\nimport type { DataTableColumnStat, RowData } from \"./types\";\n\nconst formatNumber = new Intl.NumberFormat(undefined, { maximumFractionDigits: 2 }).format;\nconst STAT_CHART_COLOR = \"vis.categorical.1\";\n\ninterface SingleValueStatProps {\n value: string;\n count: number;\n}\n\nconst SingleValueStat = (props: SingleValueStatProps) => {\n const { value, count } = props;\n\n return (\n <Flex data-single-value-stat direction=\"column\" gap=\"2xs\" alignItems=\"flex-start\" minWidth=\"0\">\n <Text textStyle=\"label/L/medium\" lineHeight=\"1\" maxWidth=\"100%\" truncate>\n {value}\n </Text>\n <Text textStyle=\"label/XS\" color=\"fg.muted\">\n {formatNumber(count)} {count === 1 ? \"value\" : \"values\"}\n </Text>\n </Flex>\n );\n};\n\ninterface UniqueStatProps {\n rows: RowData[];\n columnId: string;\n}\n\nconst UniqueStat = (props: UniqueStatProps) => {\n const { rows, columnId } = props;\n const count = countUniqueStatValues(rows, columnId);\n\n return (\n <Flex direction=\"column\" gap=\"2xs\" alignItems=\"flex-start\">\n <Text textStyle=\"label/L/medium\" lineHeight=\"1\">\n {formatNumber(count)}\n </Text>\n <Text textStyle=\"label/XS/regular\" color=\"fg.muted\">\n unique values\n </Text>\n </Flex>\n );\n};\n\ninterface HistogramStatProps {\n rows: RowData[];\n columnId: string;\n binCount: number;\n}\n\nconst HistogramStat = (props: HistogramStatProps) => {\n const { rows, columnId, binCount } = props;\n const histogram = buildHistogramStat(rows, columnId, binCount);\n\n if (!histogram) {\n return (\n <Text textStyle=\"label/XS/regular\" color=\"fg.muted\">\n No numeric values\n </Text>\n );\n }\n\n const valueCount = histogram.bins.reduce((total, bin) => total + bin.count, 0);\n if (histogram.min === histogram.max) {\n return <SingleValueStat value={formatNumber(histogram.min)} count={valueCount} />;\n }\n\n return (\n <Flex direction=\"column\" width=\"100%\" gap=\"2xs\">\n <DataTableStatChart\n data={histogram.bins}\n dataKey=\"count\"\n color={STAT_CHART_COLOR}\n height=\"40px\"\n ariaLabel={`Distribution for ${columnId}`}\n tooltipLabel={(bin) => `${formatNumber(bin.start)} – ${formatNumber(bin.end)}`}\n tooltipValue={(value) => `${formatNumber(Number(value))} values`}\n tooltipSeriesLabel=\"Count\"\n />\n <Flex justifyContent=\"space-between\" gap=\"xs\">\n <Text textStyle=\"label/XS/regular\" color=\"fg.muted\">\n {formatNumber(histogram.min)}\n </Text>\n <Text textStyle=\"label/XS/regular\" color=\"fg.muted\">\n {formatNumber(histogram.max)}\n </Text>\n </Flex>\n </Flex>\n );\n};\n\ninterface TopValuesStatProps {\n rows: RowData[];\n columnId: string;\n limit: number;\n}\n\nconst TopValuesStat = (props: TopValuesStatProps) => {\n const { rows, columnId, limit } = props;\n const groups = buildTopValuesStat(rows, columnId, limit);\n\n if (groups.length === 1 && groups[0]) {\n return <SingleValueStat value={groups[0].label} count={groups[0].count} />;\n }\n\n return (\n <Flex direction=\"column\" width=\"100%\" gap=\"2xs\">\n {groups.map((group) => (\n <Box key={group.label} position=\"relative\" height=\"18px\">\n <DataTableStatChart\n data={[group]}\n dataKey=\"percentage\"\n categoryKey=\"label\"\n color={STAT_CHART_COLOR}\n height=\"18px\"\n ariaLabel={`${group.label}: ${group.percentage}%`}\n layout=\"vertical\"\n domain={[0, 100]}\n barSize={18}\n tooltipLabel={(datum) => `${datum.label} · ${formatNumber(datum.count)} values`}\n tooltipValue={(value) => `${formatNumber(Number(value))}%`}\n tooltipSeriesLabel=\"Share\"\n />\n <Flex\n position=\"absolute\"\n inset=\"0\"\n paddingX=\"2xs\"\n justifyContent=\"space-between\"\n gap=\"xs\"\n pointerEvents=\"none\"\n >\n <Text textStyle=\"label/2XS\" color=\"fg.inverted\" truncate>\n {group.label}\n </Text>\n <Text textStyle=\"label/2XS/medium\" color=\"fg.muted\">\n {group.percentage}%\n </Text>\n </Flex>\n </Box>\n ))}\n </Flex>\n );\n};\n\ninterface DataTableStatProps {\n rows: RowData[];\n columnId: string;\n stat: DataTableColumnStat;\n}\n\nconst DataTableStat = (props: DataTableStatProps) => {\n const { rows, columnId, stat } = props;\n\n if (stat.type === \"unique\") return <UniqueStat rows={rows} columnId={columnId} />;\n if (stat.type === \"histogram\") {\n return <HistogramStat rows={rows} columnId={columnId} binCount={stat.bins ?? 10} />;\n }\n return <TopValuesStat rows={rows} columnId={columnId} limit={stat.limit ?? 2} />;\n};\n\ninterface DataTableStatCellProps {\n header: Header<RowData, unknown>;\n headerGroup: HeaderGroup<RowData>;\n rows: RowData[];\n columnStats: Partial<Record<string, DataTableColumnStat>>;\n fullWidth?: boolean;\n}\n\nconst DataTableStatCell = (props: DataTableStatCellProps) => {\n const { header, headerGroup, rows, columnStats, fullWidth } = props;\n const stat = columnStats[header.column.id];\n\n return (\n <Table.ColumnHeader\n data-column-id={header.column.id}\n data-stat-type={stat?.type}\n borderRight=\"1px solid\"\n _last={{ borderRight: \"none\" }}\n borderColor=\"border.subtle\"\n padding=\"xs\"\n verticalAlign=\"middle\"\n overflow=\"hidden\"\n style={{\n width:\n fullWidth && headerGroup.headers.indexOf(header) === headerGroup.headers.length - 1\n ? undefined\n : `calc(var(--header-${header.id}-size) * 1px)`,\n }}\n >\n {stat ? <DataTableStat rows={rows} columnId={header.column.id} stat={stat} /> : null}\n </Table.ColumnHeader>\n );\n};\n\ninterface DataTableStatsRowProps {\n headerGroup: HeaderGroup<RowData>;\n rows: RowData[];\n columnStats: Partial<Record<string, DataTableColumnStat>>;\n fullWidth?: boolean;\n noBorder?: boolean;\n}\n\nexport const DataTableStatsRow = (props: DataTableStatsRowProps) => {\n const { headerGroup, rows, columnStats, fullWidth, noBorder } = props;\n const hasVisibleStats = headerGroup.headers.some((header) => columnStats[header.column.id]);\n\n if (!hasVisibleStats) return null;\n\n return (\n <Table.Row\n className=\"data-table-stats-row\"\n borderRight={noBorder ? \"none\" : \"1px solid\"}\n borderColor=\"border.subtle\"\n >\n {headerGroup.headers.map((header) => (\n <DataTableStatCell\n key={header.id}\n header={header}\n headerGroup={headerGroup}\n rows={rows}\n columnStats={columnStats}\n fullWidth={fullWidth}\n />\n ))}\n </Table.Row>\n );\n};\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"data-table-stats-row-UuTinYfL.js","names":["Chart","UseChartProps","useChart","ReactNode","Bar","BarChart","Tooltip","RechartsTooltip","useActiveTooltipCoordinate","usePlotArea","XAxis","YAxis","ChartSeries","NonNullable","T","StringKeyOf","Extract","StatChartCrosshair","$","_c","coordinate","plotArea","t0","y","height","t1","x","t2","width","t3","t4","DataTableStatChartProps","data","dataKey","color","ariaLabel","tooltipLabel","datum","tooltipValue","value","tooltipSeriesLabel","layout","categoryKey","domain","barSize","barCategoryGap","DataTableStatChart","props","undefined","name","series","chart","getBarValue","t5","datum_0","getCategoryValue","t6","t7","Symbol","for","top","right","bottom","left","t8","t9","t10","t11","t12","label","payload","datum_1","t13","t14","t15","t16","zIndex","t17","t18","t19","_c","_Fragment","RechartsTooltip","isDisplayValue","RowData","HistogramBin","start","end","count","HistogramStat","min","max","bins","TopValueStat","label","percentage","getStatValue","value","sortValue","getColumnStatValues","rows","columnId","map","row","filter","undefined","countUniqueStatValues","Set","size","buildTopValuesStat","limit","values","counts","Map","set","get","groups","entries","String","Math","round","length","sort","left","right","localeCompare","topGroups","slice","otherCount","reduce","total","group","buildHistogramStat","binCount","binWidth","Array","from","_","index","binIndex","floor","Box","Flex","Table","Text","Header","HeaderGroup","DataTableStatChart","buildHistogramStat","buildTopValuesStat","countUniqueStatValues","DataTableColumnStat","RowData","formatNumber","Intl","NumberFormat","undefined","maximumFractionDigits","format","STAT_CHART_COLOR","SingleValueStatProps","value","count","SingleValueStat","props","$","_c","t0","t1","t2","t3","t4","UniqueStatProps","rows","columnId","UniqueStat","T0","T1","t5","t6","t7","Symbol","for","t8","HistogramStatProps","binCount","HistogramStat","T2","t10","t9","bb0","histogram","t11","valueCount","bins","reduce","_temp","min","max","_temp2","_temp3","t12","t13","TopValuesStatProps","limit","TopValuesStat","groups","length","label","map","_temp6","DataTableStatProps","stat","DataTableStat","type","DataTableStatCellProps","header","headerGroup","columnStats","Partial","Record","fullWidth","DataTableStatCell","column","id","borderRight","headers","indexOf","width","DataTableStatsRowProps","noBorder","DataTableStatsRow","hasVisibleStats","some","header_0","total","bin","bin_0","start","end","Number","_temp4","datum","_temp5","group","percentage","_c","isDisplayValue","Tooltip$1","StatChartCrosshair","$","c","coordinate","useActiveTooltipCoordinate","plotArea","usePlotArea","t0","t1","t2","t3","t4","DataTableStatChart","props","layout","barCategoryGap","color","dataKey","data","chart","useChart","datum","getBarValue","t5","categoryKey","datum_0","getCategoryValue","t6","t7","t8","domain","Fragment","XAxis","YAxis","t9","t10","barSize","Bar","t11","t12","tooltipLabel","datum_1","payload","label","t13","tooltipSeriesLabel","tooltipValue","value","t14","Chart","t15","t16","t17","t18","BarChart","t19","ariaLabel","height","getStatValue","getColumnStatValues","rows","row","columnId","countUniqueStatValues","buildTopValuesStat","values","counts","groups","count","right","left","topGroups","limit","otherCount","total","group","buildHistogramStat","min","max","binWidth","binCount","bins","index","binIndex","formatNumber","STAT_CHART_COLOR","SingleValueStat","Text","Flex","UniqueStat","T0","T1","HistogramStat","T2","histogram","valueCount","_temp","_temp2","_temp3","TopValuesStat","_temp6","DataTableStat","stat","DataTableStatCell","columnStats","header","fullWidth","headerGroup","Table","DataTableStatsRow","noBorder","header_0","bin","bin_0","_temp4","_temp5","Box"],"sources":["../src/components/data-table/data-table-stat-chart.tsx","../src/components/data-table/data-table-stats.ts","../src/components/data-table/data-table-stats-row.tsx"],"sourcesContent":["import { Chart, type UseChartProps, useChart } from \"@chakra-ui/charts\";\nimport type { ReactNode } from \"react\";\nimport {\n Bar,\n BarChart,\n Tooltip as RechartsTooltip,\n useActiveTooltipCoordinate,\n usePlotArea,\n XAxis,\n YAxis,\n} from \"recharts\";\n\ntype ChartSeries<T> = NonNullable<UseChartProps<T>[\"series\"]>[number];\ntype StringKeyOf<T> = Extract<keyof T, string>;\n\nconst StatChartCrosshair = () => {\n const coordinate = useActiveTooltipCoordinate();\n const plotArea = usePlotArea();\n\n if (!coordinate || !plotArea) return null;\n\n return (\n <g pointerEvents=\"none\" stroke=\"var(--chakra-colors-border-emphasized)\" strokeWidth=\"1\">\n <line x1={coordinate.x} x2={coordinate.x} y1={plotArea.y} y2={plotArea.y + plotArea.height} />\n <line x1={plotArea.x} x2={plotArea.x + plotArea.width} y1={coordinate.y} y2={coordinate.y} />\n </g>\n );\n};\n\ninterface DataTableStatChartProps<T extends object> {\n data: T[];\n dataKey: StringKeyOf<T>;\n color: ChartSeries<T>[\"color\"];\n height: string;\n ariaLabel: string;\n tooltipLabel: (datum: T) => ReactNode;\n tooltipValue: (value: string | number) => ReactNode;\n tooltipSeriesLabel: string;\n layout?: \"horizontal\" | \"vertical\";\n categoryKey?: StringKeyOf<T>;\n domain?: [number, number];\n barSize?: number;\n barCategoryGap?: number;\n}\n\nexport const DataTableStatChart = <T extends object>(props: DataTableStatChartProps<T>) => {\n const {\n data,\n dataKey,\n color,\n height,\n ariaLabel,\n tooltipLabel,\n tooltipValue,\n tooltipSeriesLabel,\n layout = \"horizontal\",\n categoryKey,\n domain,\n barSize,\n barCategoryGap = 1,\n } = props;\n const chart = useChart({ data, series: [{ name: dataKey, color }] });\n const getBarValue = (datum: T) => datum[dataKey] as string | number;\n const getCategoryValue = categoryKey ? (datum: T) => datum[categoryKey] as string | number : undefined;\n\n return (\n <Chart.Root chart={chart} height={height} aspectRatio=\"auto\" cursor=\"crosshair\" aria-label={ariaLabel}>\n <BarChart\n responsive\n data={chart.data}\n layout={layout}\n margin={{ top: 2, right: 0, bottom: 0, left: 0 }}\n barCategoryGap={barCategoryGap}\n >\n {layout === \"vertical\" ? (\n <>\n <XAxis type=\"number\" domain={domain} hide />\n <YAxis type=\"category\" dataKey={getCategoryValue} hide />\n </>\n ) : null}\n <Bar dataKey={getBarValue} fill={chart.color(color)} barSize={barSize} isAnimationActive={false} />\n <RechartsTooltip\n allowEscapeViewBox={{ x: true, y: true }}\n content={\n <Chart.Tooltip\n labelFormatter={(label, payload) => {\n const datum = payload[0]?.payload as T | undefined;\n return datum ? tooltipLabel(datum) : label;\n }}\n formatter={(value) => [tooltipValue(value), tooltipSeriesLabel]}\n />\n }\n cursor={<StatChartCrosshair />}\n isAnimationActive={false}\n wrapperStyle={{ zIndex: 1800 }}\n />\n </BarChart>\n </Chart.Root>\n );\n};\n","import { isDisplayValue } from \"./helpers\";\nimport type { RowData } from \"./types\";\n\nexport interface HistogramBin {\n start: number;\n end: number;\n count: number;\n}\n\nexport interface HistogramStat {\n min: number;\n max: number;\n bins: HistogramBin[];\n}\n\nexport interface TopValueStat {\n label: string;\n count: number;\n percentage: number;\n}\n\nconst getStatValue = (value: unknown) => (isDisplayValue(value) ? value.sortValue : value);\n\nconst getColumnStatValues = (rows: RowData[], columnId: string) =>\n rows\n .map((row) => getStatValue(row[columnId]))\n .filter((value) => value !== null && value !== undefined && value !== \"\");\n\nexport const countUniqueStatValues = (rows: RowData[], columnId: string) =>\n new Set(getColumnStatValues(rows, columnId)).size;\n\nexport const buildTopValuesStat = (rows: RowData[], columnId: string, limit: number) => {\n const values = getColumnStatValues(rows, columnId);\n const counts = new Map<unknown, number>();\n\n for (const value of values) {\n counts.set(value, (counts.get(value) ?? 0) + 1);\n }\n\n const groups: TopValueStat[] = [...counts.entries()]\n .map(([value, count]) => ({\n label: String(value),\n count,\n percentage: Math.round((count / values.length) * 100),\n }))\n .sort((left, right) => right.count - left.count || left.label.localeCompare(right.label));\n const topGroups = groups.slice(0, limit);\n const otherCount = groups.slice(limit).reduce((total, group) => total + group.count, 0);\n\n if (otherCount === 0) return topGroups;\n\n return [\n ...topGroups,\n {\n label: \"Other\",\n count: otherCount,\n percentage: Math.round((otherCount / values.length) * 100),\n },\n ];\n};\n\nexport const buildHistogramStat = (rows: RowData[], columnId: string, binCount: number): HistogramStat | null => {\n const values = getColumnStatValues(rows, columnId).filter((value): value is number => typeof value === \"number\");\n if (values.length === 0) return null;\n\n const min = Math.min(...values);\n const max = Math.max(...values);\n const binWidth = (max - min) / binCount;\n const bins = Array.from({ length: binCount }, (_, index) => ({\n start: min + binWidth * index,\n end: min + binWidth * (index + 1),\n count: 0,\n }));\n\n for (const value of values) {\n const binIndex = value === max || binWidth === 0 ? binCount - 1 : Math.floor((value - min) / binWidth);\n bins[binIndex]!.count += 1;\n }\n\n return { min, max, bins };\n};\n","import { Box, Flex, Table, Text } from \"@chakra-ui/react\";\nimport type { Header, HeaderGroup } from \"@tanstack/react-table\";\nimport { DataTableStatChart } from \"./data-table-stat-chart\";\nimport { buildHistogramStat, buildTopValuesStat, countUniqueStatValues } from \"./data-table-stats\";\nimport type { DataTableColumnStat, RowData } from \"./types\";\n\nconst formatNumber = new Intl.NumberFormat(undefined, { maximumFractionDigits: 2 }).format;\nconst STAT_CHART_COLOR = \"vis.categorical.1\";\n\ninterface SingleValueStatProps {\n value: string;\n count: number;\n}\n\nconst SingleValueStat = (props: SingleValueStatProps) => {\n const { value, count } = props;\n\n return (\n <Flex data-single-value-stat direction=\"column\" gap=\"2xs\" alignItems=\"flex-start\" minWidth=\"0\">\n <Text textStyle=\"label/L/medium\" lineHeight=\"1\" maxWidth=\"100%\" truncate>\n {value}\n </Text>\n <Text textStyle=\"label/XS\" color=\"fg.muted\">\n {formatNumber(count)} {count === 1 ? \"value\" : \"values\"}\n </Text>\n </Flex>\n );\n};\n\ninterface UniqueStatProps {\n rows: RowData[];\n columnId: string;\n}\n\nconst UniqueStat = (props: UniqueStatProps) => {\n const { rows, columnId } = props;\n const count = countUniqueStatValues(rows, columnId);\n\n return (\n <Flex direction=\"column\" gap=\"2xs\" alignItems=\"flex-start\">\n <Text textStyle=\"label/L/medium\" lineHeight=\"1\">\n {formatNumber(count)}\n </Text>\n <Text textStyle=\"label/XS/regular\" color=\"fg.muted\">\n unique values\n </Text>\n </Flex>\n );\n};\n\ninterface HistogramStatProps {\n rows: RowData[];\n columnId: string;\n binCount: number;\n}\n\nconst HistogramStat = (props: HistogramStatProps) => {\n const { rows, columnId, binCount } = props;\n const histogram = buildHistogramStat(rows, columnId, binCount);\n\n if (!histogram) {\n return (\n <Text textStyle=\"label/XS/regular\" color=\"fg.muted\">\n No numeric values\n </Text>\n );\n }\n\n const valueCount = histogram.bins.reduce((total, bin) => total + bin.count, 0);\n if (histogram.min === histogram.max) {\n return <SingleValueStat value={formatNumber(histogram.min)} count={valueCount} />;\n }\n\n return (\n <Flex direction=\"column\" width=\"100%\" gap=\"2xs\">\n <DataTableStatChart\n data={histogram.bins}\n dataKey=\"count\"\n color={STAT_CHART_COLOR}\n height=\"40px\"\n ariaLabel={`Distribution for ${columnId}`}\n tooltipLabel={(bin) => `${formatNumber(bin.start)} – ${formatNumber(bin.end)}`}\n tooltipValue={(value) => `${formatNumber(Number(value))} values`}\n tooltipSeriesLabel=\"Count\"\n />\n <Flex justifyContent=\"space-between\" gap=\"xs\">\n <Text textStyle=\"label/XS/regular\" color=\"fg.muted\">\n {formatNumber(histogram.min)}\n </Text>\n <Text textStyle=\"label/XS/regular\" color=\"fg.muted\">\n {formatNumber(histogram.max)}\n </Text>\n </Flex>\n </Flex>\n );\n};\n\ninterface TopValuesStatProps {\n rows: RowData[];\n columnId: string;\n limit: number;\n}\n\nconst TopValuesStat = (props: TopValuesStatProps) => {\n const { rows, columnId, limit } = props;\n const groups = buildTopValuesStat(rows, columnId, limit);\n\n if (groups.length === 1 && groups[0]) {\n return <SingleValueStat value={groups[0].label} count={groups[0].count} />;\n }\n\n return (\n <Flex direction=\"column\" width=\"100%\" gap=\"2xs\">\n {groups.map((group) => (\n <Box key={group.label} position=\"relative\" height=\"18px\">\n <DataTableStatChart\n data={[group]}\n dataKey=\"percentage\"\n categoryKey=\"label\"\n color={STAT_CHART_COLOR}\n height=\"18px\"\n ariaLabel={`${group.label}: ${group.percentage}%`}\n layout=\"vertical\"\n domain={[0, 100]}\n barSize={18}\n tooltipLabel={(datum) => `${datum.label} · ${formatNumber(datum.count)} values`}\n tooltipValue={(value) => `${formatNumber(Number(value))}%`}\n tooltipSeriesLabel=\"Share\"\n />\n <Flex\n position=\"absolute\"\n inset=\"0\"\n paddingX=\"2xs\"\n justifyContent=\"space-between\"\n gap=\"xs\"\n pointerEvents=\"none\"\n >\n <Text textStyle=\"label/2XS\" color=\"fg.inverted\" truncate>\n {group.label}\n </Text>\n <Text textStyle=\"label/2XS/medium\" color=\"fg.muted\">\n {group.percentage}%\n </Text>\n </Flex>\n </Box>\n ))}\n </Flex>\n );\n};\n\ninterface DataTableStatProps {\n rows: RowData[];\n columnId: string;\n stat: DataTableColumnStat;\n}\n\nconst DataTableStat = (props: DataTableStatProps) => {\n const { rows, columnId, stat } = props;\n\n if (stat.type === \"unique\") return <UniqueStat rows={rows} columnId={columnId} />;\n if (stat.type === \"histogram\") {\n return <HistogramStat rows={rows} columnId={columnId} binCount={stat.bins ?? 10} />;\n }\n return <TopValuesStat rows={rows} columnId={columnId} limit={stat.limit ?? 2} />;\n};\n\ninterface DataTableStatCellProps {\n header: Header<RowData, unknown>;\n headerGroup: HeaderGroup<RowData>;\n rows: RowData[];\n columnStats: Partial<Record<string, DataTableColumnStat>>;\n fullWidth?: boolean;\n}\n\nconst DataTableStatCell = (props: DataTableStatCellProps) => {\n const { header, headerGroup, rows, columnStats, fullWidth } = props;\n const stat = columnStats[header.column.id];\n\n return (\n <Table.ColumnHeader\n data-column-id={header.column.id}\n data-stat-type={stat?.type}\n borderRight=\"1px solid\"\n _last={{ borderRight: \"none\" }}\n borderColor=\"border.subtle\"\n padding=\"xs\"\n verticalAlign=\"middle\"\n overflow=\"hidden\"\n style={{\n width:\n fullWidth && headerGroup.headers.indexOf(header) === headerGroup.headers.length - 1\n ? undefined\n : `calc(var(--header-${header.id}-size) * 1px)`,\n }}\n >\n {stat ? <DataTableStat rows={rows} columnId={header.column.id} stat={stat} /> : null}\n </Table.ColumnHeader>\n );\n};\n\ninterface DataTableStatsRowProps {\n headerGroup: HeaderGroup<RowData>;\n rows: RowData[];\n columnStats: Partial<Record<string, DataTableColumnStat>>;\n fullWidth?: boolean;\n noBorder?: boolean;\n}\n\nexport const DataTableStatsRow = (props: DataTableStatsRowProps) => {\n const { headerGroup, rows, columnStats, fullWidth, noBorder } = props;\n const hasVisibleStats = headerGroup.headers.some((header) => columnStats[header.column.id]);\n\n if (!hasVisibleStats) return null;\n\n return (\n <Table.Row\n className=\"data-table-stats-row\"\n borderRight={noBorder ? \"none\" : \"1px solid\"}\n borderColor=\"border.subtle\"\n >\n {headerGroup.headers.map((header) => (\n <DataTableStatCell\n key={header.id}\n header={header}\n headerGroup={headerGroup}\n rows={rows}\n columnStats={columnStats}\n fullWidth={fullWidth}\n />\n ))}\n </Table.Row>\n );\n};\n"],"mappings":"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"}
|
package/dist/data-table.d.ts
CHANGED
|
@@ -19,6 +19,16 @@ interface DataTableCategoricalColor {
|
|
|
19
19
|
value: DataTableCategoricalValue;
|
|
20
20
|
color: DataTableThemeColor;
|
|
21
21
|
}
|
|
22
|
+
type DataTableBadgePalette = "gray" | "red" | "orange" | "yellow" | "green" | "teal" | "blue" | "cyan" | "purple" | "pink";
|
|
23
|
+
interface DataTableBadgeCategory {
|
|
24
|
+
value: DataTableCategoricalValue;
|
|
25
|
+
palette: DataTableBadgePalette;
|
|
26
|
+
}
|
|
27
|
+
/** A cell value for the `diff` renderer. Sorting and filtering use the total number of changed lines. */
|
|
28
|
+
interface DataTableDiffValue {
|
|
29
|
+
additions: number;
|
|
30
|
+
deletions: number;
|
|
31
|
+
}
|
|
22
32
|
type DataTableColumnRenderer = {
|
|
23
33
|
type: "json";
|
|
24
34
|
} | {
|
|
@@ -27,6 +37,23 @@ type DataTableColumnRenderer = {
|
|
|
27
37
|
} | {
|
|
28
38
|
type: "categorical-color";
|
|
29
39
|
categories: DataTableCategoricalColor[];
|
|
40
|
+
} |
|
|
41
|
+
/** Shows the value as a badge. Values without a category use the gray palette. */
|
|
42
|
+
{
|
|
43
|
+
type: "badge";
|
|
44
|
+
categories?: DataTableBadgeCategory[];
|
|
45
|
+
} |
|
|
46
|
+
/** Shows a `DataTableDiffValue` as added and deleted line counts. Other values render as text. */
|
|
47
|
+
{
|
|
48
|
+
type: "diff";
|
|
49
|
+
} |
|
|
50
|
+
/** Shows a date string relative to now, with the full date on hover. */
|
|
51
|
+
{
|
|
52
|
+
type: "date";
|
|
53
|
+
} |
|
|
54
|
+
/** Truncates a long path in the middle and shows the full path on hover and focus. */
|
|
55
|
+
{
|
|
56
|
+
type: "path";
|
|
30
57
|
};
|
|
31
58
|
type DataTableColumnStat = {
|
|
32
59
|
type: "unique";
|
|
@@ -103,6 +130,10 @@ interface DataTableProps {
|
|
|
103
130
|
onCSVUpload?: (csv: string) => Promise<void>;
|
|
104
131
|
onCSVDownload?: (scenarios: string[]) => void;
|
|
105
132
|
hiddenColumns?: string[];
|
|
133
|
+
/** Columns that start unchecked in the column menu. Viewers can still show them. */
|
|
134
|
+
defaultHiddenColumns?: string[];
|
|
135
|
+
/** Whether the statistics row starts visible when `columnStats` are set. Defaults to `true`. */
|
|
136
|
+
defaultShowStats?: boolean;
|
|
106
137
|
onRowClick?: (row: RowData) => void;
|
|
107
138
|
isRowInteractive?: (row: RowData) => boolean;
|
|
108
139
|
activeRowId?: string | null;
|
|
@@ -139,5 +170,5 @@ export declare const FriendlyJsonDisplay: (props: FriendlyJsonDisplayProps) => i
|
|
|
139
170
|
export declare const getIcon: (values: unknown[]) => ReactElement | null;
|
|
140
171
|
export declare function formatDisplayValue(value: unknown): ReactNode;
|
|
141
172
|
//#endregion
|
|
142
|
-
export type { DataTableCategoricalColor, DataTableCategoricalValue, DataTableCellContext, DataTableCellContextAction, DataTableColorScaleStop, DataTableColumnRenderer, DataTableColumnStat, DataTableEditModeAlignment, DataTableEditModeCellEditorProps, DataTableEditModeColumn, DataTableEditModeConfig, DataTableProps, DataTableRowAction, DataTableSelectionAction, DataTableSkeletonColumn, DataTableThemeColor, FriendlyJsonDisplayProps, RowData };
|
|
173
|
+
export type { DataTableBadgeCategory, DataTableBadgePalette, DataTableCategoricalColor, DataTableCategoricalValue, DataTableCellContext, DataTableCellContextAction, DataTableColorScaleStop, DataTableColumnRenderer, DataTableColumnStat, DataTableDiffValue, DataTableEditModeAlignment, DataTableEditModeCellEditorProps, DataTableEditModeColumn, DataTableEditModeConfig, DataTableProps, DataTableRowAction, DataTableSelectionAction, DataTableSkeletonColumn, DataTableThemeColor, FriendlyJsonDisplayProps, RowData };
|
|
143
174
|
export {};
|