@photon-ai/pho-ui 4.7.1 → 4.9.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.
Files changed (69) hide show
  1. package/dist/chunks/bar-chart-ht70KKj3.js +19 -0
  2. package/dist/chunks/bar-chart-ht70KKj3.js.map +1 -0
  3. package/dist/chunks/{basic-page-BUmntB7L.js → basic-page-DzT8yecB.js} +174 -173
  4. package/dist/chunks/basic-page-DzT8yecB.js.map +1 -0
  5. package/dist/chunks/chart-B5c8gmlj.js +1338 -0
  6. package/dist/chunks/chart-B5c8gmlj.js.map +1 -0
  7. package/dist/chunks/code-block-CbcE994O.js +516 -0
  8. package/dist/chunks/code-block-CbcE994O.js.map +1 -0
  9. package/dist/chunks/{data-table-Mog6m3d9.js → data-table-B1dmrN6r.js} +89 -94
  10. package/dist/chunks/data-table-B1dmrN6r.js.map +1 -0
  11. package/dist/chunks/ghost-search-CNVs9k1o.js +34 -0
  12. package/dist/chunks/ghost-search-CNVs9k1o.js.map +1 -0
  13. package/dist/chunks/line-chart-Cm_Ac7f4.js +22 -0
  14. package/dist/chunks/line-chart-Cm_Ac7f4.js.map +1 -0
  15. package/dist/chunks/{trace-CjOi3_IP.js → trace-D1fOFzJt.js} +633 -622
  16. package/dist/chunks/trace-D1fOFzJt.js.map +1 -0
  17. package/dist/components/bar-chart.js +1 -1
  18. package/dist/components/chart.js +8 -5
  19. package/dist/components/code-block.js +12 -3
  20. package/dist/components/data-table.js +8 -8
  21. package/dist/components/line-chart.js +1 -1
  22. package/dist/components/trace.js +1 -1
  23. package/dist/index.js +175 -162
  24. package/dist/motion.js +14 -13
  25. package/dist/motion.js.map +1 -1
  26. package/dist/primitives.js +1 -1
  27. package/dist/sections/basic-page.js +2 -2
  28. package/dist/src/components/bar-chart/bar-chart.d.ts +9 -1
  29. package/dist/src/components/chart/chart.d.ts +25 -0
  30. package/dist/src/components/chart/format.d.ts +9 -5
  31. package/dist/src/components/chart/index.d.ts +7 -4
  32. package/dist/src/components/chart/scale.d.ts +2 -2
  33. package/dist/src/components/chart/shell.d.ts +20 -13
  34. package/dist/src/components/chart/skeleton.d.ts +11 -0
  35. package/dist/src/components/chart/theme.d.ts +8 -0
  36. package/dist/src/components/chart/types.d.ts +39 -2
  37. package/dist/src/components/chart/use-measure.d.ts +2 -1
  38. package/dist/src/components/code-block/code-block.d.ts +23 -11
  39. package/dist/src/components/code-block/highlight.d.ts +24 -0
  40. package/dist/src/components/code-block/index.d.ts +4 -1
  41. package/dist/src/components/code-block/languages.d.ts +64 -0
  42. package/dist/src/components/code-block/pho-theme.d.ts +18 -0
  43. package/dist/src/components/code-block/tokens.d.ts +14 -0
  44. package/dist/src/components/data-table/chrome.d.ts +25 -0
  45. package/dist/src/components/data-table/data-table.d.ts +1 -2
  46. package/dist/src/components/line-chart/line-chart.d.ts +12 -3
  47. package/dist/src/components/trace/trace.d.ts +15 -4
  48. package/dist/src/motion/index.d.ts +6 -0
  49. package/dist/src/sections/basic-page/basic-page.d.ts +2 -0
  50. package/package.json +4 -1
  51. package/src/styles/theme.css +17 -4
  52. package/dist/chunks/IconArrowsMinimize-BfPUGuCB.js +0 -75
  53. package/dist/chunks/IconArrowsMinimize-BfPUGuCB.js.map +0 -1
  54. package/dist/chunks/bar-chart-DIALC2_z.js +0 -190
  55. package/dist/chunks/bar-chart-DIALC2_z.js.map +0 -1
  56. package/dist/chunks/basic-page-BUmntB7L.js.map +0 -1
  57. package/dist/chunks/code-block-BuFfh0zH.js +0 -197
  58. package/dist/chunks/code-block-BuFfh0zH.js.map +0 -1
  59. package/dist/chunks/data-table-Mog6m3d9.js.map +0 -1
  60. package/dist/chunks/ghost-search-AmVXd0zE.js +0 -25
  61. package/dist/chunks/ghost-search-AmVXd0zE.js.map +0 -1
  62. package/dist/chunks/legend-C0mU7dqd.js +0 -60
  63. package/dist/chunks/legend-C0mU7dqd.js.map +0 -1
  64. package/dist/chunks/line-chart-VuMYKzW3.js +0 -453
  65. package/dist/chunks/line-chart-VuMYKzW3.js.map +0 -1
  66. package/dist/chunks/trace-CjOi3_IP.js.map +0 -1
  67. package/dist/chunks/use-measure-C-i54AC6.js +0 -629
  68. package/dist/chunks/use-measure-C-i54AC6.js.map +0 -1
  69. package/dist/src/components/chart/axes.d.ts +0 -22
package/dist/index.js CHANGED
@@ -2,192 +2,205 @@
2
2
  import { t as s } from "./chunks/cn-ChIgwEl3.js";
3
3
  import { t as r } from "./chunks/is-react-component-DSnjtBmo.js";
4
4
  import { t as e } from "./chunks/resolve-variant-CcD8iG5l.js";
5
- import { n as E, t as S } from "./chunks/link-provider-DXzDQ08N.js";
6
- import { BAR_RISE_PX as n, BLUR_PX as m, EASE_POP as I, EASE_STACK as T, FADE_ENTRANCE as p, FADE_SWAP as A, PRESS_SCALE as R, PRESS_SCALE_ROW as l, RISE_PX as C, SPRING_ENTRANCE as B, SPRING_PRESS as f, SPRING_PRESS_INLINE as u, SPRING_PRESS_QUICK as N, SPRING_SETTLE as P, TRAVEL_LINEAR as L, fadeThroughBlur as c, riseIn as D } from "./motion.js";
7
- import { n as V, r as d, t as U } from "./chunks/use-press-pulse-IbNstUT0.js";
8
- import { n as b, t as g } from "./chunks/use-copy-D6JwKUll.js";
5
+ import { n as S, t as E } from "./chunks/link-provider-DXzDQ08N.js";
6
+ import { BAR_RISE_PX as n, BLUR_PX as m, EASE_POP as A, EASE_STACK as I, FADE_ENTRANCE as T, FADE_SWAP as p, PRESS_SCALE as R, PRESS_SCALE_ROW as l, RISE_PX as C, SPAN_SCALE as u, SPRING_ENTRANCE as B, SPRING_PRESS as f, SPRING_PRESS_INLINE as N, SPRING_PRESS_QUICK as L, SPRING_SETTLE as P, TRAVEL_LINEAR as c, fadeThroughBlur as D, riseIn as O } from "./motion.js";
7
+ import { n as V, r as g, t as h } from "./chunks/use-press-pulse-IbNstUT0.js";
8
+ import { n as U, t as M } from "./chunks/use-copy-D6JwKUll.js";
9
9
  import "./utils.js";
