@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/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--sparkline",name:"Sparkline",snippet:`const Sparkline = () => <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},FrameProvider:{id:"core-utilities-frameprovider",breadcrumb:"Core/Utilities/FrameProvider",importStatement:`import {
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.