@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 +2 -0
- package/dist/{chunk-7RC5CLRO.js → chunk-MDOP4NRY.js} +382 -6
- package/dist/index.js +1 -1
- package/dist/server.cjs +382 -6
- package/dist/server.js +1 -1
- package/package.json +1 -1
- package/sbom.json +6 -6
package/CHANGELOG.md
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
|
|
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
|
|
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-
|
|
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
|
|
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
|
|
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-
|
|
1
|
+
export{a as createServer}from'./chunk-MDOP4NRY.js';
|
package/package.json
CHANGED
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:
|
|
5
|
+
"serialNumber": "urn:uuid:d6919b01-3233-40c9-bb76-aec15f57267c",
|
|
6
6
|
"version": 1,
|
|
7
7
|
"metadata": {
|
|
8
|
-
"timestamp": "2026-09-
|
|
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
|
|
27
|
-
"purl": "pkg:npm/@baseline-ui/mcp@3.0
|
|
28
|
-
"bom-ref": "pkg:npm/@baseline-ui/mcp@3.0
|
|
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
|
|
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",
|