10
- import { a as F, c as k, d as v, i as w, l as W, n as x, o as y, r as H, s as K, t as z, u as X } from "./chunks/button-C9VqBBIr.js";
11
- import { a as Z, c as j, i as J, l as Q, n as q, o as $, r as aa, s as sa, t as ta } from "./chunks/error-D5SzZ0ev.js";
12
- import { t as oa } from "./chunks/chat-B0WIgEyM.js";
13
- import { A as ia, B as Ea, C as Sa, D as _a, E as na, F as ma, I as Ia, L as Ta, M as pa, N as Aa, O as Ra, P as la, R as Ca, S as Ba, T as fa, V as ua, _ as Na, a as Pa, b as La, c as ca, d as Da, f as Oa, g as Va, h as da, i as Ua, j as Ga, k as ba, l as ga, m as Ma, n as ha, o as Fa, p as ka, r as va, s as wa, t as Wa, u as xa, v as ya, w as Ha, x as Ka, y as za, z as Xa } from "./chunks/trace-CjOi3_IP.js";
14
- import { n as Za, t as ja } from "./chunks/date-picker-CZbcNIe-.js";
15
- import { n as Qa, t as qa } from "./chunks/copy-button-D8XyP0oR.js";
16
- import { a as as, c as ss, d as ts, i as rs, l as os, n as es, o as is, r as Es, s as Ss, t as _s, u as ns } from "./chunks/sidebar-BP39w1iA.js";
17
- import { t as Is } from "./chunks/input-DjvZoF8v.js";
18
- import { i as ps, n as As, r as Rs, t as ls } from "./chunks/filter-bar-B-oYYBsU.js";
19
- import { a as Bs } from "./chunks/data-table-Mog6m3d9.js";
20
- import { n as us, t as Ns } from "./chunks/code-block-BuFfh0zH.js";
21
- import { n as Ls, t as cs } from "./chunks/stat-hnNqjWVG.js";
22
- import { t as Os } from "./chunks/calendar-4OFiCLAv.js";
23
- import { t as ds } from "./chunks/close-button-GvqWbLl0.js";
24
- import { t as Gs } from "./chunks/input-group-fc9_jD4d.js";
25
- import { n as gs, t as Ms } from "./chunks/card-N-tvFsuV.js";
26
- import { n as Fs, t as ks } from "./chunks/dialog-MPvem7yV.js";
27
- import { i as ws, n as Ws, r as xs, t as ys } from "./chunks/status-view-C8tabjDu.js";
28
- import { t as Ks } from "./chunks/description-list-8qm83WZB.js";
29
- import { a as Xs, c as Ys, d as Zs, f as js, i as Js, l as Qs, m as qs, n as $s, o as at, p as st, r as tt, s as rt, t as ot, u as et } from "./chunks/basic-page-BUmntB7L.js";
30
- import { i as Et, n as St, r as _t, t as nt } from "./chunks/legend-C0mU7dqd.js";
10
+ import { a as v, c as k, d as w, i as W, l as y, n as H, o as K, r as x, s as z, t as X, u as Y } from "./chunks/button-C9VqBBIr.js";
11
+ import { a as j, c as J, i as Q, l as q, n as $, o as aa, r as sa, s as ta, t as ra } from "./chunks/error-D5SzZ0ev.js";
12
+ import { t as ea } from "./chunks/chat-B0WIgEyM.js";
13
+ import { A as Sa, B as Ea, C as _a, D as na, E as ma, F as Aa, I as Ia, L as Ta, M as pa, N as Ra, O as la, P as Ca, R as ua, S as Ba, T as fa, V as Na, _ as La, a as Pa, b as ca, c as Da, d as Oa, f as da, g as Va, h as ga, i as ha, j as Ga, k as Ua, l as Ma, m as ba, n as Fa, o as va, p as ka, r as wa, s as Wa, t as ya, u as Ha, v as Ka, w as xa, x as za, y as Xa, z as Ya } from "./chunks/trace-D1fOFzJt.js";
14
+ import { a as ja, c as Ja, d as Qa, i as qa, l as $a, n as as, o as ss, r as ts, s as rs, t as os, u as es } from "./chunks/code-block-CbcE994O.js";
15
+ import { n as Ss, t as Es } from "./chunks/date-picker-CZbcNIe-.js";
16
+ import { n as ns, t as ms } from "./chunks/copy-button-D8XyP0oR.js";
17
+ import { a as Is, c as Ts, d as ps, i as Rs, l as ls, n as Cs, o as us, r as Bs, s as fs, t as Ns, u as Ls } from "./chunks/sidebar-BP39w1iA.js";
18
+ import { t as cs } from "./chunks/input-DjvZoF8v.js";
19
+ import { i as Os, n as ds, r as Vs, t as gs } from "./chunks/filter-bar-B-oYYBsU.js";
20
+ import { i as Gs } from "./chunks/data-table-B1dmrN6r.js";
21
+ import { n as Ms, t as bs } from "./chunks/stat-hnNqjWVG.js";
22
+ import { t as vs } from "./chunks/calendar-4OFiCLAv.js";
23
+ import { t as ws } from "./chunks/close-button-GvqWbLl0.js";
24
+ import { t as ys } from "./chunks/input-group-fc9_jD4d.js";
25
+ import { n as Ks, t as xs } from "./chunks/card-N-tvFsuV.js";
26
+ import { n as Xs, t as Ys } from "./chunks/dialog-MPvem7yV.js";
27
+ import { i as js, n as Js, r as Qs, t as qs } from "./chunks/status-view-C8tabjDu.js";
28
+ import { t as at } from "./chunks/description-list-8qm83WZB.js";
29
+ import { a as tt, c as rt, d as ot, f as et, i as it, l as St, m as Et, n as _t, o as nt, p as mt, r as At, s as It, t as Tt, u as pt } from "./chunks/basic-page-DzT8yecB.js";
30
+ import { a as lt, i as Ct, n as ut, o as Bt, r as ft, s as Nt, t as Lt } from "./chunks/chart-B5c8gmlj.js";
31
31
  import "./components/chart.js";
