@amboss/design-system 4.0.4 → 4.0.6
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/build/cjs/components/DataTable/DataTable.js +1 -1
- package/build/cjs/components/DataTable/TableBody.d.ts +4 -2
- package/build/cjs/components/DataTable/TableBody.js +1 -1
- package/build/cjs/components/DataTable/TableCell.d.ts +4 -3
- package/build/cjs/components/DataTable/TableCell.js +1 -1
- package/build/cjs/components/DataTable/header/SortableCellContent.d.ts +1 -4
- package/build/cjs/components/DataTable/header/TableHeader.d.ts +3 -1
- package/build/cjs/components/DataTable/header/TableHeader.js +1 -1
- package/build/cjs/components/DataTable/internal/DataTableDataRow.d.ts +20 -0
- package/build/cjs/components/DataTable/internal/DataTableDataRow.js +1 -0
- package/build/cjs/components/DataTable/internal/DataTableRowGroup.d.ts +2 -0
- package/build/cjs/components/DataTable/internal/DataTableRowGroup.js +1 -0
- package/build/cjs/components/DataTable/internal/buildInternalColumns.d.ts +9 -0
- package/build/cjs/components/DataTable/internal/buildInternalColumns.js +1 -0
- package/build/cjs/components/DataTable/internal/controlColumns/checkboxColumn.d.ts +2 -0
- package/build/cjs/components/DataTable/internal/controlColumns/checkboxColumn.js +1 -0
- package/build/cjs/components/DataTable/internal/getColumnSticky.d.ts +8 -0
- package/build/cjs/components/DataTable/internal/getColumnSticky.js +1 -0
- package/build/cjs/components/DataTable/internal/getVisibleColumnCount.d.ts +2 -0
- package/build/cjs/components/DataTable/internal/getVisibleColumnCount.js +1 -0
- package/build/cjs/components/DataTable/internal/resolveRowContext.d.ts +17 -0
- package/build/cjs/components/DataTable/internal/resolveRowContext.js +1 -0
- package/build/cjs/components/DataTable/internal/tablePrimitives.d.ts +35 -0
- package/build/cjs/components/DataTable/internal/tablePrimitives.js +1 -0
- package/build/cjs/components/DataTable/internal/types.d.ts +26 -0
- package/build/cjs/components/DataTable/internal/types.js +1 -0
- package/build/cjs/components/Internal/Drawer/Drawer.d.ts +0 -2
- package/build/cjs/components/Internal/Drawer/Drawer.js +8 -8
- package/build/cjs/components/Internal/Drawer/useExitAnimation.d.ts +21 -0
- package/build/cjs/components/Internal/Drawer/useExitAnimation.js +1 -0
- package/build/cjs/components/Internal/LayoutFloat/LayoutFloat.d.ts +14 -0
- package/build/cjs/components/Internal/LayoutFloat/LayoutFloat.js +1 -0
- package/build/cjs/components/Internal/Panel/Panel.d.ts +15 -2
- package/build/cjs/components/Internal/Panel/Panel.js +1 -1
- package/build/cjs/components/Internal/PanelHeader/PanelHeader.d.ts +31 -0
- package/build/cjs/components/Internal/PanelHeader/PanelHeader.js +1 -0
- package/build/cjs/components/Internal/Sandwich/-types.d.ts +10 -12
- package/build/cjs/components/Internal/Sandwich/Sandwich.d.ts +10 -8
- package/build/cjs/components/Internal/Sandwich/Sandwich.js +1 -1
- package/build/cjs/components/Internal/Sandwich/SandwichFooter.d.ts +5 -1
- package/build/cjs/components/Internal/Sandwich/SandwichFooter.js +1 -1
- package/build/cjs/components/Internal/Sandwich/SandwichHeader.d.ts +5 -1
- package/build/cjs/components/Internal/Sandwich/SandwichHeader.js +1 -1
- package/build/cjs/components/Internal/Sandwich/useSandwichContext.d.ts +12 -3
- package/build/cjs/components/Internal/Sandwich/useSandwichContext.js +1 -1
- package/build/cjs/components/Layout/-types.d.ts +112 -43
- package/build/cjs/components/Layout/{Content.d.ts → Content/Content.d.ts} +1 -1
- package/build/cjs/components/Layout/Content/Content.js +1 -0
- package/build/cjs/components/Layout/Layout.d.ts +16 -4
- package/build/cjs/components/Layout/Layout.js +1 -1
- package/build/cjs/components/Layout/LayoutProvider.js +1 -1
- package/build/cjs/components/Layout/LeftPanel/LeftPanel.d.ts +9 -0
- package/build/cjs/components/Layout/LeftPanel/LeftPanel.js +1 -0
- package/build/cjs/components/Layout/LeftPanel/LeftPanelDocked.d.ts +20 -0
- package/build/cjs/components/Layout/LeftPanel/LeftPanelDocked.js +1 -0
- package/build/cjs/components/Layout/LeftPanel/LeftPanelDrawer.d.ts +15 -0
- package/build/cjs/components/Layout/LeftPanel/LeftPanelDrawer.js +1 -0
- package/build/cjs/components/Layout/LeftPanel/LeftPanelFooter.d.ts +7 -0
- package/build/cjs/components/Layout/LeftPanel/LeftPanelFooter.js +1 -0
- package/build/cjs/components/Layout/LeftPanel/LeftPanelHeader.d.ts +7 -0
- package/build/cjs/components/Layout/LeftPanel/LeftPanelHeader.js +1 -0
- package/build/cjs/components/Layout/PanelContainer.d.ts +9 -0
- package/build/cjs/components/Layout/PanelContainer.js +1 -0
- package/build/cjs/components/Layout/PanelSlideBody.d.ts +18 -0
- package/build/cjs/components/Layout/PanelSlideBody.js +1 -0
- package/build/cjs/components/Layout/RightPanel/RightPanel.d.ts +13 -0
- package/build/cjs/components/Layout/RightPanel/RightPanel.js +1 -0
- package/build/cjs/components/Layout/RightPanel/RightPanelFooter.d.ts +7 -0
- package/build/cjs/components/Layout/RightPanel/RightPanelFooter.js +1 -0
- package/build/cjs/components/Layout/RightPanel/RightPanelHeader.d.ts +15 -0
- package/build/cjs/components/Layout/RightPanel/RightPanelHeader.js +1 -0
- package/build/cjs/components/Layout/{Split.d.ts → Split/Split.d.ts} +4 -2
- package/build/cjs/components/Layout/Split/Split.js +1 -0
- package/build/cjs/components/Layout/Split/SplitFooter.d.ts +7 -0
- package/build/cjs/components/Layout/Split/SplitFooter.js +1 -0
- package/build/cjs/components/Layout/Split/SplitHeader.d.ts +7 -0
- package/build/cjs/components/Layout/Split/SplitHeader.js +1 -0
- package/build/cjs/components/Layout/context.d.ts +14 -1
- package/build/cjs/components/Layout/context.js +1 -1
- package/build/cjs/components/Layout/index.d.ts +0 -1
- package/build/cjs/components/Layout/index.js +1 -1
- package/build/cjs/components/Layout/registry.d.ts +38 -1
- package/build/cjs/components/Layout/registry.js +1 -1
- package/build/cjs/components/Layout/useFloatablePortalTargets.d.ts +37 -0
- package/build/cjs/components/Layout/useFloatablePortalTargets.js +1 -0
- package/build/cjs/components/Layout/usePanelDockedSlide.d.ts +28 -0
- package/build/cjs/components/Layout/usePanelDockedSlide.js +1 -0
- package/build/cjs/components/Link/Link.js +1 -1
- package/build/cjs/components/Link/LinkContext.d.ts +19 -0
- package/build/cjs/components/Link/LinkContext.js +1 -0
- package/build/cjs/components/Link/getLinkDecorationStyles.d.ts +20 -0
- package/build/cjs/components/Link/getLinkDecorationStyles.js +1 -0
- package/build/cjs/components/Typography/Text/Text.d.ts +10 -6
- package/build/cjs/components/Typography/Text/Text.js +1 -1
- package/build/cjs/shared/prefersReducedMotion.d.ts +6 -0
- package/build/cjs/shared/prefersReducedMotion.js +1 -0
- package/build/esm/components/DataTable/DataTable.js +1 -1
- package/build/esm/components/DataTable/TableBody.d.ts +4 -2
- package/build/esm/components/DataTable/TableBody.js +1 -1
- package/build/esm/components/DataTable/TableCell.d.ts +4 -3
- package/build/esm/components/DataTable/TableCell.js +1 -1
- package/build/esm/components/DataTable/header/SortableCellContent.d.ts +1 -4
- package/build/esm/components/DataTable/header/TableHeader.d.ts +3 -1
- package/build/esm/components/DataTable/header/TableHeader.js +1 -1
- package/build/esm/components/DataTable/internal/DataTableDataRow.d.ts +20 -0
- package/build/esm/components/DataTable/internal/DataTableDataRow.js +1 -0
- package/build/esm/components/DataTable/internal/DataTableRowGroup.d.ts +2 -0
- package/build/esm/components/DataTable/internal/DataTableRowGroup.js +1 -0
- package/build/esm/components/DataTable/internal/buildInternalColumns.d.ts +9 -0
- package/build/esm/components/DataTable/internal/buildInternalColumns.js +1 -0
- package/build/esm/components/DataTable/internal/controlColumns/checkboxColumn.d.ts +2 -0
- package/build/esm/components/DataTable/internal/controlColumns/checkboxColumn.js +1 -0
- package/build/esm/components/DataTable/internal/getColumnSticky.d.ts +8 -0
- package/build/esm/components/DataTable/internal/getColumnSticky.js +1 -0
- package/build/esm/components/DataTable/internal/getVisibleColumnCount.d.ts +2 -0
- package/build/esm/components/DataTable/internal/getVisibleColumnCount.js +1 -0
- package/build/esm/components/DataTable/internal/resolveRowContext.d.ts +17 -0
- package/build/esm/components/DataTable/internal/resolveRowContext.js +1 -0
- package/build/esm/components/DataTable/internal/tablePrimitives.d.ts +35 -0
- package/build/esm/components/DataTable/internal/tablePrimitives.js +1 -0
- package/build/esm/components/DataTable/internal/types.d.ts +26 -0
- package/build/esm/components/DataTable/internal/types.js +1 -0
- package/build/esm/components/Internal/Drawer/Drawer.d.ts +0 -2
- package/build/esm/components/Internal/Drawer/Drawer.js +8 -8
- package/build/esm/components/Internal/Drawer/useExitAnimation.d.ts +21 -0
- package/build/esm/components/Internal/Drawer/useExitAnimation.js +1 -0
- package/build/esm/components/Internal/LayoutFloat/LayoutFloat.d.ts +14 -0
- package/build/esm/components/Internal/LayoutFloat/LayoutFloat.js +1 -0
- package/build/esm/components/Internal/Panel/Panel.d.ts +15 -2
- package/build/esm/components/Internal/Panel/Panel.js +1 -1
- package/build/esm/components/Internal/PanelHeader/PanelHeader.d.ts +31 -0
- package/build/esm/components/Internal/PanelHeader/PanelHeader.js +1 -0
- package/build/esm/components/Internal/Sandwich/-types.d.ts +10 -12
- package/build/esm/components/Internal/Sandwich/Sandwich.d.ts +10 -8
- package/build/esm/components/Internal/Sandwich/Sandwich.js +1 -1
- package/build/esm/components/Internal/Sandwich/SandwichFooter.d.ts +5 -1
- package/build/esm/components/Internal/Sandwich/SandwichFooter.js +1 -1
- package/build/esm/components/Internal/Sandwich/SandwichHeader.d.ts +5 -1
- package/build/esm/components/Internal/Sandwich/SandwichHeader.js +1 -1
- package/build/esm/components/Internal/Sandwich/useSandwichContext.d.ts +12 -3
- package/build/esm/components/Internal/Sandwich/useSandwichContext.js +1 -1
- package/build/esm/components/Layout/-types.d.ts +112 -43
- package/build/esm/components/Layout/{Content.d.ts → Content/Content.d.ts} +1 -1
- package/build/esm/components/Layout/Content/Content.js +1 -0
- package/build/esm/components/Layout/Layout.d.ts +16 -4
- package/build/esm/components/Layout/Layout.js +1 -1
- package/build/esm/components/Layout/LayoutProvider.js +1 -1
- package/build/esm/components/Layout/LeftPanel/LeftPanel.d.ts +9 -0
- package/build/esm/components/Layout/LeftPanel/LeftPanel.js +1 -0
- package/build/esm/components/Layout/LeftPanel/LeftPanelDocked.d.ts +20 -0
- package/build/esm/components/Layout/LeftPanel/LeftPanelDocked.js +1 -0
- package/build/esm/components/Layout/LeftPanel/LeftPanelDrawer.d.ts +15 -0
- package/build/esm/components/Layout/LeftPanel/LeftPanelDrawer.js +1 -0
- package/build/esm/components/Layout/LeftPanel/LeftPanelFooter.d.ts +7 -0
- package/build/esm/components/Layout/LeftPanel/LeftPanelFooter.js +1 -0
- package/build/esm/components/Layout/LeftPanel/LeftPanelHeader.d.ts +7 -0
- package/build/esm/components/Layout/LeftPanel/LeftPanelHeader.js +1 -0
- package/build/esm/components/Layout/PanelContainer.d.ts +9 -0
- package/build/esm/components/Layout/PanelContainer.js +1 -0
- package/build/esm/components/Layout/PanelSlideBody.d.ts +18 -0
- package/build/esm/components/Layout/PanelSlideBody.js +1 -0
- package/build/esm/components/Layout/RightPanel/RightPanel.d.ts +13 -0
- package/build/esm/components/Layout/RightPanel/RightPanel.js +1 -0
- package/build/esm/components/Layout/RightPanel/RightPanelFooter.d.ts +7 -0
- package/build/esm/components/Layout/RightPanel/RightPanelFooter.js +1 -0
- package/build/esm/components/Layout/RightPanel/RightPanelHeader.d.ts +15 -0
- package/build/esm/components/Layout/RightPanel/RightPanelHeader.js +1 -0
- package/build/esm/components/Layout/{Split.d.ts → Split/Split.d.ts} +4 -2
- package/build/esm/components/Layout/Split/Split.js +1 -0
- package/build/esm/components/Layout/Split/SplitFooter.d.ts +7 -0
- package/build/esm/components/Layout/Split/SplitFooter.js +1 -0
- package/build/esm/components/Layout/Split/SplitHeader.d.ts +7 -0
- package/build/esm/components/Layout/Split/SplitHeader.js +1 -0
- package/build/esm/components/Layout/context.d.ts +14 -1
- package/build/esm/components/Layout/context.js +1 -1
- package/build/esm/components/Layout/index.d.ts +0 -1
- package/build/esm/components/Layout/index.js +1 -1
- package/build/esm/components/Layout/registry.d.ts +38 -1
- package/build/esm/components/Layout/registry.js +1 -1
- package/build/esm/components/Layout/useFloatablePortalTargets.d.ts +37 -0
- package/build/esm/components/Layout/useFloatablePortalTargets.js +1 -0
- package/build/esm/components/Layout/usePanelDockedSlide.d.ts +28 -0
- package/build/esm/components/Layout/usePanelDockedSlide.js +1 -0
- package/build/esm/components/Link/Link.js +1 -1
- package/build/esm/components/Link/LinkContext.d.ts +19 -0
- package/build/esm/components/Link/LinkContext.js +1 -0
- package/build/esm/components/Link/getLinkDecorationStyles.d.ts +20 -0
- package/build/esm/components/Link/getLinkDecorationStyles.js +1 -0
- package/build/esm/components/Typography/Text/Text.d.ts +10 -6
- package/build/esm/components/Typography/Text/Text.js +1 -1
- package/build/esm/shared/prefersReducedMotion.d.ts +6 -0
- package/build/esm/shared/prefersReducedMotion.js +1 -0
- package/build/scss/_layout.scss +8 -3
- package/build/scss/_theming.scss +3 -0
- package/build/scss/_variables.scss +2 -0
- package/package.json +8 -8
- package/build/cjs/components/Internal/Drawer/useDrawerAnimation.d.ts +0 -26
- package/build/cjs/components/Internal/Drawer/useDrawerAnimation.js +0 -1
- package/build/cjs/components/Internal/Sandwich/SandwichBody.d.ts +0 -3
- package/build/cjs/components/Internal/Sandwich/SandwichBody.js +0 -1
- package/build/cjs/components/Layout/Content.js +0 -1
- package/build/cjs/components/Layout/LeftPanel.d.ts +0 -8
- package/build/cjs/components/Layout/LeftPanel.js +0 -1
- package/build/cjs/components/Layout/RightPanel.d.ts +0 -9
- package/build/cjs/components/Layout/RightPanel.js +0 -1
- package/build/cjs/components/Layout/RightPanelContainer.d.ts +0 -3
- package/build/cjs/components/Layout/RightPanelContainer.js +0 -1
- package/build/cjs/components/Layout/Split.js +0 -1
- package/build/cjs/components/Layout/usePortalContainerRefs.d.ts +0 -20
- package/build/cjs/components/Layout/usePortalContainerRefs.js +0 -1
- package/build/esm/components/Internal/Drawer/useDrawerAnimation.d.ts +0 -26
- package/build/esm/components/Internal/Drawer/useDrawerAnimation.js +0 -1
- package/build/esm/components/Internal/Sandwich/SandwichBody.d.ts +0 -3
- package/build/esm/components/Internal/Sandwich/SandwichBody.js +0 -1
- package/build/esm/components/Layout/Content.js +0 -1
- package/build/esm/components/Layout/LeftPanel.d.ts +0 -8
- package/build/esm/components/Layout/LeftPanel.js +0 -1
- package/build/esm/components/Layout/RightPanel.d.ts +0 -9
- package/build/esm/components/Layout/RightPanel.js +0 -1
- package/build/esm/components/Layout/RightPanelContainer.d.ts +0 -3
- package/build/esm/components/Layout/RightPanelContainer.js +0 -1
- package/build/esm/components/Layout/Split.js +0 -1
- package/build/esm/components/Layout/usePortalContainerRefs.d.ts +0 -20
- package/build/esm/components/Layout/usePortalContainerRefs.js +0 -1
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import React from "react";
|
|
2
|
+
import type { RightPanelProps } from "../-types";
|
|
3
|
+
/**
|
|
4
|
+
* Right side panel. Declares the `rightPanel` slot and portals its content into
|
|
5
|
+
* the Group's host while visible. Renders in-flow (a resizable column) on
|
|
6
|
+
* desktop - the offcanvas overlay is deferred - and as a bottom sheet below
|
|
7
|
+
* the mobile breakpoint (`Sheet` portals itself, so the layout portal is
|
|
8
|
+
* bypassed there; content remounts on a breakpoint cross). Docked content is
|
|
9
|
+
* wrapped in a slot that tracks the `--ds-layout-subnav-offset` var.
|
|
10
|
+
* `Layout.RightPanelHeader` / `Layout.RightPanelFooter` children stick to the
|
|
11
|
+
* panel edges; the remaining content scrolls.
|
|
12
|
+
*/
|
|
13
|
+
export declare const RightPanel: React.FC<RightPanelProps>;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import React from"react";import styled from"@emotion/styled";import{Slot,SUBNAV_OFFSET_VAR}from"../-constants";import{useDeclarePanel,useLayoutPortal,useRunCallbackOnValueChange}from"../registry";import{useLayout}from"../useLayout";import{useCanRenderPanel}from"../context";import{useBreakpoints}from"../../../shared/useBreakpoints";import{PanelContainer}from"../PanelContainer";import{Sheet,SHEET_MAX_HEIGHT}from"../../Sheet/Sheet";let StyledSheetPanelShell=styled("div",{target:"e12v2el90",label:"StyledSheetPanelShell"})({height:SHEET_MAX_HEIGHT},"/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3JjL2NvbXBvbmVudHMvTGF5b3V0L1JpZ2h0UGFuZWwvUmlnaHRQYW5lbC50c3giLCJzb3VyY2VzIjpbInNyYy9jb21wb25lbnRzL0xheW91dC9SaWdodFBhbmVsL1JpZ2h0UGFuZWwudHN4Il0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBSZWFjdCBmcm9tIFwicmVhY3RcIjtcbmltcG9ydCBzdHlsZWQgZnJvbSBcIkBlbW90aW9uL3N0eWxlZFwiO1xuaW1wb3J0IHsgU2xvdCwgU1VCTkFWX09GRlNFVF9WQVIgfSBmcm9tIFwiLi4vLWNvbnN0YW50c1wiO1xuaW1wb3J0IHtcbiAgdXNlRGVjbGFyZVBhbmVsLFxuICB1c2VMYXlvdXRQb3J0YWwsXG4gIHVzZVJ1bkNhbGxiYWNrT25WYWx1ZUNoYW5nZSxcbn0gZnJvbSBcIi4uL3JlZ2lzdHJ5XCI7XG5pbXBvcnQgeyB1c2VMYXlvdXQgfSBmcm9tIFwiLi4vdXNlTGF5b3V0XCI7XG5pbXBvcnQgeyB1c2VDYW5SZW5kZXJQYW5lbCB9IGZyb20gXCIuLi9jb250ZXh0XCI7XG5pbXBvcnQgeyB1c2VCcmVha3BvaW50cyB9IGZyb20gXCIuLi8uLi8uLi9zaGFyZWQvdXNlQnJlYWtwb2ludHNcIjtcbmltcG9ydCB7IFBhbmVsQ29udGFpbmVyIH0gZnJvbSBcIi4uL1BhbmVsQ29udGFpbmVyXCI7XG5pbXBvcnQgeyBTaGVldCwgU0hFRVRfTUFYX0hFSUdIVCB9IGZyb20gXCIuLi8uLi9TaGVldC9TaGVldFwiO1xuaW1wb3J0IHR5cGUgeyBSaWdodFBhbmVsUHJvcHMgfSBmcm9tIFwiLi4vLXR5cGVzXCI7XG5cbi8vIEdpdmVzIHRoZSBwYW5lbCBzaGVsbCBhIGRlZmluaXRlIGhlaWdodCBpbnNpZGUgdGhlIFNoZWV0ICh3aGljaCBvbmx5IGNhcHNcbi8vIGl0cyBjb250ZW50IGF0IFNIRUVUX01BWF9IRUlHSFQpLiBXaXRoIHRoZSBoZWlnaHQgYm91bmRlZCwgdGhlIFNhbmR3aWNoXG4vLyBpbnNpZGUgUGFuZWxDb250YWluZXIgc2Nyb2xscyBpdHMgYm9keSByZWdpb24gaXRzZWxmLCBzb1xuLy8gYExheW91dC5SaWdodFBhbmVsSGVhZGVyYCAvIGBMYXlvdXQuUmlnaHRQYW5lbEZvb3RlcmAgc3RpY2sgdG8gdGhlIHNoZWV0XG4vLyBlZGdlcyBleGFjdGx5IGFzIHRoZXkgZG8gaW4gdGhlIGRvY2tlZCBwYW5lbC5cbmNvbnN0IFN0eWxlZFNoZWV0UGFuZWxTaGVsbCA9IHN0eWxlZC5kaXYoe1xuICBoZWlnaHQ6IFNIRUVUX01BWF9IRUlHSFQsXG59KTtcblxuLy8gQnVpbHQtaW4gc2xvdDogb2Zmc2V0cyB0aGUgcGFuZWwgY29udGVudCBieSB0aGUgc3VibmF2LW9mZnNldCB2YXIgKDAgd2hlblxuLy8gdW5zZXQpLCB0cmFuc2l0aW9uZWQgd2l0aCB0aGUgdGhlbWUncyBgbmF2U2xpZGVgIHRpbWluZyDigJQgc28gdGhlIHJpZ2h0IHBhbmVsXG4vLyB0cmFja3MgYSBzdGlja3kgc3VibmF2IHdpdGggbm8gd2lyaW5nIG9uIHRoZSBjb25zdW1lcidzIHNpZGUuXG5jb25zdCBTdHlsZWRSaWdodFBhbmVsU2xvdCA9IHN0eWxlZC5kaXYoKHsgdGhlbWUgfSkgPT4gKHtcbiAgcG9zaXRpb246IFwiYWJzb2x1dGVcIixcbiAgbGVmdDogMCxcbiAgcmlnaHQ6IDAsXG4gIGJvdHRvbTogMCxcbiAgdG9wOiBgdmFyKCR7U1VCTkFWX09GRlNFVF9WQVJ9LCAwcHgpYCxcbiAgb3ZlcmZsb3c6IFwiaGlkZGVuXCIsXG4gIHRyYW5zaXRpb246IGB0b3AgJHt0aGVtZS52YXJpYWJsZXMuYW5pbWF0aW9uLm5hdlNsaWRlLm9wZW4uZHVyYXRpb259ICR7dGhlbWUudmFyaWFibGVzLmFuaW1hdGlvbi5uYXZTbGlkZS5vcGVuLnRpbWluZ0Z1bmN0aW9ufWAsXG59KSk7XG5cbi8qKlxuICogUmlnaHQgc2lkZSBwYW5lbC4gRGVjbGFyZXMgdGhlIGByaWdodFBhbmVsYCBzbG90IGFuZCBwb3J0YWxzIGl0cyBjb250ZW50IGludG9cbiAqIHRoZSBHcm91cCdzIGhvc3Qgd2hpbGUgdmlzaWJsZS4gUmVuZGVycyBpbi1mbG93IChhIHJlc2l6YWJsZSBjb2x1bW4pIG9uXG4gKiBkZXNrdG9wIC0gdGhlIG9mZmNhbnZhcyBvdmVybGF5IGlzIGRlZmVycmVkIC0gYW5kIGFzIGEgYm90dG9tIHNoZWV0IGJlbG93XG4gKiB0aGUgbW9iaWxlIGJyZWFrcG9pbnQgKGBTaGVldGAgcG9ydGFscyBpdHNlbGYsIHNvIHRoZSBsYXlvdXQgcG9ydGFsIGlzXG4gKiBieXBhc3NlZCB0aGVyZTsgY29udGVudCByZW1vdW50cyBvbiBhIGJyZWFrcG9pbnQgY3Jvc3MpLiBEb2NrZWQgY29udGVudCBpc1xuICogd3JhcHBlZCBpbiBhIHNsb3QgdGhhdCB0cmFja3MgdGhlIGAtLWRzLWxheW91dC1zdWJuYXYtb2Zmc2V0YCB2YXIuXG4gKiBgTGF5b3V0LlJpZ2h0UGFuZWxIZWFkZXJgIC8gYExheW91dC5SaWdodFBhbmVsRm9vdGVyYCBjaGlsZHJlbiBzdGljayB0byB0aGVcbiAqIHBhbmVsIGVkZ2VzOyB0aGUgcmVtYWluaW5nIGNvbnRlbnQgc2Nyb2xscy5cbiAqL1xuZXhwb3J0IGNvbnN0IFJpZ2h0UGFuZWw6IFJlYWN0LkZDPFJpZ2h0UGFuZWxQcm9wcz4gPSAoe1xuICBjaGlsZHJlbixcbiAgZGVmYXVsdFNpemUgPSAzNzgsXG4gIG1pblNpemUgPSAzMjgsXG4gIG1heFNpemUgPSBcIjMwJVwiLFxuICBjb2xsYXBzaWJsZSA9IGZhbHNlLFxuICBvblZpc2libGVDaGFuZ2UsXG4gIG9uVmFyaWFudENoYW5nZSxcbiAgXCJhcmlhLWxhYmVsXCI6IGFyaWFMYWJlbCxcbiAgc2Nyb2xsQ29udGFpbmVyUmVmLFxuICBvblNjcm9sbCxcbn0pID0+IHtcbiAgY29uc3QgeyBpc1Zpc2libGUsIGhpZGUsIHN0YXRlIH0gPSB1c2VMYXlvdXQoKVtTbG90LnJpZ2h0UGFuZWxdO1xuICBjb25zdCB7IGlzTW9iaWxlIH0gPSB1c2VCcmVha3BvaW50cygpO1xuICBjb25zdCBjYW5SZW5kZXIgPSB1c2VDYW5SZW5kZXJQYW5lbCgpO1xuICB1c2VEZWNsYXJlUGFuZWwoU2xvdC5yaWdodFBhbmVsLCB7XG4gICAgZGVmYXVsdFNpemUsXG4gICAgbWluU2l6ZSxcbiAgICBtYXhTaXplLFxuICAgIGNvbGxhcHNpYmxlLFxuICB9KTtcbiAgdXNlUnVuQ2FsbGJhY2tPblZhbHVlQ2hhbmdlKGlzVmlzaWJsZSwgb25WaXNpYmxlQ2hhbmdlKTtcbiAgdXNlUnVuQ2FsbGJhY2tPblZhbHVlQ2hhbmdlKHN0YXRlLnZhcmlhbnQsIG9uVmFyaWFudENoYW5nZSk7XG4gIGNvbnN0IGRvY2tlZFBhbmVsID0gdXNlTGF5b3V0UG9ydGFsKFxuICAgIFNsb3QucmlnaHRQYW5lbCxcbiAgICBjYW5SZW5kZXIgJiYgaXNWaXNpYmxlICYmICFpc01vYmlsZSA/IChcbiAgICAgIDxTdHlsZWRSaWdodFBhbmVsU2xvdD5cbiAgICAgICAgPFBhbmVsQ29udGFpbmVyXG4gICAgICAgICAgYXJpYS1sYWJlbD17YXJpYUxhYmVsfVxuICAgICAgICAgIHNjcm9sbENvbnRhaW5lclJlZj17c2Nyb2xsQ29udGFpbmVyUmVmfVxuICAgICAgICAgIG9uU2Nyb2xsPXtvblNjcm9sbH1cbiAgICAgICAgICAvLyBUaGUgbGVmdCBib3JkZXIgc2VwYXJhdGVzIHRoZSBkb2NrZWQgY29sdW1uIGZyb20gdGhlIGNvbnRlbnQ7IHRoZVxuICAgICAgICAgIC8vIGZsb2F0aW5nIHdpbmRvdyBoYXMgaXRzIG93biBib3JkZXIsIHNvIGRyb3AgaXQgdGhlcmUuXG4gICAgICAgICAgc2hvd0JvcmRlckxlZnQ9e3N0YXRlLnZhcmlhbnQgIT09IFwiZmxvYXRcIn1cbiAgICAgICAgPlxuICAgICAgICAgIHtjaGlsZHJlbn1cbiAgICAgICAgPC9QYW5lbENvbnRhaW5lcj5cbiAgICAgIDwvU3R5bGVkUmlnaHRQYW5lbFNsb3Q+XG4gICAgKSA6IG51bGxcbiAgKTtcbiAgaWYgKCFjYW5SZW5kZXIpIHJldHVybiBudWxsO1xuICBpZiAoaXNNb2JpbGUpIHtcbiAgICByZXR1cm4gKFxuICAgICAgLy8gSW5pdGlhbCBmb2N1cyBpcyBzdXBwcmVzc2VkIHNvIG9wZW5pbmcgdGhlIHNoZWV0IG5ldmVyIHBvcHMgdGhlXG4gICAgICAvLyBvbi1zY3JlZW4ga2V5Ym9hcmQuXG4gICAgICA8U2hlZXRcbiAgICAgICAgaXNWaXNpYmxlPXtpc1Zpc2libGV9XG4gICAgICAgIG9uQ2xvc2U9e2hpZGV9XG4gICAgICAgIGhhc0JhY2tkcm9wXG4gICAgICAgIGRpc21pc3NPbk91dHNpZGVDbGlja1xuICAgICAgICBkaXNhYmxlSW5pdGlhbEZvY3VzXG4gICAgICA+XG4gICAgICAgIDxTdHlsZWRTaGVldFBhbmVsU2hlbGw+XG4gICAgICAgICAgPFBhbmVsQ29udGFpbmVyXG4gICAgICAgICAgICBhcmlhLWxhYmVsPXthcmlhTGFiZWx9XG4gICAgICAgICAgICBzY3JvbGxDb250YWluZXJSZWY9e3Njcm9sbENvbnRhaW5lclJlZn1cbiAgICAgICAgICAgIG9uU2Nyb2xsPXtvblNjcm9sbH1cbiAgICAgICAgICA+XG4gICAgICAgICAgICB7Y2hpbGRyZW59XG4gICAgICAgICAgPC9QYW5lbENvbnRhaW5lcj5cbiAgICAgICAgPC9TdHlsZWRTaGVldFBhbmVsU2hlbGw+XG4gICAgICA8L1NoZWV0PlxuICAgICk7XG4gIH1cbiAgcmV0dXJuIGRvY2tlZFBhbmVsO1xufTtcbiJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFvQjhCIn0= */"),StyledRightPanelSlot=styled("div",{target:"e12v2el91",label:"StyledRightPanelSlot"})(({theme})=>({position:"absolute",left:0,right:0,bottom:0,top:`var(${SUBNAV_OFFSET_VAR}, 0px)`,overflow:"hidden",transition:`top ${theme.variables.animation.navSlide.open.duration} ${theme.variables.animation.navSlide.open.timingFunction}`}),"/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3JjL2NvbXBvbmVudHMvTGF5b3V0L1JpZ2h0UGFuZWwvUmlnaHRQYW5lbC50c3giLCJzb3VyY2VzIjpbInNyYy9jb21wb25lbnRzL0xheW91dC9SaWdodFBhbmVsL1JpZ2h0UGFuZWwudHN4Il0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBSZWFjdCBmcm9tIFwicmVhY3RcIjtcbmltcG9ydCBzdHlsZWQgZnJvbSBcIkBlbW90aW9uL3N0eWxlZFwiO1xuaW1wb3J0IHsgU2xvdCwgU1VCTkFWX09GRlNFVF9WQVIgfSBmcm9tIFwiLi4vLWNvbnN0YW50c1wiO1xuaW1wb3J0IHtcbiAgdXNlRGVjbGFyZVBhbmVsLFxuICB1c2VMYXlvdXRQb3J0YWwsXG4gIHVzZVJ1bkNhbGxiYWNrT25WYWx1ZUNoYW5nZSxcbn0gZnJvbSBcIi4uL3JlZ2lzdHJ5XCI7XG5pbXBvcnQgeyB1c2VMYXlvdXQgfSBmcm9tIFwiLi4vdXNlTGF5b3V0XCI7XG5pbXBvcnQgeyB1c2VDYW5SZW5kZXJQYW5lbCB9IGZyb20gXCIuLi9jb250ZXh0XCI7XG5pbXBvcnQgeyB1c2VCcmVha3BvaW50cyB9IGZyb20gXCIuLi8uLi8uLi9zaGFyZWQvdXNlQnJlYWtwb2ludHNcIjtcbmltcG9ydCB7IFBhbmVsQ29udGFpbmVyIH0gZnJvbSBcIi4uL1BhbmVsQ29udGFpbmVyXCI7XG5pbXBvcnQgeyBTaGVldCwgU0hFRVRfTUFYX0hFSUdIVCB9IGZyb20gXCIuLi8uLi9TaGVldC9TaGVldFwiO1xuaW1wb3J0IHR5cGUgeyBSaWdodFBhbmVsUHJvcHMgfSBmcm9tIFwiLi4vLXR5cGVzXCI7XG5cbi8vIEdpdmVzIHRoZSBwYW5lbCBzaGVsbCBhIGRlZmluaXRlIGhlaWdodCBpbnNpZGUgdGhlIFNoZWV0ICh3aGljaCBvbmx5IGNhcHNcbi8vIGl0cyBjb250ZW50IGF0IFNIRUVUX01BWF9IRUlHSFQpLiBXaXRoIHRoZSBoZWlnaHQgYm91bmRlZCwgdGhlIFNhbmR3aWNoXG4vLyBpbnNpZGUgUGFuZWxDb250YWluZXIgc2Nyb2xscyBpdHMgYm9keSByZWdpb24gaXRzZWxmLCBzb1xuLy8gYExheW91dC5SaWdodFBhbmVsSGVhZGVyYCAvIGBMYXlvdXQuUmlnaHRQYW5lbEZvb3RlcmAgc3RpY2sgdG8gdGhlIHNoZWV0XG4vLyBlZGdlcyBleGFjdGx5IGFzIHRoZXkgZG8gaW4gdGhlIGRvY2tlZCBwYW5lbC5cbmNvbnN0IFN0eWxlZFNoZWV0UGFuZWxTaGVsbCA9IHN0eWxlZC5kaXYoe1xuICBoZWlnaHQ6IFNIRUVUX01BWF9IRUlHSFQsXG59KTtcblxuLy8gQnVpbHQtaW4gc2xvdDogb2Zmc2V0cyB0aGUgcGFuZWwgY29udGVudCBieSB0aGUgc3VibmF2LW9mZnNldCB2YXIgKDAgd2hlblxuLy8gdW5zZXQpLCB0cmFuc2l0aW9uZWQgd2l0aCB0aGUgdGhlbWUncyBgbmF2U2xpZGVgIHRpbWluZyDigJQgc28gdGhlIHJpZ2h0IHBhbmVsXG4vLyB0cmFja3MgYSBzdGlja3kgc3VibmF2IHdpdGggbm8gd2lyaW5nIG9uIHRoZSBjb25zdW1lcidzIHNpZGUuXG5jb25zdCBTdHlsZWRSaWdodFBhbmVsU2xvdCA9IHN0eWxlZC5kaXYoKHsgdGhlbWUgfSkgPT4gKHtcbiAgcG9zaXRpb246IFwiYWJzb2x1dGVcIixcbiAgbGVmdDogMCxcbiAgcmlnaHQ6IDAsXG4gIGJvdHRvbTogMCxcbiAgdG9wOiBgdmFyKCR7U1VCTkFWX09GRlNFVF9WQVJ9LCAwcHgpYCxcbiAgb3ZlcmZsb3c6IFwiaGlkZGVuXCIsXG4gIHRyYW5zaXRpb246IGB0b3AgJHt0aGVtZS52YXJpYWJsZXMuYW5pbWF0aW9uLm5hdlNsaWRlLm9wZW4uZHVyYXRpb259ICR7dGhlbWUudmFyaWFibGVzLmFuaW1hdGlvbi5uYXZTbGlkZS5vcGVuLnRpbWluZ0Z1bmN0aW9ufWAsXG59KSk7XG5cbi8qKlxuICogUmlnaHQgc2lkZSBwYW5lbC4gRGVjbGFyZXMgdGhlIGByaWdodFBhbmVsYCBzbG90IGFuZCBwb3J0YWxzIGl0cyBjb250ZW50IGludG9cbiAqIHRoZSBHcm91cCdzIGhvc3Qgd2hpbGUgdmlzaWJsZS4gUmVuZGVycyBpbi1mbG93IChhIHJlc2l6YWJsZSBjb2x1bW4pIG9uXG4gKiBkZXNrdG9wIC0gdGhlIG9mZmNhbnZhcyBvdmVybGF5IGlzIGRlZmVycmVkIC0gYW5kIGFzIGEgYm90dG9tIHNoZWV0IGJlbG93XG4gKiB0aGUgbW9iaWxlIGJyZWFrcG9pbnQgKGBTaGVldGAgcG9ydGFscyBpdHNlbGYsIHNvIHRoZSBsYXlvdXQgcG9ydGFsIGlzXG4gKiBieXBhc3NlZCB0aGVyZTsgY29udGVudCByZW1vdW50cyBvbiBhIGJyZWFrcG9pbnQgY3Jvc3MpLiBEb2NrZWQgY29udGVudCBpc1xuICogd3JhcHBlZCBpbiBhIHNsb3QgdGhhdCB0cmFja3MgdGhlIGAtLWRzLWxheW91dC1zdWJuYXYtb2Zmc2V0YCB2YXIuXG4gKiBgTGF5b3V0LlJpZ2h0UGFuZWxIZWFkZXJgIC8gYExheW91dC5SaWdodFBhbmVsRm9vdGVyYCBjaGlsZHJlbiBzdGljayB0byB0aGVcbiAqIHBhbmVsIGVkZ2VzOyB0aGUgcmVtYWluaW5nIGNvbnRlbnQgc2Nyb2xscy5cbiAqL1xuZXhwb3J0IGNvbnN0IFJpZ2h0UGFuZWw6IFJlYWN0LkZDPFJpZ2h0UGFuZWxQcm9wcz4gPSAoe1xuICBjaGlsZHJlbixcbiAgZGVmYXVsdFNpemUgPSAzNzgsXG4gIG1pblNpemUgPSAzMjgsXG4gIG1heFNpemUgPSBcIjMwJVwiLFxuICBjb2xsYXBzaWJsZSA9IGZhbHNlLFxuICBvblZpc2libGVDaGFuZ2UsXG4gIG9uVmFyaWFudENoYW5nZSxcbiAgXCJhcmlhLWxhYmVsXCI6IGFyaWFMYWJlbCxcbiAgc2Nyb2xsQ29udGFpbmVyUmVmLFxuICBvblNjcm9sbCxcbn0pID0+IHtcbiAgY29uc3QgeyBpc1Zpc2libGUsIGhpZGUsIHN0YXRlIH0gPSB1c2VMYXlvdXQoKVtTbG90LnJpZ2h0UGFuZWxdO1xuICBjb25zdCB7IGlzTW9iaWxlIH0gPSB1c2VCcmVha3BvaW50cygpO1xuICBjb25zdCBjYW5SZW5kZXIgPSB1c2VDYW5SZW5kZXJQYW5lbCgpO1xuICB1c2VEZWNsYXJlUGFuZWwoU2xvdC5yaWdodFBhbmVsLCB7XG4gICAgZGVmYXVsdFNpemUsXG4gICAgbWluU2l6ZSxcbiAgICBtYXhTaXplLFxuICAgIGNvbGxhcHNpYmxlLFxuICB9KTtcbiAgdXNlUnVuQ2FsbGJhY2tPblZhbHVlQ2hhbmdlKGlzVmlzaWJsZSwgb25WaXNpYmxlQ2hhbmdlKTtcbiAgdXNlUnVuQ2FsbGJhY2tPblZhbHVlQ2hhbmdlKHN0YXRlLnZhcmlhbnQsIG9uVmFyaWFudENoYW5nZSk7XG4gIGNvbnN0IGRvY2tlZFBhbmVsID0gdXNlTGF5b3V0UG9ydGFsKFxuICAgIFNsb3QucmlnaHRQYW5lbCxcbiAgICBjYW5SZW5kZXIgJiYgaXNWaXNpYmxlICYmICFpc01vYmlsZSA/IChcbiAgICAgIDxTdHlsZWRSaWdodFBhbmVsU2xvdD5cbiAgICAgICAgPFBhbmVsQ29udGFpbmVyXG4gICAgICAgICAgYXJpYS1sYWJlbD17YXJpYUxhYmVsfVxuICAgICAgICAgIHNjcm9sbENvbnRhaW5lclJlZj17c2Nyb2xsQ29udGFpbmVyUmVmfVxuICAgICAgICAgIG9uU2Nyb2xsPXtvblNjcm9sbH1cbiAgICAgICAgICAvLyBUaGUgbGVmdCBib3JkZXIgc2VwYXJhdGVzIHRoZSBkb2NrZWQgY29sdW1uIGZyb20gdGhlIGNvbnRlbnQ7IHRoZVxuICAgICAgICAgIC8vIGZsb2F0aW5nIHdpbmRvdyBoYXMgaXRzIG93biBib3JkZXIsIHNvIGRyb3AgaXQgdGhlcmUuXG4gICAgICAgICAgc2hvd0JvcmRlckxlZnQ9e3N0YXRlLnZhcmlhbnQgIT09IFwiZmxvYXRcIn1cbiAgICAgICAgPlxuICAgICAgICAgIHtjaGlsZHJlbn1cbiAgICAgICAgPC9QYW5lbENvbnRhaW5lcj5cbiAgICAgIDwvU3R5bGVkUmlnaHRQYW5lbFNsb3Q+XG4gICAgKSA6IG51bGxcbiAgKTtcbiAgaWYgKCFjYW5SZW5kZXIpIHJldHVybiBudWxsO1xuICBpZiAoaXNNb2JpbGUpIHtcbiAgICByZXR1cm4gKFxuICAgICAgLy8gSW5pdGlhbCBmb2N1cyBpcyBzdXBwcmVzc2VkIHNvIG9wZW5pbmcgdGhlIHNoZWV0IG5ldmVyIHBvcHMgdGhlXG4gICAgICAvLyBvbi1zY3JlZW4ga2V5Ym9hcmQuXG4gICAgICA8U2hlZXRcbiAgICAgICAgaXNWaXNpYmxlPXtpc1Zpc2libGV9XG4gICAgICAgIG9uQ2xvc2U9e2hpZGV9XG4gICAgICAgIGhhc0JhY2tkcm9wXG4gICAgICAgIGRpc21pc3NPbk91dHNpZGVDbGlja1xuICAgICAgICBkaXNhYmxlSW5pdGlhbEZvY3VzXG4gICAgICA+XG4gICAgICAgIDxTdHlsZWRTaGVldFBhbmVsU2hlbGw+XG4gICAgICAgICAgPFBhbmVsQ29udGFpbmVyXG4gICAgICAgICAgICBhcmlhLWxhYmVsPXthcmlhTGFiZWx9XG4gICAgICAgICAgICBzY3JvbGxDb250YWluZXJSZWY9e3Njcm9sbENvbnRhaW5lclJlZn1cbiAgICAgICAgICAgIG9uU2Nyb2xsPXtvblNjcm9sbH1cbiAgICAgICAgICA+XG4gICAgICAgICAgICB7Y2hpbGRyZW59XG4gICAgICAgICAgPC9QYW5lbENvbnRhaW5lcj5cbiAgICAgICAgPC9TdHlsZWRTaGVldFBhbmVsU2hlbGw+XG4gICAgICA8L1NoZWV0PlxuICAgICk7XG4gIH1cbiAgcmV0dXJuIGRvY2tlZFBhbmVsO1xufTtcbiJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUEyQjZCIn0= */");export const RightPanel=({children,defaultSize=378,minSize=328,maxSize="30%",collapsible=!1,onVisibleChange,onVariantChange,"aria-label":ariaLabel,scrollContainerRef,onScroll})=>{let{isVisible,hide,state}=useLayout()[Slot.rightPanel],{isMobile}=useBreakpoints(),canRender=useCanRenderPanel();useDeclarePanel(Slot.rightPanel,{defaultSize,minSize,maxSize,collapsible}),useRunCallbackOnValueChange(isVisible,onVisibleChange),useRunCallbackOnValueChange(state.variant,onVariantChange);let dockedPanel=useLayoutPortal(Slot.rightPanel,canRender&&isVisible&&!isMobile?React.createElement(StyledRightPanelSlot,null,React.createElement(PanelContainer,{"aria-label":ariaLabel,scrollContainerRef:scrollContainerRef,onScroll:onScroll,showBorderLeft:"float"!==state.variant},children)):null);return canRender?isMobile?React.createElement(Sheet,{isVisible:isVisible,onClose:hide,hasBackdrop:!0,dismissOnOutsideClick:!0,disableInitialFocus:!0},React.createElement(StyledSheetPanelShell,null,React.createElement(PanelContainer,{"aria-label":ariaLabel,scrollContainerRef:scrollContainerRef,onScroll:onScroll},children))):dockedPanel:null};
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import React from "react";
|
|
2
|
+
import type { RightPanelFooterProps } from "../-types";
|
|
3
|
+
/**
|
|
4
|
+
* Optional sticky footer for `Layout.RightPanel` - place it among the panel's
|
|
5
|
+
* children; it sticks to the bottom while the rest of the content scrolls.
|
|
6
|
+
*/
|
|
7
|
+
export declare function RightPanelFooter({ children, "data-e2e-test-id": dataE2eTestId, }: RightPanelFooterProps): React.ReactElement;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import React from"react";import{Sandwich}from"../../Internal/Sandwich/Sandwich";export function RightPanelFooter({children,"data-e2e-test-id":dataE2eTestId}){return React.createElement(Sandwich.Footer,{"data-e2e-test-id":dataE2eTestId},children)}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import React from "react";
|
|
2
|
+
import type { RightPanelHeaderProps } from "../-types";
|
|
3
|
+
/**
|
|
4
|
+
* Optional sticky header for `Layout.RightPanel` - place it among the
|
|
5
|
+
* panel's children; it sticks to the top while the rest of the content
|
|
6
|
+
* scrolls. Renders the `title` block after `leftSlot` and buttons at the
|
|
7
|
+
* header end (after `rightSlot`): a variant toggle that minimizes the panel
|
|
8
|
+
* into the floating window / docks it back, and a close button that hides the
|
|
9
|
+
* panel via the layout state. The header travels with the panel content into
|
|
10
|
+
* the floating window, so the same toggle serves both directions. On mobile
|
|
11
|
+
* viewports the panel renders as a bottom sheet where dock/float has no
|
|
12
|
+
* meaning and the sheet brings its own dismiss affordances (drag handle,
|
|
13
|
+
* backdrop), so both built-in buttons are omitted there.
|
|
14
|
+
*/
|
|
15
|
+
export declare function RightPanelHeader({ leftSlot, rightSlot, title, slotProps, "data-e2e-test-id": dataE2eTestId, }: RightPanelHeaderProps): React.ReactElement;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import React from"react";import{Slot}from"../-constants";import{useLayout}from"../useLayout";import{useBreakpoints}from"../../../shared/useBreakpoints";import{Sandwich}from"../../Internal/Sandwich/Sandwich";import{PanelHeader}from"../../Internal/PanelHeader/PanelHeader";import{PictogramButton}from"../../PictogramButton/PictogramButton";export function RightPanelHeader({leftSlot,rightSlot,title,slotProps,"data-e2e-test-id":dataE2eTestId}){let{hide,setVariant,state}=useLayout()[Slot.rightPanel],{isMobile}=useBreakpoints(),isFloating="float"===state.variant;return React.createElement(Sandwich.Header,{"data-e2e-test-id":dataE2eTestId},React.createElement(PanelHeader,{leftSlot:leftSlot,title:title,rightSlot:React.createElement(React.Fragment,null,rightSlot,!isMobile&&React.createElement(React.Fragment,null,React.createElement(PictogramButton,{icon:isFloating?"open-sidebar-right":"minimize",size:"s",variant:"tertiary","aria-label":isFloating?slotProps.variantButton.dockLabel:slotProps.variantButton.minimizeLabel,onClick:()=>setVariant(isFloating?"sidebar":"float")}),React.createElement(PictogramButton,{icon:"x",size:"s",variant:"tertiary","aria-label":slotProps.closeButton["aria-label"],onClick:hide})))}))}
|
|
@@ -1,7 +1,9 @@
|
|
|
1
|
-
import
|
|
2
|
-
import type { SplitProps } from "
|
|
1
|
+
import React from "react";
|
|
2
|
+
import type { SplitProps } from "../-types";
|
|
3
3
|
/**
|
|
4
4
|
* Split view panel. Declares the `splitview` slot and portals its content while
|
|
5
5
|
* visible - a toggleable in-flow column beside `content`.
|
|
6
|
+
* `Layout.SplitHeader` / `Layout.SplitFooter` children stick to the panel
|
|
7
|
+
* edges; the remaining content scrolls.
|
|
6
8
|
*/
|
|
7
9
|
export declare const Split: React.FC<SplitProps>;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import React from"react";import{Slot}from"../-constants";import{useDeclarePanel,useLayoutPortal}from"../registry";import{useLayout}from"../useLayout";import{useLayoutPanelsEnabled}from"../context";import{PanelContainer}from"../PanelContainer";export const Split=({children,"aria-label":ariaLabel,defaultSize,minSize,maxSize})=>{let{isVisible}=useLayout()[Slot.splitview],panelsEnabled=useLayoutPanelsEnabled();return useDeclarePanel(Slot.splitview,{defaultSize,minSize,maxSize,collapsible:!0}),useLayoutPortal(Slot.splitview,!0===panelsEnabled&&isVisible?React.createElement(PanelContainer,{"aria-label":ariaLabel,showBorderLeft:!0},children):null)};
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import React from "react";
|
|
2
|
+
import type { SplitFooterProps } from "../-types";
|
|
3
|
+
/**
|
|
4
|
+
* Optional sticky footer for `Layout.Split` - place it among the panel's
|
|
5
|
+
* children; it sticks to the bottom while the rest of the content scrolls.
|
|
6
|
+
*/
|
|
7
|
+
export declare function SplitFooter({ children, "data-e2e-test-id": dataE2eTestId, }: SplitFooterProps): React.ReactElement;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import React from"react";import{Sandwich}from"../../Internal/Sandwich/Sandwich";export function SplitFooter({children,"data-e2e-test-id":dataE2eTestId}){return React.createElement(Sandwich.Footer,{"data-e2e-test-id":dataE2eTestId},children)}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import React from "react";
|
|
2
|
+
import type { SplitHeaderProps } from "../-types";
|
|
3
|
+
/**
|
|
4
|
+
* Optional sticky header for `Layout.Split` - place it among the panel's
|
|
5
|
+
* children; it sticks to the top while the rest of the content scrolls.
|
|
6
|
+
*/
|
|
7
|
+
export declare function SplitHeader({ leftSlot, rightSlot, "data-e2e-test-id": dataE2eTestId, }: SplitHeaderProps): React.ReactElement;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import React from"react";import{Sandwich}from"../../Internal/Sandwich/Sandwich";import{PanelHeader}from"../../Internal/PanelHeader/PanelHeader";export function SplitHeader({leftSlot,rightSlot,"data-e2e-test-id":dataE2eTestId}){return React.createElement(Sandwich.Header,{"data-e2e-test-id":dataE2eTestId},React.createElement(PanelHeader,{leftSlot:leftSlot,rightSlot:rightSlot}))}
|
|
@@ -1,7 +1,20 @@
|
|
|
1
|
-
import type { LayoutState, LayoutStorage, LayoutStore } from "./-types";
|
|
1
|
+
import type { LayoutPanelsMode, LayoutState, LayoutStorage, LayoutStore } from "./-types";
|
|
2
2
|
export declare const LayoutStoreProvider: React.Provider<LayoutStore>;
|
|
3
3
|
/** Get the store from context, or throw if used outside the provider. */
|
|
4
4
|
export declare function useLayoutStore(): LayoutStore;
|
|
5
|
+
export declare const LayoutPanelsEnabledProvider: React.Provider<LayoutPanelsMode>;
|
|
6
|
+
/** The panels mode from the nearest `Layout.Provider`'s
|
|
7
|
+
* `config.enablePanels`; `false` when unset. */
|
|
8
|
+
export declare function useLayoutPanelsEnabled(): LayoutPanelsMode;
|
|
9
|
+
/** TEMPORARY - part of the `enablePanels` kill switch for the staged panels
|
|
10
|
+
* rollout; remove (together with `LayoutPanelsMode`) once panels are enabled
|
|
11
|
+
* everywhere.
|
|
12
|
+
*
|
|
13
|
+
* Whether the calling panel marker may render for the current viewport:
|
|
14
|
+
* mode `true` always allows; `"mobile"` allows only below the mobile
|
|
15
|
+
* breakpoint (the overlay presentations - drawer/sheet - which never mount
|
|
16
|
+
* the resizable row); `false` never allows. */
|
|
17
|
+
export declare function useCanRenderPanel(): boolean;
|
|
5
18
|
/**
|
|
6
19
|
* Persistence config for the layout namespace. Set on `Layout.Provider` (single
|
|
7
20
|
* external surface) and read by the nested `<Layout>`. The Provider only
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{createContext,useContext,useSyncExternalStore}from"react";let LayoutStoreContext=createContext(null);export const LayoutStoreProvider=LayoutStoreContext.Provider;export function useLayoutStore(){let store=useContext(LayoutStoreContext);if(!store)throw Error("useLayout must be used within a <LayoutProvider>.");return store}let LayoutPersistenceContext=createContext({});export const LayoutPersistenceProvider=LayoutPersistenceContext.Provider;export function useLayoutPersistence(){return useContext(LayoutPersistenceContext)}export function useLayoutSelector(selector){let store=useLayoutStore(),getSnapshot=()=>selector(store.getState());return useSyncExternalStore(store.subscribe,getSnapshot,getSnapshot)}
|
|
1
|
+
import{createContext,useContext,useSyncExternalStore}from"react";import{useBreakpoints}from"../../shared/useBreakpoints";let LayoutStoreContext=createContext(null);export const LayoutStoreProvider=LayoutStoreContext.Provider;export function useLayoutStore(){let store=useContext(LayoutStoreContext);if(!store)throw Error("useLayout must be used within a <LayoutProvider>.");return store}let LayoutPanelsEnabledContext=createContext(!1);export const LayoutPanelsEnabledProvider=LayoutPanelsEnabledContext.Provider;export function useLayoutPanelsEnabled(){return useContext(LayoutPanelsEnabledContext)}export function useCanRenderPanel(){let mode=useLayoutPanelsEnabled(),{isMobile}=useBreakpoints();return!0===mode||"mobile"===mode&&isMobile}let LayoutPersistenceContext=createContext({});export const LayoutPersistenceProvider=LayoutPersistenceContext.Provider;export function useLayoutPersistence(){return useContext(LayoutPersistenceContext)}export function useLayoutSelector(selector){let store=useLayoutStore(),getSnapshot=()=>selector(store.getState());return useSyncExternalStore(store.subscribe,getSnapshot,getSnapshot)}
|
|
@@ -4,7 +4,6 @@ export { LayoutProvider } from "./LayoutProvider";
|
|
|
4
4
|
export { useLayoutVar } from "./LayoutCssVars";
|
|
5
5
|
export { useLayout } from "./useLayout";
|
|
6
6
|
export { useAutoScrollToBottom } from "./useAutoScrollToBottom";
|
|
7
|
-
export { RightPanelContainer } from "./RightPanelContainer";
|
|
8
7
|
export { createLayoutStore } from "./store";
|
|
9
8
|
export { createInitialState, layoutReducer } from "./reducer";
|
|
10
9
|
export * from "./-types";
|
|
@@ -1 +1 @@
|
|
|
1
|
-
export{SUBNAV_OFFSET_VAR,PANEL_WIDTH_VAR}from"./-constants";export{Layout}from"./Layout";export{LayoutProvider}from"./LayoutProvider";export{useLayoutVar}from"./LayoutCssVars";export{useLayout}from"./useLayout";export{useAutoScrollToBottom}from"./useAutoScrollToBottom";export{
|
|
1
|
+
export{SUBNAV_OFFSET_VAR,PANEL_WIDTH_VAR}from"./-constants";export{Layout}from"./Layout";export{LayoutProvider}from"./LayoutProvider";export{useLayoutVar}from"./LayoutCssVars";export{useLayout}from"./useLayout";export{useAutoScrollToBottom}from"./useAutoScrollToBottom";export{createLayoutStore}from"./store";export{createInitialState,layoutReducer}from"./reducer";export*from"./-types";
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import { type ReactNode } from "react";
|
|
2
|
+
import type { PanelImperativeHandle } from "react-resizable-panels";
|
|
2
3
|
import type { Size, SlotKey } from "./-types";
|
|
3
|
-
export type
|
|
4
|
+
export type PortalTargets = Partial<Record<SlotKey, HTMLElement | null>>;
|
|
4
5
|
export declare const LayoutPortalContext: React.Context<Partial<Record<"content" | "leftPanel" | "splitview" | "rightPanel", HTMLElement>>>;
|
|
5
6
|
/**
|
|
6
7
|
* Portal `children` into the host DOM node registered for `slot`. Returns the
|
|
@@ -27,5 +28,41 @@ export type PanelRegistry = {
|
|
|
27
28
|
export declare const PanelRegistryContext: React.Context<PanelRegistry>;
|
|
28
29
|
/** Register this slot as a panel for the marker's lifetime. */
|
|
29
30
|
export declare function useDeclarePanel(slot: SlotKey, reg: PanelReg): void;
|
|
31
|
+
/**
|
|
32
|
+
* Keeps an animating-out panel in the resizable row while its exit plays - the
|
|
33
|
+
* Group would otherwise drop the column the instant it's hidden. The panel
|
|
34
|
+
* reports its live presence (mounted incl. mid-exit); the Layout keeps any
|
|
35
|
+
* present slot in the row until presence flips false.
|
|
36
|
+
*/
|
|
37
|
+
export type PanelPresence = {
|
|
38
|
+
setPresent: (slot: SlotKey, isPresent: boolean) => void;
|
|
39
|
+
};
|
|
40
|
+
export declare const PanelPresenceContext: React.Context<PanelPresence>;
|
|
41
|
+
/** Report this slot's live presence so the Layout keeps its column mounted
|
|
42
|
+
* through the exit animation. No-op outside a Layout. */
|
|
43
|
+
export declare function usePanelPresence(slot: SlotKey, isPresent: boolean): void;
|
|
44
|
+
/**
|
|
45
|
+
* Lets a sliding side panel reach its column's `react-resizable-panels`
|
|
46
|
+
* imperative handle and DOM element, and mute the Group's layout callbacks
|
|
47
|
+
* mid-slide - the 0-width start of an open would otherwise be read as a
|
|
48
|
+
* drag-to-collapse, and mid-slide sizes would be persisted.
|
|
49
|
+
*/
|
|
50
|
+
export type PanelAnimationControl = {
|
|
51
|
+
/** Register/clear the RRP handle for a slot's column (wired by the Group). */
|
|
52
|
+
setHandle: (slot: SlotKey, handle: PanelImperativeHandle | null) => void;
|
|
53
|
+
/** Read a slot's current RRP handle (null until its column has mounted). */
|
|
54
|
+
getHandle: (slot: SlotKey) => PanelImperativeHandle | null;
|
|
55
|
+
/** Register/clear the DOM element for a slot's column (wired by the Group). */
|
|
56
|
+
setElement: (slot: SlotKey, element: HTMLElement | null) => void;
|
|
57
|
+
/** Read a slot's column element (null until its column has mounted). */
|
|
58
|
+
getElement: (slot: SlotKey) => HTMLElement | null;
|
|
59
|
+
/** Mute the Group's resize/collapse/persist callbacks for a slot mid-slide. */
|
|
60
|
+
setResizeSuppressed: (slot: SlotKey, suppressed: boolean) => void;
|
|
61
|
+
};
|
|
62
|
+
export declare const PanelAnimationContext: React.Context<PanelAnimationControl>;
|
|
63
|
+
/** Access the Layout's panel-animation control. Null outside a Layout. */
|
|
64
|
+
export declare function usePanelAnimationControl(): PanelAnimationControl | null;
|
|
65
|
+
/** Run `onChange(value)` when `value` transitions (not on initial mount). */
|
|
66
|
+
export declare function useRunCallbackOnValueChange<T>(value: T, onChange?: (value: T) => void): void;
|
|
30
67
|
/** Fire `onChange(visible)` when `visible` transitions (not on initial mount). */
|
|
31
68
|
export declare function useVisibleChange(visible: boolean, onChange?: (visible: boolean) => void): void;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{createContext,useContext,useEffect,useLayoutEffect,useRef}from"react";import{createPortal}from"react-dom";export const LayoutPortalContext=createContext({});export function useLayoutPortal(slot,children){let slotNode=useContext(LayoutPortalContext)[slot]??null;return slotNode?createPortal(children,slotNode):null}export const PanelRegistryContext=createContext(null);export function useDeclarePanel(slot,reg){let registry=useContext(PanelRegistryContext),{defaultSize,minSize,maxSize,collapsible}=reg;useLayoutEffect(()=>{if(registry)return registry.register(slot,{defaultSize,minSize,maxSize,collapsible}),()=>registry.unregister(slot)},[registry,slot,defaultSize,minSize,maxSize,collapsible])}export function
|
|
1
|
+
import{createContext,useContext,useEffect,useLayoutEffect,useRef}from"react";import{createPortal}from"react-dom";import{Slot}from"./-constants";import{useLayoutPanelsEnabled}from"./context";export const LayoutPortalContext=createContext({});export function useLayoutPortal(slot,children){let slotNode=useContext(LayoutPortalContext)[slot]??null;return slotNode?createPortal(children,slotNode):null}export const PanelRegistryContext=createContext(null);export function useDeclarePanel(slot,reg){let registry=useContext(PanelRegistryContext),declarationEnabled=!0===useLayoutPanelsEnabled()||slot===Slot.content,{defaultSize,minSize,maxSize,collapsible}=reg;useLayoutEffect(()=>{if(registry&&declarationEnabled)return registry.register(slot,{defaultSize,minSize,maxSize,collapsible}),()=>registry.unregister(slot)},[registry,declarationEnabled,slot,defaultSize,minSize,maxSize,collapsible])}export const PanelPresenceContext=createContext(null);export function usePanelPresence(slot,isPresent){let presence=useContext(PanelPresenceContext);useLayoutEffect(()=>{if(presence)return presence.setPresent(slot,isPresent),()=>presence.setPresent(slot,!1)},[presence,slot,isPresent])}export const PanelAnimationContext=createContext(null);export function usePanelAnimationControl(){return useContext(PanelAnimationContext)}export function useRunCallbackOnValueChange(value,onChange){let prev=useRef(value);useEffect(()=>{prev.current!==value&&(prev.current=value,onChange?.(value))},[value,onChange])}export function useVisibleChange(visible,onChange){useRunCallbackOnValueChange(visible,onChange)}
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
import type { PortalTargets } from "./registry";
|
|
2
|
+
import type { SlotKey } from "./-types";
|
|
3
|
+
/**
|
|
4
|
+
* Portal-target wiring for the Layout, including the one slot that can float.
|
|
5
|
+
*
|
|
6
|
+
* The vocabulary:
|
|
7
|
+
* - **slot host** - the `<div>` a panel occupies in the docked row (one per
|
|
8
|
+
* shown slot, captured via ref).
|
|
9
|
+
* - **float host** - the `<div>` inside the floating window's shell.
|
|
10
|
+
* - **carrier** - a persistent `<div>` that carries the floatable slot's
|
|
11
|
+
* children, physically reparented between its slot host (docked) and the
|
|
12
|
+
* float host (floating).
|
|
13
|
+
* - **portal target** - what a marker portals its content into. For normal
|
|
14
|
+
* slots the target IS the slot host; for the floatable slot it is the
|
|
15
|
+
* carrier, whose identity never changes - so the panel's children keep
|
|
16
|
+
* their state across dock ↔ float instead of remounting.
|
|
17
|
+
*/
|
|
18
|
+
type FloatablePortalTargetsArgs = {
|
|
19
|
+
/** All slots, in row order. */
|
|
20
|
+
slots: readonly SlotKey[];
|
|
21
|
+
/** The single slot whose content may move into the floating window. */
|
|
22
|
+
floatableSlot: SlotKey;
|
|
23
|
+
/** Whether the floatable slot is currently floating. */
|
|
24
|
+
isFloating: boolean;
|
|
25
|
+
};
|
|
26
|
+
type FloatablePortalTargetsResult = {
|
|
27
|
+
/** Per-slot portal targets - what markers portal content into. */
|
|
28
|
+
portalTargets: PortalTargets;
|
|
29
|
+
/** The docked-row host elements, keyed by slot (for width observers etc.). */
|
|
30
|
+
slotHosts: PortalTargets;
|
|
31
|
+
/** Stable ref callbacks - attach one to each slot's docked host `<div>`. */
|
|
32
|
+
slotHostRefs: Record<SlotKey, (el: HTMLElement | null) => void>;
|
|
33
|
+
/** Ref callback for the floating window's content host `<div>`. */
|
|
34
|
+
floatHostRef: (el: HTMLElement | null) => void;
|
|
35
|
+
};
|
|
36
|
+
export declare const useFloatablePortalTargets: ({ slots, floatableSlot, isFloating, }: FloatablePortalTargetsArgs) => FloatablePortalTargetsResult;
|
|
37
|
+
export {};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{useLayoutEffect,useMemo,useState}from"react";import{useDocument}from"../../shared/useDocument";let usePortalContainerRefs=keys=>{let[elements,setElements]=useState({});return[elements,useMemo(()=>{let map={};return keys.forEach(key=>{map[key]=el=>setElements(prev=>prev[key]===el?prev:{...prev,[key]:el})}),map},[keys])]},useReparentingPortalNode=hostNode=>{let document=useDocument(),[portalNode]=useState(()=>{if(!document)return null;let node=document.createElement("div");return node.style.height="100%",node.style.width="100%",node.style.position="relative",node});return useLayoutEffect(()=>{portalNode&&hostNode&&portalNode.parentElement!==hostNode&&hostNode.appendChild(portalNode)},[portalNode,hostNode]),portalNode};export const useFloatablePortalTargets=({slots,floatableSlot,isFloating})=>{let[slotHosts,slotHostRefs]=usePortalContainerRefs(slots),[floatHost,setFloatHost]=useState(null),carrier=useReparentingPortalNode(isFloating?floatHost:slotHosts[floatableSlot]??null);return{portalTargets:useMemo(()=>carrier?{...slotHosts,[floatableSlot]:carrier}:slotHosts,[slotHosts,floatableSlot,carrier]),slotHosts,slotHostRefs,floatHostRef:setFloatHost}};
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
import type { SidePanelKey } from "./-constants";
|
|
2
|
+
import type { Size } from "./-types";
|
|
3
|
+
export type PanelDockedSlideOptions = {
|
|
4
|
+
/** Which side-panel slot this animates. */
|
|
5
|
+
slot: SidePanelKey;
|
|
6
|
+
defaultSize?: Size;
|
|
7
|
+
minSize?: Size;
|
|
8
|
+
maxSize?: Size;
|
|
9
|
+
collapsible: boolean;
|
|
10
|
+
};
|
|
11
|
+
export type PanelDockedSlide = {
|
|
12
|
+
/** Whether the panel's content should render at all (entering, open, or
|
|
13
|
+
* mid-exit). Kept true through the close so the exit slide can play. */
|
|
14
|
+
isMounted: boolean;
|
|
15
|
+
/** Body width (px) while the column slides; `null` at rest, where the body
|
|
16
|
+
* fills the column and the panel stays resizable. */
|
|
17
|
+
pinnedWidth: number | null;
|
|
18
|
+
};
|
|
19
|
+
/**
|
|
20
|
+
* Animates a docked side panel's open/close as a width slide on its
|
|
21
|
+
* `react-resizable-panels` column, pushing neighbouring content smoothly
|
|
22
|
+
* instead of snapping. Slot-generic - works for either side panel; render the
|
|
23
|
+
* returned state with {@link PanelSlideBody}. Falls back to an instant
|
|
24
|
+
* open/close when the panel isn't collapsible, no handle is available, or
|
|
25
|
+
* reduced motion is requested. The mobile modal-drawer lifecycle lives in
|
|
26
|
+
* {@link useExitAnimation} and the Drawer's styled components.
|
|
27
|
+
*/
|
|
28
|
+
export declare function usePanelDockedSlide({ slot, defaultSize, minSize, maxSize, collapsible, }: PanelDockedSlideOptions): PanelDockedSlide;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{useLayoutEffect,useState}from"react";import{useTheme}from"@emotion/react";import{useWindow}from"../../shared/useWindow";import{prefersReducedMotion}from"../../shared/prefersReducedMotion";import{useDeclarePanel,usePanelAnimationControl,usePanelPresence}from"./registry";import{useLayout}from"./useLayout";let parseDurationMs=duration=>{let trimmed=duration.trim();return trimmed.endsWith("ms")?parseFloat(trimmed):trimmed.endsWith("s")?1e3*parseFloat(trimmed):parseFloat(trimmed)||0},resolveSizePx=(size,groupWidthPx)=>{if("number"==typeof size)return size;if("string"!=typeof size)return null;let parsed=parseFloat(size);return Number.isFinite(parsed)?size.trim().endsWith("px")?parsed:null!=groupWidthPx?parsed/100*groupWidthPx:null:null},groupColumnsOf=element=>{let columns=element.closest("[data-group]")?.querySelectorAll("[data-panel]");return columns?Array.from(columns):[element]},isHandleReady=handle=>{try{return handle.isCollapsed(),!0}catch{return!1}};export function usePanelDockedSlide({slot,defaultSize,minSize,maxSize,collapsible}){let{isVisible,state}=useLayout()[slot],theme=useTheme(),window=useWindow(),animation=usePanelAnimationControl(),reducedMotion=prefersReducedMotion(window),[isMounted,setIsMounted]=useState(isVisible),[phase,setPhase]=useState("idle"),[pinnedWidth,setPinnedWidth]=useState(null),[prevVisible,setPrevVisible]=useState(isVisible);return isVisible!==prevVisible&&(setPrevVisible(isVisible),setPhase(isVisible?"entering":"exiting"),isVisible&&setIsMounted(!0)),useDeclarePanel(slot,{defaultSize:"entering"===phase&&collapsible&&!reducedMotion?0:defaultSize,minSize,maxSize,collapsible}),usePanelPresence(slot,isMounted),useLayoutEffect(()=>{if("idle"===phase)return;let cancelled=!1,frame=0,settleTimer=0,animatedColumns=[];animation?.setResizeSuppressed(slot,!0);let{duration,timingFunction}=theme.variables.animation.navSlide.open,durationMs=parseDurationMs(duration),setColumnTransitions=enabled=>{animatedColumns.forEach(column=>{enabled?column.style.setProperty("transition",`flex-grow ${duration} ${timingFunction}`):column.style.removeProperty("transition")})},targetSize=state.size??defaultSize??minSize,openColumn=(handle,targetPx)=>{handle.isCollapsed()&&handle.expand(),handle.resize(targetPx??targetSize??minSize??"20%")},settle=handle=>{if(setColumnTransitions(!1),animation?.setResizeSuppressed(slot,!1),"entering"===phase&&handle)try{handle.getSize().inPixels<1&&openColumn(handle,null)}catch{}setPinnedWidth(null),"exiting"===phase&&setIsMounted(!1),setPhase("idle")},runSlide=(handle,element)=>{animatedColumns=groupColumnsOf(element);let targetPx=resolveSizePx(targetSize,element.closest("[data-group]")?.getBoundingClientRect().width??null);setPinnedWidth("entering"===phase?targetPx:handle.getSize().inPixels),setColumnTransitions(!0),element.getBoundingClientRect();try{"entering"===phase?openColumn(handle,targetPx):handle.collapse()}catch{settle(handle);return}settleTimer=window.setTimeout(()=>settle(handle),durationMs+80)},waitForColumn=attempt=>{if(cancelled)return;let handle=animation?.getHandle(slot)??null,element=animation?.getElement(slot)??null;return handle&&element&&isHandleReady(handle)?void runSlide(handle,element):"exiting"===phase||!animation||attempt>=30?void settle(handle):void(frame=window.requestAnimationFrame(()=>waitForColumn(attempt+1)))};return!collapsible||reducedMotion?settle(animation?.getHandle(slot)??null):waitForColumn(0),()=>{cancelled=!0,window.cancelAnimationFrame(frame),window.clearTimeout(settleTimer),setColumnTransitions(!1),animation?.setResizeSuppressed(slot,!1)}},[phase,slot,collapsible,animation,window,theme]),{isMounted,pinnedWidth}}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import React,{useContext}from"react";import styled from"@emotion/styled";import isPropValid from"@emotion/is-prop-valid";import{TextContext}from"../Typography/Text/Text";import{Icon}from"../Icon/Icon";let StyledLink=styled("a",{shouldForwardProp:prop=>isPropValid(prop)&&"inline"!==prop,target:"e1r5piwh0",label:"StyledLink"})(({theme,weight,size,color,inline})=>({cursor:"pointer",background:"none",border:"none",padding:0,fontSize:theme.variables.size.font[size]??"inherit",fontWeight:theme.variables.weight[weight]??"inherit",lineHeight:({xs:theme.variables.size.lineHeight.xl,s:theme.variables.size.lineHeight.l,m:theme.variables.size.lineHeight.xl,l:theme.variables.size.lineHeight.xl})[size],fontFamily:theme.variables.fontFamily.lato,textDecorationLine:inline?"underline":"none",color:color?theme.values.color.text[color].default:"inherit",...("primary"===color||"secondary"===color||"tertiary"===color)&&{textDecorationColor:theme.values.color.text.underline.default},"&:hover":{textDecorationLine:"underline",textDecorationThickness:"0.125em",...("primary"===color||"secondary"===color||"tertiary"===color)&&{textDecorationColor:theme.values.color.text.underline.hover,color:theme.values.color.text[color].hover}}}),"/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3JjL2NvbXBvbmVudHMvTGluay9MaW5rLnRzeCIsInNvdXJjZXMiOlsic3JjL2NvbXBvbmVudHMvTGluay9MaW5rLnRzeCJdLCJzb3VyY2VzQ29udGVudCI6WyIvKiBlc2xpbnQtZGlzYWJsZSByZWFjdC9qc3gtcHJvcHMtbm8tc3ByZWFkaW5nICovXG5pbXBvcnQgUmVhY3QsIHsgdXNlQ29udGV4dCwgdHlwZSBBcmlhQXR0cmlidXRlcyB9IGZyb20gXCJyZWFjdFwiO1xuaW1wb3J0IHR5cGUgeyBDU1NPYmplY3QgfSBmcm9tIFwiQGVtb3Rpb24vcmVhY3RcIjtcbmltcG9ydCBzdHlsZWQgZnJvbSBcIkBlbW90aW9uL3N0eWxlZFwiO1xuaW1wb3J0IGlzUHJvcFZhbGlkIGZyb20gXCJAZW1vdGlvbi9pcy1wcm9wLXZhbGlkXCI7XG5pbXBvcnQgeyBUZXh0Q29udGV4dCB9IGZyb20gXCIuLi9UeXBvZ3JhcGh5L1RleHQvVGV4dFwiO1xuaW1wb3J0IHR5cGUgeyBJY29uUHJvcHMgfSBmcm9tIFwiLi4vSWNvbi9JY29uXCI7XG5pbXBvcnQgeyBJY29uIH0gZnJvbSBcIi4uL0ljb24vSWNvblwiO1xuaW1wb3J0IHR5cGUge1xuICBUZXh0Q29sb3JzLFxuICBUZXh0U2l6ZSxcbiAgVGV4dFdlaWdodCxcbiAgUG9seW1vcnBoaWNDb21wb25lbnRQcm9wc1dpdGhSZWYsXG4gIFBvbHltb3JwaGljUmVmLFxuICBMaW5rVmFyaWF0aW9ucyxcbn0gZnJvbSBcIi4uLy4uL3R5cGVzXCI7XG5cbnR5cGUgU3VwcGxlbWVudGFyeUljb25Qcm9wcyA9IFBpY2s8SWNvblByb3BzLCBcIm5hbWVcIiB8IFwiY29sb3JcIj47XG5cbmV4cG9ydCB0eXBlIExpbmtDb25kaXRpb25hbFByb3BzID1cbiAgfCB7XG4gICAgICAvKiogSXQgZm9yY2VzIHRvIGluaGVyaXQgY29sb3IsIHdlaWdodCwgc2l6ZSBmcm9tIHBhcmVudCAqL1xuICAgICAgaW5saW5lOiB0cnVlO1xuICAgICAgLyoqIEEgY29sb3IgaXMgaW5oZXJpdGVkIGZyb20gaXRzIHBhcmVudCBUZXh0IG90aGVyd2lzZSBzZXQgYXMgJ3ByaW1hcnknICovXG4gICAgICBjb2xvcjogVGV4dENvbG9ycztcbiAgICAgIC8qKiBJY29ucyBhcmUgbm90IHN1cHBvcnRlZCBmb3IgaW5saW5lIGxpbmtzICovXG4gICAgICBpY29uTGVmdD86IG5ldmVyO1xuICAgICAgLyoqIEljb25zIGFyZSBub3Qgc3VwcG9ydGVkIGZvciBpbmxpbmUgbGlua3MgKi9cbiAgICAgIGljb25SaWdodD86IG5ldmVyO1xuICAgIH1cbiAgfCB7XG4gICAgICBpbmxpbmU/OiBmYWxzZSB8IHVuZGVmaW5lZDtcbiAgICAgIGNvbG9yPzogVGV4dENvbG9ycztcbiAgICAgIC8qKiBJY29uIGRpc3BsYXllZCBvbiB0aGUgbGVmdCBzaWRlIG9mIHRoZSBsaW5rICovXG4gICAgICBpY29uTGVmdD86IFN1cHBsZW1lbnRhcnlJY29uUHJvcHM7XG4gICAgICAvKiogSWNvbiBkaXNwbGF5ZWQgb24gdGhlIHJpZ2h0IHNpZGUgb2YgdGhlIGxpbmsgKi9cbiAgICAgIGljb25SaWdodD86IFN1cHBsZW1lbnRhcnlJY29uUHJvcHM7XG4gICAgfTtcblxuZXhwb3J0IHR5cGUgTGlua1Byb3BzID0ge1xuICAvKiogQSBzaXplIGlzIGluaGVyaXRlZCBmcm9tIGl0cyBwYXJlbnQgKi9cbiAgc2l6ZT86IFRleHRTaXplO1xuICAvKiogQSB3ZWlnaHQgaXMgaW5oZXJpdGVkIGZyb20gaXRzIHBhcmVudCAqL1xuICB3ZWlnaHQ/OiBUZXh0V2VpZ2h0O1xuICAvKiogQGRlcHJlY2F0ZWQgdmFyaWFudCwgcGxlYXNlIHVzZSBcImNvbG9yXCIgcHJvcCBpbnN0ZWFkICovXG4gIHZhcmlhbnQ/OiBMaW5rVmFyaWF0aW9ucztcbiAgXCJkYXRhLWUyZS10ZXN0LWlkXCI/OiBzdHJpbmc7XG59ICYgTGlua0NvbmRpdGlvbmFsUHJvcHMgJlxuICBBcmlhQXR0cmlidXRlcztcblxuZXhwb3J0IHR5cGUgTGlua0NvbXBvbmVudCA9IDxDIGV4dGVuZHMgUmVhY3QuRWxlbWVudFR5cGUgPSBcImFcIj4oXG4gIHByb3BzOiBQb2x5bW9ycGhpY0NvbXBvbmVudFByb3BzV2l0aFJlZjxDLCBMaW5rUHJvcHM+XG4pID0+IFJlYWN0LlJlYWN0Tm9kZSB8IG51bGw7XG5cbmNvbnN0IFN0eWxlZExpbmsgPSBzdHlsZWQoXCJhXCIsIHtcbiAgc2hvdWxkRm9yd2FyZFByb3A6IChwcm9wKSA9PiBpc1Byb3BWYWxpZChwcm9wKSAmJiBwcm9wICE9PSBcImlubGluZVwiLFxufSk8UGFydGlhbDxMaW5rUHJvcHM+PihcbiAgKHsgdGhlbWUsIHdlaWdodCwgc2l6ZSwgY29sb3IsIGlubGluZSB9KSA9PlxuICAgICh7XG4gICAgICBjdXJzb3I6IFwicG9pbnRlclwiLFxuICAgICAgYmFja2dyb3VuZDogXCJub25lXCIsXG4gICAgICBib3JkZXI6IFwibm9uZVwiLFxuICAgICAgcGFkZGluZzogMCxcbiAgICAgIGZvbnRTaXplOiB0aGVtZS52YXJpYWJsZXMuc2l6ZS5mb250W3NpemVdID8/IFwiaW5oZXJpdFwiLFxuICAgICAgZm9udFdlaWdodDogdGhlbWUudmFyaWFibGVzLndlaWdodFt3ZWlnaHRdID8/IFwiaW5oZXJpdFwiLFxuICAgICAgbGluZUhlaWdodDoge1xuICAgICAgICB4czogdGhlbWUudmFyaWFibGVzLnNpemUubGluZUhlaWdodC54bCxcbiAgICAgICAgczogdGhlbWUudmFyaWFibGVzLnNpemUubGluZUhlaWdodC5sLFxuICAgICAgICBtOiB0aGVtZS52YXJpYWJsZXMuc2l6ZS5saW5lSGVpZ2h0LnhsLFxuICAgICAgICBsOiB0aGVtZS52YXJpYWJsZXMuc2l6ZS5saW5lSGVpZ2h0LnhsLFxuICAgICAgfVtzaXplXSxcbiAgICAgIGZvbnRGYW1pbHk6IHRoZW1lLnZhcmlhYmxlcy5mb250RmFtaWx5LmxhdG8sXG5cbiAgICAgIHRleHREZWNvcmF0aW9uTGluZTogaW5saW5lID8gXCJ1bmRlcmxpbmVcIiA6IFwibm9uZVwiLFxuICAgICAgY29sb3I6IGNvbG9yID8gdGhlbWUudmFsdWVzLmNvbG9yLnRleHRbY29sb3JdLmRlZmF1bHQgOiBcImluaGVyaXRcIixcblxuICAgICAgLi4uKChjb2xvciA9PT0gXCJwcmltYXJ5XCIgfHxcbiAgICAgICAgY29sb3IgPT09IFwic2Vjb25kYXJ5XCIgfHxcbiAgICAgICAgY29sb3IgPT09IFwidGVydGlhcnlcIikgJiYge1xuICAgICAgICB0ZXh0RGVjb3JhdGlvbkNvbG9yOiB0aGVtZS52YWx1ZXMuY29sb3IudGV4dC51bmRlcmxpbmUuZGVmYXVsdCxcbiAgICAgIH0pLFxuXG4gICAgICBcIiY6aG92ZXJcIjoge1xuICAgICAgICB0ZXh0RGVjb3JhdGlvbkxpbmU6IFwidW5kZXJsaW5lXCIsXG4gICAgICAgIHRleHREZWNvcmF0aW9uVGhpY2tuZXNzOiBcIjAuMTI1ZW1cIiwgLy8gaXQncyBub3Qgd29ya2luZyBpbiBTYWZhcmkgZm9yIGEgbGluayBhcyBidXR0b25cbiAgICAgICAgLi4uKChjb2xvciA9PT0gXCJwcmltYXJ5XCIgfHxcbiAgICAgICAgICBjb2xvciA9PT0gXCJzZWNvbmRhcnlcIiB8fFxuICAgICAgICAgIGNvbG9yID09PSBcInRlcnRpYXJ5XCIpICYmIHtcbiAgICAgICAgICB0ZXh0RGVjb3JhdGlvbkNvbG9yOiB0aGVtZS52YWx1ZXMuY29sb3IudGV4dC51bmRlcmxpbmUuaG92ZXIsXG4gICAgICAgICAgY29sb3I6IHRoZW1lLnZhbHVlcy5jb2xvci50ZXh0W2NvbG9yXS5ob3ZlcixcbiAgICAgICAgfSksXG4gICAgICB9LFxuICAgIH0gYXMgQ1NTT2JqZWN0KVxuKTtcblxuY29uc3QgU3R5bGVkSWNvbiA9IHN0eWxlZChJY29uKTx7IHBvc2l0aW9uOiBcImxlZnRcIiB8IFwicmlnaHRcIiB9PihcbiAgKHsgcG9zaXRpb24sIHRoZW1lIH0pID0+ICh7XG4gICAgLi4uKHBvc2l0aW9uID09PSBcImxlZnRcIiAmJiB7XG4gICAgICBtYXJnaW5SaWdodDogdGhlbWUudmFyaWFibGVzLnNpemUuc3BhY2luZy54eHMsXG4gICAgfSksXG4gICAgLi4uKHBvc2l0aW9uID09PSBcInJpZ2h0XCIgJiYge1xuICAgICAgbWFyZ2luTGVmdDogdGhlbWUudmFyaWFibGVzLnNpemUuc3BhY2luZy54eHMsXG4gICAgfSksXG4gIH0pXG4pO1xuXG5leHBvcnQgY29uc3QgTGluazogTGlua0NvbXBvbmVudCA9IFJlYWN0LmZvcndhcmRSZWYoXG4gIDxDIGV4dGVuZHMgUmVhY3QuRWxlbWVudFR5cGUgPSBcImFcIj4oXG4gICAge1xuICAgICAgd2VpZ2h0LFxuICAgICAgY29sb3I6IGNvbG9yUHJvcCxcbiAgICAgIHNpemUsXG4gICAgICB2YXJpYW50LFxuICAgICAgaW5saW5lLFxuICAgICAgaWNvbkxlZnQsXG4gICAgICBpY29uUmlnaHQsXG4gICAgICBjaGlsZHJlbixcbiAgICAgIFwiZGF0YS1lMmUtdGVzdC1pZFwiOiBkYXRhRTJlVGVzdElkLFxuICAgICAgLi4ucmVzdFxuICAgIH06IFBvbHltb3JwaGljQ29tcG9uZW50UHJvcHNXaXRoUmVmPEMsIExpbmtQcm9wcz4sXG4gICAgcmVmPzogUG9seW1vcnBoaWNSZWY8Qz5cbiAgKSA9PiB7XG4gICAgY29uc3QgaW5oZXJpdFByb3BzRnJvbVRleHQgPSB1c2VDb250ZXh0KFRleHRDb250ZXh0KTtcblxuICAgIGNvbnN0IGdldENvbG9yID0gKCkgPT4ge1xuICAgICAgaWYgKHZhcmlhbnQpIHtcbiAgICAgICAgLy8gdGhpcyBpcyBnb2luZyB0byBiZSBkZWxldGVkIGFmdGVyIG1pZ3JhdGlvblxuICAgICAgICBpZiAodmFyaWFudCA9PT0gXCJwcmltYXJ5XCIpIHJldHVybiBcImFjY2VudFwiO1xuICAgICAgICBpZiAodmFyaWFudCA9PT0gXCJzZWNvbmRhcnlcIikgcmV0dXJuIFwicHJpbWFyeVwiO1xuICAgICAgICByZXR1cm4gdmFyaWFudDtcbiAgICAgIH1cbiAgICAgIGlmIChjb2xvclByb3ApIHJldHVybiBjb2xvclByb3A7XG4gICAgICBpZiAoaW5oZXJpdFByb3BzRnJvbVRleHQ/LmNvbG9yKSByZXR1cm4gaW5oZXJpdFByb3BzRnJvbVRleHQ/LmNvbG9yO1xuICAgICAgaWYgKCFpbmxpbmUpIHJldHVybiBcImFjY2VudFwiO1xuICAgICAgcmV0dXJuIHVuZGVmaW5lZDtcbiAgICB9O1xuXG4gICAgY29uc3QgbGlua0NvbG9yID0gZ2V0Q29sb3IoKTtcblxuICAgIC8qIFdoeSBkbyB3ZSBuZWVkIGlubGluZSBwcm9wPyBXZSBpbmhlcml0IHNpemUgYW5kIGNvbG9yIGZyb20gVGV4dCAoaWYgTGluayBpcyB3cmFwcGVkIGluIGl0KSwgYnV0IHdlIG5lZWQgdG8gc3VwcG9ydCBMaW5rcyB3aXRoaW4gSGVhZGVycyBhbmQgb3RoZXIgY3VzdG9tIGNvbXBvbmVudHMuIFRodXMgYnkgZGVmYXVsdCwgc2l6ZSBhbmQgY29sb3IgYXJlIG5vdCByZXF1aXJlZCBwcm9wcyAqL1xuICAgIGNvbnN0IGlzSW5saW5lTGluayA9IGlubGluZSB8fCAhIWluaGVyaXRQcm9wc0Zyb21UZXh0O1xuXG4gICAgY29uc3QgaGFzSWNvbnMgPSAhaXNJbmxpbmVMaW5rICYmIChpY29uTGVmdCB8fCBpY29uUmlnaHQpO1xuXG4gICAgY29uc3QgbGlua0NvbnRlbnQgPSBoYXNJY29ucyA/IChcbiAgICAgIDw+XG4gICAgICAgIHtpY29uTGVmdCAmJiAoXG4gICAgICAgICAgPFN0eWxlZEljb25cbiAgICAgICAgICAgIGFyaWEtaGlkZGVuXG4gICAgICAgICAgICBzaXplPVwic1wiXG4gICAgICAgICAgICBuYW1lPXtpY29uTGVmdC5uYW1lfVxuICAgICAgICAgICAgY29sb3I9e2ljb25MZWZ0LmNvbG9yID8/IGxpbmtDb2xvcn1cbiAgICAgICAgICAgIGlubGluZVxuICAgICAgICAgICAgcG9zaXRpb249XCJsZWZ0XCJcbiAgICAgICAgICAvPlxuICAgICAgICApfVxuICAgICAgICB7Y2hpbGRyZW59XG4gICAgICAgIHtpY29uUmlnaHQgJiYgKFxuICAgICAgICAgIDxTdHlsZWRJY29uXG4gICAgICAgICAgICBhcmlhLWhpZGRlblxuICAgICAgICAgICAgc2l6ZT1cInNcIlxuICAgICAgICAgICAgbmFtZT17aWNvblJpZ2h0Lm5hbWV9XG4gICAgICAgICAgICBjb2xvcj17aWNvblJpZ2h0LmNvbG9yID8/IGxpbmtDb2xvcn1cbiAgICAgICAgICAgIGlubGluZVxuICAgICAgICAgICAgcG9zaXRpb249XCJyaWdodFwiXG4gICAgICAgICAgLz5cbiAgICAgICAgKX1cbiAgICAgIDwvPlxuICAgICkgOiAoXG4gICAgICBjaGlsZHJlblxuICAgICk7XG5cbiAgICByZXR1cm4gKFxuICAgICAgPFN0eWxlZExpbmtcbiAgICAgICAgZGF0YS1lMmUtdGVzdC1pZD17ZGF0YUUyZVRlc3RJZH1cbiAgICAgICAgZGF0YS1kcy1pZD1cIkxpbmtcIlxuICAgICAgICByZWY9e3JlZn1cbiAgICAgICAgaW5saW5lPXtpc0lubGluZUxpbmt9XG4gICAgICAgIGNvbG9yPXtsaW5rQ29sb3J9XG4gICAgICAgIHNpemU9e3NpemUgfHwgaW5oZXJpdFByb3BzRnJvbVRleHQ/LnNpemV9XG4gICAgICAgIHdlaWdodD17d2VpZ2h0IHx8IGluaGVyaXRQcm9wc0Zyb21UZXh0Py53ZWlnaHR9XG4gICAgICAgIHsuLi5yZXN0fVxuICAgICAgPlxuICAgICAgICB7bGlua0NvbnRlbnR9XG4gICAgICA8L1N0eWxlZExpbms+XG4gICAgKTtcbiAgfVxuKTtcbiJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFzRG1CIn0= */"),StyledIcon=styled(Icon,{target:"e1r5piwh1",label:"StyledIcon"})(({position,theme})=>({..."left"===position&&{marginRight:theme.variables.size.spacing.xxs},..."right"===position&&{marginLeft:theme.variables.size.spacing.xxs}}),"/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3JjL2NvbXBvbmVudHMvTGluay9MaW5rLnRzeCIsInNvdXJjZXMiOlsic3JjL2NvbXBvbmVudHMvTGluay9MaW5rLnRzeCJdLCJzb3VyY2VzQ29udGVudCI6WyIvKiBlc2xpbnQtZGlzYWJsZSByZWFjdC9qc3gtcHJvcHMtbm8tc3ByZWFkaW5nICovXG5pbXBvcnQgUmVhY3QsIHsgdXNlQ29udGV4dCwgdHlwZSBBcmlhQXR0cmlidXRlcyB9IGZyb20gXCJyZWFjdFwiO1xuaW1wb3J0IHR5cGUgeyBDU1NPYmplY3QgfSBmcm9tIFwiQGVtb3Rpb24vcmVhY3RcIjtcbmltcG9ydCBzdHlsZWQgZnJvbSBcIkBlbW90aW9uL3N0eWxlZFwiO1xuaW1wb3J0IGlzUHJvcFZhbGlkIGZyb20gXCJAZW1vdGlvbi9pcy1wcm9wLXZhbGlkXCI7XG5pbXBvcnQgeyBUZXh0Q29udGV4dCB9IGZyb20gXCIuLi9UeXBvZ3JhcGh5L1RleHQvVGV4dFwiO1xuaW1wb3J0IHR5cGUgeyBJY29uUHJvcHMgfSBmcm9tIFwiLi4vSWNvbi9JY29uXCI7XG5pbXBvcnQgeyBJY29uIH0gZnJvbSBcIi4uL0ljb24vSWNvblwiO1xuaW1wb3J0IHR5cGUge1xuICBUZXh0Q29sb3JzLFxuICBUZXh0U2l6ZSxcbiAgVGV4dFdlaWdodCxcbiAgUG9seW1vcnBoaWNDb21wb25lbnRQcm9wc1dpdGhSZWYsXG4gIFBvbHltb3JwaGljUmVmLFxuICBMaW5rVmFyaWF0aW9ucyxcbn0gZnJvbSBcIi4uLy4uL3R5cGVzXCI7XG5cbnR5cGUgU3VwcGxlbWVudGFyeUljb25Qcm9wcyA9IFBpY2s8SWNvblByb3BzLCBcIm5hbWVcIiB8IFwiY29sb3JcIj47XG5cbmV4cG9ydCB0eXBlIExpbmtDb25kaXRpb25hbFByb3BzID1cbiAgfCB7XG4gICAgICAvKiogSXQgZm9yY2VzIHRvIGluaGVyaXQgY29sb3IsIHdlaWdodCwgc2l6ZSBmcm9tIHBhcmVudCAqL1xuICAgICAgaW5saW5lOiB0cnVlO1xuICAgICAgLyoqIEEgY29sb3IgaXMgaW5oZXJpdGVkIGZyb20gaXRzIHBhcmVudCBUZXh0IG90aGVyd2lzZSBzZXQgYXMgJ3ByaW1hcnknICovXG4gICAgICBjb2xvcjogVGV4dENvbG9ycztcbiAgICAgIC8qKiBJY29ucyBhcmUgbm90IHN1cHBvcnRlZCBmb3IgaW5saW5lIGxpbmtzICovXG4gICAgICBpY29uTGVmdD86IG5ldmVyO1xuICAgICAgLyoqIEljb25zIGFyZSBub3Qgc3VwcG9ydGVkIGZvciBpbmxpbmUgbGlua3MgKi9cbiAgICAgIGljb25SaWdodD86IG5ldmVyO1xuICAgIH1cbiAgfCB7XG4gICAgICBpbmxpbmU/OiBmYWxzZSB8IHVuZGVmaW5lZDtcbiAgICAgIGNvbG9yPzogVGV4dENvbG9ycztcbiAgICAgIC8qKiBJY29uIGRpc3BsYXllZCBvbiB0aGUgbGVmdCBzaWRlIG9mIHRoZSBsaW5rICovXG4gICAgICBpY29uTGVmdD86IFN1cHBsZW1lbnRhcnlJY29uUHJvcHM7XG4gICAgICAvKiogSWNvbiBkaXNwbGF5ZWQgb24gdGhlIHJpZ2h0IHNpZGUgb2YgdGhlIGxpbmsgKi9cbiAgICAgIGljb25SaWdodD86IFN1cHBsZW1lbnRhcnlJY29uUHJvcHM7XG4gICAgfTtcblxuZXhwb3J0IHR5cGUgTGlua1Byb3BzID0ge1xuICAvKiogQSBzaXplIGlzIGluaGVyaXRlZCBmcm9tIGl0cyBwYXJlbnQgKi9cbiAgc2l6ZT86IFRleHRTaXplO1xuICAvKiogQSB3ZWlnaHQgaXMgaW5oZXJpdGVkIGZyb20gaXRzIHBhcmVudCAqL1xuICB3ZWlnaHQ/OiBUZXh0V2VpZ2h0O1xuICAvKiogQGRlcHJlY2F0ZWQgdmFyaWFudCwgcGxlYXNlIHVzZSBcImNvbG9yXCIgcHJvcCBpbnN0ZWFkICovXG4gIHZhcmlhbnQ/OiBMaW5rVmFyaWF0aW9ucztcbiAgXCJkYXRhLWUyZS10ZXN0LWlkXCI/OiBzdHJpbmc7XG59ICYgTGlua0NvbmRpdGlvbmFsUHJvcHMgJlxuICBBcmlhQXR0cmlidXRlcztcblxuZXhwb3J0IHR5cGUgTGlua0NvbXBvbmVudCA9IDxDIGV4dGVuZHMgUmVhY3QuRWxlbWVudFR5cGUgPSBcImFcIj4oXG4gIHByb3BzOiBQb2x5bW9ycGhpY0NvbXBvbmVudFByb3BzV2l0aFJlZjxDLCBMaW5rUHJvcHM+XG4pID0+IFJlYWN0LlJlYWN0Tm9kZSB8IG51bGw7XG5cbmNvbnN0IFN0eWxlZExpbmsgPSBzdHlsZWQoXCJhXCIsIHtcbiAgc2hvdWxkRm9yd2FyZFByb3A6IChwcm9wKSA9PiBpc1Byb3BWYWxpZChwcm9wKSAmJiBwcm9wICE9PSBcImlubGluZVwiLFxufSk8UGFydGlhbDxMaW5rUHJvcHM+PihcbiAgKHsgdGhlbWUsIHdlaWdodCwgc2l6ZSwgY29sb3IsIGlubGluZSB9KSA9PlxuICAgICh7XG4gICAgICBjdXJzb3I6IFwicG9pbnRlclwiLFxuICAgICAgYmFja2dyb3VuZDogXCJub25lXCIsXG4gICAgICBib3JkZXI6IFwibm9uZVwiLFxuICAgICAgcGFkZGluZzogMCxcbiAgICAgIGZvbnRTaXplOiB0aGVtZS52YXJpYWJsZXMuc2l6ZS5mb250W3NpemVdID8/IFwiaW5oZXJpdFwiLFxuICAgICAgZm9udFdlaWdodDogdGhlbWUudmFyaWFibGVzLndlaWdodFt3ZWlnaHRdID8/IFwiaW5oZXJpdFwiLFxuICAgICAgbGluZUhlaWdodDoge1xuICAgICAgICB4czogdGhlbWUudmFyaWFibGVzLnNpemUubGluZUhlaWdodC54bCxcbiAgICAgICAgczogdGhlbWUudmFyaWFibGVzLnNpemUubGluZUhlaWdodC5sLFxuICAgICAgICBtOiB0aGVtZS52YXJpYWJsZXMuc2l6ZS5saW5lSGVpZ2h0LnhsLFxuICAgICAgICBsOiB0aGVtZS52YXJpYWJsZXMuc2l6ZS5saW5lSGVpZ2h0LnhsLFxuICAgICAgfVtzaXplXSxcbiAgICAgIGZvbnRGYW1pbHk6IHRoZW1lLnZhcmlhYmxlcy5mb250RmFtaWx5LmxhdG8sXG5cbiAgICAgIHRleHREZWNvcmF0aW9uTGluZTogaW5saW5lID8gXCJ1bmRlcmxpbmVcIiA6IFwibm9uZVwiLFxuICAgICAgY29sb3I6IGNvbG9yID8gdGhlbWUudmFsdWVzLmNvbG9yLnRleHRbY29sb3JdLmRlZmF1bHQgOiBcImluaGVyaXRcIixcblxuICAgICAgLi4uKChjb2xvciA9PT0gXCJwcmltYXJ5XCIgfHxcbiAgICAgICAgY29sb3IgPT09IFwic2Vjb25kYXJ5XCIgfHxcbiAgICAgICAgY29sb3IgPT09IFwidGVydGlhcnlcIikgJiYge1xuICAgICAgICB0ZXh0RGVjb3JhdGlvbkNvbG9yOiB0aGVtZS52YWx1ZXMuY29sb3IudGV4dC51bmRlcmxpbmUuZGVmYXVsdCxcbiAgICAgIH0pLFxuXG4gICAgICBcIiY6aG92ZXJcIjoge1xuICAgICAgICB0ZXh0RGVjb3JhdGlvbkxpbmU6IFwidW5kZXJsaW5lXCIsXG4gICAgICAgIHRleHREZWNvcmF0aW9uVGhpY2tuZXNzOiBcIjAuMTI1ZW1cIiwgLy8gaXQncyBub3Qgd29ya2luZyBpbiBTYWZhcmkgZm9yIGEgbGluayBhcyBidXR0b25cbiAgICAgICAgLi4uKChjb2xvciA9PT0gXCJwcmltYXJ5XCIgfHxcbiAgICAgICAgICBjb2xvciA9PT0gXCJzZWNvbmRhcnlcIiB8fFxuICAgICAgICAgIGNvbG9yID09PSBcInRlcnRpYXJ5XCIpICYmIHtcbiAgICAgICAgICB0ZXh0RGVjb3JhdGlvbkNvbG9yOiB0aGVtZS52YWx1ZXMuY29sb3IudGV4dC51bmRlcmxpbmUuaG92ZXIsXG4gICAgICAgICAgY29sb3I6IHRoZW1lLnZhbHVlcy5jb2xvci50ZXh0W2NvbG9yXS5ob3ZlcixcbiAgICAgICAgfSksXG4gICAgICB9LFxuICAgIH0gYXMgQ1NTT2JqZWN0KVxuKTtcblxuY29uc3QgU3R5bGVkSWNvbiA9IHN0eWxlZChJY29uKTx7IHBvc2l0aW9uOiBcImxlZnRcIiB8IFwicmlnaHRcIiB9PihcbiAgKHsgcG9zaXRpb24sIHRoZW1lIH0pID0+ICh7XG4gICAgLi4uKHBvc2l0aW9uID09PSBcImxlZnRcIiAmJiB7XG4gICAgICBtYXJnaW5SaWdodDogdGhlbWUudmFyaWFibGVzLnNpemUuc3BhY2luZy54eHMsXG4gICAgfSksXG4gICAgLi4uKHBvc2l0aW9uID09PSBcInJpZ2h0XCIgJiYge1xuICAgICAgbWFyZ2luTGVmdDogdGhlbWUudmFyaWFibGVzLnNpemUuc3BhY2luZy54eHMsXG4gICAgfSksXG4gIH0pXG4pO1xuXG5leHBvcnQgY29uc3QgTGluazogTGlua0NvbXBvbmVudCA9IFJlYWN0LmZvcndhcmRSZWYoXG4gIDxDIGV4dGVuZHMgUmVhY3QuRWxlbWVudFR5cGUgPSBcImFcIj4oXG4gICAge1xuICAgICAgd2VpZ2h0LFxuICAgICAgY29sb3I6IGNvbG9yUHJvcCxcbiAgICAgIHNpemUsXG4gICAgICB2YXJpYW50LFxuICAgICAgaW5saW5lLFxuICAgICAgaWNvbkxlZnQsXG4gICAgICBpY29uUmlnaHQsXG4gICAgICBjaGlsZHJlbixcbiAgICAgIFwiZGF0YS1lMmUtdGVzdC1pZFwiOiBkYXRhRTJlVGVzdElkLFxuICAgICAgLi4ucmVzdFxuICAgIH06IFBvbHltb3JwaGljQ29tcG9uZW50UHJvcHNXaXRoUmVmPEMsIExpbmtQcm9wcz4sXG4gICAgcmVmPzogUG9seW1vcnBoaWNSZWY8Qz5cbiAgKSA9PiB7XG4gICAgY29uc3QgaW5oZXJpdFByb3BzRnJvbVRleHQgPSB1c2VDb250ZXh0KFRleHRDb250ZXh0KTtcblxuICAgIGNvbnN0IGdldENvbG9yID0gKCkgPT4ge1xuICAgICAgaWYgKHZhcmlhbnQpIHtcbiAgICAgICAgLy8gdGhpcyBpcyBnb2luZyB0byBiZSBkZWxldGVkIGFmdGVyIG1pZ3JhdGlvblxuICAgICAgICBpZiAodmFyaWFudCA9PT0gXCJwcmltYXJ5XCIpIHJldHVybiBcImFjY2VudFwiO1xuICAgICAgICBpZiAodmFyaWFudCA9PT0gXCJzZWNvbmRhcnlcIikgcmV0dXJuIFwicHJpbWFyeVwiO1xuICAgICAgICByZXR1cm4gdmFyaWFudDtcbiAgICAgIH1cbiAgICAgIGlmIChjb2xvclByb3ApIHJldHVybiBjb2xvclByb3A7XG4gICAgICBpZiAoaW5oZXJpdFByb3BzRnJvbVRleHQ/LmNvbG9yKSByZXR1cm4gaW5oZXJpdFByb3BzRnJvbVRleHQ/LmNvbG9yO1xuICAgICAgaWYgKCFpbmxpbmUpIHJldHVybiBcImFjY2VudFwiO1xuICAgICAgcmV0dXJuIHVuZGVmaW5lZDtcbiAgICB9O1xuXG4gICAgY29uc3QgbGlua0NvbG9yID0gZ2V0Q29sb3IoKTtcblxuICAgIC8qIFdoeSBkbyB3ZSBuZWVkIGlubGluZSBwcm9wPyBXZSBpbmhlcml0IHNpemUgYW5kIGNvbG9yIGZyb20gVGV4dCAoaWYgTGluayBpcyB3cmFwcGVkIGluIGl0KSwgYnV0IHdlIG5lZWQgdG8gc3VwcG9ydCBMaW5rcyB3aXRoaW4gSGVhZGVycyBhbmQgb3RoZXIgY3VzdG9tIGNvbXBvbmVudHMuIFRodXMgYnkgZGVmYXVsdCwgc2l6ZSBhbmQgY29sb3IgYXJlIG5vdCByZXF1aXJlZCBwcm9wcyAqL1xuICAgIGNvbnN0IGlzSW5saW5lTGluayA9IGlubGluZSB8fCAhIWluaGVyaXRQcm9wc0Zyb21UZXh0O1xuXG4gICAgY29uc3QgaGFzSWNvbnMgPSAhaXNJbmxpbmVMaW5rICYmIChpY29uTGVmdCB8fCBpY29uUmlnaHQpO1xuXG4gICAgY29uc3QgbGlua0NvbnRlbnQgPSBoYXNJY29ucyA/IChcbiAgICAgIDw+XG4gICAgICAgIHtpY29uTGVmdCAmJiAoXG4gICAgICAgICAgPFN0eWxlZEljb25cbiAgICAgICAgICAgIGFyaWEtaGlkZGVuXG4gICAgICAgICAgICBzaXplPVwic1wiXG4gICAgICAgICAgICBuYW1lPXtpY29uTGVmdC5uYW1lfVxuICAgICAgICAgICAgY29sb3I9e2ljb25MZWZ0LmNvbG9yID8/IGxpbmtDb2xvcn1cbiAgICAgICAgICAgIGlubGluZVxuICAgICAgICAgICAgcG9zaXRpb249XCJsZWZ0XCJcbiAgICAgICAgICAvPlxuICAgICAgICApfVxuICAgICAgICB7Y2hpbGRyZW59XG4gICAgICAgIHtpY29uUmlnaHQgJiYgKFxuICAgICAgICAgIDxTdHlsZWRJY29uXG4gICAgICAgICAgICBhcmlhLWhpZGRlblxuICAgICAgICAgICAgc2l6ZT1cInNcIlxuICAgICAgICAgICAgbmFtZT17aWNvblJpZ2h0Lm5hbWV9XG4gICAgICAgICAgICBjb2xvcj17aWNvblJpZ2h0LmNvbG9yID8/IGxpbmtDb2xvcn1cbiAgICAgICAgICAgIGlubGluZVxuICAgICAgICAgICAgcG9zaXRpb249XCJyaWdodFwiXG4gICAgICAgICAgLz5cbiAgICAgICAgKX1cbiAgICAgIDwvPlxuICAgICkgOiAoXG4gICAgICBjaGlsZHJlblxuICAgICk7XG5cbiAgICByZXR1cm4gKFxuICAgICAgPFN0eWxlZExpbmtcbiAgICAgICAgZGF0YS1lMmUtdGVzdC1pZD17ZGF0YUUyZVRlc3RJZH1cbiAgICAgICAgZGF0YS1kcy1pZD1cIkxpbmtcIlxuICAgICAgICByZWY9e3JlZn1cbiAgICAgICAgaW5saW5lPXtpc0lubGluZUxpbmt9XG4gICAgICAgIGNvbG9yPXtsaW5rQ29sb3J9XG4gICAgICAgIHNpemU9e3NpemUgfHwgaW5oZXJpdFByb3BzRnJvbVRleHQ/LnNpemV9XG4gICAgICAgIHdlaWdodD17d2VpZ2h0IHx8IGluaGVyaXRQcm9wc0Zyb21UZXh0Py53ZWlnaHR9XG4gICAgICAgIHsuLi5yZXN0fVxuICAgICAgPlxuICAgICAgICB7bGlua0NvbnRlbnR9XG4gICAgICA8L1N0eWxlZExpbms+XG4gICAgKTtcbiAgfVxuKTtcbiJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUErRm1CIn0= */");export const Link=React.forwardRef(({weight,color:colorProp,size,variant,inline,iconLeft,iconRight,children,"data-e2e-test-id":dataE2eTestId,...rest},ref)=>{let inheritPropsFromText=useContext(TextContext),linkColor=variant?"primary"===variant?"accent":"secondary"===variant?"primary":variant:colorProp||(inheritPropsFromText?.color?inheritPropsFromText?.color:inline?void 0:"accent"),isInlineLink=inline||!!inheritPropsFromText,linkContent=!isInlineLink&&(iconLeft||iconRight)?React.createElement(React.Fragment,null,iconLeft&&React.createElement(StyledIcon,{"aria-hidden":!0,size:"s",name:iconLeft.name,color:iconLeft.color??linkColor,inline:!0,position:"left"}),children,iconRight&&React.createElement(StyledIcon,{"aria-hidden":!0,size:"s",name:iconRight.name,color:iconRight.color??linkColor,inline:!0,position:"right"})):children;return React.createElement(StyledLink,{"data-e2e-test-id":dataE2eTestId,"data-ds-id":"Link",ref:ref,inline:isInlineLink,color:linkColor,size:size||inheritPropsFromText?.size,weight:weight||inheritPropsFromText?.weight,...rest},linkContent)});
|
|
1
|
+
import React,{useContext,useMemo}from"react";import styled from"@emotion/styled";import isPropValid from"@emotion/is-prop-valid";import{TextContext}from"../Typography/Text/Text";import{LinkContext}from"./LinkContext";import{getLinkDecorationStyles}from"./getLinkDecorationStyles";import{Icon}from"../Icon/Icon";let StyledLink=styled("a",{shouldForwardProp:prop=>isPropValid(prop)&&"inline"!==prop,target:"e1wevig90",label:"StyledLink"})(({theme,weight,size,color,inline})=>({cursor:"pointer",background:"none",border:"none",padding:0,fontSize:theme.variables.size.font[size]??"inherit",fontWeight:theme.variables.weight[weight]??"inherit",lineHeight:({xs:theme.variables.size.lineHeight.xl,s:theme.variables.size.lineHeight.l,m:theme.variables.size.lineHeight.xl,l:theme.variables.size.lineHeight.xl})[size],fontFamily:theme.variables.fontFamily.lato,color:color?theme.values.color.text[color].default:"inherit",...getLinkDecorationStyles({theme,color,showsUnderline:!!inline,hoverSelector:"&:hover",includeHoverTextColor:!0}),"&[data-ds-id='Link']:has([data-ds-id='Text'], [data-ds-id='TextClamped'], [data-ds-id='ContentText'])":{"&, &:hover":{textDecorationLine:"none"}}}),"/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3JjL2NvbXBvbmVudHMvTGluay9MaW5rLnRzeCIsInNvdXJjZXMiOlsic3JjL2NvbXBvbmVudHMvTGluay9MaW5rLnRzeCJdLCJzb3VyY2VzQ29udGVudCI6WyIvKiBlc2xpbnQtZGlzYWJsZSByZWFjdC9qc3gtcHJvcHMtbm8tc3ByZWFkaW5nICovXG5pbXBvcnQgUmVhY3QsIHsgdXNlQ29udGV4dCwgdXNlTWVtbywgdHlwZSBBcmlhQXR0cmlidXRlcyB9IGZyb20gXCJyZWFjdFwiO1xuaW1wb3J0IHR5cGUgeyBDU1NPYmplY3QgfSBmcm9tIFwiQGVtb3Rpb24vcmVhY3RcIjtcbmltcG9ydCBzdHlsZWQgZnJvbSBcIkBlbW90aW9uL3N0eWxlZFwiO1xuaW1wb3J0IGlzUHJvcFZhbGlkIGZyb20gXCJAZW1vdGlvbi9pcy1wcm9wLXZhbGlkXCI7XG5pbXBvcnQgeyBUZXh0Q29udGV4dCB9IGZyb20gXCIuLi9UeXBvZ3JhcGh5L1RleHQvVGV4dFwiO1xuaW1wb3J0IHsgTGlua0NvbnRleHQgfSBmcm9tIFwiLi9MaW5rQ29udGV4dFwiO1xuaW1wb3J0IHsgZ2V0TGlua0RlY29yYXRpb25TdHlsZXMgfSBmcm9tIFwiLi9nZXRMaW5rRGVjb3JhdGlvblN0eWxlc1wiO1xuaW1wb3J0IHR5cGUgeyBJY29uUHJvcHMgfSBmcm9tIFwiLi4vSWNvbi9JY29uXCI7XG5pbXBvcnQgeyBJY29uIH0gZnJvbSBcIi4uL0ljb24vSWNvblwiO1xuaW1wb3J0IHR5cGUge1xuICBUZXh0Q29sb3JzLFxuICBUZXh0U2l6ZSxcbiAgVGV4dFdlaWdodCxcbiAgUG9seW1vcnBoaWNDb21wb25lbnRQcm9wc1dpdGhSZWYsXG4gIFBvbHltb3JwaGljUmVmLFxuICBMaW5rVmFyaWF0aW9ucyxcbn0gZnJvbSBcIi4uLy4uL3R5cGVzXCI7XG5cbnR5cGUgU3VwcGxlbWVudGFyeUljb25Qcm9wcyA9IFBpY2s8SWNvblByb3BzLCBcIm5hbWVcIiB8IFwiY29sb3JcIj47XG5cbmV4cG9ydCB0eXBlIExpbmtDb25kaXRpb25hbFByb3BzID1cbiAgfCB7XG4gICAgICAvKiogSXQgZm9yY2VzIHRvIGluaGVyaXQgY29sb3IsIHdlaWdodCwgc2l6ZSBmcm9tIHBhcmVudCAqL1xuICAgICAgaW5saW5lOiB0cnVlO1xuICAgICAgLyoqIEEgY29sb3IgaXMgaW5oZXJpdGVkIGZyb20gaXRzIHBhcmVudCBUZXh0IG90aGVyd2lzZSBzZXQgYXMgJ3ByaW1hcnknICovXG4gICAgICBjb2xvcjogVGV4dENvbG9ycztcbiAgICAgIC8qKiBJY29ucyBhcmUgbm90IHN1cHBvcnRlZCBmb3IgaW5saW5lIGxpbmtzICovXG4gICAgICBpY29uTGVmdD86IG5ldmVyO1xuICAgICAgLyoqIEljb25zIGFyZSBub3Qgc3VwcG9ydGVkIGZvciBpbmxpbmUgbGlua3MgKi9cbiAgICAgIGljb25SaWdodD86IG5ldmVyO1xuICAgIH1cbiAgfCB7XG4gICAgICBpbmxpbmU/OiBmYWxzZSB8IHVuZGVmaW5lZDtcbiAgICAgIGNvbG9yPzogVGV4dENvbG9ycztcbiAgICAgIC8qKiBJY29uIGRpc3BsYXllZCBvbiB0aGUgbGVmdCBzaWRlIG9mIHRoZSBsaW5rICovXG4gICAgICBpY29uTGVmdD86IFN1cHBsZW1lbnRhcnlJY29uUHJvcHM7XG4gICAgICAvKiogSWNvbiBkaXNwbGF5ZWQgb24gdGhlIHJpZ2h0IHNpZGUgb2YgdGhlIGxpbmsgKi9cbiAgICAgIGljb25SaWdodD86IFN1cHBsZW1lbnRhcnlJY29uUHJvcHM7XG4gICAgfTtcblxuZXhwb3J0IHR5cGUgTGlua1Byb3BzID0ge1xuICAvKiogQSBzaXplIGlzIGluaGVyaXRlZCBmcm9tIGl0cyBwYXJlbnQgKi9cbiAgc2l6ZT86IFRleHRTaXplO1xuICAvKiogQSB3ZWlnaHQgaXMgaW5oZXJpdGVkIGZyb20gaXRzIHBhcmVudCAqL1xuICB3ZWlnaHQ/OiBUZXh0V2VpZ2h0O1xuICAvKiogQGRlcHJlY2F0ZWQgdmFyaWFudCwgcGxlYXNlIHVzZSBcImNvbG9yXCIgcHJvcCBpbnN0ZWFkICovXG4gIHZhcmlhbnQ/OiBMaW5rVmFyaWF0aW9ucztcbiAgXCJkYXRhLWUyZS10ZXN0LWlkXCI/OiBzdHJpbmc7XG59ICYgTGlua0NvbmRpdGlvbmFsUHJvcHMgJlxuICBBcmlhQXR0cmlidXRlcztcblxuZXhwb3J0IHR5cGUgTGlua0NvbXBvbmVudCA9IDxDIGV4dGVuZHMgUmVhY3QuRWxlbWVudFR5cGUgPSBcImFcIj4oXG4gIHByb3BzOiBQb2x5bW9ycGhpY0NvbXBvbmVudFByb3BzV2l0aFJlZjxDLCBMaW5rUHJvcHM+XG4pID0+IFJlYWN0LlJlYWN0Tm9kZSB8IG51bGw7XG5cbi8vIEEgbmVzdGVkIFRleHQvVGV4dENsYW1wZWQvQ29udGVudFRleHQgcGFpbnRzIGl0cyBvd24gdW5kZXJsaW5lIGluIGl0cyByZXNvbHZlZFxuLy8gY29sb3I7IG1hdGNoaW5nIG9uZSBvZiB0aGVzZSBsZXRzIHRoZSBhbmNob3Igc3RlcCBiYWNrIHNvIHRoZSB0d28gdW5kZXJsaW5lc1xuLy8gZG9uJ3QgY29tcGV0ZSAoc2VlIHRoZSB1bmRlcmxpbmUtc3VwcHJlc3Npb24gcnVsZSBpbiBTdHlsZWRMaW5rKS5cbmNvbnN0IE5FU1RFRF9URVhUX1NFTEVDVE9SID1cbiAgXCJbZGF0YS1kcy1pZD0nVGV4dCddLCBbZGF0YS1kcy1pZD0nVGV4dENsYW1wZWQnXSwgW2RhdGEtZHMtaWQ9J0NvbnRlbnRUZXh0J11cIjtcblxuY29uc3QgU3R5bGVkTGluayA9IHN0eWxlZChcImFcIiwge1xuICBzaG91bGRGb3J3YXJkUHJvcDogKHByb3ApID0+IGlzUHJvcFZhbGlkKHByb3ApICYmIHByb3AgIT09IFwiaW5saW5lXCIsXG59KTxQYXJ0aWFsPExpbmtQcm9wcz4+KFxuICAoeyB0aGVtZSwgd2VpZ2h0LCBzaXplLCBjb2xvciwgaW5saW5lIH0pID0+XG4gICAgKHtcbiAgICAgIGN1cnNvcjogXCJwb2ludGVyXCIsXG4gICAgICBiYWNrZ3JvdW5kOiBcIm5vbmVcIixcbiAgICAgIGJvcmRlcjogXCJub25lXCIsXG4gICAgICBwYWRkaW5nOiAwLFxuICAgICAgZm9udFNpemU6IHRoZW1lLnZhcmlhYmxlcy5zaXplLmZvbnRbc2l6ZV0gPz8gXCJpbmhlcml0XCIsXG4gICAgICBmb250V2VpZ2h0OiB0aGVtZS52YXJpYWJsZXMud2VpZ2h0W3dlaWdodF0gPz8gXCJpbmhlcml0XCIsXG4gICAgICBsaW5lSGVpZ2h0OiB7XG4gICAgICAgIHhzOiB0aGVtZS52YXJpYWJsZXMuc2l6ZS5saW5lSGVpZ2h0LnhsLFxuICAgICAgICBzOiB0aGVtZS52YXJpYWJsZXMuc2l6ZS5saW5lSGVpZ2h0LmwsXG4gICAgICAgIG06IHRoZW1lLnZhcmlhYmxlcy5zaXplLmxpbmVIZWlnaHQueGwsXG4gICAgICAgIGw6IHRoZW1lLnZhcmlhYmxlcy5zaXplLmxpbmVIZWlnaHQueGwsXG4gICAgICB9W3NpemVdLFxuICAgICAgZm9udEZhbWlseTogdGhlbWUudmFyaWFibGVzLmZvbnRGYW1pbHkubGF0byxcblxuICAgICAgY29sb3I6IGNvbG9yID8gdGhlbWUudmFsdWVzLmNvbG9yLnRleHRbY29sb3JdLmRlZmF1bHQgOiBcImluaGVyaXRcIixcblxuICAgICAgLi4uZ2V0TGlua0RlY29yYXRpb25TdHlsZXMoe1xuICAgICAgICB0aGVtZSxcbiAgICAgICAgY29sb3IsXG4gICAgICAgIHNob3dzVW5kZXJsaW5lOiAhIWlubGluZSxcbiAgICAgICAgaG92ZXJTZWxlY3RvcjogXCImOmhvdmVyXCIsXG4gICAgICAgIGluY2x1ZGVIb3ZlclRleHRDb2xvcjogdHJ1ZSxcbiAgICAgIH0pLFxuXG4gICAgICAvLyBXaGVuIGEgcGxhaW4gTGluayB3cmFwcyBhIERTIHRleHQgY29tcG9uZW50LCB0aGF0IGNvbXBvbmVudCBwYWludHMgdGhlXG4gICAgICAvLyB1bmRlcmxpbmUgaW4gaXRzIG93biByZXNvbHZlZCBjb2xvci4gU3VwcHJlc3MgdGhlIGFuY2hvcidzIG93biB1bmRlcmxpbmVcbiAgICAgIC8vIChyZXN0aW5nIGFuZCBob3Zlcikgc28gYSBkaWZmZXJpbmcgbmVzdGVkIGNvbG9yIGlzbid0IG92ZXJyaWRkZW4gYnkgdGhlXG4gICAgICAvLyBsaW5rJ3MgdW5kZXJsaW5lLiBTY29wZWQgdG8gYGRhdGEtZHMtaWQ9J0xpbmsnYCBzbyBDb250ZW50TGluayDigJQgd2hpY2hcbiAgICAgIC8vIHJldXNlcyB0aGlzIGFuY2hvciBidXQgc2V0cyBpdHMgb3duIGNvbnRlbnQtY29sb3IgdW5kZXJsaW5lIGFuZCByZW5kZXJzXG4gICAgICAvLyBpdHMgb3duIGBkYXRhLWRzLWlkYCDigJQga2VlcHMgZHJhd2luZyBpdHMgZGVjb3JhdGlvbi5cbiAgICAgIFtgJltkYXRhLWRzLWlkPSdMaW5rJ106aGFzKCR7TkVTVEVEX1RFWFRfU0VMRUNUT1J9KWBdOiB7XG4gICAgICAgIFwiJiwgJjpob3ZlclwiOiB7XG4gICAgICAgICAgdGV4dERlY29yYXRpb25MaW5lOiBcIm5vbmVcIixcbiAgICAgICAgfSxcbiAgICAgIH0sXG4gICAgfSBhcyBDU1NPYmplY3QpXG4pO1xuXG5jb25zdCBTdHlsZWRJY29uID0gc3R5bGVkKEljb24pPHsgcG9zaXRpb246IFwibGVmdFwiIHwgXCJyaWdodFwiIH0+KFxuICAoeyBwb3NpdGlvbiwgdGhlbWUgfSkgPT4gKHtcbiAgICAuLi4ocG9zaXRpb24gPT09IFwibGVmdFwiICYmIHtcbiAgICAgIG1hcmdpblJpZ2h0OiB0aGVtZS52YXJpYWJsZXMuc2l6ZS5zcGFjaW5nLnh4cyxcbiAgICB9KSxcbiAgICAuLi4ocG9zaXRpb24gPT09IFwicmlnaHRcIiAmJiB7XG4gICAgICBtYXJnaW5MZWZ0OiB0aGVtZS52YXJpYWJsZXMuc2l6ZS5zcGFjaW5nLnh4cyxcbiAgICB9KSxcbiAgfSlcbik7XG5cbmV4cG9ydCBjb25zdCBMaW5rOiBMaW5rQ29tcG9uZW50ID0gUmVhY3QuZm9yd2FyZFJlZihcbiAgPEMgZXh0ZW5kcyBSZWFjdC5FbGVtZW50VHlwZSA9IFwiYVwiPihcbiAgICB7XG4gICAgICB3ZWlnaHQsXG4gICAgICBjb2xvcjogY29sb3JQcm9wLFxuICAgICAgc2l6ZSxcbiAgICAgIHZhcmlhbnQsXG4gICAgICBpbmxpbmUsXG4gICAgICBpY29uTGVmdCxcbiAgICAgIGljb25SaWdodCxcbiAgICAgIGNoaWxkcmVuLFxuICAgICAgXCJkYXRhLWUyZS10ZXN0LWlkXCI6IGRhdGFFMmVUZXN0SWQsXG4gICAgICAuLi5yZXN0XG4gICAgfTogUG9seW1vcnBoaWNDb21wb25lbnRQcm9wc1dpdGhSZWY8QywgTGlua1Byb3BzPixcbiAgICByZWY/OiBQb2x5bW9ycGhpY1JlZjxDPlxuICApID0+IHtcbiAgICBjb25zdCBpbmhlcml0UHJvcHNGcm9tVGV4dCA9IHVzZUNvbnRleHQoVGV4dENvbnRleHQpO1xuXG4gICAgY29uc3QgZ2V0Q29sb3IgPSAoKSA9PiB7XG4gICAgICBpZiAodmFyaWFudCkge1xuICAgICAgICAvLyB0aGlzIGlzIGdvaW5nIHRvIGJlIGRlbGV0ZWQgYWZ0ZXIgbWlncmF0aW9uXG4gICAgICAgIGlmICh2YXJpYW50ID09PSBcInByaW1hcnlcIikgcmV0dXJuIFwiYWNjZW50XCI7XG4gICAgICAgIGlmICh2YXJpYW50ID09PSBcInNlY29uZGFyeVwiKSByZXR1cm4gXCJwcmltYXJ5XCI7XG4gICAgICAgIHJldHVybiB2YXJpYW50O1xuICAgICAgfVxuICAgICAgaWYgKGNvbG9yUHJvcCkgcmV0dXJuIGNvbG9yUHJvcDtcbiAgICAgIGlmIChpbmhlcml0UHJvcHNGcm9tVGV4dD8uY29sb3IpIHJldHVybiBpbmhlcml0UHJvcHNGcm9tVGV4dD8uY29sb3I7XG4gICAgICBpZiAoIWlubGluZSkgcmV0dXJuIFwiYWNjZW50XCI7XG4gICAgICByZXR1cm4gdW5kZWZpbmVkO1xuICAgIH07XG5cbiAgICBjb25zdCBsaW5rQ29sb3IgPSBnZXRDb2xvcigpO1xuXG4gICAgLyogV2h5IGRvIHdlIG5lZWQgaW5saW5lIHByb3A/IFdlIGluaGVyaXQgc2l6ZSBhbmQgY29sb3IgZnJvbSBUZXh0IChpZiBMaW5rIGlzIHdyYXBwZWQgaW4gaXQpLCBidXQgd2UgbmVlZCB0byBzdXBwb3J0IExpbmtzIHdpdGhpbiBIZWFkZXJzIGFuZCBvdGhlciBjdXN0b20gY29tcG9uZW50cy4gVGh1cyBieSBkZWZhdWx0LCBzaXplIGFuZCBjb2xvciBhcmUgbm90IHJlcXVpcmVkIHByb3BzICovXG4gICAgY29uc3QgaXNJbmxpbmVMaW5rID0gaW5saW5lIHx8ICEhaW5oZXJpdFByb3BzRnJvbVRleHQ7XG5cbiAgICAvLyBPbmx5IGEgcGxhaW4gTGluayBzdXBwcmVzc2VzIGl0cyBvd24gdW5kZXJsaW5lIChzZWUgU3R5bGVkTGluayk7IENvbnRlbnRMaW5rXG4gICAgLy8gcmVuZGVycyBpdHMgb3duIGRhdGEtZHMtaWQgYW5kIGtlZXBzIGRyYXdpbmcgaXRzIGNvbnRlbnQtY29sb3IgdW5kZXJsaW5lLCBzb1xuICAgIC8vIGEgbmVzdGVkIHRleHQgbXVzdCBub3QgcGFpbnQgYSBjb21wZXRpbmcgb25lIG9uIHRvcCBvZiBpdC5cbiAgICBjb25zdCBkYXRhRHNJZCA9IChyZXN0IGFzIHsgXCJkYXRhLWRzLWlkXCI/OiBzdHJpbmcgfSlbXCJkYXRhLWRzLWlkXCJdO1xuICAgIGNvbnN0IHVuZGVybGluZU93bmVkQnlDaGlsZCA9IChkYXRhRHNJZCA/PyBcIkxpbmtcIikgPT09IFwiTGlua1wiO1xuXG4gICAgLy8gUHJvdmlkZSB0aGUgbGluayBjb2xvciBhbmQgdW5kZXJsaW5lIHN0YXRlIHRvIHRoZSBjb250ZXh0IHNvIGEgbmVzdGVkXG4gICAgLy8gVGV4dC9UZXh0Q2xhbXBlZCBjYW4gaW5oZXJpdCB0aGUgbGluaydzIHJlc29sdmVkIGNvbG9yIHdoZW4gaXQgZG9lc24ndCBzZXRcbiAgICAvLyBpdHMgb3duIGBjb2xvcmAgcHJvcCwgYW5kIHJlLWRyYXcgdGhlIHVuZGVybGluZSBpbiBpdHMgb3duIGNvbG9yIHdoZW4gaXRcbiAgICAvLyBkb2VzLiBUaGlzIGtlZXBzIHRoZSBnbHlwaCBjb2xvciBhbmQgdW5kZXJsaW5lIGluIHN5bmMgd2l0aCB0aGUgYW5jaG9yIOKAlFxuICAgIC8vIG5vdGFibHkgdW5kZXIgYSBTdWJUaGVtZVByb3ZpZGVyLCB3aGVyZSBhIHN1YnRoZW1lIG1heSBvdmVycmlkZSBvbmx5IHNvbWVcbiAgICAvLyBjb2xvciB0b2tlbnMuXG4gICAgY29uc3QgbGlua0NvbnRleHRWYWx1ZSA9IHVzZU1lbW8oXG4gICAgICAoKSA9PlxuICAgICAgICBsaW5rQ29sb3JcbiAgICAgICAgICA/IHtcbiAgICAgICAgICAgICAgY29sb3I6IGxpbmtDb2xvcixcbiAgICAgICAgICAgICAgc2hvd3NVbmRlcmxpbmU6IGlzSW5saW5lTGluayxcbiAgICAgICAgICAgICAgdW5kZXJsaW5lT3duZWRCeUNoaWxkLFxuICAgICAgICAgICAgfVxuICAgICAgICAgIDogbnVsbCxcbiAgICAgIFtsaW5rQ29sb3IsIGlzSW5saW5lTGluaywgdW5kZXJsaW5lT3duZWRCeUNoaWxkXVxuICAgICk7XG5cbiAgICBjb25zdCBoYXNJY29ucyA9ICFpc0lubGluZUxpbmsgJiYgKGljb25MZWZ0IHx8IGljb25SaWdodCk7XG5cbiAgICBjb25zdCBsaW5rQ29udGVudCA9IGhhc0ljb25zID8gKFxuICAgICAgPD5cbiAgICAgICAge2ljb25MZWZ0ICYmIChcbiAgICAgICAgICA8U3R5bGVkSWNvblxuICAgICAgICAgICAgYXJpYS1oaWRkZW5cbiAgICAgICAgICAgIHNpemU9XCJzXCJcbiAgICAgICAgICAgIG5hbWU9e2ljb25MZWZ0Lm5hbWV9XG4gICAgICAgICAgICBjb2xvcj17aWNvbkxlZnQuY29sb3IgPz8gbGlua0NvbG9yfVxuICAgICAgICAgICAgaW5saW5lXG4gICAgICAgICAgICBwb3NpdGlvbj1cImxlZnRcIlxuICAgICAgICAgIC8+XG4gICAgICAgICl9XG4gICAgICAgIHtjaGlsZHJlbn1cbiAgICAgICAge2ljb25SaWdodCAmJiAoXG4gICAgICAgICAgPFN0eWxlZEljb25cbiAgICAgICAgICAgIGFyaWEtaGlkZGVuXG4gICAgICAgICAgICBzaXplPVwic1wiXG4gICAgICAgICAgICBuYW1lPXtpY29uUmlnaHQubmFtZX1cbiAgICAgICAgICAgIGNvbG9yPXtpY29uUmlnaHQuY29sb3IgPz8gbGlua0NvbG9yfVxuICAgICAgICAgICAgaW5saW5lXG4gICAgICAgICAgICBwb3NpdGlvbj1cInJpZ2h0XCJcbiAgICAgICAgICAvPlxuICAgICAgICApfVxuICAgICAgPC8+XG4gICAgKSA6IChcbiAgICAgIGNoaWxkcmVuXG4gICAgKTtcblxuICAgIHJldHVybiAoXG4gICAgICA8U3R5bGVkTGlua1xuICAgICAgICBkYXRhLWUyZS10ZXN0LWlkPXtkYXRhRTJlVGVzdElkfVxuICAgICAgICBkYXRhLWRzLWlkPVwiTGlua1wiXG4gICAgICAgIHJlZj17cmVmfVxuICAgICAgICBpbmxpbmU9e2lzSW5saW5lTGlua31cbiAgICAgICAgY29sb3I9e2xpbmtDb2xvcn1cbiAgICAgICAgc2l6ZT17c2l6ZSB8fCBpbmhlcml0UHJvcHNGcm9tVGV4dD8uc2l6ZX1cbiAgICAgICAgd2VpZ2h0PXt3ZWlnaHQgfHwgaW5oZXJpdFByb3BzRnJvbVRleHQ/LndlaWdodH1cbiAgICAgICAgey4uLnJlc3R9XG4gICAgICA+XG4gICAgICAgIDxMaW5rQ29udGV4dC5Qcm92aWRlciB2YWx1ZT17bGlua0NvbnRleHRWYWx1ZX0+XG4gICAgICAgICAge2xpbmtDb250ZW50fVxuICAgICAgICA8L0xpbmtDb250ZXh0LlByb3ZpZGVyPlxuICAgICAgPC9TdHlsZWRMaW5rPlxuICAgICk7XG4gIH1cbik7XG4iXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBOERtQiJ9 */"),StyledIcon=styled(Icon,{target:"e1wevig91",label:"StyledIcon"})(({position,theme})=>({..."left"===position&&{marginRight:theme.variables.size.spacing.xxs},..."right"===position&&{marginLeft:theme.variables.size.spacing.xxs}}),"/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3JjL2NvbXBvbmVudHMvTGluay9MaW5rLnRzeCIsInNvdXJjZXMiOlsic3JjL2NvbXBvbmVudHMvTGluay9MaW5rLnRzeCJdLCJzb3VyY2VzQ29udGVudCI6WyIvKiBlc2xpbnQtZGlzYWJsZSByZWFjdC9qc3gtcHJvcHMtbm8tc3ByZWFkaW5nICovXG5pbXBvcnQgUmVhY3QsIHsgdXNlQ29udGV4dCwgdXNlTWVtbywgdHlwZSBBcmlhQXR0cmlidXRlcyB9IGZyb20gXCJyZWFjdFwiO1xuaW1wb3J0IHR5cGUgeyBDU1NPYmplY3QgfSBmcm9tIFwiQGVtb3Rpb24vcmVhY3RcIjtcbmltcG9ydCBzdHlsZWQgZnJvbSBcIkBlbW90aW9uL3N0eWxlZFwiO1xuaW1wb3J0IGlzUHJvcFZhbGlkIGZyb20gXCJAZW1vdGlvbi9pcy1wcm9wLXZhbGlkXCI7XG5pbXBvcnQgeyBUZXh0Q29udGV4dCB9IGZyb20gXCIuLi9UeXBvZ3JhcGh5L1RleHQvVGV4dFwiO1xuaW1wb3J0IHsgTGlua0NvbnRleHQgfSBmcm9tIFwiLi9MaW5rQ29udGV4dFwiO1xuaW1wb3J0IHsgZ2V0TGlua0RlY29yYXRpb25TdHlsZXMgfSBmcm9tIFwiLi9nZXRMaW5rRGVjb3JhdGlvblN0eWxlc1wiO1xuaW1wb3J0IHR5cGUgeyBJY29uUHJvcHMgfSBmcm9tIFwiLi4vSWNvbi9JY29uXCI7XG5pbXBvcnQgeyBJY29uIH0gZnJvbSBcIi4uL0ljb24vSWNvblwiO1xuaW1wb3J0IHR5cGUge1xuICBUZXh0Q29sb3JzLFxuICBUZXh0U2l6ZSxcbiAgVGV4dFdlaWdodCxcbiAgUG9seW1vcnBoaWNDb21wb25lbnRQcm9wc1dpdGhSZWYsXG4gIFBvbHltb3JwaGljUmVmLFxuICBMaW5rVmFyaWF0aW9ucyxcbn0gZnJvbSBcIi4uLy4uL3R5cGVzXCI7XG5cbnR5cGUgU3VwcGxlbWVudGFyeUljb25Qcm9wcyA9IFBpY2s8SWNvblByb3BzLCBcIm5hbWVcIiB8IFwiY29sb3JcIj47XG5cbmV4cG9ydCB0eXBlIExpbmtDb25kaXRpb25hbFByb3BzID1cbiAgfCB7XG4gICAgICAvKiogSXQgZm9yY2VzIHRvIGluaGVyaXQgY29sb3IsIHdlaWdodCwgc2l6ZSBmcm9tIHBhcmVudCAqL1xuICAgICAgaW5saW5lOiB0cnVlO1xuICAgICAgLyoqIEEgY29sb3IgaXMgaW5oZXJpdGVkIGZyb20gaXRzIHBhcmVudCBUZXh0IG90aGVyd2lzZSBzZXQgYXMgJ3ByaW1hcnknICovXG4gICAgICBjb2xvcjogVGV4dENvbG9ycztcbiAgICAgIC8qKiBJY29ucyBhcmUgbm90IHN1cHBvcnRlZCBmb3IgaW5saW5lIGxpbmtzICovXG4gICAgICBpY29uTGVmdD86IG5ldmVyO1xuICAgICAgLyoqIEljb25zIGFyZSBub3Qgc3VwcG9ydGVkIGZvciBpbmxpbmUgbGlua3MgKi9cbiAgICAgIGljb25SaWdodD86IG5ldmVyO1xuICAgIH1cbiAgfCB7XG4gICAgICBpbmxpbmU/OiBmYWxzZSB8IHVuZGVmaW5lZDtcbiAgICAgIGNvbG9yPzogVGV4dENvbG9ycztcbiAgICAgIC8qKiBJY29uIGRpc3BsYXllZCBvbiB0aGUgbGVmdCBzaWRlIG9mIHRoZSBsaW5rICovXG4gICAgICBpY29uTGVmdD86IFN1cHBsZW1lbnRhcnlJY29uUHJvcHM7XG4gICAgICAvKiogSWNvbiBkaXNwbGF5ZWQgb24gdGhlIHJpZ2h0IHNpZGUgb2YgdGhlIGxpbmsgKi9cbiAgICAgIGljb25SaWdodD86IFN1cHBsZW1lbnRhcnlJY29uUHJvcHM7XG4gICAgfTtcblxuZXhwb3J0IHR5cGUgTGlua1Byb3BzID0ge1xuICAvKiogQSBzaXplIGlzIGluaGVyaXRlZCBmcm9tIGl0cyBwYXJlbnQgKi9cbiAgc2l6ZT86IFRleHRTaXplO1xuICAvKiogQSB3ZWlnaHQgaXMgaW5oZXJpdGVkIGZyb20gaXRzIHBhcmVudCAqL1xuICB3ZWlnaHQ/OiBUZXh0V2VpZ2h0O1xuICAvKiogQGRlcHJlY2F0ZWQgdmFyaWFudCwgcGxlYXNlIHVzZSBcImNvbG9yXCIgcHJvcCBpbnN0ZWFkICovXG4gIHZhcmlhbnQ/OiBMaW5rVmFyaWF0aW9ucztcbiAgXCJkYXRhLWUyZS10ZXN0LWlkXCI/OiBzdHJpbmc7XG59ICYgTGlua0NvbmRpdGlvbmFsUHJvcHMgJlxuICBBcmlhQXR0cmlidXRlcztcblxuZXhwb3J0IHR5cGUgTGlua0NvbXBvbmVudCA9IDxDIGV4dGVuZHMgUmVhY3QuRWxlbWVudFR5cGUgPSBcImFcIj4oXG4gIHByb3BzOiBQb2x5bW9ycGhpY0NvbXBvbmVudFByb3BzV2l0aFJlZjxDLCBMaW5rUHJvcHM+XG4pID0+IFJlYWN0LlJlYWN0Tm9kZSB8IG51bGw7XG5cbi8vIEEgbmVzdGVkIFRleHQvVGV4dENsYW1wZWQvQ29udGVudFRleHQgcGFpbnRzIGl0cyBvd24gdW5kZXJsaW5lIGluIGl0cyByZXNvbHZlZFxuLy8gY29sb3I7IG1hdGNoaW5nIG9uZSBvZiB0aGVzZSBsZXRzIHRoZSBhbmNob3Igc3RlcCBiYWNrIHNvIHRoZSB0d28gdW5kZXJsaW5lc1xuLy8gZG9uJ3QgY29tcGV0ZSAoc2VlIHRoZSB1bmRlcmxpbmUtc3VwcHJlc3Npb24gcnVsZSBpbiBTdHlsZWRMaW5rKS5cbmNvbnN0IE5FU1RFRF9URVhUX1NFTEVDVE9SID1cbiAgXCJbZGF0YS1kcy1pZD0nVGV4dCddLCBbZGF0YS1kcy1pZD0nVGV4dENsYW1wZWQnXSwgW2RhdGEtZHMtaWQ9J0NvbnRlbnRUZXh0J11cIjtcblxuY29uc3QgU3R5bGVkTGluayA9IHN0eWxlZChcImFcIiwge1xuICBzaG91bGRGb3J3YXJkUHJvcDogKHByb3ApID0+IGlzUHJvcFZhbGlkKHByb3ApICYmIHByb3AgIT09IFwiaW5saW5lXCIsXG59KTxQYXJ0aWFsPExpbmtQcm9wcz4+KFxuICAoeyB0aGVtZSwgd2VpZ2h0LCBzaXplLCBjb2xvciwgaW5saW5lIH0pID0+XG4gICAgKHtcbiAgICAgIGN1cnNvcjogXCJwb2ludGVyXCIsXG4gICAgICBiYWNrZ3JvdW5kOiBcIm5vbmVcIixcbiAgICAgIGJvcmRlcjogXCJub25lXCIsXG4gICAgICBwYWRkaW5nOiAwLFxuICAgICAgZm9udFNpemU6IHRoZW1lLnZhcmlhYmxlcy5zaXplLmZvbnRbc2l6ZV0gPz8gXCJpbmhlcml0XCIsXG4gICAgICBmb250V2VpZ2h0OiB0aGVtZS52YXJpYWJsZXMud2VpZ2h0W3dlaWdodF0gPz8gXCJpbmhlcml0XCIsXG4gICAgICBsaW5lSGVpZ2h0OiB7XG4gICAgICAgIHhzOiB0aGVtZS52YXJpYWJsZXMuc2l6ZS5saW5lSGVpZ2h0LnhsLFxuICAgICAgICBzOiB0aGVtZS52YXJpYWJsZXMuc2l6ZS5saW5lSGVpZ2h0LmwsXG4gICAgICAgIG06IHRoZW1lLnZhcmlhYmxlcy5zaXplLmxpbmVIZWlnaHQueGwsXG4gICAgICAgIGw6IHRoZW1lLnZhcmlhYmxlcy5zaXplLmxpbmVIZWlnaHQueGwsXG4gICAgICB9W3NpemVdLFxuICAgICAgZm9udEZhbWlseTogdGhlbWUudmFyaWFibGVzLmZvbnRGYW1pbHkubGF0byxcblxuICAgICAgY29sb3I6IGNvbG9yID8gdGhlbWUudmFsdWVzLmNvbG9yLnRleHRbY29sb3JdLmRlZmF1bHQgOiBcImluaGVyaXRcIixcblxuICAgICAgLi4uZ2V0TGlua0RlY29yYXRpb25TdHlsZXMoe1xuICAgICAgICB0aGVtZSxcbiAgICAgICAgY29sb3IsXG4gICAgICAgIHNob3dzVW5kZXJsaW5lOiAhIWlubGluZSxcbiAgICAgICAgaG92ZXJTZWxlY3RvcjogXCImOmhvdmVyXCIsXG4gICAgICAgIGluY2x1ZGVIb3ZlclRleHRDb2xvcjogdHJ1ZSxcbiAgICAgIH0pLFxuXG4gICAgICAvLyBXaGVuIGEgcGxhaW4gTGluayB3cmFwcyBhIERTIHRleHQgY29tcG9uZW50LCB0aGF0IGNvbXBvbmVudCBwYWludHMgdGhlXG4gICAgICAvLyB1bmRlcmxpbmUgaW4gaXRzIG93biByZXNvbHZlZCBjb2xvci4gU3VwcHJlc3MgdGhlIGFuY2hvcidzIG93biB1bmRlcmxpbmVcbiAgICAgIC8vIChyZXN0aW5nIGFuZCBob3Zlcikgc28gYSBkaWZmZXJpbmcgbmVzdGVkIGNvbG9yIGlzbid0IG92ZXJyaWRkZW4gYnkgdGhlXG4gICAgICAvLyBsaW5rJ3MgdW5kZXJsaW5lLiBTY29wZWQgdG8gYGRhdGEtZHMtaWQ9J0xpbmsnYCBzbyBDb250ZW50TGluayDigJQgd2hpY2hcbiAgICAgIC8vIHJldXNlcyB0aGlzIGFuY2hvciBidXQgc2V0cyBpdHMgb3duIGNvbnRlbnQtY29sb3IgdW5kZXJsaW5lIGFuZCByZW5kZXJzXG4gICAgICAvLyBpdHMgb3duIGBkYXRhLWRzLWlkYCDigJQga2VlcHMgZHJhd2luZyBpdHMgZGVjb3JhdGlvbi5cbiAgICAgIFtgJltkYXRhLWRzLWlkPSdMaW5rJ106aGFzKCR7TkVTVEVEX1RFWFRfU0VMRUNUT1J9KWBdOiB7XG4gICAgICAgIFwiJiwgJjpob3ZlclwiOiB7XG4gICAgICAgICAgdGV4dERlY29yYXRpb25MaW5lOiBcIm5vbmVcIixcbiAgICAgICAgfSxcbiAgICAgIH0sXG4gICAgfSBhcyBDU1NPYmplY3QpXG4pO1xuXG5jb25zdCBTdHlsZWRJY29uID0gc3R5bGVkKEljb24pPHsgcG9zaXRpb246IFwibGVmdFwiIHwgXCJyaWdodFwiIH0+KFxuICAoeyBwb3NpdGlvbiwgdGhlbWUgfSkgPT4gKHtcbiAgICAuLi4ocG9zaXRpb24gPT09IFwibGVmdFwiICYmIHtcbiAgICAgIG1hcmdpblJpZ2h0OiB0aGVtZS52YXJpYWJsZXMuc2l6ZS5zcGFjaW5nLnh4cyxcbiAgICB9KSxcbiAgICAuLi4ocG9zaXRpb24gPT09IFwicmlnaHRcIiAmJiB7XG4gICAgICBtYXJnaW5MZWZ0OiB0aGVtZS52YXJpYWJsZXMuc2l6ZS5zcGFjaW5nLnh4cyxcbiAgICB9KSxcbiAgfSlcbik7XG5cbmV4cG9ydCBjb25zdCBMaW5rOiBMaW5rQ29tcG9uZW50ID0gUmVhY3QuZm9yd2FyZFJlZihcbiAgPEMgZXh0ZW5kcyBSZWFjdC5FbGVtZW50VHlwZSA9IFwiYVwiPihcbiAgICB7XG4gICAgICB3ZWlnaHQsXG4gICAgICBjb2xvcjogY29sb3JQcm9wLFxuICAgICAgc2l6ZSxcbiAgICAgIHZhcmlhbnQsXG4gICAgICBpbmxpbmUsXG4gICAgICBpY29uTGVmdCxcbiAgICAgIGljb25SaWdodCxcbiAgICAgIGNoaWxkcmVuLFxuICAgICAgXCJkYXRhLWUyZS10ZXN0LWlkXCI6IGRhdGFFMmVUZXN0SWQsXG4gICAgICAuLi5yZXN0XG4gICAgfTogUG9seW1vcnBoaWNDb21wb25lbnRQcm9wc1dpdGhSZWY8QywgTGlua1Byb3BzPixcbiAgICByZWY/OiBQb2x5bW9ycGhpY1JlZjxDPlxuICApID0+IHtcbiAgICBjb25zdCBpbmhlcml0UHJvcHNGcm9tVGV4dCA9IHVzZUNvbnRleHQoVGV4dENvbnRleHQpO1xuXG4gICAgY29uc3QgZ2V0Q29sb3IgPSAoKSA9PiB7XG4gICAgICBpZiAodmFyaWFudCkge1xuICAgICAgICAvLyB0aGlzIGlzIGdvaW5nIHRvIGJlIGRlbGV0ZWQgYWZ0ZXIgbWlncmF0aW9uXG4gICAgICAgIGlmICh2YXJpYW50ID09PSBcInByaW1hcnlcIikgcmV0dXJuIFwiYWNjZW50XCI7XG4gICAgICAgIGlmICh2YXJpYW50ID09PSBcInNlY29uZGFyeVwiKSByZXR1cm4gXCJwcmltYXJ5XCI7XG4gICAgICAgIHJldHVybiB2YXJpYW50O1xuICAgICAgfVxuICAgICAgaWYgKGNvbG9yUHJvcCkgcmV0dXJuIGNvbG9yUHJvcDtcbiAgICAgIGlmIChpbmhlcml0UHJvcHNGcm9tVGV4dD8uY29sb3IpIHJldHVybiBpbmhlcml0UHJvcHNGcm9tVGV4dD8uY29sb3I7XG4gICAgICBpZiAoIWlubGluZSkgcmV0dXJuIFwiYWNjZW50XCI7XG4gICAgICByZXR1cm4gdW5kZWZpbmVkO1xuICAgIH07XG5cbiAgICBjb25zdCBsaW5rQ29sb3IgPSBnZXRDb2xvcigpO1xuXG4gICAgLyogV2h5IGRvIHdlIG5lZWQgaW5saW5lIHByb3A/IFdlIGluaGVyaXQgc2l6ZSBhbmQgY29sb3IgZnJvbSBUZXh0IChpZiBMaW5rIGlzIHdyYXBwZWQgaW4gaXQpLCBidXQgd2UgbmVlZCB0byBzdXBwb3J0IExpbmtzIHdpdGhpbiBIZWFkZXJzIGFuZCBvdGhlciBjdXN0b20gY29tcG9uZW50cy4gVGh1cyBieSBkZWZhdWx0LCBzaXplIGFuZCBjb2xvciBhcmUgbm90IHJlcXVpcmVkIHByb3BzICovXG4gICAgY29uc3QgaXNJbmxpbmVMaW5rID0gaW5saW5lIHx8ICEhaW5oZXJpdFByb3BzRnJvbVRleHQ7XG5cbiAgICAvLyBPbmx5IGEgcGxhaW4gTGluayBzdXBwcmVzc2VzIGl0cyBvd24gdW5kZXJsaW5lIChzZWUgU3R5bGVkTGluayk7IENvbnRlbnRMaW5rXG4gICAgLy8gcmVuZGVycyBpdHMgb3duIGRhdGEtZHMtaWQgYW5kIGtlZXBzIGRyYXdpbmcgaXRzIGNvbnRlbnQtY29sb3IgdW5kZXJsaW5lLCBzb1xuICAgIC8vIGEgbmVzdGVkIHRleHQgbXVzdCBub3QgcGFpbnQgYSBjb21wZXRpbmcgb25lIG9uIHRvcCBvZiBpdC5cbiAgICBjb25zdCBkYXRhRHNJZCA9IChyZXN0IGFzIHsgXCJkYXRhLWRzLWlkXCI/OiBzdHJpbmcgfSlbXCJkYXRhLWRzLWlkXCJdO1xuICAgIGNvbnN0IHVuZGVybGluZU93bmVkQnlDaGlsZCA9IChkYXRhRHNJZCA/PyBcIkxpbmtcIikgPT09IFwiTGlua1wiO1xuXG4gICAgLy8gUHJvdmlkZSB0aGUgbGluayBjb2xvciBhbmQgdW5kZXJsaW5lIHN0YXRlIHRvIHRoZSBjb250ZXh0IHNvIGEgbmVzdGVkXG4gICAgLy8gVGV4dC9UZXh0Q2xhbXBlZCBjYW4gaW5oZXJpdCB0aGUgbGluaydzIHJlc29sdmVkIGNvbG9yIHdoZW4gaXQgZG9lc24ndCBzZXRcbiAgICAvLyBpdHMgb3duIGBjb2xvcmAgcHJvcCwgYW5kIHJlLWRyYXcgdGhlIHVuZGVybGluZSBpbiBpdHMgb3duIGNvbG9yIHdoZW4gaXRcbiAgICAvLyBkb2VzLiBUaGlzIGtlZXBzIHRoZSBnbHlwaCBjb2xvciBhbmQgdW5kZXJsaW5lIGluIHN5bmMgd2l0aCB0aGUgYW5jaG9yIOKAlFxuICAgIC8vIG5vdGFibHkgdW5kZXIgYSBTdWJUaGVtZVByb3ZpZGVyLCB3aGVyZSBhIHN1YnRoZW1lIG1heSBvdmVycmlkZSBvbmx5IHNvbWVcbiAgICAvLyBjb2xvciB0b2tlbnMuXG4gICAgY29uc3QgbGlua0NvbnRleHRWYWx1ZSA9IHVzZU1lbW8oXG4gICAgICAoKSA9PlxuICAgICAgICBsaW5rQ29sb3JcbiAgICAgICAgICA/IHtcbiAgICAgICAgICAgICAgY29sb3I6IGxpbmtDb2xvcixcbiAgICAgICAgICAgICAgc2hvd3NVbmRlcmxpbmU6IGlzSW5saW5lTGluayxcbiAgICAgICAgICAgICAgdW5kZXJsaW5lT3duZWRCeUNoaWxkLFxuICAgICAgICAgICAgfVxuICAgICAgICAgIDogbnVsbCxcbiAgICAgIFtsaW5rQ29sb3IsIGlzSW5saW5lTGluaywgdW5kZXJsaW5lT3duZWRCeUNoaWxkXVxuICAgICk7XG5cbiAgICBjb25zdCBoYXNJY29ucyA9ICFpc0lubGluZUxpbmsgJiYgKGljb25MZWZ0IHx8IGljb25SaWdodCk7XG5cbiAgICBjb25zdCBsaW5rQ29udGVudCA9IGhhc0ljb25zID8gKFxuICAgICAgPD5cbiAgICAgICAge2ljb25MZWZ0ICYmIChcbiAgICAgICAgICA8U3R5bGVkSWNvblxuICAgICAgICAgICAgYXJpYS1oaWRkZW5cbiAgICAgICAgICAgIHNpemU9XCJzXCJcbiAgICAgICAgICAgIG5hbWU9e2ljb25MZWZ0Lm5hbWV9XG4gICAgICAgICAgICBjb2xvcj17aWNvbkxlZnQuY29sb3IgPz8gbGlua0NvbG9yfVxuICAgICAgICAgICAgaW5saW5lXG4gICAgICAgICAgICBwb3NpdGlvbj1cImxlZnRcIlxuICAgICAgICAgIC8+XG4gICAgICAgICl9XG4gICAgICAgIHtjaGlsZHJlbn1cbiAgICAgICAge2ljb25SaWdodCAmJiAoXG4gICAgICAgICAgPFN0eWxlZEljb25cbiAgICAgICAgICAgIGFyaWEtaGlkZGVuXG4gICAgICAgICAgICBzaXplPVwic1wiXG4gICAgICAgICAgICBuYW1lPXtpY29uUmlnaHQubmFtZX1cbiAgICAgICAgICAgIGNvbG9yPXtpY29uUmlnaHQuY29sb3IgPz8gbGlua0NvbG9yfVxuICAgICAgICAgICAgaW5saW5lXG4gICAgICAgICAgICBwb3NpdGlvbj1cInJpZ2h0XCJcbiAgICAgICAgICAvPlxuICAgICAgICApfVxuICAgICAgPC8+XG4gICAgKSA6IChcbiAgICAgIGNoaWxkcmVuXG4gICAgKTtcblxuICAgIHJldHVybiAoXG4gICAgICA8U3R5bGVkTGlua1xuICAgICAgICBkYXRhLWUyZS10ZXN0LWlkPXtkYXRhRTJlVGVzdElkfVxuICAgICAgICBkYXRhLWRzLWlkPVwiTGlua1wiXG4gICAgICAgIHJlZj17cmVmfVxuICAgICAgICBpbmxpbmU9e2lzSW5saW5lTGlua31cbiAgICAgICAgY29sb3I9e2xpbmtDb2xvcn1cbiAgICAgICAgc2l6ZT17c2l6ZSB8fCBpbmhlcml0UHJvcHNGcm9tVGV4dD8uc2l6ZX1cbiAgICAgICAgd2VpZ2h0PXt3ZWlnaHQgfHwgaW5oZXJpdFByb3BzRnJvbVRleHQ/LndlaWdodH1cbiAgICAgICAgey4uLnJlc3R9XG4gICAgICA+XG4gICAgICAgIDxMaW5rQ29udGV4dC5Qcm92aWRlciB2YWx1ZT17bGlua0NvbnRleHRWYWx1ZX0+XG4gICAgICAgICAge2xpbmtDb250ZW50fVxuICAgICAgICA8L0xpbmtDb250ZXh0LlByb3ZpZGVyPlxuICAgICAgPC9TdHlsZWRMaW5rPlxuICAgICk7XG4gIH1cbik7XG4iXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBeUdtQiJ9 */");export const Link=React.forwardRef(({weight,color:colorProp,size,variant,inline,iconLeft,iconRight,children,"data-e2e-test-id":dataE2eTestId,...rest},ref)=>{let inheritPropsFromText=useContext(TextContext),linkColor=variant?"primary"===variant?"accent":"secondary"===variant?"primary":variant:colorProp||(inheritPropsFromText?.color?inheritPropsFromText?.color:inline?void 0:"accent"),isInlineLink=inline||!!inheritPropsFromText,underlineOwnedByChild=(rest["data-ds-id"]??"Link")==="Link",linkContextValue=useMemo(()=>linkColor?{color:linkColor,showsUnderline:isInlineLink,underlineOwnedByChild}:null,[linkColor,isInlineLink,underlineOwnedByChild]),linkContent=!isInlineLink&&(iconLeft||iconRight)?React.createElement(React.Fragment,null,iconLeft&&React.createElement(StyledIcon,{"aria-hidden":!0,size:"s",name:iconLeft.name,color:iconLeft.color??linkColor,inline:!0,position:"left"}),children,iconRight&&React.createElement(StyledIcon,{"aria-hidden":!0,size:"s",name:iconRight.name,color:iconRight.color??linkColor,inline:!0,position:"right"})):children;return React.createElement(StyledLink,{"data-e2e-test-id":dataE2eTestId,"data-ds-id":"Link",ref:ref,inline:isInlineLink,color:linkColor,size:size||inheritPropsFromText?.size,weight:weight||inheritPropsFromText?.weight,...rest},React.createElement(LinkContext.Provider,{value:linkContextValue},linkContent))});
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import type { TextColors } from "../../types";
|
|
2
|
+
export type LinkContextValue = {
|
|
3
|
+
/** The link's resolved color, so a nested Text/TextClamped can inherit it. */
|
|
4
|
+
color: TextColors;
|
|
5
|
+
/**
|
|
6
|
+
* Whether the link paints an underline in its resting state (inline links).
|
|
7
|
+
* A nested Text/TextClamped uses it to re-draw the underline in its own color,
|
|
8
|
+
* so an explicit `color` prop recolors the underline and not just the glyph.
|
|
9
|
+
*/
|
|
10
|
+
showsUnderline: boolean;
|
|
11
|
+
/**
|
|
12
|
+
* Whether the nested Text/TextClamped should paint the underline itself.
|
|
13
|
+
* True only for a plain Link, whose anchor suppresses its own underline when it
|
|
14
|
+
* wraps a DS text component. False for ContentLink, which keeps drawing its own
|
|
15
|
+
* (content-color) underline — so the nested text must not draw a competing one.
|
|
16
|
+
*/
|
|
17
|
+
underlineOwnedByChild: boolean;
|
|
18
|
+
};
|
|
19
|
+
export declare const LinkContext: React.Context<LinkContextValue>;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{createContext}from"react";export const LinkContext=createContext(null);
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
import type { CSSObject, Theme } from "@emotion/react";
|
|
2
|
+
import type { TextColors } from "../../types";
|
|
3
|
+
type LinkDecorationStyles = {
|
|
4
|
+
theme: Theme;
|
|
5
|
+
/** The resolved color the underline should follow. */
|
|
6
|
+
color: TextColors | undefined;
|
|
7
|
+
/** Whether the underline is visible in the resting state (inline links). */
|
|
8
|
+
showsUnderline: boolean;
|
|
9
|
+
/** Hover selector, e.g. `"&:hover"` (Link) or `"[data-ds-id='Link']:hover &"` (nested Text). */
|
|
10
|
+
hoverSelector: string;
|
|
11
|
+
/** Also shift the glyph color on hover. Only the Link anchor does this. */
|
|
12
|
+
includeHoverTextColor?: boolean;
|
|
13
|
+
};
|
|
14
|
+
/**
|
|
15
|
+
* Underline styles shared by the Link anchor and a nested Text/TextClamped.
|
|
16
|
+
* Keeping this in one place means a nested Text re-draws the underline with the
|
|
17
|
+
* exact same token logic as the anchor, so the two never drift apart.
|
|
18
|
+
*/
|
|
19
|
+
export declare const getLinkDecorationStyles: ({ theme, color, showsUnderline, hoverSelector, includeHoverTextColor, }: LinkDecorationStyles) => CSSObject;
|
|
20
|
+
export {};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
let usesUnderlineToken=color=>"primary"===color||"secondary"===color||"tertiary"===color;export const getLinkDecorationStyles=({theme,color,showsUnderline,hoverSelector,includeHoverTextColor=!1})=>({textDecorationLine:showsUnderline?"underline":"none",...usesUnderlineToken(color)&&{textDecorationColor:theme.values.color.text.underline.default},[hoverSelector]:{textDecorationLine:"underline",textDecorationThickness:"0.125em",...usesUnderlineToken(color)&&{textDecorationColor:theme.values.color.text.underline.hover,...includeHoverTextColor&&{color:theme.values.color.text[color].hover}}}});
|
|
@@ -31,10 +31,14 @@ export declare const getTextFontSize: ({ theme, size, }: {
|
|
|
31
31
|
declare const StyledText: import("@emotion/styled").StyledComponent<{
|
|
32
32
|
theme?: Theme;
|
|
33
33
|
as?: React.ElementType;
|
|
34
|
-
} & BaseTextProps
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
34
|
+
} & BaseTextProps & {
|
|
35
|
+
/**
|
|
36
|
+
* When this Text is nested in a Link, whether that Link paints an underline
|
|
37
|
+
* at rest. Set, the Text re-draws the underline in its own resolved color so
|
|
38
|
+
* an explicit `color` prop recolors the underline and not just the glyph.
|
|
39
|
+
*/
|
|
40
|
+
linkShowsUnderline?: boolean;
|
|
41
|
+
}, React.DetailedHTMLProps<React.HTMLAttributes<HTMLParagraphElement>, HTMLParagraphElement>, {}>;
|
|
42
|
+
export type TextProps = Omit<ComponentProps<typeof StyledText>, "linkShowsUnderline">;
|
|
43
|
+
export declare const Text: React.ForwardRefExoticComponent<Omit<TextProps, "ref"> & React.RefAttributes<HTMLParagraphElement>>;
|
|
40
44
|
export {};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import React,{createContext,useMemo,forwardRef}from"react";import styled from"@emotion/styled";import isPropValid from"@emotion/is-prop-valid";import{useResponsiveStyles}from"../../../shared/mediaQueries";export const TextContext=createContext(null);export const getTextLineHeight=({theme,size})=>({xs:theme.variables.size.lineHeight.m,s:theme.variables.size.lineHeight.l,m:theme.variables.size.lineHeight.xl,l:theme.variables.size.lineHeight.xl})[size];export const getTextFontSize=({theme,size})=>theme.variables.size.font[size];let StyledText=styled("p",{shouldForwardProp:prop=>isPropValid(prop)&&"color"!==prop&&"transform"!==prop,target:"e1qum5j60",label:"StyledText"})(({theme,align,weight,size,transform,hyphens,overflowWrap,color,userSelect,variant})=>({fontFamily:theme.variables.fontFamily.lato,margin:0,textTransform:transform,textAlign:align,fontWeight:theme.variables.weight[weight],color:theme.values.color.text[color]?.default??theme.values.color.text.primary.default,...userSelect&&{userSelect},...variant&&{color:theme.values.color.text[variant].default,..."primary"===variant&&{color:theme.values.color.text.accent.default},..."secondary"===variant&&{color:theme.values.color.text.primary.default}},fontSize:getTextFontSize({theme,size}),lineHeight:getTextLineHeight({theme,size}),...useResponsiveStyles({hyphens:[hyphens,{none:"none",auto:"auto",manual:"manual"}]}),overflowWrap}),"/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3JjL2NvbXBvbmVudHMvVHlwb2dyYXBoeS9UZXh0L1RleHQudHN4Iiwic291cmNlcyI6WyJzcmMvY29tcG9uZW50cy9UeXBvZ3JhcGh5L1RleHQvVGV4dC50c3giXSwic291cmNlc0NvbnRlbnQiOlsiLyogZXNsaW50LWRpc2FibGUgcmVhY3QvanN4LXByb3BzLW5vLXNwcmVhZGluZyAqL1xuXG5pbXBvcnQgUmVhY3QsIHtcbiAgY3JlYXRlQ29udGV4dCxcbiAgdHlwZSBSZWFjdE5vZGUsXG4gIHR5cGUgQ29tcG9uZW50UHJvcHMsXG4gIHR5cGUgUmVmT2JqZWN0LFxuICB1c2VNZW1vLFxuICBmb3J3YXJkUmVmLFxufSBmcm9tIFwicmVhY3RcIjtcbmltcG9ydCB0eXBlIHsgVGhlbWUgfSBmcm9tIFwiQGVtb3Rpb24vcmVhY3RcIjtcbmltcG9ydCB0eXBlIHsgQ1NTT2JqZWN0IH0gZnJvbSBcIkBlbW90aW9uL3N0eWxlZFwiO1xuaW1wb3J0IHR5cGUgeyBQcm9wZXJ0eSB9IGZyb20gXCJjc3N0eXBlXCI7XG5pbXBvcnQgc3R5bGVkIGZyb20gXCJAZW1vdGlvbi9zdHlsZWRcIjtcbmltcG9ydCBpc1Byb3BWYWxpZCBmcm9tIFwiQGVtb3Rpb24vaXMtcHJvcC12YWxpZFwiO1xuaW1wb3J0IHsgdXNlUmVzcG9uc2l2ZVN0eWxlcyB9IGZyb20gXCIuLi8uLi8uLi9zaGFyZWQvbWVkaWFRdWVyaWVzXCI7XG5cbmltcG9ydCB0eXBlIHtcbiAgVGV4dEFsaWdubWVudCxcbiAgVGV4dFZhcmlhdGlvbnMsXG4gIFRleHRDb2xvcnMsXG4gIFRleHRTaXplLFxuICBUZXh0V2VpZ2h0LFxuICBNUSxcbiAgSHlwaGVucyxcbiAgT3ZlcmZsb3dXcmFwLFxufSBmcm9tIFwiLi4vLi4vLi4vdHlwZXNcIjtcblxuZXhwb3J0IHR5cGUgQmFzZVRleHRQcm9wcyA9IHtcbiAgY2hpbGRyZW46IFJlYWN0Tm9kZTtcbiAgc2l6ZT86IFRleHRTaXplO1xuICB3ZWlnaHQ/OiBUZXh0V2VpZ2h0O1xuICB0cmFuc2Zvcm0/OiBcIm5vbmVcIiB8IFwiY2FwaXRhbGl6ZVwiIHwgXCJ1cHBlcmNhc2VcIiB8IFwibG93ZXJjYXNlXCI7XG4gIGFzPzogXCJwXCIgfCBcInNwYW5cIjtcbiAgLyoqIEBkZXByZWNhdGVkIHZhcmlhbnQgcHJvcGVydHkgaXMgZGVwcmVjYXRlZCBub3cuIFBsZWFzZSB1c2UgY29sb3IgcHJvcC4gKi9cbiAgdmFyaWFudD86IFRleHRWYXJpYXRpb25zO1xuICBjb2xvcj86IFRleHRDb2xvcnM7XG4gIGFsaWduPzogVGV4dEFsaWdubWVudDtcbiAgb3ZlcmZsb3dXcmFwPzogT3ZlcmZsb3dXcmFwO1xuICBoeXBoZW5zPzogSHlwaGVucyB8IE1RPEh5cGhlbnM+O1xuICB1c2VyU2VsZWN0PzogUHJvcGVydHkuVXNlclNlbGVjdDtcbiAgXCJkYXRhLWUyZS10ZXN0LWlkXCI/OiBzdHJpbmc7XG4gIC8qKiBAaWdub3JlICovXG4gIFwiZGF0YS1kcy1pZFwiPzogc3RyaW5nO1xufTtcblxuZXhwb3J0IGNvbnN0IFRleHRDb250ZXh0ID0gY3JlYXRlQ29udGV4dDxQaWNrPFxuICBCYXNlVGV4dFByb3BzLFxuICBcImNvbG9yXCIgfCBcInNpemVcIiB8IFwid2VpZ2h0XCJcbj4gfCBudWxsPihudWxsKTtcblxuZXhwb3J0IGNvbnN0IGdldFRleHRMaW5lSGVpZ2h0ID0gKHtcbiAgdGhlbWUsXG4gIHNpemUsXG59OiB7XG4gIHRoZW1lOiBUaGVtZTtcbiAgc2l6ZTogVGV4dFNpemU7XG59KTogbnVtYmVyID0+XG4gICh7XG4gICAgeHM6IHRoZW1lLnZhcmlhYmxlcy5zaXplLmxpbmVIZWlnaHQubSxcbiAgICBzOiB0aGVtZS52YXJpYWJsZXMuc2l6ZS5saW5lSGVpZ2h0LmwsXG4gICAgbTogdGhlbWUudmFyaWFibGVzLnNpemUubGluZUhlaWdodC54bCxcbiAgICBsOiB0aGVtZS52YXJpYWJsZXMuc2l6ZS5saW5lSGVpZ2h0LnhsLFxuICB9W3NpemVdKTtcblxuZXhwb3J0IGNvbnN0IGdldFRleHRGb250U2l6ZSA9ICh7XG4gIHRoZW1lLFxuICBzaXplLFxufToge1xuICB0aGVtZTogVGhlbWU7XG4gIHNpemU6IFRleHRTaXplO1xufSk6IHN0cmluZyA9PiB0aGVtZS52YXJpYWJsZXMuc2l6ZS5mb250W3NpemVdO1xuXG5jb25zdCBTdHlsZWRUZXh0ID0gc3R5bGVkKFwicFwiLCB7XG4gIHNob3VsZEZvcndhcmRQcm9wOiAocHJvcCkgPT5cbiAgICBpc1Byb3BWYWxpZChwcm9wKSAmJiBwcm9wICE9PSBcImNvbG9yXCIgJiYgcHJvcCAhPT0gXCJ0cmFuc2Zvcm1cIixcbn0pPEJhc2VUZXh0UHJvcHM+KFxuICAoe1xuICAgIHRoZW1lLFxuICAgIGFsaWduLFxuICAgIHdlaWdodCxcbiAgICBzaXplLFxuICAgIHRyYW5zZm9ybSxcbiAgICBoeXBoZW5zLFxuICAgIG92ZXJmbG93V3JhcCxcbiAgICBjb2xvcixcbiAgICB1c2VyU2VsZWN0LFxuICAgIHZhcmlhbnQsXG4gIH0pID0+XG4gICAgKHtcbiAgICAgIGZvbnRGYW1pbHk6IHRoZW1lLnZhcmlhYmxlcy5mb250RmFtaWx5LmxhdG8sXG4gICAgICBtYXJnaW46IDAsXG4gICAgICB0ZXh0VHJhbnNmb3JtOiB0cmFuc2Zvcm0sXG4gICAgICB0ZXh0QWxpZ246IGFsaWduLFxuICAgICAgZm9udFdlaWdodDogdGhlbWUudmFyaWFibGVzLndlaWdodFt3ZWlnaHRdLFxuICAgICAgY29sb3I6XG4gICAgICAgIHRoZW1lLnZhbHVlcy5jb2xvci50ZXh0W2NvbG9yXT8uZGVmYXVsdCA/P1xuICAgICAgICB0aGVtZS52YWx1ZXMuY29sb3IudGV4dC5wcmltYXJ5LmRlZmF1bHQsXG4gICAgICAuLi4odXNlclNlbGVjdCAmJiB7XG4gICAgICAgIHVzZXJTZWxlY3QsXG4gICAgICB9KSxcblxuICAgICAgLy8gdmFyaWFudCBpcyBkZXByZWNhdGVkIGFuZCBpdCBzaG91bGQgYmUgZGVsZXRlZCBhc2FwXG4gICAgICAuLi4odmFyaWFudCAmJiB7XG4gICAgICAgIGNvbG9yOiB0aGVtZS52YWx1ZXMuY29sb3IudGV4dFt2YXJpYW50XS5kZWZhdWx0LFxuICAgICAgICAuLi4odmFyaWFudCA9PT0gXCJwcmltYXJ5XCIgJiYge1xuICAgICAgICAgIGNvbG9yOiB0aGVtZS52YWx1ZXMuY29sb3IudGV4dC5hY2NlbnQuZGVmYXVsdCxcbiAgICAgICAgfSksXG4gICAgICAgIC4uLih2YXJpYW50ID09PSBcInNlY29uZGFyeVwiICYmIHtcbiAgICAgICAgICBjb2xvcjogdGhlbWUudmFsdWVzLmNvbG9yLnRleHQucHJpbWFyeS5kZWZhdWx0LFxuICAgICAgICB9KSxcbiAgICAgIH0pLFxuXG4gICAgICBmb250U2l6ZTogZ2V0VGV4dEZvbnRTaXplKHsgdGhlbWUsIHNpemUgfSksXG4gICAgICBsaW5lSGVpZ2h0OiBnZXRUZXh0TGluZUhlaWdodCh7IHRoZW1lLCBzaXplIH0pLFxuICAgICAgLi4udXNlUmVzcG9uc2l2ZVN0eWxlcyh7XG4gICAgICAgIGh5cGhlbnM6IFtoeXBoZW5zLCB7IG5vbmU6IFwibm9uZVwiLCBhdXRvOiBcImF1dG9cIiwgbWFudWFsOiBcIm1hbnVhbFwiIH1dLFxuICAgICAgfSksXG4gICAgICBvdmVyZmxvd1dyYXAsXG4gICAgfSBhcyBDU1NPYmplY3QpXG4pO1xuXG5leHBvcnQgdHlwZSBUZXh0UHJvcHMgPSBDb21wb25lbnRQcm9wczx0eXBlb2YgU3R5bGVkVGV4dD47XG5cbmV4cG9ydCBjb25zdCBUZXh0ID0gZm9yd2FyZFJlZihcbiAgKFxuICAgIHtcbiAgICAgIHNpemUgPSBcIm1cIixcbiAgICAgIHdlaWdodCA9IFwibm9ybWFsXCIsXG4gICAgICB0cmFuc2Zvcm0gPSBcIm5vbmVcIixcbiAgICAgIGFzID0gXCJwXCIsXG4gICAgICBjb2xvcjogY29sb3JQcm9wID0gXCJwcmltYXJ5XCIsXG4gICAgICBhbGlnbiA9IFwibGVmdFwiLFxuICAgICAgaHlwaGVucyA9IFwibm9uZVwiLFxuICAgICAgb3ZlcmZsb3dXcmFwID0gXCJub3JtYWxcIixcbiAgICAgIHZhcmlhbnQsXG4gICAgICB1c2VyU2VsZWN0LFxuICAgICAgXCJkYXRhLWUyZS10ZXN0LWlkXCI6IGRhdGFFMmVUZXN0SWQsXG4gICAgICBjaGlsZHJlbixcbiAgICAgIC4uLnJlc3RcbiAgICB9OiBUZXh0UHJvcHMsXG4gICAgcmVmOiBSZWZPYmplY3Q8SFRNTFBhcmFncmFwaEVsZW1lbnQ+XG4gICkgPT4ge1xuICAgIGxldCBjb2xvciA9IGNvbG9yUHJvcDtcblxuICAgIC8vIHRoaXMgaXMgZ29pbmcgdG8gYmUgZGVsZXRlZCBhZnRlciBtaWdyYXRpb25cbiAgICBpZiAodmFyaWFudCkge1xuICAgICAgaWYgKHZhcmlhbnQgPT09IFwicHJpbWFyeVwiKSB7XG4gICAgICAgIGNvbG9yID0gXCJhY2NlbnRcIjtcbiAgICAgIH0gZWxzZSBpZiAodmFyaWFudCA9PT0gXCJzZWNvbmRhcnlcIikge1xuICAgICAgICBjb2xvciA9IFwicHJpbWFyeVwiO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgY29sb3IgPSB2YXJpYW50O1xuICAgICAgfVxuICAgIH1cblxuICAgIGNvbnN0IGNvbnRleHRWYWx1ZXMgPSB1c2VNZW1vKFxuICAgICAgKCkgPT4gKHsgY29sb3IsIHNpemUsIHdlaWdodCB9KSxcbiAgICAgIFtjb2xvciwgc2l6ZSwgd2VpZ2h0XVxuICAgICk7XG5cbiAgICByZXR1cm4gKFxuICAgICAgPFN0eWxlZFRleHRcbiAgICAgICAgcmVmPXtyZWZ9XG4gICAgICAgIHZhcmlhbnQ9e3ZhcmlhbnR9XG4gICAgICAgIHNpemU9e3NpemV9XG4gICAgICAgIHdlaWdodD17d2VpZ2h0fVxuICAgICAgICB0cmFuc2Zvcm09e3RyYW5zZm9ybX1cbiAgICAgICAgYXM9e2FzfVxuICAgICAgICBjb2xvcj17Y29sb3J9XG4gICAgICAgIGFsaWduPXthbGlnbn1cbiAgICAgICAgaHlwaGVucz17aHlwaGVuc31cbiAgICAgICAgb3ZlcmZsb3dXcmFwPXtvdmVyZmxvd1dyYXB9XG4gICAgICAgIHVzZXJTZWxlY3Q9e3VzZXJTZWxlY3R9XG4gICAgICAgIGRhdGEtZTJlLXRlc3QtaWQ9e2RhdGFFMmVUZXN0SWR9XG4gICAgICAgIGRhdGEtZHMtaWQ9XCJUZXh0XCJcbiAgICAgICAgey4uLnJlc3R9XG4gICAgICA+XG4gICAgICAgIDxUZXh0Q29udGV4dC5Qcm92aWRlciB2YWx1ZT17Y29udGV4dFZhbHVlc30+XG4gICAgICAgICAge2NoaWxkcmVufVxuICAgICAgICA8L1RleHRDb250ZXh0LlByb3ZpZGVyPlxuICAgICAgPC9TdHlsZWRUZXh0PlxuICAgICk7XG4gIH1cbik7XG4iXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBeUVtQiJ9 */");export const Text=forwardRef(({size="m",weight="normal",transform="none",as="p",color:colorProp="primary",align="left",hyphens="none",overflowWrap="normal",variant,userSelect,"data-e2e-test-id":dataE2eTestId,children,...rest},ref)=>{let color=colorProp;variant&&(color="primary"===variant?"accent":"secondary"===variant?"primary":variant);let contextValues=useMemo(()=>({color,size,weight}),[color,size,weight]);return React.createElement(StyledText,{ref:ref,variant:variant,size:size,weight:weight,transform:transform,as:as,color:color,align:align,hyphens:hyphens,overflowWrap:overflowWrap,userSelect:userSelect,"data-e2e-test-id":dataE2eTestId,"data-ds-id":"Text",...rest},React.createElement(TextContext.Provider,{value:contextValues},children))});
|
|
1
|
+
import React,{createContext,useContext,useMemo,forwardRef}from"react";import styled from"@emotion/styled";import isPropValid from"@emotion/is-prop-valid";import{useResponsiveStyles}from"../../../shared/mediaQueries";import{LinkContext}from"../../Link/LinkContext";import{getLinkDecorationStyles}from"../../Link/getLinkDecorationStyles";export const TextContext=createContext(null);export const getTextLineHeight=({theme,size})=>({xs:theme.variables.size.lineHeight.m,s:theme.variables.size.lineHeight.l,m:theme.variables.size.lineHeight.xl,l:theme.variables.size.lineHeight.xl})[size];export const getTextFontSize=({theme,size})=>theme.variables.size.font[size];let StyledText=styled("p",{shouldForwardProp:prop=>isPropValid(prop)&&"color"!==prop&&"transform"!==prop,target:"e1khhbfu0",label:"StyledText"})(({theme,align,weight,size,transform,hyphens,overflowWrap,color,userSelect,variant,linkShowsUnderline})=>({fontFamily:theme.variables.fontFamily.lato,margin:0,textTransform:transform,textAlign:align,fontWeight:theme.variables.weight[weight],color:theme.values.color.text[color]?.default??theme.values.color.text.primary.default,...userSelect&&{userSelect},...variant&&{color:theme.values.color.text[variant].default,..."primary"===variant&&{color:theme.values.color.text.accent.default},..."secondary"===variant&&{color:theme.values.color.text.primary.default}},fontSize:getTextFontSize({theme,size}),lineHeight:getTextLineHeight({theme,size}),...useResponsiveStyles({hyphens:[hyphens,{none:"none",auto:"auto",manual:"manual"}]}),overflowWrap,...void 0!==linkShowsUnderline&&getLinkDecorationStyles({theme,color,showsUnderline:linkShowsUnderline,hoverSelector:"[data-ds-id='Link']:hover &"})}),"/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3JjL2NvbXBvbmVudHMvVHlwb2dyYXBoeS9UZXh0L1RleHQudHN4Iiwic291cmNlcyI6WyJzcmMvY29tcG9uZW50cy9UeXBvZ3JhcGh5L1RleHQvVGV4dC50c3giXSwic291cmNlc0NvbnRlbnQiOlsiLyogZXNsaW50LWRpc2FibGUgcmVhY3QvanN4LXByb3BzLW5vLXNwcmVhZGluZyAqL1xuXG5pbXBvcnQgUmVhY3QsIHtcbiAgY3JlYXRlQ29udGV4dCxcbiAgdHlwZSBSZWFjdE5vZGUsXG4gIHR5cGUgQ29tcG9uZW50UHJvcHMsXG4gIHR5cGUgUmVmT2JqZWN0LFxuICB1c2VDb250ZXh0LFxuICB1c2VNZW1vLFxuICBmb3J3YXJkUmVmLFxufSBmcm9tIFwicmVhY3RcIjtcbmltcG9ydCB0eXBlIHsgVGhlbWUgfSBmcm9tIFwiQGVtb3Rpb24vcmVhY3RcIjtcbmltcG9ydCB0eXBlIHsgQ1NTT2JqZWN0IH0gZnJvbSBcIkBlbW90aW9uL3N0eWxlZFwiO1xuaW1wb3J0IHR5cGUgeyBQcm9wZXJ0eSB9IGZyb20gXCJjc3N0eXBlXCI7XG5pbXBvcnQgc3R5bGVkIGZyb20gXCJAZW1vdGlvbi9zdHlsZWRcIjtcbmltcG9ydCBpc1Byb3BWYWxpZCBmcm9tIFwiQGVtb3Rpb24vaXMtcHJvcC12YWxpZFwiO1xuaW1wb3J0IHsgdXNlUmVzcG9uc2l2ZVN0eWxlcyB9IGZyb20gXCIuLi8uLi8uLi9zaGFyZWQvbWVkaWFRdWVyaWVzXCI7XG5pbXBvcnQgeyBMaW5rQ29udGV4dCB9IGZyb20gXCIuLi8uLi9MaW5rL0xpbmtDb250ZXh0XCI7XG5pbXBvcnQgeyBnZXRMaW5rRGVjb3JhdGlvblN0eWxlcyB9IGZyb20gXCIuLi8uLi9MaW5rL2dldExpbmtEZWNvcmF0aW9uU3R5bGVzXCI7XG5cbmltcG9ydCB0eXBlIHtcbiAgVGV4dEFsaWdubWVudCxcbiAgVGV4dFZhcmlhdGlvbnMsXG4gIFRleHRDb2xvcnMsXG4gIFRleHRTaXplLFxuICBUZXh0V2VpZ2h0LFxuICBNUSxcbiAgSHlwaGVucyxcbiAgT3ZlcmZsb3dXcmFwLFxufSBmcm9tIFwiLi4vLi4vLi4vdHlwZXNcIjtcblxuZXhwb3J0IHR5cGUgQmFzZVRleHRQcm9wcyA9IHtcbiAgY2hpbGRyZW46IFJlYWN0Tm9kZTtcbiAgc2l6ZT86IFRleHRTaXplO1xuICB3ZWlnaHQ/OiBUZXh0V2VpZ2h0O1xuICB0cmFuc2Zvcm0/OiBcIm5vbmVcIiB8IFwiY2FwaXRhbGl6ZVwiIHwgXCJ1cHBlcmNhc2VcIiB8IFwibG93ZXJjYXNlXCI7XG4gIGFzPzogXCJwXCIgfCBcInNwYW5cIjtcbiAgLyoqIEBkZXByZWNhdGVkIHZhcmlhbnQgcHJvcGVydHkgaXMgZGVwcmVjYXRlZCBub3cuIFBsZWFzZSB1c2UgY29sb3IgcHJvcC4gKi9cbiAgdmFyaWFudD86IFRleHRWYXJpYXRpb25zO1xuICBjb2xvcj86IFRleHRDb2xvcnM7XG4gIGFsaWduPzogVGV4dEFsaWdubWVudDtcbiAgb3ZlcmZsb3dXcmFwPzogT3ZlcmZsb3dXcmFwO1xuICBoeXBoZW5zPzogSHlwaGVucyB8IE1RPEh5cGhlbnM+O1xuICB1c2VyU2VsZWN0PzogUHJvcGVydHkuVXNlclNlbGVjdDtcbiAgXCJkYXRhLWUyZS10ZXN0LWlkXCI/OiBzdHJpbmc7XG4gIC8qKiBAaWdub3JlICovXG4gIFwiZGF0YS1kcy1pZFwiPzogc3RyaW5nO1xufTtcblxuZXhwb3J0IGNvbnN0IFRleHRDb250ZXh0ID0gY3JlYXRlQ29udGV4dDxQaWNrPFxuICBCYXNlVGV4dFByb3BzLFxuICBcImNvbG9yXCIgfCBcInNpemVcIiB8IFwid2VpZ2h0XCJcbj4gfCBudWxsPihudWxsKTtcblxuZXhwb3J0IGNvbnN0IGdldFRleHRMaW5lSGVpZ2h0ID0gKHtcbiAgdGhlbWUsXG4gIHNpemUsXG59OiB7XG4gIHRoZW1lOiBUaGVtZTtcbiAgc2l6ZTogVGV4dFNpemU7XG59KTogbnVtYmVyID0+XG4gICh7XG4gICAgeHM6IHRoZW1lLnZhcmlhYmxlcy5zaXplLmxpbmVIZWlnaHQubSxcbiAgICBzOiB0aGVtZS52YXJpYWJsZXMuc2l6ZS5saW5lSGVpZ2h0LmwsXG4gICAgbTogdGhlbWUudmFyaWFibGVzLnNpemUubGluZUhlaWdodC54bCxcbiAgICBsOiB0aGVtZS52YXJpYWJsZXMuc2l6ZS5saW5lSGVpZ2h0LnhsLFxuICB9W3NpemVdKTtcblxuZXhwb3J0IGNvbnN0IGdldFRleHRGb250U2l6ZSA9ICh7XG4gIHRoZW1lLFxuICBzaXplLFxufToge1xuICB0aGVtZTogVGhlbWU7XG4gIHNpemU6IFRleHRTaXplO1xufSk6IHN0cmluZyA9PiB0aGVtZS52YXJpYWJsZXMuc2l6ZS5mb250W3NpemVdO1xuXG50eXBlIFN0eWxlZFRleHRQcm9wcyA9IEJhc2VUZXh0UHJvcHMgJiB7XG4gIC8qKlxuICAgKiBXaGVuIHRoaXMgVGV4dCBpcyBuZXN0ZWQgaW4gYSBMaW5rLCB3aGV0aGVyIHRoYXQgTGluayBwYWludHMgYW4gdW5kZXJsaW5lXG4gICAqIGF0IHJlc3QuIFNldCwgdGhlIFRleHQgcmUtZHJhd3MgdGhlIHVuZGVybGluZSBpbiBpdHMgb3duIHJlc29sdmVkIGNvbG9yIHNvXG4gICAqIGFuIGV4cGxpY2l0IGBjb2xvcmAgcHJvcCByZWNvbG9ycyB0aGUgdW5kZXJsaW5lIGFuZCBub3QganVzdCB0aGUgZ2x5cGguXG4gICAqL1xuICBsaW5rU2hvd3NVbmRlcmxpbmU/OiBib29sZWFuO1xufTtcblxuY29uc3QgU3R5bGVkVGV4dCA9IHN0eWxlZChcInBcIiwge1xuICBzaG91bGRGb3J3YXJkUHJvcDogKHByb3ApID0+XG4gICAgaXNQcm9wVmFsaWQocHJvcCkgJiYgcHJvcCAhPT0gXCJjb2xvclwiICYmIHByb3AgIT09IFwidHJhbnNmb3JtXCIsXG59KTxTdHlsZWRUZXh0UHJvcHM+KFxuICAoe1xuICAgIHRoZW1lLFxuICAgIGFsaWduLFxuICAgIHdlaWdodCxcbiAgICBzaXplLFxuICAgIHRyYW5zZm9ybSxcbiAgICBoeXBoZW5zLFxuICAgIG92ZXJmbG93V3JhcCxcbiAgICBjb2xvcixcbiAgICB1c2VyU2VsZWN0LFxuICAgIHZhcmlhbnQsXG4gICAgbGlua1Nob3dzVW5kZXJsaW5lLFxuICB9KSA9PlxuICAgICh7XG4gICAgICBmb250RmFtaWx5OiB0aGVtZS52YXJpYWJsZXMuZm9udEZhbWlseS5sYXRvLFxuICAgICAgbWFyZ2luOiAwLFxuICAgICAgdGV4dFRyYW5zZm9ybTogdHJhbnNmb3JtLFxuICAgICAgdGV4dEFsaWduOiBhbGlnbixcbiAgICAgIGZvbnRXZWlnaHQ6IHRoZW1lLnZhcmlhYmxlcy53ZWlnaHRbd2VpZ2h0XSxcbiAgICAgIGNvbG9yOlxuICAgICAgICB0aGVtZS52YWx1ZXMuY29sb3IudGV4dFtjb2xvcl0/LmRlZmF1bHQgPz9cbiAgICAgICAgdGhlbWUudmFsdWVzLmNvbG9yLnRleHQucHJpbWFyeS5kZWZhdWx0LFxuICAgICAgLi4uKHVzZXJTZWxlY3QgJiYge1xuICAgICAgICB1c2VyU2VsZWN0LFxuICAgICAgfSksXG5cbiAgICAgIC8vIHZhcmlhbnQgaXMgZGVwcmVjYXRlZCBhbmQgaXQgc2hvdWxkIGJlIGRlbGV0ZWQgYXNhcFxuICAgICAgLi4uKHZhcmlhbnQgJiYge1xuICAgICAgICBjb2xvcjogdGhlbWUudmFsdWVzLmNvbG9yLnRleHRbdmFyaWFudF0uZGVmYXVsdCxcbiAgICAgICAgLi4uKHZhcmlhbnQgPT09IFwicHJpbWFyeVwiICYmIHtcbiAgICAgICAgICBjb2xvcjogdGhlbWUudmFsdWVzLmNvbG9yLnRleHQuYWNjZW50LmRlZmF1bHQsXG4gICAgICAgIH0pLFxuICAgICAgICAuLi4odmFyaWFudCA9PT0gXCJzZWNvbmRhcnlcIiAmJiB7XG4gICAgICAgICAgY29sb3I6IHRoZW1lLnZhbHVlcy5jb2xvci50ZXh0LnByaW1hcnkuZGVmYXVsdCxcbiAgICAgICAgfSksXG4gICAgICB9KSxcblxuICAgICAgZm9udFNpemU6IGdldFRleHRGb250U2l6ZSh7IHRoZW1lLCBzaXplIH0pLFxuICAgICAgbGluZUhlaWdodDogZ2V0VGV4dExpbmVIZWlnaHQoeyB0aGVtZSwgc2l6ZSB9KSxcbiAgICAgIC4uLnVzZVJlc3BvbnNpdmVTdHlsZXMoe1xuICAgICAgICBoeXBoZW5zOiBbaHlwaGVucywgeyBub25lOiBcIm5vbmVcIiwgYXV0bzogXCJhdXRvXCIsIG1hbnVhbDogXCJtYW51YWxcIiB9XSxcbiAgICAgIH0pLFxuICAgICAgb3ZlcmZsb3dXcmFwLFxuXG4gICAgICAvLyBJbnNpZGUgYSBwbGFpbiBMaW5rICh3aG9zZSBhbmNob3Igc3VwcHJlc3NlcyBpdHMgb3duIHVuZGVybGluZSksIHJlLWRyYXdcbiAgICAgIC8vIHRoZSB1bmRlcmxpbmUgaW4gdGhpcyBUZXh0J3Mgb3duIGNvbG9yLiBUaGUgYW5jaG9yJ3MgdW5kZXJsaW5lIGlzIHBhaW50ZWRcbiAgICAgIC8vIHVzaW5nIHRoZSBhbmNob3IncyBjb2xvciwgd2hpY2ggYSBkZXNjZW5kYW50IGNhbm5vdCByZWNvbG9yOyBkcmF3aW5nIGl0XG4gICAgICAvLyBoZXJlIGtlZXBzIHRoZSB1bmRlcmxpbmUgaW4gc3luYyB3aXRoIHRoZSBnbHlwaCBjb2xvci4gT25seSByZWFjaGVkIHdoZW5cbiAgICAgIC8vIHRoZSBMaW5rIGhhbmRzIG93bmVyc2hpcCB0byB0aGUgY2hpbGQgKG5ldmVyIGZvciBDb250ZW50TGluaykuXG4gICAgICAuLi4obGlua1Nob3dzVW5kZXJsaW5lICE9PSB1bmRlZmluZWQgJiZcbiAgICAgICAgZ2V0TGlua0RlY29yYXRpb25TdHlsZXMoe1xuICAgICAgICAgIHRoZW1lLFxuICAgICAgICAgIGNvbG9yLFxuICAgICAgICAgIHNob3dzVW5kZXJsaW5lOiBsaW5rU2hvd3NVbmRlcmxpbmUsXG4gICAgICAgICAgaG92ZXJTZWxlY3RvcjogXCJbZGF0YS1kcy1pZD0nTGluayddOmhvdmVyICZcIixcbiAgICAgICAgfSkpLFxuICAgIH0gYXMgQ1NTT2JqZWN0KVxuKTtcblxuZXhwb3J0IHR5cGUgVGV4dFByb3BzID0gT21pdDxcbiAgQ29tcG9uZW50UHJvcHM8dHlwZW9mIFN0eWxlZFRleHQ+LFxuICBcImxpbmtTaG93c1VuZGVybGluZVwiXG4+O1xuXG5leHBvcnQgY29uc3QgVGV4dCA9IGZvcndhcmRSZWYoXG4gIChcbiAgICB7XG4gICAgICBzaXplID0gXCJtXCIsXG4gICAgICB3ZWlnaHQgPSBcIm5vcm1hbFwiLFxuICAgICAgdHJhbnNmb3JtID0gXCJub25lXCIsXG4gICAgICBhcyA9IFwicFwiLFxuICAgICAgY29sb3I6IGNvbG9yUHJvcCxcbiAgICAgIGFsaWduID0gXCJsZWZ0XCIsXG4gICAgICBoeXBoZW5zID0gXCJub25lXCIsXG4gICAgICBvdmVyZmxvd1dyYXAgPSBcIm5vcm1hbFwiLFxuICAgICAgdmFyaWFudCxcbiAgICAgIHVzZXJTZWxlY3QsXG4gICAgICBcImRhdGEtZTJlLXRlc3QtaWRcIjogZGF0YUUyZVRlc3RJZCxcbiAgICAgIGNoaWxkcmVuLFxuICAgICAgLi4ucmVzdFxuICAgIH06IFRleHRQcm9wcyxcbiAgICByZWY6IFJlZk9iamVjdDxIVE1MUGFyYWdyYXBoRWxlbWVudD5cbiAgKSA9PiB7XG4gICAgLy8gV2hlbiBubyBleHBsaWNpdCBjb2xvciBpcyBzZXQsIGluaGVyaXQgdGhlIHJlc29sdmVkIGNvbG9yIG9mIGEgd3JhcHBpbmdcbiAgICAvLyBMaW5rIChpZiBhbnkpIGJlZm9yZSBmYWxsaW5nIGJhY2sgdG8gXCJwcmltYXJ5XCIuIFRoaXMga2VlcHMgYSBuZXN0ZWRcbiAgICAvLyBUZXh0L1RleHRDbGFtcGVkIGluIHN5bmMgd2l0aCB0aGUgTGluaydzIGNvbG9yL3VuZGVybGluZSB1bmRlciBhIFN1YlRoZW1lUHJvdmlkZXIuXG4gICAgY29uc3QgbGlua0NvbnRleHQgPSB1c2VDb250ZXh0KExpbmtDb250ZXh0KTtcbiAgICBsZXQgY29sb3IgPSBjb2xvclByb3AgPz8gbGlua0NvbnRleHQ/LmNvbG9yID8/IFwicHJpbWFyeVwiO1xuXG4gICAgLy8gUmVwYWludCB0aGUgdW5kZXJsaW5lIG9ubHkgd2hlbiBhIHBsYWluIExpbmsgaGFuZGVkIG93bmVyc2hpcCB0byB0aGUgY2hpbGQ7XG4gICAgLy8gQ29udGVudExpbmsga2VlcHMgZHJhd2luZyBpdHMgb3duLCBzbyB3ZSBtdXN0IG5vdCBhZGQgYSBjb21wZXRpbmcgbGluZS5cbiAgICBjb25zdCBsaW5rU2hvd3NVbmRlcmxpbmUgPSBsaW5rQ29udGV4dD8udW5kZXJsaW5lT3duZWRCeUNoaWxkXG4gICAgICA/IGxpbmtDb250ZXh0LnNob3dzVW5kZXJsaW5lXG4gICAgICA6IHVuZGVmaW5lZDtcblxuICAgIC8vIHRoaXMgaXMgZ29pbmcgdG8gYmUgZGVsZXRlZCBhZnRlciBtaWdyYXRpb25cbiAgICBpZiAodmFyaWFudCkge1xuICAgICAgaWYgKHZhcmlhbnQgPT09IFwicHJpbWFyeVwiKSB7XG4gICAgICAgIGNvbG9yID0gXCJhY2NlbnRcIjtcbiAgICAgIH0gZWxzZSBpZiAodmFyaWFudCA9PT0gXCJzZWNvbmRhcnlcIikge1xuICAgICAgICBjb2xvciA9IFwicHJpbWFyeVwiO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgY29sb3IgPSB2YXJpYW50O1xuICAgICAgfVxuICAgIH1cblxuICAgIGNvbnN0IGNvbnRleHRWYWx1ZXMgPSB1c2VNZW1vKFxuICAgICAgKCkgPT4gKHsgY29sb3IsIHNpemUsIHdlaWdodCB9KSxcbiAgICAgIFtjb2xvciwgc2l6ZSwgd2VpZ2h0XVxuICAgICk7XG5cbiAgICByZXR1cm4gKFxuICAgICAgPFN0eWxlZFRleHRcbiAgICAgICAgcmVmPXtyZWZ9XG4gICAgICAgIHZhcmlhbnQ9e3ZhcmlhbnR9XG4gICAgICAgIHNpemU9e3NpemV9XG4gICAgICAgIHdlaWdodD17d2VpZ2h0fVxuICAgICAgICB0cmFuc2Zvcm09e3RyYW5zZm9ybX1cbiAgICAgICAgYXM9e2FzfVxuICAgICAgICBjb2xvcj17Y29sb3J9XG4gICAgICAgIGFsaWduPXthbGlnbn1cbiAgICAgICAgaHlwaGVucz17aHlwaGVuc31cbiAgICAgICAgb3ZlcmZsb3dXcmFwPXtvdmVyZmxvd1dyYXB9XG4gICAgICAgIHVzZXJTZWxlY3Q9e3VzZXJTZWxlY3R9XG4gICAgICAgIGxpbmtTaG93c1VuZGVybGluZT17bGlua1Nob3dzVW5kZXJsaW5lfVxuICAgICAgICBkYXRhLWUyZS10ZXN0LWlkPXtkYXRhRTJlVGVzdElkfVxuICAgICAgICBkYXRhLWRzLWlkPVwiVGV4dFwiXG4gICAgICAgIHsuLi5yZXN0fVxuICAgICAgPlxuICAgICAgICA8VGV4dENvbnRleHQuUHJvdmlkZXIgdmFsdWU9e2NvbnRleHRWYWx1ZXN9PlxuICAgICAgICAgIHtjaGlsZHJlbn1cbiAgICAgICAgPC9UZXh0Q29udGV4dC5Qcm92aWRlcj5cbiAgICAgIDwvU3R5bGVkVGV4dD5cbiAgICApO1xuICB9XG4pO1xuIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQXFGbUIifQ== */");export const Text=forwardRef(({size="m",weight="normal",transform="none",as="p",color:colorProp,align="left",hyphens="none",overflowWrap="normal",variant,userSelect,"data-e2e-test-id":dataE2eTestId,children,...rest},ref)=>{let linkContext=useContext(LinkContext),color=colorProp??linkContext?.color??"primary",linkShowsUnderline=linkContext?.underlineOwnedByChild?linkContext.showsUnderline:void 0;variant&&(color="primary"===variant?"accent":"secondary"===variant?"primary":variant);let contextValues=useMemo(()=>({color,size,weight}),[color,size,weight]);return React.createElement(StyledText,{ref:ref,variant:variant,size:size,weight:weight,transform:transform,as:as,color:color,align:align,hyphens:hyphens,overflowWrap:overflowWrap,userSelect:userSelect,linkShowsUnderline:linkShowsUnderline,"data-e2e-test-id":dataE2eTestId,"data-ds-id":"Text",...rest},React.createElement(TextContext.Provider,{value:contextValues},children))});
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Whether the user has requested reduced motion. Animations should skip to
|
|
3
|
+
* their end state when this is true. Pass the `window` from `useWindow()` rather
|
|
4
|
+
* than the global. Returns `false` when `matchMedia` is unavailable (e.g. jsdom).
|
|
5
|
+
*/
|
|
6
|
+
export declare const prefersReducedMotion: (window: Window) => boolean;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export const prefersReducedMotion=window=>!!window.matchMedia?.("(prefers-reduced-motion: reduce)")?.matches;
|
package/build/scss/_layout.scss
CHANGED
|
@@ -1,6 +1,11 @@
|
|
|
1
|
-
// GENERATED by the design-token pipeline — do not edit by hand.
|
|
2
|
-
// Source of truth: packages/design-tokens/src/web/layout.json
|
|
3
|
-
|
|
4
1
|
$contentWidth: var(--ds-layout-content-width, auto);
|
|
5
2
|
$rightPanelWidth: var(--ds-layout-rightPanel-width, 0px);
|
|
6
3
|
$subnavOffset: var(--ds-layout-subnav-offset, 0px);
|
|
4
|
+
|
|
5
|
+
@mixin ds-layout {
|
|
6
|
+
:root {
|
|
7
|
+
--ds-layout-content-width: auto;
|
|
8
|
+
--ds-layout-rightPanel-width: 0px;
|
|
9
|
+
--ds-layout-subnav-offset: 0px;
|
|
10
|
+
}
|
|
11
|
+
}
|
package/build/scss/_theming.scss
CHANGED
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
@use "sass:meta";
|
|
2
|
+
@use "layout";
|
|
2
3
|
@use "light";
|
|
3
4
|
@use "dark";
|
|
4
5
|
@use "subthemes";
|
|
@@ -7,6 +8,8 @@
|
|
|
7
8
|
$available-subthemes: ("ai", "brand", "brandSubtle", "dimmed", "dimmedSubtle", "error", "info", "inverted", "success");
|
|
8
9
|
|
|
9
10
|
@mixin theming($dark-theme-selector: ".dark-theme", $subthemes: ()) {
|
|
11
|
+
@include layout.ds-layout;
|
|
12
|
+
|
|
10
13
|
// Subtheme selectors
|
|
11
14
|
@each $name in $available-subthemes {
|
|
12
15
|
@if $subthemes == all or index($subthemes, $name) {
|