@baseline-ui/mcp 0.60.0 → 0.61.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 +542 -3
- package/dist/index.js +542 -3
- package/package.json +1 -1
- package/sbom.json +1 -1
package/dist/index.js
CHANGED
|
@@ -197,6 +197,13 @@ showXAxis?: boolean
|
|
|
197
197
|
* Whether to show the Y axis. @default true
|
|
198
198
|
*/
|
|
199
199
|
showYAxis?: boolean
|
|
200
|
+
/**
|
|
201
|
+
* Props passed to \`NumberFormat\` for formatting numeric values in the
|
|
202
|
+
* Y-axis ticks and tooltip entries (e.g.
|
|
203
|
+
* \`{ style: "currency", currency: "USD" }\`). When omitted, values render
|
|
204
|
+
* as raw numbers in both the tooltip and on the Y axis.
|
|
205
|
+
*/
|
|
206
|
+
numberFormatterProps?: Omit<NumberFormatProps, "value">
|
|
200
207
|
/**
|
|
201
208
|
* The data array to render. Each item is an object keyed by \`xAxisDataKey\` and bar \`dataKey\` values.
|
|
202
209
|
*/
|
|
@@ -316,6 +323,18 @@ barRadius?: number
|
|
|
316
323
|
{ dataKey: "expenses", name: "Expenses" },
|
|
317
324
|
]}
|
|
318
325
|
height={320}
|
|
326
|
+
showLegend />;`},{id:"charts-barchart--formatted",name:"Formatted",snippet:`const Formatted = () => <BarChart
|
|
327
|
+
data={yearlyData}
|
|
328
|
+
xAxisDataKey="year"
|
|
329
|
+
bars={[
|
|
330
|
+
{ dataKey: "revenue", name: "Revenue" },
|
|
331
|
+
{ dataKey: "expenses", name: "Expenses" },
|
|
332
|
+
]}
|
|
333
|
+
height={320}
|
|
334
|
+
numberFormatterProps={{
|
|
335
|
+
notation: "compact",
|
|
336
|
+
maximumFractionDigits: 1,
|
|
337
|
+
}}
|
|
319
338
|
showLegend />;`},{id:"charts-barchart--hidden-axes",name:"Hidden Axes",snippet:`const HiddenAxes = () => <BarChart
|
|
320
339
|
data={yearlyData}
|
|
321
340
|
xAxisDataKey="year"
|
|
@@ -419,6 +438,13 @@ showXAxis?: boolean
|
|
|
419
438
|
* Whether to show the Y axis. @default true
|
|
420
439
|
*/
|
|
421
440
|
showYAxis?: boolean
|
|
441
|
+
/**
|
|
442
|
+
* Props passed to \`NumberFormat\` for formatting numeric values in the
|
|
443
|
+
* Y-axis ticks and tooltip entries (e.g.
|
|
444
|
+
* \`{ style: "currency", currency: "USD" }\`). When omitted, values render
|
|
445
|
+
* as raw numbers in both the tooltip and on the Y axis.
|
|
446
|
+
*/
|
|
447
|
+
numberFormatterProps?: Omit<NumberFormatProps, "value">
|
|
422
448
|
/**
|
|
423
449
|
* The data array to render. Each item is an object keyed by \`xAxisDataKey\` and line \`dataKey\` values.
|
|
424
450
|
*/
|
|
@@ -509,7 +535,20 @@ variant?: "default" | "sparkline"
|
|
|
509
535
|
height={320}
|
|
510
536
|
showXAxis={false}
|
|
511
537
|
showYAxis={false}
|
|
512
|
-
showGrid={false} />;`},{id:"charts-linechart--
|
|
538
|
+
showGrid={false} />;`},{id:"charts-linechart--formatted",name:"Formatted",snippet:`const Formatted = () => <LineChart
|
|
539
|
+
data={monthlyData}
|
|
540
|
+
xAxisDataKey="month"
|
|
541
|
+
lines={[
|
|
542
|
+
{ dataKey: "revenue", name: "Revenue" },
|
|
543
|
+
{ dataKey: "expenses", name: "Expenses" },
|
|
544
|
+
]}
|
|
545
|
+
height={320}
|
|
546
|
+
numberFormatterProps={{
|
|
547
|
+
style: "currency",
|
|
548
|
+
currency: "USD",
|
|
549
|
+
maximumFractionDigits: 0,
|
|
550
|
+
}}
|
|
551
|
+
showLegend />;`},{id:"charts-linechart--sparkline",name:"Sparkline",snippet:`const Sparkline = () => <LineChart
|
|
513
552
|
data={monthlyData}
|
|
514
553
|
xAxisDataKey="month"
|
|
515
554
|
lines={[{ dataKey: "revenue" }]}
|
|
@@ -7093,7 +7132,507 @@ export const EditorWithAutoFocusAndCaretAtEnd = ({
|
|
|
7093
7132
|
editorHandle={editorHandleRef}
|
|
7094
7133
|
/>
|
|
7095
7134
|
);
|
|
7096
|
-
};`},similarTo:[],figmaUrl:null},
|
|
7135
|
+
};`},similarTo:[],figmaUrl:null},FileInput:{id:"core-forms-fileinput",breadcrumb:"Core/Forms/FileInput",importStatement:'import { FileInput, VariantViewer } from "@baseline-ui/core";',description:"`FileInput` is a form control for selecting one or more files from the user's device. It pairs a primary button with a read-only display of the chosen file name and supports labels, helper text, validation states, and accessibility hooks consistent with `TextInput`.",documentation:'`FileInput` is a form control for selecting one or more files from the user\'s device. It pairs a primary button with a read-only display of the chosen file name and supports labels, helper text, validation states, and accessibility hooks consistent with `TextInput`.\n\n* Built on top of [React Aria\'s `FileTrigger`](https://react-spectrum.adobe.com/react-aria/FileTrigger.html), so it works with mouse, touch, and keyboard.\n* Only the button is interactive \u2014 the label, file name, and helper text are visual and wired into the button via `aria-describedby` for assistive technology.\n* Accepts an array of MIME types or file extensions via `acceptedFileTypes`, and an `allowsMultiple` flag for selecting more than one file.\n* Supports directory selection ([`acceptDirectory`](https://react-spectrum.adobe.com/react-aria/FileTrigger.html#directory-selection)) and mobile capture ([`defaultCamera`](https://react-spectrum.adobe.com/react-aria/FileTrigger.html#media-capture)) via the underlying `FileTrigger`.\n* Renders helper, warning, and error messages with the same precedence rules as the rest of the form components: error > warning > description.\n\n```jsx\nimport { FileInput } from "@baseline-ui/core";\n\n<FileInput\n label="Attachment"\n description="Supports .mov and .mp4"\n acceptedFileTypes={[".mov", ".mp4"]}\n onValueChange={(files) => console.log(files)}\n/>;\n```\n\nIf you need a drag-and-drop drop zone instead of a button trigger, use [`ImageDropZone`](/story/core-forms-imagedropzone--basic) or [`FileUpload`](/story/core-forms-fileupload--basic).\n\nPass a visible `label` for sighted users; the label is wired into the button\'s accessible description so it is announced on focus.\n\n```jsx\n<FileInput label="Attachment" description="Supports .mov and .mp4" />\n```\n\nBy default the label sits above the field. Pass `labelPosition="start"` to align it inline.\n\n```jsx\n<FileInput label="Attachment" labelPosition="start" />\n```\n\nIf the field is described by surrounding context, omit `label`. The button\'s intrinsic name (`buttonLabel`, "Choose file" by default) is still announced.\n\n```jsx\n<FileInput aria-label="Upload a file" />\n```\n\nSet `allowsMultiple` to allow more than one file. The display switches to an aggregate `"N files"` count once more than one file is selected.\n\n```jsx\n<FileInput label="Attachments" allowsMultiple onValueChange={setFiles} />\n```\n\nPass an array of MIME types or file extensions to `acceptedFileTypes`.\n\n```jsx\n<FileInput\n label="Avatar"\n acceptedFileTypes={["image/png", "image/jpeg"]}\n onValueChange={setAvatar}\n/>\n```\n\nSet `acceptDirectory` to let users pick a folder. The browser forwards every file inside the chosen directory to `onValueChange`.\n\n```jsx\n<FileInput label="Upload folder" acceptDirectory onValueChange={setFiles} />\n```\n\nSet `defaultCamera="user"` (front-facing) or `"environment"` (rear-facing) to hint that the picker should open the device\'s camera on mobile.\n\n```jsx\n<FileInput\n label="Take a photo"\n acceptedFileTypes={["image/*"]}\n defaultCamera="environment"\n/>\n```\n\nSet `autoFocus` to focus the button on mount \u2014 useful in dialogs or multi-step flows.\n\n```jsx\n<FileInput label="Attachment" autoFocus />\n```\n\nOverride `buttonLabel` and `placeholder` for non-English copy or domain-specific wording.\n\n```jsx\n<FileInput\n label="Avatar"\n buttonLabel="Browse..."\n placeholder="Drop an image here"\n/>\n```\n\nPass `validationState="warning"` and a `warningMessage` to show a non-blocking advisory.\n\n```jsx\n<FileInput\n label="Attachment"\n validationState="warning"\n warningMessage="This file format is uncommon \u2014 make sure it is supported."\n/>\n```\n\nSetting `errorMessage` flips the field into the error state and replaces the helper text. The error message takes precedence over both `description` and `warningMessage`.\n\n```jsx\n<FileInput label="Attachment" errorMessage="Please choose a supported file." />\n```\n\nDisable the field with `isDisabled`. The button cannot be activated and the displayed file name uses the disabled text color.\n\n```jsx\n<FileInput label="Attachment" isDisabled />\n```\n\n`FileInput` exposes a single callback for handling the selection:\n\n| Prop | Signature | When to use |\n| --------------- | ------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |\n| `onValueChange` | `(files: File[]) => void` | Receives the parsed file list directly. When `allowsMultiple` is not set, the array has at most one entry. An empty array means the user opened and dismissed the file picker. |\n\n`FileInput` sets the following data attributes on the field wrapper. Use them to scope your custom styles.\n\n| Selector | Description |\n| ----------------------------------- | ---------------------------------------------------- |\n| `[data-disabled]` | Present when `isDisabled` is true. |\n| `[data-validation-state="error"]` | Present when an error message or error state is set. |\n| `[data-validation-state="warning"]` | Present when `validationState="warning"`. |\n| `.BaselineUI-FileInput` | Root element of the component. |\n\nTo style the button itself, target `.BaselineUI-FileInput button` or pass a class via `buttonClassName` / inline styles via `buttonStyle`.\n\n* Only the button is interactive; the label, file name, and helper text are visual elements wired into the button via `aria-describedby`.\n* The button keeps its own accessible name (`"Choose file"` by default), so screen readers announce the action on focus.\n* The visible `label`, the selected file name, and any helper/warning/error message are all referenced from the button\'s `aria-describedby`, so they are announced after the action label.\n* An externally supplied `aria-describedby` is merged with the internal IDs rather than replacing them.\n\n| Key | Action |\n| ----------------- | ----------------------------- |\n| `Tab` | Moves focus to the button. |\n| `Shift + Tab` | Moves focus out of the field. |\n| `Space` / `Enter` | Opens the system file picker. |',props:`interface FileInputProps {
|
|
7136
|
+
/**
|
|
7137
|
+
* The description to display below the input.
|
|
7138
|
+
*/
|
|
7139
|
+
description?: string
|
|
7140
|
+
/**
|
|
7141
|
+
* The error message to display when the input is in an error state.
|
|
7142
|
+
*/
|
|
7143
|
+
errorMessage?: string
|
|
7144
|
+
/**
|
|
7145
|
+
* The warning message to display when the input is in a warning state.
|
|
7146
|
+
*/
|
|
7147
|
+
warningMessage?: string
|
|
7148
|
+
/**
|
|
7149
|
+
* Specifies what mime type of files are allowed.
|
|
7150
|
+
*/
|
|
7151
|
+
acceptedFileTypes?: ReadonlyArray<string>
|
|
7152
|
+
/**
|
|
7153
|
+
* Whether multiple files can be selected.
|
|
7154
|
+
*/
|
|
7155
|
+
allowsMultiple?: boolean
|
|
7156
|
+
/**
|
|
7157
|
+
* Specifies the use of a media capture mechanism to capture the media on the spot.
|
|
7158
|
+
*/
|
|
7159
|
+
defaultCamera?: 'user' | 'environment'
|
|
7160
|
+
/**
|
|
7161
|
+
* Handler when a user selects a file.
|
|
7162
|
+
*/
|
|
7163
|
+
onSelect?: (files: FileList | null) => void
|
|
7164
|
+
/**
|
|
7165
|
+
* The children of the component.
|
|
7166
|
+
*/
|
|
7167
|
+
children?: ReactNode
|
|
7168
|
+
/**
|
|
7169
|
+
* Enables the selection of directories instead of individual files.
|
|
7170
|
+
*/
|
|
7171
|
+
acceptDirectory?: boolean
|
|
7172
|
+
/**
|
|
7173
|
+
* The className applied to the root element of the component.
|
|
7174
|
+
*/
|
|
7175
|
+
className?: string
|
|
7176
|
+
/**
|
|
7177
|
+
* The style applied to the root element of the component.
|
|
7178
|
+
*/
|
|
7179
|
+
style?: React.CSSProperties
|
|
7180
|
+
/**
|
|
7181
|
+
* The label to display above the field.
|
|
7182
|
+
*/
|
|
7183
|
+
label?: React.ReactNode
|
|
7184
|
+
/**
|
|
7185
|
+
* The label shown on the file picker button.
|
|
7186
|
+
*
|
|
7187
|
+
* @default "Choose file"
|
|
7188
|
+
*/
|
|
7189
|
+
buttonLabel?: React.ReactNode
|
|
7190
|
+
/**
|
|
7191
|
+
* The text shown when no file has been selected.
|
|
7192
|
+
*
|
|
7193
|
+
* @default "No file chosen"
|
|
7194
|
+
*/
|
|
7195
|
+
placeholder?: string
|
|
7196
|
+
/**
|
|
7197
|
+
* Whether the field is disabled.
|
|
7198
|
+
*/
|
|
7199
|
+
isDisabled?: boolean
|
|
7200
|
+
/**
|
|
7201
|
+
* Identifier of element(s) that describe the input.
|
|
7202
|
+
*/
|
|
7203
|
+
aria-describedby?: string
|
|
7204
|
+
/**
|
|
7205
|
+
* Accessible label for the field when no visible label is provided.
|
|
7206
|
+
*/
|
|
7207
|
+
aria-label?: string
|
|
7208
|
+
/**
|
|
7209
|
+
* Called with the selected files. An empty array signals that the picker was cancelled.
|
|
7210
|
+
*/
|
|
7211
|
+
onValueChange?: (files: File[]) => void
|
|
7212
|
+
/**
|
|
7213
|
+
* Whether to focus the input on mount.
|
|
7214
|
+
*/
|
|
7215
|
+
autoFocus?: boolean
|
|
7216
|
+
/**
|
|
7217
|
+
* Style applied to the inner button.
|
|
7218
|
+
*/
|
|
7219
|
+
buttonStyle?: React.CSSProperties
|
|
7220
|
+
/**
|
|
7221
|
+
* Class name applied to the inner button.
|
|
7222
|
+
*/
|
|
7223
|
+
buttonClassName?: string
|
|
7224
|
+
labelPosition?: any
|
|
7225
|
+
}`,stories:{usage:[{id:"core-forms-fileinput--basic",name:"Basic",snippet:`const Basic = () => <FileInput
|
|
7226
|
+
onValueChange={fn()}
|
|
7227
|
+
onChange={fn()}
|
|
7228
|
+
label="Label"
|
|
7229
|
+
description="Supports .mov and .mp4"
|
|
7230
|
+
acceptedFileTypes={[".mov", ".mp4"]} />;`},{id:"core-forms-fileinput--without-label",name:"Without Label",snippet:'const WithoutLabel = () => <FileInput onValueChange={fn()} onChange={fn()} aria-label="Upload a file" />;'},{id:"core-forms-fileinput--label-position-start",name:"Label Position Start",snippet:`const LabelPositionStart = () => <FileInput
|
|
7231
|
+
onValueChange={fn()}
|
|
7232
|
+
onChange={fn()}
|
|
7233
|
+
label="Attachment"
|
|
7234
|
+
description="Supports .mov and .mp4"
|
|
7235
|
+
labelPosition="start" />;`},{id:"core-forms-fileinput--disabled",name:"Disabled",snippet:`const Disabled = () => <FileInput
|
|
7236
|
+
onValueChange={fn()}
|
|
7237
|
+
onChange={fn()}
|
|
7238
|
+
label="Label"
|
|
7239
|
+
description="Supports .mov and .mp4"
|
|
7240
|
+
isDisabled />;`},{id:"core-forms-fileinput--with-error",name:"With Error",snippet:`const WithError = () => <FileInput
|
|
7241
|
+
onValueChange={fn()}
|
|
7242
|
+
onChange={fn()}
|
|
7243
|
+
label="Label"
|
|
7244
|
+
errorMessage="Please choose a supported file." />;`},{id:"core-forms-fileinput--with-warning",name:"With Warning",snippet:`const WithWarning = () => <FileInput
|
|
7245
|
+
onValueChange={fn()}
|
|
7246
|
+
onChange={fn()}
|
|
7247
|
+
label="Label"
|
|
7248
|
+
validationState="warning"
|
|
7249
|
+
warningMessage="This file format is uncommon \u2014 make sure it is supported." />;`},{id:"core-forms-fileinput--multiple",name:"Multiple",snippet:`const Multiple = () => <FileInput
|
|
7250
|
+
onValueChange={fn()}
|
|
7251
|
+
onChange={fn()}
|
|
7252
|
+
label="Attachments"
|
|
7253
|
+
description="You can choose multiple files."
|
|
7254
|
+
allowsMultiple />;`},{id:"core-forms-fileinput--directory",name:"Directory",snippet:`const Directory = () => <FileInput
|
|
7255
|
+
onValueChange={fn()}
|
|
7256
|
+
onChange={fn()}
|
|
7257
|
+
label="Upload folder"
|
|
7258
|
+
description="Selects all files inside the chosen folder."
|
|
7259
|
+
acceptDirectory />;`},{id:"core-forms-fileinput--custom-labels",name:"Custom Labels",snippet:`const CustomLabels = () => <FileInput
|
|
7260
|
+
onValueChange={fn()}
|
|
7261
|
+
onChange={fn()}
|
|
7262
|
+
label="Avatar"
|
|
7263
|
+
buttonLabel="Browse..."
|
|
7264
|
+
placeholder="Drop an image here" />;`},{id:"core-forms-fileinput--variants",name:"Variants",snippet:`const Variants = () => (
|
|
7265
|
+
<VariantViewer<React.ComponentProps<typeof FileInput>>
|
|
7266
|
+
cellStyle={{ minWidth: 300 }}
|
|
7267
|
+
header={["Label on top", "Label inline"]}
|
|
7268
|
+
component={FileInput}
|
|
7269
|
+
variants={{
|
|
7270
|
+
Enabled: [
|
|
7271
|
+
{ label: "Label", description: "Supports .mov and .mp4" },
|
|
7272
|
+
{
|
|
7273
|
+
label: "Label",
|
|
7274
|
+
description: "Supports .mov and .mp4",
|
|
7275
|
+
labelPosition: "start",
|
|
7276
|
+
},
|
|
7277
|
+
],
|
|
7278
|
+
Warning: [
|
|
7279
|
+
{
|
|
7280
|
+
label: "Label",
|
|
7281
|
+
validationState: "warning",
|
|
7282
|
+
warningMessage: "Warning message replaces helper text",
|
|
7283
|
+
},
|
|
7284
|
+
{
|
|
7285
|
+
label: "Label",
|
|
7286
|
+
labelPosition: "start",
|
|
7287
|
+
validationState: "warning",
|
|
7288
|
+
warningMessage: "Warning message replaces helper text",
|
|
7289
|
+
},
|
|
7290
|
+
],
|
|
7291
|
+
Error: [
|
|
7292
|
+
{
|
|
7293
|
+
label: "Label",
|
|
7294
|
+
errorMessage: "Error message replaces helper text",
|
|
7295
|
+
},
|
|
7296
|
+
{
|
|
7297
|
+
label: "Label",
|
|
7298
|
+
labelPosition: "start",
|
|
7299
|
+
errorMessage: "Error message replaces helper text",
|
|
7300
|
+
},
|
|
7301
|
+
],
|
|
7302
|
+
Disabled: [
|
|
7303
|
+
{
|
|
7304
|
+
label: "Label",
|
|
7305
|
+
description: "Supports .mov and .mp4",
|
|
7306
|
+
isDisabled: true,
|
|
7307
|
+
},
|
|
7308
|
+
{
|
|
7309
|
+
label: "Label",
|
|
7310
|
+
labelPosition: "start",
|
|
7311
|
+
description: "Supports .mov and .mp4",
|
|
7312
|
+
isDisabled: true,
|
|
7313
|
+
},
|
|
7314
|
+
],
|
|
7315
|
+
}}
|
|
7316
|
+
/>
|
|
7317
|
+
);`}],implementation:""},similarTo:[],figmaUrl:null},FileList:{id:"core-collections-filelist",breadcrumb:"Core/Collections/FileList",importStatement:'import { FileList } from "@baseline-ui/core";',description:"FileList renders a vertical list of uploaded or attached files. Each row shows the file name, an upload-progress spinner or remove button, and an optional error state. Use it to surface attachments inside forms, drawers, or upload flows.",documentation:'FileList renders a vertical list of uploaded or attached files. Each row shows the file name, an upload-progress spinner or remove button, and an optional error state. Use it to surface attachments inside forms, drawers, or upload flows.\n\nFor collecting files, pair this with `FileUpload` or `ImageDropZone`.\n\n* Built on `UNSAFE_ListBox`, so rows are keyboard navigable and announced as listbox options\n* Per-row remove button, plus `Delete` / `Backspace` keyboard removal on the focused row\n* Loading state replaces the remove button with a `ProgressSpinner`\n* Error state with a red border, error message, and optional explanation\n* Long file names truncate with an ellipsis; the full name is exposed via `title`\n* Disabled state propagates to every remove button and blocks keyboard removal\n\n```jsx\nimport { FileList } from "@baseline-ui/core";\n\nconst items = [\n { id: "1", name: "report.pdf" },\n { id: "2", name: "photo.png" },\n];\n\nexport default function App() {\n return (\n <FileList\n aria-label="Uploaded files"\n items={items}\n onRemove={(id) => console.log("remove", id)}\n />\n );\n}\n```\n\nWhen `items` is empty, FileList renders nothing \u2014 render an empty-state component yourself if you need one.\n\nA FileList row can appear in three primary states: default, loading, and error. The states can be mixed across items in a single list.\n\nSet `isLoading` on an item to show a spinner instead of the remove button while the upload is in flight. Keyboard removal (`Delete` / `Backspace`) is suppressed on loading rows.\n\n```jsx\n<FileList\n aria-label="Uploaded files"\n items={[\n { id: "1", name: "uploading.zip", isLoading: true },\n { id: "2", name: "done.pdf" },\n ]}\n onRemove={handleRemove}\n/>\n```\n\nSet `errorMessage` (and optionally `errorExplanation`) on an item to render the row in the error state. The row gets a red border and the messages appear below the file name. The remove button stays visible so the user can clear the failed item.\n\n```jsx\n<FileList\n aria-label="Uploaded files"\n items={[\n {\n id: "1",\n name: "too-large.mp4",\n errorMessage: "Upload failed",\n errorExplanation: "File exceeds the 50 MB limit.",\n },\n ]}\n onRemove={handleRemove}\n/>\n```\n\nPass `disabledKeys="all"` to disable removal across every row, or an iterable of item ids to disable specific rows. Both the per-row remove button and `Delete` / `Backspace` keyboard removal are suppressed for disabled rows; loading rows keep their spinner.\n\n```jsx\n<FileList aria-label="Uploaded files" items={items} disabledKeys="all" />\n```\n\nFile names that exceed the row width truncate with an ellipsis. The full name is exposed via the `title` attribute and read by assistive technologies, so it is recoverable on hover and through screen readers.\n\nProvide `aria-label` or `aria-labelledby` so the listbox has an accessible name. `aria-labelledby` points to the id of an existing visible label.\n\n```jsx\n<>\n <span id="attachments-label">Attached files</span>\n <FileList aria-labelledby="attachments-label" items={items} />\n</>\n```\n\n| Selector | Description |\n| ----------------------------- | ------------------------------------------ |\n| `.BaselineUI-FileList` | Root element wrapping the listbox. |\n| `[role="option"][data-key]` | A row. `data-key` matches the item\'s `id`. |\n| `[data-focus-visible="true"]` | Row currently showing the focus ring. |\n| `[data-disabled="true"]` | Row that is currently disabled. |\n\n| Key | Function |\n| ----------------------- | ------------------------------------------- |\n| `Tab` / `Shift+Tab` | Moves focus into and out of the list. |\n| `ArrowUp` / `ArrowDown` | Moves focus between rows. |\n| `Home` / `End` | Moves focus to the first or last row. |\n| `Delete` | Removes the focused row (calls `onRemove`). |\n| `Backspace` | Removes the focused row (calls `onRemove`). |\n\nThe remove button is excluded from the tab order \u2014 keyboard users delete rows by focusing the row and pressing `Delete` or `Backspace`, while pointer users click the row\'s remove button. `Delete` / `Backspace` are suppressed when the focused item is disabled (via `disabledKeys`) or loading.\n\n* `FileUpload` \u2014 picker / drop target that produces files to render here.\n* `ImageDropZone` \u2014 variant of `FileUpload` specialized for images.\n* `UNSAFE_ListBox` \u2014 the underlying listbox primitive.',props:`interface FileListProps {
|
|
7318
|
+
/**
|
|
7319
|
+
* The className applied to the root element.
|
|
7320
|
+
*/
|
|
7321
|
+
className?: string
|
|
7322
|
+
/**
|
|
7323
|
+
* The style applied to the root element.
|
|
7324
|
+
*/
|
|
7325
|
+
style?: React.CSSProperties
|
|
7326
|
+
/**
|
|
7327
|
+
* The items rendered in the list. Pass a stable reference (e.g. memoize
|
|
7328
|
+
* or hoist) when possible \u2014 every new array identity rebuilds the
|
|
7329
|
+
* underlying listbox collection.
|
|
7330
|
+
*/
|
|
7331
|
+
items: FileListItem[]
|
|
7332
|
+
/**
|
|
7333
|
+
* Called when the user removes an item via the row button or Delete.
|
|
7334
|
+
*/
|
|
7335
|
+
onRemove?: (id: string) => void
|
|
7336
|
+
/**
|
|
7337
|
+
* Keys of items that should be disabled individually, or \`"all"\` to
|
|
7338
|
+
* disable every item. Disabled items cannot be removed via the row
|
|
7339
|
+
* button or keyboard.
|
|
7340
|
+
*/
|
|
7341
|
+
disabledKeys?: Iterable<string> | "all"
|
|
7342
|
+
}`,stories:{usage:[{id:"core-collections-filelist--basic",name:"Basic",snippet:`const Basic = () => {
|
|
7343
|
+
const [items, setItems] = React.useState(args.items);
|
|
7344
|
+
React.useEffect(() => {
|
|
7345
|
+
setItems(args.items);
|
|
7346
|
+
}, [args.items]);
|
|
7347
|
+
|
|
7348
|
+
return (
|
|
7349
|
+
<FileList
|
|
7350
|
+
aria-label="Uploaded files"
|
|
7351
|
+
items={items}
|
|
7352
|
+
onRemove={(id) => {
|
|
7353
|
+
args.onRemove?.(id);
|
|
7354
|
+
setItems((current) => current.filter((item) => item.id !== id));
|
|
7355
|
+
}} />
|
|
7356
|
+
);
|
|
7357
|
+
};`},{id:"core-collections-filelist--loading",name:"Loading",snippet:`const Loading = () => {
|
|
7358
|
+
const [items, setItems] = React.useState(args.items);
|
|
7359
|
+
React.useEffect(() => {
|
|
7360
|
+
setItems(args.items);
|
|
7361
|
+
}, [args.items]);
|
|
7362
|
+
|
|
7363
|
+
return (
|
|
7364
|
+
<FileList
|
|
7365
|
+
aria-label="Uploaded files"
|
|
7366
|
+
items={items}
|
|
7367
|
+
onRemove={(id) => {
|
|
7368
|
+
args.onRemove?.(id);
|
|
7369
|
+
setItems((current) => current.filter((item) => item.id !== id));
|
|
7370
|
+
}} />
|
|
7371
|
+
);
|
|
7372
|
+
};`},{id:"core-collections-filelist--with-error",name:"With Error",snippet:`const WithError = () => {
|
|
7373
|
+
const [items, setItems] = React.useState(args.items);
|
|
7374
|
+
React.useEffect(() => {
|
|
7375
|
+
setItems(args.items);
|
|
7376
|
+
}, [args.items]);
|
|
7377
|
+
|
|
7378
|
+
return (
|
|
7379
|
+
<FileList
|
|
7380
|
+
aria-label="Uploaded files"
|
|
7381
|
+
items={items}
|
|
7382
|
+
onRemove={(id) => {
|
|
7383
|
+
args.onRemove?.(id);
|
|
7384
|
+
setItems((current) => current.filter((item) => item.id !== id));
|
|
7385
|
+
}} />
|
|
7386
|
+
);
|
|
7387
|
+
};`},{id:"core-collections-filelist--disabled",name:"Disabled",snippet:`const Disabled = () => {
|
|
7388
|
+
const [items, setItems] = React.useState(args.items);
|
|
7389
|
+
React.useEffect(() => {
|
|
7390
|
+
setItems(args.items);
|
|
7391
|
+
}, [args.items]);
|
|
7392
|
+
|
|
7393
|
+
return (
|
|
7394
|
+
<FileList
|
|
7395
|
+
aria-label="Uploaded files"
|
|
7396
|
+
disabledKeys="all"
|
|
7397
|
+
items={items}
|
|
7398
|
+
onRemove={(id) => {
|
|
7399
|
+
args.onRemove?.(id);
|
|
7400
|
+
setItems((current) => current.filter((item) => item.id !== id));
|
|
7401
|
+
}} />
|
|
7402
|
+
);
|
|
7403
|
+
};`},{id:"core-collections-filelist--disabled-items",name:"Disabled Items",snippet:`const DisabledItems = () => {
|
|
7404
|
+
const [items, setItems] = React.useState(args.items);
|
|
7405
|
+
React.useEffect(() => {
|
|
7406
|
+
setItems(args.items);
|
|
7407
|
+
}, [args.items]);
|
|
7408
|
+
|
|
7409
|
+
return (
|
|
7410
|
+
<FileList
|
|
7411
|
+
aria-label="Uploaded files"
|
|
7412
|
+
disabledKeys={["1", "3"]}
|
|
7413
|
+
items={items}
|
|
7414
|
+
onRemove={(id) => {
|
|
7415
|
+
args.onRemove?.(id);
|
|
7416
|
+
setItems((current) => current.filter((item) => item.id !== id));
|
|
7417
|
+
}} />
|
|
7418
|
+
);
|
|
7419
|
+
};`},{id:"core-collections-filelist--long-filename",name:"Long Filename",snippet:`const LongFilename = () => {
|
|
7420
|
+
const [items, setItems] = React.useState(args.items);
|
|
7421
|
+
React.useEffect(() => {
|
|
7422
|
+
setItems(args.items);
|
|
7423
|
+
}, [args.items]);
|
|
7424
|
+
|
|
7425
|
+
return (
|
|
7426
|
+
<FileList
|
|
7427
|
+
aria-label="Uploaded files"
|
|
7428
|
+
items={items}
|
|
7429
|
+
onRemove={(id) => {
|
|
7430
|
+
args.onRemove?.(id);
|
|
7431
|
+
setItems((current) => current.filter((item) => item.id !== id));
|
|
7432
|
+
}} />
|
|
7433
|
+
);
|
|
7434
|
+
};`},{id:"core-collections-filelist--mixed-states",name:"Mixed States",snippet:`const MixedStates = () => {
|
|
7435
|
+
const [items, setItems] = React.useState(args.items);
|
|
7436
|
+
React.useEffect(() => {
|
|
7437
|
+
setItems(args.items);
|
|
7438
|
+
}, [args.items]);
|
|
7439
|
+
|
|
7440
|
+
return (
|
|
7441
|
+
<FileList
|
|
7442
|
+
aria-label="Uploaded files"
|
|
7443
|
+
items={items}
|
|
7444
|
+
onRemove={(id) => {
|
|
7445
|
+
args.onRemove?.(id);
|
|
7446
|
+
setItems((current) => current.filter((item) => item.id !== id));
|
|
7447
|
+
}} />
|
|
7448
|
+
);
|
|
7449
|
+
};`},{id:"core-collections-filelist--many-items",name:"Many Items",snippet:`const ManyItems = () => {
|
|
7450
|
+
const [items, setItems] = React.useState(args.items);
|
|
7451
|
+
React.useEffect(() => {
|
|
7452
|
+
setItems(args.items);
|
|
7453
|
+
}, [args.items]);
|
|
7454
|
+
|
|
7455
|
+
return (
|
|
7456
|
+
<FileList
|
|
7457
|
+
aria-label="Uploaded files"
|
|
7458
|
+
style={{ maxHeight: 240, overflowY: "auto" }}
|
|
7459
|
+
items={items}
|
|
7460
|
+
onRemove={(id) => {
|
|
7461
|
+
args.onRemove?.(id);
|
|
7462
|
+
setItems((current) => current.filter((item) => item.id !== id));
|
|
7463
|
+
}} />
|
|
7464
|
+
);
|
|
7465
|
+
};`}],implementation:`import React from "react";
|
|
7466
|
+
|
|
7467
|
+
import { FileList } from "../FileList";
|
|
7468
|
+
|
|
7469
|
+
import type { FileListItem } from "../FileList.types";
|
|
7470
|
+
|
|
7471
|
+
export const defaultItems: FileListItem[] = [
|
|
7472
|
+
{ id: "1", name: "report.pdf" },
|
|
7473
|
+
{ id: "2", name: "photo.png" },
|
|
7474
|
+
{ id: "3", name: "notes.txt" },
|
|
7475
|
+
];
|
|
7476
|
+
|
|
7477
|
+
export const loadingItems: FileListItem[] = [
|
|
7478
|
+
{ id: "1", name: "uploading-large-archive.zip", isLoading: true },
|
|
7479
|
+
{ id: "2", name: "already-uploaded.pdf" },
|
|
7480
|
+
];
|
|
7481
|
+
|
|
7482
|
+
export const errorItems: FileListItem[] = [
|
|
7483
|
+
{
|
|
7484
|
+
id: "1",
|
|
7485
|
+
name: "too-large.mp4",
|
|
7486
|
+
errorMessage: "Upload failed",
|
|
7487
|
+
errorExplanation: "File exceeds the 50 MB limit.",
|
|
7488
|
+
},
|
|
7489
|
+
{
|
|
7490
|
+
id: "2",
|
|
7491
|
+
name: "unsupported.exe",
|
|
7492
|
+
errorMessage: "Unsupported file type",
|
|
7493
|
+
},
|
|
7494
|
+
{ id: "3", name: "ok.pdf" },
|
|
7495
|
+
];
|
|
7496
|
+
|
|
7497
|
+
export const longNameItems: FileListItem[] = [
|
|
7498
|
+
{
|
|
7499
|
+
id: "1",
|
|
7500
|
+
name: "This is a very long file name that should be truncated in the UI.pdf",
|
|
7501
|
+
},
|
|
7502
|
+
{ id: "2", name: "short.pdf" },
|
|
7503
|
+
];
|
|
7504
|
+
|
|
7505
|
+
export const mixedStateItems: FileListItem[] = [
|
|
7506
|
+
{ id: "1", name: "uploading.zip", isLoading: true },
|
|
7507
|
+
{
|
|
7508
|
+
id: "2",
|
|
7509
|
+
name: "too-large.mp4",
|
|
7510
|
+
errorMessage: "Upload failed",
|
|
7511
|
+
errorExplanation: "File exceeds the 50 MB limit.",
|
|
7512
|
+
},
|
|
7513
|
+
{ id: "3", name: "report.pdf" },
|
|
7514
|
+
];
|
|
7515
|
+
|
|
7516
|
+
export const manyItems: FileListItem[] = Array.from({ length: 12 }, (_, i) => ({
|
|
7517
|
+
id: String(i + 1),
|
|
7518
|
+
name: \`attachment-\${i + 1}.pdf\`,
|
|
7519
|
+
}));
|
|
7520
|
+
|
|
7521
|
+
interface BasicProps {
|
|
7522
|
+
onRemove?: (id: string) => void;
|
|
7523
|
+
disabledKeys?: Iterable<string> | "all";
|
|
7524
|
+
}
|
|
7525
|
+
|
|
7526
|
+
export const BasicFileList: React.FC<BasicProps> = ({
|
|
7527
|
+
onRemove,
|
|
7528
|
+
disabledKeys,
|
|
7529
|
+
}) => {
|
|
7530
|
+
const [items, setItems] = React.useState<FileListItem[]>(defaultItems);
|
|
7531
|
+
return (
|
|
7532
|
+
<FileList
|
|
7533
|
+
aria-label="Uploaded files"
|
|
7534
|
+
items={items}
|
|
7535
|
+
disabledKeys={disabledKeys}
|
|
7536
|
+
onRemove={(id) => {
|
|
7537
|
+
onRemove?.(id);
|
|
7538
|
+
setItems((current) => current.filter((item) => item.id !== id));
|
|
7539
|
+
}}
|
|
7540
|
+
/>
|
|
7541
|
+
);
|
|
7542
|
+
};
|
|
7543
|
+
|
|
7544
|
+
export const EmptyFileList: React.FC = () => (
|
|
7545
|
+
<FileList aria-label="Empty" items={[]} />
|
|
7546
|
+
);
|
|
7547
|
+
|
|
7548
|
+
export const LoadingFileList: React.FC = () => (
|
|
7549
|
+
<FileList aria-label="Uploaded files" items={loadingItems} />
|
|
7550
|
+
);
|
|
7551
|
+
|
|
7552
|
+
export const ErrorFileList: React.FC = () => (
|
|
7553
|
+
<FileList
|
|
7554
|
+
aria-label="Uploaded files"
|
|
7555
|
+
items={errorItems}
|
|
7556
|
+
onRemove={() => {}}
|
|
7557
|
+
/>
|
|
7558
|
+
);
|
|
7559
|
+
|
|
7560
|
+
export const AriaLabelFileList: React.FC = () => (
|
|
7561
|
+
<FileList aria-label="My files" items={defaultItems} />
|
|
7562
|
+
);
|
|
7563
|
+
|
|
7564
|
+
export const AriaLabelledByFileList: React.FC = () => (
|
|
7565
|
+
<>
|
|
7566
|
+
<span id="file-list-label">Attached files</span>
|
|
7567
|
+
<FileList aria-labelledby="file-list-label" items={defaultItems} />
|
|
7568
|
+
</>
|
|
7569
|
+
);
|
|
7570
|
+
|
|
7571
|
+
export const DisabledLoadingFileList: React.FC<BasicProps> = ({
|
|
7572
|
+
onRemove,
|
|
7573
|
+
disabledKeys,
|
|
7574
|
+
}) => (
|
|
7575
|
+
<FileList
|
|
7576
|
+
aria-label="Uploaded files"
|
|
7577
|
+
items={[
|
|
7578
|
+
{ id: "1", name: "uploading.zip", isLoading: true },
|
|
7579
|
+
{ id: "2", name: "done.pdf" },
|
|
7580
|
+
]}
|
|
7581
|
+
disabledKeys={disabledKeys}
|
|
7582
|
+
onRemove={onRemove}
|
|
7583
|
+
/>
|
|
7584
|
+
);
|
|
7585
|
+
|
|
7586
|
+
export const ClassNameFileList: React.FC = () => (
|
|
7587
|
+
<FileList
|
|
7588
|
+
aria-label="Files"
|
|
7589
|
+
className="my-custom-list"
|
|
7590
|
+
items={defaultItems}
|
|
7591
|
+
/>
|
|
7592
|
+
);
|
|
7593
|
+
|
|
7594
|
+
export const LongNameFileList: React.FC = () => (
|
|
7595
|
+
<FileList
|
|
7596
|
+
aria-label="Files"
|
|
7597
|
+
items={longNameItems}
|
|
7598
|
+
style={{ width: 200 }}
|
|
7599
|
+
onRemove={() => {}}
|
|
7600
|
+
/>
|
|
7601
|
+
);
|
|
7602
|
+
|
|
7603
|
+
export const NoCallbackFileList: React.FC = () => (
|
|
7604
|
+
<FileList aria-label="Files" items={defaultItems} />
|
|
7605
|
+
);
|
|
7606
|
+
|
|
7607
|
+
export const ErrorNoCallbackFileList: React.FC = () => (
|
|
7608
|
+
<FileList aria-label="Uploaded files" items={errorItems} />
|
|
7609
|
+
);
|
|
7610
|
+
|
|
7611
|
+
export const LoadingNoCallbackFileList: React.FC = () => (
|
|
7612
|
+
<FileList aria-label="Uploaded files" items={loadingItems} />
|
|
7613
|
+
);
|
|
7614
|
+
|
|
7615
|
+
export const AriaDescribedByFileList: React.FC = () => (
|
|
7616
|
+
<>
|
|
7617
|
+
<span id="file-list-help">Drag files anywhere to upload</span>
|
|
7618
|
+
<FileList
|
|
7619
|
+
aria-label="Files"
|
|
7620
|
+
aria-describedby="file-list-help"
|
|
7621
|
+
items={defaultItems}
|
|
7622
|
+
/>
|
|
7623
|
+
</>
|
|
7624
|
+
);
|
|
7625
|
+
|
|
7626
|
+
export const AriaDetailsFileList: React.FC = () => (
|
|
7627
|
+
<>
|
|
7628
|
+
<span id="file-list-details">Detailed upload information</span>
|
|
7629
|
+
<FileList
|
|
7630
|
+
aria-label="Files"
|
|
7631
|
+
aria-details="file-list-details"
|
|
7632
|
+
items={defaultItems}
|
|
7633
|
+
/>
|
|
7634
|
+
</>
|
|
7635
|
+
);`},similarTo:["FileUpload","ImageDropZone"],figmaUrl:null},FrameProvider:{id:"core-utilities-frameprovider",breadcrumb:"Core/Utilities/FrameProvider",importStatement:`import {
|
|
7097
7636
|
Box,
|
|
7098
7637
|
FrameProvider,
|
|
7099
7638
|
NestedTestFrameProvider,
|
|
@@ -31311,7 +31850,7 @@ padding={[null, "lg", "xl"]}
|
|
|
31311
31850
|
|
|
31312
31851
|
* [vanilla-extract sprinkles documentation](https://vanilla-extract.style/documentation/packages/sprinkles/) - Learn about the underlying sprinkles framework
|
|
31313
31852
|
* [Box component documentation](/docs/core-utilities-box--docs) - Detailed information about the Box component
|
|
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=`
|
|
31853
|
+
* [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.61.0"};var u=`
|
|
31315
31854
|
# Baseline UI MCP Server Guidelines
|
|
31316
31855
|
|
|
31317
31856
|
This MCP server provides AI assistants with structured access to Baseline UI's comprehensive component documentation, icon library, theming resources, and design guidelines.
|