@mechane-ai/elements 0.0.0-stage → 0.4.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.
Files changed (169) hide show
  1. package/LICENSE +202 -0
  2. package/NOTICE +32 -0
  3. package/README.md +119 -2
  4. package/dist/accessibility-C-aIZ1Yx.js +15 -0
  5. package/dist/ai.js +323 -0
  6. package/dist/assets/stylex.css +2664 -0
  7. package/dist/categorical-values-cMX7Mykq.js +58 -0
  8. package/dist/chart-frame-bX0VLC_W.js +152 -0
  9. package/dist/chart-input-qnM44oen.js +21 -0
  10. package/dist/charts/cartesian.js +1040 -0
  11. package/dist/charts/distribution.js +610 -0
  12. package/dist/charts/graph.js +231 -0
  13. package/dist/charts/hierarchy.js +109 -0
  14. package/dist/charts/matrix.js +439 -0
  15. package/dist/charts/timeline.js +198 -0
  16. package/dist/charts.js +1 -0
  17. package/dist/code-block-BiMcfdlB.js +175 -0
  18. package/dist/collections.js +466 -0
  19. package/dist/content/code.js +1 -0
  20. package/dist/content/diff.js +96 -0
  21. package/dist/content/link.js +1 -0
  22. package/dist/content/markdown.js +155 -0
  23. package/dist/content/tree.js +77 -0
  24. package/dist/content-link-Bm-Td5wm.js +26 -0
  25. package/dist/content.js +318 -0
  26. package/dist/feedback.js +1 -0
  27. package/dist/forms/dates.js +168 -0
  28. package/dist/forms.js +1 -0
  29. package/dist/index.js +1 -0
  30. package/dist/layout.js +379 -0
  31. package/dist/navigation/commands.js +80 -0
  32. package/dist/navigation-yxK3iQXo.js +39 -0
  33. package/dist/navigation.js +58 -0
  34. package/dist/overlays.js +1 -0
  35. package/dist/packages/ai/src/approval.d.ts +29 -0
  36. package/dist/packages/ai/src/conversation.d.ts +34 -0
  37. package/dist/packages/ai/src/index.d.ts +10 -0
  38. package/dist/packages/ai/src/message.d.ts +19 -0
  39. package/dist/packages/ai/src/prompt-input.d.ts +25 -0
  40. package/dist/packages/ai/src/sources.d.ts +17 -0
  41. package/dist/packages/charts/src/cartesian/bar-chart.d.ts +24 -0
  42. package/dist/packages/charts/src/cartesian/breakdown-bar.d.ts +12 -0
  43. package/dist/packages/charts/src/cartesian/index.d.ts +12 -0
  44. package/dist/packages/charts/src/cartesian/scatter-plot.d.ts +37 -0
  45. package/dist/packages/charts/src/cartesian/sparkline.d.ts +11 -0
  46. package/dist/packages/charts/src/cartesian/time-series-data.d.ts +54 -0
  47. package/dist/packages/charts/src/cartesian/time-series-line.d.ts +9 -0
  48. package/dist/packages/charts/src/cartesian/time-series.d.ts +29 -0
  49. package/dist/packages/charts/src/categorical-values.d.ts +24 -0
  50. package/dist/packages/charts/src/chart-frame.d.ts +34 -0
  51. package/dist/packages/charts/src/chart-input.d.ts +10 -0
  52. package/dist/packages/charts/src/chart-theme.d.ts +48 -0
  53. package/dist/packages/charts/src/distribution/distribution-input.d.ts +14 -0
  54. package/dist/packages/charts/src/distribution/distribution-plot.d.ts +135 -0
  55. package/dist/packages/charts/src/distribution/ecdf.d.ts +23 -0
  56. package/dist/packages/charts/src/distribution/histogram.d.ts +26 -0
  57. package/dist/packages/charts/src/distribution/index.d.ts +8 -0
  58. package/dist/packages/charts/src/distribution/interval-plot.d.ts +24 -0
  59. package/dist/packages/charts/src/distribution/ranked-bars.d.ts +22 -0
  60. package/dist/packages/charts/src/graph/index.d.ts +2 -0
  61. package/dist/packages/charts/src/graph/relation-graph.d.ts +45 -0
  62. package/dist/packages/charts/src/hierarchy/index.d.ts +2 -0
  63. package/dist/packages/charts/src/hierarchy/treemap.d.ts +12 -0
  64. package/dist/packages/charts/src/index.d.ts +4 -0
  65. package/dist/packages/charts/src/matrix/color-legend.d.ts +7 -0
  66. package/dist/packages/charts/src/matrix/heatmap-scale.d.ts +8 -0
  67. package/dist/packages/charts/src/matrix/index.d.ts +7 -0
  68. package/dist/packages/charts/src/matrix/matrix.d.ts +34 -0
  69. package/dist/packages/charts/src/matrix/token-heatmap.d.ts +20 -0
  70. package/dist/packages/charts/src/plot-width.d.ts +5 -0
  71. package/dist/packages/charts/src/timeline/index.d.ts +2 -0
  72. package/dist/packages/charts/src/timeline/waterfall.d.ts +34 -0
  73. package/dist/packages/collections/src/collection-controls.d.ts +41 -0
  74. package/dist/packages/collections/src/data-table.d.ts +49 -0
  75. package/dist/packages/collections/src/index.d.ts +10 -0
  76. package/dist/packages/collections/src/inspector.d.ts +16 -0
  77. package/dist/packages/collections/src/list-footer.d.ts +6 -0
  78. package/dist/packages/collections/src/metrics.d.ts +9 -0
  79. package/dist/packages/collections/src/table.d.ts +17 -0
  80. package/dist/packages/collections/src/timestamp.d.ts +7 -0
  81. package/dist/packages/content/src/code/code-block.d.ts +22 -0
  82. package/dist/packages/content/src/code/index.d.ts +2 -0
  83. package/dist/packages/content/src/code/use-highlighted-code.d.ts +9 -0
  84. package/dist/packages/content/src/content-link.d.ts +8 -0
  85. package/dist/packages/content/src/diff/diff-source.d.ts +32 -0
  86. package/dist/packages/content/src/diff/diff-viewer.d.ts +3 -0
  87. package/dist/packages/content/src/diff/index.d.ts +2 -0
  88. package/dist/packages/content/src/diff/pierre-diff.d.ts +14 -0
  89. package/dist/packages/content/src/index.d.ts +8 -0
  90. package/dist/packages/content/src/json-viewer.d.ts +11 -0
  91. package/dist/packages/content/src/link.d.ts +2 -0
  92. package/dist/packages/content/src/log-viewer.d.ts +9 -0
  93. package/dist/packages/content/src/markdown/index.d.ts +2 -0
  94. package/dist/packages/content/src/markdown/markdown.d.ts +7 -0
  95. package/dist/packages/content/src/pierre-theme.d.ts +36 -0
  96. package/dist/packages/content/src/stack-trace.d.ts +16 -0
  97. package/dist/packages/content/src/trace.d.ts +35 -0
  98. package/dist/packages/content/src/tree/file-tree-types.d.ts +12 -0
  99. package/dist/packages/content/src/tree/file-tree.d.ts +3 -0
  100. package/dist/packages/content/src/tree/index.d.ts +2 -0
  101. package/dist/packages/content/src/tree/pierre-tree.d.ts +3 -0
  102. package/dist/packages/core/src/actions.d.ts +31 -0
  103. package/dist/packages/core/src/avatar.d.ts +10 -0
  104. package/dist/packages/core/src/copy-value.d.ts +9 -0
  105. package/dist/packages/core/src/disclosure.d.ts +33 -0
  106. package/dist/packages/core/src/index.d.ts +7 -0
  107. package/dist/packages/core/src/surfaces.d.ts +18 -0
  108. package/dist/packages/core/src/text.d.ts +30 -0
  109. package/dist/packages/feedback/src/feedback.d.ts +11 -0
  110. package/dist/packages/feedback/src/index.d.ts +7 -0
  111. package/dist/packages/feedback/src/loading.d.ts +7 -0
  112. package/dist/packages/feedback/src/progress.d.ts +10 -0
  113. package/dist/packages/feedback/src/skeleton.d.ts +18 -0
  114. package/dist/packages/feedback/src/toast.d.ts +28 -0
  115. package/dist/packages/forms/src/combobox.d.ts +81 -0
  116. package/dist/packages/forms/src/dates/calendar.d.ts +32 -0
  117. package/dist/packages/forms/src/dates/date-range-picker.d.ts +16 -0
  118. package/dist/packages/forms/src/dates/index.d.ts +4 -0
  119. package/dist/packages/forms/src/field-styles.d.ts +66 -0
  120. package/dist/packages/forms/src/form-controls.d.ts +81 -0
  121. package/dist/packages/forms/src/forms.d.ts +32 -0
  122. package/dist/packages/forms/src/index.d.ts +7 -0
  123. package/dist/packages/forms/src/select.d.ts +44 -0
  124. package/dist/packages/forms/src/selection-styles.d.ts +110 -0
  125. package/dist/packages/forms/src/selection.d.ts +57 -0
  126. package/dist/packages/forms/src/settings-row.d.ts +8 -0
  127. package/dist/packages/foundations/src/accessibility.d.ts +14 -0
  128. package/dist/packages/foundations/src/control-state.d.ts +67 -0
  129. package/dist/packages/foundations/src/overlay-styles.d.ts +46 -0
  130. package/dist/packages/foundations/src/popup-styles.d.ts +84 -0
  131. package/dist/packages/foundations/src/style-composition.d.ts +22 -0
  132. package/dist/packages/foundations/src/theme.d.ts +16 -0
  133. package/dist/packages/foundations/src/tokens.stylex.d.ts +143 -0
  134. package/dist/packages/layout/src/app-shell.d.ts +9 -0
  135. package/dist/packages/layout/src/detail-page.d.ts +6 -0
  136. package/dist/packages/layout/src/frame.stylex.d.ts +23 -0
  137. package/dist/packages/layout/src/index.d.ts +6 -0
  138. package/dist/packages/layout/src/page-toolbar.d.ts +14 -0
  139. package/dist/packages/layout/src/resizable.d.ts +27 -0
  140. package/dist/packages/layout/src/sidebar.d.ts +46 -0
  141. package/dist/packages/navigation/src/commands/command.d.ts +37 -0
  142. package/dist/packages/navigation/src/commands/index.d.ts +2 -0
  143. package/dist/packages/navigation/src/index.d.ts +3 -0
  144. package/dist/packages/navigation/src/navigation.d.ts +24 -0
  145. package/dist/packages/navigation/src/skip-link.d.ts +6 -0
  146. package/dist/packages/navigation/src/tabs.d.ts +19 -0
  147. package/dist/packages/overlays/src/alert-dialog.d.ts +18 -0
  148. package/dist/packages/overlays/src/dialog.d.ts +27 -0
  149. package/dist/packages/overlays/src/drawer.d.ts +33 -0
  150. package/dist/packages/overlays/src/index.d.ts +7 -0
  151. package/dist/packages/overlays/src/menu.d.ts +51 -0
  152. package/dist/packages/overlays/src/popover.d.ts +24 -0
  153. package/dist/packages/overlays/src/preview.d.ts +17 -0
  154. package/dist/packages/overlays/src/tooltip.d.ts +18 -0
  155. package/dist/pierre-diff-CZdzgiYm.js +66 -0
  156. package/dist/pierre-theme-BpESNIsV.js +96 -0
  157. package/dist/pierre-tree-qZVvI5c1.js +106 -0
  158. package/dist/plot-width--OgdohB5.js +18 -0
  159. package/dist/popup-styles-CvtZDE2t.js +135 -0
  160. package/dist/src-BfvOOeA3.js +272 -0
  161. package/dist/src-CbYaLvhD.js +671 -0
  162. package/dist/src-CfDf8TY8.js +466 -0
  163. package/dist/src-CvpS9XIR.js +1077 -0
  164. package/dist/style-composition-uYlczSsB.js +9 -0
  165. package/dist/theme.js +7 -0
  166. package/dist/tokens.js +138 -0
  167. package/package.json +148 -3
  168. package/packages/foundations/src/tokens.stylex.ts +145 -0
  169. package/styles.css +2 -0