32
- import { t as Tt } from "./chunks/bar-chart-DIALC2_z.js";
33
- import { t as At } from "./chunks/line-chart-VuMYKzW3.js";
34
- import { i as lt, n as Ct, r as Bt, t as ft } from "./chunks/log-list-tNuCFGlP.js";
35
- import { n as Nt, t as Pt } from "./chunks/bubble-eaoLJP4N.js";
36
- import { n as ct, r as Dt, t as Ot } from "./chunks/message-Dz2-numf.js";
32
+ import { t as Dt } from "./chunks/bar-chart-ht70KKj3.js";
33
+ import { t as dt } from "./chunks/line-chart-Cm_Ac7f4.js";
34
+ import { i as gt, n as ht, r as Gt, t as Ut } from "./chunks/log-list-tNuCFGlP.js";
35
+ import { n as bt, t as Ft } from "./chunks/bubble-eaoLJP4N.js";
36
+ import { n as kt, r as wt, t as Wt } from "./chunks/message-Dz2-numf.js";
37
37
  export {
38
- ot as AUTO_SAVE_DELAY_MS,
38
+ Tt as AUTO_SAVE_DELAY_MS,
39
39
  n as BAR_RISE_PX,
40
- $s as BASIC_PAGE_CALLOUT,
41
- tt as BASIC_PAGE_CARD,
42
- Js as BASIC_PAGE_ITEM,
43
- Xs as BASIC_PAGE_ITEM_PANEL,
44
- at as BASIC_PAGE_ITEM_PANEL_DIVIDED,
45
- rt as BASIC_PAGE_ROW,
40
+ _t as BASIC_PAGE_CALLOUT,
41
+ At as BASIC_PAGE_CARD,
42
+ it as BASIC_PAGE_ITEM,
43
+ tt as BASIC_PAGE_ITEM_PANEL,
44
+ nt as BASIC_PAGE_ITEM_PANEL_DIVIDED,
45
+ It as BASIC_PAGE_ROW,
46
46
  m as BLUR_PX,
47
- Pt as BUBBLE_VARIANTS,
48
- z as BUTTON_COLORS,
49
- x as BUTTON_SHAPES,
50
- H as BUTTON_SIZES,
51
- w as BUTTON_VARIANTS,
52
- Tt as BarChart,
53
- Ys as BasicPage,
54
- Nt as Bubble,
55
- F as Button,
56
- y as ButtonLink,
57
- Ms as CARD_SURFACE,
58
- _t as CHART_SLOTS,
59
- Qs as CONDENSE_BAR_ENTER,
60
- et as CONDENSE_BAR_RISE_PX,
61
- Zs as CONDENSE_BAR_TRAVEL,
62
- U as CONTROL_PRESS_SCALE,
47
+ Ft as BUBBLE_VARIANTS,
48
+ X as BUTTON_COLORS,
49
+ H as BUTTON_SHAPES,
50
+ x as BUTTON_SIZES,
51
+ W as BUTTON_VARIANTS,
52
+ Dt as BarChart,
53
+ rt as BasicPage,
54
+ bt as Bubble,
55
+ v as Button,
56
+ K as ButtonLink,
57
+ xs as CARD_SURFACE,
58
+ Bt as CHART_SLOTS,
59
+ $a as CODE_GRAMMARS,
60
+ Ja as CODE_TOKEN_CLASS,
61
+ St as CONDENSE_BAR_ENTER,
62
+ pt as CONDENSE_BAR_RISE_PX,
63
+ ot as CONDENSE_BAR_TRAVEL,
64
+ h as CONTROL_PRESS_SCALE,
63
65
  V as CONTROL_PRESS_SPRING,
64
- qa as COPY_BUTTON_SIZES,
65
- g as COPY_FEEDBACK_MS,
66
- Os as Calendar,
67
- gs as Card,
68
- nt as ChartLegend,
69
- St as ChartSwatch,
70
- oa as Chat,
71
- ds as CloseButton,
72
- Ns as CodeBlock,
73
- Qa as CopyButton,
74
- ja as DatePicker,
75
- Ks as DescriptionList,
76
- ks as Dialog,
77
- I as EASE_POP,
78
- T as EASE_STACK,
79
- K as EFFECT_BUTTON_SIZES,
66
+ ms as COPY_BUTTON_SIZES,
67
+ M as COPY_FEEDBACK_MS,
68
+ vs as Calendar,
69
+ Ks as Card,
70
+ Lt as Chart,
71
+ ut as ChartBar,
72
+ Ct as ChartLegend,
73
+ ft as ChartLine,
74
+ lt as ChartSwatch,
75
+ ea as Chat,
76
+ ws as CloseButton,
77
+ os as CodeBlock,
78
+ ns as CopyButton,
79
+ Es as DatePicker,
80
+ at as DescriptionList,
81
+ Ys as Dialog,
82
+ A as EASE_POP,
83
+ I as EASE_STACK,
84
+ z as EFFECT_BUTTON_SIZES,
80
85
  k as EffectButton,
81
- W as EffectButtonLink,
82
- ta as Error,
83
- q as ErrorView,
84
- p as FADE_ENTRANCE,
85
- A as FADE_SWAP,
86
- ls as FILTER_DATE_PRESETS,
87
- Sa as FULL_VIEW,
88
- As as FilterBar,
89
- aa as GENERIC_ERROR_TITLE,
86
+ y as EffectButtonLink,
87
+ ra as Error,
88
+ $ as ErrorView,
89
+ T as FADE_ENTRANCE,
90
+ p as FADE_SWAP,
91
+ gs as FILTER_DATE_PRESETS,
92
+ _a as FULL_VIEW,
93
+ ds as FilterBar,
94
+ sa as GENERIC_ERROR_TITLE,
90
95
  ka as GEN_AI_KINDS,
91
- Is as Input,
92
- Gs as InputGroup,
93
- At as LineChart,
94
- S as LinkProvider,
95
- ft as LogList,
96
- Ha as MIN_VIEW_WIDTH,
97
- Dt as Message,
96
+ cs as Input,
97
+ ys as InputGroup,
98
+ es as LANGUAGE_ALIASES,
99
+ dt as LineChart,
100
+ E as LinkProvider,
101
+ Ut as LogList,
102
+ xa as MIN_VIEW_WIDTH,
103
+ wt as Message,
98
104
  R as PRESS_SCALE,
99
105
  l as PRESS_SCALE_ROW,
100
106
  C as RISE_PX,
101
- _s as SIDEBAR_HEADER_INSET,
102
- es as SIDEBAR_ITEM,
103
- Es as SIDEBAR_ITEM_ACTIVE,
104
- rs as SIDEBAR_ITEM_INACTIVE,
105
- as as SIDEBAR_ROOT,
106
- is as SIDEBAR_ROOT_BASE,
107
- Ss as SIDEBAR_ROOT_INSET,
108
- ss as SIDEBAR_SUBMENU_CHEVRON,
109
- os as SIDEBAR_SUBMENU_LIST_INDENT,
110
- ns as SIDEBAR_SUBMENU_TRIGGER_CHILD_ACTIVE,
107
+ Ns as SIDEBAR_HEADER_INSET,
108
+ Cs as SIDEBAR_ITEM,
109
+ Bs as SIDEBAR_ITEM_ACTIVE,
110
+ Rs as SIDEBAR_ITEM_INACTIVE,
111
+ Is as SIDEBAR_ROOT,
112
+ us as SIDEBAR_ROOT_BASE,
113
+ fs as SIDEBAR_ROOT_INSET,
114
+ Ts as SIDEBAR_SUBMENU_CHEVRON,
115
+ ls as SIDEBAR_SUBMENU_LIST_INDENT,
116
+ Ls as SIDEBAR_SUBMENU_TRIGGER_CHILD_ACTIVE,
117
+ u as SPAN_SCALE,
111
118
  B as SPRING_ENTRANCE,
112
119
  f as SPRING_PRESS,
113
- u as SPRING_PRESS_INLINE,
114
- N as SPRING_PRESS_QUICK,
120
+ N as SPRING_PRESS_INLINE,
121
+ L as SPRING_PRESS_QUICK,
115
122
  P as SPRING_SETTLE,
116
- ys as STATUS_VIEW,
117
- Ws as STATUS_VIEW_COPY,
118
- xs as STATUS_VIEW_SIZES,
119
- ts as Sidebar,
120
- La as SpanPrimitive,
121
- cs as Stat,
122
- Ls as StatGroup,
123
- ws as StatusView,
124
- L as TRAVEL_LINEAR,
125
- Wa as Trace,
123
+ qs as STATUS_VIEW,
124
+ Js as STATUS_VIEW_COPY,
125
+ Qs as STATUS_VIEW_SIZES,
126
+ ps as Sidebar,
127
+ ca as SpanPrimitive,
128
+ bs as Stat,
129
+ Ms as StatGroup,
130
+ js as StatusView,
131
+ c as TRAVEL_LINEAR,
132
+ ya as Trace,
126
133
  fa as allCollapsed,
127
- na as ancestorIds,
128
- Ma as attribute,
129
- da as attributeText,
130
- Ua as axisTicks,
134
+ ma as ancestorIds,
135
+ ba as attribute,
136
+ ga as attributeText,
137
+ ha as axisTicks,
131
138
  Pa as barGeometry,
132
- _a as buildSpanTree,
133
- X as buttonVariants,
134
- J as capitalizeFirst,
135
- Et as chartColor,
136
- Ra as clampView,
139
+ na as buildSpanTree,
140
+ Y as buttonVariants,
141
+ Q as capitalizeFirst,
142
+ Nt as chartColor,
143
+ la as clampView,
137
144
  s as cn,
138
- ba as collapseAllIds,
139
- ia as collapseOneLevel,
140
- Bs as createColumns,
145
+ Ua as collapseAllIds,
146
+ Sa as collapseOneLevel,
147
+ Gs as createColumns,
141
148
  Ga as deriveSpanTree,
142
- Z as describeError,
143
- v as effectButtonVariants,
149
+ j as describeError,
150
+ w as effectButtonVariants,
144
151
  pa as expandOneLevel,
145
- c as fadeThroughBlur,
146
- Aa as filterSpans,
147
- ha as footerTotals,
148
- js as formToasts,
149
- Za as formatDateLabel,
150
- Fa as formatDuration,
151
- Rs as formatFilterValue,
152
- wa as formatTick,
152
+ D as fadeThroughBlur,
153
+ Ra as filterSpans,
154
+ Fa as footerTotals,
155
+ et as formToasts,
156
+ Ss as formatDateLabel,
157
+ va as formatDuration,
158
+ Vs as formatFilterValue,
159
+ Wa as formatTick,
153
160
  Va as genAIKind,
154
- $ as httpReasonPhrase,
155
- sa as httpStatusExplanation,
156
- ps as isFilterSet,
157
- la as isFullView,
158
- j as isProblem,
161
+ ts as highlight,
162
+ qa as highlightSync,
163
+ aa as httpReasonPhrase,
164
+ ta as httpStatusExplanation,
165
+ Os as isFilterSet,
166
+ Ca as isFullView,
167
+ ja as isLanguageReady,
168
+ J as isProblem,
159
169
  r as isReactComponent,
160
- ca as labeledTicks,
161
- ga as layoutTickLabels,
162
- Ct as logStatusColor,
163
- Bt as logStatusLabel,
164
- Ot as messageStatusKey,
165
- xa as niceStep,
166
- Da as normalizeSpans,
167
- ma as panView,
168
- Q as parseProblem,
169
- Na as peerService,
170
+ Da as labeledTicks,
171
+ Ma as layoutTickLabels,
172
+ ht as logStatusColor,
173
+ Gt as logStatusLabel,
174
+ Wt as messageStatusKey,
175
+ Ha as niceStep,
176
+ Oa as normalizeSpans,
177
+ Aa as panView,
178
+ q as parseProblem,
179
+ La as peerService,
180
+ ss as preloadLanguage,
181
+ Qa as resolveGrammar,
170
182
  e as resolveVariant,
171
- D as riseIn,
172
- ct as shouldShowMessageStatus,
173
- ya as spanDecorationIcon,
174
- Oa as spanDuration,
175
- za as spanPills,
183
+ O as riseIn,
184
+ kt as shouldShowMessageStatus,
185
+ Ka as spanDecorationIcon,
186
+ da as spanDuration,
187
+ Xa as spanPills,
176
188
  Ia as spanTimelineBarVars,
177
- us as tokenizeJson,
178
- va as traceBulletInset,
189
+ as as tokenizeJson,
190
+ wa as traceBulletInset,
179
191
  Ta as traceRange,
180
- lt as truncateMiddle,
181
- st as useAutoSave,
182
- qs as useCondense,
183
- b as useCopy,
184
- Fs as useDialogPending,
185
- E as useLinkComponent,
186
- d as usePressPulse,
187
- Ka as useSpan,
192
+ gt as truncateMiddle,
193
+ mt as useAutoSave,
194
+ Et as useCondense,
195
+ U as useCopy,
196
+ Xs as useDialogPending,
197
+ rs as useHighlight,
198
+ S as useLinkComponent,
199
+ g as usePressPulse,
200
+ za as useSpan,
188
201
  Ba as useSpanTree,
189
- Ca as viewFraction,
190
- Xa as viewToRange,
202
+ ua as viewFraction,
203
+ Ya as viewToRange,
191
204
  Ea as visibleSpans,
192
- ua as zoomView
205
+ Na as zoomView
193
206
  };
