@baseline-ui/mcp 0.58.0 → 0.60.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +4 -0
- package/dist/index.cjs +813 -46
- package/dist/index.js +813 -46
- package/package.json +1 -1
- package/sbom.json +1 -1
package/dist/index.cjs
CHANGED
|
@@ -8,7 +8,662 @@
|
|
|
8
8
|
* This notice may not be removed from this file.
|
|
9
9
|
*
|
|
10
10
|
*/
|
|
11
|
-
var o={
|
|
11
|
+
var o={BarChart:{id:"charts-barchart",breadcrumb:"Charts/BarChart",importStatement:`import { BarChart } from "@baseline-ui/charts";
|
|
12
|
+
import { Box } from "@baseline-ui/core";`,description:"The `BarChart` component renders a responsive bar chart for categorical data. It is built on top of [Recharts](https://recharts.org/) and styled with Baseline UI design tokens so it picks up the active theme automatically.",documentation:`The \`BarChart\` component renders a responsive bar chart for categorical data. It is built on top of [Recharts](https://recharts.org/) and styled with Baseline UI design tokens so it picks up the active theme automatically.
|
|
13
|
+
|
|
14
|
+
* Renders one or more bar series from a single dataset, keyed by \`xAxisDataKey\` and the per-bar \`dataKey\`.
|
|
15
|
+
* Themed axes, grid, tooltip, and legend styled with Baseline UI tokens \u2014 adapts to light, dark, and high-contrast themes.
|
|
16
|
+
* Default bar colors cycle through theme support colors (\`info\`, \`success\`, \`warning\`, \`error\`); each bar can override with a custom \`color\`.
|
|
17
|
+
* Toggleable tooltip, legend, grid, and axes for compact layouts.
|
|
18
|
+
* Grouped bars by default, with an opt-in \`stacked\` variant. The topmost bar in each stack keeps its rounded corners; inner segments stay flat.
|
|
19
|
+
* Responsive by default \u2014 fills the parent container width while preserving the configured \`height\`.
|
|
20
|
+
* Built-in keyboard navigation across data points via Recharts' accessibility layer.
|
|
21
|
+
|
|
22
|
+
\`\`\`jsx
|
|
23
|
+
import { BarChart } from "@baseline-ui/charts";
|
|
24
|
+
|
|
25
|
+
const data = [
|
|
26
|
+
{ year: "2020", revenue: 14_000_000, expenses: 12_000_000 },
|
|
27
|
+
{ year: "2021", revenue: 24_000_000, expenses: 6_000_000 },
|
|
28
|
+
{ year: "2022", revenue: 26_000_000, expenses: 13_000_000 },
|
|
29
|
+
];
|
|
30
|
+
|
|
31
|
+
<BarChart
|
|
32
|
+
data={data}
|
|
33
|
+
xAxisDataKey="year"
|
|
34
|
+
bars={[
|
|
35
|
+
{ dataKey: "revenue", name: "Revenue" },
|
|
36
|
+
{ dataKey: "expenses", name: "Expenses" },
|
|
37
|
+
]}
|
|
38
|
+
/>;
|
|
39
|
+
\`\`\`
|
|
40
|
+
|
|
41
|
+
The default variant renders bar series side-by-side within each X-axis category. Use \`showLegend\` to also render a legend above the chart.
|
|
42
|
+
|
|
43
|
+
\`\`\`jsx
|
|
44
|
+
<BarChart
|
|
45
|
+
data={data}
|
|
46
|
+
xAxisDataKey="year"
|
|
47
|
+
bars={[
|
|
48
|
+
{ dataKey: "revenue", name: "Revenue" },
|
|
49
|
+
{ dataKey: "expenses", name: "Expenses" },
|
|
50
|
+
]}
|
|
51
|
+
showLegend
|
|
52
|
+
/>
|
|
53
|
+
\`\`\`
|
|
54
|
+
|
|
55
|
+
Set \`variant="stacked"\` to stack bars on top of each other within each category. The topmost bar keeps its rounded top corners; inner segments are flat so the stack reads as a single continuous bar.
|
|
56
|
+
|
|
57
|
+
\`\`\`jsx
|
|
58
|
+
<BarChart
|
|
59
|
+
variant="stacked"
|
|
60
|
+
data={data}
|
|
61
|
+
xAxisDataKey="year"
|
|
62
|
+
bars={[
|
|
63
|
+
{ dataKey: "revenue", name: "Revenue" },
|
|
64
|
+
{ dataKey: "expenses", name: "Expenses" },
|
|
65
|
+
]}
|
|
66
|
+
showLegend
|
|
67
|
+
/>
|
|
68
|
+
\`\`\`
|
|
69
|
+
|
|
70
|
+
For mixed grouped/stacked layouts, set a custom \`stackId\` per bar \u2014 bars sharing the same \`stackId\` are stacked together; bars with different (or no) \`stackId\` are grouped beside the stack.
|
|
71
|
+
|
|
72
|
+
Pass a single entry in \`bars\` to render a single-series chart.
|
|
73
|
+
|
|
74
|
+
\`\`\`jsx
|
|
75
|
+
<BarChart
|
|
76
|
+
data={data}
|
|
77
|
+
xAxisDataKey="year"
|
|
78
|
+
bars={[{ dataKey: "revenue", name: "Revenue" }]}
|
|
79
|
+
/>
|
|
80
|
+
\`\`\`
|
|
81
|
+
|
|
82
|
+
Default colors cycle through \`info\` \u2192 \`success\` \u2192 \`warning\` \u2192 \`error\` and wrap modulo four. Provide a \`color\` per bar to override the default.
|
|
83
|
+
|
|
84
|
+
\`\`\`jsx
|
|
85
|
+
<BarChart
|
|
86
|
+
data={data}
|
|
87
|
+
xAxisDataKey="year"
|
|
88
|
+
bars={[
|
|
89
|
+
{ dataKey: "revenue", name: "Revenue" },
|
|
90
|
+
{ dataKey: "expenses", name: "Expenses" },
|
|
91
|
+
{ dataKey: "profit", name: "Profit" },
|
|
92
|
+
{ dataKey: "tax", name: "Tax" },
|
|
93
|
+
{ dataKey: "fees", name: "Fees" },
|
|
94
|
+
]}
|
|
95
|
+
showLegend
|
|
96
|
+
/>
|
|
97
|
+
\`\`\`
|
|
98
|
+
|
|
99
|
+
Override the default theme colors by passing \`color\` per bar.
|
|
100
|
+
|
|
101
|
+
\`\`\`jsx
|
|
102
|
+
<BarChart
|
|
103
|
+
data={data}
|
|
104
|
+
xAxisDataKey="year"
|
|
105
|
+
bars={[
|
|
106
|
+
{ dataKey: "revenue", name: "Revenue", color: "#7c3aed" },
|
|
107
|
+
{ dataKey: "expenses", name: "Expenses", color: "#f59e0b" },
|
|
108
|
+
]}
|
|
109
|
+
showLegend
|
|
110
|
+
/>
|
|
111
|
+
\`\`\`
|
|
112
|
+
|
|
113
|
+
\`barSize\` controls the bar width in pixels (default \`12\`). \`barRadius\` controls the rounded top-corner radius in pixels (default \`2\`).
|
|
114
|
+
|
|
115
|
+
\`\`\`jsx
|
|
116
|
+
<BarChart
|
|
117
|
+
data={data}
|
|
118
|
+
xAxisDataKey="year"
|
|
119
|
+
bars={[...]}
|
|
120
|
+
barSize={24}
|
|
121
|
+
/>
|
|
122
|
+
\`\`\`
|
|
123
|
+
|
|
124
|
+
\`showTooltip\`, \`showGrid\`, \`showXAxis\`, and \`showYAxis\` toggle the corresponding chart chrome individually. They all default to \`true\`.
|
|
125
|
+
|
|
126
|
+
\`\`\`jsx
|
|
127
|
+
<BarChart
|
|
128
|
+
data={data}
|
|
129
|
+
xAxisDataKey="year"
|
|
130
|
+
bars={[...]}
|
|
131
|
+
showXAxis={false}
|
|
132
|
+
showYAxis={false}
|
|
133
|
+
showGrid={false}
|
|
134
|
+
/>
|
|
135
|
+
\`\`\`
|
|
136
|
+
|
|
137
|
+
The chart surface is keyboard-focusable. When focused via keyboard, the surface shows a focus ring and arrow keys move an indicator across data points, opening the tooltip at each step.
|
|
138
|
+
|
|
139
|
+
| Key | Function |
|
|
140
|
+
| ------------- | --------------------------------------------------------------------------- |
|
|
141
|
+
| \`Tab\` | Moves focus to the chart surface. |
|
|
142
|
+
| \`Arrow Right\` | Advances the active data point one step to the right and shows the tooltip. |
|
|
143
|
+
| \`Arrow Left\` | Advances the active data point one step to the left and shows the tooltip. |
|
|
144
|
+
| \`Escape\` | Dismisses the tooltip and clears the active data point. |
|
|
145
|
+
|
|
146
|
+
BarChart shares its legend, tooltip, and surface markup with every other chart in the package. The \`BaselineUI-Chart-*\` selectors are stable shared hooks; the kind-specific \`BaselineUI-BarChart\` class lets you scope styles to bar charts only. Internal Recharts class names are not part of the public API.
|
|
147
|
+
|
|
148
|
+
| Selector | Description |
|
|
149
|
+
| ---------------------------------------------- | ------------------------------------------------------------------- |
|
|
150
|
+
| \`.BaselineUI-BarChart\` | The bar-chart root identifier. |
|
|
151
|
+
| \`.BaselineUI-BarChart[data-variant="default"]\` | Targets only the default variant. |
|
|
152
|
+
| \`.BaselineUI-BarChart[data-variant="stacked"]\` | Targets only the stacked variant. |
|
|
153
|
+
| \`.BaselineUI-Chart-Surface\` | The chart drawing area that wraps the SVG. |
|
|
154
|
+
| \`.BaselineUI-Chart-Legend\` | The legend list element. Only rendered when \`showLegend\` is \`true\`. |
|
|
155
|
+
| \`.BaselineUI-Chart-LegendItem\` | A single legend entry \u2014 one per series. |
|
|
156
|
+
| \`.BaselineUI-Chart-LegendSwatch\` | The colored swatch in a legend entry. |
|
|
157
|
+
| \`.BaselineUI-Chart-Tooltip\` | The hover/focus tooltip container. |
|
|
158
|
+
| \`.BaselineUI-Chart-TooltipItem\` | A single series entry in the tooltip. |
|
|
159
|
+
| \`.BaselineUI-Chart-TooltipSwatch\` | The colored swatch in a tooltip entry. |`,props:`interface BarChartProps {
|
|
160
|
+
/**
|
|
161
|
+
* Additional class name for the chart root.
|
|
162
|
+
*/
|
|
163
|
+
className?: string
|
|
164
|
+
/**
|
|
165
|
+
* Additional inline styles for the chart root.
|
|
166
|
+
*/
|
|
167
|
+
style?: CSSProperties
|
|
168
|
+
/**
|
|
169
|
+
* Chart width. @default "100%"
|
|
170
|
+
*/
|
|
171
|
+
width?: number | \`\${number}%\`
|
|
172
|
+
/**
|
|
173
|
+
* Chart height. @default 300
|
|
174
|
+
*/
|
|
175
|
+
height?: number
|
|
176
|
+
/**
|
|
177
|
+
* Whether to show the tooltip on hover. @default true
|
|
178
|
+
*/
|
|
179
|
+
showTooltip?: boolean
|
|
180
|
+
/**
|
|
181
|
+
* Whether to show the legend.
|
|
182
|
+
*/
|
|
183
|
+
showLegend?: boolean
|
|
184
|
+
/**
|
|
185
|
+
* Defaults to the ambient \`I18nProvider\` locale direction.
|
|
186
|
+
*/
|
|
187
|
+
dir?: "ltr" | "rtl"
|
|
188
|
+
/**
|
|
189
|
+
* Whether to show the grid lines. @default true
|
|
190
|
+
*/
|
|
191
|
+
showGrid?: boolean
|
|
192
|
+
/**
|
|
193
|
+
* Whether to show the X axis. @default true
|
|
194
|
+
*/
|
|
195
|
+
showXAxis?: boolean
|
|
196
|
+
/**
|
|
197
|
+
* Whether to show the Y axis. @default true
|
|
198
|
+
*/
|
|
199
|
+
showYAxis?: boolean
|
|
200
|
+
/**
|
|
201
|
+
* The data array to render. Each item is an object keyed by \`xAxisDataKey\` and bar \`dataKey\` values.
|
|
202
|
+
*/
|
|
203
|
+
data: unknown
|
|
204
|
+
/**
|
|
205
|
+
* Configuration for each bar series to render.
|
|
206
|
+
*/
|
|
207
|
+
bars: unknown
|
|
208
|
+
/**
|
|
209
|
+
* The data key for the X axis.
|
|
210
|
+
*/
|
|
211
|
+
xAxisDataKey: string
|
|
212
|
+
/**
|
|
213
|
+
* Visual variant. \`"stacked"\` stacks every series on top of each other; the
|
|
214
|
+
* default groups them side-by-side. Per-bar \`stackId\` overrides the variant
|
|
215
|
+
* default for that bar.
|
|
216
|
+
* @default "default"
|
|
217
|
+
*/
|
|
218
|
+
variant?: "default" | "stacked"
|
|
219
|
+
/**
|
|
220
|
+
* Fixed width of each bar in pixels. @default 12
|
|
221
|
+
*/
|
|
222
|
+
barSize?: number
|
|
223
|
+
/**
|
|
224
|
+
* Maximum gap in pixels between adjacent bars within the same X-axis
|
|
225
|
+
* category. Falls back toward a 1px floor when there isn't enough room
|
|
226
|
+
* to fit every bar at the requested gap.
|
|
227
|
+
* @default 4
|
|
228
|
+
*/
|
|
229
|
+
barGap?: number
|
|
230
|
+
/**
|
|
231
|
+
* Border radius applied to the top of each bar in pixels. @default 2
|
|
232
|
+
*/
|
|
233
|
+
barRadius?: number
|
|
234
|
+
}`,stories:{usage:[{id:"charts-barchart--basic",name:"Basic",snippet:`const Basic = () => <BarChart
|
|
235
|
+
data={yearlyData}
|
|
236
|
+
xAxisDataKey="year"
|
|
237
|
+
bars={[
|
|
238
|
+
{ dataKey: "revenue", name: "Revenue" },
|
|
239
|
+
{ dataKey: "expenses", name: "Expenses" },
|
|
240
|
+
]}
|
|
241
|
+
height={320} />;`},{id:"charts-barchart--single-series",name:"Single Series",snippet:`const SingleSeries = () => <BarChart
|
|
242
|
+
data={yearlyData}
|
|
243
|
+
xAxisDataKey="year"
|
|
244
|
+
bars={[{ dataKey: "revenue", name: "Revenue" }]}
|
|
245
|
+
height={320} />;`},{id:"charts-barchart--with-legend",name:"With Legend",snippet:`const WithLegend = () => <BarChart
|
|
246
|
+
data={yearlyData}
|
|
247
|
+
xAxisDataKey="year"
|
|
248
|
+
bars={[
|
|
249
|
+
{ dataKey: "revenue", name: "Revenue" },
|
|
250
|
+
{ dataKey: "expenses", name: "Expenses" },
|
|
251
|
+
]}
|
|
252
|
+
height={320}
|
|
253
|
+
showLegend />;`},{id:"charts-barchart--stacked",name:"Stacked",snippet:`const Stacked = () => <BarChart
|
|
254
|
+
data={yearlyData}
|
|
255
|
+
xAxisDataKey="year"
|
|
256
|
+
bars={[
|
|
257
|
+
{ dataKey: "revenue", name: "Revenue" },
|
|
258
|
+
{ dataKey: "expenses", name: "Expenses" },
|
|
259
|
+
]}
|
|
260
|
+
height={320}
|
|
261
|
+
variant="stacked"
|
|
262
|
+
showLegend />;`},{id:"charts-barchart--stacked-with-three-series",name:"Stacked With Three Series",snippet:`const StackedWithThreeSeries = () => <BarChart
|
|
263
|
+
data={yearlyData.map((row) => ({
|
|
264
|
+
...row,
|
|
265
|
+
profit: row.revenue - row.expenses,
|
|
266
|
+
}))}
|
|
267
|
+
xAxisDataKey="year"
|
|
268
|
+
bars={[
|
|
269
|
+
{ dataKey: "revenue", name: "Revenue" },
|
|
270
|
+
{ dataKey: "expenses", name: "Expenses" },
|
|
271
|
+
{ dataKey: "profit", name: "Profit" },
|
|
272
|
+
]}
|
|
273
|
+
height={320}
|
|
274
|
+
variant="stacked"
|
|
275
|
+
showLegend />;`},{id:"charts-barchart--custom-colors",name:"Custom Colors",snippet:`const CustomColors = () => <BarChart
|
|
276
|
+
data={yearlyData}
|
|
277
|
+
xAxisDataKey="year"
|
|
278
|
+
bars={[
|
|
279
|
+
{ dataKey: "revenue", name: "Revenue", color: "#7c3aed" },
|
|
280
|
+
{ dataKey: "expenses", name: "Expenses", color: "#f59e0b" },
|
|
281
|
+
]}
|
|
282
|
+
height={320}
|
|
283
|
+
showLegend />;`},{id:"charts-barchart--many-series",name:"Many Series",snippet:`const ManySeries = () => <BarChart
|
|
284
|
+
data={yearlyData.map((row) => ({
|
|
285
|
+
...row,
|
|
286
|
+
profit: row.revenue - row.expenses,
|
|
287
|
+
tax: Math.round(row.revenue * 0.18),
|
|
288
|
+
fees: Math.round(row.revenue * 0.05),
|
|
289
|
+
}))}
|
|
290
|
+
xAxisDataKey="year"
|
|
291
|
+
bars={[
|
|
292
|
+
{ dataKey: "revenue", name: "Revenue" },
|
|
293
|
+
{ dataKey: "expenses", name: "Expenses" },
|
|
294
|
+
{ dataKey: "profit", name: "Profit" },
|
|
295
|
+
{ dataKey: "tax", name: "Tax" },
|
|
296
|
+
{ dataKey: "fees", name: "Fees" },
|
|
297
|
+
]}
|
|
298
|
+
height={320}
|
|
299
|
+
showLegend />;`},{id:"charts-barchart--thicker-bars",name:"Thicker Bars",snippet:`const ThickerBars = () => <BarChart
|
|
300
|
+
data={yearlyData}
|
|
301
|
+
xAxisDataKey="year"
|
|
302
|
+
bars={[
|
|
303
|
+
{ dataKey: "revenue", name: "Revenue" },
|
|
304
|
+
{ dataKey: "expenses", name: "Expenses" },
|
|
305
|
+
]}
|
|
306
|
+
height={320}
|
|
307
|
+
barSize={24} />;`},{id:"charts-barchart--mixed-stacking",name:"Mixed Stacking",snippet:`const MixedStacking = () => <BarChart
|
|
308
|
+
data={yearlyData.map((row) => ({
|
|
309
|
+
...row,
|
|
310
|
+
other: Math.round(row.revenue * 0.15),
|
|
311
|
+
}))}
|
|
312
|
+
xAxisDataKey="year"
|
|
313
|
+
bars={[
|
|
314
|
+
{ dataKey: "revenue", name: "Revenue", stackId: "income" },
|
|
315
|
+
{ dataKey: "other", name: "Other income", stackId: "income" },
|
|
316
|
+
{ dataKey: "expenses", name: "Expenses" },
|
|
317
|
+
]}
|
|
318
|
+
height={320}
|
|
319
|
+
showLegend />;`},{id:"charts-barchart--hidden-axes",name:"Hidden Axes",snippet:`const HiddenAxes = () => <BarChart
|
|
320
|
+
data={yearlyData}
|
|
321
|
+
xAxisDataKey="year"
|
|
322
|
+
bars={[
|
|
323
|
+
{ dataKey: "revenue", name: "Revenue" },
|
|
324
|
+
{ dataKey: "expenses", name: "Expenses" },
|
|
325
|
+
]}
|
|
326
|
+
height={320}
|
|
327
|
+
showXAxis={false}
|
|
328
|
+
showYAxis={false}
|
|
329
|
+
showGrid={false} />;`}],implementation:`import { I18nProvider } from "@baseline-ui/core";
|
|
330
|
+
import React from "react";
|
|
331
|
+
|
|
332
|
+
import { BarChart } from "../BarChart";
|
|
333
|
+
|
|
334
|
+
import type { BarChartProps } from "../BarChart.types";
|
|
335
|
+
|
|
336
|
+
const data = [
|
|
337
|
+
{ year: "2020", revenue: 14_000_000 },
|
|
338
|
+
{ year: "2021", revenue: 24_000_000 },
|
|
339
|
+
{ year: "2022", revenue: 26_000_000 },
|
|
340
|
+
];
|
|
341
|
+
|
|
342
|
+
const bars = [{ dataKey: "revenue", name: "Revenue" }];
|
|
343
|
+
|
|
344
|
+
/**
|
|
345
|
+
* Wraps BarChart in a sized parent so the default \`width: "100%"\` resolves
|
|
346
|
+
* to a measurable size for layout-dependent assertions.
|
|
347
|
+
*/
|
|
348
|
+
export function SizedBarChart(
|
|
349
|
+
props: Partial<Pick<BarChartProps, "className" | "style">>,
|
|
350
|
+
) {
|
|
351
|
+
return (
|
|
352
|
+
<div style={{ width: 480, height: 300 }}>
|
|
353
|
+
<BarChart data={data} bars={bars} xAxisDataKey="year" {...props} />
|
|
354
|
+
</div>
|
|
355
|
+
);
|
|
356
|
+
}
|
|
357
|
+
|
|
358
|
+
/** Verifies ambient-locale RTL detection (no explicit \`dir\`). */
|
|
359
|
+
export function ArabicLocaleBarChart() {
|
|
360
|
+
return (
|
|
361
|
+
<I18nProvider locale="ar-EG">
|
|
362
|
+
<BarChart data={data} bars={bars} width={480} xAxisDataKey="year" />
|
|
363
|
+
</I18nProvider>
|
|
364
|
+
);
|
|
365
|
+
}
|
|
366
|
+
|
|
367
|
+
/** Verifies the explicit \`dir\` prop wins over the ambient locale. */
|
|
368
|
+
export function ArabicLocaleLtrOverrideBarChart() {
|
|
369
|
+
return (
|
|
370
|
+
<I18nProvider locale="ar-EG">
|
|
371
|
+
<BarChart
|
|
372
|
+
data={data}
|
|
373
|
+
bars={bars}
|
|
374
|
+
dir="ltr"
|
|
375
|
+
width={480}
|
|
376
|
+
xAxisDataKey="year"
|
|
377
|
+
/>
|
|
378
|
+
</I18nProvider>
|
|
379
|
+
);
|
|
380
|
+
}`},similarTo:[],figmaUrl:null},LineChart:{id:"charts-linechart",breadcrumb:"Charts/LineChart",importStatement:`import { Box } from "@baseline-ui/core";
|
|
381
|
+
import { LineChart } from "@baseline-ui/charts";`,description:"The `LineChart` component renders a responsive line chart for time series or other ordered data. It is built on top of [Recharts](https://recharts.org/) and styled with Baseline UI design tokens so it picks up the active theme automatically.",documentation:'The `LineChart` component renders a responsive line chart for time series or other ordered data. It is built on top of [Recharts](https://recharts.org/) and styled with Baseline UI design tokens so it picks up the active theme automatically.\n\n* Renders one or more lines from a single dataset, keyed by `xAxisDataKey` and the per-line `dataKey`.\n* Themed axes, grid, tooltip, and legend styled with Baseline UI tokens \u2014 adapts to light, dark, and high-contrast themes.\n* Default line colors cycle through theme support colors (`info`, `success`, `warning`, `error`); each line can override with a custom `color`.\n* Toggleable tooltip, legend, grid, and axes for compact or sparkline-style charts.\n* Configurable curve interpolation (`monotone`, `linear`, etc.) and per-line stroke width.\n* Responsive by default \u2014 fills the parent container width while preserving the configured `height`.\n* Built-in keyboard navigation across data points via Recharts\' accessibility layer.\n\n```jsx\nimport { LineChart } from "@baseline-ui/charts";\n\nconst data = [\n { month: "Jan", revenue: 4000, expenses: 2400 },\n { month: "Feb", revenue: 3000, expenses: 1398 },\n { month: "Mar", revenue: 5000, expenses: 3200 },\n];\n\n<LineChart\n data={data}\n xAxisDataKey="month"\n lines={[\n { dataKey: "revenue", name: "Revenue" },\n { dataKey: "expenses", name: "Expenses" },\n ]}\n/>;\n```\n\nThe default variant renders a full-width line chart with grid, axes, and tooltip enabled. Use `showLegend` to also render a legend above the chart.\n\n```jsx\n<LineChart\n data={data}\n xAxisDataKey="month"\n lines={[\n { dataKey: "revenue", name: "Revenue" },\n { dataKey: "expenses", name: "Expenses" },\n ]}\n showLegend\n/>\n```\n\nSet `variant="sparkline"` for a compact 40\xD720 inline trend indicator. Grid, axes, tooltip, and legend are hidden by default, the stroke is thinner, and chart margins are reduced to a 1px inset (just enough to prevent stroke clipping) so the line fills the box. Each chrome flag can still be re-enabled individually \u2014 for example, `showTooltip` re-enables the tooltip on a sparkline.\n\n```jsx\n<LineChart\n variant="sparkline"\n data={data}\n xAxisDataKey="month"\n lines={[{ dataKey: "revenue" }]}\n/>\n```\n\nPass a single entry in `lines` to render a single-series chart.\n\n```jsx\n<LineChart\n data={data}\n xAxisDataKey="month"\n lines={[{ dataKey: "revenue", name: "Revenue" }]}\n/>\n```\n\nDefault line colors cycle through `info` \u2192 `success` \u2192 `warning` \u2192 `error` and wrap modulo four. Provide a `color` per line to override the default.\n\n```jsx\n<LineChart\n data={data}\n xAxisDataKey="month"\n lines={[\n { dataKey: "revenue", name: "Revenue" },\n { dataKey: "expenses", name: "Expenses" },\n { dataKey: "profit", name: "Profit" },\n { dataKey: "tax", name: "Tax" },\n { dataKey: "fees", name: "Fees" },\n ]}\n showLegend\n/>\n```\n\nSet `dot` to `true` on a line to render a marker at each data point.\n\n```jsx\n<LineChart\n data={data}\n xAxisDataKey="month"\n lines={[\n { dataKey: "revenue", name: "Revenue", dot: true },\n { dataKey: "expenses", name: "Expenses", dot: true },\n ]}\n/>\n```\n\nThe `type` prop on each line controls the curve interpolation. The default is `monotone`; use `linear` for straight segments between points. Any [Recharts curve type](https://recharts.org/en-US/api/Line#type) is supported.\n\n```jsx\n<LineChart\n data={data}\n xAxisDataKey="month"\n lines={[\n { dataKey: "revenue", name: "Revenue", type: "linear" },\n { dataKey: "expenses", name: "Expenses", type: "linear" },\n ]}\n/>\n```\n\nOverride the default theme colors by passing `color` and `strokeWidth` per line.\n\n```jsx\n<LineChart\n data={data}\n xAxisDataKey="month"\n lines={[\n { dataKey: "revenue", name: "Revenue", color: "#7c3aed", strokeWidth: 3 },\n { dataKey: "expenses", name: "Expenses", color: "#f59e0b", strokeWidth: 3 },\n ]}\n showLegend\n/>\n```\n\n`showTooltip`, `showGrid`, `showXAxis`, and `showYAxis` toggle the corresponding chart chrome individually. They default to `true` for the default variant and `false` for the `sparkline` variant. Pass an explicit value to override the variant default.\n\n```jsx\n<LineChart\n data={data}\n xAxisDataKey="month"\n lines={[...]}\n showXAxis={false}\n showYAxis={false}\n showGrid={false}\n/>\n```\n\nThe chart surface is keyboard-focusable on the default variant. When focused via keyboard, the surface shows a focus ring and arrow keys move an indicator across data points, opening the tooltip at each step. The `sparkline` variant disables the accessibility layer and is not focusable.\n\n| Key | Function |\n| ------------- | --------------------------------------------------------------------------- |\n| `Tab` | Moves focus to the chart surface (default variant only). |\n| `Arrow Right` | Advances the active data point one step to the right and shows the tooltip. |\n| `Arrow Left` | Advances the active data point one step to the left and shows the tooltip. |\n| `Escape` | Dismisses the tooltip and clears the active data point. |\n\nThe `sparkline` variant disables the accessibility layer and is not keyboard-navigable.\n\nLineChart shares its legend, tooltip, and surface markup with every other chart in the package. The `BaselineUI-Chart-*` selectors are stable shared hooks; the kind-specific `BaselineUI-LineChart` class lets you scope styles to line charts only. Internal Recharts class names are not part of the public API.\n\n| Selector | Description |\n| ------------------------------------------------- | ------------------------------------------------------------------- |\n| `.BaselineUI-LineChart` | The line-chart root identifier. |\n| `.BaselineUI-LineChart[data-variant="default"]` | Targets only the default variant. |\n| `.BaselineUI-LineChart[data-variant="sparkline"]` | Targets only the sparkline variant. |\n| `.BaselineUI-Chart-Surface` | The chart drawing area that wraps the SVG. |\n| `.BaselineUI-Chart-Legend` | The legend list element. Only rendered when `showLegend` is `true`. |\n| `.BaselineUI-Chart-LegendItem` | A single legend entry \u2014 one per series. |\n| `.BaselineUI-Chart-LegendSwatch` | The colored swatch in a legend entry. |\n| `.BaselineUI-Chart-Tooltip` | The hover/focus tooltip container. |\n| `.BaselineUI-Chart-TooltipItem` | A single series entry in the tooltip. |\n| `.BaselineUI-Chart-TooltipSwatch` | The colored swatch in a tooltip entry. |',props:`interface LineChartProps {
|
|
382
|
+
/**
|
|
383
|
+
* Additional class name for the chart root.
|
|
384
|
+
*/
|
|
385
|
+
className?: string
|
|
386
|
+
/**
|
|
387
|
+
* Additional inline styles for the chart root.
|
|
388
|
+
*/
|
|
389
|
+
style?: CSSProperties
|
|
390
|
+
/**
|
|
391
|
+
* Chart width. @default "100%"
|
|
392
|
+
*/
|
|
393
|
+
width?: number | \`\${number}%\`
|
|
394
|
+
/**
|
|
395
|
+
* Chart height. @default 300
|
|
396
|
+
*/
|
|
397
|
+
height?: number
|
|
398
|
+
/**
|
|
399
|
+
* Whether to show the tooltip on hover. @default true
|
|
400
|
+
*/
|
|
401
|
+
showTooltip?: boolean
|
|
402
|
+
/**
|
|
403
|
+
* Whether to show the legend.
|
|
404
|
+
*/
|
|
405
|
+
showLegend?: boolean
|
|
406
|
+
/**
|
|
407
|
+
* Defaults to the ambient \`I18nProvider\` locale direction.
|
|
408
|
+
*/
|
|
409
|
+
dir?: "ltr" | "rtl"
|
|
410
|
+
/**
|
|
411
|
+
* Whether to show the grid lines. @default true
|
|
412
|
+
*/
|
|
413
|
+
showGrid?: boolean
|
|
414
|
+
/**
|
|
415
|
+
* Whether to show the X axis. @default true
|
|
416
|
+
*/
|
|
417
|
+
showXAxis?: boolean
|
|
418
|
+
/**
|
|
419
|
+
* Whether to show the Y axis. @default true
|
|
420
|
+
*/
|
|
421
|
+
showYAxis?: boolean
|
|
422
|
+
/**
|
|
423
|
+
* The data array to render. Each item is an object keyed by \`xAxisDataKey\` and line \`dataKey\` values.
|
|
424
|
+
*/
|
|
425
|
+
data: unknown
|
|
426
|
+
/**
|
|
427
|
+
* Configuration for each line to render.
|
|
428
|
+
*/
|
|
429
|
+
lines: unknown
|
|
430
|
+
/**
|
|
431
|
+
* The data key for the X axis.
|
|
432
|
+
*/
|
|
433
|
+
xAxisDataKey: string
|
|
434
|
+
/**
|
|
435
|
+
* Visual variant. \`"sparkline"\` renders a compact 40\xD720 line with no axes,
|
|
436
|
+
* grid, tooltip, or legend \u2014 suitable for inline trend indicators.
|
|
437
|
+
* @default "default"
|
|
438
|
+
*/
|
|
439
|
+
variant?: "default" | "sparkline"
|
|
440
|
+
}`,stories:{usage:[{id:"charts-linechart--basic",name:"Basic",snippet:`const Basic = () => <LineChart
|
|
441
|
+
data={monthlyData}
|
|
442
|
+
xAxisDataKey="month"
|
|
443
|
+
lines={[
|
|
444
|
+
{ dataKey: "revenue", name: "Revenue" },
|
|
445
|
+
{ dataKey: "expenses", name: "Expenses" },
|
|
446
|
+
]}
|
|
447
|
+
height={320} />;`},{id:"charts-linechart--single-line",name:"Single Line",snippet:`const SingleLine = () => <LineChart
|
|
448
|
+
data={monthlyData}
|
|
449
|
+
xAxisDataKey="month"
|
|
450
|
+
lines={[{ dataKey: "revenue", name: "Revenue" }]}
|
|
451
|
+
height={320} />;`},{id:"charts-linechart--with-legend",name:"With Legend",snippet:`const WithLegend = () => <LineChart
|
|
452
|
+
data={monthlyData}
|
|
453
|
+
xAxisDataKey="month"
|
|
454
|
+
lines={[
|
|
455
|
+
{ dataKey: "revenue", name: "Revenue" },
|
|
456
|
+
{ dataKey: "expenses", name: "Expenses" },
|
|
457
|
+
]}
|
|
458
|
+
height={320}
|
|
459
|
+
showLegend />;`},{id:"charts-linechart--with-dots",name:"With Dots",snippet:`const WithDots = () => <LineChart
|
|
460
|
+
data={monthlyData}
|
|
461
|
+
xAxisDataKey="month"
|
|
462
|
+
lines={[
|
|
463
|
+
{ dataKey: "revenue", name: "Revenue", dot: true },
|
|
464
|
+
{ dataKey: "expenses", name: "Expenses", dot: true },
|
|
465
|
+
]}
|
|
466
|
+
height={320} />;`},{id:"charts-linechart--linear-curve",name:"Linear Curve",snippet:`const LinearCurve = () => <LineChart
|
|
467
|
+
data={monthlyData}
|
|
468
|
+
xAxisDataKey="month"
|
|
469
|
+
lines={[
|
|
470
|
+
{ dataKey: "revenue", name: "Revenue", type: "linear" },
|
|
471
|
+
{ dataKey: "expenses", name: "Expenses", type: "linear" },
|
|
472
|
+
]}
|
|
473
|
+
height={320} />;`},{id:"charts-linechart--custom-colors",name:"Custom Colors",snippet:`const CustomColors = () => <LineChart
|
|
474
|
+
data={monthlyData}
|
|
475
|
+
xAxisDataKey="month"
|
|
476
|
+
lines={[
|
|
477
|
+
{ dataKey: "revenue", name: "Revenue", color: "#7c3aed", strokeWidth: 3 },
|
|
478
|
+
{
|
|
479
|
+
dataKey: "expenses",
|
|
480
|
+
name: "Expenses",
|
|
481
|
+
color: "#f59e0b",
|
|
482
|
+
strokeWidth: 3,
|
|
483
|
+
},
|
|
484
|
+
]}
|
|
485
|
+
height={320}
|
|
486
|
+
showLegend />;`},{id:"charts-linechart--many-lines",name:"Many Lines",snippet:`const ManyLines = () => <LineChart
|
|
487
|
+
data={monthlyData.map((row) => ({
|
|
488
|
+
...row,
|
|
489
|
+
profit: row.revenue - row.expenses,
|
|
490
|
+
tax: Math.round(row.revenue * 0.18),
|
|
491
|
+
fees: Math.round(row.revenue * 0.05),
|
|
492
|
+
}))}
|
|
493
|
+
xAxisDataKey="month"
|
|
494
|
+
lines={[
|
|
495
|
+
{ dataKey: "revenue", name: "Revenue" },
|
|
496
|
+
{ dataKey: "expenses", name: "Expenses" },
|
|
497
|
+
{ dataKey: "profit", name: "Profit" },
|
|
498
|
+
{ dataKey: "tax", name: "Tax" },
|
|
499
|
+
{ dataKey: "fees", name: "Fees" },
|
|
500
|
+
]}
|
|
501
|
+
height={320}
|
|
502
|
+
showLegend />;`},{id:"charts-linechart--hidden-axes",name:"Hidden Axes",snippet:`const HiddenAxes = () => <LineChart
|
|
503
|
+
data={monthlyData}
|
|
504
|
+
xAxisDataKey="month"
|
|
505
|
+
lines={[
|
|
506
|
+
{ dataKey: "revenue", name: "Revenue" },
|
|
507
|
+
{ dataKey: "expenses", name: "Expenses" },
|
|
508
|
+
]}
|
|
509
|
+
height={320}
|
|
510
|
+
showXAxis={false}
|
|
511
|
+
showYAxis={false}
|
|
512
|
+
showGrid={false} />;`},{id:"charts-linechart--sparkline",name:"Sparkline",snippet:`const Sparkline = () => <LineChart
|
|
513
|
+
data={monthlyData}
|
|
514
|
+
xAxisDataKey="month"
|
|
515
|
+
lines={[{ dataKey: "revenue" }]}
|
|
516
|
+
height={64}
|
|
517
|
+
variant="sparkline"
|
|
518
|
+
width={320} />;`}],implementation:`import React from "react";
|
|
519
|
+
|
|
520
|
+
import { LineChart } from "../LineChart";
|
|
521
|
+
|
|
522
|
+
import type { LineChartProps } from "../LineChart.types";
|
|
523
|
+
|
|
524
|
+
const data = [
|
|
525
|
+
{ month: "Jan", revenue: 4000 },
|
|
526
|
+
{ month: "Feb", revenue: 3000 },
|
|
527
|
+
{ month: "Mar", revenue: 5000 },
|
|
528
|
+
];
|
|
529
|
+
|
|
530
|
+
const lines = [{ dataKey: "revenue", name: "Revenue" }];
|
|
531
|
+
|
|
532
|
+
/**
|
|
533
|
+
* Wraps LineChart in a sized parent so the default \`width: "100%"\` resolves
|
|
534
|
+
* to a measurable size for layout-dependent assertions.
|
|
535
|
+
*/
|
|
536
|
+
export function SizedLineChart(
|
|
537
|
+
props: Partial<Pick<LineChartProps, "className" | "style">>,
|
|
538
|
+
) {
|
|
539
|
+
return (
|
|
540
|
+
<div style={{ width: 480, height: 300 }}>
|
|
541
|
+
<LineChart data={data} lines={lines} xAxisDataKey="month" {...props} />
|
|
542
|
+
</div>
|
|
543
|
+
);
|
|
544
|
+
}`},similarTo:[],figmaUrl:null},PieChart:{id:"charts-piechart",breadcrumb:"Charts/PieChart",importStatement:`import { Box } from "@baseline-ui/core";
|
|
545
|
+
import { PieChart } from "@baseline-ui/charts";`,description:"The `PieChart` component renders a responsive pie chart for proportional data. It is built on top of [Recharts](https://recharts.org/) and styled with Baseline UI design tokens so it picks up the active theme automatically.",documentation:'The `PieChart` component renders a responsive pie chart for proportional data. It is built on top of [Recharts](https://recharts.org/) and styled with Baseline UI design tokens so it picks up the active theme automatically.\n\n* Renders one wedge per slice, sized proportionally to its `value`.\n* Slices are sorted in descending value order \u2014 largest first, regardless of input order. Default colors are assigned by sorted index, so the largest slice always gets the first theme color.\n* Themed slices, tooltip, and legend styled with Baseline UI tokens \u2014 adapts to light, dark, and high-contrast themes.\n* Default slice colors cycle through theme support colors (`info`, `success`, `error`, `warning`); each slice can override with a custom `color`.\n* Inline percentage labels rendered inside each slice, with small slices (under 5%) automatically suppressed.\n* Hover or focus highlights a slice with an enlarged outline rendered behind it; the highlighted slice is brought to the front so its outline isn\'t clipped by neighbors.\n* Donut variant via the `innerRadius` prop.\n* Toggleable tooltip, legend, and labels.\n* Responsive by default \u2014 fills the parent container width while preserving the configured `height`.\n* Built-in keyboard navigation across slices via Recharts\' accessibility layer.\n\n```jsx\nimport { PieChart } from "@baseline-ui/charts";\n\nconst data = [\n { name: "Water", value: 46 },\n { name: "Earth", value: 26 },\n { name: "Wind", value: 18 },\n { name: "Fire", value: 10 },\n];\n\n<PieChart data={data} />;\n```\n\nPass `innerRadius` to render a donut chart instead of a solid pie.\n\n```jsx\n<PieChart data={data} innerRadius={50} />\n```\n\nOverride the default theme colors by passing `color` per slice.\n\n```jsx\n<PieChart\n data={[\n { name: "Water", value: 46, color: "#0ea5e9" },\n { name: "Earth", value: 26, color: "#65a30d" },\n { name: "Wind", value: 18, color: "#a855f7" },\n { name: "Fire", value: 10, color: "#f97316" },\n ]}\n/>\n```\n\nDefault colors cycle through `info` \u2192 `success` \u2192 `error` \u2192 `warning` and wrap modulo four. Provide a `color` per slice to override.\n\nLong names wrap within legend entries.\n\nSlices contributing less than 5% of the total automatically have their inline label suppressed; their value is still visible via the tooltip and legend.\n\nWhen a slice is hovered with a pointer, focused via keyboard, or activated via the accessibility layer, an enlarged copy of the slice is rendered behind the original \u2014 visible as a thin outline that follows the slice\'s outer arc. The active slice is also reordered to render on top of its neighbors so the outline isn\'t clipped.\n\nThe chart surface is keyboard-focusable (single tab stop \u2014 only the SVG surface, not the inner pie group). When focused, arrow keys move an active indicator across slices and open the tooltip at each step.\n\n```jsx\n<PieChart data={data} showTooltip={false} />\n```\n\n```jsx\n<PieChart data={data} showLabels={false} />\n```\n\n```jsx\n<PieChart data={data} showLegend={false} />\n```\n\n| Key | Function |\n| ------------- | ------------------------------------------------------------------ |\n| `Tab` | Moves focus to the chart surface. |\n| `Arrow Right` | Advances the active slice clockwise and shows the tooltip. |\n| `Arrow Left` | Advances the active slice counter-clockwise and shows the tooltip. |\n| `Escape` | Dismisses the tooltip and clears the active slice. |\n\nPieChart shares its legend, tooltip, and surface markup with every other chart in the package. The `BaselineUI-Chart-*` selectors are stable shared hooks; the kind-specific `BaselineUI-PieChart` class lets you scope styles to pie charts only. Internal Recharts class names are not part of the public API.\n\n| Selector | Description |\n| --------------------------------- | ------------------------------------------------------------------- |\n| `.BaselineUI-PieChart` | The pie-chart root identifier. |\n| `.BaselineUI-Chart-Surface` | The chart drawing area that wraps the SVG. |\n| `.BaselineUI-Chart-Legend` | The legend list element. Only rendered when `showLegend` is `true`. |\n| `.BaselineUI-Chart-LegendItem` | A single legend entry \u2014 one per slice. |\n| `.BaselineUI-Chart-LegendSwatch` | The colored swatch in a legend entry. |\n| `.BaselineUI-Chart-Tooltip` | The hover/focus tooltip container. |\n| `.BaselineUI-Chart-TooltipItem` | A single slice entry in the tooltip. |\n| `.BaselineUI-Chart-TooltipSwatch` | The colored swatch in a tooltip entry. |',props:`interface PieChartProps {
|
|
546
|
+
/**
|
|
547
|
+
* Additional class name for the chart root.
|
|
548
|
+
*/
|
|
549
|
+
className?: string
|
|
550
|
+
/**
|
|
551
|
+
* Additional inline styles for the chart root.
|
|
552
|
+
*/
|
|
553
|
+
style?: CSSProperties
|
|
554
|
+
/**
|
|
555
|
+
* Chart width. @default "100%"
|
|
556
|
+
*/
|
|
557
|
+
width?: number | \`\${number}%\`
|
|
558
|
+
/**
|
|
559
|
+
* Chart height. @default 300
|
|
560
|
+
*/
|
|
561
|
+
height?: number
|
|
562
|
+
/**
|
|
563
|
+
* Whether to show the tooltip on hover. @default true
|
|
564
|
+
*/
|
|
565
|
+
showTooltip?: boolean
|
|
566
|
+
/**
|
|
567
|
+
* Whether to show the legend.
|
|
568
|
+
*/
|
|
569
|
+
showLegend?: boolean
|
|
570
|
+
/**
|
|
571
|
+
* Defaults to the ambient \`I18nProvider\` locale direction.
|
|
572
|
+
*/
|
|
573
|
+
dir?: "ltr" | "rtl"
|
|
574
|
+
/**
|
|
575
|
+
* The slices to render. Each slice contributes a wedge proportional to \`value\`.
|
|
576
|
+
*/
|
|
577
|
+
data: unknown
|
|
578
|
+
/**
|
|
579
|
+
* Inner radius in pixels. @default 0
|
|
580
|
+
*/
|
|
581
|
+
innerRadius?: number
|
|
582
|
+
/**
|
|
583
|
+
* Outer radius in pixels. When omitted, the chart fits the smaller of its
|
|
584
|
+
* width and height.
|
|
585
|
+
*/
|
|
586
|
+
outerRadius?: number
|
|
587
|
+
/**
|
|
588
|
+
* Whether to render percentage labels inside each slice. @default true
|
|
589
|
+
*/
|
|
590
|
+
showLabels?: boolean
|
|
591
|
+
}`,stories:{usage:[{id:"charts-piechart--basic",name:"Basic",snippet:"const Basic = () => <PieChart data={elementsData} height={257} />;"},{id:"charts-piechart--no-labels",name:"No Labels",snippet:"const NoLabels = () => <PieChart data={elementsData} height={257} showLabels={false} />;"},{id:"charts-piechart--no-legend",name:"No Legend",snippet:"const NoLegend = () => <PieChart data={elementsData} height={257} showLegend={false} />;"},{id:"charts-piechart--custom-colors",name:"Custom Colors",snippet:`const CustomColors = () => <PieChart
|
|
592
|
+
data={[
|
|
593
|
+
{ name: "Water", value: 46, color: "#0ea5e9" },
|
|
594
|
+
{ name: "Earth", value: 26, color: "#65a30d" },
|
|
595
|
+
{ name: "Wind", value: 18, color: "#a855f7" },
|
|
596
|
+
{ name: "Fire", value: 10, color: "#f97316" },
|
|
597
|
+
]}
|
|
598
|
+
height={257} />;`},{id:"charts-piechart--many-slices",name:"Many Slices",snippet:`const ManySlices = () => <PieChart
|
|
599
|
+
data={[
|
|
600
|
+
{ name: "Water", value: 30 },
|
|
601
|
+
{ name: "Earth", value: 22 },
|
|
602
|
+
{ name: "Wind", value: 16 },
|
|
603
|
+
{ name: "Fire", value: 12 },
|
|
604
|
+
{ name: "Aether", value: 10 },
|
|
605
|
+
{ name: "Void", value: 6 },
|
|
606
|
+
{ name: "Light", value: 4 },
|
|
607
|
+
]}
|
|
608
|
+
height={257} />;`},{id:"charts-piechart--donut",name:"Donut",snippet:"const Donut = () => <PieChart data={elementsData} height={257} innerRadius={50} />;"},{id:"charts-piechart--no-tooltip",name:"No Tooltip",snippet:"const NoTooltip = () => <PieChart data={elementsData} height={257} showTooltip={false} />;"},{id:"charts-piechart--long-legend-names",name:"Long Legend Names",snippet:`const LongLegendNames = () => <PieChart
|
|
609
|
+
data={[
|
|
610
|
+
{ name: "Atmospheric water vapor", value: 46 },
|
|
611
|
+
{ name: "Subterranean rock formations", value: 26 },
|
|
612
|
+
{ name: "High-altitude jet streams", value: 18 },
|
|
613
|
+
{ name: "Volcanic core temperatures", value: 10 },
|
|
614
|
+
]}
|
|
615
|
+
height={257} />;`},{id:"charts-piechart--small-slices-below-five-percent",name:"Small Slices Below Five Percent",snippet:`const SmallSlicesBelowFivePercent = () => <PieChart
|
|
616
|
+
data={[
|
|
617
|
+
{ name: "Major", value: 92 },
|
|
618
|
+
{ name: "Minor", value: 4 },
|
|
619
|
+
{ name: "Trace", value: 3 },
|
|
620
|
+
{ name: "Edge", value: 1 },
|
|
621
|
+
]}
|
|
622
|
+
height={257} />;`}],implementation:`import { I18nProvider } from "@baseline-ui/core";
|
|
623
|
+
import React from "react";
|
|
624
|
+
|
|
625
|
+
import { PieChart } from "../PieChart";
|
|
626
|
+
|
|
627
|
+
import type { PieChartProps } from "../PieChart.types";
|
|
628
|
+
|
|
629
|
+
const data = [
|
|
630
|
+
{ name: "Water", value: 46 },
|
|
631
|
+
{ name: "Earth", value: 26 },
|
|
632
|
+
{ name: "Wind", value: 18 },
|
|
633
|
+
{ name: "Fire", value: 10 },
|
|
634
|
+
];
|
|
635
|
+
|
|
636
|
+
/**
|
|
637
|
+
* Wraps PieChart in a sized parent so the default \`width: "100%"\` resolves
|
|
638
|
+
* to a measurable size for layout-dependent assertions.
|
|
639
|
+
*/
|
|
640
|
+
export function SizedPieChart(
|
|
641
|
+
props: Partial<Pick<PieChartProps, "className" | "style">>,
|
|
642
|
+
) {
|
|
643
|
+
return (
|
|
644
|
+
<div style={{ width: 320, height: 280 }}>
|
|
645
|
+
<PieChart data={data} {...props} />
|
|
646
|
+
</div>
|
|
647
|
+
);
|
|
648
|
+
}
|
|
649
|
+
|
|
650
|
+
/** Verifies ambient-locale RTL detection (no explicit \`dir\`). */
|
|
651
|
+
export function ArabicLocalePieChart() {
|
|
652
|
+
return (
|
|
653
|
+
<I18nProvider locale="ar-EG">
|
|
654
|
+
<PieChart data={data} width={320} />
|
|
655
|
+
</I18nProvider>
|
|
656
|
+
);
|
|
657
|
+
}
|
|
658
|
+
|
|
659
|
+
/** Verifies the explicit \`dir\` prop wins over the ambient locale. */
|
|
660
|
+
export function ArabicLocaleLtrOverridePieChart() {
|
|
661
|
+
return (
|
|
662
|
+
<I18nProvider locale="ar-EG">
|
|
663
|
+
<PieChart data={data} dir="ltr" width={320} />
|
|
664
|
+
</I18nProvider>
|
|
665
|
+
);
|
|
666
|
+
}`},similarTo:[],figmaUrl:null},Accordion:{id:"core-navigation-accordion",breadcrumb:"Core/Navigation/Accordion",importStatement:'import { Accordion, AccordionExample } from "@baseline-ui/core";',description:"`Accordion` is a component that allows users to toggle the visibility of content. It\u2019s composed of an `Accordion` component and an `AccordionItem` component. The `Accordion` component is a container for the `AccordionItem` components.",documentation:`\`Accordion\` is a component that allows users to toggle the visibility of content. It\u2019s composed of an \`Accordion\` component and an \`AccordionItem\` component. The \`Accordion\` component is a container for the \`AccordionItem\` components.
|
|
12
667
|
|
|
13
668
|
* Full keyboard navigation
|
|
14
669
|
* It can expand one or multiple items
|
|
@@ -1938,11 +2593,10 @@ Boxes can be composed to create layered layouts:
|
|
|
1938
2593
|
| ----------------- | ------------------------------------ |
|
|
1939
2594
|
| \`.BaselineUI-Box\` | Targets all Box component instances. |`,props:`interface BoxProps {
|
|
1940
2595
|
/**
|
|
1941
|
-
* The HTML element to use for the box.
|
|
1942
|
-
*
|
|
1943
2596
|
* @default "div"
|
|
1944
2597
|
*/
|
|
1945
2598
|
elementType?: any
|
|
2599
|
+
children?: ReactNode
|
|
1946
2600
|
}`,stories:{usage:[{id:"core-utilities-box--basic",name:"Basic",snippet:`const Basic = () => <Box
|
|
1947
2601
|
borderRadius="md"
|
|
1948
2602
|
backgroundColor="background.primary.medium"
|
|
@@ -2948,6 +3602,18 @@ children: React.ReactNode
|
|
|
2948
3602
|
"test:e2e": "cross-env BABEL_ENV=test jest --testPathPattern=e2e --testPathIgnorePatterns='examples,/packages/components/,/packages/react/'"
|
|
2949
3603
|
}
|
|
2950
3604
|
}\`}</Code>;`}],implementation:""},similarTo:[],figmaUrl:null},ColorInput:{id:"core-forms-colorinput",breadcrumb:"Core/Forms/ColorInput",importStatement:'import { ColorInput, CustomTriggerButton, IndeterminateExample } from "@baseline-ui/core";',description:"The `ColorInput` component is used to select a color. You can use the `ColorInput` component to select a color from a predefined set of colors, or to select a custom color.",documentation:'The `ColorInput` component is used to select a color. You can use the `ColorInput` component to select a color from a predefined set of colors, or to select a custom color.\n\n* Includes custom color picker with color area, hue slider, and optional alpha slider\n* Supports alpha channel\n* Exposed to screen readers using ARIA attributes\n* Supports keyboard, touch and mouse interaction\n* Supports disabled and indeterminate states\n* Supports HEX and RGB color modes\n* Persists custom colors in local storage\n* Supports lazy picker mode for adding custom colors without live updates\n\n```jsx\nimport { ColorInput } from "@baseline-ui/core";\n\nconst presets = [\n { label: "Red", color: "#ff0000" },\n { label: "Green", color: "#00ff00" },\n { label: "Blue", color: "#0000ff" },\n { label: "Yellow", color: "#ffff00" },\n { label: "Cyan", color: "#00ffff" },\n { label: "Magenta", color: "#ff00ff" },\n { label: "Black", color: "#000000" },\n { label: "White", color: "#ffffff" },\n { label: "Gray", color: "#808080" },\n { label: "Orange", color: "#ffa500" },\n { label: "Brown", color: "#a52a2a" },\n { label: "Purple", color: "#800080" },\n];\n\n<ColorInput presets={presets} label="Color" />;\n```\n\nBy default, the label is placed above the trigger. Use `labelPosition="start"` to place it inline.\n\n```jsx\n<ColorInput\n presets={presets}\n label="Label"\n labelPosition="start"\n defaultValue="#ff0000"\n/>\n```\n\nHide the visible color name text next to the swatch by setting `colorLabel={false}`.\n\n```jsx\n<ColorInput presets={presets} colorLabel={false} aria-label="Color" />\n```\n\nShow only the preset list without the custom color picker by setting `includePicker={false}`.\n\n```jsx\n<ColorInput presets={presets} includePicker={false} label="Color" />\n```\n\nShow only the custom color picker without any presets.\n\n```jsx\n<ColorInput presets={[]} label="Color" />\n```\n\nYou can enable the alpha channel in the color picker by setting the `allowAlpha` prop to `true`.\n\n```jsx\n<ColorInput presets={presets} allowAlpha />\n```\n\nDisable the alpha slider by setting `allowAlpha={false}`.\n\n```jsx\n<ColorInput presets={presets} allowAlpha={false} label="Color" />\n```\n\n```jsx\n<ColorInput presets={presets} isDisabled label="Color" />\n```\n\nThe `ColorInput` component supports an indeterminate state. This is useful when you want to show a loading state or an unknown state. This property is always controlled and only makes a visual difference. If set to true, the color input trigger button will show "Indeterminate" as the color name. Apart from this, all the other functionality will work as expected.\n\n```jsx\n<ColorInput isIndeterminate presets={presets} />\n```\n\nBy default, you can add colors picked from the picker to the list of custom color presets. These are persisted in local storage under the key specified by the `storePickedColorKey` prop (defaults to `"baselinePickedColor"`). To use a separate storage key per instance, pass a unique value:\n\n```jsx\n<ColorInput storePickedColorKey="my-custom-key" />\n```\n\nBy default, you cannot unset the color. You can enable the ability to unset the color by setting the `allowRemoval` prop to `true`.\n\n```jsx\n<ColorInput presets={presets} allowRemoval />\n```\n\nYou can set the default color by setting the `defaultValue` prop to a color value.\n\n```jsx\n<ColorInput presets={presets} defaultValue="#ff0000" />\n```\n\nYou can make the `ColorInput` component controlled by setting the `value` prop to a color value. You can use the `onChange` prop to update the value.\n\n```jsx\n<ColorInput presets={presets} value="#ff0000" onChange={console.log} />\n```\n\nYou can use the `renderTriggerButton` prop to render a custom trigger.\n\n```jsx\n<ColorInput\n label="label"\n renderTriggerButton={({ colorName, ref, triggerProps }) => (\n <ActionIconButton\n {...triggerProps}\n aria-label={typeof colorName === "string" ? colorName : "Color"}\n icon={EllipseIcon}\n ref={ref}\n aria-haspopup="true"\n />\n )}\n/>\n```\n\nYou can use the `pickerMode="lazy"` prop to render the color picker only to add a custom color to the list of custom color presets. This is useful when you want to prevent the `onChange` event from firing while the user is picking a color from the picker. In case of mobile the picker opens in a modal.\n\n```jsx\n<ColorInput presets={presets} pickerMode="lazy" aria-label="Color" />\n```\n\nThe following CSS class selectors and data attributes are available for styling:\n\n| Selector | Description |\n| -------------------------------------------- | ------------------------------------------------------------------------- |\n| `.BaselineUI-ColorInput-Trigger` | The outer wrapper containing the label and trigger button |\n| `.BaselineUI-ColorInputButton` | The trigger button |\n| `.BaselineUI-ColorInput-Popover` | The popover container |\n| `.BaselineUI-ColorInput-ColorArea` | The color area (saturation/lightness) |\n| `.BaselineUI-ColorInput-ColorAreaThumb` | The draggable thumb on the color area |\n| `.BaselineUI-ColorInput-ColorSlider` | The hue/alpha slider |\n| `.BaselineUI-ColorInput-ColorSliderThumb` | The draggable thumb on a slider |\n| `.BaselineUI-ColorInput-FieldInput` | The hex/RGB text input |\n| `.BaselineUI-ColorInput-Presets` | The preset color list |\n| `.BaselineUI-ColorInput-CustomColors` | The custom colors header |\n| `.BaselineUI-ColorInput-CustomColorsListBox` | The custom colors list |\n| `[data-disabled]` | Applied when the button is disabled |\n| `[data-hovered]` | Applied when the button is hovered |\n| `[data-pressed]` | Applied when the button is pressed |\n| `[data-focus-visible]` | Applied when the button has keyboard focus |\n| `[data-color-mode="hexa"]` | Applied to hex field input when alpha is enabled |\n| `[data-color-mode="hex"]` | Applied to hex field input when alpha is disabled |\n| `[data-color-mode="rgba"]` | Applied to RGB field inputs when alpha is enabled |\n| `[data-color-mode="rgb"]` | Applied to RGB field inputs when alpha is disabled |\n| `[data-channel]` | Applied to color sliders, value is the channel name (e.g. `hue`, `alpha`) |\n\n| Key | Description |\n| ---------- | -------------------------------------------------------------------- |\n| Enter | Opens the popover or selects the focused color if popover is open |\n| Space | Opens the popover or selects the focused color if popover is open |\n| Escape | Closes the popover if open |\n| ArrowRight | Moves focus to the next preset color in the list |\n| ArrowLeft | Moves focus to the previous preset color in the list |\n| Tab | Moves focus between the color area, sliders, fields, and preset list |\n\nThe following strings are used by the `ColorInput` component and can be overridden via `I18nProvider`:\n\n| Key | Default (en) |\n| ------------------------------ | ---------------- |\n| `bui.colorInput.addColor` | Add Color |\n| `bui.colorInput.removeColor` | Remove Color |\n| `bui.colorInput.customColors` | Custom Colors |\n| `bui.colorInput.noColor` | None |\n| `bui.colorInput.transparent` | Transparent |\n| `bui.colorInput.add` | Add |\n| `bui.colorInput.cancel` | Cancel |\n| `bui.colorInput.colorFormat` | Color Format |\n| `bui.colorInput.colorPresets` | Color Presets |\n| `bui.colorInput.newColor` | New Custom Color |\n| `bui.colorInput.indeterminate` | Indeterminate |\n\n> **Note:** `bui.colorInput.indeterminate` is not present in the bundled locale JSON files \u2014 it relies on its `defaultMessage` as fallback. Override it via `I18nProvider.messages` when you need a custom string for the indeterminate state.\n\n```jsx\nimport { I18nProvider, ColorInput } from "@baseline-ui/core";\n\n<I18nProvider\n locale="en"\n messages={{\n en: {\n "bui.colorInput.addColor": "Pick a Color",\n "bui.colorInput.cancel": "Dismiss",\n },\n }}\n>\n <ColorInput />\n</I18nProvider>;\n```\n\nThe `IconColorInput` component is a wrapper around the `ColorInput` component that allows you to render an icon next to the color input. This basically overrides the `renderTriggerButton` prop of the `ColorInput` component to\nprovide a predefined trigger button with an icon.\n\n```jsx\nimport { IconColorInput } from "@baseline-ui/core";\nimport { BorderColorIcon } from "@baseline-ui/icons/24";\n\n<IconColorInput icon={BorderColorIcon} aria-label="Color Picker" />;\n```\n\nYou can use the `variant` prop to change the appearance of the `IconColorInput` component. The `variant` prop accepts the following values: `standard` and `compact`.\n\n```jsx\n<IconColorInput icon={BorderColorIcon} aria-label="Color Picker" isDisabled />\n```\n\nThe `IconColorInput` component supports adding tooltip to the trigger button which is enabled by default. The tooltip will be the same as the `aria-label` of the trigger button. If you want to disable the tooltip, you can set the `tooltip` and `iconTooltip` props to `false`.\n\nThe `ColorSwatch` component is used to display a color swatch. The `ColorSwatch` component is used in the `ColorInput` component to display the selected color.\n\n```jsx\nimport { ColorSwatch } from "@baseline-ui/core";\n\n<ColorSwatch color="#ff0000" />;\n```',props:`interface ColorInputProps {
|
|
3605
|
+
/**
|
|
3606
|
+
* Whether the overlay is open by default (controlled).
|
|
3607
|
+
*/
|
|
3608
|
+
isOpen?: boolean
|
|
3609
|
+
/**
|
|
3610
|
+
* Whether the overlay is open by default (uncontrolled).
|
|
3611
|
+
*/
|
|
3612
|
+
defaultOpen?: boolean
|
|
3613
|
+
/**
|
|
3614
|
+
* Handler that is called when the overlay's open state changes.
|
|
3615
|
+
*/
|
|
3616
|
+
onOpenChange?: (isOpen: boolean) => void
|
|
2951
3617
|
/**
|
|
2952
3618
|
* The unique identifier for the block. This is used to identify the block in
|
|
2953
3619
|
* the DOM and in the block map. It is added as a data attribute
|
|
@@ -5151,6 +5817,11 @@ By default, the \`Dialog\` component traps focus within the dialog. This means t
|
|
|
5151
5817
|
| -------------- | ----------------------------------------------------------------------------------------------------------------------------------- |
|
|
5152
5818
|
| <kbd>Esc</kbd> | Close the dialog |
|
|
5153
5819
|
| <kbd>Tab</kbd> | Move focus to the next focusable element in the dialog. If focus is on the last element, move focus to the first focusable element. |`,props:`interface DialogProps {
|
|
5820
|
+
/**
|
|
5821
|
+
* The accessibility role for the dialog.
|
|
5822
|
+
* @default 'dialog'
|
|
5823
|
+
*/
|
|
5824
|
+
role?: 'dialog' | 'alertdialog'
|
|
5154
5825
|
/**
|
|
5155
5826
|
* The unique identifier for the block. This is used to identify the block in
|
|
5156
5827
|
* the DOM and in the block map. It is added as a data attribute
|
|
@@ -5931,6 +6602,11 @@ className?: string
|
|
|
5931
6602
|
* The style applied to the root element of the component.
|
|
5932
6603
|
*/
|
|
5933
6604
|
style?: React.CSSProperties
|
|
6605
|
+
/**
|
|
6606
|
+
* The accessibility role for the dialog.
|
|
6607
|
+
* @default 'dialog'
|
|
6608
|
+
*/
|
|
6609
|
+
role?: 'dialog' | 'alertdialog'
|
|
5934
6610
|
/**
|
|
5935
6611
|
* The children to render.
|
|
5936
6612
|
*/
|
|
@@ -7925,18 +8601,8 @@ children: React.ReactNode
|
|
|
7925
8601
|
* The locale to apply to the children.
|
|
7926
8602
|
*/
|
|
7927
8603
|
locale?: string
|
|
8604
|
+
messages?: LocalizedStrings
|
|
7928
8605
|
/**
|
|
7929
|
-
* The messages to use for internationalization.
|
|
7930
|
-
*/
|
|
7931
|
-
messages?: {
|
|
7932
|
-
[lang: string]: {
|
|
7933
|
-
[key: string]: string
|
|
7934
|
-
}
|
|
7935
|
-
}
|
|
7936
|
-
/**
|
|
7937
|
-
* Whether to log messages when translations in the current locale are
|
|
7938
|
-
* missing.
|
|
7939
|
-
*
|
|
7940
8606
|
* @default true
|
|
7941
8607
|
*/
|
|
7942
8608
|
shouldLogMissingMessages?: boolean
|
|
@@ -10882,6 +11548,23 @@ const items = [
|
|
|
10882
11548
|
The \`Menu\` component can be controlled or uncontrolled. When uncontrolled, the component manages its own state internally. When controlled, the state is managed by the parent component. To control the component, set the \`selectedKeys\` prop to an array of item IDs. The value of the selected keys must match the \`id\` prop of the items.
|
|
10883
11549
|
|
|
10884
11550
|
The \`Menu\` component can be controlled or uncontrolled. When uncontrolled, the component manages its own state internally. When controlled, the state is managed by the parent component. To control the component, set the \`isOpen\` prop to a boolean value.`,props:`interface MenuProps {
|
|
11551
|
+
/**
|
|
11552
|
+
* Whether the overlay is open by default (controlled).
|
|
11553
|
+
*/
|
|
11554
|
+
isOpen?: boolean
|
|
11555
|
+
/**
|
|
11556
|
+
* Whether the overlay is open by default (uncontrolled).
|
|
11557
|
+
*/
|
|
11558
|
+
defaultOpen?: boolean
|
|
11559
|
+
/**
|
|
11560
|
+
* Handler that is called when the overlay's open state changes.
|
|
11561
|
+
*/
|
|
11562
|
+
onOpenChange?: (isOpen: boolean) => void
|
|
11563
|
+
/**
|
|
11564
|
+
* How the menu is triggered.
|
|
11565
|
+
* @default 'press'
|
|
11566
|
+
*/
|
|
11567
|
+
trigger?: 'press' | 'longPress'
|
|
10885
11568
|
/**
|
|
10886
11569
|
* The \`className\` property assigned to the root element of the component.
|
|
10887
11570
|
*/
|
|
@@ -11077,6 +11760,18 @@ You can add a close button to the dialog by adding a \`ModalClose\` component to
|
|
|
11077
11760
|
| Key | Function |
|
|
11078
11761
|
| -------------- | ---------------- |
|
|
11079
11762
|
| <kbd>Esc</kbd> | Close the dialog |`,props:`interface ModalProps {
|
|
11763
|
+
/**
|
|
11764
|
+
* Whether the overlay is open by default (controlled).
|
|
11765
|
+
*/
|
|
11766
|
+
isOpen?: boolean
|
|
11767
|
+
/**
|
|
11768
|
+
* Whether the overlay is open by default (uncontrolled).
|
|
11769
|
+
*/
|
|
11770
|
+
defaultOpen?: boolean
|
|
11771
|
+
/**
|
|
11772
|
+
* Handler that is called when the overlay's open state changes.
|
|
11773
|
+
*/
|
|
11774
|
+
onOpenChange?: (isOpen: boolean) => void
|
|
11080
11775
|
/**
|
|
11081
11776
|
* The contents of the modal.
|
|
11082
11777
|
*/
|
|
@@ -13568,6 +14263,18 @@ This is particularly useful when:
|
|
|
13568
14263
|
* The trigger element moves due to CSS transforms or animations
|
|
13569
14264
|
* The layout changes dynamically via JavaScript
|
|
13570
14265
|
* You need to keep the popover attached to a moving target`,props:`interface PopoverProps {
|
|
14266
|
+
/**
|
|
14267
|
+
* Whether the overlay is open by default (controlled).
|
|
14268
|
+
*/
|
|
14269
|
+
isOpen?: boolean
|
|
14270
|
+
/**
|
|
14271
|
+
* Whether the overlay is open by default (uncontrolled).
|
|
14272
|
+
*/
|
|
14273
|
+
defaultOpen?: boolean
|
|
14274
|
+
/**
|
|
14275
|
+
* Handler that is called when the overlay's open state changes.
|
|
14276
|
+
*/
|
|
14277
|
+
onOpenChange?: (isOpen: boolean) => void
|
|
13571
14278
|
/**
|
|
13572
14279
|
* The unique identifier for the block. This is used to identify the block in
|
|
13573
14280
|
* the DOM and in the block map. It is added as a data attribute
|
|
@@ -16707,7 +17414,7 @@ import { Separator } from "../../utils";
|
|
|
16707
17414
|
* The orientation of the separator.
|
|
16708
17415
|
* @default 'horizontal'
|
|
16709
17416
|
*/
|
|
16710
|
-
orientation?:
|
|
17417
|
+
orientation?: "horizontal" | "vertical"
|
|
16711
17418
|
/**
|
|
16712
17419
|
* The HTML element type that will be used to render the separator.
|
|
16713
17420
|
*/
|
|
@@ -16736,14 +17443,10 @@ className?: string
|
|
|
16736
17443
|
*/
|
|
16737
17444
|
style?: React.CSSProperties
|
|
16738
17445
|
/**
|
|
16739
|
-
* The variant of the separator.
|
|
16740
|
-
*
|
|
16741
17446
|
* @default "primary"
|
|
16742
17447
|
*/
|
|
16743
17448
|
variant?: "primary" | "secondary"
|
|
16744
17449
|
/**
|
|
16745
|
-
* Whether to omit the role attribute.
|
|
16746
|
-
*
|
|
16747
17450
|
* @default false
|
|
16748
17451
|
* @internal
|
|
16749
17452
|
*/
|
|
@@ -22233,16 +22936,6 @@ className?: string
|
|
|
22233
22936
|
* The style applied to the root element of the component.
|
|
22234
22937
|
*/
|
|
22235
22938
|
style?: React.CSSProperties
|
|
22236
|
-
/**
|
|
22237
|
-
* The orientation of the entire toolbar.
|
|
22238
|
-
* @default 'horizontal'
|
|
22239
|
-
*/
|
|
22240
|
-
orientation?: Orientation
|
|
22241
|
-
/**
|
|
22242
|
-
* Allows tabbing through the toolbar's content when false.
|
|
22243
|
-
* @default true
|
|
22244
|
-
*/
|
|
22245
|
-
isSingleTabStop?: boolean
|
|
22246
22939
|
/**
|
|
22247
22940
|
* The children of the toolbar.
|
|
22248
22941
|
*/
|
|
@@ -22278,6 +22971,18 @@ renderSpacer?: boolean
|
|
|
22278
22971
|
* The callback to call when any key is pressed.
|
|
22279
22972
|
*/
|
|
22280
22973
|
onKeyDown?: KeyboardProps["onKeyDown"]
|
|
22974
|
+
/**
|
|
22975
|
+
* When set to true, the toolbar will act as a normal toolbar and will not
|
|
22976
|
+
* contain the navigation within it when the user presses tab again.
|
|
22977
|
+
*
|
|
22978
|
+
* When set to false, the toolbar will allow for navigating through all
|
|
22979
|
+
* elements within it if the user presses tab, and move to the next focusable
|
|
22980
|
+
* element outside of the toolbar only after user navigates through all
|
|
22981
|
+
* elements within the toolbar.
|
|
22982
|
+
*
|
|
22983
|
+
* @default true
|
|
22984
|
+
*/
|
|
22985
|
+
isSingleTabStop?: boolean
|
|
22281
22986
|
}`,stories:{usage:[{id:"core-miscellaneous-toolbar--basic",name:"Basic",snippet:'const Basic = () => <Toolbar style={{ display: "flex", flexDirection: "row", alignItems: "center" }}><ToolbarChildren /></Toolbar>;'},{id:"core-miscellaneous-toolbar--vertical",name:"Vertical",snippet:`const Vertical = () => <Toolbar
|
|
22282
22987
|
orientation="vertical"
|
|
22283
22988
|
style={{ display: "flex", flexDirection: "column", alignItems: "center" }} />;`},{id:"core-miscellaneous-toolbar--with-tooltip",name:"With Tooltip",snippet:"const WithTooltip = () => <Toolbar><ChildrenWithTooltip /></Toolbar>;"},{id:"core-miscellaneous-toolbar--with-over-flow",name:"With Over Flow",snippet:'const WithOverFlow = () => <Toolbar style={{ width: "max-content", display: "flex", alignItems: "center" }} />;'},{id:"core-miscellaneous-toolbar--with-tabbing-within",name:"With Tabbing Within",snippet:`const WithTabbingWithin = () => <Toolbar
|
|
@@ -22654,6 +23359,42 @@ className?: string
|
|
|
22654
23359
|
* The style applied to the root element of the component.
|
|
22655
23360
|
*/
|
|
22656
23361
|
style?: React.CSSProperties
|
|
23362
|
+
/**
|
|
23363
|
+
* Whether the overlay is open by default (controlled).
|
|
23364
|
+
*/
|
|
23365
|
+
isOpen?: boolean
|
|
23366
|
+
/**
|
|
23367
|
+
* Whether the overlay is open by default (uncontrolled).
|
|
23368
|
+
*/
|
|
23369
|
+
defaultOpen?: boolean
|
|
23370
|
+
/**
|
|
23371
|
+
* Handler that is called when the overlay's open state changes.
|
|
23372
|
+
*/
|
|
23373
|
+
onOpenChange?: (isOpen: boolean) => void
|
|
23374
|
+
/**
|
|
23375
|
+
* Whether the tooltip should be disabled, independent from the trigger.
|
|
23376
|
+
*/
|
|
23377
|
+
isDisabled?: boolean
|
|
23378
|
+
/**
|
|
23379
|
+
* The delay time for the tooltip to show up. [See guidelines](https://spectrum.adobe.com/page/tooltip/#Immediate-or-delayed-appearance).
|
|
23380
|
+
* @default 1500
|
|
23381
|
+
*/
|
|
23382
|
+
delay?: number
|
|
23383
|
+
/**
|
|
23384
|
+
* The delay time for the tooltip to close. [See guidelines](https://spectrum.adobe.com/page/tooltip/#Warmup-and-cooldown).
|
|
23385
|
+
* @default 500
|
|
23386
|
+
*/
|
|
23387
|
+
closeDelay?: number
|
|
23388
|
+
/**
|
|
23389
|
+
* By default, opens for both focus and hover. Can be made to open only for focus.
|
|
23390
|
+
* @default 'hover'
|
|
23391
|
+
*/
|
|
23392
|
+
trigger?: 'hover' | 'focus'
|
|
23393
|
+
/**
|
|
23394
|
+
* Whether the tooltip should close when the trigger is pressed.
|
|
23395
|
+
* @default true
|
|
23396
|
+
*/
|
|
23397
|
+
shouldCloseOnPress?: boolean
|
|
22657
23398
|
/**
|
|
22658
23399
|
* The content of the tooltip.
|
|
22659
23400
|
*/
|
|
@@ -22666,18 +23407,6 @@ children: | React.ReactNode
|
|
|
22666
23407
|
triggerProps: DOMAttributes;
|
|
22667
23408
|
triggerRef: React.RefObject<HTMLElement>;
|
|
22668
23409
|
}) => React.ReactNode)
|
|
22669
|
-
/**
|
|
22670
|
-
* The delay time for the tooltip to show up.
|
|
22671
|
-
*
|
|
22672
|
-
* @default 1000
|
|
22673
|
-
*/
|
|
22674
|
-
delay?: number
|
|
22675
|
-
/**
|
|
22676
|
-
* The delay time for the tooltip to hide.
|
|
22677
|
-
*
|
|
22678
|
-
* @default 500
|
|
22679
|
-
*/
|
|
22680
|
-
closeDelay?: number
|
|
22681
23410
|
/**
|
|
22682
23411
|
* Represents the size of an element.
|
|
22683
23412
|
*
|
|
@@ -29364,7 +30093,45 @@ Import the following files at the top of your stylesheet to use the Baseline UI
|
|
|
29364
30093
|
}
|
|
29365
30094
|
\`\`\`
|
|
29366
30095
|
|
|
29367
|
-
Make sure the class names present in this stylesheet aren\u2019t changed by your bundler during the build process
|
|
30096
|
+
Make sure the class names present in this stylesheet aren\u2019t changed by your bundler during the build process.
|
|
30097
|
+
|
|
30098
|
+
## Charts
|
|
30099
|
+
|
|
30100
|
+
Chart components live in a separate package so projects that don\u2019t need data visualizations don\u2019t pay the bundle cost. Install it alongside the core packages:
|
|
30101
|
+
|
|
30102
|
+
\`\`\`bash
|
|
30103
|
+
npm install @baseline-ui/charts recharts
|
|
30104
|
+
\`\`\`
|
|
30105
|
+
|
|
30106
|
+
\`recharts\` is a peer dependency, so it must be installed in the host app.
|
|
30107
|
+
|
|
30108
|
+
Import the chart styles in addition to the core styles:
|
|
30109
|
+
|
|
30110
|
+
\`\`\`css
|
|
30111
|
+
@import "@baseline-ui/tokens/dist/index.css";
|
|
30112
|
+
@import "@baseline-ui/core/dist/index.css";
|
|
30113
|
+
@import "@baseline-ui/charts/dist/index.css";
|
|
30114
|
+
\`\`\`
|
|
30115
|
+
|
|
30116
|
+
Then use the components from \`@baseline-ui/charts\`:
|
|
30117
|
+
|
|
30118
|
+
\`\`\`jsx
|
|
30119
|
+
import { BarChart, LineChart, PieChart } from "@baseline-ui/charts";
|
|
30120
|
+
|
|
30121
|
+
<LineChart
|
|
30122
|
+
width="100%"
|
|
30123
|
+
height={300}
|
|
30124
|
+
xAxisDataKey="month"
|
|
30125
|
+
data={[
|
|
30126
|
+
{ month: "Jan", users: 400 },
|
|
30127
|
+
{ month: "Feb", users: 600 },
|
|
30128
|
+
{ month: "Mar", users: 820 },
|
|
30129
|
+
{ month: "Apr", users: 1100 },
|
|
30130
|
+
]}
|
|
30131
|
+
lines={[{ dataKey: "users", name: "Users" }]}
|
|
30132
|
+
showLegend
|
|
30133
|
+
/>;
|
|
30134
|
+
\`\`\``,nutrientWebViewerTheming:`# Nutrient Web Viewer theming
|
|
29368
30135
|
|
|
29369
30136
|
Nutrient Web Viewer provides a comprehensive theming system that enables consistent styling across your application. This guide covers how to use and customize themes to match your application\u2019s design requirements.
|
|
29370
30137
|
|
|
@@ -30544,7 +31311,7 @@ padding={[null, "lg", "xl"]}
|
|
|
30544
31311
|
|
|
30545
31312
|
* [vanilla-extract sprinkles documentation](https://vanilla-extract.style/documentation/packages/sprinkles/) - Learn about the underlying sprinkles framework
|
|
30546
31313
|
* [Box component documentation](/docs/core-utilities-box--docs) - Detailed information about the Box component
|
|
30547
|
-
* [Theme documentation](/docs/theming--docs) - Learn about Baseline UI's theming system`};var c={"8":["CaretDownIcon","CaretLeftIcon","CaretRightIcon","CaretUpIcon","ChevronRightFilledIcon","ChevronRightIcon","EllipseIcon","MinusIcon","PlusIcon","XIcon"],"12":["CaretDownIcon","CaretLeftIcon","CaretRightIcon","CaretUpIcon","CheckmarkIcon","DragIndicatorIcon","DragIndicatorVerticalIcon","EditIcon","EllipseIcon","EnterKeyIcon","LockFilledIcon","LockIcon","MinusIcon","MoreVIcon","MoreIcon","PlaceholderIcon","PlusIcon","SearchIcon","SizeIcon","TrashIcon","XIcon","ZoomIcon"],"16":["AlignBottomIcon","AlignMiddleIcon","AlignTopIcon","AnonymousIcon","ArrowDiagonalTopLeftBottomRightIcon","ArrowDownCircleFilledIcon","ArrowDownIcon","ArrowIcon","ArrowLeftRightIcon","ArrowRightIcon","ArrowUpArrowDownIcon","ArrowUpIcon","AtIcon","AttachmentsIcon","AvatarIcon","BoldIcon","BookmarkFilledIcon","BookmarkIcon","BulletListIcon","CalendarIcon","CaretLeftIcon","CaretRightIcon","CheckmarkCircleFilledIcon","CheckmarkCircleIcon","CheckmarkIcon","CircleFilledIcon","ClockIcon","CopyIcon","CustomizeIcon","DocumentEditIcon","DownloadIcon","DuplicateIcon","EditIcon","ElipseAreaIcon","EllipseCloudyIcon","EllipseDashedIcon","EllipseIcon","EmbedIcon","EmojiSmileIcon","ErrorAltCircleFilledIcon","ErrorCircleFilledIcon","ErrorCircleIcon","ExpandIcon","FilterAltIcon","FolderIcon","FormButtonIcon","FormChoiceIcon","FormComboboxIcon","FormDateIcon","FormListboxIcon","FormRadioButtonIcon","FormSignatureIcon","FormTextFieldIcon","FullScreenIcon","HelpCircleIcon","HelpIcon","HereIcon","HideIcon","HighlightTextAltIcon","HighlightTextIcon","HorizontalScrollIcon","ImageIcon","InfoCircleFilledIcon","InsertIcon","ItalicIcon","LightBulbIcon","LineIcon","LinkIcon","ListIcon","LockIcon","MagicIcon","MeasureIcon","MinusIcon","MoreIcon","MoreVerticalIcon","NoteArrowRightIcon","NoteCheckIcon","NoteCircleIcon","NoteCloudIcon","NoteCrossIcon","NoteHelpIcon","NoteInsetIcon","NoteKeyIcon","NoteNewParagraphAltIcon","NoteNewParagraphIcon","NoteNoteIcon","NotePointerRightIcon","NoteSpeechBubbleIcon","NoteStarIcon","NumberedListIcon","OpenIcon","PageFittingFillIcon","PageFittingFitIcon","PageHorizontalScrollIcon","PageLayoutDoubleIcon","PageLayoutSingleIcon","PageVerticalScrollIcon","PauseIcon","PenHighlighterIcon","PenIcon","PerimeterIcon","PlaceholderIcon","PlayIcon","PlusIcon","PolygonAreaIcon","PolygonCloudyIcon","PolygonDashedIcon","PolygonIcon","PolylineIcon","ReadOnlyIcon","RectangleAreaIcon","RectangleCloudyIcon","RectangleDashedIcon","RectangleIcon","RedoIcon","RemoveFormattingIcon","ReorderIcon","RotateClockwiseIcon","RotateCounterClockwiseIcon","RulerIcon","SearchIcon","SettingsIcon","ShowIcon","SlashCommandsIcon","SoundRecordIcon","StampIcon","StarFilledIcon","StarIcon","StrikeoutTextAltIcon","TableCellIcon","TableColumnIcon","TableHeaderIcon","TableIcon","TableRowIcon","TextAlignCenterIcon","TextAlignJustifyIcon","TextAlignLeftIcon","TextAlignRightIcon","TextCalloutIcon","TextDecreaseIndentIcon","TextIcon","TextIncreaseIndentIcon","TextMarkIcon","ThumbnailsIcon","ThumbsDownIcon","ThumbsUpIcon","TrashIcon","TypeTextIcon","UnderlineIcon","UndoIcon","UnlockIcon","VerticalScrollIcon","VideoIcon","WarningFilledIcon","WarningIcon","WindowedIcon","WorkflowIcon","XCircleFilledIcon","XIcon"],"20":["AddPageIcon","AnonymousIcon","ArrowLeftIcon","ArrowRightIcon","ArrowUpCircleFilledIcon","AtIcon","AvatarFilledIcon","BoldIcon","CalloutIcon","CaretDownIcon","CaretLeftIcon","CaretRightIcon","CaretUpIcon","CheckCircleFilledIcon","CheckmarkCircleIcon","CheckmarkIcon","ClockIcon","CollapseIcon","CommentIcon","CopyIcon","CutIcon","DistanceIcon","DownloadIcon","DuplicateIcon","EditIcon","EllipseIcon","EmojiSmileIcon","ErrorAltCircleFilledIcon","ErrorAlternativeCircleIcon","ErrorCircleFilledIcon","ErrorCircleIcon","ExpandIcon","FormDateIcon","FormSignatureIcon","FormTextFieldIcon","HelpCircleIcon","HighlightTextIcon","HomeIcon","ImageIcon","InfoCircleFilledIcon","InfoCircleIcon","ItalicIcon","LinkIcon","ListIcon","LockIcon","MagicIcon","MinusIcon","MoreIcon","MoreVerticalIcon","MoveIcon","NoteArrowRightIcon","NoteCheckIcon","NoteCircleIcon","NoteCrossIcon","NoteHelpIcon","NoteInsetIcon","NoteKeyIcon","NoteNewParagraphAltIcon","NoteNewParagraphIcon","NoteNoteIcon","NotePointerRightIcon","NoteSpeechBubbleIcon","NoteStarIcon","OpenIcon","PageMoveLeftIcon","PageMoveRightIcon","PagesInsertIcon","PasteIcon","PipetteIcon","PlusIcon","PrintIcon","RotateClockwiseIcon","SearchIcon","SettingsIcon","ShapeIcon","ShareIcon","SoundIcon","SoundRecordIcon","StarFilledIcon","StarIcon","StyleIcon","TextAlignCenterIcon","TextAlignJustifyIcon","TextAlignLeftIcon","TextAlignRightIcon","TextIcon","ThumbnailsIcon","ThumbsDownIcon","ThumbsUpIcon","TrashIcon","TypeTextIcon","UnderlineIcon","UploadIcon","WarningFilledIcon","WarningIcon","XCircleFilledIcon","XCircleIcon","XIcon"],"24":["AddNoteCloudIcon","AddNoteIcon","AddTextSerifIcon","AiIcon","AirplaneIcon","AlignBottomIcon","AlignHorizontalCenterIcon","AlignMiddleIcon","AlignTopIcon","AnonymousIcon","ArrowDownIcon","ArrowIcon","ArrowLeftIcon","ArrowRightIcon","ArrowUpIcon","AtIcon","AttachmentIcon","AvatarFilledIcon","AvatarIcon","BlendModeIcon","BoldIcon","BookmarkFilledIcon","BookmarkIcon","BorderColorIcon","BottomBorderIcon","BulletListIcon","CalibrateIcon","CaptureAddIcon","CaretDownIcon","CaretIcon","CaretLeftIcon","CaretRightIcon","CaretUpIcon","CheckmarkCircleFilledIcon","CheckmarkCircleIcon","CheckmarkIcon","ChevronListIcon","ClockIcon","CloudyBorderIcon","CollapseIcon","ColorPaletteIcon","ColorSwatchIcon","CommentIcon","CommentInSidebarIcon","CommentOnPageIcon","CompareDocumentsIcon","CopyIcon","CopyPageIcon","CropIcon","CustomizeIcon","CutIcon","DateModifiedIcon","DatePlusIcon","DebugIcon","DocumentArrowDownCircleIcon","DocumentArrowDownIcon","DocumentArrowRightIcon","DocumentFilledIcon","DocumentLockIcon","DocumentPdfIcon","DownloadIcon","DragIndicatorIcon","DragIndicatorVerticalIcon","DuplicateIcon","EditAnnotationsIcon","EditContentIcon","EditDocumentIcon","EditIcon","EditThumbnailsIcon","EllipseAreaIcon","EllipseCloudyIcon","EllipseDashedIcon","EllipseIcon","EmbedIcon","EmojiSmileIcon","EndCapArrowFilledIcon","EndCapArrowIcon","EndCapChevronFilledIcon","EndCapChevronIcon","EndCapCircleIcon","EndCapDiamondIcon","EndCapNoneIcon","EndCapSlantedIcon","EndCapSquareIcon","EndCapStraightIcon","EraserIcon","ErrorAltCircleFilledIcon","ErrorAltIcon","ErrorCircleFilledIcon","ErrorCircleIcon","ExpandIcon","ExpandVerticalIcon","FillColorIcon","FilterIcon","FitToHeightIcon","FivePagesHorizontalFilledIcon","FivePagesVerticalFilledIcon","FolderAddIcon","FolderIcon","FontListIcon","FontSizeIcon","FormButtonIcon","FormChoiceIcon","FormComboboxIcon","FormDateIcon","FormListboxIcon","FormPageIcon","FormRadioButtonIcon","FormSignatureIcon","FormTextFieldIcon","FormTwoRadioButtonsIcon","FourPagesGridFilledIcon","FourPagesHorizontalFilledIcon","FourPagesStackedFilledIcon","FourPagesVerticalFilledIcon","GroupIcon","HamburgerMenuIcon","HandIcon","HeartIcon","HideIcon","HideRevealIcon","HighlightTextIcon","HomeIcon","HorizontalScollIcon","ImageIcon","InfoCircleFilledIcon","InfoCircleIcon","InitialsIcon","InnerHorizontalBorderIcon","InnerVerticalBorderIcon","InsertIcon","ItalicIcon","LayerBottomIcon","LayerDownIcon","LayerTopIcon","LayerUpIcon","LayersIcon","LeftBindingIcon","LeftBorderIcon","LineCapsIcon","LineIcon","LineSpacingIcon","LineStyleCloudyIcon","LineStyleDashedDoubleDashIcon","LineStyleDashedDoubleGapIcon","LineStyleDashedQuadrupleDashIcon","LineStyleDashedSingleGapIcon","LineStyleIcon","LineStyleSolidIcon","LineWidthIcon","LinkIcon","LockFilledIcon","LockIcon","MagicIcon","MagicPenIcon","MailIcon","MarkupIcon","MarqueeZoomIcon","MeasureIcon","MergeIcon","MessageCloudIcon","MinusIcon","MoonIcon","MoreCircleIcon","MoreIcon","MoreVerticalIcon","MoveAllDirectionsIcon","MoveLeftIcon","MoveLeftRightIcon","MoveRightIcon","MultiplePagesIcon","NonEditableIcon","NoteArrowRightIcon","NoteCheckIcon","NoteCircleIcon","NoteCloudIcon","NoteCrossIcon","NoteHelpIcon","NoteIcon","NoteInsetIcon","NoteKeyIcon","NoteNewParagraphAltIcon","NoteNewParagraphIcon","NoteNoteIcon","NotePointerRightIcon","NoteSpeechBubbleIcon","NoteStarIcon","OcrIcon","OpacityIcon","PageAddIcon","PageCurlIcon","PageDuplicateIcon","PageFittingFillIcon","PageFittingFitIcon","PageHorizontalScrollIcon","PageLandscapeIcon","PageLayoutDoubleIcon","PageLayoutSingleIcon","PageMoveLeftIcon","PageMoveRightIcon","PageNumberCircleIcon","PageNumberIcon","PagePortraitIcon","PageRemoveIcon","PageVerticalScrollIcon","PagesInsertAltIcon","PagesInsertIcon","PagesNewFromSelectionAltIcon","PagesNewFromSelectionIcon","PagesSelectAllIcon","PagesSelectNoneIcon","PasteBoardIcon","PastePageIcon","PauseIcon","PenHighlighterIcon","PenIcon","PerimeterIcon","PinDropFilledIcon","PinDropIcon","PipetteIcon","PlayIcon","PlusCircleFilledIcon","PlusCircleIcon","PlusIcon","PointerIcon","PolygonAreaIcon","PolygonCloudyIcon","PolygonDashedIcon","PolygonIcon","PolylineIcon","PrecisionIcon","PrintIcon","PrivateModeIcon","PushPinIcon","QuestionmarkCircleIcon","ReaderViewIcon","RectangleAreaIcon","RectangleCloudyIcon","RectangleDashedIcon","RectangleIcon","RedactIcon","RedactRectangleIcon","RedactTextHighlighterIcon","RedactionTextRepeatingIcon","RedactionTextSingleIcon","RedoAllIcon","RedoIcon","RegexIcon","ReplaceIcon","RightBindingIcon","RightBorderIcon","RotateClockwiseIcon","RotateCounterClockwiseIcon","RotateObjectClockwiseIcon","RotateObjectCounterClockwiseIcon","RulerIcon","ScaleIcon","SearchCircleIcon","SearchIcon","SearchSelectionIcon","SelectAllIcon","SelectionToolIcon","SettingsIcon","ShapesIcon","ShareAltIcon","ShareIcon","ShieldAddIcon","ShieldCheckmarkIcon","ShieldWarningIcon","ShieldXIcon","ShowIcon","SidebarIcon","SignOutIcon","SignatureDigitalIcon","SignatureIcon","SinglePageFilledIcon","SoundIcon","SquigglyTextIcon","StampAddIcon","StampIcon","StarFilledIcon","StarIcon","StartCapArrowFilledIcon","StartCapArrowIcon","StartCapChevronFilledIcon","StartCapChevronIcon","StartCapCircleIcon","StartCapDiamondIcon","StartCapNoneIcon","StartCapSlantedIcon","StartCapSquareIcon","StartCapStraightIcon","StrikeoutTextIcon","StyleFilledIcon","StyleIcon","StylusFilledIcon","StylusIcon","SunIcon","TableCellIcon","TextAlignCenterIcon","TextAlignJustifyIcon","TextAlignLeftIcon","TextAlignRightIcon","TextCalloutIcon","TextColorIcon","TextIcon","TextPropertiesHideIcon","TextPropertiesShowIcon","TextSerifIcon","TextSmallerIcon","ThreePagesHorizontalFilledIcon","ThreePagesStackedFilledIcon","ThreePagesVerticalFilledIcon","ThumbnailsIcon","ThumbsDownIcon","ThumbsUpIcon","TopBorderIcon","TrashIcon","TwoPagesHorizontalFilledIcon","TwoPagesVerticalFilledIcon","TypeTextIcon","UnderlineIcon","UnderlineTextIcon","UndoAllIcon","UndoIcon","UndoRedoIcon","UngroupIcon","UnlockIcon","UploadIcon","UserIcon","VerticalScrollIcon","VideoIcon","WarningFilledIcon","WarningIcon","WidgetIcon","WorkflowIcon","XCircleFilledIcon","XCircleIcon","XIcon","ZoomInIcon","ZoomOutIcon"],"36":["ArrowRight","Check","Circle","Cross","Help","Inset","Key","NewParagraphAlt","NewParagraph","Note","PointerRight","SpeechBubble","Star"]};var p={version:"0.58.0"};var u=`
|
|
31314
|
+
* [Theme documentation](/docs/theming--docs) - Learn about Baseline UI's theming system`};var c={"8":["CaretDownIcon","CaretLeftIcon","CaretRightIcon","CaretUpIcon","ChevronRightFilledIcon","ChevronRightIcon","EllipseIcon","MinusIcon","PlusIcon","XIcon"],"12":["CaretDownIcon","CaretLeftIcon","CaretRightIcon","CaretUpIcon","CheckmarkIcon","DragIndicatorIcon","DragIndicatorVerticalIcon","EditIcon","EllipseIcon","EnterKeyIcon","LockFilledIcon","LockIcon","MinusIcon","MoreVIcon","MoreIcon","PlaceholderIcon","PlusIcon","SearchIcon","SizeIcon","TrashIcon","XIcon","ZoomIcon"],"16":["AlignBottomIcon","AlignMiddleIcon","AlignTopIcon","AnonymousIcon","ArrowDiagonalTopLeftBottomRightIcon","ArrowDownCircleFilledIcon","ArrowDownIcon","ArrowIcon","ArrowLeftRightIcon","ArrowRightIcon","ArrowUpArrowDownIcon","ArrowUpIcon","AtIcon","AttachmentsIcon","AvatarIcon","BoldIcon","BookmarkFilledIcon","BookmarkIcon","BulletListIcon","CalendarIcon","CaretLeftIcon","CaretRightIcon","CheckmarkCircleFilledIcon","CheckmarkCircleIcon","CheckmarkIcon","CircleFilledIcon","ClockIcon","CopyIcon","CustomizeIcon","DocumentEditIcon","DownloadIcon","DuplicateIcon","EditIcon","ElipseAreaIcon","EllipseCloudyIcon","EllipseDashedIcon","EllipseIcon","EmbedIcon","EmojiSmileIcon","ErrorAltCircleFilledIcon","ErrorCircleFilledIcon","ErrorCircleIcon","ExpandIcon","FilterAltIcon","FolderIcon","FormButtonIcon","FormChoiceIcon","FormComboboxIcon","FormDateIcon","FormListboxIcon","FormRadioButtonIcon","FormSignatureIcon","FormTextFieldIcon","FullScreenIcon","HelpCircleIcon","HelpIcon","HereIcon","HideIcon","HighlightTextAltIcon","HighlightTextIcon","HorizontalScrollIcon","ImageIcon","InfoCircleFilledIcon","InsertIcon","ItalicIcon","LightBulbIcon","LineIcon","LinkIcon","ListIcon","LockIcon","MagicIcon","MeasureIcon","MinusIcon","MoreIcon","MoreVerticalIcon","NoteArrowRightIcon","NoteCheckIcon","NoteCircleIcon","NoteCloudIcon","NoteCrossIcon","NoteHelpIcon","NoteInsetIcon","NoteKeyIcon","NoteNewParagraphAltIcon","NoteNewParagraphIcon","NoteNoteIcon","NotePointerRightIcon","NoteSpeechBubbleIcon","NoteStarIcon","NumberedListIcon","OpenIcon","PageFittingFillIcon","PageFittingFitIcon","PageHorizontalScrollIcon","PageLayoutDoubleIcon","PageLayoutSingleIcon","PageVerticalScrollIcon","PauseIcon","PenHighlighterIcon","PenIcon","PerimeterIcon","PlaceholderIcon","PlayIcon","PlusIcon","PolygonAreaIcon","PolygonCloudyIcon","PolygonDashedIcon","PolygonIcon","PolylineIcon","ReadOnlyIcon","RectangleAreaIcon","RectangleCloudyIcon","RectangleDashedIcon","RectangleIcon","RedoIcon","RemoveFormattingIcon","ReorderIcon","RotateClockwiseIcon","RotateCounterClockwiseIcon","RulerIcon","SearchIcon","SettingsIcon","ShowIcon","SlashCommandsIcon","SoundRecordIcon","StampIcon","StarFilledIcon","StarIcon","StrikeoutTextAltIcon","TableCellIcon","TableColumnIcon","TableHeaderIcon","TableIcon","TableRowIcon","TextAlignCenterIcon","TextAlignJustifyIcon","TextAlignLeftIcon","TextAlignRightIcon","TextCalloutIcon","TextDecreaseIndentIcon","TextIcon","TextIncreaseIndentIcon","TextMarkIcon","ThumbnailsIcon","ThumbsDownIcon","ThumbsUpIcon","TrashIcon","TypeTextIcon","UnderlineIcon","UndoIcon","UnlockIcon","VerticalScrollIcon","VideoIcon","WarningFilledIcon","WarningIcon","WindowedIcon","WorkflowIcon","XCircleFilledIcon","XIcon"],"20":["AddPageIcon","AnonymousIcon","ArrowLeftIcon","ArrowRightIcon","ArrowUpCircleFilledIcon","AtIcon","AvatarFilledIcon","BoldIcon","CalloutIcon","CaretDownIcon","CaretLeftIcon","CaretRightIcon","CaretUpIcon","CheckCircleFilledIcon","CheckmarkCircleIcon","CheckmarkIcon","ClockIcon","CollapseIcon","CommentIcon","CopyIcon","CutIcon","DistanceIcon","DownloadIcon","DuplicateIcon","EditIcon","EllipseIcon","EmojiSmileIcon","ErrorAltCircleFilledIcon","ErrorAlternativeCircleIcon","ErrorCircleFilledIcon","ErrorCircleIcon","ExpandIcon","FormDateIcon","FormSignatureIcon","FormTextFieldIcon","HelpCircleIcon","HighlightTextIcon","HomeIcon","ImageIcon","InfoCircleFilledIcon","InfoCircleIcon","ItalicIcon","LinkIcon","ListIcon","LockIcon","MagicIcon","MinusIcon","MoreIcon","MoreVerticalIcon","MoveIcon","NoteArrowRightIcon","NoteCheckIcon","NoteCircleIcon","NoteCrossIcon","NoteHelpIcon","NoteInsetIcon","NoteKeyIcon","NoteNewParagraphAltIcon","NoteNewParagraphIcon","NoteNoteIcon","NotePointerRightIcon","NoteSpeechBubbleIcon","NoteStarIcon","OpenIcon","PageMoveLeftIcon","PageMoveRightIcon","PagesInsertIcon","PasteIcon","PipetteIcon","PlusIcon","PrintIcon","RotateClockwiseIcon","SearchIcon","SettingsIcon","ShapeIcon","ShareIcon","SoundIcon","SoundRecordIcon","StarFilledIcon","StarIcon","StyleIcon","TextAlignCenterIcon","TextAlignJustifyIcon","TextAlignLeftIcon","TextAlignRightIcon","TextIcon","ThumbnailsIcon","ThumbsDownIcon","ThumbsUpIcon","TrashIcon","TypeTextIcon","UnderlineIcon","UploadIcon","WarningFilledIcon","WarningIcon","XCircleFilledIcon","XCircleIcon","XIcon"],"24":["AddNoteCloudIcon","AddNoteIcon","AddTextSerifIcon","AiIcon","AirplaneIcon","AlignBottomIcon","AlignHorizontalCenterIcon","AlignMiddleIcon","AlignTopIcon","AnonymousIcon","ArrowDownIcon","ArrowIcon","ArrowLeftIcon","ArrowRightIcon","ArrowUpIcon","AtIcon","AttachmentIcon","AvatarFilledIcon","AvatarIcon","BlendModeIcon","BoldIcon","BookmarkFilledIcon","BookmarkIcon","BorderColorIcon","BottomBorderIcon","BulletListIcon","CalibrateIcon","CaptureAddIcon","CaretDownIcon","CaretIcon","CaretLeftIcon","CaretRightIcon","CaretUpIcon","CheckmarkCircleFilledIcon","CheckmarkCircleIcon","CheckmarkIcon","ChevronListIcon","ClockIcon","CloudyBorderIcon","CollapseIcon","ColorPaletteIcon","ColorSwatchIcon","CommentIcon","CommentInSidebarIcon","CommentOnPageIcon","CompareDocumentsIcon","CopyIcon","CopyPageIcon","CropIcon","CustomizeIcon","CutIcon","DateModifiedIcon","DatePlusIcon","DebugIcon","DocumentArrowDownCircleIcon","DocumentArrowDownIcon","DocumentArrowRightIcon","DocumentFilledIcon","DocumentLockIcon","DocumentPdfIcon","DownloadIcon","DragIndicatorIcon","DragIndicatorVerticalIcon","DuplicateIcon","EditAnnotationsIcon","EditContentIcon","EditDocumentIcon","EditIcon","EditThumbnailsIcon","EllipseAreaIcon","EllipseCloudyIcon","EllipseDashedIcon","EllipseIcon","EmbedIcon","EmojiSmileIcon","EndCapArrowFilledIcon","EndCapArrowIcon","EndCapChevronFilledIcon","EndCapChevronIcon","EndCapCircleIcon","EndCapDiamondIcon","EndCapNoneIcon","EndCapSlantedIcon","EndCapSquareIcon","EndCapStraightIcon","EraserIcon","ErrorAltCircleFilledIcon","ErrorAltIcon","ErrorCircleFilledIcon","ErrorCircleIcon","ExpandIcon","ExpandVerticalIcon","FillColorIcon","FilterIcon","FitToHeightIcon","FivePagesHorizontalFilledIcon","FivePagesVerticalFilledIcon","FolderAddIcon","FolderIcon","FontListIcon","FontSizeIcon","FormButtonIcon","FormChoiceIcon","FormComboboxIcon","FormDateIcon","FormListboxIcon","FormPageIcon","FormRadioButtonIcon","FormSignatureIcon","FormTextFieldIcon","FormTwoRadioButtonsIcon","FourPagesGridFilledIcon","FourPagesHorizontalFilledIcon","FourPagesStackedFilledIcon","FourPagesVerticalFilledIcon","GroupIcon","HamburgerMenuIcon","HandIcon","HeartIcon","HideIcon","HideRevealIcon","HighlightTextIcon","HomeIcon","HorizontalScollIcon","ImageIcon","InfoCircleFilledIcon","InfoCircleIcon","InitialsIcon","InnerHorizontalBorderIcon","InnerVerticalBorderIcon","InsertIcon","ItalicIcon","LayerBottomIcon","LayerDownIcon","LayerTopIcon","LayerUpIcon","LayersIcon","LeftBindingIcon","LeftBorderIcon","LineCapsIcon","LineIcon","LineSpacingIcon","LineStyleCloudyIcon","LineStyleDashedDoubleDashIcon","LineStyleDashedDoubleGapIcon","LineStyleDashedQuadrupleDashIcon","LineStyleDashedSingleGapIcon","LineStyleIcon","LineStyleSolidIcon","LineWidthIcon","LinkIcon","LockFilledIcon","LockIcon","MagicIcon","MagicPenIcon","MailIcon","MarkupIcon","MarqueeZoomIcon","MeasureIcon","MergeIcon","MessageCloudIcon","MinusIcon","MoonIcon","MoreCircleIcon","MoreIcon","MoreVerticalIcon","MoveAllDirectionsIcon","MoveLeftIcon","MoveLeftRightIcon","MoveRightIcon","MultiplePagesIcon","NonEditableIcon","NoteArrowRightIcon","NoteCheckIcon","NoteCircleIcon","NoteCloudIcon","NoteCrossIcon","NoteHelpIcon","NoteIcon","NoteInsetIcon","NoteKeyIcon","NoteNewParagraphAltIcon","NoteNewParagraphIcon","NoteNoteIcon","NotePointerRightIcon","NoteSpeechBubbleIcon","NoteStarIcon","OcrIcon","OpacityIcon","PageAddIcon","PageCurlIcon","PageDuplicateIcon","PageFittingFillIcon","PageFittingFitIcon","PageHorizontalScrollIcon","PageLandscapeIcon","PageLayoutDoubleIcon","PageLayoutSingleIcon","PageMoveLeftIcon","PageMoveRightIcon","PageNumberCircleIcon","PageNumberIcon","PagePortraitIcon","PageRemoveIcon","PageVerticalScrollIcon","PagesInsertAltIcon","PagesInsertIcon","PagesNewFromSelectionAltIcon","PagesNewFromSelectionIcon","PagesSelectAllIcon","PagesSelectNoneIcon","PasteBoardIcon","PastePageIcon","PauseIcon","PenHighlighterIcon","PenIcon","PerimeterIcon","PinDropFilledIcon","PinDropIcon","PipetteIcon","PlayIcon","PlusCircleFilledIcon","PlusCircleIcon","PlusIcon","PointerIcon","PolygonAreaIcon","PolygonCloudyIcon","PolygonDashedIcon","PolygonIcon","PolylineIcon","PrecisionIcon","PrintIcon","PrivateModeIcon","PushPinIcon","QuestionmarkCircleIcon","ReaderViewIcon","RectangleAreaIcon","RectangleCloudyIcon","RectangleDashedIcon","RectangleIcon","RedactIcon","RedactRectangleIcon","RedactTextHighlighterIcon","RedactionTextRepeatingIcon","RedactionTextSingleIcon","RedoAllIcon","RedoIcon","RegexIcon","ReplaceIcon","RightBindingIcon","RightBorderIcon","RotateClockwiseIcon","RotateCounterClockwiseIcon","RotateObjectClockwiseIcon","RotateObjectCounterClockwiseIcon","RulerIcon","ScaleIcon","SearchCircleIcon","SearchIcon","SearchSelectionIcon","SelectAllIcon","SelectionToolIcon","SettingsIcon","ShapesIcon","ShareAltIcon","ShareIcon","ShieldAddIcon","ShieldCheckmarkIcon","ShieldWarningIcon","ShieldXIcon","ShowIcon","SidebarIcon","SignOutIcon","SignatureDigitalIcon","SignatureIcon","SinglePageFilledIcon","SoundIcon","SquigglyTextIcon","StampAddIcon","StampIcon","StarFilledIcon","StarIcon","StartCapArrowFilledIcon","StartCapArrowIcon","StartCapChevronFilledIcon","StartCapChevronIcon","StartCapCircleIcon","StartCapDiamondIcon","StartCapNoneIcon","StartCapSlantedIcon","StartCapSquareIcon","StartCapStraightIcon","StrikeoutTextIcon","StyleFilledIcon","StyleIcon","StylusFilledIcon","StylusIcon","SunIcon","TableCellIcon","TextAlignCenterIcon","TextAlignJustifyIcon","TextAlignLeftIcon","TextAlignRightIcon","TextCalloutIcon","TextColorIcon","TextIcon","TextPropertiesHideIcon","TextPropertiesShowIcon","TextSerifIcon","TextSmallerIcon","ThreePagesHorizontalFilledIcon","ThreePagesStackedFilledIcon","ThreePagesVerticalFilledIcon","ThumbnailsIcon","ThumbsDownIcon","ThumbsUpIcon","TopBorderIcon","TrashIcon","TwoPagesHorizontalFilledIcon","TwoPagesVerticalFilledIcon","TypeTextIcon","UnderlineIcon","UnderlineTextIcon","UndoAllIcon","UndoIcon","UndoRedoIcon","UngroupIcon","UnlockIcon","UploadIcon","UserIcon","VerticalScrollIcon","VideoIcon","WarningFilledIcon","WarningIcon","WidgetIcon","WorkflowIcon","XCircleFilledIcon","XCircleIcon","XIcon","ZoomInIcon","ZoomOutIcon"],"36":["ArrowRight","Check","Circle","Cross","Help","Inset","Key","NewParagraphAlt","NewParagraph","Note","PointerRight","SpeechBubble","Star"]};var p={version:"0.60.0"};var u=`
|
|
30548
31315
|
# Baseline UI MCP Server Guidelines
|
|
30549
31316
|
|
|
30550
31317
|
This MCP server provides AI assistants with structured access to Baseline UI's comprehensive component documentation, icon library, theming resources, and design guidelines.
|
|
@@ -30651,7 +31418,7 @@ import { ComponentName } from "@baseline-ui/core";
|
|
|
30651
31418
|
Generate a live demo URL for a Baseline UI story. Use story IDs from the component info tool to view interactive examples. The response will be a string containing the URL. You can use this URL to understand the structure of the component and how to customize it.
|
|
30652
31419
|
`,b=`
|
|
30653
31420
|
Get the Figma URL for a given component. The response will be a string containing the URL. You can use this URL to understand the structure of the component and how it looks. The actual component's HTML structure might be slightly different from the Figma design but the overall structure and design should be the same including the design tokens.
|
|
30654
|
-
`,
|
|
31421
|
+
`,s=`
|
|
30655
31422
|
Best practices and guidelines for using Baseline UI components, styling, and design tokens. READ THIS BEFORE DOING ANYTHING.
|
|
30656
31423
|
|
|
30657
31424
|
## Usage
|
|
@@ -30659,7 +31426,7 @@ Best practices and guidelines for using Baseline UI components, styling, and des
|
|
|
30659
31426
|
Use this resource to:
|
|
30660
31427
|
- Understand best practices for using Baseline UI components
|
|
30661
31428
|
- Understand styling guidelines for using Baseline UI components
|
|
30662
|
-
`,
|
|
31429
|
+
`,l=`
|
|
30663
31430
|
A guide for implementing styling elements in Baseline UI components or applying styling to existing components. READ THIS BEFORE DOING ANYTHING.
|
|
30664
31431
|
`,g=`
|
|
30665
31432
|
List all 8 available resources in the Baseline UI MCP server with their descriptions and URIs. Use this tool to discover what information and documentation is available.
|
|
@@ -30708,4 +31475,4 @@ ${Object.entries(o).toSorted(([n],[t])=>n.localeCompare(t)).map(([n,{description
|
|
|
30708
31475
|
|
|
30709
31476
|
${t.map(e=>"- "+e).join(`
|
|
30710
31477
|
`)}`).join(`
|
|
30711
|
-
`);async function S(){let n=new mcp_js.McpServer({name:"baseline-ui",version:p.version});n.registerResource("list_components","resource://baseline-ui/list_components.md",{description:a,mimeType:"text/markdown"},e=>({contents:[{uri:e.href,mimeType:"text/markdown",text:I}]})),n.registerResource("list_icons","resource://baseline-ui/list_icons.md",{description:r,mimeType:"text/markdown"},e=>({contents:[{uri:e.href,mimeType:"text/markdown",text:P}]})),n.registerResource("getting_started","resource://baseline-ui/getting_started.md",{description:"Quick start guide for integrating Baseline UI into new projects",mimeType:"text/markdown"},e=>({contents:[{uri:e.href,mimeType:"text/markdown",text:i.gettingStarted}]})),n.registerResource("nutrient_web_viewer_theming","resource://baseline-ui/nutrient_web_viewer_theming.md",{description:"Specialized theming guide for customizing Baseline UI in Nutrient Web Viewer. This is not applicable if you are not theming the Nutrient Web Viewer SDK.",mimeType:"text/markdown"},e=>({contents:[{uri:e.href,mimeType:"text/markdown",text:i.nutrientWebViewerTheming}]})),n.registerResource("theming","resource://baseline-ui/theming.md",{description:"Comprehensive guide for implementing custom themes and color schemes in Baseline UI",mimeType:"text/markdown"},e=>({contents:[{uri:e.href,mimeType:"text/markdown",text:i.theming}]})),n.registerResource("internationalization","resource://baseline-ui/internationalization.md",{description:"Guide for implementing multi-language support and localization in Baseline UI",mimeType:"text/markdown"},e=>({contents:[{uri:e.href,mimeType:"text/markdown",text:i.internationalization}]})),n.registerResource("styling","resource://baseline-ui/styling.md",{description:
|
|
31478
|
+
`);async function S(){let n=new mcp_js.McpServer({name:"baseline-ui",version:p.version});n.registerResource("list_components","resource://baseline-ui/list_components.md",{description:a,mimeType:"text/markdown"},e=>({contents:[{uri:e.href,mimeType:"text/markdown",text:I}]})),n.registerResource("list_icons","resource://baseline-ui/list_icons.md",{description:r,mimeType:"text/markdown"},e=>({contents:[{uri:e.href,mimeType:"text/markdown",text:P}]})),n.registerResource("getting_started","resource://baseline-ui/getting_started.md",{description:"Quick start guide for integrating Baseline UI into new projects",mimeType:"text/markdown"},e=>({contents:[{uri:e.href,mimeType:"text/markdown",text:i.gettingStarted}]})),n.registerResource("nutrient_web_viewer_theming","resource://baseline-ui/nutrient_web_viewer_theming.md",{description:"Specialized theming guide for customizing Baseline UI in Nutrient Web Viewer. This is not applicable if you are not theming the Nutrient Web Viewer SDK.",mimeType:"text/markdown"},e=>({contents:[{uri:e.href,mimeType:"text/markdown",text:i.nutrientWebViewerTheming}]})),n.registerResource("theming","resource://baseline-ui/theming.md",{description:"Comprehensive guide for implementing custom themes and color schemes in Baseline UI",mimeType:"text/markdown"},e=>({contents:[{uri:e.href,mimeType:"text/markdown",text:i.theming}]})),n.registerResource("internationalization","resource://baseline-ui/internationalization.md",{description:"Guide for implementing multi-language support and localization in Baseline UI",mimeType:"text/markdown"},e=>({contents:[{uri:e.href,mimeType:"text/markdown",text:i.internationalization}]})),n.registerResource("styling","resource://baseline-ui/styling.md",{description:l,mimeType:"text/markdown"},e=>({contents:[{uri:e.href,mimeType:"text/markdown",text:i.styling}]})),n.registerResource("guidelines","resource://baseline-ui/guidelines.md",{description:s,mimeType:"text/markdown"},e=>({contents:[{uri:e.href,mimeType:"text/markdown",text:u}]})),n.registerTool("get_component_info",{title:"Get component info",description:m,inputSchema:{componentName:zod.z.enum(Object.keys(o))}},({componentName:e})=>({content:[{type:"text",text:JSON.stringify(Object.fromEntries(Object.entries(o[e]).filter(([f])=>!["description","similarTo","figmaUrl"].includes(f))),null,2)}]})),n.registerTool("get_story_url",{title:"Get story demo URL",description:h,inputSchema:{storyId:zod.z.string()}},({storyId:e})=>({content:[{type:"text",text:`https://nutrient.io/baseline-ui/iframe.html?id=${e}`}]})),n.registerTool("get_figma_url",{title:"Get Figma URL",description:b,inputSchema:{componentName:zod.z.enum(Object.keys(o))}},({componentName:e})=>({content:[{type:"text",text:o[e].figmaUrl}]})),n.registerTool("list_available_resources",{title:"List Available Resources",description:g,inputSchema:{}},()=>({content:[{type:"text",text:JSON.stringify([{name:"list_components",uri:"resource://baseline-ui/list_components.md",description:a,mimeType:"text/markdown"},{name:"list_icons",uri:"resource://baseline-ui/list_icons.md",description:r,mimeType:"text/markdown"},{name:"getting_started",uri:"resource://baseline-ui/getting_started.md",description:"Quick start guide for integrating Baseline UI into new projects",mimeType:"text/markdown"},{name:"nutrient_web_viewer_theming",uri:"resource://baseline-ui/nutrient_web_viewer_theming.md",description:"Specialized theming guide for customizing Baseline UI in Nutrient Web Viewer. This is not applicable if you are not theming the Nutrient Web Viewer SDK.",mimeType:"text/markdown"},{name:"theming",uri:"resource://baseline-ui/theming.md",description:"Comprehensive guide for implementing custom themes and color schemes in Baseline UI",mimeType:"text/markdown"},{name:"internationalization",uri:"resource://baseline-ui/internationalization.md",description:"Guide for implementing multi-language support and localization in Baseline UI",mimeType:"text/markdown"},{name:"styling",uri:"resource://baseline-ui/styling.md",description:l,mimeType:"text/markdown"},{name:"guidelines",uri:"resource://baseline-ui/guidelines.md",description:s,mimeType:"text/markdown"}],null,2)}]}));let t=new stdio_js.StdioServerTransport;await n.connect(t);}(async()=>await S())();
|