@amboss/design-system 4.9.4 → 4.11.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/build/cjs/components/AIButton/AIButton.js +1 -1
- package/build/cjs/components/Badge/Badge.js +1 -1
- package/build/cjs/components/Button/Button.js +1 -1
- package/build/cjs/components/CheckboxCard/CheckboxCard.d.ts +1 -1
- package/build/cjs/components/Collapsible/Collapsible.js +1 -1
- package/build/cjs/components/Column/Columns.js +1 -1
- package/build/cjs/components/Content/ContentBadge/ContentBadge.js +1 -1
- package/build/cjs/components/Content/ContentCheckbox/ContentCheckbox.d.ts +1 -1
- package/build/cjs/components/Content/ContentCheckbox/ContentCheckbox.js +1 -1
- package/build/cjs/components/Content/ContentCitation/ContentCitation.d.ts +3 -3
- package/build/cjs/components/Content/ContentFontResizer/FontSizeOffsetContext.d.ts +1 -1
- package/build/cjs/components/Content/ContentLink/ContentLink.js +1 -1
- package/build/cjs/components/Content/ContentText/ContentText.d.ts +1 -1
- package/build/cjs/components/Content/ContentText/ContentText.js +1 -1
- package/build/cjs/components/Content/DosageButton/DosageButton.d.ts +1 -1
- package/build/cjs/components/CountButton/CountButton.js +1 -1
- package/build/cjs/components/DataTable/DataTable.d.ts +3 -2
- package/build/cjs/components/DataTable/DataTable.js +1 -1
- package/build/cjs/components/DataTable/TableCell.d.ts +1 -1
- package/build/cjs/components/DataTable/internal/tablePrimitives.d.ts +3 -3
- package/build/cjs/components/EntityList/styled-components.d.ts +8 -8
- package/build/cjs/components/Form/Checkbox/Checkbox.d.ts +2 -2
- package/build/cjs/components/Form/Combobox/SingleSelect.js +1 -1
- package/build/cjs/components/Form/Combobox/StyledSelectComponents.d.ts +4 -4
- package/build/cjs/components/Form/Combobox/StyledSelectComponents.js +1 -1
- package/build/cjs/components/Form/DatePicker/DatePicker.d.ts +1 -1
- package/build/cjs/components/Form/Input/Input.js +1 -1
- package/build/cjs/components/Form/MaskedInput/MaskedInput.d.ts +1 -1
- package/build/cjs/components/Form/PasswordInput/PasswordInput.js +1 -1
- package/build/cjs/components/Form/Radio/Radio.d.ts +2 -2
- package/build/cjs/components/Form/RadioButton/RadioButton.js +1 -1
- package/build/cjs/components/Form/RangeInput/RangeInput.d.ts +1 -1
- package/build/cjs/components/Form/SegmentedControl/SegmentedControlOption.js +1 -1
- package/build/cjs/components/Form/Select/Select.js +1 -1
- package/build/cjs/components/Form/Textarea/Textarea.d.ts +2 -2
- package/build/cjs/components/Form/Textarea/Textarea.js +1 -1
- package/build/cjs/components/Form/Toggle/Toggle.d.ts +3 -3
- package/build/cjs/components/Form/ToggleButton/ToggleButton.d.ts +1 -1
- package/build/cjs/components/Grid/Grid.d.ts +1 -1
- package/build/cjs/components/Grid/Grid.js +1 -1
- package/build/cjs/components/IconTile/IconTile.js +1 -1
- package/build/cjs/components/Internal/Drawer/Drawer.js +3 -3
- package/build/cjs/components/Internal/Float/Float.js +1 -1
- package/build/cjs/components/Internal/LayoutFloat/LayoutFloat.d.ts +13 -1
- package/build/cjs/components/Internal/LayoutFloat/useLayoutFloatDrag.d.ts +1 -1
- package/build/cjs/components/Internal/Panel/Panel.d.ts +5 -3
- package/build/cjs/components/Internal/Panel/Panel.js +1 -1
- package/build/cjs/components/Internal/PanelHeader/PanelHeader.d.ts +1 -1
- package/build/cjs/components/Internal/PanelHeader/PanelHeader.js +1 -1
- package/build/cjs/components/Internal/Sandwich/useSandwichContext.d.ts +1 -1
- package/build/cjs/components/Layout/-constants.d.ts +10 -0
- package/build/cjs/components/Layout/-constants.js +1 -1
- package/build/cjs/components/Layout/-types.d.ts +35 -11
- package/build/cjs/components/Layout/BottomBar/BottomBarItem/LayoutBottomBarItem.d.ts +18 -0
- package/build/cjs/components/Layout/BottomBar/BottomBarItem/LayoutBottomBarItem.js +1 -0
- package/build/cjs/components/Layout/BottomBar/LayoutBottomBar.d.ts +3 -0
- package/build/cjs/components/Layout/BottomBar/LayoutBottomBar.js +1 -0
- package/build/cjs/components/Layout/BottomBar/StyledLayoutBottomBar.d.ts +11 -0
- package/build/cjs/components/Layout/BottomBar/StyledLayoutBottomBar.js +1 -0
- package/build/cjs/components/Layout/BottomBar/StyledLayoutBottomBarSection.d.ts +13 -0
- package/build/cjs/components/Layout/BottomBar/StyledLayoutBottomBarSection.js +1 -0
- package/build/cjs/components/Layout/BottomBar/getBottomBarLayout.d.ts +42 -0
- package/build/cjs/components/Layout/BottomBar/getBottomBarLayout.js +1 -0
- package/build/cjs/components/Layout/Layout.d.ts +4 -0
- package/build/cjs/components/Layout/Layout.js +1 -1
- package/build/cjs/components/Layout/LayoutCssVars.d.ts +1 -1
- package/build/cjs/components/Layout/LayoutCssVars.js +1 -1
- package/build/cjs/components/Layout/LayoutPortal.d.ts +7 -0
- package/build/cjs/components/Layout/LayoutPortal.js +1 -0
- package/build/cjs/components/Layout/LayoutProvider.js +1 -1
- package/build/cjs/components/Layout/LeftPanel/LeftPanelDrawer.d.ts +3 -4
- package/build/cjs/components/Layout/LeftPanel/LeftPanelDrawer.js +1 -1
- package/build/cjs/components/Layout/LeftPanel/useLeftBarContext.d.ts +1 -1
- package/build/cjs/components/Layout/LeftPanel/useLeftPanelCollapseContext.d.ts +1 -1
- package/build/cjs/components/Layout/PanelContainer.d.ts +1 -1
- package/build/cjs/components/Layout/PanelContainer.js +1 -1
- package/build/cjs/components/Layout/RightPanel/RightPanel.js +1 -1
- package/build/cjs/components/Layout/RightPanel/RightPanelDocked.d.ts +1 -1
- package/build/cjs/components/Layout/RightPanel/RightPanelDocked.js +1 -1
- package/build/cjs/components/Layout/Split/MobileSplitView/MobileSplitView.js +1 -1
- package/build/cjs/components/Layout/Split/MobileSplitView/StyledMobileSplitSlideLayer.d.ts +1 -1
- package/build/cjs/components/Layout/Split/MobileSplitView/StyledMobileSplitSlideLayer.js +1 -1
- package/build/cjs/components/Layout/Split/MobileSplitView/useMobileSplitStack.d.ts +1 -1
- package/build/cjs/components/Layout/Split/Split.js +1 -1
- package/build/cjs/components/Layout/Split/SplitDocked.js +1 -1
- package/build/cjs/components/Layout/context.d.ts +2 -2
- package/build/cjs/components/Layout/cssVarStore.d.ts +10 -3
- package/build/cjs/components/Layout/cssVarStore.js +1 -1
- package/build/cjs/components/Layout/registry.d.ts +13 -9
- package/build/cjs/components/Layout/useLayout.js +1 -1
- package/build/cjs/components/Layout/useLeftPanelId.d.ts +1 -1
- package/build/cjs/components/Layout/usePanelAnimations.d.ts +12 -0
- package/build/cjs/components/Layout/usePanelAnimations.js +1 -0
- package/build/cjs/components/Layout/usePanelDockedSlide.js +1 -1
- package/build/cjs/components/Link/Link.js +1 -1
- package/build/cjs/components/MediaItem/MediaItem.js +1 -1
- package/build/cjs/components/MediaViewerCarousel/MediaCarousel/MediaCarousel.js +1 -1
- package/build/cjs/components/NavBar/NavBar.d.ts +14 -18
- package/build/cjs/components/NavBar/NavBarContext.d.ts +1 -1
- package/build/cjs/components/NavBar/NavBarDropdownTriggerButton.d.ts +1 -1
- package/build/cjs/components/Notification/Notification.js +1 -1
- package/build/cjs/components/Patterns/Dialog/DialogContext.d.ts +1 -1
- package/build/cjs/components/Patterns/EmptyState/EmptyState.d.ts +2 -2
- package/build/cjs/components/Patterns/Modal/Modal.d.ts +4 -2
- package/build/cjs/components/Patterns/Popover/PopoverContext.d.ts +1 -1
- package/build/cjs/components/PictogramButton/PictogramButton.js +1 -1
- package/build/cjs/components/PromptInput/PromptInput.d.ts +1 -1
- package/build/cjs/components/RadioCard/RadioCard.d.ts +1 -1
- package/build/cjs/components/RoundButton/RoundButton.js +1 -1
- package/build/cjs/components/SearchResult/SearchResult.d.ts +3 -1
- package/build/cjs/components/SearchResult/SearchResult.js +1 -1
- package/build/cjs/components/Sheet/Sheet.js +1 -1
- package/build/cjs/components/Sheet/useSheetHeightSync.d.ts +26 -0
- package/build/cjs/components/Sheet/useSheetHeightSync.js +1 -0
- package/build/cjs/components/StatusIndicator/StatusIndicator.js +1 -1
- package/build/cjs/components/SubThemeProvider/SubThemeContext.d.ts +1 -1
- package/build/cjs/components/Tooltip/FloatingPositionedContext.d.ts +1 -1
- package/build/cjs/components/Typography/Text/Text.js +1 -1
- package/build/cjs/components/Utilities/ContainerQuery/ContainerQueryContext.d.ts +1 -1
- package/build/cjs/components/Utilities/Expandable/Expandable.js +1 -1
- package/build/cjs/components/Utilities/ScreenReaderText/ScreenReaderText.d.ts +1 -1
- package/build/cjs/shared/components/SelectableButton.d.ts +1 -1
- package/build/cjs/shared/useExitAnimation.js +1 -0
- package/build/cjs/web-tokens/layout-vars.d.ts +7 -0
- package/build/cjs/web-tokens/layout-vars.js +1 -1
- package/build/cjs/web-tokens/layout-vars.ts +7 -0
- package/build/cjs/web-tokens/visualConfig.d.ts +40 -0
- package/build/cjs/web-tokens/visualConfig.js +1 -1
- package/build/esm/components/AIButton/AIButton.js +1 -1
- package/build/esm/components/Badge/Badge.js +1 -1
- package/build/esm/components/Button/Button.js +1 -1
- package/build/esm/components/CheckboxCard/CheckboxCard.d.ts +1 -1
- package/build/esm/components/Collapsible/Collapsible.js +1 -1
- package/build/esm/components/Column/Columns.js +1 -1
- package/build/esm/components/Content/ContentBadge/ContentBadge.js +1 -1
- package/build/esm/components/Content/ContentCheckbox/ContentCheckbox.d.ts +1 -1
- package/build/esm/components/Content/ContentCheckbox/ContentCheckbox.js +1 -1
- package/build/esm/components/Content/ContentCitation/ContentCitation.d.ts +3 -3
- package/build/esm/components/Content/ContentFontResizer/FontSizeOffsetContext.d.ts +1 -1
- package/build/esm/components/Content/ContentLink/ContentLink.js +1 -1
- package/build/esm/components/Content/ContentText/ContentText.d.ts +1 -1
- package/build/esm/components/Content/ContentText/ContentText.js +1 -1
- package/build/esm/components/Content/DosageButton/DosageButton.d.ts +1 -1
- package/build/esm/components/CountButton/CountButton.js +1 -1
- package/build/esm/components/DataTable/DataTable.d.ts +3 -2
- package/build/esm/components/DataTable/DataTable.js +1 -1
- package/build/esm/components/DataTable/TableCell.d.ts +1 -1
- package/build/esm/components/DataTable/internal/tablePrimitives.d.ts +3 -3
- package/build/esm/components/EntityList/styled-components.d.ts +8 -8
- package/build/esm/components/Form/Checkbox/Checkbox.d.ts +2 -2
- package/build/esm/components/Form/Combobox/SingleSelect.js +1 -1
- package/build/esm/components/Form/Combobox/StyledSelectComponents.d.ts +4 -4
- package/build/esm/components/Form/Combobox/StyledSelectComponents.js +1 -1
- package/build/esm/components/Form/DatePicker/DatePicker.d.ts +1 -1
- package/build/esm/components/Form/Input/Input.js +1 -1
- package/build/esm/components/Form/MaskedInput/MaskedInput.d.ts +1 -1
- package/build/esm/components/Form/PasswordInput/PasswordInput.js +1 -1
- package/build/esm/components/Form/Radio/Radio.d.ts +2 -2
- package/build/esm/components/Form/RadioButton/RadioButton.js +1 -1
- package/build/esm/components/Form/RangeInput/RangeInput.d.ts +1 -1
- package/build/esm/components/Form/SegmentedControl/SegmentedControlOption.js +1 -1
- package/build/esm/components/Form/Select/Select.js +1 -1
- package/build/esm/components/Form/Textarea/Textarea.d.ts +2 -2
- package/build/esm/components/Form/Textarea/Textarea.js +1 -1
- package/build/esm/components/Form/Toggle/Toggle.d.ts +3 -3
- package/build/esm/components/Form/ToggleButton/ToggleButton.d.ts +1 -1
- package/build/esm/components/Grid/Grid.d.ts +1 -1
- package/build/esm/components/Grid/Grid.js +1 -1
- package/build/esm/components/IconTile/IconTile.js +1 -1
- package/build/esm/components/Internal/Drawer/Drawer.js +3 -3
- package/build/esm/components/Internal/Float/Float.js +1 -1
- package/build/esm/components/Internal/LayoutFloat/LayoutFloat.d.ts +13 -1
- package/build/esm/components/Internal/LayoutFloat/useLayoutFloatDrag.d.ts +1 -1
- package/build/esm/components/Internal/Panel/Panel.d.ts +5 -3
- package/build/esm/components/Internal/Panel/Panel.js +1 -1
- package/build/esm/components/Internal/PanelHeader/PanelHeader.d.ts +1 -1
- package/build/esm/components/Internal/PanelHeader/PanelHeader.js +1 -1
- package/build/esm/components/Internal/Sandwich/useSandwichContext.d.ts +1 -1
- package/build/esm/components/Layout/-constants.d.ts +10 -0
- package/build/esm/components/Layout/-constants.js +1 -1
- package/build/esm/components/Layout/-types.d.ts +35 -11
- package/build/esm/components/Layout/BottomBar/BottomBarItem/LayoutBottomBarItem.d.ts +18 -0
- package/build/esm/components/Layout/BottomBar/BottomBarItem/LayoutBottomBarItem.js +1 -0
- package/build/esm/components/Layout/BottomBar/LayoutBottomBar.d.ts +3 -0
- package/build/esm/components/Layout/BottomBar/LayoutBottomBar.js +1 -0
- package/build/esm/components/Layout/BottomBar/StyledLayoutBottomBar.d.ts +11 -0
- package/build/esm/components/Layout/BottomBar/StyledLayoutBottomBar.js +1 -0
- package/build/esm/components/Layout/BottomBar/StyledLayoutBottomBarSection.d.ts +13 -0
- package/build/esm/components/Layout/BottomBar/StyledLayoutBottomBarSection.js +1 -0
- package/build/esm/components/Layout/BottomBar/getBottomBarLayout.d.ts +42 -0
- package/build/esm/components/Layout/BottomBar/getBottomBarLayout.js +1 -0
- package/build/esm/components/Layout/Layout.d.ts +4 -0
- package/build/esm/components/Layout/Layout.js +1 -1
- package/build/esm/components/Layout/LayoutCssVars.d.ts +1 -1
- package/build/esm/components/Layout/LayoutCssVars.js +1 -1
- package/build/esm/components/Layout/LayoutPortal.d.ts +7 -0
- package/build/esm/components/Layout/LayoutPortal.js +1 -0
- package/build/esm/components/Layout/LayoutProvider.js +1 -1
- package/build/esm/components/Layout/LeftPanel/LeftPanelDrawer.d.ts +3 -4
- package/build/esm/components/Layout/LeftPanel/LeftPanelDrawer.js +1 -1
- package/build/esm/components/Layout/LeftPanel/useLeftBarContext.d.ts +1 -1
- package/build/esm/components/Layout/LeftPanel/useLeftPanelCollapseContext.d.ts +1 -1
- package/build/esm/components/Layout/PanelContainer.d.ts +1 -1
- package/build/esm/components/Layout/PanelContainer.js +1 -1
- package/build/esm/components/Layout/RightPanel/RightPanel.js +1 -1
- package/build/esm/components/Layout/RightPanel/RightPanelDocked.d.ts +1 -1
- package/build/esm/components/Layout/RightPanel/RightPanelDocked.js +1 -1
- package/build/esm/components/Layout/Split/MobileSplitView/MobileSplitView.js +1 -1
- package/build/esm/components/Layout/Split/MobileSplitView/StyledMobileSplitSlideLayer.d.ts +1 -1
- package/build/esm/components/Layout/Split/MobileSplitView/StyledMobileSplitSlideLayer.js +1 -1
- package/build/esm/components/Layout/Split/MobileSplitView/useMobileSplitStack.d.ts +1 -1
- package/build/esm/components/Layout/Split/Split.js +1 -1
- package/build/esm/components/Layout/Split/SplitDocked.js +1 -1
- package/build/esm/components/Layout/context.d.ts +2 -2
- package/build/esm/components/Layout/cssVarStore.d.ts +10 -3
- package/build/esm/components/Layout/cssVarStore.js +1 -1
- package/build/esm/components/Layout/registry.d.ts +13 -9
- package/build/esm/components/Layout/useLayout.js +1 -1
- package/build/esm/components/Layout/useLeftPanelId.d.ts +1 -1
- package/build/esm/components/Layout/usePanelAnimations.d.ts +12 -0
- package/build/esm/components/Layout/usePanelAnimations.js +1 -0
- package/build/esm/components/Layout/usePanelDockedSlide.js +1 -1
- package/build/esm/components/Link/Link.js +1 -1
- package/build/esm/components/MediaItem/MediaItem.js +1 -1
- package/build/esm/components/MediaViewerCarousel/MediaCarousel/MediaCarousel.js +1 -1
- package/build/esm/components/NavBar/NavBar.d.ts +14 -18
- package/build/esm/components/NavBar/NavBarContext.d.ts +1 -1
- package/build/esm/components/NavBar/NavBarDropdownTriggerButton.d.ts +1 -1
- package/build/esm/components/Notification/Notification.js +1 -1
- package/build/esm/components/Patterns/Dialog/DialogContext.d.ts +1 -1
- package/build/esm/components/Patterns/EmptyState/EmptyState.d.ts +2 -2
- package/build/esm/components/Patterns/Modal/Modal.d.ts +4 -2
- package/build/esm/components/Patterns/Popover/PopoverContext.d.ts +1 -1
- package/build/esm/components/PictogramButton/PictogramButton.js +1 -1
- package/build/esm/components/PromptInput/PromptInput.d.ts +1 -1
- package/build/esm/components/RadioCard/RadioCard.d.ts +1 -1
- package/build/esm/components/RoundButton/RoundButton.js +1 -1
- package/build/esm/components/SearchResult/SearchResult.d.ts +3 -1
- package/build/esm/components/SearchResult/SearchResult.js +1 -1
- package/build/esm/components/Sheet/Sheet.js +1 -1
- package/build/esm/components/Sheet/useSheetHeightSync.d.ts +26 -0
- package/build/esm/components/Sheet/useSheetHeightSync.js +1 -0
- package/build/esm/components/StatusIndicator/StatusIndicator.js +1 -1
- package/build/esm/components/SubThemeProvider/SubThemeContext.d.ts +1 -1
- package/build/esm/components/Tooltip/FloatingPositionedContext.d.ts +1 -1
- package/build/esm/components/Typography/Text/Text.js +1 -1
- package/build/esm/components/Utilities/ContainerQuery/ContainerQueryContext.d.ts +1 -1
- package/build/esm/components/Utilities/Expandable/Expandable.js +1 -1
- package/build/esm/components/Utilities/ScreenReaderText/ScreenReaderText.d.ts +1 -1
- package/build/esm/shared/components/SelectableButton.d.ts +1 -1
- package/build/esm/shared/useExitAnimation.js +1 -0
- package/build/esm/web-tokens/layout-vars.d.ts +7 -0
- package/build/esm/web-tokens/layout-vars.js +1 -1
- package/build/esm/web-tokens/layout-vars.ts +7 -0
- package/build/esm/web-tokens/visualConfig.d.ts +40 -0
- package/build/esm/web-tokens/visualConfig.js +1 -1
- package/build/scss/_layout.scss +14 -0
- package/build/scss/_variables.scss +20 -1
- package/package.json +16 -13
- package/build/cjs/components/Internal/Drawer/useExitAnimation.js +0 -1
- package/build/cjs/shared/isWithinScrolledElement.d.ts +0 -1
- package/build/cjs/shared/isWithinScrolledElement.js +0 -1
- package/build/cjs/shared/useDragDown.d.ts +0 -14
- package/build/cjs/shared/useDragDown.js +0 -1
- package/build/esm/components/Internal/Drawer/useExitAnimation.js +0 -1
- package/build/esm/shared/isWithinScrolledElement.d.ts +0 -1
- package/build/esm/shared/isWithinScrolledElement.js +0 -1
- package/build/esm/shared/useDragDown.d.ts +0 -14
- package/build/esm/shared/useDragDown.js +0 -1
- /package/build/cjs/{components/Internal/Drawer → shared}/useExitAnimation.d.ts +0 -0
- /package/build/esm/{components/Internal/Drawer → shared}/useExitAnimation.d.ts +0 -0
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import type { ReactElement, ReactNode } from "react";
|
|
2
2
|
import type { MQ } from "../../types";
|
|
3
3
|
import type { DataTableColumn, DataTableColumnOrGroup, DataTableRow, DataTableRowProps, DataTableSlotProps } from "./types";
|
|
4
|
+
import { defaultSortCompareFn } from "./useDataTableSort";
|
|
4
5
|
import { DataTableToolbar } from "./DataTableToolbar/DataTableToolbar";
|
|
5
6
|
type DataTablePropsBase = {
|
|
6
7
|
/** Screen reader text for table caption */
|
|
@@ -143,7 +144,7 @@ export type DataTableProps = DataTablePropsBase & (DataTableSelectableProps | Da
|
|
|
143
144
|
export declare function BaseDataTable({ caption, columns, rows, footer, currentlySortedByColumn, isFirstColumnSticky, isLastColumnSticky, "data-e2e-test-id": dataE2eTestId, isLoading, loadingStateScreenReaderText, isEmpty, slotProps, children, emptyTableContentHeight, layout, width, bodyCellVerticalPadding, emptyCellContent, maxHeight, isSelectable, selectedRowIds, allRowsSelected, selectAllRowsCheckboxAriaLabel, getRowProps, onRowSelectionChange, onAllRowsSelectionChange, isExpandable, expandedRowIds: expandedRowIdsProp, onRowExpansionChange, expandRowAriaLabel, collapseRowAriaLabel, onSort, ...ariaAttributes }: DataTableProps): ReactElement;
|
|
144
145
|
export declare function DataTable({ children, ...rest }: DataTableProps): ReactElement;
|
|
145
146
|
export declare namespace DataTable {
|
|
146
|
-
|
|
147
|
-
|
|
147
|
+
export { defaultSortCompareFn as sortCompareFn };
|
|
148
|
+
export { DataTableToolbar as Toolbar };
|
|
148
149
|
}
|
|
149
150
|
export {};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import styled from"@emotion/styled";import React,{useCallback,useEffect,useRef,useState}from"react";import{useResponsiveValue}from"../../shared/mediaQueries";import{Container}from"../Container/Container";import{ScreenReaderText}from"../Utilities/ScreenReaderText/ScreenReaderText";import{buildColumnSegments}from"./internal/buildColumnSegments";import{buildInternalColumns}from"./internal/buildInternalColumns";import TableHeader from"./header/TableHeader";import TableBody from"./TableBody";import TableColumnGroups from"./TableColumnGroups";import{useDataTableScrollContainerWidth}from"./useDataTableScrollContainer";import{defaultSortCompareFn}from"./useDataTableSort";import{DataTableToolbar}from"./DataTableToolbar/DataTableToolbar";function getTableScrolledToRight(elm){let elmRect=elm.getBoundingClientRect();return elm.scrollLeft+elmRect.width>=elm.scrollWidth}let TableContainer=styled("div",{target:"
|
|
1
|
+
import styled from"@emotion/styled";import React,{useCallback,useEffect,useRef,useState}from"react";import{useResponsiveValue}from"../../shared/mediaQueries";import{Container}from"../Container/Container";import{ScreenReaderText}from"../Utilities/ScreenReaderText/ScreenReaderText";import{buildColumnSegments}from"./internal/buildColumnSegments";import{buildInternalColumns}from"./internal/buildInternalColumns";import TableHeader from"./header/TableHeader";import TableBody from"./TableBody";import TableColumnGroups from"./TableColumnGroups";import{useDataTableScrollContainerWidth}from"./useDataTableScrollContainer";import{defaultSortCompareFn}from"./useDataTableSort";import{DataTableToolbar}from"./DataTableToolbar/DataTableToolbar";function getTableScrolledToRight(elm){let elmRect=elm.getBoundingClientRect();return elm.scrollLeft+elmRect.width>=elm.scrollWidth}let TableContainer=styled("div",{target:"e17u2o1w0",label:"TableContainer"})(({theme,footer,maxHeight})=>({position:"relative",zIndex:0,overflow:"auto",backgroundColor:theme.values.color.background.primary.default,borderRadius:"inherit",...useResponsiveValue({maxHeight}),...footer&&{borderBottomLeftRadius:0,borderBottomRightRadius:0}})),StyledTable=styled("table",{target:"e17u2o1w1",label:"StyledTable"})(({layout,tableWidth})=>({borderSpacing:0,tableLayout:layout,...useResponsiveValue({width:tableWidth})})),StyledFooter=styled("div",{target:"e17u2o1w2",label:"StyledFooter"})(({theme})=>({padding:theme.variables.size.spacing.xs,backgroundColor:theme.values.color.background.primary.default,borderBottomLeftRadius:"inherit",borderBottomRightRadius:"inherit"})),NO_SELECTED_ROW_IDS=[];export function BaseDataTable({caption,columns,rows=[],footer,currentlySortedByColumn,isFirstColumnSticky=!0,isLastColumnSticky=!1,"data-e2e-test-id":dataE2eTestId,isLoading=!1,loadingStateScreenReaderText="Loading",isEmpty=!1,slotProps,children,emptyTableContentHeight="15rem",layout="auto",width="100%",bodyCellVerticalPadding="m",emptyCellContent="--",maxHeight,isSelectable,selectedRowIds=NO_SELECTED_ROW_IDS,allRowsSelected,selectAllRowsCheckboxAriaLabel,getRowProps=()=>({}),onRowSelectionChange,onAllRowsSelectionChange,isExpandable,expandedRowIds:expandedRowIdsProp,onRowExpansionChange,expandRowAriaLabel,collapseRowAriaLabel,onSort,...ariaAttributes}){let[isScrolledToRight,setIsScrolledToRight]=useState(isLastColumnSticky),[isScrolledToLeft,setIsScrolledToLeft]=useState(isFirstColumnSticky),[uncontrolledExpandedRowIds,setUncontrolledExpandedRowIds]=useState([]),tableRef=useRef(null),containerRef=useRef(null),containerWidth=useDataTableScrollContainerWidth(containerRef),isExpandedControlled=void 0!==expandedRowIdsProp,expandedRowIds=isExpandedControlled?expandedRowIdsProp:uncontrolledExpandedRowIds,activeSelectedRowIds=isSelectable?selectedRowIds:NO_SELECTED_ROW_IDS,internalColumns=buildInternalColumns({columns,features:{selectable:isSelectable,expandable:isExpandable}}),columnSegments=buildColumnSegments(internalColumns),hasColumnGroups=columnSegments.some(({group})=>group),handleRowExpansionChange=useCallback(nextExpandedRowIds=>{isExpandedControlled||setUncontrolledExpandedRowIds(nextExpandedRowIds),onRowExpansionChange?.(nextExpandedRowIds)},[isExpandedControlled,onRowExpansionChange]),handleScroll=useCallback(evt=>{let elm=evt.currentTarget;setIsScrolledToLeft(0===elm.scrollLeft),setIsScrolledToRight(getTableScrolledToRight(elm))},[]);useEffect(()=>{if("undefined"==typeof ResizeObserver||!containerRef.current)return;let elm=containerRef.current,observer=new ResizeObserver(()=>{setIsScrolledToLeft(0===elm.scrollLeft),setIsScrolledToRight(getTableScrolledToRight(elm))});return observer.observe(elm),()=>observer.disconnect()},[]);let footerElm=footer?React.createElement(StyledFooter,null,footer):null;return React.createElement(React.Fragment,null,React.createElement(TableContainer,{ref:containerRef,footer:footer,maxHeight:maxHeight,onScroll:handleScroll},React.createElement(StyledTable,{"data-e2e-test-id":dataE2eTestId,"data-ds-id":"DataTable",ref:tableRef,layout:layout,tableWidth:width,"aria-busy":isLoading||void 0,...ariaAttributes},React.createElement(ScreenReaderText,{as:"caption"},caption),hasColumnGroups&&React.createElement(TableColumnGroups,{segments:columnSegments}),React.createElement(TableHeader,{columns:internalColumns,isFirstColumnSticky:isFirstColumnSticky,isLastColumnSticky:isLastColumnSticky,currentlySortedByColumn:currentlySortedByColumn,isTableScrolledToLeft:isScrolledToLeft,isTableScrolledToRight:isScrolledToRight,maxHeight:maxHeight,allRowsSelected:allRowsSelected,selectedRowIds:activeSelectedRowIds,onAllRowsSelectionChange:onAllRowsSelectionChange,selectAllRowsCheckboxAriaLabel:selectAllRowsCheckboxAriaLabel,onSort:onSort}),React.createElement(TableBody,{columns:internalColumns,rows:rows,bodyCellVerticalPadding:bodyCellVerticalPadding,isTableScrolledToLeft:isScrolledToLeft,isTableScrolledToRight:isScrolledToRight,isEmpty:isEmpty,emptyState:slotProps?.emptyState,isLoading:isLoading,loadingStateScreenReaderText:loadingStateScreenReaderText,emptyTableContentHeight:emptyTableContentHeight,containerWidth:containerWidth,footer:footer,isFirstColumnSticky:isFirstColumnSticky,isLastColumnSticky:isLastColumnSticky,emptyCellContent:emptyCellContent,selectedRowIds:activeSelectedRowIds,onRowSelectionChange:onRowSelectionChange,getRowProps:getRowProps,expandedRowIds:expandedRowIds,isTableExpandable:isExpandable,expandRowAriaLabel:expandRowAriaLabel,collapseRowAriaLabel:collapseRowAriaLabel,onRowExpansionChange:handleRowExpansionChange},children))),footerElm)}export function DataTable({children,...rest}){return React.createElement(Container,{elevation:1},React.createElement(BaseDataTable,rest,children))}DataTable.sortCompareFn=defaultSortCompareFn,DataTable.Toolbar=DataTableToolbar;
|
|
@@ -17,5 +17,5 @@ declare const TableCell: import("@emotion/styled").StyledComponent<{
|
|
|
17
17
|
isTableScrolledToLeft: boolean;
|
|
18
18
|
isTableScrolledToRight: boolean;
|
|
19
19
|
sticky?: "left" | "right" | false;
|
|
20
|
-
} & Pick<DataTableRowProps, "isActive">,
|
|
20
|
+
} & Pick<DataTableRowProps, "isActive">, import("react").DetailedHTMLProps<import("react").TdHTMLAttributes<HTMLTableDataCellElement>, HTMLTableDataCellElement>, {}>;
|
|
21
21
|
export default TableCell;
|
|
@@ -10,14 +10,14 @@ type StyledTrProps = {
|
|
|
10
10
|
export declare const StyledTr: import("@emotion/styled").StyledComponent<{
|
|
11
11
|
theme?: import("@emotion/react").Theme;
|
|
12
12
|
as?: React.ElementType;
|
|
13
|
-
} & StyledTrProps,
|
|
13
|
+
} & StyledTrProps, import("react").DetailedHTMLProps<import("react").HTMLAttributes<HTMLTableRowElement>, HTMLTableRowElement>, {}>;
|
|
14
14
|
type StyledTextProps = {
|
|
15
15
|
alignColumn?: DataTableColumn["align"];
|
|
16
16
|
};
|
|
17
17
|
export declare const StyledText: import("@emotion/styled").StyledComponent<Omit<{
|
|
18
18
|
theme?: import("@emotion/react").Theme;
|
|
19
19
|
as?: React.ElementType;
|
|
20
|
-
} & import("../../Typography/Text/Text").BaseTextProps &
|
|
20
|
+
} & import("../../Typography/Text/Text").BaseTextProps & import("react").ClassAttributes<HTMLParagraphElement> & import("react").HTMLAttributes<HTMLParagraphElement>, "ref"> & import("react").RefAttributes<HTMLParagraphElement> & {
|
|
21
21
|
theme?: import("@emotion/react").Theme;
|
|
22
22
|
} & StyledTextProps, {}, {}>;
|
|
23
23
|
export declare const StyledTd: import("@emotion/styled").StyledComponent<{
|
|
@@ -30,7 +30,7 @@ export declare const StyledTd: import("@emotion/styled").StyledComponent<{
|
|
|
30
30
|
isTableScrolledToLeft: boolean;
|
|
31
31
|
isTableScrolledToRight: boolean;
|
|
32
32
|
sticky?: "left" | "right" | false;
|
|
33
|
-
} & Pick<import("../types").DataTableRowProps, "isActive"> &
|
|
33
|
+
} & Pick<import("../types").DataTableRowProps, "isActive"> & import("react").ClassAttributes<HTMLTableDataCellElement> & import("react").TdHTMLAttributes<HTMLTableDataCellElement> & {
|
|
34
34
|
theme?: import("@emotion/react").Theme;
|
|
35
35
|
} & {
|
|
36
36
|
bodyCellVerticalPadding?: DataTableProps["bodyCellVerticalPadding"];
|
|
@@ -3,38 +3,38 @@ import type { EntityListItemProps, EntityListItemWrapperProps } from "./types";
|
|
|
3
3
|
import type { ListSize } from "../../types";
|
|
4
4
|
export declare const getOffsetMqStyle: (cssProp: string, { theme, size, }: {
|
|
5
5
|
theme: Theme;
|
|
6
|
-
} & Partial<EntityListItemWrapperProps>) => Record<string,
|
|
6
|
+
} & Partial<EntityListItemWrapperProps>) => Record<string, {
|
|
7
7
|
[x: string]: string | number;
|
|
8
|
-
}>;
|
|
8
|
+
} | (string | number)>;
|
|
9
9
|
export declare const StyledList: import("@emotion/styled").StyledComponent<{
|
|
10
10
|
theme?: Theme;
|
|
11
11
|
as?: React.ElementType;
|
|
12
12
|
} & {
|
|
13
13
|
size: ListSize;
|
|
14
|
-
},
|
|
14
|
+
}, import("react").DetailedHTMLProps<import("react").HTMLAttributes<HTMLDivElement>, HTMLDivElement>, {}>;
|
|
15
15
|
export declare const StyledEntityItem: import("@emotion/styled").StyledComponent<{
|
|
16
16
|
theme?: Theme;
|
|
17
17
|
as?: React.ElementType;
|
|
18
|
-
},
|
|
18
|
+
}, import("react").DetailedHTMLProps<import("react").HTMLAttributes<HTMLDivElement>, HTMLDivElement>, {}>;
|
|
19
19
|
export declare const StyledShowMore: import("@emotion/styled").StyledComponent<{
|
|
20
20
|
theme?: Theme;
|
|
21
21
|
as?: React.ElementType;
|
|
22
|
-
},
|
|
22
|
+
}, import("react").DetailedHTMLProps<import("react").HTMLAttributes<HTMLDivElement>, HTMLDivElement>, {}>;
|
|
23
23
|
export declare const StyledWrapperOffset: import("@emotion/styled").StyledComponent<{
|
|
24
24
|
theme?: Theme;
|
|
25
25
|
as?: React.ElementType;
|
|
26
26
|
} & {
|
|
27
27
|
size: ListSize;
|
|
28
|
-
},
|
|
28
|
+
}, import("react").DetailedHTMLProps<import("react").HTMLAttributes<HTMLDivElement>, HTMLDivElement>, {}>;
|
|
29
29
|
export declare const StyledEntityListItemWrapper: import("@emotion/styled").StyledComponent<{
|
|
30
30
|
theme?: Theme;
|
|
31
31
|
as?: React.ElementType;
|
|
32
32
|
} & {
|
|
33
33
|
size: ListSize;
|
|
34
|
-
} &
|
|
34
|
+
} & import("react").ClassAttributes<HTMLDivElement> & import("react").HTMLAttributes<HTMLDivElement> & {
|
|
35
35
|
theme?: Theme;
|
|
36
36
|
} & EntityListItemWrapperProps, {}, {}>;
|
|
37
37
|
export declare const StyledEntityListItemButton: import("@emotion/styled").StyledComponent<{
|
|
38
38
|
theme?: Theme;
|
|
39
39
|
as?: React.ElementType;
|
|
40
|
-
} & Partial<EntityListItemProps>,
|
|
40
|
+
} & Partial<EntityListItemProps>, import("react").DetailedHTMLProps<import("react").HTMLAttributes<HTMLDivElement>, HTMLDivElement>, {}>;
|
|
@@ -35,11 +35,11 @@ export declare const CheckboxRaw: React.ForwardRefExoticComponent<{
|
|
|
35
35
|
label?: string | React.ReactElement;
|
|
36
36
|
indeterminate?: boolean;
|
|
37
37
|
size?: CheckboxSizes;
|
|
38
|
-
} & Omit<FormFieldProps, "
|
|
38
|
+
} & Omit<FormFieldProps, "hideLabel" | "label"> & Omit<InputHTMLAttributes<HTMLInputElement>, "size" | "type"> & {
|
|
39
39
|
labelSize?: CheckboxSizes;
|
|
40
40
|
} & React.RefAttributes<HTMLInputElement>>;
|
|
41
41
|
export declare const Checkbox: React.ForwardRefExoticComponent<{
|
|
42
42
|
label?: string | React.ReactElement;
|
|
43
43
|
indeterminate?: boolean;
|
|
44
44
|
size?: CheckboxSizes;
|
|
45
|
-
} & Omit<FormFieldProps, "
|
|
45
|
+
} & Omit<FormFieldProps, "hideLabel" | "label"> & Omit<InputHTMLAttributes<HTMLInputElement>, "size" | "type"> & React.RefAttributes<HTMLInputElement>>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import React,{useState,useRef,useMemo,useEffect,useCallback}from"react";import styled from"@emotion/styled";import{useKeyboard}from"../../../shared/useKeyboard";import{InputRaw}from"../Input/Input";import{StyledContainer}from"./StyledSelectComponents";import{getOptionId,getOptionsListId,OptionsList}from"./OptionsList";let StyledInnerInputContainer=styled("div",{target:"
|
|
1
|
+
import React,{useState,useRef,useMemo,useEffect,useCallback}from"react";import styled from"@emotion/styled";import{useKeyboard}from"../../../shared/useKeyboard";import{InputRaw}from"../Input/Input";import{StyledContainer}from"./StyledSelectComponents";import{getOptionId,getOptionsListId,OptionsList}from"./OptionsList";let StyledInnerInputContainer=styled("div",{target:"e1jb8j290",label:"StyledInnerInputContainer"})({position:"relative",zIndex:1}),StyledInputWrap=styled("div",{target:"e1jb8j291",label:"StyledInputWrap"})(()=>({position:"absolute",pointerEvents:"none",width:"100%",bottom:0,left:0})),HiddenSelectInput=styled("select",{target:"e1jb8j292",label:"HiddenSelectInput"})(()=>({display:"none"}));export const SingleSelect=({options,name,value,placeholder,emptyStateMessage,hasError,filterMethod,onChange=()=>{},onBlur,onFocus,maxHeight,autoComplete,disabled,label,optionsListWidth,portalContainer,readOnly,"aria-describedby":ariaDescribedBy,privateProps,...ariaAttributes})=>{let[isOpen,setIsOpen]=useState(!1),[innerValue,setInnerValue]=useState(""),[preselectedIndex,setPreselectedIndex]=useState(-1),initialValueOption=useMemo(()=>options.find(option=>option.value===value)||{value:"",label:""},[options,value]),[fakeSelectedOption,setFakeSelectedOption]=useState(initialValueOption),fakeSelectRef=useRef(null),innerInputRef=useRef(null),currentValueRef=useRef(value);currentValueRef.current=value;let forceChangeFakeSelect=useCallback(selectedOption=>{fakeSelectedOption.value!==selectedOption.value&&setFakeSelectedOption(selectedOption)},[fakeSelectedOption]),handleOpenDropdown=useCallback(()=>{readOnly||setIsOpen(!0)},[readOnly,setIsOpen]),closeDropdown=useCallback((noSelect=!1)=>{if(setIsOpen(!1),!noSelect){let selectedOption=options.find(option=>option.label.toLowerCase().trim()===innerValue.toLowerCase().trim());selectedOption&&forceChangeFakeSelect(selectedOption)}setInnerValue(""),setPreselectedIndex(-1),onBlur?.()},[onBlur,forceChangeFakeSelect,innerValue,options]);useEffect(()=>{fakeSelectRef.current&¤tValueRef.current!==fakeSelectedOption.value&&fakeSelectRef.current.dispatchEvent(new Event("change",{bubbles:!0}))},[fakeSelectedOption,fakeSelectRef,currentValueRef]),useEffect(()=>{forceChangeFakeSelect(initialValueOption)},[initialValueOption]);let filteredOptions=useMemo(()=>innerValue?options.filter(option=>filterMethod(option,innerValue)):options,[options,filterMethod,innerValue]),displayValue=useMemo(()=>options.find(option=>option.value===value)?.label??"",[value,options]);useEffect(()=>{setPreselectedIndex(-1)},[filteredOptions]),useKeyboard({"ArrowUp ArrowDown":()=>{handleOpenDropdown()}},innerInputRef,!isOpen&&!disabled&&!readOnly);let optionsListId=getOptionsListId(name),pendingOption=filteredOptions[preselectedIndex]??null,ariaActiveDescendant=isOpen&&pendingOption?getOptionId(name,pendingOption.value):"";return React.createElement(StyledContainer,{onBlur:()=>{isOpen&&pendingOption&&!pendingOption.disabled&&forceChangeFakeSelect(pendingOption),closeDropdown(!0)}},React.createElement(StyledInnerInputContainer,null,React.createElement(InputRaw,{name:`${name}-innerInput`,value:innerValue,hasError:hasError,privateProps:{isTransparent:!(isOpen&&innerValue)||readOnly},icon:isOpen?"chevron-up":"chevron-down",disabled:disabled,readOnly:readOnly,onFocus:onFocus,onClick:handleOpenDropdown,onChange:e=>{e.currentTarget.value&&handleOpenDropdown(),setInnerValue(e.currentTarget.value)},ref:innerInputRef,autoComplete:autoComplete,...ariaAttributes,"aria-label":label,role:"combobox","aria-haspopup":"listbox","aria-activedescendant":ariaActiveDescendant,"aria-controls":isOpen?optionsListId:"","aria-expanded":isOpen,"aria-describedby":ariaDescribedBy})),React.createElement(StyledInputWrap,null,React.createElement(InputRaw,{"aria-hidden":!0,name:name,value:displayValue,onChange:()=>null,icon:isOpen?"chevron-up":"chevron-down",placeholder:placeholder,tabIndex:-1,hasError:hasError,autoComplete:"off",readOnly:readOnly})),React.createElement(OptionsList,{name:name,isOpen:isOpen,options:filteredOptions,triggerRef:innerInputRef,onCloseDropdown:closeDropdown,portalContainer:portalContainer,selectedIndex:preselectedIndex,onSelectedIndexChange:index=>{setPreselectedIndex(index)},forceChangeFakeSelect:forceChangeFakeSelect,value:value,emptyStateMessage:emptyStateMessage,disabled:disabled,maxHeight:maxHeight,optionsListWidth:optionsListWidth}),React.createElement(HiddenSelectInput,{onChange:onChange,value:fakeSelectedOption.value,ref:fakeSelectRef,autoComplete:"off"},React.createElement("option",{value:fakeSelectedOption.value},fakeSelectedOption.label)))};
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
export declare const StyledContainer: import("@emotion/styled").StyledComponent<{
|
|
2
2
|
theme?: import("@emotion/react").Theme;
|
|
3
3
|
as?: React.ElementType;
|
|
4
|
-
},
|
|
4
|
+
}, import("react").DetailedHTMLProps<import("react").HTMLAttributes<HTMLDivElement>, HTMLDivElement>, {}>;
|
|
5
5
|
type StyledOptionProps = {
|
|
6
6
|
active: boolean;
|
|
7
7
|
preSelected: boolean;
|
|
@@ -10,13 +10,13 @@ type StyledOptionProps = {
|
|
|
10
10
|
export declare const StyledOption: import("@emotion/styled").StyledComponent<{
|
|
11
11
|
theme?: import("@emotion/react").Theme;
|
|
12
12
|
as?: React.ElementType;
|
|
13
|
-
} & StyledOptionProps,
|
|
13
|
+
} & StyledOptionProps, import("react").DetailedHTMLProps<import("react").HTMLAttributes<HTMLDivElement>, HTMLDivElement>, {}>;
|
|
14
14
|
export declare const StyledFakeInputWrap: import("@emotion/styled").StyledComponent<{
|
|
15
15
|
theme?: import("@emotion/react").Theme;
|
|
16
16
|
as?: React.ElementType;
|
|
17
|
-
},
|
|
17
|
+
}, import("react").DetailedHTMLProps<import("react").HTMLAttributes<HTMLDivElement>, HTMLDivElement>, {}>;
|
|
18
18
|
export declare const StyledDropdown: import("@emotion/styled").StyledComponent<{
|
|
19
19
|
theme?: import("@emotion/react").Theme;
|
|
20
20
|
as?: React.ElementType;
|
|
21
|
-
},
|
|
21
|
+
}, import("react").DetailedHTMLProps<import("react").HTMLAttributes<HTMLDivElement>, HTMLDivElement>, {}>;
|
|
22
22
|
export {};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import styled from"@emotion/styled";import{usePortalChildZIndex}from"../../Portal/Portal";export const StyledContainer=styled("div",{target:"
|
|
1
|
+
import styled from"@emotion/styled";import{usePortalChildZIndex}from"../../Portal/Portal";export const StyledContainer=styled("div",{target:"ewra0900",label:"StyledContainer"})(()=>({position:"relative",zIndex:0}));export const StyledOption=styled("div",{target:"ewra0901",label:"StyledOption"})(({theme,active,preSelected,disabled})=>{let hoverStyles={backgroundColor:theme.values.color.background.secondary.hover,borderRadius:0};return{padding:`${theme.variables.size.spacing.xs} ${theme.variables.size.spacing.s}`,cursor:"pointer",borderRadius:theme.variables.size.borderRadius.xs,...active&&{backgroundColor:theme.values.color.background.secondary.active,borderRadius:0},...disabled&&{cursor:"not-allowed",opacity:theme.variables.opacity.disabled},...!disabled&&{"&:hover":hoverStyles},...preSelected&&hoverStyles}});export const StyledFakeInputWrap=styled("div",{target:"ewra0902",label:"StyledFakeInputWrap"})(()=>({zIndex:0,position:"absolute",pointerEvents:"none",width:"100%",bottom:0,left:0}));export const StyledDropdown=styled("div",{target:"ewra0903",label:"StyledDropdown"})(({theme})=>{let zIndex=usePortalChildZIndex(theme.variables.zIndex.dropdown);return{backgroundColor:theme.values.color.background.primary.default,position:"absolute",zIndex,borderRadius:theme.variables.size.borderRadius.xs,overflow:"hidden",boxShadow:theme.values.elevation[2],boxSizing:"border-box"}});
|
|
@@ -27,7 +27,7 @@ export declare const DatePicker: React.ForwardRefExoticComponent<{
|
|
|
27
27
|
formatAriaLabel: (monthName: string, year: number) => string;
|
|
28
28
|
};
|
|
29
29
|
};
|
|
30
|
-
} & import("../FormField/FormField").FormFieldProps & Omit<React.InputHTMLAttributes<HTMLInputElement>, "
|
|
30
|
+
} & import("../FormField/FormField").FormFieldProps & Omit<React.InputHTMLAttributes<HTMLInputElement>, "onChange" | "type" | "value"> & {
|
|
31
31
|
value?: string;
|
|
32
32
|
hasError?: boolean;
|
|
33
33
|
} & React.RefAttributes<HTMLInputElement>>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import React from"react";import styled from"@emotion/styled";import{Icon}from"../../Icon/Icon";import{FormField}from"../FormField/FormField";import{Text}from"../../Typography/Text/Text";import{useFormFieldMessageId}from"../FormField/useFormFieldMessageId";import{getInputTextStyles,getInputTextPlaceholder}from"../../../shared/mixins";let StyledContainer=styled("div",{target:"
|
|
1
|
+
import React from"react";import styled from"@emotion/styled";import{Icon}from"../../Icon/Icon";import{FormField}from"../FormField/FormField";import{Text}from"../../Typography/Text/Text";import{useFormFieldMessageId}from"../FormField/useFormFieldMessageId";import{getInputTextStyles,getInputTextPlaceholder}from"../../../shared/mixins";let StyledContainer=styled("div",{target:"e1owrw4k0",label:"StyledContainer"})(()=>({width:"100%",display:"flex",alignItems:"center",flexDirection:"row",position:"relative"})),StyledIconContainer=styled("div",{target:"e1owrw4k1",label:"StyledIconContainer"})(({theme})=>({position:"absolute",right:theme.variables.size.spacing.xs})),StyledInput=styled("input",{target:"e1owrw4k2",label:"StyledInput"})(({theme,privateProps,hasError,icon,readOnly,inputSize})=>({...getInputTextStyles({theme,size:inputSize,hasError,readOnly}),...getInputTextPlaceholder({theme}),...privateProps?.isTransparent?{backgroundColor:theme.values.color.background.transparent.default,borderColor:"transparent"}:{backgroundColor:theme.values.color.background.primary.default},...privateProps?.hideOutline&&{outline:"none"},"&.error":{borderColor:theme.values.color.border.error.default},"& svg":{pointerEvents:"none"},...icon&&{paddingRight:`calc(${theme.variables.size.spacing.s} + ${theme.variables.size.dimension.icon.m})`}}));export const InputRaw=React.forwardRef(({size="m",hasError=!1,type="text",icon,autoComplete="on",privateProps={},readOnly,...rest},ref)=>React.createElement(StyledContainer,null,React.createElement(StyledInput,{...rest,type:type,inputSize:size,ref:ref,autoComplete:autoComplete,hasError:hasError,privateProps:privateProps,icon:icon,readOnly:readOnly,"aria-invalid":hasError}),icon&&React.createElement(StyledIconContainer,null,React.createElement(Text,{as:"span",color:"tertiary"},React.createElement(Icon,{name:icon,size:"m",color:readOnly?"quaternary":void 0})))));export const Input=React.forwardRef(({size="m",placeholder,hasError=!1,type="text",icon,autoComplete="on",privateProps={},readOnly,disabled,label,labelHint,hideLabel,hint,errorMessages,"aria-describedby":ariaDescribedBy,"data-e2e-test-id":dataE2eTestId,...rest},ref)=>{let{id,ariaDescribedByProp}=useFormFieldMessageId({ariaDescribedBy,errorMessages,hint});return React.createElement(FormField,{"data-ds-id":"Input",disabled:disabled,"data-e2e-test-id":dataE2eTestId,hideLabel:hideLabel,label:label,labelHint:labelHint,hint:hint,errorMessages:errorMessages,messageId:id},React.createElement(InputRaw,{...rest,ref:ref,size:size,type:type,icon:icon,placeholder:readOnly?void 0:placeholder,hasError:hasError,disabled:disabled,autoComplete:autoComplete,privateProps:privateProps,readOnly:readOnly,...ariaDescribedByProp}))});
|
|
@@ -20,4 +20,4 @@ export declare const MaskedInput: React.ForwardRefExoticComponent<{
|
|
|
20
20
|
maskOptions: FactoryArg;
|
|
21
21
|
onAccept?: (value: string, unmaskedValue: string, typedValue: string) => void;
|
|
22
22
|
onComplete?: (value: string, unmaskedValue: string, typedValue: string) => void;
|
|
23
|
-
} & Omit<InputProps, "
|
|
23
|
+
} & Omit<InputProps, "onChange" | "size" | "type"> & React.RefAttributes<HTMLInputElement>>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import React,{useState,forwardRef}from"react";import styled from"@emotion/styled";import{FormField}from"../FormField/FormField";import{useFormFieldMessageId}from"../FormField/useFormFieldMessageId";import{PasswordInputButton}from"./PasswordInputButton";let handleBorderColor=({theme,hasError,readOnly})=>hasError?theme.values.color.border.error.default:readOnly?theme.values.color.border.primary.disabled:theme.values.color.border.primary.default,StyledContainer=styled("div",{target:"
|
|
1
|
+
import React,{useState,forwardRef}from"react";import styled from"@emotion/styled";import{FormField}from"../FormField/FormField";import{useFormFieldMessageId}from"../FormField/useFormFieldMessageId";import{PasswordInputButton}from"./PasswordInputButton";let handleBorderColor=({theme,hasError,readOnly})=>hasError?theme.values.color.border.error.default:readOnly?theme.values.color.border.primary.disabled:theme.values.color.border.primary.default,StyledContainer=styled("div",{target:"expgvjt0",label:"StyledContainer"})(()=>({width:"100%",display:"flex",alignItems:"center",flexDirection:"row",position:"relative"})),StyledPasswordInput=styled("input",{target:"expgvjt1",label:"StyledPasswordInput"})(({theme,hasError=!1,readOnly=!1})=>({fontFamily:theme.variables.fontFamily.lato,fontSize:theme.variables.size.font.m,lineHeight:theme.variables.size.lineHeight.xl,borderRadius:theme.variables.size.borderRadius.xs,borderWidth:"1px",borderStyle:"solid",width:"100%",padding:`calc(${theme.variables.size.spacing.xs} - 1px) ${theme.variables.size.spacing.s}`,paddingRight:theme.variables.size.spacing.xxl,boxSizing:"border-box",color:theme.values.color.text.secondary.default,borderColor:handleBorderColor({theme,hasError,readOnly}),backgroundColor:theme.values.color.background.primary.default,"&.error":{borderColor:theme.values.color.border.error.default},"&.has-icon":{paddingRight:theme.variables.size.spacing.xs+theme.variables.size.dimension.icon.m},"&::placeholder":{fontStyle:"italic",color:theme.values.color.text.tertiary.default,opacity:theme.variables.opacity.visible},"&:-ms-input-placeholder":{fontStyle:"italic",color:theme.values.color.text.tertiary.default},"&::-ms-input-placeholder":{fontStyle:"italic",color:theme.values.color.text.tertiary.default},...hasError&&{boxShadow:`0 0 0 1px inset ${theme.values.color.border.error.default}`}}));export const PasswordInputRaw=forwardRef(({placeholder,hasError=!1,onIconClick,readOnly,disabled,slotProps:{toggleVisibility:{ariaLabelShow,ariaLabelHide}},...rest},ref)=>{let[isPasswordVisible,setIsPasswordVisible]=useState(!1);return React.createElement(StyledContainer,null,React.createElement(StyledPasswordInput,{...rest,type:isPasswordVisible?"text":"password",placeholder:readOnly?void 0:placeholder,ref:ref,hasError:hasError,readOnly:readOnly,disabled:disabled,"aria-invalid":hasError}),React.createElement(PasswordInputButton,{hasError:hasError,disabled:disabled,onIconClick:onIconClick,isPasswordVisible:isPasswordVisible,readOnly:readOnly,ariaLabel:isPasswordVisible?ariaLabelHide:ariaLabelShow,onToggle:()=>setIsPasswordVisible(prev=>!prev)}))});export const PasswordInput=React.forwardRef(({placeholder="••••••••",hasError=!1,onIconClick,autoComplete="on",slotProps,disabled,label,labelHint,hideLabel,hint,errorMessages,"aria-describedby":ariaDescribedBy,"data-e2e-test-id":dataE2eTestId,...rest},ref)=>{let{id,ariaDescribedByProp}=useFormFieldMessageId({ariaDescribedBy,errorMessages,hint});return React.createElement(FormField,{"data-e2e-test-id":dataE2eTestId,"data-ds-id":"PasswordInput",disabled:disabled,label:label,labelHint:labelHint,hideLabel:hideLabel,hint:hint,errorMessages:errorMessages,messageId:id},React.createElement(PasswordInputRaw,{...rest,ref:ref,placeholder:placeholder,hasError:hasError,disabled:disabled,onIconClick:onIconClick,autoComplete:autoComplete,slotProps:slotProps,...ariaDescribedByProp}))});
|
|
@@ -18,7 +18,7 @@ export declare const RadioRaw: React.ForwardRefExoticComponent<{
|
|
|
18
18
|
/** Display hint below the label specific for the radio */
|
|
19
19
|
labelHint?: string | React.ReactElement;
|
|
20
20
|
size?: RadioSizes;
|
|
21
|
-
} & Omit<FormFieldProps, "
|
|
21
|
+
} & Omit<FormFieldProps, "hideLabel" | "label" | "labelHint"> & Omit<InputHTMLAttributes<HTMLInputElement>, "size" | "type"> & {
|
|
22
22
|
labelSize?: RadioSizes;
|
|
23
23
|
} & React.RefAttributes<HTMLInputElement>>;
|
|
24
24
|
export declare const Radio: React.ForwardRefExoticComponent<{
|
|
@@ -26,5 +26,5 @@ export declare const Radio: React.ForwardRefExoticComponent<{
|
|
|
26
26
|
/** Display hint below the label specific for the radio */
|
|
27
27
|
labelHint?: string | React.ReactElement;
|
|
28
28
|
size?: RadioSizes;
|
|
29
|
-
} & Omit<FormFieldProps, "
|
|
29
|
+
} & Omit<FormFieldProps, "hideLabel" | "label" | "labelHint"> & Omit<InputHTMLAttributes<HTMLInputElement>, "size" | "type"> & React.RefAttributes<HTMLInputElement>>;
|
|
30
30
|
export {};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import React from"react";import styled from"@emotion/styled";import{FormField}from"../FormField/FormField";import{Icon}from"../../Icon/Icon";import{Inline}from"../../Inline/Inline";let StyledContainer=styled("div",{target:"
|
|
1
|
+
import React from"react";import styled from"@emotion/styled";import{FormField}from"../FormField/FormField";import{Icon}from"../../Icon/Icon";import{Inline}from"../../Inline/Inline";let StyledContainer=styled("div",{target:"erfbmk0",label:"StyledContainer"})(()=>({userSelect:"none",display:"block",position:"relative",width:"100%",boxSizing:"border-box"})),StyledRealInput=styled("input",{target:"erfbmk1",label:"StyledRealInput"})(({theme})=>({opacity:theme.variables.opacity.hidden,cursor:"pointer",height:0,width:0,position:"absolute"})),StyledFakeInput=styled("div",{target:"erfbmk2",label:"StyledFakeInput"})(({theme})=>({cursor:"pointer",textTransform:"none",textDecoration:"none",borderRadius:theme.variables.size.borderRadius.xs,fontFamily:theme.variables.fontFamily.lato,fontSize:theme.variables.size.font.s,fontWeight:theme.variables.weight.bold,lineHeight:theme.variables.size.lineHeight.xs,padding:`${theme.variables.size.spacing.s} ${theme.variables.size.spacing.l}`,"input: focus-visible + &":{outlineWidth:"2px",outlineStyle:"solid",outlineColor:"Highlight"},"@media (-webkit-min-device-pixel-ratio:0)":{"input: focus-visible + &":{outlineColor:"-webkit-focus-ring-color",outlineStyle:"auto"}},"input:not(:checked) + &":{border:`1px solid ${theme.values.color.border.secondary.default}`,backgroundColor:theme.values.color.background.primary.default,color:theme.values.color.text.secondary.default,"&:hover":{backgroundColor:theme.values.color.background.secondary.default}},"input:checked + & ":{border:`1px solid ${theme.values.color.border.accent.default}`,backgroundColor:theme.values.color.background.accentSubtle.default,color:theme.values.color.text.accent.default}}));export function RadioButton({name,value="",checked,label="",icon,disabled=!1,onChange,onClick,onBlur,onFocus,...rest}){return React.createElement(FormField,{"data-ds-id":"RadioButton",...rest,disabled:disabled},React.createElement(StyledContainer,null,React.createElement(StyledRealInput,{type:"radio",name:name,value:value,checked:checked,disabled:disabled,onChange:onChange,onClick:onClick,onBlur:onBlur,onFocus:onFocus}),React.createElement(StyledFakeInput,null,React.createElement(Inline,{vAlignItems:"center",alignItems:"spaceBetween",noWrap:!0},label,icon&&React.createElement(Icon,{name:icon})))))}
|
|
@@ -9,4 +9,4 @@ export declare const RangeInput: React.ForwardRefExoticComponent<{
|
|
|
9
9
|
/** The step size for each change in the range input's value. */
|
|
10
10
|
hasError?: boolean;
|
|
11
11
|
onSlideStart?: (e: React.FormEvent<HTMLInputElement>) => void;
|
|
12
|
-
} & FormFieldProps & Omit<
|
|
12
|
+
} & FormFieldProps & Omit<InputHTMLAttributes<HTMLInputElement>, "type"> & React.RefAttributes<HTMLInputElement>>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import React,{useRef}from"react";import styled from"@emotion/styled";import breakpoints from"../../../web-tokens/_breakpoints.json";import{Text}from"../../Typography/Text/Text";import{Icon}from"../../Icon/Icon";import{ScreenReaderText}from"../../Utilities/ScreenReaderText/ScreenReaderText";import{Tooltip}from"../../Tooltip/Tooltip";import{Inline}from"../../Inline/Inline";import{getPressedStyles}from"../../../shared/mixins";let StyledInput=styled("input",{target:"
|
|
1
|
+
import React,{useRef}from"react";import styled from"@emotion/styled";import breakpoints from"../../../web-tokens/_breakpoints.json";import{Text}from"../../Typography/Text/Text";import{Icon}from"../../Icon/Icon";import{ScreenReaderText}from"../../Utilities/ScreenReaderText/ScreenReaderText";import{Tooltip}from"../../Tooltip/Tooltip";import{Inline}from"../../Inline/Inline";import{getPressedStyles}from"../../../shared/mixins";let StyledInput=styled("input",{target:"enpc8r20",label:"StyledInput"})(({theme})=>({position:"absolute",height:1,width:1,margin:-1,overflow:"hidden",padding:0,opacity:theme.variables.opacity.hidden})),StyledLabel=styled(Text,{target:"enpc8r21",label:"StyledLabel"})(({theme,size})=>({..."s"===size&&{lineHeight:theme.variables.size.lineHeight.xs}})),StyledSublabel=styled(Text,{target:"enpc8r22",label:"StyledSublabel"})(({theme,isResponsive})=>{let baseStyle={textAlign:"center"};return isResponsive?{...baseStyle,[`@media (max-width: ${breakpoints.m.value}px)`]:{lineHeight:theme.variables.size.lineHeight.xs,textAlign:"right",marginLeft:theme.variables.size.spacing.m}}:baseStyle}),StyledIconContainer=styled("div",{target:"enpc8r23",label:"StyledIconContainer"})(),StyledContainer=styled("label",{target:"enpc8r24",label:"StyledContainer"})(({theme,size,checked,isResponsive,sublabel,iconOnly,displayAsOptionWithSublabel,disabled})=>{let borderStyle={"&:first-of-type":{borderTopLeftRadius:theme.variables.size.borderRadius.xs,borderBottomLeftRadius:theme.variables.size.borderRadius.xs,borderLeftStyle:"solid"},"&:last-of-type":{borderTopRightRadius:theme.variables.size.borderRadius.xs,borderBottomRightRadius:theme.variables.size.borderRadius.xs,borderRightStyle:"solid"}},basePaddingSize="s"===size?theme.variables.size.spacing.xs:theme.variables.size.spacing.s,basePadding=`calc(${basePaddingSize} - 1px)`,baseStyle={position:"relative",cursor:"pointer",backgroundColor:theme.values.color.background.primary.default,display:"flex",flexDirection:"column",justifyContent:"center",alignItems:"center",border:`1px solid ${theme.values.color.border.secondary.default}`,borderLeftStyle:"none",borderRightStyle:"none",padding:(()=>{if(iconOnly)return"l"===size?`calc(${theme.variables.size.spacing.m} - 1px)`:basePadding;let horizontalPadding="s"===size?theme.variables.size.spacing.m:theme.variables.size.spacing.l;return`${basePadding} ${horizontalPadding}`})(),...!checked&&!disabled&&{"&:hover":{backgroundColor:theme.values.color.background.secondary.default}},...disabled&&{cursor:"not-allowed",opacity:theme.variables.opacity.disabled},...checked&&getPressedStyles({theme}),[`${StyledSublabel}, ${StyledLabel}, ${StyledIconContainer}`]:{color:theme.values.color.text.secondary.default,...checked&&{color:theme.values.color.text.accent.default}},[`&:has(${StyledInput}:focus-visible)`]:{outlineWidth:2,outlineStyle:"solid",outlineColor:"Highlight",outlineOffset:-1,"@media (-webkit-min-device-pixel-ratio:0)":{outlineColor:"-webkit-focus-ring-color",outlineStyle:"solid"}}};return isResponsive?{...baseStyle,[`@media (min-width: ${breakpoints.m.value}px)`]:{...borderStyle},[`@media (max-width: ${breakpoints.m.value}px)`]:{flexDirection:"row",justifyContent:sublabel||displayAsOptionWithSublabel?"space-between":"center",padding:theme.variables.size.spacing.m,borderTopStyle:"none",borderBottomStyle:"none",borderLeftStyle:"solid",borderRightStyle:"solid","&:first-of-type":{borderTopLeftRadius:theme.variables.size.borderRadius.xs,borderTopRightRadius:theme.variables.size.borderRadius.xs,borderTopStyle:"solid"},"&:last-of-type":{borderBottomLeftRadius:theme.variables.size.borderRadius.xs,borderBottomRightRadius:theme.variables.size.borderRadius.xs,borderBottomStyle:"solid"}}}:{...baseStyle,...borderStyle}});export function SegmentedControlOption({name,value="",checked,label="",sublabel,iconName,iconOnly,slotProps,tooltipContent,tooltipPlacement,tooltipPortalContainer,tooltipShortcut,size,disabled=!1,isResponsive=!1,inputType="radio",displayAsOptionWithSublabel=!1,onChange,onClick,onBlur,onFocus,onTooltipVisibilityChange}){let containerRef=useRef(null),iconAriaLabel=iconOnly?label:void 0,iconAccessibleName=slotProps?.icon?.ariaLabel??iconAriaLabel,iconElm=iconName?React.createElement(StyledIconContainer,null,iconAccessibleName?React.createElement(Icon,{name:iconName,size:"s","aria-label":iconAccessibleName,role:"img"}):React.createElement(Icon,{name:iconName,size:"s"})):null,showIcon=!sublabel&&iconElm,labelElm=React.createElement(StyledLabel,{size:"l"===size?"m":"s",weight:"bold"},label),labelContainerElm=labelElm;showIcon&&(labelContainerElm=iconOnly?React.createElement(React.Fragment,null,iconElm,React.createElement(ScreenReaderText,null,label)):React.createElement(Inline,{space:"xs",noWrap:!0,vAlignItems:"center"},iconElm,labelElm));let sublabelElm=sublabel?React.createElement(StyledSublabel,{size:"s",isResponsive:isResponsive},sublabel):null;return React.createElement(React.Fragment,null,React.createElement(StyledContainer,{size:size,checked:checked,sublabel:sublabel,iconOnly:iconOnly,isResponsive:isResponsive,displayAsOptionWithSublabel:displayAsOptionWithSublabel,ref:containerRef,disabled:disabled,tabIndex:-1},React.createElement(StyledInput,{type:inputType,name:name,value:value,checked:checked,disabled:disabled,onChange:onChange,onClick:onClick,onBlur:onBlur,onFocus:onFocus,"aria-expanded":slotProps?.input?.ariaExpanded,"aria-controls":slotProps?.input?.ariaControls}),labelContainerElm,sublabelElm),tooltipContent&&React.createElement(Tooltip,{content:tooltipContent,shortcut:tooltipShortcut,externalTriggerRef:containerRef,onVisibilityChange:onTooltipVisibilityChange,placement:tooltipPlacement??"auto",portalContainer:tooltipPortalContainer}))}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import React from"react";import styled from"@emotion/styled";import{FormField}from"../FormField/FormField";import{SelectWithCustomTrigger}from"./SelectWithCustomTrigger";import{Icon}from"../../Icon/Icon";import{Inline}from"../../Inline/Inline";import{TextClamped}from"../../Typography/TextClamped/TextClamped";import{useFormFieldMessageId}from"../FormField/useFormFieldMessageId";let StyledButton=styled("button",{target:"
|
|
1
|
+
import React from"react";import styled from"@emotion/styled";import{FormField}from"../FormField/FormField";import{SelectWithCustomTrigger}from"./SelectWithCustomTrigger";import{Icon}from"../../Icon/Icon";import{Inline}from"../../Inline/Inline";import{TextClamped}from"../../Typography/TextClamped/TextClamped";import{useFormFieldMessageId}from"../FormField/useFormFieldMessageId";let StyledButton=styled("button",{target:"eaelaza0",label:"StyledButton"})(({theme,hasError,isPlaceholderVisible,readOnly,size})=>({'&[type="button"]':{appearance:"none",MozAppearance:"none",WebkitAppearance:"none"},display:"inline-block",margin:0,borderRadius:theme.variables.size.borderRadius.xs,backgroundColor:theme.values.color.background.primary.default,borderWidth:"1px",borderStyle:"solid",width:"100%",padding:`${"s"===size?`calc(${theme.variables.size.spacing.xxs} + 1px)`:`calc(${theme.variables.size.spacing.xs} - 1px)`} ${theme.variables.size.spacing.s}`,paddingRight:theme.variables.size.spacing.xs,boxSizing:"border-box",borderColor:theme.values.color.border.primary.default,...readOnly&&{borderColor:theme.values.color.border.primary.disabled},...isPlaceholderVisible&&{fontStyle:"italic"},...hasError&&{boxShadow:`0 0 0 1px inset ${theme.values.color.border.error.default}`,borderColor:theme.values.color.border.error.default}})),StyledTriggerIcon=styled(Icon,{target:"eaelaza1",label:"StyledTriggerIcon"})(()=>({pointerEvents:"none"}));function TriggerButton({triggerRef,disabled,isOpen,hasError,isPlaceholderVisible,role,"aria-expanded":ariaExpanded,"aria-controls":ariaControls,"aria-activedescendant":ariaActiveDescendant,"aria-describedby":ariaDescribedBy,"aria-label":ariaLabel,readOnly,size,onFocus,onBlur,children,...ariaAttributes}){return React.createElement(StyledButton,{type:"button",ref:triggerRef,disabled:disabled,hasError:hasError,isPlaceholderVisible:isPlaceholderVisible,...ariaAttributes,role:role,"aria-expanded":ariaExpanded,"aria-controls":ariaControls,"aria-activedescendant":ariaActiveDescendant,"aria-label":ariaLabel,"aria-invalid":hasError,"aria-describedby":ariaDescribedBy,readOnly:readOnly,size:size,onFocus:onFocus,onBlur:onBlur},React.createElement(Inline,{vAlignItems:"center",alignItems:"spaceBetween",space:"xxs",noWrap:!0},React.createElement(TextClamped,{color:isPlaceholderVisible?"tertiary":"primary",size:size},readOnly&&isPlaceholderVisible?null:children),React.createElement(StyledTriggerIcon,{size:size,name:isOpen?"chevron-up":"chevron-down",color:readOnly?"quaternary":"tertiary"})))}export function Select({options,name,value,placeholder,hasError,optionsListWidth,maxHeight,disabled=!1,portalContainer,readOnly=!1,excludeFromFormData,label,labelHint,hideLabel,hint,errorMessages,size="m","data-e2e-test-id":dataE2eTestId,"aria-describedby":ariaDescribedBy,onChange,onFocus,onBlur,...ariaAttributes}){let selectedOption=options?.find(option=>option.value===value),isPlaceholderVisible=!!placeholder&&!value,{id,ariaDescribedByProp}=useFormFieldMessageId({ariaDescribedBy,errorMessages,hint});return React.createElement(SelectWithCustomTrigger,{options:options,value:value,name:name,optionsListWidth:optionsListWidth,maxHeight:maxHeight,portalContainer:portalContainer,disabled:disabled,readOnly:readOnly,excludeFromFormData:excludeFromFormData,onChange:onChange,renderTrigger:({triggerRef,isOpen,role,"aria-expanded":ariaExpanded,"aria-controls":ariaControls,"aria-activedescendant":ariaActiveDescendant})=>React.createElement(FormField,{disabled:disabled,hideLabel:hideLabel,label:label,labelHint:labelHint,hint:hint,errorMessages:errorMessages,messageId:id,"data-e2e-test-id":dataE2eTestId,"data-ds-id":"Select"},React.createElement(TriggerButton,{hasError:hasError,isPlaceholderVisible:isPlaceholderVisible,size:size,triggerRef:triggerRef,isOpen:isOpen,disabled:disabled,role:role,"aria-expanded":ariaExpanded,"aria-controls":ariaControls,"aria-activedescendant":ariaActiveDescendant,"aria-label":label,...ariaAttributes,...ariaDescribedByProp,readOnly:readOnly,onFocus:onFocus,onBlur:onBlur},selectedOption?selectedOption.label:placeholder??""))})}
|
|
@@ -14,12 +14,12 @@ export declare const TextareaRaw: React.ForwardRefExoticComponent<{
|
|
|
14
14
|
*/
|
|
15
15
|
hasError?: boolean;
|
|
16
16
|
resize?: "none" | "horizontal" | "vertical" | "both";
|
|
17
|
-
} &
|
|
17
|
+
} & TextareaHTMLAttributes<HTMLTextAreaElement> & React.RefAttributes<HTMLTextAreaElement>>;
|
|
18
18
|
export declare const Textarea: React.ForwardRefExoticComponent<FormFieldProps & {
|
|
19
19
|
/**
|
|
20
20
|
* Set to true to toggle error state
|
|
21
21
|
*/
|
|
22
22
|
hasError?: boolean;
|
|
23
23
|
resize?: "none" | "horizontal" | "vertical" | "both";
|
|
24
|
-
} &
|
|
24
|
+
} & TextareaHTMLAttributes<HTMLTextAreaElement> & React.RefAttributes<HTMLTextAreaElement>>;
|
|
25
25
|
export {};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import React from"react";import styled from"@emotion/styled";import{FormField}from"../FormField/FormField";import{useFormFieldMessageId}from"../FormField/useFormFieldMessageId";let StyledTextarea=styled("textarea",{target:"
|
|
1
|
+
import React from"react";import styled from"@emotion/styled";import{FormField}from"../FormField/FormField";import{useFormFieldMessageId}from"../FormField/useFormFieldMessageId";let StyledTextarea=styled("textarea",{target:"e15fuuq00",label:"StyledTextarea"})(({theme,resize,hasError})=>({fontFamily:theme.variables.fontFamily.lato,fontSize:theme.variables.size.font.m,lineHeight:theme.variables.size.lineHeight.xl,minHeight:theme.variables.size.dimension.textarea.minHeight.m,borderRadius:theme.variables.size.borderRadius.xs,border:"1px solid",width:"100%",padding:theme.variables.size.spacing.xs,boxSizing:"border-box",color:theme.values.color.text.primary.default,borderColor:hasError?theme.values.color.border.error.default:theme.values.color.border.primary.default,backgroundColor:theme.values.color.background.primary.default,...hasError&&{boxShadow:`0 0 0 1px inset ${theme.values.color.border.error.default}`},resize})),StyledContainer=styled("div",{target:"e15fuuq01",label:"StyledContainer"})(()=>({width:"100%",display:"flex",alignItems:"center",flexDirection:"row",position:"relative"}));export const TextareaRaw=React.forwardRef(({autoComplete="on",rows=5,maxLength=256,resize="none",disabled,hasError,...rest},ref)=>React.createElement(StyledContainer,null,React.createElement(StyledTextarea,{...rest,ref:ref,hasError:hasError,autoComplete:autoComplete,disabled:disabled,rows:rows,maxLength:maxLength,resize:resize,"aria-invalid":hasError})));export const Textarea=React.forwardRef(({disabled,label,labelHint,hideLabel,hint,errorMessages,"aria-describedby":ariaDescribedBy,"data-e2e-test-id":dataE2eTestId,...rest},ref)=>{let{id,ariaDescribedByProp}=useFormFieldMessageId({ariaDescribedBy,errorMessages,hint});return React.createElement(FormField,{"data-e2e-test-id":dataE2eTestId,"data-ds-id":"Textarea",disabled:disabled,label:label,labelHint:labelHint,hideLabel:hideLabel,hint:hint,errorMessages:errorMessages,messageId:id},React.createElement(TextareaRaw,{...rest,ref:ref,disabled:disabled,...ariaDescribedByProp}))});
|
|
@@ -9,7 +9,7 @@ type ToggleRawProps = {
|
|
|
9
9
|
export declare const ToggleRaw: React.ForwardRefExoticComponent<{
|
|
10
10
|
size?: ToggleSize;
|
|
11
11
|
isHighlighted?: boolean;
|
|
12
|
-
} & Omit<
|
|
12
|
+
} & Omit<InputHTMLAttributes<HTMLInputElement>, "size" | "type"> & React.RefAttributes<HTMLInputElement>>;
|
|
13
13
|
export type ToggleProps = ToggleRawProps & {
|
|
14
14
|
/** Controls label alignment with respect to toggle */
|
|
15
15
|
alignLabel?: "before" | "after";
|
|
@@ -20,11 +20,11 @@ export type ToggleProps = ToggleRawProps & {
|
|
|
20
20
|
export declare const Toggle: React.ForwardRefExoticComponent<{
|
|
21
21
|
size?: ToggleSize;
|
|
22
22
|
isHighlighted?: boolean;
|
|
23
|
-
} & Omit<
|
|
23
|
+
} & Omit<InputHTMLAttributes<HTMLInputElement>, "size" | "type"> & {
|
|
24
24
|
/** Controls label alignment with respect to toggle */
|
|
25
25
|
alignLabel?: "before" | "after";
|
|
26
26
|
/** Display hint below the label specific for the toggle */
|
|
27
27
|
labelHint?: string | React.ReactElement;
|
|
28
28
|
alignItems?: InlineProps["alignItems"];
|
|
29
|
-
} & Omit<FormFieldProps, "
|
|
29
|
+
} & Omit<FormFieldProps, "hideLabel" | "labelHint"> & React.RefAttributes<HTMLInputElement>>;
|
|
30
30
|
export {};
|
|
@@ -7,4 +7,4 @@ export type ToggleButtonProps = {
|
|
|
7
7
|
export declare const ToggleButton: React.ForwardRefExoticComponent<{
|
|
8
8
|
label: string;
|
|
9
9
|
subLabel?: string;
|
|
10
|
-
} & Omit<FormFieldProps, "
|
|
10
|
+
} & Omit<FormFieldProps, "errorMessages" | "hideLabel" | "hint" | "label" | "labelHint"> & Omit<InputHTMLAttributes<HTMLInputElement>, "type"> & React.RefAttributes<HTMLInputElement>>;
|
|
@@ -32,5 +32,5 @@ export type GridProps = {
|
|
|
32
32
|
} & HTMLAttributes<HTMLDivElement>;
|
|
33
33
|
export declare function Grid({ columnGap, rowGap, "data-e2e-test-id": dataE2eTestId, children, ...rest }: GridProps): React.ReactElement;
|
|
34
34
|
export declare namespace Grid {
|
|
35
|
-
|
|
35
|
+
export { GridItem as Item };
|
|
36
36
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import React from"react";import styled from"@emotion/styled";import{useResponsiveValue,useResponsiveStyles}from"../../shared/mediaQueries";import{GridItem}from"./GridItem";let StyledContainer=styled("div",{target:"
|
|
1
|
+
import React from"react";import styled from"@emotion/styled";import{useResponsiveValue,useResponsiveStyles}from"../../shared/mediaQueries";import{GridItem}from"./GridItem";let StyledContainer=styled("div",{target:"efhrkze0",label:"StyledContainer"})(({theme,templateColumns,templateRows,autoRows,templateAreas,inline,columnGap,alignItems,justifyItems,isSubgrid})=>{function getTrackSize(size){return`calc((100% - 11 * ${theme.variables.size.spacing[size??"zero"]}) / 12)`}return{width:"100%",display:inline?"inline-grid":"grid",gridAutoFlow:"row",...useResponsiveValue({gridTemplateColumns:templateColumns||(isSubgrid?"subgrid":Array.isArray(columnGap)?columnGap.map(value=>`repeat(12, ${getTrackSize(value)})`):`repeat(12, ${getTrackSize(columnGap)})`),gridTemplateRows:templateRows,gridAutoRows:autoRows,gridTemplateAreas:templateAreas,alignItems,justifyItems})}},({theme,columnGap,rowGap})=>useResponsiveStyles({gridColumnGap:[columnGap,theme.variables.size.spacing],gridRowGap:[rowGap,theme.variables.size.spacing]}));export function Grid({columnGap="m",rowGap="m","data-e2e-test-id":dataE2eTestId,children,...rest}){return React.createElement(StyledContainer,{"data-e2e-test-id":dataE2eTestId,"data-ds-id":"Grid",columnGap:columnGap,rowGap:rowGap,...rest},children)}Grid.Item=GridItem;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import React from"react";import styled from"@emotion/styled";import isPropValid from"@emotion/is-prop-valid";import{Icon}from"../Icon/Icon";import{Box}from"../Box/Box";let IconTileWrapper=styled("div",{shouldForwardProp:prop=>isPropValid(prop)&&"color"!==prop,target:"
|
|
1
|
+
import React from"react";import styled from"@emotion/styled";import isPropValid from"@emotion/is-prop-valid";import{Icon}from"../Icon/Icon";import{Box}from"../Box/Box";let IconTileWrapper=styled("div",{shouldForwardProp:prop=>isPropValid(prop)&&"color"!==prop,target:"e1af4gik0",label:"IconTileWrapper"})(({theme,color})=>({display:"inline-block",borderRadius:theme.variables.size.borderRadius.full,border:"1px solid",borderColor:color?theme.values.color.badge.borderSubtle[color]:theme.values.color.badge.borderSubtle.default,backgroundColor:color?theme.values.color.badge.background[color]:theme.values.color.badge.background.default,color:color?theme.values.color.badge.foreground[color]:theme.values.color.badge.foreground.gray}));export const IconTile=({icon,color,"data-color":dataColor,"data-e2e-test-id":dataE2eTestId,"aria-label":ariaLabel,"aria-labelledby":ariaLabelledBy,role,...ariaAttributes})=>{let hasAccessibleName=!!(ariaLabel||ariaLabelledBy);return React.createElement(IconTileWrapper,{color:color,"data-e2e-test-id":dataE2eTestId,"data-color":dataColor,"data-ds-id":"IconTile","aria-hidden":!hasAccessibleName||void 0,"aria-label":ariaLabel,"aria-labelledby":ariaLabelledBy,role:role,...ariaAttributes},React.createElement(Box,{space:"s"},React.createElement(Icon,{name:icon,size:"m"})))};
|
|
@@ -1,13 +1,13 @@
|
|
|
1
|
-
import React,{useCallback,useEffect,useRef}from"react";import styled from"@emotion/styled";import{keyframes}from"@emotion/react";import{useOutsideClickDeactivatesWithinPortal}from"../../../shared/useOutsideClickDeactivatesWithinPortal";import{useDocument}from"../../../shared/useDocument";import{FOCUSABLE_SELECTOR}from"../../../shared/focusableSelector";import{Portal,usePortalContainerElement}from"../../Portal/Portal";import{FocusTrapWrapper}from"../../../shared/FocusTrapWrapper";import{DialogContext}from"../../Patterns/Dialog/DialogContext";import{Backdrop}from"../../Utilities/Backdrop/Backdrop";import{useExitAnimation}from"
|
|
1
|
+
import React,{useCallback,useEffect,useRef}from"react";import styled from"@emotion/styled";import{keyframes}from"@emotion/react";import{useOutsideClickDeactivatesWithinPortal}from"../../../shared/useOutsideClickDeactivatesWithinPortal";import{useDocument}from"../../../shared/useDocument";import{FOCUSABLE_SELECTOR}from"../../../shared/focusableSelector";import{Portal,usePortalContainerElement}from"../../Portal/Portal";import{FocusTrapWrapper}from"../../../shared/FocusTrapWrapper";import{DialogContext}from"../../Patterns/Dialog/DialogContext";import{Backdrop}from"../../Utilities/Backdrop/Backdrop";import{useExitAnimation}from"../../../shared/useExitAnimation";let StyledViewportLayer=styled("div",{target:"e1elpaa00",label:"StyledViewportLayer"})(({theme,isLeaving})=>{let{hidden,visible}=theme.variables.opacity,fadeIn=keyframes`
|
|
2
2
|
from { opacity: ${hidden}; }
|
|
3
3
|
to { opacity: ${visible}; }
|
|
4
4
|
`,fadeOut=keyframes`
|
|
5
5
|
from { opacity: ${visible}; }
|
|
6
6
|
to { opacity: ${hidden}; }
|
|
7
|
-
`,{duration,timingFunction}=theme.variables.animation.modalBackdrop.open;return{position:"fixed",top:0,left:0,zIndex:theme.variables.zIndex.modal,width:"100%",height:"100dvh",animation:`${isLeaving?fadeOut:fadeIn} ${duration} ${timingFunction} both`,"@media (prefers-reduced-motion: reduce)":{animation:"none"}}}),StyledContent=styled("div",{target:"
|
|
7
|
+
`,{duration,timingFunction}=theme.variables.animation.modalBackdrop.open;return{position:"fixed",top:0,left:0,zIndex:theme.variables.zIndex.modal,width:"100%",height:"100dvh",animation:`${isLeaving?fadeOut:fadeIn} ${duration} ${timingFunction} both`,"@media (prefers-reduced-motion: reduce)":{animation:"none"}}}),StyledContent=styled("div",{target:"e1elpaa01",label:"StyledContent"})(({theme,positionX,positionY,isLeaving})=>{let restX=positionX?"0%":"-50%",restY=positionY?"0%":"-50%",{x:fromX,y:fromY}="left"===positionX?{x:"-100%",y:restY}:"right"===positionX?{x:"100%",y:restY}:"top"===positionY?{x:restX,y:"-100%"}:"bottom"===positionY?{x:restX,y:"100%"}:{x:restX,y:restY},resting=`translate(${restX}, ${restY})`,offscreen=`translate(${fromX}, ${fromY})`,slideIn=keyframes`
|
|
8
8
|
from { transform: ${offscreen}; }
|
|
9
9
|
to { transform: ${resting}; }
|
|
10
10
|
`,slideOut=keyframes`
|
|
11
11
|
from { transform: ${resting}; }
|
|
12
12
|
to { transform: ${offscreen}; }
|
|
13
|
-
`,{duration,timingFunction}=theme.variables.animation.navSlide.open;return{position:"fixed",...{..."left"===positionX&&{left:0},..."right"===positionX&&{right:0},...!positionX&&{left:"50%"},..."top"===positionY&&{top:0},..."bottom"===positionY&&{bottom:0},...!positionY&&{top:"50%"}},transform:resting,willChange:"transform",animation:`${isLeaving?slideOut:slideIn} ${duration} ${timingFunction} both`,"@media (prefers-reduced-motion: reduce)":{animation:"none"}}}),StyledBackdrop=styled(Backdrop,{target:"
|
|
13
|
+
`,{duration,timingFunction}=theme.variables.animation.navSlide.open;return{position:"fixed",...{..."left"===positionX&&{left:0},..."right"===positionX&&{right:0},...!positionX&&{left:"50%"},..."top"===positionY&&{top:0},..."bottom"===positionY&&{bottom:0},...!positionY&&{top:"50%"}},transform:resting,willChange:"transform",animation:`${isLeaving?slideOut:slideIn} ${duration} ${timingFunction} both`,"@media (prefers-reduced-motion: reduce)":{animation:"none"}}}),StyledBackdrop=styled(Backdrop,{target:"e1elpaa02",label:"StyledBackdrop"})({pointerEvents:"none"});function getFocusTarget(container,document){return container?.querySelector(FOCUSABLE_SELECTOR)??container??document.body}export function Drawer({backdropRef,portalContainer,initialFocus,isDismissible=!0,isVisible=!0,onUnmount,hasBackdrop=!0,positionX,positionY,children,handleClose,privateProps:{skipPortal}={skipPortal:!1},...rest}){let portalContainerElement=usePortalContainerElement(portalContainer),contentRef=useRef(null),document=useDocument(),{isMounted,isLeaving,onAnimationEnd}=useExitAnimation(isVisible),wasMounted=useRef(isMounted);useEffect(()=>{wasMounted.current&&!isMounted&&onUnmount?.(),wasMounted.current=isMounted},[isMounted,onUnmount]);let layerRef=useRef(null),setLayerNode=useCallback(node=>{layerRef.current=node,backdropRef&&(backdropRef.current=node)},[backdropRef]),handleClickOutsideDeactivates=useOutsideClickDeactivatesWithinPortal({portalContainerElement,outerRef:layerRef,isDismissible});if(!isMounted)return null;let content=React.createElement(StyledViewportLayer,{ref:setLayerNode,"data-ds-id":"Drawer",isLeaving:isLeaving},hasBackdrop&&React.createElement(StyledBackdrop,{"data-ds-id":"DrawerBackdrop"}),React.createElement(FocusTrapWrapper,{active:isVisible,focusTrapOptions:{allowOutsideClick:!0,clickOutsideDeactivates:handleClickOutsideDeactivates,escapeDeactivates:isDismissible,preventScroll:!0,initialFocus:()=>{var container;return container=contentRef.current,"string"==typeof initialFocus?initialFocus:initialFocus?.current??getFocusTarget(container,document)},fallbackFocus:()=>getFocusTarget(contentRef.current,document),onPostDeactivate:()=>handleClose?.()}},React.createElement(StyledContent,{...rest,ref:contentRef,positionX:positionX,positionY:positionY,isLeaving:isLeaving,onAnimationEnd:onAnimationEnd,role:"dialog","aria-modal":"true"},children)));return skipPortal?content:React.createElement(DialogContext.Provider,{value:!0},React.createElement(Portal,{portalContainer:portalContainer},content))}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import React from"react";import{useTheme}from"@emotion/react";import styled from"@emotion/styled";import{AMBOSS_DS_FLOAT_PORTAL,Portal}from"../../Portal/Portal";import{useFloatingPosition}from"../../Utilities/FloatingPosition/useFloatingPosition";import{useDocument}from"../../../shared/useDocument";let StyledContainer=styled("div",{target:"
|
|
1
|
+
import React from"react";import{useTheme}from"@emotion/react";import styled from"@emotion/styled";import{AMBOSS_DS_FLOAT_PORTAL,Portal}from"../../Portal/Portal";import{useFloatingPosition}from"../../Utilities/FloatingPosition/useFloatingPosition";import{useDocument}from"../../../shared/useDocument";let StyledContainer=styled("div",{target:"ewzfx030",label:"StyledContainer"})(({floatingStyles,isPositioned,bottomBarHeight})=>({...floatingStyles,visibility:isPositioned?"visible":"hidden",...bottomBarHeight&&{translate:`0 calc(-1 * ${bottomBarHeight})`}}));export function Float(props){let{children,...viewportPosition}=props,theme=useTheme(),document=useDocument(),{setFloating,floatingStyles,isPositioned}=useFloatingPosition({mode:"viewport",...viewportPosition,offset:parseInt(theme.variables.size.spacing.m,10)}),bottomBarHeight="bottom"===props.positionY?theme.variables.layout.bottomBar.height.default:void 0,portalContainer=document?document.querySelector(`.${AMBOSS_DS_FLOAT_PORTAL}`):null;return React.createElement(Portal,{portalContainer:portalContainer},React.createElement(StyledContainer,{"data-ds-id":"Float",ref:setFloating,floatingStyles:floatingStyles,isPositioned:isPositioned,bottomBarHeight:bottomBarHeight},children))}
|
|
@@ -13,4 +13,16 @@ export type LayoutFloatProps = {
|
|
|
13
13
|
hostRef: (el: HTMLDivElement | null) => void;
|
|
14
14
|
"data-e2e-test-id"?: string;
|
|
15
15
|
};
|
|
16
|
-
|
|
16
|
+
/**
|
|
17
|
+
* The floating shell hosting a layout panel's content while its variant is
|
|
18
|
+
* `"float"`. Pins to the bottom-right viewport corner via the internal
|
|
19
|
+
* `Float` positioner, then becomes freely draggable by its header across the
|
|
20
|
+
* viewport (clamped to `spacing.m` from the edges, matching `Float`'s inset).
|
|
21
|
+
* The header carries the `useMove` handle; this float owns the drag geometry
|
|
22
|
+
* and publishes its move handlers via `useLayoutFloatDrag` for the header to drive.
|
|
23
|
+
* Purely presentational otherwise: the content arrives by the panel's persistent
|
|
24
|
+
* host node being appended into `hostRef`'s element.
|
|
25
|
+
*/
|
|
26
|
+
declare const LayoutFloatBase: ({ width, height, hostRef, "data-e2e-test-id": dataE2eTestId, }: LayoutFloatProps) => React.ReactElement;
|
|
27
|
+
export declare const LayoutFloat: React.MemoExoticComponent<typeof LayoutFloatBase>;
|
|
28
|
+
export {};
|
|
@@ -10,7 +10,7 @@ export type LayoutFloatDragContextValue = {
|
|
|
10
10
|
/** Publish/clear the handlers - for the float. */
|
|
11
11
|
setHandlers: (handlers: LayoutFloatDragHandlers) => void;
|
|
12
12
|
};
|
|
13
|
-
export declare const LayoutFloatDragContext:
|
|
13
|
+
export declare const LayoutFloatDragContext: import("react").Context<LayoutFloatDragContextValue>;
|
|
14
14
|
/** Read the float-drag channel. Outside a `LayoutFloatDragProvider` the handlers are
|
|
15
15
|
* `null` and the setter a no-op, so consumers need no existence checks. */
|
|
16
16
|
export declare const useLayoutFloatDrag: () => LayoutFloatDragContextValue;
|
|
@@ -3,6 +3,8 @@ import type { LayoutStorage, PanelImperativeHandle, PanelProps as ResizablePanel
|
|
|
3
3
|
/** A size: plain number = pixels; unitless string = percentage ("10%"). */
|
|
4
4
|
type Size = number | string;
|
|
5
5
|
export type PanelItem = {
|
|
6
|
+
/** Leave a transparent spacing token before this panel's column. */
|
|
7
|
+
gapBefore?: boolean;
|
|
6
8
|
/** Stable id — used by react-resizable-panels to track the panel and persist
|
|
7
9
|
* its size, and passed back to `onResize`/`onCollapse`. */
|
|
8
10
|
id: string;
|
|
@@ -15,9 +17,9 @@ export type PanelItem = {
|
|
|
15
17
|
maxSize?: Size;
|
|
16
18
|
/** Allow drag-to-collapse; collapsing fires `onCollapse(id)`. */
|
|
17
19
|
collapsible?: boolean;
|
|
18
|
-
/** When `false`,
|
|
19
|
-
* neighbour.
|
|
20
|
-
* remains on each
|
|
20
|
+
/** When `false`, user input can't resize this panel directly or through a
|
|
21
|
+
* neighbour. Container resizing still applies. Separators stay usable if a
|
|
22
|
+
* resizable panel remains on each side - the drag passes this panel by. */
|
|
21
23
|
resizable?: boolean;
|
|
22
24
|
/** Hold this panel's width when the window (or the containing group) is
|
|
23
25
|
* resized, rather than its share of the group - so the change lands on the
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import React from"react";import styled from"@emotion/styled";import{Group,Panel as ResizablePanel,Separator,useDefaultLayout}from"react-resizable-panels";let CustomGroup=styled(Group,{target:"
|
|
1
|
+
import React from"react";import styled from"@emotion/styled";import{Group,Panel as ResizablePanel,Separator,useDefaultLayout}from"react-resizable-panels";let CustomGroup=styled(Group,{target:"e1qc2hi70",label:"CustomGroup"})({height:"100%",width:"100%"}),CustomSeparator=styled(Separator,{target:"e1qc2hi71",label:"CustomSeparator"})(({theme})=>({flexShrink:0,width:theme.variables.size.spacing.xxs})),StyledPanelChild=styled("div",{target:"e1qc2hi72",label:"StyledPanelChild"})({position:"relative",height:"100%",width:"100%"}),NOOP_STORAGE={getItem:()=>null,setItem:()=>{}},isResizable=item=>!1!==item.resizable,locksWidth=item=>!0===item.lockWidthOnWindowResize&&void 0!==item.defaultSize;export const groupResizeBehaviorFor=(item,panels)=>locksWidth(item)&&panels.some(panel=>!locksWidth(panel))?"preserve-pixel-size":"preserve-relative-size";let canSeparatorResize=({panels,index})=>panels.slice(0,index).some(isResizable)&&panels.slice(index).some(isResizable);export function Panel({panels,persistenceKey,storage,onResize,onCollapse,panelHandleFor,panelElementFor,shouldSuppressLayoutCallback}){let{defaultLayout,onLayoutChanged:persistSizes}=useDefaultLayout({id:persistenceKey??"ds-layout",panelIds:panels.map(p=>p.id),storage:persistenceKey&&storage?storage:NOOP_STORAGE});return React.createElement(CustomGroup,{orientation:"horizontal",defaultLayout:defaultLayout,onLayoutChanged:layout=>{shouldSuppressLayoutCallback?.()||(persistSizes(layout),panels.forEach(({id,collapsible})=>{let pct=layout[id];"number"==typeof pct&&collapsible&&pct<.5&&onCollapse(id)}))}},panels.map((item,index)=>{let isSeparatorDisabled=!canSeparatorResize({panels,index}),SeparatorComponent=item.gapBefore?CustomSeparator:Separator;return React.createElement(React.Fragment,{key:item.id},index>0&&React.createElement(SeparatorComponent,{disabled:isSeparatorDisabled}),React.createElement(ResizablePanel,{id:item.id,defaultSize:item.defaultSize,collapsible:item.collapsible,disabled:!1===item.resizable,groupResizeBehavior:groupResizeBehaviorFor(item,panels),minSize:item.minSize,maxSize:item.maxSize,onResize:size=>{!shouldSuppressLayoutCallback?.()&&(size.asPercentage<.5||onResize(item.id,size))},panelRef:panelHandleFor?.(item.id),elementRef:panelElementFor?.(item.id)},React.createElement(StyledPanelChild,null,item.child)))}))}
|