@expofp/ui 3.21.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/README.md +30 -0
- package/dist/Alert/Alert.d.ts +20 -0
- package/dist/Alert/Alert.js +23 -0
- package/dist/Alert/index.d.ts +3 -0
- package/dist/Alert/index.js +1 -0
- package/dist/Autocomplete/Autocomplete.d.ts +21 -0
- package/dist/Autocomplete/Autocomplete.js +183 -0
- package/dist/Autocomplete/index.d.ts +3 -0
- package/dist/Autocomplete/index.js +1 -0
- package/dist/Badge/Badge.d.ts +14 -0
- package/dist/Badge/Badge.js +15 -0
- package/dist/Badge/index.d.ts +3 -0
- package/dist/Badge/index.js +1 -0
- package/dist/Button/Button.d.ts +30 -0
- package/dist/Button/Button.js +41 -0
- package/dist/Button/index.d.ts +3 -0
- package/dist/Button/index.js +1 -0
- package/dist/Checkbox/Checkbox.d.ts +19 -0
- package/dist/Checkbox/Checkbox.js +19 -0
- package/dist/Checkbox/index.d.ts +3 -0
- package/dist/Checkbox/index.js +1 -0
- package/dist/CheckboxButton/CheckboxButton.d.ts +12 -0
- package/dist/CheckboxButton/CheckboxButton.js +19 -0
- package/dist/CheckboxButton/index.d.ts +3 -0
- package/dist/CheckboxButton/index.js +1 -0
- package/dist/DownloadList/DownloadList.d.ts +15 -0
- package/dist/DownloadList/DownloadList.js +9 -0
- package/dist/DownloadList/index.d.ts +3 -0
- package/dist/DownloadList/index.js +2 -0
- package/dist/Draggable/Draggable.d.ts +9 -0
- package/dist/Draggable/Draggable.js +92 -0
- package/dist/Draggable/index.d.ts +3 -0
- package/dist/Draggable/index.js +2 -0
- package/dist/EntityItem/EntityItem.d.ts +46 -0
- package/dist/EntityItem/EntityItem.js +29 -0
- package/dist/EntityItem/index.d.ts +3 -0
- package/dist/EntityItem/index.js +1 -0
- package/dist/EventBadge/EventBadge.d.ts +13 -0
- package/dist/EventBadge/EventBadge.js +10 -0
- package/dist/EventBadge/index.d.ts +3 -0
- package/dist/EventBadge/index.js +1 -0
- package/dist/HeatmapLegend/HeatmapLegend.d.ts +15 -0
- package/dist/HeatmapLegend/HeatmapLegend.js +11 -0
- package/dist/HeatmapLegend/index.d.ts +3 -0
- package/dist/HeatmapLegend/index.js +2 -0
- package/dist/HighlightText/HighlightText.d.ts +7 -0
- package/dist/HighlightText/HighlightText.js +14 -0
- package/dist/HighlightText/index.d.ts +2 -0
- package/dist/HighlightText/index.js +1 -0
- package/dist/LevelBadge/LevelBadge.d.ts +9 -0
- package/dist/LevelBadge/LevelBadge.js +10 -0
- package/dist/LevelBadge/index.d.ts +3 -0
- package/dist/LevelBadge/index.js +2 -0
- package/dist/LevelSelector/LevelSelector.d.ts +19 -0
- package/dist/LevelSelector/LevelSelector.js +91 -0
- package/dist/LevelSelector/index.d.ts +3 -0
- package/dist/LevelSelector/index.js +2 -0
- package/dist/MapControls/MapControls.d.ts +33 -0
- package/dist/MapControls/MapControls.js +38 -0
- package/dist/MapControls/index.d.ts +3 -0
- package/dist/MapControls/index.js +2 -0
- package/dist/MobileToggleButton/MobileToggleButton.d.ts +12 -0
- package/dist/MobileToggleButton/MobileToggleButton.js +8 -0
- package/dist/MobileToggleButton/index.d.ts +3 -0
- package/dist/MobileToggleButton/index.js +1 -0
- package/dist/Modal/Modal.d.ts +34 -0
- package/dist/Modal/Modal.js +98 -0
- package/dist/Modal/index.d.ts +3 -0
- package/dist/Modal/index.js +1 -0
- package/dist/MultiSelectGroups/MultiSelectGroups.d.ts +37 -0
- package/dist/MultiSelectGroups/MultiSelectGroups.js +80 -0
- package/dist/MultiSelectGroups/index.d.ts +3 -0
- package/dist/MultiSelectGroups/index.js +1 -0
- package/dist/OverlayGrip/OverlayGrip.d.ts +11 -0
- package/dist/OverlayGrip/OverlayGrip.js +8 -0
- package/dist/OverlayGrip/index.d.ts +3 -0
- package/dist/OverlayGrip/index.js +2 -0
- package/dist/PermissionNotice/PermissionNotice.d.ts +16 -0
- package/dist/PermissionNotice/PermissionNotice.js +11 -0
- package/dist/PermissionNotice/index.d.ts +3 -0
- package/dist/PermissionNotice/index.js +2 -0
- package/dist/Radio/Radio.d.ts +15 -0
- package/dist/Radio/Radio.js +13 -0
- package/dist/Radio/index.d.ts +3 -0
- package/dist/Radio/index.js +1 -0
- package/dist/RebookingNotes/RebookingNotes.d.ts +11 -0
- package/dist/RebookingNotes/RebookingNotes.js +18 -0
- package/dist/RebookingNotes/index.d.ts +3 -0
- package/dist/RebookingNotes/index.js +1 -0
- package/dist/RebookingRadioGroup/RebookingRadioGroup.d.ts +17 -0
- package/dist/RebookingRadioGroup/RebookingRadioGroup.js +13 -0
- package/dist/RebookingRadioGroup/index.d.ts +3 -0
- package/dist/RebookingRadioGroup/index.js +1 -0
- package/dist/ScrollableRow/ScrollableRow.d.ts +21 -0
- package/dist/ScrollableRow/ScrollableRow.js +155 -0
- package/dist/ScrollableRow/index.d.ts +3 -0
- package/dist/ScrollableRow/index.js +2 -0
- package/dist/Share/Share.d.ts +22 -0
- package/dist/Share/Share.js +24 -0
- package/dist/Share/index.d.ts +3 -0
- package/dist/Share/index.js +1 -0
- package/dist/ShowMoreButton/ShowMoreButton.d.ts +11 -0
- package/dist/ShowMoreButton/ShowMoreButton.js +7 -0
- package/dist/ShowMoreButton/index.d.ts +3 -0
- package/dist/ShowMoreButton/index.js +1 -0
- package/dist/SidebarActions/SidebarActions.d.ts +26 -0
- package/dist/SidebarActions/SidebarActions.js +32 -0
- package/dist/SidebarActions/index.d.ts +3 -0
- package/dist/SidebarActions/index.js +2 -0
- package/dist/SimpleRow/SimpleRow.d.ts +15 -0
- package/dist/SimpleRow/SimpleRow.js +11 -0
- package/dist/SimpleRow/index.d.ts +3 -0
- package/dist/SimpleRow/index.js +2 -0
- package/dist/Spinner/Spinner.d.ts +9 -0
- package/dist/Spinner/Spinner.js +8 -0
- package/dist/Spinner/index.d.ts +3 -0
- package/dist/Spinner/index.js +1 -0
- package/dist/ToggleButton/ToggleButton.d.ts +17 -0
- package/dist/ToggleButton/ToggleButton.js +8 -0
- package/dist/ToggleButton/index.d.ts +3 -0
- package/dist/ToggleButton/index.js +1 -0
- package/dist/ToggleSwitch/ToggleSwitch.d.ts +12 -0
- package/dist/ToggleSwitch/ToggleSwitch.js +10 -0
- package/dist/ToggleSwitch/index.d.ts +3 -0
- package/dist/ToggleSwitch/index.js +1 -0
- package/dist/TouchHand/TouchHand.d.ts +5 -0
- package/dist/TouchHand/TouchHand.js +7 -0
- package/dist/TouchHand/index.d.ts +2 -0
- package/dist/TouchHand/index.js +1 -0
- package/dist/WayfindingFloorSelector/WayfindingFloorSelector.d.ts +24 -0
- package/dist/WayfindingFloorSelector/WayfindingFloorSelector.js +27 -0
- package/dist/WayfindingFloorSelector/index.d.ts +3 -0
- package/dist/WayfindingFloorSelector/index.js +1 -0
- package/dist/components/Alert/Alert.d.ts +20 -0
- package/dist/components/Alert/Alert.js +23 -0
- package/dist/components/Alert/index.d.ts +3 -0
- package/dist/components/Alert/index.js +1 -0
- package/dist/components/Autocomplete/Autocomplete.d.ts +21 -0
- package/dist/components/Autocomplete/Autocomplete.js +183 -0
- package/dist/components/Autocomplete/index.d.ts +3 -0
- package/dist/components/Autocomplete/index.js +1 -0
- package/dist/components/Badge/Badge.d.ts +14 -0
- package/dist/components/Badge/Badge.js +15 -0
- package/dist/components/Badge/index.d.ts +3 -0
- package/dist/components/Badge/index.js +1 -0
- package/dist/components/Button/Button.d.ts +30 -0
- package/dist/components/Button/Button.js +41 -0
- package/dist/components/Button/index.d.ts +3 -0
- package/dist/components/Button/index.js +1 -0
- package/dist/components/Checkbox/Checkbox.d.ts +19 -0
- package/dist/components/Checkbox/Checkbox.js +19 -0
- package/dist/components/Checkbox/index.d.ts +3 -0
- package/dist/components/Checkbox/index.js +1 -0
- package/dist/components/CheckboxButton/CheckboxButton.d.ts +12 -0
- package/dist/components/CheckboxButton/CheckboxButton.js +19 -0
- package/dist/components/CheckboxButton/index.d.ts +3 -0
- package/dist/components/CheckboxButton/index.js +1 -0
- package/dist/components/DownloadList/DownloadList.d.ts +15 -0
- package/dist/components/DownloadList/DownloadList.js +9 -0
- package/dist/components/DownloadList/index.d.ts +3 -0
- package/dist/components/DownloadList/index.js +2 -0
- package/dist/components/Draggable/Draggable.d.ts +9 -0
- package/dist/components/Draggable/Draggable.js +92 -0
- package/dist/components/Draggable/index.d.ts +3 -0
- package/dist/components/Draggable/index.js +2 -0
- package/dist/components/EntityItem/EntityItem.d.ts +46 -0
- package/dist/components/EntityItem/EntityItem.js +29 -0
- package/dist/components/EntityItem/index.d.ts +3 -0
- package/dist/components/EntityItem/index.js +1 -0
- package/dist/components/EventBadge/EventBadge.d.ts +13 -0
- package/dist/components/EventBadge/EventBadge.js +10 -0
- package/dist/components/EventBadge/index.d.ts +3 -0
- package/dist/components/EventBadge/index.js +1 -0
- package/dist/components/Gallery/Gallery.d.ts +25 -0
- package/dist/components/Gallery/Gallery.js +25 -0
- package/dist/components/Gallery/GalleryBadges/GalleryBadges.d.ts +8 -0
- package/dist/components/Gallery/GalleryBadges/GalleryBadges.js +5 -0
- package/dist/components/Gallery/GalleryControls/GalleryControls.d.ts +11 -0
- package/dist/components/Gallery/GalleryControls/GalleryControls.js +5 -0
- package/dist/components/Gallery/GalleryImg/GalleryImg.d.ts +13 -0
- package/dist/components/Gallery/GalleryImg/GalleryImg.js +37 -0
- package/dist/components/Gallery/GalleryItem/GalleryItem.d.ts +14 -0
- package/dist/components/Gallery/GalleryItem/GalleryItem.js +6 -0
- package/dist/components/Gallery/GalleryModal/GalleryModal.d.ts +18 -0
- package/dist/components/Gallery/GalleryModal/GalleryModal.js +88 -0
- package/dist/components/Gallery/GalleryPreLoader.d.ts +7 -0
- package/dist/components/Gallery/GalleryPreLoader.js +29 -0
- package/dist/components/Gallery/TransformImg/TransformImg.d.ts +10 -0
- package/dist/components/Gallery/TransformImg/TransformImg.js +15 -0
- package/dist/components/Gallery/index.d.ts +3 -0
- package/dist/components/Gallery/index.js +1 -0
- package/dist/components/HeatmapLegend/HeatmapLegend.d.ts +15 -0
- package/dist/components/HeatmapLegend/HeatmapLegend.js +11 -0
- package/dist/components/HeatmapLegend/index.d.ts +3 -0
- package/dist/components/HeatmapLegend/index.js +2 -0
- package/dist/components/HighlightText/HighlightText.d.ts +7 -0
- package/dist/components/HighlightText/HighlightText.js +14 -0
- package/dist/components/HighlightText/index.d.ts +2 -0
- package/dist/components/HighlightText/index.js +1 -0
- package/dist/components/LevelBadge/LevelBadge.d.ts +9 -0
- package/dist/components/LevelBadge/LevelBadge.js +10 -0
- package/dist/components/LevelBadge/index.d.ts +3 -0
- package/dist/components/LevelBadge/index.js +2 -0
- package/dist/components/LevelSelector/LevelSelector.d.ts +19 -0
- package/dist/components/LevelSelector/LevelSelector.js +91 -0
- package/dist/components/LevelSelector/index.d.ts +3 -0
- package/dist/components/LevelSelector/index.js +2 -0
- package/dist/components/MapControls/MapControls.d.ts +33 -0
- package/dist/components/MapControls/MapControls.js +38 -0
- package/dist/components/MapControls/index.d.ts +3 -0
- package/dist/components/MapControls/index.js +2 -0
- package/dist/components/MobileToggleButton/MobileToggleButton.d.ts +12 -0
- package/dist/components/MobileToggleButton/MobileToggleButton.js +8 -0
- package/dist/components/MobileToggleButton/index.d.ts +3 -0
- package/dist/components/MobileToggleButton/index.js +1 -0
- package/dist/components/Modal/Modal.d.ts +34 -0
- package/dist/components/Modal/Modal.js +98 -0
- package/dist/components/Modal/index.d.ts +3 -0
- package/dist/components/Modal/index.js +1 -0
- package/dist/components/MultiSelectGroups/MultiSelectGroups.d.ts +37 -0
- package/dist/components/MultiSelectGroups/MultiSelectGroups.js +80 -0
- package/dist/components/MultiSelectGroups/index.d.ts +3 -0
- package/dist/components/MultiSelectGroups/index.js +1 -0
- package/dist/components/Overlay/Overlay.d.ts +29 -0
- package/dist/components/Overlay/Overlay.js +251 -0
- package/dist/components/Overlay/OverlayScrollContext.d.ts +7 -0
- package/dist/components/Overlay/OverlayScrollContext.js +7 -0
- package/dist/components/Overlay/index.d.ts +4 -0
- package/dist/components/Overlay/index.js +2 -0
- package/dist/components/OverlayGrip/OverlayGrip.d.ts +11 -0
- package/dist/components/OverlayGrip/OverlayGrip.js +8 -0
- package/dist/components/OverlayGrip/index.d.ts +3 -0
- package/dist/components/OverlayGrip/index.js +2 -0
- package/dist/components/PermissionNotice/PermissionNotice.d.ts +16 -0
- package/dist/components/PermissionNotice/PermissionNotice.js +11 -0
- package/dist/components/PermissionNotice/index.d.ts +3 -0
- package/dist/components/PermissionNotice/index.js +2 -0
- package/dist/components/Radio/Radio.d.ts +15 -0
- package/dist/components/Radio/Radio.js +13 -0
- package/dist/components/Radio/index.d.ts +3 -0
- package/dist/components/Radio/index.js +1 -0
- package/dist/components/RebookingNotes/RebookingNotes.d.ts +11 -0
- package/dist/components/RebookingNotes/RebookingNotes.js +18 -0
- package/dist/components/RebookingNotes/index.d.ts +3 -0
- package/dist/components/RebookingNotes/index.js +1 -0
- package/dist/components/RebookingRadioGroup/RebookingRadioGroup.d.ts +17 -0
- package/dist/components/RebookingRadioGroup/RebookingRadioGroup.js +13 -0
- package/dist/components/RebookingRadioGroup/index.d.ts +3 -0
- package/dist/components/RebookingRadioGroup/index.js +1 -0
- package/dist/components/ScrollableRow/ScrollableRow.d.ts +21 -0
- package/dist/components/ScrollableRow/ScrollableRow.js +155 -0
- package/dist/components/ScrollableRow/index.d.ts +3 -0
- package/dist/components/ScrollableRow/index.js +2 -0
- package/dist/components/Share/Share.d.ts +22 -0
- package/dist/components/Share/Share.js +24 -0
- package/dist/components/Share/index.d.ts +3 -0
- package/dist/components/Share/index.js +1 -0
- package/dist/components/ShowMoreButton/ShowMoreButton.d.ts +11 -0
- package/dist/components/ShowMoreButton/ShowMoreButton.js +7 -0
- package/dist/components/ShowMoreButton/index.d.ts +3 -0
- package/dist/components/ShowMoreButton/index.js +1 -0
- package/dist/components/SidebarActions/SidebarActions.d.ts +26 -0
- package/dist/components/SidebarActions/SidebarActions.js +32 -0
- package/dist/components/SidebarActions/index.d.ts +3 -0
- package/dist/components/SidebarActions/index.js +2 -0
- package/dist/components/SimpleRow/SimpleRow.d.ts +15 -0
- package/dist/components/SimpleRow/SimpleRow.js +11 -0
- package/dist/components/SimpleRow/index.d.ts +3 -0
- package/dist/components/SimpleRow/index.js +2 -0
- package/dist/components/Spinner/Spinner.d.ts +9 -0
- package/dist/components/Spinner/Spinner.js +8 -0
- package/dist/components/Spinner/index.d.ts +3 -0
- package/dist/components/Spinner/index.js +1 -0
- package/dist/components/ToggleButton/ToggleButton.d.ts +17 -0
- package/dist/components/ToggleButton/ToggleButton.js +8 -0
- package/dist/components/ToggleButton/index.d.ts +3 -0
- package/dist/components/ToggleButton/index.js +1 -0
- package/dist/components/ToggleSwitch/ToggleSwitch.d.ts +12 -0
- package/dist/components/ToggleSwitch/ToggleSwitch.js +10 -0
- package/dist/components/ToggleSwitch/index.d.ts +3 -0
- package/dist/components/ToggleSwitch/index.js +1 -0
- package/dist/components/TouchHand/TouchHand.d.ts +5 -0
- package/dist/components/TouchHand/TouchHand.js +7 -0
- package/dist/components/TouchHand/index.d.ts +2 -0
- package/dist/components/TouchHand/index.js +1 -0
- package/dist/components/WayfindingFloorSelector/WayfindingFloorSelector.d.ts +24 -0
- package/dist/components/WayfindingFloorSelector/WayfindingFloorSelector.js +27 -0
- package/dist/components/WayfindingFloorSelector/index.d.ts +3 -0
- package/dist/components/WayfindingFloorSelector/index.js +1 -0
- package/dist/index.d.ts +65 -0
- package/dist/index.js +69 -0
- package/dist/shared/debounce.d.ts +2 -0
- package/dist/shared/debounce.js +9 -0
- package/dist/shared/hooks/useDragGesture.d.ts +19 -0
- package/dist/shared/hooks/useDragGesture.js +45 -0
- package/dist/shared/hooks/useOnClickOutside.d.ts +14 -0
- package/dist/shared/hooks/useOnClickOutside.js +43 -0
- package/dist/shared/hooks/useOnEscape.d.ts +14 -0
- package/dist/shared/hooks/useOnEscape.js +31 -0
- package/dist/shared/hooks/useWindowSize.d.ts +5 -0
- package/dist/shared/hooks/useWindowSize.js +40 -0
- package/dist/shared/interactive.d.ts +2 -0
- package/dist/shared/interactive.js +4 -0
- package/package.json +70 -0
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
import './MapControls.scss';
|
|
2
|
+
import { type CSSProperties } from 'react';
|
|
3
|
+
export interface MapControlLayersItem {
|
|
4
|
+
id: string;
|
|
5
|
+
name: string;
|
|
6
|
+
}
|
|
7
|
+
export interface MapControlsProps {
|
|
8
|
+
className?: string;
|
|
9
|
+
style?: CSSProperties;
|
|
10
|
+
title: string;
|
|
11
|
+
findLocationLabel: string;
|
|
12
|
+
zoomInLabel: string;
|
|
13
|
+
zoomOutLabel: string;
|
|
14
|
+
viewModeLabel: string;
|
|
15
|
+
fitToScreenLabel: string;
|
|
16
|
+
layersLabel: string;
|
|
17
|
+
showModeSwitch: boolean;
|
|
18
|
+
showFindLocation: boolean;
|
|
19
|
+
isMap3d: boolean;
|
|
20
|
+
defaultLayersOpen?: boolean;
|
|
21
|
+
layersList?: MapControlLayersItem[];
|
|
22
|
+
layersActiveItems?: string[];
|
|
23
|
+
layersWidth?: number;
|
|
24
|
+
onViewModeSwitch: () => void;
|
|
25
|
+
onFindLocation: () => void;
|
|
26
|
+
onZoomIn: () => void;
|
|
27
|
+
onZoomOut: () => void;
|
|
28
|
+
onFitToScreen: () => void;
|
|
29
|
+
onChangeLayers: (value: string) => void;
|
|
30
|
+
}
|
|
31
|
+
declare const MapControls: ({ className, style, title, findLocationLabel, zoomInLabel, zoomOutLabel, viewModeLabel, fitToScreenLabel, layersLabel, isMap3d, showModeSwitch, showFindLocation, defaultLayersOpen, layersList, layersActiveItems, layersWidth, onViewModeSwitch, onFindLocation, onZoomIn, onZoomOut, onFitToScreen, onChangeLayers, }: MapControlsProps) => import("react").JSX.Element;
|
|
32
|
+
export default MapControls;
|
|
33
|
+
//# sourceMappingURL=MapControls.d.ts.map
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
|
+
import './MapControls.scss';
|
|
3
|
+
import classNames from 'classnames';
|
|
4
|
+
import { useId, useLayoutEffect, useRef, useState } from 'react';
|
|
5
|
+
import useOnClickOutside from '../../shared/hooks/useOnClickOutside';
|
|
6
|
+
import useOnEscape from '../../shared/hooks/useOnEscape';
|
|
7
|
+
const MapControls = ({ className, style, title, findLocationLabel, zoomInLabel, zoomOutLabel, viewModeLabel, fitToScreenLabel, layersLabel, isMap3d, showModeSwitch, showFindLocation, defaultLayersOpen = false, layersList, layersActiveItems = [], layersWidth, onViewModeSwitch, onFindLocation, onZoomIn, onZoomOut, onFitToScreen, onChangeLayers, }) => {
|
|
8
|
+
const refLayersWrapper = useRef(null);
|
|
9
|
+
const refLayersButton = useRef(null);
|
|
10
|
+
const layerIdPrefix = useId();
|
|
11
|
+
const [layersIsOpen, setLayersOpen] = useState(defaultLayersOpen);
|
|
12
|
+
const [menuPosition, setMenuPosition] = useState('down');
|
|
13
|
+
useOnClickOutside(refLayersWrapper, () => setLayersOpen(false), layersIsOpen);
|
|
14
|
+
useOnEscape(() => {
|
|
15
|
+
setLayersOpen(false);
|
|
16
|
+
refLayersButton.current?.focus();
|
|
17
|
+
}, layersIsOpen);
|
|
18
|
+
useLayoutEffect(() => {
|
|
19
|
+
if (layersIsOpen && refLayersWrapper.current) {
|
|
20
|
+
const buttonRect = refLayersWrapper.current.getBoundingClientRect();
|
|
21
|
+
const windowHeight = window.innerHeight;
|
|
22
|
+
const spaceBelow = windowHeight - buttonRect.bottom;
|
|
23
|
+
const minSpaceRequired = 250;
|
|
24
|
+
if (spaceBelow < minSpaceRequired) {
|
|
25
|
+
setMenuPosition('up');
|
|
26
|
+
}
|
|
27
|
+
else {
|
|
28
|
+
setMenuPosition('down');
|
|
29
|
+
}
|
|
30
|
+
}
|
|
31
|
+
}, [layersIsOpen]);
|
|
32
|
+
const handleLayersCheck = (id) => onChangeLayers(id);
|
|
33
|
+
return (_jsxs("div", { className: classNames('efp-map-controls', className), style: style, role: "toolbar", "aria-label": title, children: [showFindLocation && (_jsx("button", { type: "button", className: "efp-map-control", "aria-label": findLocationLabel, title: findLocationLabel, onClick: onFindLocation, children: _jsx("i", { className: "icon-navigation", "aria-hidden": "true" }) })), layersList && (_jsxs("div", { className: "efp-layers-button", ref: refLayersWrapper, children: [_jsx("button", { ref: refLayersButton, type: "button", className: classNames('efp-map-control', { 'efp-map-control--active': layersIsOpen }), "aria-label": layersLabel, title: layersLabel, "aria-haspopup": "true", "aria-expanded": layersIsOpen, onClick: () => setLayersOpen(!layersIsOpen), children: _jsx("i", { className: "icon-layers", "aria-hidden": "true" }) }), layersIsOpen && (_jsx("div", { className: classNames('efp-checked-panel', {
|
|
34
|
+
'efp-checked-panel--opens-up': menuPosition === 'up',
|
|
35
|
+
'efp-checked-panel--opens-down': menuPosition === 'down',
|
|
36
|
+
}), style: { minWidth: layersWidth }, children: _jsx("ul", { className: "efp-checked-panel__list", children: layersList.map((item) => (_jsxs("li", { children: [_jsx("input", { type: "checkbox", className: "efp-checked-panel__checkbox", value: item.id, id: `${layerIdPrefix}-${item.id}`, checked: layersActiveItems.includes(item.id), onChange: () => handleLayersCheck(item.id) }), _jsx("label", { className: "efp-checked-panel__label", htmlFor: `${layerIdPrefix}-${item.id}`, children: _jsx("div", { className: "efp-checked-panel__item-name", children: item.name }) })] }, item.id))) }) }))] })), showModeSwitch && (_jsx("button", { type: "button", className: "efp-map-control", "aria-label": viewModeLabel, title: viewModeLabel, onClick: onViewModeSwitch, children: _jsx("i", { className: isMap3d ? 'icon-two-dim' : 'icon-three-dim', "aria-hidden": "true" }) })), _jsxs("div", { className: "efp-map-control-group", children: [_jsx("button", { type: "button", className: "efp-map-control", "aria-label": zoomInLabel, title: zoomInLabel, onClick: onZoomIn, children: _jsx("i", { className: "icon-plus", "aria-hidden": "true" }) }), _jsx("div", { className: "efp-map-control-divider" }), _jsx("button", { type: "button", className: "efp-map-control", "aria-label": zoomOutLabel, title: zoomOutLabel, onClick: onZoomOut, children: _jsx("i", { className: "icon-minus", "aria-hidden": "true" }) })] }), _jsx("button", { type: "button", className: "efp-map-control", "aria-label": fitToScreenLabel, title: fitToScreenLabel, onClick: onFitToScreen, children: _jsx("i", { className: "icon-maximize", "aria-hidden": "true" }) })] }));
|
|
37
|
+
};
|
|
38
|
+
export default MapControls;
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import './MobileToggleButton.scss';
|
|
2
|
+
export type MobileToggleButtonMode = 'list' | 'map';
|
|
3
|
+
export interface MobileToggleButtonProps {
|
|
4
|
+
mode: MobileToggleButtonMode;
|
|
5
|
+
label: string;
|
|
6
|
+
ariaLabel: string;
|
|
7
|
+
withBanner?: boolean;
|
|
8
|
+
onClick: () => void;
|
|
9
|
+
}
|
|
10
|
+
declare function MobileToggleButton({ mode, label, ariaLabel, withBanner, onClick, }: MobileToggleButtonProps): import("react").JSX.Element;
|
|
11
|
+
export default MobileToggleButton;
|
|
12
|
+
//# sourceMappingURL=MobileToggleButton.d.ts.map
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
|
+
import './MobileToggleButton.scss';
|
|
3
|
+
import classNames from 'classnames';
|
|
4
|
+
function MobileToggleButton({ mode, label, ariaLabel, withBanner, onClick, }) {
|
|
5
|
+
const isListMode = mode === 'list';
|
|
6
|
+
return (_jsxs("button", { className: classNames('efp-mobile-toggle-button', { 'efp-mobile-toggle-button--with-banner': withBanner }, isListMode ? 'efp-mobile-toggle-button--list' : 'efp-mobile-toggle-button--map'), onClick: onClick, type: "button", "aria-label": ariaLabel, children: [_jsx("i", { className: isListMode ? 'icon-list' : 'icon-map', "aria-hidden": "true" }), _jsx("span", { className: "efp-mobile-toggle-button__text", children: label })] }));
|
|
7
|
+
}
|
|
8
|
+
export default MobileToggleButton;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export { default } from './MobileToggleButton';
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
import './Modal.scss';
|
|
2
|
+
import React from 'react';
|
|
3
|
+
import { type ButtonVariant } from '../Button';
|
|
4
|
+
export type ModalVariant = 'default' | 'share';
|
|
5
|
+
export interface ModalButton {
|
|
6
|
+
label: string;
|
|
7
|
+
variant?: ButtonVariant;
|
|
8
|
+
disabled?: boolean;
|
|
9
|
+
withBadge?: boolean;
|
|
10
|
+
onClick: () => void;
|
|
11
|
+
}
|
|
12
|
+
type ModalFooterButton = Omit<ModalButton, 'withBadge'>;
|
|
13
|
+
type ModalLabel = {
|
|
14
|
+
title: string;
|
|
15
|
+
ariaLabel?: string;
|
|
16
|
+
} | {
|
|
17
|
+
title?: undefined;
|
|
18
|
+
ariaLabel: string;
|
|
19
|
+
};
|
|
20
|
+
export type ModalProps = ModalLabel & {
|
|
21
|
+
open: boolean;
|
|
22
|
+
className?: string;
|
|
23
|
+
variant?: ModalVariant;
|
|
24
|
+
maxWidth?: number;
|
|
25
|
+
children?: React.ReactNode;
|
|
26
|
+
closeLabel: string;
|
|
27
|
+
renderTarget?: HTMLElement | null;
|
|
28
|
+
footerLeft?: ModalFooterButton[];
|
|
29
|
+
footerRight?: ModalButton[];
|
|
30
|
+
onClose: () => void;
|
|
31
|
+
};
|
|
32
|
+
declare const Modal: ({ open, className, variant, title, ariaLabel, maxWidth, children, closeLabel, renderTarget, footerLeft, footerRight, onClose, }: ModalProps) => React.ReactPortal | null;
|
|
33
|
+
export default Modal;
|
|
34
|
+
//# sourceMappingURL=Modal.d.ts.map
|
|
@@ -0,0 +1,98 @@
|
|
|
1
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
|
+
import './Modal.scss';
|
|
3
|
+
import classNames from 'classnames';
|
|
4
|
+
import { useEffect, useId, useRef, useState } from 'react';
|
|
5
|
+
import { createPortal } from 'react-dom';
|
|
6
|
+
import Button from '../Button';
|
|
7
|
+
const MODAL_EXIT_TRANSITION_MS = 200;
|
|
8
|
+
const isElementVisible = (el) => el.getClientRects().length > 0 && getComputedStyle(el).visibility !== 'hidden';
|
|
9
|
+
const Modal = ({ open, className, variant = 'default', title, ariaLabel, maxWidth, children, closeLabel, renderTarget, footerLeft = [], footerRight = [], onClose, }) => {
|
|
10
|
+
const modalRef = useRef(null);
|
|
11
|
+
const previousFocusRef = useRef(null);
|
|
12
|
+
const titleId = useId();
|
|
13
|
+
const [isOpen, setIsOpen] = useState(open);
|
|
14
|
+
const [isVisible, setIsVisible] = useState(open);
|
|
15
|
+
// Focus restore + body scroll lock + enter/exit animation. Driven solely by `open`.
|
|
16
|
+
useEffect(() => {
|
|
17
|
+
if (!open) {
|
|
18
|
+
const deactivateFrame = requestAnimationFrame(() => setIsOpen(false));
|
|
19
|
+
const unmountTimer = setTimeout(() => setIsVisible(false), MODAL_EXIT_TRANSITION_MS);
|
|
20
|
+
previousFocusRef.current?.focus();
|
|
21
|
+
previousFocusRef.current = null;
|
|
22
|
+
return () => {
|
|
23
|
+
cancelAnimationFrame(deactivateFrame);
|
|
24
|
+
clearTimeout(unmountTimer);
|
|
25
|
+
};
|
|
26
|
+
}
|
|
27
|
+
previousFocusRef.current ??= document.activeElement;
|
|
28
|
+
const previousBodyOverflow = document.body.style.overflow;
|
|
29
|
+
document.body.style.overflow = 'hidden';
|
|
30
|
+
let activateFrame = 0;
|
|
31
|
+
const mountFrame = requestAnimationFrame(() => {
|
|
32
|
+
setIsVisible(true);
|
|
33
|
+
activateFrame = requestAnimationFrame(() => setIsOpen(true));
|
|
34
|
+
});
|
|
35
|
+
return () => {
|
|
36
|
+
cancelAnimationFrame(mountFrame);
|
|
37
|
+
cancelAnimationFrame(activateFrame);
|
|
38
|
+
document.body.style.overflow = previousBodyOverflow;
|
|
39
|
+
};
|
|
40
|
+
}, [open]);
|
|
41
|
+
// Keydown handling (Escape + focus trap). Kept separate from the lifecycle
|
|
42
|
+
// effect above so a new `onClose` identity only re-subscribes this listener
|
|
43
|
+
// and never restarts the enter/exit animation or scroll lock.
|
|
44
|
+
useEffect(() => {
|
|
45
|
+
if (!open)
|
|
46
|
+
return;
|
|
47
|
+
const handleKeyDown = (e) => {
|
|
48
|
+
if (e.key === 'Escape') {
|
|
49
|
+
e.preventDefault();
|
|
50
|
+
e.stopImmediatePropagation();
|
|
51
|
+
onClose();
|
|
52
|
+
return;
|
|
53
|
+
}
|
|
54
|
+
if (e.key !== 'Tab')
|
|
55
|
+
return;
|
|
56
|
+
const container = modalRef.current;
|
|
57
|
+
if (!container)
|
|
58
|
+
return;
|
|
59
|
+
const focusable = Array.from(container.querySelectorAll('a[href], button:not([disabled]), input:not([disabled]), select:not([disabled]), textarea:not([disabled]), [tabindex]:not([tabindex="-1"])')).filter(isElementVisible);
|
|
60
|
+
if (focusable.length === 0) {
|
|
61
|
+
e.preventDefault();
|
|
62
|
+
return;
|
|
63
|
+
}
|
|
64
|
+
const first = focusable[0];
|
|
65
|
+
const last = focusable[focusable.length - 1];
|
|
66
|
+
const active = document.activeElement;
|
|
67
|
+
if (e.shiftKey) {
|
|
68
|
+
if (active === first || active === container) {
|
|
69
|
+
e.preventDefault();
|
|
70
|
+
last.focus();
|
|
71
|
+
}
|
|
72
|
+
}
|
|
73
|
+
else if (active === last) {
|
|
74
|
+
e.preventDefault();
|
|
75
|
+
first.focus();
|
|
76
|
+
}
|
|
77
|
+
};
|
|
78
|
+
document.addEventListener('keydown', handleKeyDown);
|
|
79
|
+
return () => document.removeEventListener('keydown', handleKeyDown);
|
|
80
|
+
}, [open, onClose]);
|
|
81
|
+
useEffect(() => {
|
|
82
|
+
if (!isOpen)
|
|
83
|
+
return;
|
|
84
|
+
let inner = 0;
|
|
85
|
+
const outer = requestAnimationFrame(() => {
|
|
86
|
+
inner = requestAnimationFrame(() => modalRef.current?.focus());
|
|
87
|
+
});
|
|
88
|
+
return () => {
|
|
89
|
+
cancelAnimationFrame(outer);
|
|
90
|
+
cancelAnimationFrame(inner);
|
|
91
|
+
};
|
|
92
|
+
}, [isOpen]);
|
|
93
|
+
if (!isVisible || !renderTarget)
|
|
94
|
+
return null;
|
|
95
|
+
const renderButtons = (buttons) => buttons?.map(({ label, onClick, variant = 'primary', disabled, withBadge }, idx) => (_jsx(Button, { onClick: onClick, variant: variant, size: "md", inline: true, disabled: disabled, withBadge: withBadge, children: label }, idx)));
|
|
96
|
+
return createPortal(_jsx("div", { className: classNames('efp-modal', `efp-modal--${variant}`, { 'efp-modal--open': isOpen }, className), role: "dialog", "aria-modal": "true", "aria-labelledby": title ? titleId : undefined, "aria-label": !title ? ariaLabel : undefined, ref: modalRef, tabIndex: -1, onClick: onClose, children: _jsxs("div", { className: "efp-modal__box", style: maxWidth ? { maxWidth: `${maxWidth}px` } : undefined, onClick: (e) => e.stopPropagation(), children: [_jsxs("div", { className: "efp-modal__header", children: [title && (_jsx("div", { className: "efp-modal__title-container", children: _jsx("h2", { className: "efp-modal__title", id: titleId, children: title }) })), _jsx("button", { type: "button", className: "efp-modal__close", onClick: onClose, "aria-label": closeLabel, title: closeLabel, children: _jsx("i", { className: "icon-close", "aria-hidden": "true" }) })] }), _jsx("div", { className: "efp-modal__body", children: children }), (footerLeft.length > 0 || footerRight.length > 0) && (_jsxs("div", { className: "efp-modal__footer", children: [_jsx("div", { className: "efp-modal__footer-left", children: footerLeft.length > 0 && renderButtons(footerLeft) }), footerRight.length > 0 && (_jsx("div", { className: "efp-modal__footer-right", children: renderButtons(footerRight) }))] }))] }) }), renderTarget);
|
|
97
|
+
};
|
|
98
|
+
export default Modal;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export { default } from './Modal';
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
import './MultiSelectGroups.scss';
|
|
2
|
+
import React from 'react';
|
|
3
|
+
export interface MultiSelectGroupItem {
|
|
4
|
+
id: number | string;
|
|
5
|
+
name: string;
|
|
6
|
+
count?: number;
|
|
7
|
+
disabled?: boolean;
|
|
8
|
+
countProvider?: () => number;
|
|
9
|
+
}
|
|
10
|
+
export interface MultiSelectGroup {
|
|
11
|
+
groupName: string;
|
|
12
|
+
items: MultiSelectGroupItem[];
|
|
13
|
+
showGroupActions?: boolean;
|
|
14
|
+
customGroupClass?: string;
|
|
15
|
+
fullWidth?: boolean;
|
|
16
|
+
id?: string | number;
|
|
17
|
+
}
|
|
18
|
+
export type MultiSelectVariant = 'default' | 'categories';
|
|
19
|
+
export interface MultiSelectGroupsProps {
|
|
20
|
+
groups: MultiSelectGroup[];
|
|
21
|
+
selectedIds: (number | string)[];
|
|
22
|
+
showItemCounts?: boolean;
|
|
23
|
+
showGroupActions?: boolean;
|
|
24
|
+
variant?: MultiSelectVariant;
|
|
25
|
+
maxItemsVisible?: number;
|
|
26
|
+
selectAllLabel: string;
|
|
27
|
+
clearAllLabel: string;
|
|
28
|
+
selectedLabel: string;
|
|
29
|
+
showMoreLabel: string;
|
|
30
|
+
showLessLabel: string;
|
|
31
|
+
onChange: (selectedIds: (number | string)[]) => void;
|
|
32
|
+
itemCountProvider?: (item: MultiSelectGroupItem) => number;
|
|
33
|
+
customItemRenderer?: (item: MultiSelectGroupItem, isSelected: boolean) => React.ReactNode;
|
|
34
|
+
}
|
|
35
|
+
declare function MultiSelectGroups({ groups, selectedIds, showItemCounts, showGroupActions, variant, maxItemsVisible, selectAllLabel, clearAllLabel, selectedLabel, showMoreLabel, showLessLabel, itemCountProvider, customItemRenderer, onChange, }: MultiSelectGroupsProps): React.JSX.Element | null;
|
|
36
|
+
export default MultiSelectGroups;
|
|
37
|
+
//# sourceMappingURL=MultiSelectGroups.d.ts.map
|
|
@@ -0,0 +1,80 @@
|
|
|
1
|
+
import { Fragment as _Fragment, jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
|
+
import './MultiSelectGroups.scss';
|
|
3
|
+
import cn from 'classnames';
|
|
4
|
+
import React, { useCallback, useMemo, useState } from 'react';
|
|
5
|
+
import ShowMoreButton from '../ShowMoreButton';
|
|
6
|
+
const GroupItem = React.memo(({ item, isSelected, variant, showCount, count, onClick, customRenderer }) => {
|
|
7
|
+
if (customRenderer) {
|
|
8
|
+
return _jsx(_Fragment, { children: customRenderer(item, isSelected) });
|
|
9
|
+
}
|
|
10
|
+
return (_jsxs("button", { type: "button", className: cn('efp-multi-select-groups__item', {
|
|
11
|
+
'efp-multi-select-groups__item--selected': isSelected,
|
|
12
|
+
'efp-multi-select-groups__item--disabled': item.disabled,
|
|
13
|
+
[`efp-multi-select-groups__item--${variant}`]: variant,
|
|
14
|
+
}), onClick: () => !item.disabled && onClick(item.id), disabled: item.disabled, "aria-pressed": isSelected, children: [_jsx("div", { className: "efp-multi-select-groups__item-name", children: item.name }), showCount && count > 0 && (_jsx("span", { className: "efp-multi-select-groups__item-count", children: count }))] }));
|
|
15
|
+
});
|
|
16
|
+
function MultiSelectGroups({ groups = [], selectedIds = [], showItemCounts = true, showGroupActions = true, variant = 'default', maxItemsVisible = 20, selectAllLabel, clearAllLabel, selectedLabel, showMoreLabel, showLessLabel, itemCountProvider, customItemRenderer, onChange, }) {
|
|
17
|
+
const [expandedGroups, setExpandedGroups] = useState(() => new Set());
|
|
18
|
+
const handleItemToggle = useCallback((id) => {
|
|
19
|
+
const newSelected = selectedIds.includes(id)
|
|
20
|
+
? selectedIds.filter((i) => i !== id)
|
|
21
|
+
: [...selectedIds, id];
|
|
22
|
+
onChange(newSelected);
|
|
23
|
+
}, [selectedIds, onChange]);
|
|
24
|
+
const selectAllInGroup = useCallback((group) => {
|
|
25
|
+
const groupItemIds = group.items
|
|
26
|
+
.filter((item) => item.id && !item.disabled)
|
|
27
|
+
.map((item) => item.id);
|
|
28
|
+
const uniqueNewIds = groupItemIds.filter((id) => !selectedIds.includes(id));
|
|
29
|
+
if (uniqueNewIds.length === 0)
|
|
30
|
+
return;
|
|
31
|
+
onChange([...selectedIds, ...uniqueNewIds]);
|
|
32
|
+
}, [selectedIds, onChange]);
|
|
33
|
+
const clearAllInGroup = useCallback((group) => {
|
|
34
|
+
const groupItemIds = new Set(group.items.map((item) => item.id));
|
|
35
|
+
const newSelected = selectedIds.filter((id) => !groupItemIds.has(id));
|
|
36
|
+
onChange(newSelected);
|
|
37
|
+
}, [selectedIds, onChange]);
|
|
38
|
+
const toggleGroupExpansion = useCallback((groupName) => {
|
|
39
|
+
setExpandedGroups((prev) => {
|
|
40
|
+
const newSet = new Set(prev);
|
|
41
|
+
if (newSet.has(groupName))
|
|
42
|
+
newSet.delete(groupName);
|
|
43
|
+
else
|
|
44
|
+
newSet.add(groupName);
|
|
45
|
+
return newSet;
|
|
46
|
+
});
|
|
47
|
+
}, []);
|
|
48
|
+
const getItemCount = (item) => {
|
|
49
|
+
if (item.count !== undefined)
|
|
50
|
+
return item.count;
|
|
51
|
+
if (item.countProvider)
|
|
52
|
+
return item.countProvider();
|
|
53
|
+
if (itemCountProvider)
|
|
54
|
+
return itemCountProvider(item);
|
|
55
|
+
return 0;
|
|
56
|
+
};
|
|
57
|
+
const selectedSet = useMemo(() => new Set(selectedIds), [selectedIds]);
|
|
58
|
+
if (!Array.isArray(groups) || !groups.length) {
|
|
59
|
+
return null;
|
|
60
|
+
}
|
|
61
|
+
return (_jsx("div", { className: "efp-multi-select-groups", children: _jsx("div", { className: "efp-multi-select-groups__list", children: groups.map((group) => {
|
|
62
|
+
if (!group?.groupName || !Array.isArray(group.items))
|
|
63
|
+
return null;
|
|
64
|
+
const validItems = group.items.filter((i) => i.id);
|
|
65
|
+
const selectedItemsInGroup = validItems.filter((item) => selectedSet.has(item.id));
|
|
66
|
+
const isFull = selectedItemsInGroup.length === validItems.length && validItems.length > 0;
|
|
67
|
+
const isPartial = selectedItemsInGroup.length > 0 && !isFull;
|
|
68
|
+
const isExpanded = expandedGroups.has(group.groupName);
|
|
69
|
+
const visibleItems = isExpanded || validItems.length <= maxItemsVisible
|
|
70
|
+
? validItems
|
|
71
|
+
: validItems.slice(0, maxItemsVisible);
|
|
72
|
+
const hiddenCount = validItems.length - visibleItems.length;
|
|
73
|
+
const hiddenSelectedCount = hiddenCount > 0
|
|
74
|
+
? validItems.slice(maxItemsVisible).filter((item) => selectedSet.has(item.id)).length
|
|
75
|
+
: 0;
|
|
76
|
+
return (_jsxs("div", { className: cn('efp-multi-select-groups__group', { 'efp-multi-select-groups__group--full-width': group.fullWidth }, group.customGroupClass), children: [_jsxs("div", { className: "efp-multi-select-groups__group-header", children: [_jsx("div", { className: "efp-multi-select-groups__group-title", children: group.groupName }), showGroupActions && group.showGroupActions !== false && (_jsxs("div", { className: "efp-multi-select-groups__group-actions", children: [!isFull && (_jsx("button", { type: "button", className: "efp-multi-select-groups__action-btn", onClick: () => selectAllInGroup(group), children: selectAllLabel })), (isPartial || isFull) && (_jsx("button", { type: "button", className: "efp-multi-select-groups__action-btn", onClick: () => clearAllInGroup(group), children: clearAllLabel }))] }))] }), _jsx("div", { className: "efp-multi-select-groups__group-items", children: visibleItems.map((item) => (_jsx(GroupItem, { item: item, isSelected: selectedSet.has(item.id), variant: variant, showCount: showItemCounts, count: getItemCount(item), onClick: handleItemToggle, customRenderer: customItemRenderer }, item.id))) }), validItems.length > maxItemsVisible && (_jsx(ShowMoreButton, { className: "efp-multi-select-groups__show-more", expanded: isExpanded, showMoreLabel: showMoreLabel, showLessLabel: showLessLabel, onClick: () => toggleGroupExpansion(group.groupName), suffix: !isExpanded &&
|
|
77
|
+
hiddenSelectedCount > 0 && (_jsxs("span", { className: "efp-multi-select-groups__show-more-badge", children: [hiddenSelectedCount, " ", selectedLabel] })) }))] }, group.groupName));
|
|
78
|
+
}) }) }));
|
|
79
|
+
}
|
|
80
|
+
export default MultiSelectGroups;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export { default } from './MultiSelectGroups';
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
import './Overlay.scss';
|
|
2
|
+
import { type ReactNode } from 'react';
|
|
3
|
+
export type Size = 'small' | 'medium' | 'full';
|
|
4
|
+
export interface OverlayProps {
|
|
5
|
+
children?: ReactNode;
|
|
6
|
+
open: boolean;
|
|
7
|
+
size?: Size;
|
|
8
|
+
/** Slot rendered above the content (e.g. a particles canvas); nothing when omitted. */
|
|
9
|
+
particles?: ReactNode;
|
|
10
|
+
className?: string;
|
|
11
|
+
smallSizeMultiplier?: number;
|
|
12
|
+
mediumSizeMultiplier?: number;
|
|
13
|
+
fullSizeOffset?: number;
|
|
14
|
+
scrollThreshold?: number;
|
|
15
|
+
disableDrag?: boolean;
|
|
16
|
+
forceFull?: boolean;
|
|
17
|
+
scrollResetKey?: unknown;
|
|
18
|
+
/** Viewport width (px) at or below which the overlay switches to its mobile bottom-sheet mode. */
|
|
19
|
+
mobileBreakpoint?: number;
|
|
20
|
+
/** Shown when `children` is empty. */
|
|
21
|
+
noContentLabel: string;
|
|
22
|
+
onChangeSize?: (size: Size) => void;
|
|
23
|
+
onScrollStateChange?: (isScrolled: boolean) => void;
|
|
24
|
+
/** Fired (debounced) on scroll — lets the host react to user activity. */
|
|
25
|
+
onScrollActivity?: () => void;
|
|
26
|
+
}
|
|
27
|
+
declare const Overlay: ({ children, open, size, particles, className, onChangeSize, onScrollStateChange, onScrollActivity, smallSizeMultiplier, mediumSizeMultiplier, fullSizeOffset, scrollThreshold, disableDrag, forceFull, scrollResetKey, mobileBreakpoint, noContentLabel, }: OverlayProps) => import("react").JSX.Element | null;
|
|
28
|
+
export default Overlay;
|
|
29
|
+
//# sourceMappingURL=Overlay.d.ts.map
|