@baseline-ui/mcp 3.0.1 → 3.1.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 CHANGED
@@ -1,5 +1,7 @@
1
1
  # @baseline-ui/mcp
2
2
 
3
+ ## 3.1.0
4
+
3
5
  ## 3.0.1
4
6
 
5
7
  ## 3.0.0
@@ -11809,6 +11809,39 @@ export function ScrollIntoViewImageGalleryExample() {
11809
11809
  );
11810
11810
  }
11811
11811
 
11812
+ export function MountEffectScrollIntoViewImageGalleryExample() {
11813
+ const listBoxHandle = React.useRef<ListHandle>(null);
11814
+ const galleryItems = Array.from({ length: 20 }, (_, i) => {
11815
+ const index = i + 1;
11816
+ return {
11817
+ id: \`image-\${i}\`,
11818
+ src: resolvePublicUrl(\`gallery/\${(index % 10) + 1}.jpg\`),
11819
+ alt: \`Image \${index}\`,
11820
+ label: index.toString(),
11821
+ };
11822
+ });
11823
+
11824
+ // Scrolls from the consumer's own mount effect, which runs before the list box's
11825
+ // collection has rendered any options.
11826
+ React.useEffect(() => {
11827
+ listBoxHandle.current?.scrollIntoView("image-15");
11828
+ }, []);
11829
+
11830
+ return (
11831
+ <Box display="flex" flexDirection="column" gap="md" style={{ width: 500 }}>
11832
+ <div
11833
+ style={{
11834
+ maxHeight: 300,
11835
+ overflow: "auto",
11836
+ border: "1px solid #ccc",
11837
+ }}
11838
+ >
11839
+ <ImageGallery items={galleryItems} listBoxHandle={listBoxHandle} />
11840
+ </div>
11841
+ </Box>
11842
+ );
11843
+ }
11844
+
11812
11845
  // Counts \`renderImage\` calls so a spec can prove that a re-render which changes nothing
11813
11846
  // the gallery reads does not throw away the list box's cached options. \`Report\` publishes
11814
11847
  // the tally taken *before* its own render, so two clicks bracket exactly one re-render.
@@ -14490,7 +14523,8 @@ onOpenChange?: (isOpen: boolean) => void
14490
14523
  children: React.ReactNode
14491
14524
  }`,stories:{usage:[{id:"core-overlays-modal--basic",name:"Basic",snippet:"const Basic = (args) => <DialogExample modalProps={args} />;"},{id:"core-overlays-modal--default-open",name:"Default Open",snippet:"const DefaultOpen = (args) => <DialogExample modalProps={args} />;"},{id:"core-overlays-modal--controlled",name:"Controlled",snippet:"const Controlled = (args) => <DialogExample modalProps={args} />;"}],implementation:`import { IFrame, ShadowRoot } from "@baseline-ui/test-utils/client";
14492
14525
  import { sprinkles } from "@baseline-ui/tokens";
14493
- import React, { useState } from "react";
14526
+ import { getOwnerDocument } from "@react-aria/utils";
14527
+ import React, { useEffect, useRef, useState } from "react";
14494
14528
  import { VisuallyHidden, useId } from "react-aria";
14495
14529
 
14496
14530
  import { ActionButton } from "../../ActionButton";
@@ -14501,6 +14535,7 @@ import { Editor } from "../../Editor";
14501
14535
  import { FrameProvider } from "../../FrameProvider";
14502
14536
  import { ListBox } from "../../ListBox";
14503
14537
  import { NumberInput } from "../../NumberInput";
14538
+ import { PortalContainerProvider } from "../../PortalContainerProvider";
14504
14539
  import { RadioGroup } from "../../RadioGroup";
14505
14540
  import { Select } from "../../Select";
14506
14541
  import { Slider } from "../../Slider";
@@ -14903,6 +14938,59 @@ export const DisabledFocusManagementExample: React.FC<{
14903
14938
  )}
14904
14939
  </Box>
14905
14940
  );
14941
+ };
14942
+
14943
+ /**
14944
+ * A \`defaultOpen\` Modal whose portal container only resolves to \`document.body\`
14945
+ * in a mount effect, through either \`ModalContent.portalContainer\` or
14946
+ * \`PortalContainerProvider\`. The portal target is \`document.body\` before and
14947
+ * after, so nothing remounts when the container arrives \u2014 only its identity
14948
+ * changes.
14949
+ */
14950
+ export const ModalLateBodyContainerExample: React.FC<
14951
+ TestComponentProps & { via: "prop" | "provider" }
14952
+ > = ({ enableInert, via }) => {
14953
+ const rootRef = useRef<HTMLDivElement>(null);
14954
+ const [container, setContainer] = useState<HTMLElement>();
14955
+
14956
+ // The body of the tree's own document, not this module's: under the iframe
14957
+ // fixture the component renders into the frame while the module still
14958
+ // evaluates in the top-level realm.
14959
+ useEffect(() => {
14960
+ setContainer(getOwnerDocument(rootRef.current).body);
14961
+ }, []);
14962
+
14963
+ const modal = (
14964
+ <Modal defaultOpen={true}>
14965
+ <ModalContent
14966
+ portalContainer={via === "prop" ? container : undefined}
14967
+ UNSAFE_enableInert={enableInert}
14968
+ >
14969
+ <Dialog aria-label="Late container">
14970
+ <Text>Modal content</Text>
14971
+ </Dialog>
14972
+ </ModalContent>
14973
+ </Modal>
14974
+ );
14975
+
14976
+ return (
14977
+ <Box
14978
+ ref={rootRef}
14979
+ display="flex"
14980
+ flexDirection="column"
14981
+ gap="md"
14982
+ padding="lg"
14983
+ >
14984
+ <ActionButton label="Background button" variant="secondary" />
14985
+ {via === "provider" ? (
14986
+ <PortalContainerProvider portalContainer={container}>
14987
+ {modal}
14988
+ </PortalContainerProvider>
14989
+ ) : (
14990
+ modal
14991
+ )}
14992
+ </Box>
14993
+ );
14906
14994
  };`},similarTo:[],figmaUrl:null},NumberFormat:{id:"core-utilities-numberformat",breadcrumb:"Core/Utilities/NumberFormat",importStatement:'import { NumberFormat } from "@baseline-ui/core";',description:"`NumberFormat` provides localized number formatting for the current locale. It automatically updates when the locale changes, and handles caching of the number formatter for performance.\nIt is a wrapper around the [Intl.NumberFormat](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Intl/NumberFormat) API.",documentation:`\`NumberFormat\` provides localized number formatting for the current locale. It automatically updates when the locale changes, and handles caching of the number formatter for performance.
14907
14995
  It is a wrapper around the [Intl.NumberFormat](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Intl/NumberFormat) API.
14908
14996
 
@@ -17167,7 +17255,7 @@ children: React.ReactNode
17167
17255
  />
17168
17256
  );`},{id:"core-overlays-popover--with-boundary-element",name:"With Boundary Element",snippet:"const WithBoundaryElement = (args) => <PopoverBoundaryElementExample popoverProps={args} />;"},{id:"core-overlays-popover--with-no-boundary",name:"With No Boundary",snippet:"const WithNoBoundary = () => <PopoverNoBoundaryExample />;"},{id:"core-overlays-popover--with-dynamic-trigger-width",name:"With Dynamic Trigger Width",snippet:"const WithDynamicTriggerWidth = (args) => <PopoverTriggerWidthExample popoverProps={args} />;"}],implementation:`import { sprinkles, themeVars } from "@baseline-ui/tokens";
17169
17257
  import { ScrollBox } from "@pw/utils/components";
17170
- import { mergeRefs } from "@react-aria/utils";
17258
+ import { getOwnerDocument, mergeRefs } from "@react-aria/utils";
17171
17259
  import React, { useEffect, useRef, useState } from "react";
17172
17260
  import { useButton, useInteractOutside } from "react-aria";
17173
17261
  import { flushSync } from "react-dom";
@@ -17176,6 +17264,7 @@ import { ActionButton } from "../../ActionButton";
17176
17264
  import { Box } from "../../Box";
17177
17265
  import { Dialog } from "../../Dialog";
17178
17266
  import { ListBoxExample, items } from "../../ListBox/__tests__/testComponents";
17267
+ import { PortalContainerProvider } from "../../PortalContainerProvider";
17179
17268
  import { Select } from "../../Select";
17180
17269
  import { popoverContentCn } from "../../Select/Select.css";
17181
17270
  import { Switch } from "../../Switch";
@@ -18329,6 +18418,60 @@ export const PopoverHorizontalBoundaryBehaviorDemo: React.FC<{
18329
18418
  </Box>
18330
18419
  </Box>
18331
18420
  );
18421
+ };
18422
+
18423
+ /**
18424
+ * A \`defaultOpen\` Popover whose portal container only resolves to \`document.body\`
18425
+ * in a mount effect, through either \`PopoverContent.portalContainer\` or
18426
+ * \`PortalContainerProvider\`. The portal target is \`document.body\` before and
18427
+ * after, so nothing remounts when the container arrives \u2014 only its identity
18428
+ * changes.
18429
+ */
18430
+ export const PopoverLateBodyContainerExample: React.FC<{
18431
+ via: "prop" | "provider";
18432
+ }> = ({ via }) => {
18433
+ const rootRef = useRef<HTMLDivElement>(null);
18434
+ const [container, setContainer] = useState<HTMLElement>();
18435
+
18436
+ // The body of the tree's own document, not this module's: under the iframe
18437
+ // fixture the component renders into the frame while the module still
18438
+ // evaluates in the top-level realm.
18439
+ useEffect(() => {
18440
+ setContainer(getOwnerDocument(rootRef.current).body);
18441
+ }, []);
18442
+
18443
+ const popover = (
18444
+ <Popover type="listbox" defaultOpen={true}>
18445
+ <PopoverTrigger>
18446
+ <ActionButton label="Open" />
18447
+ </PopoverTrigger>
18448
+ <PopoverContent
18449
+ offset={4}
18450
+ portalContainer={via === "prop" ? container : undefined}
18451
+ >
18452
+ <ListBoxExample className={popoverContentCn} autoFocus="first" />
18453
+ </PopoverContent>
18454
+ </Popover>
18455
+ );
18456
+
18457
+ return (
18458
+ <Box
18459
+ ref={rootRef}
18460
+ display="flex"
18461
+ flexDirection="column"
18462
+ gap="md"
18463
+ padding="lg"
18464
+ >
18465
+ <ActionButton label="Background button" variant="secondary" />
18466
+ {via === "provider" ? (
18467
+ <PortalContainerProvider portalContainer={container}>
18468
+ {popover}
18469
+ </PortalContainerProvider>
18470
+ ) : (
18471
+ popover
18472
+ )}
18473
+ </Box>
18474
+ );
18332
18475
  };`},similarTo:[],figmaUrl:null},Portal:{id:"core-utilities-portal",breadcrumb:"Core/Utilities/Portal",importStatement:'import { Portal } from "@baseline-ui/core";',description:"`Portal` renders its children into an overlay portal outside the normal React DOM hierarchy. It integrates with `ThemeProvider` so that the portal content inherits the current theme and virtual keyboard handling configuration.",documentation:'`Portal` renders its children into an overlay portal outside the normal React DOM hierarchy. It integrates with `ThemeProvider` so that the portal content inherits the current theme and virtual keyboard handling configuration.\n\n* Renders children into an overlay container managed by React Aria\n* Automatically wraps children in a `ThemeProvider` to propagate the active theme into the portal\n* Respects a custom `portalContainer` provided via prop or the nearest `PortalContainerProvider` in context\n* Supports all standard `StylingProps` (`className`, `style`, `data-block-id`, `data-block-class`)\n\n```jsx\nimport { Portal } from "@baseline-ui/core";\n\nexport default function App() {\n return (\n <Portal>\n <div>I am rendered in a portal</div>\n </Portal>\n );\n}\n```\n\nPass a `portalContainer` element to render the portal inside a specific DOM node instead of the default overlay container. This is useful when rendering inside Shadow DOM or other isolated subtrees.\n\n```jsx\nimport { Portal } from "@baseline-ui/core";\n\nconst shadowRoot = document.querySelector("#shadow-host").shadowRoot;\nconst container = shadowRoot.querySelector(".portal-root");\n\nexport default function App() {\n return (\n <Portal portalContainer={container}>\n <div>Rendered inside shadow DOM</div>\n </Portal>\n );\n}\n```',props:`interface PortalProps {
18333
18476
  /**
18334
18477
  * The container element in which the overlay portal will be placed.
@@ -29497,6 +29640,45 @@ export const ScrollIntoViewExample: React.FC = () => {
29497
29640
  );
29498
29641
  };
29499
29642
 
29643
+ export const SupersededScrollIntoViewExample: React.FC = () => {
29644
+ const listBoxHandle = React.useRef<ListHandle>(null);
29645
+ const [itemCount, setItemCount] = React.useState(5);
29646
+
29647
+ return (
29648
+ <Box display="flex" flexDirection="column" gap="md" style={{ width: 300 }}>
29649
+ <ActionButton
29650
+ label="Grow then scroll to Item 0"
29651
+ onPress={() => {
29652
+ // Item 19 only renders once this handler returns, so the first call finds
29653
+ // nothing and schedules a retry. The second call succeeds against the options
29654
+ // already on screen, and must cancel that retry instead of letting it scroll
29655
+ // back to Item 19 a frame later.
29656
+ setItemCount(20);
29657
+ listBoxHandle.current?.scrollIntoView("item-19");
29658
+ listBoxHandle.current?.scrollIntoView("item-0");
29659
+ }}
29660
+ />
29661
+
29662
+ <div
29663
+ style={{
29664
+ maxHeight: 200,
29665
+ overflow: "auto",
29666
+ border: "1px solid #ccc",
29667
+ }}
29668
+ >
29669
+ <ListBox
29670
+ items={Array.from({ length: itemCount }).map((_, i) => ({
29671
+ id: \`item-\${i}\`,
29672
+ label: \`Item \${i}\`,
29673
+ }))}
29674
+ listBoxHandle={listBoxHandle}
29675
+ aria-label="Superseded scroll list"
29676
+ />
29677
+ </div>
29678
+ </Box>
29679
+ );
29680
+ };
29681
+
29500
29682
  const virtualSections = Array.from({ length: 10 }).map((_, sectionIndex) => ({
29501
29683
  id: \`section-\${sectionIndex}\`,
29502
29684
  title: \`Section \${sectionIndex + 1}\`,
@@ -29690,6 +29872,35 @@ export const VirtualizedScrollIntoViewExample: React.FC = () => {
29690
29872
  );
29691
29873
  };
29692
29874
 
29875
+ export const MountEffectVirtualizedScrollIntoViewExample: React.FC = () => {
29876
+ const listBoxHandle = React.useRef<ListHandle>(null);
29877
+ const items = Array.from({ length: 10_000 }).map((_, i) => ({
29878
+ id: \`item-\${i}\`,
29879
+ label: \`Item \${i}\`,
29880
+ }));
29881
+
29882
+ // Scrolls from the consumer's own mount effect, which runs before the virtualizer has
29883
+ // rendered any options.
29884
+ useEffect(() => {
29885
+ listBoxHandle.current?.scrollIntoView("item-5000");
29886
+ }, []);
29887
+
29888
+ return (
29889
+ <Virtualizer {...VIRTUALIZER_LAYOUT_DEFAULT_OPTIONS.LIST_BOX}>
29890
+ <ListBox
29891
+ items={items}
29892
+ listBoxHandle={listBoxHandle}
29893
+ style={{
29894
+ height: 300,
29895
+ width: 300,
29896
+ overflow: "auto",
29897
+ }}
29898
+ aria-label="Virtualized mount effect list"
29899
+ />
29900
+ </Virtualizer>
29901
+ );
29902
+ };
29903
+
29693
29904
  // Each example varies exactly one prop off \`count\` and keeps the rest at stable
29694
29905
  // module-level identity; varying several at once would let one invalidate the cache for
29695
29906
  // the others, hiding a missing \`dependencies\` entry.
@@ -30452,7 +30663,8 @@ UNSAFE_enableInert?: boolean | ((isDrawer: boolean) => boolean)
30452
30663
  />
30453
30664
  );`},{id:"core-overlays-modal-modalcontent--drawer-mobile",name:"Drawer Mobile",snippet:"const DrawerMobile = () => <ModalDrawerExample />;"},{id:"core-overlays-modal-modalcontent--drawer-mobile-with-nested-popover",name:"Drawer Mobile With Nested Popover",snippet:"const DrawerMobileWithNestedPopover = () => <SelectInsideModalExample />;"},{id:"core-overlays-modal-modalcontent--uncontrolled-interaction-outside",name:"Uncontrolled Interaction Outside",snippet:"const UncontrolledInteractionOutside = () => <UncontrolledInteractionOutsideExample />;"},{id:"core-overlays-modal-modalcontent--long-content",name:"Long Content",snippet:"const LongContent = () => <LongModalExample />;"},{id:"core-overlays-modal-modalcontent--form-controls",name:"Form Controls",snippet:"const FormControls = () => <FormControlsInModalExample defaultOpen={true} />;"},{id:"core-overlays-modal-modalcontent--with-inert",name:"With Inert",snippet:"const WithInert = () => <FormControlsInModalExample enableInert={true} />;",description:"Experimental: Uses the HTML `inert` attribute instead of `aria-hidden` to hide elements outside the modal. This makes elements truly non-interactive (not just hidden from screen readers) which can improve performance and accessibility. Note: With inert enabled, elements outside the modal cannot be clicked or focused. Try interacting with the background elements when the modal is open vs closed."},{id:"core-overlays-modal-modalcontent--with-disabled-focus-management",name:"With Disabled Focus Management",snippet:"const WithDisabledFocusManagement = () => <DisabledFocusManagementExample />;",description:"Demonstrates `disableFocusManagement` with a FrameProvider. When the modal is open, the text input outside the FrameProvider container remains interactive because focus trapping and restoration are disabled."}],implementation:`import { IFrame, ShadowRoot } from "@baseline-ui/test-utils/client";
30454
30665
  import { sprinkles } from "@baseline-ui/tokens";
30455
- import React, { useState } from "react";
30666
+ import { getOwnerDocument } from "@react-aria/utils";
30667
+ import React, { useEffect, useRef, useState } from "react";
30456
30668
  import { VisuallyHidden, useId } from "react-aria";
30457
30669
 
30458
30670
  import { ActionButton } from "../../ActionButton";
@@ -30463,6 +30675,7 @@ import { Editor } from "../../Editor";
30463
30675
  import { FrameProvider } from "../../FrameProvider";
30464
30676
  import { ListBox } from "../../ListBox";
30465
30677
  import { NumberInput } from "../../NumberInput";
30678
+ import { PortalContainerProvider } from "../../PortalContainerProvider";
30466
30679
  import { RadioGroup } from "../../RadioGroup";
30467
30680
  import { Select } from "../../Select";
30468
30681
  import { Slider } from "../../Slider";
@@ -30865,6 +31078,59 @@ export const DisabledFocusManagementExample: React.FC<{
30865
31078
  )}
30866
31079
  </Box>
30867
31080
  );
31081
+ };
31082
+
31083
+ /**
31084
+ * A \`defaultOpen\` Modal whose portal container only resolves to \`document.body\`
31085
+ * in a mount effect, through either \`ModalContent.portalContainer\` or
31086
+ * \`PortalContainerProvider\`. The portal target is \`document.body\` before and
31087
+ * after, so nothing remounts when the container arrives \u2014 only its identity
31088
+ * changes.
31089
+ */
31090
+ export const ModalLateBodyContainerExample: React.FC<
31091
+ TestComponentProps & { via: "prop" | "provider" }
31092
+ > = ({ enableInert, via }) => {
31093
+ const rootRef = useRef<HTMLDivElement>(null);
31094
+ const [container, setContainer] = useState<HTMLElement>();
31095
+
31096
+ // The body of the tree's own document, not this module's: under the iframe
31097
+ // fixture the component renders into the frame while the module still
31098
+ // evaluates in the top-level realm.
31099
+ useEffect(() => {
31100
+ setContainer(getOwnerDocument(rootRef.current).body);
31101
+ }, []);
31102
+
31103
+ const modal = (
31104
+ <Modal defaultOpen={true}>
31105
+ <ModalContent
31106
+ portalContainer={via === "prop" ? container : undefined}
31107
+ UNSAFE_enableInert={enableInert}
31108
+ >
31109
+ <Dialog aria-label="Late container">
31110
+ <Text>Modal content</Text>
31111
+ </Dialog>
31112
+ </ModalContent>
31113
+ </Modal>
31114
+ );
31115
+
31116
+ return (
31117
+ <Box
31118
+ ref={rootRef}
31119
+ display="flex"
31120
+ flexDirection="column"
31121
+ gap="md"
31122
+ padding="lg"
31123
+ >
31124
+ <ActionButton label="Background button" variant="secondary" />
31125
+ {via === "provider" ? (
31126
+ <PortalContainerProvider portalContainer={container}>
31127
+ {modal}
31128
+ </PortalContainerProvider>
31129
+ ) : (
31130
+ modal
31131
+ )}
31132
+ </Box>
31133
+ );
30868
31134
  };`},similarTo:[],figmaUrl:null},PointPickerContent:{id:"core-content-pointpicker-pointpickercontent",importStatement:`import {
30869
31135
  Box,
30870
31136
  MultiplePointPickersExample,
@@ -32392,7 +32658,7 @@ horizontalBoundaryBehavior?: "shift" | "anchor"
32392
32658
  boundaryWidth={360}
32393
32659
  boundaryHeight={300} />;`}],implementation:`import { sprinkles, themeVars } from "@baseline-ui/tokens";
32394
32660
  import { ScrollBox } from "@pw/utils/components";
32395
- import { mergeRefs } from "@react-aria/utils";
32661
+ import { getOwnerDocument, mergeRefs } from "@react-aria/utils";
32396
32662
  import React, { useEffect, useRef, useState } from "react";
32397
32663
  import { useButton, useInteractOutside } from "react-aria";
32398
32664
  import { flushSync } from "react-dom";
@@ -32401,6 +32667,7 @@ import { ActionButton } from "../../ActionButton";
32401
32667
  import { Box } from "../../Box";
32402
32668
  import { Dialog } from "../../Dialog";
32403
32669
  import { ListBoxExample, items } from "../../ListBox/__tests__/testComponents";
32670
+ import { PortalContainerProvider } from "../../PortalContainerProvider";
32404
32671
  import { Select } from "../../Select";
32405
32672
  import { popoverContentCn } from "../../Select/Select.css";
32406
32673
  import { Switch } from "../../Switch";
@@ -33554,6 +33821,60 @@ export const PopoverHorizontalBoundaryBehaviorDemo: React.FC<{
33554
33821
  </Box>
33555
33822
  </Box>
33556
33823
  );
33824
+ };
33825
+
33826
+ /**
33827
+ * A \`defaultOpen\` Popover whose portal container only resolves to \`document.body\`
33828
+ * in a mount effect, through either \`PopoverContent.portalContainer\` or
33829
+ * \`PortalContainerProvider\`. The portal target is \`document.body\` before and
33830
+ * after, so nothing remounts when the container arrives \u2014 only its identity
33831
+ * changes.
33832
+ */
33833
+ export const PopoverLateBodyContainerExample: React.FC<{
33834
+ via: "prop" | "provider";
33835
+ }> = ({ via }) => {
33836
+ const rootRef = useRef<HTMLDivElement>(null);
33837
+ const [container, setContainer] = useState<HTMLElement>();
33838
+
33839
+ // The body of the tree's own document, not this module's: under the iframe
33840
+ // fixture the component renders into the frame while the module still
33841
+ // evaluates in the top-level realm.
33842
+ useEffect(() => {
33843
+ setContainer(getOwnerDocument(rootRef.current).body);
33844
+ }, []);
33845
+
33846
+ const popover = (
33847
+ <Popover type="listbox" defaultOpen={true}>
33848
+ <PopoverTrigger>
33849
+ <ActionButton label="Open" />
33850
+ </PopoverTrigger>
33851
+ <PopoverContent
33852
+ offset={4}
33853
+ portalContainer={via === "prop" ? container : undefined}
33854
+ >
33855
+ <ListBoxExample className={popoverContentCn} autoFocus="first" />
33856
+ </PopoverContent>
33857
+ </Popover>
33858
+ );
33859
+
33860
+ return (
33861
+ <Box
33862
+ ref={rootRef}
33863
+ display="flex"
33864
+ flexDirection="column"
33865
+ gap="md"
33866
+ padding="lg"
33867
+ >
33868
+ <ActionButton label="Background button" variant="secondary" />
33869
+ {via === "provider" ? (
33870
+ <PortalContainerProvider portalContainer={container}>
33871
+ {popover}
33872
+ </PortalContainerProvider>
33873
+ ) : (
33874
+ popover
33875
+ )}
33876
+ </Box>
33877
+ );
33557
33878
  };`},similarTo:[],figmaUrl:null},PopoverTrigger:{id:"core-overlays-popover-popovertrigger",importStatement:`import {
33558
33879
  ActionButton,
33559
33880
  PopoverFunctionChildrenExample,
@@ -33585,7 +33906,7 @@ anchorRect?: Rect
33585
33906
  <PopoverWithCustomPositionExample anchorRect={anchorRect} />
33586
33907
  );`},{id:"core-overlays-popover-popovertrigger--function-children",name:"Function Children",snippet:"const FunctionChildren = () => <PopoverFunctionChildrenExample />;"}],implementation:`import { sprinkles, themeVars } from "@baseline-ui/tokens";
33587
33908
  import { ScrollBox } from "@pw/utils/components";
33588
- import { mergeRefs } from "@react-aria/utils";
33909
+ import { getOwnerDocument, mergeRefs } from "@react-aria/utils";
33589
33910
  import React, { useEffect, useRef, useState } from "react";
33590
33911
  import { useButton, useInteractOutside } from "react-aria";
33591
33912
  import { flushSync } from "react-dom";
@@ -33594,6 +33915,7 @@ import { ActionButton } from "../../ActionButton";
33594
33915
  import { Box } from "../../Box";
33595
33916
  import { Dialog } from "../../Dialog";
33596
33917
  import { ListBoxExample, items } from "../../ListBox/__tests__/testComponents";
33918
+ import { PortalContainerProvider } from "../../PortalContainerProvider";
33597
33919
  import { Select } from "../../Select";
33598
33920
  import { popoverContentCn } from "../../Select/Select.css";
33599
33921
  import { Switch } from "../../Switch";
@@ -34747,6 +35069,60 @@ export const PopoverHorizontalBoundaryBehaviorDemo: React.FC<{
34747
35069
  </Box>
34748
35070
  </Box>
34749
35071
  );
35072
+ };
35073
+
35074
+ /**
35075
+ * A \`defaultOpen\` Popover whose portal container only resolves to \`document.body\`
35076
+ * in a mount effect, through either \`PopoverContent.portalContainer\` or
35077
+ * \`PortalContainerProvider\`. The portal target is \`document.body\` before and
35078
+ * after, so nothing remounts when the container arrives \u2014 only its identity
35079
+ * changes.
35080
+ */
35081
+ export const PopoverLateBodyContainerExample: React.FC<{
35082
+ via: "prop" | "provider";
35083
+ }> = ({ via }) => {
35084
+ const rootRef = useRef<HTMLDivElement>(null);
35085
+ const [container, setContainer] = useState<HTMLElement>();
35086
+
35087
+ // The body of the tree's own document, not this module's: under the iframe
35088
+ // fixture the component renders into the frame while the module still
35089
+ // evaluates in the top-level realm.
35090
+ useEffect(() => {
35091
+ setContainer(getOwnerDocument(rootRef.current).body);
35092
+ }, []);
35093
+
35094
+ const popover = (
35095
+ <Popover type="listbox" defaultOpen={true}>
35096
+ <PopoverTrigger>
35097
+ <ActionButton label="Open" />
35098
+ </PopoverTrigger>
35099
+ <PopoverContent
35100
+ offset={4}
35101
+ portalContainer={via === "prop" ? container : undefined}
35102
+ >
35103
+ <ListBoxExample className={popoverContentCn} autoFocus="first" />
35104
+ </PopoverContent>
35105
+ </Popover>
35106
+ );
35107
+
35108
+ return (
35109
+ <Box
35110
+ ref={rootRef}
35111
+ display="flex"
35112
+ flexDirection="column"
35113
+ gap="md"
35114
+ padding="lg"
35115
+ >
35116
+ <ActionButton label="Background button" variant="secondary" />
35117
+ {via === "provider" ? (
35118
+ <PortalContainerProvider portalContainer={container}>
35119
+ {popover}
35120
+ </PortalContainerProvider>
35121
+ ) : (
35122
+ popover
35123
+ )}
35124
+ </Box>
35125
+ );
34750
35126
  };`},similarTo:[],figmaUrl:null},IconSelect:{id:"core-forms-select-iconselect",importStatement:'import { IconSelect } from "@baseline-ui/core";',description:"",documentation:null,props:`interface IconSelectProps {
34751
35127
  /**
34752
35128
  * The icon to show at the start of the color input.
@@ -36895,7 +37271,7 @@ padding={[null, "lg", "xl"]}
36895
37271
 
36896
37272
  * [vanilla-extract sprinkles documentation](https://vanilla-extract.style/documentation/packages/sprinkles/) - Learn about the underlying sprinkles framework
36897
37273
  * [Box component documentation](/docs/core-utilities-box--docs) - Detailed information about the Box component
36898
- * [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:"3.0.1"};var u=`
37274
+ * [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:"3.1.0"};var u=`
36899
37275
  # Baseline UI MCP Server Guidelines
36900
37276
 
36901
37277
  This MCP server provides AI assistants with structured access to Baseline UI's comprehensive component documentation, icon library, theming resources, and design guidelines.
package/dist/index.js CHANGED
@@ -1,2 +1,2 @@
1
1
  #!/usr/bin/env node
2
- import {a}from'./chunk-7RC5CLRO.js';import {StdioServerTransport}from'@modelcontextprotocol/sdk/server/stdio.js';(async()=>await a().connect(new StdioServerTransport))();
2
+ import {a}from'./chunk-MDOP4NRY.js';import {StdioServerTransport}from'@modelcontextprotocol/sdk/server/stdio.js';(async()=>await a().connect(new StdioServerTransport))();
package/dist/server.cjs CHANGED
@@ -11809,6 +11809,39 @@ export function ScrollIntoViewImageGalleryExample() {
11809
11809
  );
11810
11810
  }
11811
11811
 
11812
+ export function MountEffectScrollIntoViewImageGalleryExample() {
11813
+ const listBoxHandle = React.useRef<ListHandle>(null);
11814
+ const galleryItems = Array.from({ length: 20 }, (_, i) => {
11815
+ const index = i + 1;
11816
+ return {
11817
+ id: \`image-\${i}\`,
11818
+ src: resolvePublicUrl(\`gallery/\${(index % 10) + 1}.jpg\`),
11819
+ alt: \`Image \${index}\`,
11820
+ label: index.toString(),
11821
+ };
11822
+ });
11823
+
11824
+ // Scrolls from the consumer's own mount effect, which runs before the list box's
11825
+ // collection has rendered any options.
11826
+ React.useEffect(() => {
11827
+ listBoxHandle.current?.scrollIntoView("image-15");
11828
+ }, []);
11829
+
11830
+ return (
11831
+ <Box display="flex" flexDirection="column" gap="md" style={{ width: 500 }}>
11832
+ <div
11833
+ style={{
11834
+ maxHeight: 300,
11835
+ overflow: "auto",
11836
+ border: "1px solid #ccc",
11837
+ }}
11838
+ >
11839
+ <ImageGallery items={galleryItems} listBoxHandle={listBoxHandle} />
11840
+ </div>
11841
+ </Box>
11842
+ );
11843
+ }
11844
+
11812
11845
  // Counts \`renderImage\` calls so a spec can prove that a re-render which changes nothing
11813
11846
  // the gallery reads does not throw away the list box's cached options. \`Report\` publishes
11814
11847
  // the tally taken *before* its own render, so two clicks bracket exactly one re-render.
@@ -14490,7 +14523,8 @@ onOpenChange?: (isOpen: boolean) => void
14490
14523
  children: React.ReactNode
14491
14524
  }`,stories:{usage:[{id:"core-overlays-modal--basic",name:"Basic",snippet:"const Basic = (args) => <DialogExample modalProps={args} />;"},{id:"core-overlays-modal--default-open",name:"Default Open",snippet:"const DefaultOpen = (args) => <DialogExample modalProps={args} />;"},{id:"core-overlays-modal--controlled",name:"Controlled",snippet:"const Controlled = (args) => <DialogExample modalProps={args} />;"}],implementation:`import { IFrame, ShadowRoot } from "@baseline-ui/test-utils/client";
14492
14525
  import { sprinkles } from "@baseline-ui/tokens";
14493
- import React, { useState } from "react";
14526
+ import { getOwnerDocument } from "@react-aria/utils";
14527
+ import React, { useEffect, useRef, useState } from "react";
14494
14528
  import { VisuallyHidden, useId } from "react-aria";
14495
14529
 
14496
14530
  import { ActionButton } from "../../ActionButton";
@@ -14501,6 +14535,7 @@ import { Editor } from "../../Editor";
14501
14535
  import { FrameProvider } from "../../FrameProvider";
14502
14536
  import { ListBox } from "../../ListBox";
14503
14537
  import { NumberInput } from "../../NumberInput";
14538
+ import { PortalContainerProvider } from "../../PortalContainerProvider";
14504
14539
  import { RadioGroup } from "../../RadioGroup";
14505
14540
  import { Select } from "../../Select";
14506
14541
  import { Slider } from "../../Slider";
@@ -14903,6 +14938,59 @@ export const DisabledFocusManagementExample: React.FC<{
14903
14938
  )}
14904
14939
  </Box>
14905
14940
  );
14941
+ };
14942
+
14943
+ /**
14944
+ * A \`defaultOpen\` Modal whose portal container only resolves to \`document.body\`
14945
+ * in a mount effect, through either \`ModalContent.portalContainer\` or
14946
+ * \`PortalContainerProvider\`. The portal target is \`document.body\` before and
14947
+ * after, so nothing remounts when the container arrives \u2014 only its identity
14948
+ * changes.
14949
+ */
14950
+ export const ModalLateBodyContainerExample: React.FC<
14951
+ TestComponentProps & { via: "prop" | "provider" }
14952
+ > = ({ enableInert, via }) => {
14953
+ const rootRef = useRef<HTMLDivElement>(null);
14954
+ const [container, setContainer] = useState<HTMLElement>();
14955
+
14956
+ // The body of the tree's own document, not this module's: under the iframe
14957
+ // fixture the component renders into the frame while the module still
14958
+ // evaluates in the top-level realm.
14959
+ useEffect(() => {
14960
+ setContainer(getOwnerDocument(rootRef.current).body);
14961
+ }, []);
14962
+
14963
+ const modal = (
14964
+ <Modal defaultOpen={true}>
14965
+ <ModalContent
14966
+ portalContainer={via === "prop" ? container : undefined}
14967
+ UNSAFE_enableInert={enableInert}
14968
+ >
14969
+ <Dialog aria-label="Late container">
14970
+ <Text>Modal content</Text>
14971
+ </Dialog>
14972
+ </ModalContent>
14973
+ </Modal>
14974
+ );
14975
+
14976
+ return (
14977
+ <Box
14978
+ ref={rootRef}
14979
+ display="flex"
14980
+ flexDirection="column"
14981
+ gap="md"
14982
+ padding="lg"
14983
+ >
14984
+ <ActionButton label="Background button" variant="secondary" />
14985
+ {via === "provider" ? (
14986
+ <PortalContainerProvider portalContainer={container}>
14987
+ {modal}
14988
+ </PortalContainerProvider>
14989
+ ) : (
14990
+ modal
14991
+ )}
14992
+ </Box>
14993
+ );
14906
14994
  };`},similarTo:[],figmaUrl:null},NumberFormat:{id:"core-utilities-numberformat",breadcrumb:"Core/Utilities/NumberFormat",importStatement:'import { NumberFormat } from "@baseline-ui/core";',description:"`NumberFormat` provides localized number formatting for the current locale. It automatically updates when the locale changes, and handles caching of the number formatter for performance.\nIt is a wrapper around the [Intl.NumberFormat](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Intl/NumberFormat) API.",documentation:`\`NumberFormat\` provides localized number formatting for the current locale. It automatically updates when the locale changes, and handles caching of the number formatter for performance.
14907
14995
  It is a wrapper around the [Intl.NumberFormat](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Intl/NumberFormat) API.
14908
14996
 
@@ -17167,7 +17255,7 @@ children: React.ReactNode
17167
17255
  />
17168
17256
  );`},{id:"core-overlays-popover--with-boundary-element",name:"With Boundary Element",snippet:"const WithBoundaryElement = (args) => <PopoverBoundaryElementExample popoverProps={args} />;"},{id:"core-overlays-popover--with-no-boundary",name:"With No Boundary",snippet:"const WithNoBoundary = () => <PopoverNoBoundaryExample />;"},{id:"core-overlays-popover--with-dynamic-trigger-width",name:"With Dynamic Trigger Width",snippet:"const WithDynamicTriggerWidth = (args) => <PopoverTriggerWidthExample popoverProps={args} />;"}],implementation:`import { sprinkles, themeVars } from "@baseline-ui/tokens";
17169
17257
  import { ScrollBox } from "@pw/utils/components";
17170
- import { mergeRefs } from "@react-aria/utils";
17258
+ import { getOwnerDocument, mergeRefs } from "@react-aria/utils";
17171
17259
  import React, { useEffect, useRef, useState } from "react";
17172
17260
  import { useButton, useInteractOutside } from "react-aria";
17173
17261
  import { flushSync } from "react-dom";
@@ -17176,6 +17264,7 @@ import { ActionButton } from "../../ActionButton";
17176
17264
  import { Box } from "../../Box";
17177
17265
  import { Dialog } from "../../Dialog";
17178
17266
  import { ListBoxExample, items } from "../../ListBox/__tests__/testComponents";
17267
+ import { PortalContainerProvider } from "../../PortalContainerProvider";
17179
17268
  import { Select } from "../../Select";
17180
17269
  import { popoverContentCn } from "../../Select/Select.css";
17181
17270
  import { Switch } from "../../Switch";
@@ -18329,6 +18418,60 @@ export const PopoverHorizontalBoundaryBehaviorDemo: React.FC<{
18329
18418
  </Box>
18330
18419
  </Box>
18331
18420
  );
18421
+ };
18422
+
18423
+ /**
18424
+ * A \`defaultOpen\` Popover whose portal container only resolves to \`document.body\`
18425
+ * in a mount effect, through either \`PopoverContent.portalContainer\` or
18426
+ * \`PortalContainerProvider\`. The portal target is \`document.body\` before and
18427
+ * after, so nothing remounts when the container arrives \u2014 only its identity
18428
+ * changes.
18429
+ */
18430
+ export const PopoverLateBodyContainerExample: React.FC<{
18431
+ via: "prop" | "provider";
18432
+ }> = ({ via }) => {
18433
+ const rootRef = useRef<HTMLDivElement>(null);
18434
+ const [container, setContainer] = useState<HTMLElement>();
18435
+
18436
+ // The body of the tree's own document, not this module's: under the iframe
18437
+ // fixture the component renders into the frame while the module still
18438
+ // evaluates in the top-level realm.
18439
+ useEffect(() => {
18440
+ setContainer(getOwnerDocument(rootRef.current).body);
18441
+ }, []);
18442
+
18443
+ const popover = (
18444
+ <Popover type="listbox" defaultOpen={true}>
18445
+ <PopoverTrigger>
18446
+ <ActionButton label="Open" />
18447
+ </PopoverTrigger>
18448
+ <PopoverContent
18449
+ offset={4}
18450
+ portalContainer={via === "prop" ? container : undefined}
18451
+ >
18452
+ <ListBoxExample className={popoverContentCn} autoFocus="first" />
18453
+ </PopoverContent>
18454
+ </Popover>
18455
+ );
18456
+
18457
+ return (
18458
+ <Box
18459
+ ref={rootRef}
18460
+ display="flex"
18461
+ flexDirection="column"
18462
+ gap="md"
18463
+ padding="lg"
18464
+ >
18465
+ <ActionButton label="Background button" variant="secondary" />
18466
+ {via === "provider" ? (
18467
+ <PortalContainerProvider portalContainer={container}>
18468
+ {popover}
18469
+ </PortalContainerProvider>
18470
+ ) : (
18471
+ popover
18472
+ )}
18473
+ </Box>
18474
+ );
18332
18475
  };`},similarTo:[],figmaUrl:null},Portal:{id:"core-utilities-portal",breadcrumb:"Core/Utilities/Portal",importStatement:'import { Portal } from "@baseline-ui/core";',description:"`Portal` renders its children into an overlay portal outside the normal React DOM hierarchy. It integrates with `ThemeProvider` so that the portal content inherits the current theme and virtual keyboard handling configuration.",documentation:'`Portal` renders its children into an overlay portal outside the normal React DOM hierarchy. It integrates with `ThemeProvider` so that the portal content inherits the current theme and virtual keyboard handling configuration.\n\n* Renders children into an overlay container managed by React Aria\n* Automatically wraps children in a `ThemeProvider` to propagate the active theme into the portal\n* Respects a custom `portalContainer` provided via prop or the nearest `PortalContainerProvider` in context\n* Supports all standard `StylingProps` (`className`, `style`, `data-block-id`, `data-block-class`)\n\n```jsx\nimport { Portal } from "@baseline-ui/core";\n\nexport default function App() {\n return (\n <Portal>\n <div>I am rendered in a portal</div>\n </Portal>\n );\n}\n```\n\nPass a `portalContainer` element to render the portal inside a specific DOM node instead of the default overlay container. This is useful when rendering inside Shadow DOM or other isolated subtrees.\n\n```jsx\nimport { Portal } from "@baseline-ui/core";\n\nconst shadowRoot = document.querySelector("#shadow-host").shadowRoot;\nconst container = shadowRoot.querySelector(".portal-root");\n\nexport default function App() {\n return (\n <Portal portalContainer={container}>\n <div>Rendered inside shadow DOM</div>\n </Portal>\n );\n}\n```',props:`interface PortalProps {
18333
18476
  /**
18334
18477
  * The container element in which the overlay portal will be placed.
@@ -29497,6 +29640,45 @@ export const ScrollIntoViewExample: React.FC = () => {
29497
29640
  );
29498
29641
  };
29499
29642
 
29643
+ export const SupersededScrollIntoViewExample: React.FC = () => {
29644
+ const listBoxHandle = React.useRef<ListHandle>(null);
29645
+ const [itemCount, setItemCount] = React.useState(5);
29646
+
29647
+ return (
29648
+ <Box display="flex" flexDirection="column" gap="md" style={{ width: 300 }}>
29649
+ <ActionButton
29650
+ label="Grow then scroll to Item 0"
29651
+ onPress={() => {
29652
+ // Item 19 only renders once this handler returns, so the first call finds
29653
+ // nothing and schedules a retry. The second call succeeds against the options
29654
+ // already on screen, and must cancel that retry instead of letting it scroll
29655
+ // back to Item 19 a frame later.
29656
+ setItemCount(20);
29657
+ listBoxHandle.current?.scrollIntoView("item-19");
29658
+ listBoxHandle.current?.scrollIntoView("item-0");
29659
+ }}
29660
+ />
29661
+
29662
+ <div
29663
+ style={{
29664
+ maxHeight: 200,
29665
+ overflow: "auto",
29666
+ border: "1px solid #ccc",
29667
+ }}
29668
+ >
29669
+ <ListBox
29670
+ items={Array.from({ length: itemCount }).map((_, i) => ({
29671
+ id: \`item-\${i}\`,
29672
+ label: \`Item \${i}\`,
29673
+ }))}
29674
+ listBoxHandle={listBoxHandle}
29675
+ aria-label="Superseded scroll list"
29676
+ />
29677
+ </div>
29678
+ </Box>
29679
+ );
29680
+ };
29681
+
29500
29682
  const virtualSections = Array.from({ length: 10 }).map((_, sectionIndex) => ({
29501
29683
  id: \`section-\${sectionIndex}\`,
29502
29684
  title: \`Section \${sectionIndex + 1}\`,
@@ -29690,6 +29872,35 @@ export const VirtualizedScrollIntoViewExample: React.FC = () => {
29690
29872
  );
29691
29873
  };
29692
29874
 
29875
+ export const MountEffectVirtualizedScrollIntoViewExample: React.FC = () => {
29876
+ const listBoxHandle = React.useRef<ListHandle>(null);
29877
+ const items = Array.from({ length: 10_000 }).map((_, i) => ({
29878
+ id: \`item-\${i}\`,
29879
+ label: \`Item \${i}\`,
29880
+ }));
29881
+
29882
+ // Scrolls from the consumer's own mount effect, which runs before the virtualizer has
29883
+ // rendered any options.
29884
+ useEffect(() => {
29885
+ listBoxHandle.current?.scrollIntoView("item-5000");
29886
+ }, []);
29887
+
29888
+ return (
29889
+ <Virtualizer {...VIRTUALIZER_LAYOUT_DEFAULT_OPTIONS.LIST_BOX}>
29890
+ <ListBox
29891
+ items={items}
29892
+ listBoxHandle={listBoxHandle}
29893
+ style={{
29894
+ height: 300,
29895
+ width: 300,
29896
+ overflow: "auto",
29897
+ }}
29898
+ aria-label="Virtualized mount effect list"
29899
+ />
29900
+ </Virtualizer>
29901
+ );
29902
+ };
29903
+
29693
29904
  // Each example varies exactly one prop off \`count\` and keeps the rest at stable
29694
29905
  // module-level identity; varying several at once would let one invalidate the cache for
29695
29906
  // the others, hiding a missing \`dependencies\` entry.
@@ -30452,7 +30663,8 @@ UNSAFE_enableInert?: boolean | ((isDrawer: boolean) => boolean)
30452
30663
  />
30453
30664
  );`},{id:"core-overlays-modal-modalcontent--drawer-mobile",name:"Drawer Mobile",snippet:"const DrawerMobile = () => <ModalDrawerExample />;"},{id:"core-overlays-modal-modalcontent--drawer-mobile-with-nested-popover",name:"Drawer Mobile With Nested Popover",snippet:"const DrawerMobileWithNestedPopover = () => <SelectInsideModalExample />;"},{id:"core-overlays-modal-modalcontent--uncontrolled-interaction-outside",name:"Uncontrolled Interaction Outside",snippet:"const UncontrolledInteractionOutside = () => <UncontrolledInteractionOutsideExample />;"},{id:"core-overlays-modal-modalcontent--long-content",name:"Long Content",snippet:"const LongContent = () => <LongModalExample />;"},{id:"core-overlays-modal-modalcontent--form-controls",name:"Form Controls",snippet:"const FormControls = () => <FormControlsInModalExample defaultOpen={true} />;"},{id:"core-overlays-modal-modalcontent--with-inert",name:"With Inert",snippet:"const WithInert = () => <FormControlsInModalExample enableInert={true} />;",description:"Experimental: Uses the HTML `inert` attribute instead of `aria-hidden` to hide elements outside the modal. This makes elements truly non-interactive (not just hidden from screen readers) which can improve performance and accessibility. Note: With inert enabled, elements outside the modal cannot be clicked or focused. Try interacting with the background elements when the modal is open vs closed."},{id:"core-overlays-modal-modalcontent--with-disabled-focus-management",name:"With Disabled Focus Management",snippet:"const WithDisabledFocusManagement = () => <DisabledFocusManagementExample />;",description:"Demonstrates `disableFocusManagement` with a FrameProvider. When the modal is open, the text input outside the FrameProvider container remains interactive because focus trapping and restoration are disabled."}],implementation:`import { IFrame, ShadowRoot } from "@baseline-ui/test-utils/client";
30454
30665
  import { sprinkles } from "@baseline-ui/tokens";
30455
- import React, { useState } from "react";
30666
+ import { getOwnerDocument } from "@react-aria/utils";
30667
+ import React, { useEffect, useRef, useState } from "react";
30456
30668
  import { VisuallyHidden, useId } from "react-aria";
30457
30669
 
30458
30670
  import { ActionButton } from "../../ActionButton";
@@ -30463,6 +30675,7 @@ import { Editor } from "../../Editor";
30463
30675
  import { FrameProvider } from "../../FrameProvider";
30464
30676
  import { ListBox } from "../../ListBox";
30465
30677
  import { NumberInput } from "../../NumberInput";
30678
+ import { PortalContainerProvider } from "../../PortalContainerProvider";
30466
30679
  import { RadioGroup } from "../../RadioGroup";
30467
30680
  import { Select } from "../../Select";
30468
30681
  import { Slider } from "../../Slider";
@@ -30865,6 +31078,59 @@ export const DisabledFocusManagementExample: React.FC<{
30865
31078
  )}
30866
31079
  </Box>
30867
31080
  );
31081
+ };
31082
+
31083
+ /**
31084
+ * A \`defaultOpen\` Modal whose portal container only resolves to \`document.body\`
31085
+ * in a mount effect, through either \`ModalContent.portalContainer\` or
31086
+ * \`PortalContainerProvider\`. The portal target is \`document.body\` before and
31087
+ * after, so nothing remounts when the container arrives \u2014 only its identity
31088
+ * changes.
31089
+ */
31090
+ export const ModalLateBodyContainerExample: React.FC<
31091
+ TestComponentProps & { via: "prop" | "provider" }
31092
+ > = ({ enableInert, via }) => {
31093
+ const rootRef = useRef<HTMLDivElement>(null);
31094
+ const [container, setContainer] = useState<HTMLElement>();
31095
+
31096
+ // The body of the tree's own document, not this module's: under the iframe
31097
+ // fixture the component renders into the frame while the module still
31098
+ // evaluates in the top-level realm.
31099
+ useEffect(() => {
31100
+ setContainer(getOwnerDocument(rootRef.current).body);
31101
+ }, []);
31102
+
31103
+ const modal = (
31104
+ <Modal defaultOpen={true}>
31105
+ <ModalContent
31106
+ portalContainer={via === "prop" ? container : undefined}
31107
+ UNSAFE_enableInert={enableInert}
31108
+ >
31109
+ <Dialog aria-label="Late container">
31110
+ <Text>Modal content</Text>
31111
+ </Dialog>
31112
+ </ModalContent>
31113
+ </Modal>
31114
+ );
31115
+
31116
+ return (
31117
+ <Box
31118
+ ref={rootRef}
31119
+ display="flex"
31120
+ flexDirection="column"
31121
+ gap="md"
31122
+ padding="lg"
31123
+ >
31124
+ <ActionButton label="Background button" variant="secondary" />
31125
+ {via === "provider" ? (
31126
+ <PortalContainerProvider portalContainer={container}>
31127
+ {modal}
31128
+ </PortalContainerProvider>
31129
+ ) : (
31130
+ modal
31131
+ )}
31132
+ </Box>
31133
+ );
30868
31134
  };`},similarTo:[],figmaUrl:null},PointPickerContent:{id:"core-content-pointpicker-pointpickercontent",importStatement:`import {
30869
31135
  Box,
30870
31136
  MultiplePointPickersExample,
@@ -32392,7 +32658,7 @@ horizontalBoundaryBehavior?: "shift" | "anchor"
32392
32658
  boundaryWidth={360}
32393
32659
  boundaryHeight={300} />;`}],implementation:`import { sprinkles, themeVars } from "@baseline-ui/tokens";
32394
32660
  import { ScrollBox } from "@pw/utils/components";
32395
- import { mergeRefs } from "@react-aria/utils";
32661
+ import { getOwnerDocument, mergeRefs } from "@react-aria/utils";
32396
32662
  import React, { useEffect, useRef, useState } from "react";
32397
32663
  import { useButton, useInteractOutside } from "react-aria";
32398
32664
  import { flushSync } from "react-dom";
@@ -32401,6 +32667,7 @@ import { ActionButton } from "../../ActionButton";
32401
32667
  import { Box } from "../../Box";
32402
32668
  import { Dialog } from "../../Dialog";
32403
32669
  import { ListBoxExample, items } from "../../ListBox/__tests__/testComponents";
32670
+ import { PortalContainerProvider } from "../../PortalContainerProvider";
32404
32671
  import { Select } from "../../Select";
32405
32672
  import { popoverContentCn } from "../../Select/Select.css";
32406
32673
  import { Switch } from "../../Switch";
@@ -33554,6 +33821,60 @@ export const PopoverHorizontalBoundaryBehaviorDemo: React.FC<{
33554
33821
  </Box>
33555
33822
  </Box>
33556
33823
  );
33824
+ };
33825
+
33826
+ /**
33827
+ * A \`defaultOpen\` Popover whose portal container only resolves to \`document.body\`
33828
+ * in a mount effect, through either \`PopoverContent.portalContainer\` or
33829
+ * \`PortalContainerProvider\`. The portal target is \`document.body\` before and
33830
+ * after, so nothing remounts when the container arrives \u2014 only its identity
33831
+ * changes.
33832
+ */
33833
+ export const PopoverLateBodyContainerExample: React.FC<{
33834
+ via: "prop" | "provider";
33835
+ }> = ({ via }) => {
33836
+ const rootRef = useRef<HTMLDivElement>(null);
33837
+ const [container, setContainer] = useState<HTMLElement>();
33838
+
33839
+ // The body of the tree's own document, not this module's: under the iframe
33840
+ // fixture the component renders into the frame while the module still
33841
+ // evaluates in the top-level realm.
33842
+ useEffect(() => {
33843
+ setContainer(getOwnerDocument(rootRef.current).body);
33844
+ }, []);
33845
+
33846
+ const popover = (
33847
+ <Popover type="listbox" defaultOpen={true}>
33848
+ <PopoverTrigger>
33849
+ <ActionButton label="Open" />
33850
+ </PopoverTrigger>
33851
+ <PopoverContent
33852
+ offset={4}
33853
+ portalContainer={via === "prop" ? container : undefined}
33854
+ >
33855
+ <ListBoxExample className={popoverContentCn} autoFocus="first" />
33856
+ </PopoverContent>
33857
+ </Popover>
33858
+ );
33859
+
33860
+ return (
33861
+ <Box
33862
+ ref={rootRef}
33863
+ display="flex"
33864
+ flexDirection="column"
33865
+ gap="md"
33866
+ padding="lg"
33867
+ >
33868
+ <ActionButton label="Background button" variant="secondary" />
33869
+ {via === "provider" ? (
33870
+ <PortalContainerProvider portalContainer={container}>
33871
+ {popover}
33872
+ </PortalContainerProvider>
33873
+ ) : (
33874
+ popover
33875
+ )}
33876
+ </Box>
33877
+ );
33557
33878
  };`},similarTo:[],figmaUrl:null},PopoverTrigger:{id:"core-overlays-popover-popovertrigger",importStatement:`import {
33558
33879
  ActionButton,
33559
33880
  PopoverFunctionChildrenExample,
@@ -33585,7 +33906,7 @@ anchorRect?: Rect
33585
33906
  <PopoverWithCustomPositionExample anchorRect={anchorRect} />
33586
33907
  );`},{id:"core-overlays-popover-popovertrigger--function-children",name:"Function Children",snippet:"const FunctionChildren = () => <PopoverFunctionChildrenExample />;"}],implementation:`import { sprinkles, themeVars } from "@baseline-ui/tokens";
33587
33908
  import { ScrollBox } from "@pw/utils/components";
33588
- import { mergeRefs } from "@react-aria/utils";
33909
+ import { getOwnerDocument, mergeRefs } from "@react-aria/utils";
33589
33910
  import React, { useEffect, useRef, useState } from "react";
33590
33911
  import { useButton, useInteractOutside } from "react-aria";
33591
33912
  import { flushSync } from "react-dom";
@@ -33594,6 +33915,7 @@ import { ActionButton } from "../../ActionButton";
33594
33915
  import { Box } from "../../Box";
33595
33916
  import { Dialog } from "../../Dialog";
33596
33917
  import { ListBoxExample, items } from "../../ListBox/__tests__/testComponents";
33918
+ import { PortalContainerProvider } from "../../PortalContainerProvider";
33597
33919
  import { Select } from "../../Select";
33598
33920
  import { popoverContentCn } from "../../Select/Select.css";
33599
33921
  import { Switch } from "../../Switch";
@@ -34747,6 +35069,60 @@ export const PopoverHorizontalBoundaryBehaviorDemo: React.FC<{
34747
35069
  </Box>
34748
35070
  </Box>
34749
35071
  );
35072
+ };
35073
+
35074
+ /**
35075
+ * A \`defaultOpen\` Popover whose portal container only resolves to \`document.body\`
35076
+ * in a mount effect, through either \`PopoverContent.portalContainer\` or
35077
+ * \`PortalContainerProvider\`. The portal target is \`document.body\` before and
35078
+ * after, so nothing remounts when the container arrives \u2014 only its identity
35079
+ * changes.
35080
+ */
35081
+ export const PopoverLateBodyContainerExample: React.FC<{
35082
+ via: "prop" | "provider";
35083
+ }> = ({ via }) => {
35084
+ const rootRef = useRef<HTMLDivElement>(null);
35085
+ const [container, setContainer] = useState<HTMLElement>();
35086
+
35087
+ // The body of the tree's own document, not this module's: under the iframe
35088
+ // fixture the component renders into the frame while the module still
35089
+ // evaluates in the top-level realm.
35090
+ useEffect(() => {
35091
+ setContainer(getOwnerDocument(rootRef.current).body);
35092
+ }, []);
35093
+
35094
+ const popover = (
35095
+ <Popover type="listbox" defaultOpen={true}>
35096
+ <PopoverTrigger>
35097
+ <ActionButton label="Open" />
35098
+ </PopoverTrigger>
35099
+ <PopoverContent
35100
+ offset={4}
35101
+ portalContainer={via === "prop" ? container : undefined}
35102
+ >
35103
+ <ListBoxExample className={popoverContentCn} autoFocus="first" />
35104
+ </PopoverContent>
35105
+ </Popover>
35106
+ );
35107
+
35108
+ return (
35109
+ <Box
35110
+ ref={rootRef}
35111
+ display="flex"
35112
+ flexDirection="column"
35113
+ gap="md"
35114
+ padding="lg"
35115
+ >
35116
+ <ActionButton label="Background button" variant="secondary" />
35117
+ {via === "provider" ? (
35118
+ <PortalContainerProvider portalContainer={container}>
35119
+ {popover}
35120
+ </PortalContainerProvider>
35121
+ ) : (
35122
+ popover
35123
+ )}
35124
+ </Box>
35125
+ );
34750
35126
  };`},similarTo:[],figmaUrl:null},IconSelect:{id:"core-forms-select-iconselect",importStatement:'import { IconSelect } from "@baseline-ui/core";',description:"",documentation:null,props:`interface IconSelectProps {
34751
35127
  /**
34752
35128
  * The icon to show at the start of the color input.
@@ -36895,7 +37271,7 @@ padding={[null, "lg", "xl"]}
36895
37271
 
36896
37272
  * [vanilla-extract sprinkles documentation](https://vanilla-extract.style/documentation/packages/sprinkles/) - Learn about the underlying sprinkles framework
36897
37273
  * [Box component documentation](/docs/core-utilities-box--docs) - Detailed information about the Box component
36898
- * [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:"3.0.1"};var u=`
37274
+ * [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:"3.1.0"};var u=`
36899
37275
  # Baseline UI MCP Server Guidelines
36900
37276
 
36901
37277
  This MCP server provides AI assistants with structured access to Baseline UI's comprehensive component documentation, icon library, theming resources, and design guidelines.
package/dist/server.js CHANGED
@@ -1 +1 @@
1
- export{a as createServer}from'./chunk-7RC5CLRO.js';
1
+ export{a as createServer}from'./chunk-MDOP4NRY.js';
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@baseline-ui/mcp",
3
- "version": "3.0.1",
3
+ "version": "3.1.0",
4
4
  "description": "MCP server for Baseline UI design system documentation",
5
5
  "type": "module",
6
6
  "exports": {
package/sbom.json CHANGED
@@ -2,10 +2,10 @@
2
2
  "$schema": "http://cyclonedx.org/schema/bom-1.6.schema.json",
3
3
  "bomFormat": "CycloneDX",
4
4
  "specVersion": "1.6",
5
- "serialNumber": "urn:uuid:50b5f4cc-3e8a-4f79-9a5a-9ea96dbb47ba",
5
+ "serialNumber": "urn:uuid:d6919b01-3233-40c9-bb76-aec15f57267c",
6
6
  "version": 1,
7
7
  "metadata": {
8
- "timestamp": "2026-09-07T13:52:06.454Z",
8
+ "timestamp": "2026-09-08T17:26:09.690Z",
9
9
  "lifecycles": [
10
10
  {
11
11
  "phase": "pre-build"
@@ -23,9 +23,9 @@
23
23
  "component": {
24
24
  "type": "library",
25
25
  "name": "@baseline-ui/mcp",
26
- "version": "3.0.1",
27
- "purl": "pkg:npm/@baseline-ui/mcp@3.0.1",
28
- "bom-ref": "pkg:npm/@baseline-ui/mcp@3.0.1",
26
+ "version": "3.1.0",
27
+ "purl": "pkg:npm/@baseline-ui/mcp@3.1.0",
28
+ "bom-ref": "pkg:npm/@baseline-ui/mcp@3.1.0",
29
29
  "licenses": [
30
30
  {
31
31
  "license": {
@@ -2134,7 +2134,7 @@
2134
2134
  ],
2135
2135
  "dependencies": [
2136
2136
  {
2137
- "ref": "pkg:npm/@baseline-ui/mcp@3.0.1",
2137
+ "ref": "pkg:npm/@baseline-ui/mcp@3.1.0",
2138
2138
  "dependsOn": [
2139
2139
  "pkg:npm/%40modelcontextprotocol/sdk@1.29.0",
2140
2140
  "pkg:npm/fast-glob@3.3.3",