@@ -0,0 +1,58 @@
1
+ import { n as e, t } from "./navigation-yxK3iQXo.js";
2
+ import { t as n } from "./style-composition-uYlczSsB.js";
3
+ import { mergeProps as r } from "@base-ui/react/merge-props";
4
+ import "@stylexjs/stylex";
5
+ import { jsx as i } from "react/jsx-runtime";
6
+ import { Tabs as a } from "@base-ui/react/tabs";
7
+ // packages/navigation/src/skip-link.tsx
8
+ function o(e) {
9
+ return /* @__PURE__ */ i("a", { ...r({ className: "xixxii4 x1ridm32 x12hha37 xkwijxb x174j0rr x1mvvolr x9f619 xvv7f4i x1ok0vyi xpvm0e4 xbixft x1hz01jw xtqrqnz x1778rvt xvmahel xujl8zx x1wfrlr2 x1tkds87 x1de710j x1gnsi0 x1cm8ssg" }, e) });
10
+ }
11
+ // packages/navigation/src/tabs.tsx
12
+ function s({ className: e, style: t, ...r }) {
13
+ return /* @__PURE__ */ i(a.Root, {
14
+ ...r,
15
+ ...n({
16
+ className: e,
17
+ style: t,
18
+ styles: { className: "x1hz01jw xvmahel xeuugli" }
19
+ })
20
+ });
21
+ }
22
+ function c({ className: e, style: t, ...r }) {
23
+ return /* @__PURE__ */ i(a.List, {
24
+ ...r,
25
+ ...n({
26
+ className: e,
27
+ style: t,
28
+ styles: { className: "x78zum5 x1j825kq xso031l x1q0q8m5 x1qndepd xw2csxc" }
29
+ })
30
+ });
31
+ }
32
+ function l({ className: e, style: t, ...r }) {
33
+ return /* @__PURE__ */ i(a.Tab, {
34
+ ...r,
35
+ ...n({
36
+ className: e,
37
+ style: t,
38
+ styles: { className: "x1hz01jw xvmahel xc342km xid9utz xn9t2bk xnjsko4 xjbqb8w xlxy82 x1q0q8m5 x16stqrj x153jb6y x1ypdohk x12myhf4 x1778rvt xuxw1ft x1wlwa7r x1wu4q4p x11v428d xwj21n9 x1m8qfh3 x13qnu6 x9v5kkp x19rmrnh x1bqaal" }
39
+ })
40
+ });
41
+ }
42
+ function u({ className: e, style: t, ...r }) {
43
+ return /* @__PURE__ */ i(a.Panel, {
44
+ ...r,
45
+ ...n({
46
+ className: e,
47
+ style: t,
48
+ styles: { className: "x1o3kwql x1k57tk5" }
49
+ })
50
+ });
51
+ }
52
+ var d = {
53
+ Root: s,
54
+ List: c,
55
+ Tab: l,
56
+ Panel: u
57
+ };
58
+ export { t as Breadcrumb, e as Kbd, o as SkipLink, d as Tabs };
@@ -0,0 +1 @@
1
+ export { o as AlertDialog, s as Dialog, a as Drawer, i as Menu, r as Popover, n as Preview, t as Tooltip } from "./src-CfDf8TY8.js";
@@ -0,0 +1,29 @@
1
+ import type { ReactNode } from 'react';
2
+ type PendingApproval = {
3
+ readonly status: 'pending';
4
+ readonly onApprove: () => void;
5
+ readonly onDeny: () => void;
6
+ readonly busy?: 'approve' | 'deny' | undefined;
7
+ readonly disabled?: boolean;
8
+ readonly approveLabel?: string;
9
+ readonly denyLabel?: string;
10
+ readonly statusLabel?: never;
11
+ };
12
+ type SettledApproval = {
13
+ readonly status: 'approved' | 'denied' | 'expired';
14
+ readonly statusLabel: string;
15
+ readonly onApprove?: never;
16
+ readonly onDeny?: never;
17
+ readonly busy?: never;
18
+ readonly disabled?: never;
19
+ readonly approveLabel?: never;
20
+ readonly denyLabel?: never;
21
+ };
22
+ export type ApprovalProps = (PendingApproval | SettledApproval) & {
23
+ readonly requestId: string;
24
+ readonly title: string;
25
+ readonly description?: string;
26
+ readonly children?: ReactNode;
27
+ };
28
+ export declare function Approval(props: ApprovalProps): ReactNode;
29
+ export {};
@@ -0,0 +1,34 @@
1
+ import type { ReactNode } from 'react';
2
+ export type ConversationRootProps = {
3
+ readonly children: ReactNode;
4
+ readonly initialPosition?: 'start' | 'end';
5
+ readonly follow?: boolean;
6
+ };
7
+ export type ConversationViewportProps = {
8
+ readonly label: string;
9
+ readonly children: ReactNode;
10
+ };
11
+ export type ConversationContentProps = {
12
+ readonly children: ReactNode;
13
+ readonly streaming?: boolean;
14
+ };
15
+ export type ConversationItemProps = {
16
+ readonly messageId: string;
17
+ readonly children: ReactNode;
18
+ };
19
+ export type ConversationJumpProps = {
20
+ readonly label?: string;
21
+ };
22
+ declare function ConversationRoot({ children, initialPosition, follow }: ConversationRootProps): ReactNode;
23
+ declare function ConversationViewport({ label, children }: ConversationViewportProps): ReactNode;
24
+ declare function ConversationContent({ children, streaming }: ConversationContentProps): ReactNode;
25
+ declare function ConversationItem({ messageId, children }: ConversationItemProps): ReactNode;
26
+ declare function ConversationJumpToLatest({ label }: ConversationJumpProps): ReactNode;
27
+ export declare const Conversation: {
28
+ Root: typeof ConversationRoot;
29
+ Viewport: typeof ConversationViewport;
30
+ Content: typeof ConversationContent;
31
+ Item: typeof ConversationItem;
32
+ JumpToLatest: typeof ConversationJumpToLatest;
33
+ };
34
+ export {};
@@ -0,0 +1,10 @@
1
+ export type { ApprovalProps } from './approval.tsx';
2
+ export { Approval } from './approval.tsx';
3
+ export type { ConversationRootProps, ConversationViewportProps, ConversationContentProps, ConversationItemProps, ConversationJumpProps, } from './conversation.tsx';
4
+ export { Conversation } from './conversation.tsx';
5
+ export type { MessageKind, MessageProps, MessageAttachmentProps } from './message.tsx';
6
+ export { Message, MessageAttachment } from './message.tsx';
7
+ export type { PromptInputProps } from './prompt-input.tsx';
8
+ export { PromptInput } from './prompt-input.tsx';
9
+ export type { Source, SourcesProps, InlineCitationProps } from './sources.tsx';
10
+ export { Sources, InlineCitation } from './sources.tsx';
@@ -0,0 +1,19 @@
1
+ import type { ReactNode } from 'react';
2
+ export type MessageKind = 'user' | 'assistant' | 'system';
3
+ export type MessageProps = {
4
+ readonly author: string;
5
+ readonly children: ReactNode;
6
+ readonly id?: string;
7
+ readonly kind?: MessageKind;
8
+ readonly meta?: ReactNode;
9
+ readonly actions?: ReactNode;
10
+ readonly attachments?: ReactNode;
11
+ };
12
+ export type MessageAttachmentProps = {
13
+ readonly name: string;
14
+ readonly description?: string;
15
+ readonly href?: string;
16
+ readonly actions?: ReactNode;
17
+ };
18
+ export declare function Message({ author, children, id, kind, meta, actions, attachments, }: MessageProps): ReactNode;
19
+ export declare function MessageAttachment({ name, description, href, actions }: MessageAttachmentProps): ReactNode;
@@ -0,0 +1,25 @@
1
+ import type { ComponentProps, ReactNode } from 'react';
2
+ export type PromptInputProps = {
3
+ readonly label: string;
4
+ readonly value: string;
5
+ readonly onValueChange: (value: string) => void;
6
+ readonly onSubmit: NonNullable<ComponentProps<'form'>['onSubmit']>;
7
+ readonly name?: string;
8
+ readonly placeholder?: string;
9
+ readonly maxLength?: number;
10
+ readonly required?: boolean;
11
+ readonly pending?: boolean;
12
+ readonly disabled?: boolean;
13
+ readonly submitDisabled?: boolean;
14
+ readonly submitLabel?: string;
15
+ readonly pendingLabel?: string;
16
+ readonly enterBehavior?: 'newline' | 'submit';
17
+ readonly description?: ReactNode;
18
+ readonly error?: string | undefined;
19
+ readonly controls?: ReactNode;
20
+ readonly attachments?: ReactNode;
21
+ readonly onStop?: (() => void) | undefined;
22
+ readonly stopPending?: boolean;
23
+ readonly stopLabel?: string;
24
+ };
25
+ export declare function PromptInput({ label, value, onValueChange, onSubmit, name, placeholder, maxLength, required, pending, disabled, submitDisabled, submitLabel, pendingLabel, enterBehavior, description, error, controls, attachments, onStop, stopPending, stopLabel, }: PromptInputProps): ReactNode;
@@ -0,0 +1,17 @@
1
+ import type { ReactNode } from 'react';
2
+ export type Source = {
3
+ readonly id: string;
4
+ readonly title: string;
5
+ readonly href: string;
6
+ readonly description?: string;
7
+ };
8
+ export type SourcesProps = {
9
+ readonly sources: ReadonlyArray<Source>;
10
+ readonly label?: string;
11
+ };
12
+ export type InlineCitationProps = {
13
+ readonly source: Source;
14
+ readonly label: string;
15
+ };
16
+ export declare function Sources({ sources, label }: SourcesProps): ReactNode;
17
+ export declare function InlineCitation({ source, label }: InlineCitationProps): ReactNode;
@@ -0,0 +1,24 @@
1
+ import type { ReactNode } from 'react';
2
+ import type { ChartSelection } from '../chart-frame.tsx';
3
+ import type { ChartTone } from '../chart-theme.ts';
4
+ export type BarSeries = {
5
+ readonly id: string;
6
+ readonly label: string;
7
+ readonly values: ReadonlyArray<number | null>;
8
+ readonly tone?: ChartTone | undefined;
9
+ };
10
+ export type BarChartProps = {
11
+ readonly title: string;
12
+ readonly description?: string | undefined;
13
+ readonly categories: ReadonlyArray<{
14
+ readonly id: string;
15
+ readonly label: string;
16
+ }>;
17
+ readonly series: ReadonlyArray<BarSeries>;
18
+ readonly domain: readonly [number, number];
19
+ readonly mode?: 'grouped' | 'stacked' | undefined;
20
+ readonly formatValue: (value: number) => string;
21
+ readonly selection?: ChartSelection | undefined;
22
+ readonly height?: number | undefined;
23
+ };
24
+ export declare function BarChart({ title, description, categories, series, domain, mode, formatValue, selection, height, }: BarChartProps): ReactNode;
@@ -0,0 +1,12 @@
1
+ import type { ReactNode } from 'react';
2
+ import type { BreakdownItem } from '../categorical-values.tsx';
3
+ import type { ChartSelection } from '../chart-frame.tsx';
4
+ export type BreakdownBarProps = {
5
+ readonly title: string;
6
+ readonly description?: string | undefined;
7
+ readonly items: ReadonlyArray<BreakdownItem>;
8
+ readonly total: number;
9
+ readonly formatValue: (value: number) => string;
10
+ readonly selection?: ChartSelection | undefined;
11
+ };
12
+ export declare function BreakdownBar({ title, description, items, total, formatValue, selection, }: BreakdownBarProps): ReactNode;
@@ -0,0 +1,12 @@
1
+ export type { BarSeries, BarChartProps } from './bar-chart.tsx';
2
+ export { BarChart } from './bar-chart.tsx';
3
+ export type { BreakdownBarProps } from './breakdown-bar.tsx';
4
+ export { BreakdownBar } from './breakdown-bar.tsx';
5
+ export type { ScatterPoint, ScatterRange, ScatterRangeSelection, ScatterPlotProps } from './scatter-plot.tsx';
6
+ export { MAX_SCATTER_POINTS, ScatterPlot } from './scatter-plot.tsx';
7
+ export type { SparklineProps } from './sparkline.tsx';
8
+ export { Sparkline } from './sparkline.tsx';
9
+ export type { TimeSeriesPoint, TimeSeries, TimeSeriesMarker } from './time-series-data.ts';
10
+ export { timeSeriesLimits } from './time-series-data.ts';
11
+ export type { TimeSeriesChartProps, AreaChartProps, SmallMultiplesProps } from './time-series.tsx';
12
+ export { LineChart, AreaChart, SmallMultiples } from './time-series.tsx';
@@ -0,0 +1,37 @@
1
+ import type { ReactNode } from 'react';
2
+ import type { ChartSelection } from '../chart-frame.tsx';
3
+ import type { ChartTone } from '../chart-theme.ts';
4
+ export type ScatterPoint = {
5
+ readonly id: string;
6
+ readonly label: string;
7
+ readonly x: number;
8
+ readonly y: number;
9
+ readonly tone: ChartTone;
10
+ };
11
+ export type ScatterRange = {
12
+ readonly x: readonly [number, number];
13
+ readonly y: readonly [number, number];
14
+ };
15
+ export type ScatterRangeSelection = {
16
+ readonly value: ScatterRange | null;
17
+ readonly onChange: (range: ScatterRange | null) => void;
18
+ readonly xStep: number;
19
+ readonly yStep: number;
20
+ readonly locale: string;
21
+ };
22
+ export type ScatterPlotProps = {
23
+ readonly title: string;
24
+ readonly description: string;
25
+ readonly points: ReadonlyArray<ScatterPoint>;
26
+ readonly xDomain: readonly [number, number];
27
+ readonly yDomain: readonly [number, number];
28
+ readonly xLabel: string;
29
+ readonly yLabel: string;
30
+ readonly formatX: (value: number) => string;
31
+ readonly formatY: (value: number) => string;
32
+ readonly selection?: ChartSelection | undefined;
33
+ readonly rangeSelection?: ScatterRangeSelection | undefined;
34
+ readonly emptyLabel: string;
35
+ };
36
+ export declare const MAX_SCATTER_POINTS = 1000;
37
+ export declare function ScatterPlot(props: ScatterPlotProps): ReactNode;
@@ -0,0 +1,11 @@
1
+ import type { ReactNode } from 'react';
2
+ import type { TimeSeries } from './time-series-data.ts';
3
+ export type SparklineProps = {
4
+ readonly title: string;
5
+ readonly summary: string;
6
+ readonly unit: string;
7
+ readonly timestampUnit: 'seconds' | 'milliseconds';
8
+ readonly series: TimeSeries;
9
+ readonly valueDomain: readonly [number, number];
10
+ };
11
+ export declare function Sparkline({ title, summary, unit, timestampUnit, series, valueDomain }: SparklineProps): ReactNode;
@@ -0,0 +1,54 @@
1
+ import type { ChartTone } from '../chart-theme.ts';
2
+ export type TimeSeriesPoint = {
3
+ readonly timestamp: number;
4
+ readonly value: number | null;
5
+ };
6
+ export type TimeSeries = {
7
+ readonly id: string;
8
+ readonly label: string;
9
+ readonly points: ReadonlyArray<TimeSeriesPoint>;
10
+ readonly tone?: ChartTone | undefined;
11
+ };
12
+ export type TimeSeriesMarker = {
13
+ readonly id: string;
14
+ readonly timestamp: number;
15
+ readonly label: string;
16
+ } & ({
17
+ readonly kind: 'time';
18
+ readonly seriesId?: never;
19
+ readonly value?: never;
20
+ } | {
21
+ readonly kind: 'point';
22
+ readonly seriesId: string;
23
+ readonly value: number;
24
+ });
25
+ export type PlotPoint = {
26
+ readonly timestamp: number;
27
+ readonly value: number | null;
28
+ readonly base: number;
29
+ };
30
+ export type PlotSeries = {
31
+ readonly id: string;
32
+ readonly label: string;
33
+ readonly tone: ChartTone;
34
+ readonly points: ReadonlyArray<PlotPoint>;
35
+ };
36
+ export declare const timeSeriesLimits: {
37
+ readonly series: 12;
38
+ readonly pointsPerSeries: 2000;
39
+ readonly markers: 200;
40
+ readonly panels: 12;
41
+ };
42
+ export declare function validateTimeSeries({ series, isStacked, markers, }: {
43
+ readonly series: ReadonlyArray<TimeSeries>;
44
+ readonly isStacked: boolean;
45
+ readonly markers: ReadonlyArray<TimeSeriesMarker>;
46
+ }): string | undefined;
47
+ export declare function timeSeriesSignature({ series, markers, timestampUnit, isStacked, }: {
48
+ readonly series: ReadonlyArray<TimeSeries>;
49
+ readonly markers: ReadonlyArray<TimeSeriesMarker>;
50
+ readonly timestampUnit: string;
51
+ readonly isStacked: boolean;
52
+ }): string;
53
+ export declare function observationDomain(minimum: number, maximum: number, startsAtZero?: boolean): readonly [number, number];
54
+ export declare function prepareTimeSeries(series: ReadonlyArray<TimeSeries>, isStacked: boolean): ReadonlyArray<PlotSeries>;
@@ -0,0 +1,9 @@
1
+ import type { ReactNode } from 'react';
2
+ import type { PlotSeries } from './time-series-data.ts';
3
+ export declare function TimeSeriesLine({ series, x, y, inspectedTimestamp, pointRadius, }: {
4
+ readonly series: PlotSeries;
5
+ readonly x: (timestamp: number) => number;
6
+ readonly y: (value: number) => number;
7
+ readonly inspectedTimestamp?: number | undefined;
8
+ readonly pointRadius?: number | undefined;
9
+ }): ReactNode;
@@ -0,0 +1,29 @@
1
+ import type { ReactNode } from 'react';
2
+ import type { TimeSeries, TimeSeriesMarker } from './time-series-data.ts';
3
+ export type TimeSeriesChartProps = {
4
+ readonly title: string;
5
+ readonly description?: string | undefined;
6
+ readonly series: ReadonlyArray<TimeSeries>;
7
+ readonly timestampUnit: 'seconds' | 'milliseconds';
8
+ readonly formatTimestamp: (timestamp: number) => string;
9
+ readonly formatValue: (value: number) => string;
10
+ readonly markers?: ReadonlyArray<TimeSeriesMarker> | undefined;
11
+ readonly height?: number | undefined;
12
+ readonly actions?: ReactNode;
13
+ };
14
+ export type AreaChartProps = TimeSeriesChartProps & {
15
+ readonly stacked?: boolean | undefined;
16
+ };
17
+ export type SmallMultiplesProps = Omit<TimeSeriesChartProps, 'series' | 'title' | 'description' | 'actions' | 'formatValue' | 'markers'> & {
18
+ readonly charts: ReadonlyArray<{
19
+ readonly id: string;
20
+ readonly title: string;
21
+ readonly series: ReadonlyArray<TimeSeries>;
22
+ readonly description?: string | undefined;
23
+ readonly formatValue: (value: number) => string;
24
+ readonly markers?: ReadonlyArray<TimeSeriesMarker> | undefined;
25
+ }>;
26
+ };
27
+ export declare function LineChart(props: TimeSeriesChartProps): ReactNode;
28
+ export declare function AreaChart({ stacked, ...props }: AreaChartProps): ReactNode;
29
+ export declare function SmallMultiples({ charts, ...props }: SmallMultiplesProps): ReactNode;
@@ -0,0 +1,24 @@
1
+ import type { ReactNode } from 'react';
2
+ import type { ChartSelection } from './chart-frame.tsx';
3
+ import type { ChartTone } from './chart-theme.ts';
4
+ export type BreakdownItem = {
5
+ readonly id: string;
6
+ readonly label: string;
7
+ readonly value: number | null;
8
+ readonly tone?: ChartTone | undefined;
9
+ };
10
+ export declare const categoricalLimits: {
11
+ readonly items: 200;
12
+ readonly series: 12;
13
+ };
14
+ export declare function colorTone(tone: ChartTone | undefined, index: number): ChartTone;
15
+ export declare function validateBreakdown(items: ReadonlyArray<BreakdownItem>): string | undefined;
16
+ export declare function CategoricalValues({ items, selection, }: {
17
+ readonly items: ReadonlyArray<{
18
+ readonly id: string;
19
+ readonly label: string;
20
+ readonly valueLabel: string;
21
+ readonly tone: ChartTone;
22
+ }>;
23
+ readonly selection?: ChartSelection | undefined;
24
+ }): ReactNode;
@@ -0,0 +1,34 @@
1
+ import type { ReactNode } from 'react';
2
+ import type { ChartTone } from './chart-theme.ts';
3
+ export type ChartSelection = {
4
+ readonly selectedId: string | undefined;
5
+ readonly onSelect: (id: string) => void;
6
+ };
7
+ export type ChartFrameProps = {
8
+ readonly title: string;
9
+ readonly description?: string | undefined;
10
+ readonly children: ReactNode;
11
+ readonly actions?: ReactNode;
12
+ readonly footer?: ReactNode;
13
+ };
14
+ export type ChartLegendItem = {
15
+ readonly id: string;
16
+ readonly label: string;
17
+ readonly tone: ChartTone;
18
+ };
19
+ export type ChartLegendProps = {
20
+ readonly items: ReadonlyArray<ChartLegendItem>;
21
+ readonly label?: string | undefined;
22
+ };
23
+ export declare function ChartFrame({ title, description, children, actions, footer }: ChartFrameProps): ReactNode;
24
+ export declare function ChartLegend({ items, label }: ChartLegendProps): ReactNode;
25
+ export declare function ChartDatumButton({ label, selected, onSelect, children, }: {
26
+ readonly label: string;
27
+ readonly selected?: boolean | undefined;
28
+ readonly onSelect?: (() => void) | undefined;
29
+ readonly children: ReactNode;
30
+ }): ReactNode;
31
+ export declare function ChartDataDisclosure({ children, label, }: {
32
+ readonly children: ReactNode;
33
+ readonly label?: string | undefined;
34
+ }): ReactNode;
@@ -0,0 +1,10 @@
1
+ import type { ReactNode } from 'react';
2
+ export declare function isFiniteDomain(domain: readonly [number, number]): boolean;
3
+ export declare function hasUniqueIds(records: ReadonlyArray<{
4
+ readonly id: string;
5
+ }>): boolean;
6
+ export declare function ChartInputError({ title, description, message, }: {
7
+ readonly title: string;
8
+ readonly description?: string | undefined;
9
+ readonly message: string;
10
+ }): ReactNode;
@@ -0,0 +1,48 @@
1
+ import * as stylex from '@stylexjs/stylex';
2
+ export type ChartTone = 'series1' | 'series2' | 'series3' | 'series4' | 'series5' | 'series6' | 'positive' | 'negative' | 'neutral';
3
+ export declare const chartToneColors: Readonly<Record<ChartTone, string>>;
4
+ export declare const chartStyles: Readonly<{
5
+ readonly plot: Readonly<{
6
+ readonly minWidth: stylex.StyleXClassNameFor<"minWidth", 0>;
7
+ readonly overflow: stylex.StyleXClassNameFor<"overflow", "hidden">;
8
+ }>;
9
+ readonly svg: Readonly<{
10
+ readonly display: stylex.StyleXClassNameFor<"display", "block">;
11
+ readonly width: stylex.StyleXClassNameFor<"width", "100%">;
12
+ readonly overflow: stylex.StyleXClassNameFor<"overflow", "visible">;
13
+ }>;
14
+ readonly axis: Readonly<{
15
+ readonly stroke: stylex.StyleXClassNameFor<"stroke", string>;
16
+ readonly strokeWidth: stylex.StyleXClassNameFor<"strokeWidth", 1>;
17
+ readonly vectorEffect: stylex.StyleXClassNameFor<"vectorEffect", "non-scaling-stroke">;
18
+ }>;
19
+ readonly grid: Readonly<{
20
+ readonly stroke: stylex.StyleXClassNameFor<"stroke", string>;
21
+ readonly strokeWidth: stylex.StyleXClassNameFor<"strokeWidth", 1>;
22
+ readonly strokeDasharray: stylex.StyleXClassNameFor<"strokeDasharray", "3 3">;
23
+ readonly vectorEffect: stylex.StyleXClassNameFor<"vectorEffect", "non-scaling-stroke">;
24
+ }>;
25
+ readonly label: Readonly<{
26
+ readonly fill: stylex.StyleXClassNameFor<"fill", string>;
27
+ readonly fontFamily: stylex.StyleXClassNameFor<"fontFamily", string>;
28
+ readonly fontSize: stylex.StyleXClassNameFor<"fontSize", string>;
29
+ readonly fontVariantNumeric: stylex.StyleXClassNameFor<"fontVariantNumeric", "tabular-nums">;
30
+ }>;
31
+ readonly mark: Readonly<{
32
+ readonly strokeWidth: stylex.StyleXClassNameFor<"strokeWidth", 1.5>;
33
+ readonly vectorEffect: stylex.StyleXClassNameFor<"vectorEffect", "non-scaling-stroke">;
34
+ }>;
35
+ readonly selected: Readonly<{
36
+ readonly stroke: stylex.StyleXClassNameFor<"stroke", string>;
37
+ readonly strokeWidth: stylex.StyleXClassNameFor<"strokeWidth", 2>;
38
+ readonly vectorEffect: stylex.StyleXClassNameFor<"vectorEffect", "non-scaling-stroke">;
39
+ }>;
40
+ readonly focus: Readonly<{
41
+ readonly ':focus-visible': stylex.StyleXClassNameFor<":focus-visible", {
42
+ readonly outlineColor: stylex.StyleXVar<string>;
43
+ readonly outlineStyle: "solid";
44
+ readonly outlineWidth: stylex.StyleXVar<string>;
45
+ readonly outlineOffset: 2;
46
+ }>;
47
+ }>;
48
+ }>;
@@ -0,0 +1,14 @@
1
+ export type NumericDomain = readonly [minimum: number, maximum: number];
2
+ export declare const distributionLimits: {
3
+ readonly bins: 200;
4
+ readonly cumulativePoints: 2000;
5
+ readonly rows: 200;
6
+ };
7
+ export declare function distributionInputError({ items, domain, maxEntries, }: {
8
+ readonly items: ReadonlyArray<{
9
+ readonly id: string;
10
+ }>;
11
+ readonly domain: NumericDomain;
12
+ readonly maxEntries: number;
13
+ }): string | undefined;
14
+ export declare function outsideDomain(value: number, domain: NumericDomain): boolean;