package/dist/motion.js CHANGED
@@ -12,12 +12,12 @@ var r = {
12
12
  stiffness: 200,
13
13
  damping: 30,
14
14
  mass: 0.1
15
- }, p = {
15
+ }, S = {
16
16
  type: "spring",
17
17
  stiffness: 700,
18
18
  damping: 32,
19
19
  mass: 0.06
20
- }, E = {
20
+ }, p = {
21
21
  type: "spring",
22
22
  stiffness: 1100,
23
23
  damping: 40,
@@ -28,11 +28,11 @@ var r = {
28
28
  }, e = {
29
29
  duration: 0.2,
30
30
  ease: "easeOut"
31
- }, S = {
31
+ }, E = {
32
32
  duration: 0.2,
33
33
  ease: "linear"
34
- }, R = "cubic-bezier(0.34, 1.3, 0.64, 1)", _ = "cubic-bezier(0.22, 1, 0.36, 1)", f = 12, u = -8, P = 0.96, o = 0.97, v = 1;
35
- function y(a) {
34
+ }, _ = "cubic-bezier(0.34, 1.3, 0.64, 1)", R = "cubic-bezier(0.22, 1, 0.36, 1)", f = 12, u = -8, P = 0.9, v = 0.96, o = 0.97, y = 1;
35
+ function A(a) {
36
36
  const i = a ? "blur(0px)" : "blur(1px)";
37
37
  return {
38
38
  initial: {
@@ -68,21 +68,22 @@ function c(a) {
68
68
  }
69
69
  export {
70
70
  u as BAR_RISE_PX,
71
- v as BLUR_PX,
72
- R as EASE_POP,
73
- _ as EASE_STACK,
71
+ y as BLUR_PX,
72
+ _ as EASE_POP,
73
+ R as EASE_STACK,
74
74
  t as FADE_ENTRANCE,
75
75
  e as FADE_SWAP,
76
- P as PRESS_SCALE,
76
+ v as PRESS_SCALE,
77
77
  o as PRESS_SCALE_ROW,
78
78
  f as RISE_PX,
79
+ P as SPAN_SCALE,
79
80
  r as SPRING_ENTRANCE,
80
81
  n as SPRING_PRESS,
81
- E as SPRING_PRESS_INLINE,
82
- p as SPRING_PRESS_QUICK,
82
+ p as SPRING_PRESS_INLINE,
83
+ S as SPRING_PRESS_QUICK,
83
84
  s as SPRING_SETTLE,
84
- S as TRAVEL_LINEAR,
85
- y as fadeThroughBlur,
85
+ E as TRAVEL_LINEAR,
86
+ A as fadeThroughBlur,
86
87
  c as riseIn
87
88
  };
88
89
 
@@ -1 +1 @@
1
- {"version":3,"file":"motion.js","names":[],"sources":["../src/motion/index.ts"],"sourcesContent":["/**\n * The motion vocabulary — every animation in Pho speaks it. Five springs,\n * three timings, two CSS eases, and a handful of distances cover the\n * system; components import from here and add nothing of their own.\n *\n * The grammar:\n * - **Arrive** on `SPRING_ENTRANCE` with `FADE_ENTRANCE` — content\n * surfaces, it doesn't slide in.\n * - **Swap** on `FADE_SWAP`, displacement on `TRAVEL_LINEAR` — crossfades\n * ease out, travel is linear.\n * - **Press** on the press springs — deeper mass for bigger surfaces.\n * - **Follow** on `SPRING_SETTLE` — heights and reflows chase content.\n */\n\n/**\n * Pages arrive on this — the `Stack` entrance, `Reveal`, `Title` / `Header`\n * enter, the Title ↔ Back morph, `Alert` / `Footer` height reveals.\n * Measured off a 60fps iOS push: ~330ms, a long gentle glide, everything\n * co-landing; essentially critically damped (overshoot would flash\n * clipped content).\n */\nexport const SPRING_ENTRANCE = {\n type: \"spring\",\n stiffness: 400,\n damping: 40,\n} as const;\n\n/**\n * Layout follows content on this — `AnimatedHeight`, a command palette's\n * rows gliding into new places. Stiffer than the entrance: reflow should\n * settle before it reads as motion.\n */\nexport const SPRING_SETTLE = {\n type: \"spring\",\n stiffness: 640,\n damping: 50,\n} as const;\n\n/**\n * The press pulse for full-size surfaces — `Button`, a sidebar row.\n * Framer source: `spring-physics 200 30 0.1`.\n */\nexport const SPRING_PRESS = {\n type: \"spring\",\n stiffness: 200,\n damping: 30,\n mass: 0.1,\n} as const;\n\n/** The press pulse for small controls — toggles, checks; quick and light. */\nexport const SPRING_PRESS_QUICK = {\n type: \"spring\",\n stiffness: 700,\n damping: 32,\n mass: 0.06,\n} as const;\n\n/** The press pulse for inline triggers — a `Select` sitting in text. */\nexport const SPRING_PRESS_INLINE = {\n type: \"spring\",\n stiffness: 1100,\n damping: 40,\n mass: 0.04,\n} as const;\n\n/** The fade that rides `SPRING_ENTRANCE` — spans most of the glide. */\nexport const FADE_ENTRANCE = { duration: 0.25, ease: \"easeOut\" } as const;\n\n/**\n * The swap — crossfading faces, a condensed bar arriving, a saved word,\n * an aside changing pages. Fades ease out.\n */\nexport const FADE_SWAP = { duration: 0.2, ease: \"easeOut\" } as const;\n\n/**\n * Displacement — a bar's rise, a drawer's scope swap. Travel is linear:\n * the eye reads speed changes as personality, and furniture has none.\n * (A search box's width is a reflow, not travel: it rides the page\n * spring, as a menu opens.)\n */\nexport const TRAVEL_LINEAR = { duration: 0.2, ease: \"linear\" } as const;\n\n/** CSS pop-in for floating layers (menus, select popups) — slight overshoot. */\nexport const EASE_POP = \"cubic-bezier(0.34, 1.3, 0.64, 1)\";\n\n/** CSS stack glide — toasts trading places (Kumo's curve). */\nexport const EASE_STACK = \"cubic-bezier(0.22, 1, 0.36, 1)\";\n\n/** Rise distance for entrances — content surfaces from just below. */\nexport const RISE_PX = 12;\n\n/** Rise distance for the condensed bar — it comes from nearer still. */\nexport const BAR_RISE_PX = -8;\n\n/** Press depth for small controls. */\nexport const PRESS_SCALE = 0.96;\n\n/** Press depth for rows and full-size surfaces — shallower. */\nexport const PRESS_SCALE_ROW = 0.97;\n\n/** The blur budget — one breath of blur, everywhere it is used. */\nexport const BLUR_PX = 1;\n\n/**\n * The crossfade recipe — fade with a breath of blur, both ways. Spread\n * onto a motion element inside `AnimatePresence`:\n *\n * <motion.div {...fadeThroughBlur(reduceMotion)} />\n *\n * Under reduced motion the swap is instant and never blurs.\n */\nexport function fadeThroughBlur(reduceMotion?: boolean | null) {\n const away = reduceMotion ? \"blur(0px)\" : `blur(${BLUR_PX}px)`;\n return {\n initial: { opacity: 0, filter: away },\n animate: { opacity: 1, filter: \"blur(0px)\" },\n exit: { opacity: 0, filter: away },\n transition: reduceMotion ? ({ duration: 0 } as const) : FADE_SWAP,\n } as const;\n}\n\n/**\n * The entrance recipe — rise `RISE_PX` on `SPRING_ENTRANCE` while\n * `FADE_ENTRANCE` brings the ink. What `Stack` and `Reveal` do; spread it\n * onto a motion element for content that should arrive the same way.\n */\nexport function riseIn(reduceMotion?: boolean | null) {\n return {\n initial: reduceMotion ? false : ({ opacity: 0, y: RISE_PX } as const),\n animate: { opacity: 1, y: 0 } as const,\n transition: { y: SPRING_ENTRANCE, opacity: FADE_ENTRANCE } as const,\n } as const;\n}\n"],"mappings":";AAqBA,IAAa,IAAkB;AAAA,EAC7B,MAAM;AAAA,EACN,WAAW;AAAA,EACX,SAAS;AACX,GAOa,IAAgB;AAAA,EAC3B,MAAM;AAAA,EACN,WAAW;AAAA,EACX,SAAS;AACX,GAMa,IAAe;AAAA,EAC1B,MAAM;AAAA,EACN,WAAW;AAAA,EACX,SAAS;AAAA,EACT,MAAM;AACR,GAGa,IAAqB;AAAA,EAChC,MAAM;AAAA,EACN,WAAW;AAAA,EACX,SAAS;AAAA,EACT,MAAM;AACR,GAGa,IAAsB;AAAA,EACjC,MAAM;AAAA,EACN,WAAW;AAAA,EACX,SAAS;AAAA,EACT,MAAM;AACR,GAGa,IAAgB;AAAA,EAAE,UAAU;AAAA,EAAM,MAAM;AAAU,GAMlD,IAAY;AAAA,EAAE,UAAU;AAAA,EAAK,MAAM;AAAU,GAQ7C,IAAgB;AAAA,EAAE,UAAU;AAAA,EAAK,MAAM;AAAS,GAGhD,IAAW,oCAGX,IAAa,kCAGb,IAAU,IAGV,IAAc,IAGd,IAAc,MAGd,IAAkB,MAGlB,IAAU;AAUvB,SAAgB,EAAgB,GAA+B;AAC7D,QAAM,IAAO,IAAe,cAAc;AAC1C,SAAO;AAAA,IACL,SAAS;AAAA,MAAE,SAAS;AAAA,MAAG,QAAQ;AAAA,IAAK;AAAA,IACpC,SAAS;AAAA,MAAE,SAAS;AAAA,MAAG,QAAQ;AAAA,IAAY;AAAA,IAC3C,MAAM;AAAA,MAAE,SAAS;AAAA,MAAG,QAAQ;AAAA,IAAK;AAAA,IACjC,YAAY,IAAgB,EAAE,UAAU,EAAE,IAAc;AAAA,EAC1D;AACF;AAOA,SAAgB,EAAO,GAA+B;AACpD,SAAO;AAAA,IACL,SAAS,IAAe,KAAS;AAAA,MAAE,SAAS;AAAA,MAAG,GAAA;AAAA,IAAW;AAAA,IAC1D,SAAS;AAAA,MAAE,SAAS;AAAA,MAAG,GAAG;AAAA,IAAE;AAAA,IAC5B,YAAY;AAAA,MAAE,GAAG;AAAA,MAAiB,SAAS;AAAA,IAAc;AAAA,EAC3D;AACF"}
1
+ {"version":3,"file":"motion.js","names":[],"sources":["../src/motion/index.ts"],"sourcesContent":["/**\n * The motion vocabulary — every animation in Pho speaks it. Five springs,\n * three timings, two CSS eases, and a handful of distances cover the\n * system; components import from here and add nothing of their own.\n *\n * The grammar:\n * - **Arrive** on `SPRING_ENTRANCE` with `FADE_ENTRANCE` — content\n * surfaces, it doesn't slide in.\n * - **Swap** on `FADE_SWAP`, displacement on `TRAVEL_LINEAR` — crossfades\n * ease out, travel is linear.\n * - **Press** on the press springs — deeper mass for bigger surfaces.\n * - **Follow** on `SPRING_SETTLE` — heights and reflows chase content.\n */\n\n/**\n * Pages arrive on this — the `Stack` entrance, `Reveal`, `Title` / `Header`\n * enter, the Title ↔ Back morph, `Alert` / `Footer` height reveals.\n * Measured off a 60fps iOS push: ~330ms, a long gentle glide, everything\n * co-landing; essentially critically damped (overshoot would flash\n * clipped content).\n */\nexport const SPRING_ENTRANCE = {\n type: \"spring\",\n stiffness: 400,\n damping: 40,\n} as const;\n\n/**\n * Layout follows content on this — `AnimatedHeight`, a command palette's\n * rows gliding into new places. Stiffer than the entrance: reflow should\n * settle before it reads as motion.\n */\nexport const SPRING_SETTLE = {\n type: \"spring\",\n stiffness: 640,\n damping: 50,\n} as const;\n\n/**\n * The press pulse for full-size surfaces — `Button`, a sidebar row.\n * Framer source: `spring-physics 200 30 0.1`.\n */\nexport const SPRING_PRESS = {\n type: \"spring\",\n stiffness: 200,\n damping: 30,\n mass: 0.1,\n} as const;\n\n/** The press pulse for small controls — toggles, checks; quick and light. */\nexport const SPRING_PRESS_QUICK = {\n type: \"spring\",\n stiffness: 700,\n damping: 32,\n mass: 0.06,\n} as const;\n\n/** The press pulse for inline triggers — a `Select` sitting in text. */\nexport const SPRING_PRESS_INLINE = {\n type: \"spring\",\n stiffness: 1100,\n damping: 40,\n mass: 0.04,\n} as const;\n\n/** The fade that rides `SPRING_ENTRANCE` — spans most of the glide. */\nexport const FADE_ENTRANCE = { duration: 0.25, ease: \"easeOut\" } as const;\n\n/**\n * The swap — crossfading faces, a condensed bar arriving, a saved word,\n * an aside changing pages. Fades ease out.\n */\nexport const FADE_SWAP = { duration: 0.2, ease: \"easeOut\" } as const;\n\n/**\n * Displacement — a bar's rise, a drawer's scope swap. Travel is linear:\n * the eye reads speed changes as personality, and furniture has none.\n * (A search box's width is a reflow, not travel: it rides the page\n * spring, as a menu opens.)\n */\nexport const TRAVEL_LINEAR = { duration: 0.2, ease: \"linear\" } as const;\n\n/** CSS pop-in for floating layers (menus, select popups) — slight overshoot. */\nexport const EASE_POP = \"cubic-bezier(0.34, 1.3, 0.64, 1)\";\n\n/** CSS stack glide — toasts trading places (Kumo's curve). */\nexport const EASE_STACK = \"cubic-bezier(0.22, 1, 0.36, 1)\";\n\n/** Rise distance for entrances — content surfaces from just below. */\nexport const RISE_PX = 12;\n\n/** Rise distance for the condensed bar — it comes from nearer still. */\nexport const BAR_RISE_PX = -8;\n\n/**\n * How far a view that widens starts inside its frame, and one that\n * narrows starts outside it — a chart's range switch. A tenth: enough to\n * read as the picture opening or closing, never as a zoom.\n */\nexport const SPAN_SCALE = 0.9;\n\n/** Press depth for small controls. */\nexport const PRESS_SCALE = 0.96;\n\n/** Press depth for rows and full-size surfaces — shallower. */\nexport const PRESS_SCALE_ROW = 0.97;\n\n/** The blur budget — one breath of blur, everywhere it is used. */\nexport const BLUR_PX = 1;\n\n/**\n * The crossfade recipe — fade with a breath of blur, both ways. Spread\n * onto a motion element inside `AnimatePresence`:\n *\n * <motion.div {...fadeThroughBlur(reduceMotion)} />\n *\n * Under reduced motion the swap is instant and never blurs.\n */\nexport function fadeThroughBlur(reduceMotion?: boolean | null) {\n const away = reduceMotion ? \"blur(0px)\" : `blur(${BLUR_PX}px)`;\n return {\n initial: { opacity: 0, filter: away },\n animate: { opacity: 1, filter: \"blur(0px)\" },\n exit: { opacity: 0, filter: away },\n transition: reduceMotion ? ({ duration: 0 } as const) : FADE_SWAP,\n } as const;\n}\n\n/**\n * The entrance recipe — rise `RISE_PX` on `SPRING_ENTRANCE` while\n * `FADE_ENTRANCE` brings the ink. What `Stack` and `Reveal` do; spread it\n * onto a motion element for content that should arrive the same way.\n */\nexport function riseIn(reduceMotion?: boolean | null) {\n return {\n initial: reduceMotion ? false : ({ opacity: 0, y: RISE_PX } as const),\n animate: { opacity: 1, y: 0 } as const,\n transition: { y: SPRING_ENTRANCE, opacity: FADE_ENTRANCE } as const,\n } as const;\n}\n"],"mappings":";AAqBA,IAAa,IAAkB;AAAA,EAC7B,MAAM;AAAA,EACN,WAAW;AAAA,EACX,SAAS;AACX,GAOa,IAAgB;AAAA,EAC3B,MAAM;AAAA,EACN,WAAW;AAAA,EACX,SAAS;AACX,GAMa,IAAe;AAAA,EAC1B,MAAM;AAAA,EACN,WAAW;AAAA,EACX,SAAS;AAAA,EACT,MAAM;AACR,GAGa,IAAqB;AAAA,EAChC,MAAM;AAAA,EACN,WAAW;AAAA,EACX,SAAS;AAAA,EACT,MAAM;AACR,GAGa,IAAsB;AAAA,EACjC,MAAM;AAAA,EACN,WAAW;AAAA,EACX,SAAS;AAAA,EACT,MAAM;AACR,GAGa,IAAgB;AAAA,EAAE,UAAU;AAAA,EAAM,MAAM;AAAU,GAMlD,IAAY;AAAA,EAAE,UAAU;AAAA,EAAK,MAAM;AAAU,GAQ7C,IAAgB;AAAA,EAAE,UAAU;AAAA,EAAK,MAAM;AAAS,GAGhD,IAAW,oCAGX,IAAa,kCAGb,IAAU,IAGV,IAAc,IAOd,IAAa,KAGb,IAAc,MAGd,IAAkB,MAGlB,IAAU;AAUvB,SAAgB,EAAgB,GAA+B;AAC7D,QAAM,IAAO,IAAe,cAAc;AAC1C,SAAO;AAAA,IACL,SAAS;AAAA,MAAE,SAAS;AAAA,MAAG,QAAQ;AAAA,IAAK;AAAA,IACpC,SAAS;AAAA,MAAE,SAAS;AAAA,MAAG,QAAQ;AAAA,IAAY;AAAA,IAC3C,MAAM;AAAA,MAAE,SAAS;AAAA,MAAG,QAAQ;AAAA,IAAK;AAAA,IACjC,YAAY,IAAgB,EAAE,UAAU,EAAE,IAAc;AAAA,EAC1D;AACF;AAOA,SAAgB,EAAO,GAA+B;AACpD,SAAO;AAAA,IACL,SAAS,IAAe,KAAS;AAAA,MAAE,SAAS;AAAA,MAAG,GAAA;AAAA,IAAW;AAAA,IAC1D,SAAS;AAAA,MAAE,SAAS;AAAA,MAAG,GAAG;AAAA,IAAE;AAAA,IAC5B,YAAY;AAAA,MAAE,GAAG;AAAA,MAAiB,SAAS;AAAA,IAAc;AAAA,EAC3D;AACF"}
@@ -51,9 +51,9 @@ export * from "@base-ui/react/form";
51
51
  export * from "@base-ui/react/menu";
52
52
  export * from "@base-ui/react/checkbox";
53
53
  export * from "@base-ui/react/checkbox-group";
54
+ export * from "@base-ui/react/toggle";
54
55
  export * from "@base-ui/react/tooltip";
55
56
  export * from "@base-ui/react/toast";
56
- export * from "@base-ui/react/toggle";
57
57
  export * from "@base-ui/react/accordion";
58
58
  export * from "@base-ui/react/alert-dialog";
59
59
  export * from "@base-ui/react/autocomplete";
@@ -1,6 +1,6 @@
1
1
  "use client";
2
- import { a as s } from "../chunks/data-table-Mog6m3d9.js";
3
- import { a as E, c as a, d as C, f as S, i as I, l as e, m as o, n as B, o as P, p as N, r, s as t, t as D, u as R } from "../chunks/basic-page-BUmntB7L.js";
2
+ import { i as s } from "../chunks/data-table-B1dmrN6r.js";
3
+ import { a as E, c as a, d as C, f as S, i as I, l as e, m as o, n as B, o as P, p as N, r, s as t, t as D, u as R } from "../chunks/basic-page-DzT8yecB.js";
4
4
  export {
5
5
  D as AUTO_SAVE_DELAY_MS,
6
6
  B as BASIC_PAGE_CALLOUT,
@@ -1,9 +1,17 @@
1
1
  import { ChartBaseProps, ChartDatum } from '../chart/types';
2
+ /**
3
+ * BarChart — buckets over time as columns: messages a day, requests an
4
+ * hour, deliveries. One series, several side by side, or `stacked` for
5
+ * parts of a whole (inbound / outbound, successful / failed).
6
+ *
7
+ * A preset on `Chart`: the `series` array becomes one `Chart.Bar` per
8
+ * entry, in order. The marks, axes, tooltip and legend are the root's.
9
+ */
2
10
  export interface BarChartProps<T extends ChartDatum> extends ChartBaseProps<T> {
3
11
  /** Stack the series in one column per bucket, first series at the bottom. */
4
12
  stacked?: boolean;
5
13
  }
6
- export declare function BarChart<T extends ChartDatum>({ data, series, label, description, height, width: fixedWidth, valueFormat, timeFormat, locale, legend, baseline, stacked, breakdownTitle, loading, empty, className, ...props }: BarChartProps<T>): import("react").JSX.Element;
14
+ export declare function BarChart<T extends ChartDatum>({ series, ...props }: BarChartProps<T>): import("react").JSX.Element;
7
15
  export declare namespace BarChart {
8
16
  var displayName: string;
9
17
  }
@@ -0,0 +1,25 @@
1
+ import { ChartBarProps, ChartDatum, ChartLineProps, ChartProps } from './types';
2
+ /**
3
+ * `Chart.Bar` — one bar series. Renders nothing itself: the root reads
4
+ * its props and draws the columns among the other parts.
5
+ */
6
+ export declare function ChartBar(_props: ChartBarProps): null;
7
+ export declare namespace ChartBar {
8
+ var displayName: string;
9
+ var chartPart: "bar";
10
+ }
11
+ /**
12
+ * `Chart.Line` — one line series. Renders nothing itself: the root reads
13
+ * its props and draws the line among the other parts.
14
+ */
15
+ export declare function ChartLine(_props: ChartLineProps): null;
16
+ export declare namespace ChartLine {
17
+ var displayName: string;
18
+ var chartPart: "line";
19
+ }
20
+ export declare function Chart<T extends ChartDatum>({ data, children, label, description, height, width: fixedWidth, valueFormat, timeFormat, locale, legend, baseline, stacked, breakdownTitle, loading, empty, className, ...props }: ChartProps<T>): import("react").JSX.Element;
21
+ export declare namespace Chart {
22
+ var displayName: string;
23
+ var Bar: typeof ChartBar;
24
+ var Line: typeof ChartLine;
25
+ }
@@ -1,4 +1,4 @@
1
- import { ChartDatum, ChartSeries } from './types';
1
+ import { ChartDatum } from './types';
2
2
  /**
3
3
  * The default number format: grouped digits for a value someone reads
4
4
  * ("12,001"), compact for an axis tick ("12K") where room is short.
@@ -8,11 +8,15 @@ export declare function numberFormatter(locale: string | undefined, compact?: bo
8
8
  export declare function readValue(datum: object, key: string): number | null;
9
9
  /** "Inbound and outbound", "p50, p90 and p99". */
10
10
  export declare function joinNames(names: ReadonlyArray<string>): string;
11
- interface DescribeOptions<T extends ChartDatum> {
12
- data: ReadonlyArray<T>;
13
- series: ReadonlyArray<ChartSeries<T>>;
11
+ export interface DescribedSeries {
12
+ key: string;
13
+ label: string;
14
14
  /** Bars sum to a total; lines run between a low and a high. */
15
15
  kind: "bar" | "line";
16
+ }
17
+ interface DescribeOptions<T extends ChartDatum> {
18
+ data: ReadonlyArray<T>;
19
+ series: ReadonlyArray<DescribedSeries>;
16
20
  valueFormat: (value: number) => string;
17
21
  timeFormat: (date: Date) => string;
18
22
  }
@@ -21,5 +25,5 @@ interface DescribeOptions<T extends ChartDatum> {
21
25
  * what range, and for each one the total (bars) or the low and high
22
26
  * (lines), plus where it peaked.
23
27
  */
24
- export declare function describeChart<T extends ChartDatum>({ data, series, kind, valueFormat, timeFormat, }: DescribeOptions<T>): string;
28
+ export declare function describeChart<T extends ChartDatum>({ data, series, valueFormat, timeFormat, }: DescribeOptions<T>): string;
25
29
  export {};
@@ -1,8 +1,11 @@
1
1
  /**
2
- * Chart foundation — what `BarChart` and `LineChart` share and a page may
3
- * want on its own: the data contract, the series colour resolver, and the
4
- * legend. Axes, scales, the shell and the tooltip stay internal.
2
+ * Chart — the composable root on @visx/xychart: the frame, the scales,
3
+ * the axes, the tooltip and the legend, drawn around `Chart.Bar` and
4
+ * `Chart.Line` parts. `BarChart` and `LineChart` are presets on it. The
5
+ * series colour resolver and the legend are here too for a page that
6
+ * wants a swatch of its own.
5
7
  */
6
- export type { ChartBaseProps, ChartBreakdownItem, ChartColor, ChartDatum, ChartSeries, ChartValueKey, } from './types';
8
+ export { Chart, ChartBar, ChartLine } from './chart';
9
+ export type { ChartBarProps, ChartBaseProps, ChartBreakdownItem, ChartColor, ChartCurve, ChartDatum, ChartLineProps, ChartProps, ChartSeries, ChartValueKey, } from './types';
7
10
  export { chartColor, CHART_SLOTS } from './color';
8
11
  export { ChartLegend, ChartSwatch, type ChartLegendItem, type ChartLegendProps, type ChartSwatchKind, type ChartSwatchProps, } from './legend';
@@ -1,10 +1,9 @@
1
1
  /** Epoch milliseconds for a datum's `x`. */
2
2
  export declare function toTime(x: Date | number): number;
3
- /** A linear map from `domain` to `range`; a flat domain maps to its start. */
4
- export declare function linearScale(domain: readonly [number, number], range: readonly [number, number]): (value: number) => number;
5
3
  /**
6
4
  * A y domain on round numbers with three to five ticks, the last tick on
7
5
  * or above the data's high end so the top of the plot is labelled.
6
+ * `count` is the tick count that produced them, for a scale's `.ticks()`.
8
7
  *
9
8
  * When `integer` is set — or when both ends are whole numbers — the step
10
9
  * stays ≥ 1 so a count axis never labels 0.5 / 1.5.
@@ -14,6 +13,7 @@ export declare function niceLinearDomain(min: number, max: number, options?: {
14
13
  }): {
15
14
  domain: [number, number];
16
15
  ticks: number[];
16
+ count: number;
17
17
  };
18
18
  /** The gap between buckets, in ms — the median step, so one hole doesn't skew it. */
19
19
  export declare function bucketSpan(times: ReadonlyArray<number>): number;