@activecollab/components 2.0.498 → 2.0.499
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/dist/cjs/components/Button/AddToListButton/AddToListButton.js +13 -1
- package/dist/cjs/components/Button/AddToListButton/AddToListButton.js.map +1 -1
- package/dist/cjs/components/Button/AddToListButton/Styles.js +16 -1
- package/dist/cjs/components/Button/AddToListButton/Styles.js.map +1 -1
- package/dist/cjs/components/ButtonGroup/ButtonGroup.js +5 -2
- package/dist/cjs/components/ButtonGroup/ButtonGroup.js.map +1 -1
- package/dist/cjs/components/ButtonGroup/Styles.js +11 -7
- package/dist/cjs/components/ButtonGroup/Styles.js.map +1 -1
- package/dist/cjs/components/Card/Card.js +9 -2
- package/dist/cjs/components/Card/Card.js.map +1 -1
- package/dist/cjs/components/Card/Styles.js +6 -1
- package/dist/cjs/components/Card/Styles.js.map +1 -1
- package/dist/cjs/components/Chip/Chip.js +21 -6
- package/dist/cjs/components/Chip/Chip.js.map +1 -1
- package/dist/cjs/components/Chip/ChipGroup.js +27 -0
- package/dist/cjs/components/Chip/ChipGroup.js.map +1 -0
- package/dist/cjs/components/Chip/ChipGroupStyles.js +17 -0
- package/dist/cjs/components/Chip/ChipGroupStyles.js.map +1 -0
- package/dist/cjs/components/Chip/Styles.js +55 -19
- package/dist/cjs/components/Chip/Styles.js.map +1 -1
- package/dist/cjs/components/Chip/index.js +11 -0
- package/dist/cjs/components/Chip/index.js.map +1 -1
- package/dist/cjs/components/ClampedContent/ClampedContent.js +131 -0
- package/dist/cjs/components/ClampedContent/ClampedContent.js.map +1 -0
- package/dist/cjs/components/ClampedContent/Styles.js +28 -0
- package/dist/cjs/components/ClampedContent/Styles.js.map +1 -0
- package/dist/cjs/components/ClampedContent/index.js +17 -0
- package/dist/cjs/components/ClampedContent/index.js.map +1 -0
- package/dist/cjs/components/Collapse/Collapse.js +93 -0
- package/dist/cjs/components/Collapse/Collapse.js.map +1 -0
- package/dist/cjs/components/Collapse/Styles.js +26 -0
- package/dist/cjs/components/Collapse/Styles.js.map +1 -0
- package/dist/cjs/components/Collapse/index.js +17 -0
- package/dist/cjs/components/Collapse/index.js.map +1 -0
- package/dist/cjs/components/CompleteCheckbox/CompleteCheckbox.js +24 -2
- package/dist/cjs/components/CompleteCheckbox/CompleteCheckbox.js.map +1 -1
- package/dist/cjs/components/CompleteCheckbox/Styles.js +17 -1
- package/dist/cjs/components/CompleteCheckbox/Styles.js.map +1 -1
- package/dist/cjs/components/DockedCard/DockedCard.js +68 -0
- package/dist/cjs/components/DockedCard/DockedCard.js.map +1 -0
- package/dist/cjs/components/DockedCard/Styles.js +36 -0
- package/dist/cjs/components/DockedCard/Styles.js.map +1 -0
- package/dist/cjs/components/DockedCard/index.js +28 -0
- package/dist/cjs/components/DockedCard/index.js.map +1 -0
- package/dist/cjs/components/DockedCard/useDockedCard.js +236 -0
- package/dist/cjs/components/DockedCard/useDockedCard.js.map +1 -0
- package/dist/cjs/components/EditableContent/EditableContent.js.map +1 -1
- package/dist/cjs/components/EditorFrame/EditorFrame.js +51 -0
- package/dist/cjs/components/EditorFrame/EditorFrame.js.map +1 -0
- package/dist/cjs/components/EditorFrame/Styles.js +29 -0
- package/dist/cjs/components/EditorFrame/Styles.js.map +1 -0
- package/dist/cjs/components/EditorFrame/index.js +17 -0
- package/dist/cjs/components/EditorFrame/index.js.map +1 -0
- package/dist/cjs/components/EmptySlate/EmptySlate.js +19 -9
- package/dist/cjs/components/EmptySlate/EmptySlate.js.map +1 -1
- package/dist/cjs/components/EmptySlate/EmptySlate.styles.js +20 -6
- package/dist/cjs/components/EmptySlate/EmptySlate.styles.js.map +1 -1
- package/dist/cjs/components/FileTile/FileTile.js +138 -0
- package/dist/cjs/components/FileTile/FileTile.js.map +1 -0
- package/dist/cjs/components/FileTile/Styles.js +71 -0
- package/dist/cjs/components/FileTile/Styles.js.map +1 -0
- package/dist/cjs/components/FileTile/index.js +17 -0
- package/dist/cjs/components/FileTile/index.js.map +1 -0
- package/dist/cjs/components/FloatingPill/FloatingPill.js +33 -0
- package/dist/cjs/components/FloatingPill/FloatingPill.js.map +1 -0
- package/dist/cjs/components/FloatingPill/Styles.js +16 -0
- package/dist/cjs/components/FloatingPill/Styles.js.map +1 -0
- package/dist/cjs/components/FloatingPill/index.js +17 -0
- package/dist/cjs/components/FloatingPill/index.js.map +1 -0
- package/dist/cjs/components/Icons/collection/FlagFilled.js +71 -0
- package/dist/cjs/components/Icons/collection/FlagFilled.js.map +1 -0
- package/dist/cjs/components/Icons/collection/FlagOutline.js +72 -0
- package/dist/cjs/components/Icons/collection/FlagOutline.js.map +1 -0
- package/dist/cjs/components/Icons/collection/LayoutColumn.js +70 -0
- package/dist/cjs/components/Icons/collection/LayoutColumn.js.map +1 -0
- package/dist/cjs/components/Icons/collection/LayoutSidebar.js +68 -0
- package/dist/cjs/components/Icons/collection/LayoutSidebar.js.map +1 -0
- package/dist/cjs/components/Icons/collection/LayoutWide.js +70 -0
- package/dist/cjs/components/Icons/collection/LayoutWide.js.map +1 -0
- package/dist/cjs/components/Icons/collection/index.js +35 -0
- package/dist/cjs/components/Icons/collection/index.js.map +1 -1
- package/dist/cjs/components/LabeledDivider/LabeledDivider.js +39 -0
- package/dist/cjs/components/LabeledDivider/LabeledDivider.js.map +1 -0
- package/dist/cjs/components/LabeledDivider/Styles.js +27 -0
- package/dist/cjs/components/LabeledDivider/Styles.js.map +1 -0
- package/dist/cjs/components/LabeledDivider/index.js +17 -0
- package/dist/cjs/components/LabeledDivider/index.js.map +1 -0
- package/dist/cjs/components/ListRow/ListRow.js +48 -0
- package/dist/cjs/components/ListRow/ListRow.js.map +1 -0
- package/dist/cjs/components/ListRow/Styles.js +25 -0
- package/dist/cjs/components/ListRow/Styles.js.map +1 -0
- package/dist/cjs/components/ListRow/index.js +17 -0
- package/dist/cjs/components/ListRow/index.js.map +1 -0
- package/dist/cjs/components/Loaders/Skeleton/SkeletonLoader.js +11 -2
- package/dist/cjs/components/Loaders/Skeleton/SkeletonLoader.js.map +1 -1
- package/dist/cjs/components/Loaders/Skeleton/Styles.js +13 -1
- package/dist/cjs/components/Loaders/Skeleton/Styles.js.map +1 -1
- package/dist/cjs/components/Menu/Menu.js +4 -1
- package/dist/cjs/components/Menu/Menu.js.map +1 -1
- package/dist/cjs/components/Menu/MenuFooter.js +18 -2
- package/dist/cjs/components/Menu/MenuFooter.js.map +1 -1
- package/dist/cjs/components/Menu/Styles.js +9 -3
- package/dist/cjs/components/Menu/Styles.js.map +1 -1
- package/dist/cjs/components/MessageBubble/MessageBubble.js +78 -0
- package/dist/cjs/components/MessageBubble/MessageBubble.js.map +1 -0
- package/dist/cjs/components/MessageBubble/Styles.js +56 -0
- package/dist/cjs/components/MessageBubble/Styles.js.map +1 -0
- package/dist/cjs/components/MessageBubble/index.js +17 -0
- package/dist/cjs/components/MessageBubble/index.js.map +1 -0
- package/dist/cjs/components/ObjectLayout/ObjectLayout.js +184 -0
- package/dist/cjs/components/ObjectLayout/ObjectLayout.js.map +1 -0
- package/dist/cjs/components/ObjectLayout/Styles.js +83 -0
- package/dist/cjs/components/ObjectLayout/Styles.js.map +1 -0
- package/dist/cjs/components/ObjectLayout/index.js +17 -0
- package/dist/cjs/components/ObjectLayout/index.js.map +1 -0
- package/dist/cjs/components/ProgressBar/ProgressBar.js +14 -3
- package/dist/cjs/components/ProgressBar/ProgressBar.js.map +1 -1
- package/dist/cjs/components/ProgressBar/Styles.js +8 -2
- package/dist/cjs/components/ProgressBar/Styles.js.map +1 -1
- package/dist/cjs/components/PropertyList/PropertyList.js +186 -0
- package/dist/cjs/components/PropertyList/PropertyList.js.map +1 -0
- package/dist/cjs/components/PropertyList/Styles.js +104 -0
- package/dist/cjs/components/PropertyList/Styles.js.map +1 -0
- package/dist/cjs/components/PropertyList/index.js +17 -0
- package/dist/cjs/components/PropertyList/index.js.map +1 -0
- package/dist/cjs/components/ResizeHandle/ResizeHandle.js +38 -0
- package/dist/cjs/components/ResizeHandle/ResizeHandle.js.map +1 -0
- package/dist/cjs/components/ResizeHandle/Styles.js +26 -0
- package/dist/cjs/components/ResizeHandle/Styles.js.map +1 -0
- package/dist/cjs/components/ResizeHandle/index.js +17 -0
- package/dist/cjs/components/ResizeHandle/index.js.map +1 -0
- package/dist/cjs/components/Section/Section.js +49 -0
- package/dist/cjs/components/Section/Section.js.map +1 -0
- package/dist/cjs/components/Section/Styles.js +29 -0
- package/dist/cjs/components/Section/Styles.js.map +1 -0
- package/dist/cjs/components/Section/index.js +17 -0
- package/dist/cjs/components/Section/index.js.map +1 -0
- package/dist/cjs/components/Sheet/Sheet.js +8 -3
- package/dist/cjs/components/Sheet/Sheet.js.map +1 -1
- package/dist/cjs/components/Sheet/Styles.js +8 -2
- package/dist/cjs/components/Sheet/Styles.js.map +1 -1
- package/dist/cjs/components/Typography/Styles.js +11 -1
- package/dist/cjs/components/Typography/Styles.js.map +1 -1
- package/dist/cjs/components/Typography/Typography.js.map +1 -1
- package/dist/cjs/components/Typography/Variants/Title3.js +26 -0
- package/dist/cjs/components/Typography/Variants/Title3.js.map +1 -0
- package/dist/cjs/components/Typography/index.js +11 -0
- package/dist/cjs/components/Typography/index.js.map +1 -1
- package/dist/cjs/components/index.js +143 -0
- package/dist/cjs/components/index.js.map +1 -1
- package/dist/cjs/hooks/index.js +22 -0
- package/dist/cjs/hooks/index.js.map +1 -1
- package/dist/cjs/hooks/useLongPress.js +97 -0
- package/dist/cjs/hooks/useLongPress.js.map +1 -0
- package/dist/cjs/hooks/useResizablePanel.js +120 -0
- package/dist/cjs/hooks/useResizablePanel.js.map +1 -0
- package/dist/cjs/utils/useContainerCss.js +19 -0
- package/dist/cjs/utils/useContainerCss.js.map +1 -0
- package/dist/esm/components/Button/AddToListButton/AddToListButton.d.ts +5 -1
- package/dist/esm/components/Button/AddToListButton/AddToListButton.d.ts.map +1 -1
- package/dist/esm/components/Button/AddToListButton/AddToListButton.js +14 -2
- package/dist/esm/components/Button/AddToListButton/AddToListButton.js.map +1 -1
- package/dist/esm/components/Button/AddToListButton/Styles.d.ts +3 -0
- package/dist/esm/components/Button/AddToListButton/Styles.d.ts.map +1 -1
- package/dist/esm/components/Button/AddToListButton/Styles.js +15 -0
- package/dist/esm/components/Button/AddToListButton/Styles.js.map +1 -1
- package/dist/esm/components/ButtonGroup/ButtonGroup.d.ts +2 -0
- package/dist/esm/components/ButtonGroup/ButtonGroup.d.ts.map +1 -1
- package/dist/esm/components/ButtonGroup/ButtonGroup.js +5 -2
- package/dist/esm/components/ButtonGroup/ButtonGroup.js.map +1 -1
- package/dist/esm/components/ButtonGroup/Styles.d.ts +1 -0
- package/dist/esm/components/ButtonGroup/Styles.d.ts.map +1 -1
- package/dist/esm/components/ButtonGroup/Styles.js +9 -7
- package/dist/esm/components/ButtonGroup/Styles.js.map +1 -1
- package/dist/esm/components/Card/Card.d.ts +5 -1
- package/dist/esm/components/Card/Card.d.ts.map +1 -1
- package/dist/esm/components/Card/Card.js +9 -2
- package/dist/esm/components/Card/Card.js.map +1 -1
- package/dist/esm/components/Card/Styles.d.ts +3 -0
- package/dist/esm/components/Card/Styles.d.ts.map +1 -1
- package/dist/esm/components/Card/Styles.js +6 -1
- package/dist/esm/components/Card/Styles.js.map +1 -1
- package/dist/esm/components/Chip/Chip.d.ts +13 -1
- package/dist/esm/components/Chip/Chip.d.ts.map +1 -1
- package/dist/esm/components/Chip/Chip.js +21 -6
- package/dist/esm/components/Chip/Chip.js.map +1 -1
- package/dist/esm/components/Chip/ChipGroup.d.ts +7 -0
- package/dist/esm/components/Chip/ChipGroup.d.ts.map +1 -0
- package/dist/esm/components/Chip/ChipGroup.js +19 -0
- package/dist/esm/components/Chip/ChipGroup.js.map +1 -0
- package/dist/esm/components/Chip/ChipGroupStyles.d.ts +4 -0
- package/dist/esm/components/Chip/ChipGroupStyles.d.ts.map +1 -0
- package/dist/esm/components/Chip/ChipGroupStyles.js +8 -0
- package/dist/esm/components/Chip/ChipGroupStyles.js.map +1 -0
- package/dist/esm/components/Chip/Styles.d.ts +9 -3
- package/dist/esm/components/Chip/Styles.d.ts.map +1 -1
- package/dist/esm/components/Chip/Styles.js +36 -13
- package/dist/esm/components/Chip/Styles.js.map +1 -1
- package/dist/esm/components/Chip/index.d.ts +1 -0
- package/dist/esm/components/Chip/index.d.ts.map +1 -1
- package/dist/esm/components/Chip/index.js +1 -0
- package/dist/esm/components/Chip/index.js.map +1 -1
- package/dist/esm/components/ClampedContent/ClampedContent.d.ts +18 -0
- package/dist/esm/components/ClampedContent/ClampedContent.d.ts.map +1 -0
- package/dist/esm/components/ClampedContent/ClampedContent.js +109 -0
- package/dist/esm/components/ClampedContent/ClampedContent.js.map +1 -0
- package/dist/esm/components/ClampedContent/Styles.d.ts +8 -0
- package/dist/esm/components/ClampedContent/Styles.d.ts.map +1 -0
- package/dist/esm/components/ClampedContent/Styles.js +21 -0
- package/dist/esm/components/ClampedContent/Styles.js.map +1 -0
- package/dist/esm/components/ClampedContent/index.d.ts +2 -0
- package/dist/esm/components/ClampedContent/index.d.ts.map +1 -0
- package/dist/esm/components/ClampedContent/index.js +2 -0
- package/dist/esm/components/ClampedContent/index.js.map +1 -0
- package/dist/esm/components/Collapse/Collapse.d.ts +15 -0
- package/dist/esm/components/Collapse/Collapse.d.ts.map +1 -0
- package/dist/esm/components/Collapse/Collapse.js +68 -0
- package/dist/esm/components/Collapse/Collapse.js.map +1 -0
- package/dist/esm/components/Collapse/Styles.d.ts +8 -0
- package/dist/esm/components/Collapse/Styles.d.ts.map +1 -0
- package/dist/esm/components/Collapse/Styles.js +19 -0
- package/dist/esm/components/Collapse/Styles.js.map +1 -0
- package/dist/esm/components/Collapse/index.d.ts +2 -0
- package/dist/esm/components/Collapse/index.d.ts.map +1 -0
- package/dist/esm/components/Collapse/index.js +2 -0
- package/dist/esm/components/Collapse/index.js.map +1 -0
- package/dist/esm/components/CompleteCheckbox/CompleteCheckbox.d.ts +9 -1
- package/dist/esm/components/CompleteCheckbox/CompleteCheckbox.d.ts.map +1 -1
- package/dist/esm/components/CompleteCheckbox/CompleteCheckbox.js +24 -2
- package/dist/esm/components/CompleteCheckbox/CompleteCheckbox.js.map +1 -1
- package/dist/esm/components/CompleteCheckbox/Styles.d.ts +4 -0
- package/dist/esm/components/CompleteCheckbox/Styles.d.ts.map +1 -1
- package/dist/esm/components/CompleteCheckbox/Styles.js +16 -0
- package/dist/esm/components/CompleteCheckbox/Styles.js.map +1 -1
- package/dist/esm/components/DockedCard/DockedCard.d.ts +26 -0
- package/dist/esm/components/DockedCard/DockedCard.d.ts.map +1 -0
- package/dist/esm/components/DockedCard/DockedCard.js +54 -0
- package/dist/esm/components/DockedCard/DockedCard.js.map +1 -0
- package/dist/esm/components/DockedCard/Styles.d.ts +9 -0
- package/dist/esm/components/DockedCard/Styles.d.ts.map +1 -0
- package/dist/esm/components/DockedCard/Styles.js +29 -0
- package/dist/esm/components/DockedCard/Styles.js.map +1 -0
- package/dist/esm/components/DockedCard/index.d.ts +3 -0
- package/dist/esm/components/DockedCard/index.d.ts.map +1 -0
- package/dist/esm/components/DockedCard/index.js +3 -0
- package/dist/esm/components/DockedCard/index.js.map +1 -0
- package/dist/esm/components/DockedCard/useDockedCard.d.ts +37 -0
- package/dist/esm/components/DockedCard/useDockedCard.d.ts.map +1 -0
- package/dist/esm/components/DockedCard/useDockedCard.js +194 -0
- package/dist/esm/components/DockedCard/useDockedCard.js.map +1 -0
- package/dist/esm/components/EditableContent/EditableContent.d.ts +1 -1
- package/dist/esm/components/EditableContent/EditableContent.d.ts.map +1 -1
- package/dist/esm/components/EditableContent/EditableContent.js.map +1 -1
- package/dist/esm/components/EditorFrame/EditorFrame.d.ts +14 -0
- package/dist/esm/components/EditorFrame/EditorFrame.d.ts.map +1 -0
- package/dist/esm/components/EditorFrame/EditorFrame.js +42 -0
- package/dist/esm/components/EditorFrame/EditorFrame.js.map +1 -0
- package/dist/esm/components/EditorFrame/Styles.d.ts +13 -0
- package/dist/esm/components/EditorFrame/Styles.d.ts.map +1 -0
- package/dist/esm/components/EditorFrame/Styles.js +22 -0
- package/dist/esm/components/EditorFrame/Styles.js.map +1 -0
- package/dist/esm/components/EditorFrame/index.d.ts +2 -0
- package/dist/esm/components/EditorFrame/index.d.ts.map +1 -0
- package/dist/esm/components/EditorFrame/index.js +2 -0
- package/dist/esm/components/EditorFrame/index.js.map +1 -0
- package/dist/esm/components/EmptySlate/EmptySlate.d.ts +9 -4
- package/dist/esm/components/EmptySlate/EmptySlate.d.ts.map +1 -1
- package/dist/esm/components/EmptySlate/EmptySlate.js +19 -9
- package/dist/esm/components/EmptySlate/EmptySlate.js.map +1 -1
- package/dist/esm/components/EmptySlate/EmptySlate.styles.d.ts +8 -4
- package/dist/esm/components/EmptySlate/EmptySlate.styles.d.ts.map +1 -1
- package/dist/esm/components/EmptySlate/EmptySlate.styles.js +5 -5
- package/dist/esm/components/EmptySlate/EmptySlate.styles.js.map +1 -1
- package/dist/esm/components/FileTile/FileTile.d.ts +63 -0
- package/dist/esm/components/FileTile/FileTile.d.ts.map +1 -0
- package/dist/esm/components/FileTile/FileTile.js +129 -0
- package/dist/esm/components/FileTile/FileTile.js.map +1 -0
- package/dist/esm/components/FileTile/Styles.d.ts +19 -0
- package/dist/esm/components/FileTile/Styles.d.ts.map +1 -0
- package/dist/esm/components/FileTile/Styles.js +64 -0
- package/dist/esm/components/FileTile/Styles.js.map +1 -0
- package/dist/esm/components/FileTile/index.d.ts +2 -0
- package/dist/esm/components/FileTile/index.d.ts.map +1 -0
- package/dist/esm/components/FileTile/index.js +2 -0
- package/dist/esm/components/FileTile/index.js.map +1 -0
- package/dist/esm/components/FloatingPill/FloatingPill.d.ts +9 -0
- package/dist/esm/components/FloatingPill/FloatingPill.d.ts.map +1 -0
- package/dist/esm/components/FloatingPill/FloatingPill.js +24 -0
- package/dist/esm/components/FloatingPill/FloatingPill.js.map +1 -0
- package/dist/esm/components/FloatingPill/Styles.d.ts +4 -0
- package/dist/esm/components/FloatingPill/Styles.d.ts.map +1 -0
- package/dist/esm/components/FloatingPill/Styles.js +9 -0
- package/dist/esm/components/FloatingPill/Styles.js.map +1 -0
- package/dist/esm/components/FloatingPill/index.d.ts +2 -0
- package/dist/esm/components/FloatingPill/index.d.ts.map +1 -0
- package/dist/esm/components/FloatingPill/index.js +2 -0
- package/dist/esm/components/FloatingPill/index.js.map +1 -0
- package/dist/esm/components/Icons/collection/FlagFilled.d.ts +32 -0
- package/dist/esm/components/Icons/collection/FlagFilled.d.ts.map +1 -0
- package/dist/esm/components/Icons/collection/FlagFilled.js +64 -0
- package/dist/esm/components/Icons/collection/FlagFilled.js.map +1 -0
- package/dist/esm/components/Icons/collection/FlagOutline.d.ts +32 -0
- package/dist/esm/components/Icons/collection/FlagOutline.d.ts.map +1 -0
- package/dist/esm/components/Icons/collection/FlagOutline.js +65 -0
- package/dist/esm/components/Icons/collection/FlagOutline.js.map +1 -0
- package/dist/esm/components/Icons/collection/LayoutColumn.d.ts +32 -0
- package/dist/esm/components/Icons/collection/LayoutColumn.d.ts.map +1 -0
- package/dist/esm/components/Icons/collection/LayoutColumn.js +63 -0
- package/dist/esm/components/Icons/collection/LayoutColumn.js.map +1 -0
- package/dist/esm/components/Icons/collection/LayoutSidebar.d.ts +32 -0
- package/dist/esm/components/Icons/collection/LayoutSidebar.d.ts.map +1 -0
- package/dist/esm/components/Icons/collection/LayoutSidebar.js +61 -0
- package/dist/esm/components/Icons/collection/LayoutSidebar.js.map +1 -0
- package/dist/esm/components/Icons/collection/LayoutWide.d.ts +32 -0
- package/dist/esm/components/Icons/collection/LayoutWide.d.ts.map +1 -0
- package/dist/esm/components/Icons/collection/LayoutWide.js +63 -0
- package/dist/esm/components/Icons/collection/LayoutWide.js.map +1 -0
- package/dist/esm/components/Icons/collection/index.d.ts +5 -0
- package/dist/esm/components/Icons/collection/index.d.ts.map +1 -1
- package/dist/esm/components/Icons/collection/index.js +5 -0
- package/dist/esm/components/Icons/collection/index.js.map +1 -1
- package/dist/esm/components/LabeledDivider/LabeledDivider.d.ts +11 -0
- package/dist/esm/components/LabeledDivider/LabeledDivider.d.ts.map +1 -0
- package/dist/esm/components/LabeledDivider/LabeledDivider.js +30 -0
- package/dist/esm/components/LabeledDivider/LabeledDivider.js.map +1 -0
- package/dist/esm/components/LabeledDivider/Styles.d.ts +10 -0
- package/dist/esm/components/LabeledDivider/Styles.d.ts.map +1 -0
- package/dist/esm/components/LabeledDivider/Styles.js +20 -0
- package/dist/esm/components/LabeledDivider/Styles.js.map +1 -0
- package/dist/esm/components/LabeledDivider/index.d.ts +2 -0
- package/dist/esm/components/LabeledDivider/index.d.ts.map +1 -0
- package/dist/esm/components/LabeledDivider/index.js +2 -0
- package/dist/esm/components/LabeledDivider/index.js.map +1 -0
- package/dist/esm/components/ListRow/ListRow.d.ts +19 -0
- package/dist/esm/components/ListRow/ListRow.d.ts.map +1 -0
- package/dist/esm/components/ListRow/ListRow.js +39 -0
- package/dist/esm/components/ListRow/ListRow.js.map +1 -0
- package/dist/esm/components/ListRow/Styles.d.ts +7 -0
- package/dist/esm/components/ListRow/Styles.d.ts.map +1 -0
- package/dist/esm/components/ListRow/Styles.js +18 -0
- package/dist/esm/components/ListRow/Styles.js.map +1 -0
- package/dist/esm/components/ListRow/index.d.ts +2 -0
- package/dist/esm/components/ListRow/index.d.ts.map +1 -0
- package/dist/esm/components/ListRow/index.js +2 -0
- package/dist/esm/components/ListRow/index.js.map +1 -0
- package/dist/esm/components/Loaders/Skeleton/SkeletonLoader.d.ts +11 -1
- package/dist/esm/components/Loaders/Skeleton/SkeletonLoader.d.ts.map +1 -1
- package/dist/esm/components/Loaders/Skeleton/SkeletonLoader.js +11 -2
- package/dist/esm/components/Loaders/Skeleton/SkeletonLoader.js.map +1 -1
- package/dist/esm/components/Loaders/Skeleton/Styles.d.ts +8 -1
- package/dist/esm/components/Loaders/Skeleton/Styles.d.ts.map +1 -1
- package/dist/esm/components/Loaders/Skeleton/Styles.js +4 -2
- package/dist/esm/components/Loaders/Skeleton/Styles.js.map +1 -1
- package/dist/esm/components/Menu/Menu.d.ts +2 -0
- package/dist/esm/components/Menu/Menu.d.ts.map +1 -1
- package/dist/esm/components/Menu/Menu.js +4 -1
- package/dist/esm/components/Menu/Menu.js.map +1 -1
- package/dist/esm/components/Menu/MenuFooter.d.ts +12 -0
- package/dist/esm/components/Menu/MenuFooter.d.ts.map +1 -1
- package/dist/esm/components/Menu/MenuFooter.js +17 -3
- package/dist/esm/components/Menu/MenuFooter.js.map +1 -1
- package/dist/esm/components/Menu/Styles.d.ts +4 -1
- package/dist/esm/components/Menu/Styles.d.ts.map +1 -1
- package/dist/esm/components/Menu/Styles.js +7 -3
- package/dist/esm/components/Menu/Styles.js.map +1 -1
- package/dist/esm/components/MessageBubble/MessageBubble.d.ts +29 -0
- package/dist/esm/components/MessageBubble/MessageBubble.d.ts.map +1 -0
- package/dist/esm/components/MessageBubble/MessageBubble.js +69 -0
- package/dist/esm/components/MessageBubble/MessageBubble.js.map +1 -0
- package/dist/esm/components/MessageBubble/Styles.d.ts +16 -0
- package/dist/esm/components/MessageBubble/Styles.d.ts.map +1 -0
- package/dist/esm/components/MessageBubble/Styles.js +51 -0
- package/dist/esm/components/MessageBubble/Styles.js.map +1 -0
- package/dist/esm/components/MessageBubble/index.d.ts +2 -0
- package/dist/esm/components/MessageBubble/index.d.ts.map +1 -0
- package/dist/esm/components/MessageBubble/index.js +2 -0
- package/dist/esm/components/MessageBubble/index.js.map +1 -0
- package/dist/esm/components/ObjectLayout/ObjectLayout.d.ts +32 -0
- package/dist/esm/components/ObjectLayout/ObjectLayout.d.ts.map +1 -0
- package/dist/esm/components/ObjectLayout/ObjectLayout.js +162 -0
- package/dist/esm/components/ObjectLayout/ObjectLayout.js.map +1 -0
- package/dist/esm/components/ObjectLayout/Styles.d.ts +25 -0
- package/dist/esm/components/ObjectLayout/Styles.d.ts.map +1 -0
- package/dist/esm/components/ObjectLayout/Styles.js +76 -0
- package/dist/esm/components/ObjectLayout/Styles.js.map +1 -0
- package/dist/esm/components/ObjectLayout/index.d.ts +2 -0
- package/dist/esm/components/ObjectLayout/index.d.ts.map +1 -0
- package/dist/esm/components/ObjectLayout/index.js +2 -0
- package/dist/esm/components/ObjectLayout/index.js.map +1 -0
- package/dist/esm/components/ProgressBar/ProgressBar.d.ts +9 -2
- package/dist/esm/components/ProgressBar/ProgressBar.d.ts.map +1 -1
- package/dist/esm/components/ProgressBar/ProgressBar.js +14 -3
- package/dist/esm/components/ProgressBar/ProgressBar.js.map +1 -1
- package/dist/esm/components/ProgressBar/Styles.d.ts +2 -0
- package/dist/esm/components/ProgressBar/Styles.d.ts.map +1 -1
- package/dist/esm/components/ProgressBar/Styles.js +2 -2
- package/dist/esm/components/ProgressBar/Styles.js.map +1 -1
- package/dist/esm/components/PropertyList/PropertyList.d.ts +59 -0
- package/dist/esm/components/PropertyList/PropertyList.d.ts.map +1 -0
- package/dist/esm/components/PropertyList/PropertyList.js +171 -0
- package/dist/esm/components/PropertyList/PropertyList.js.map +1 -0
- package/dist/esm/components/PropertyList/Styles.d.ts +35 -0
- package/dist/esm/components/PropertyList/Styles.d.ts.map +1 -0
- package/dist/esm/components/PropertyList/Styles.js +97 -0
- package/dist/esm/components/PropertyList/Styles.js.map +1 -0
- package/dist/esm/components/PropertyList/index.d.ts +2 -0
- package/dist/esm/components/PropertyList/index.d.ts.map +1 -0
- package/dist/esm/components/PropertyList/index.js +2 -0
- package/dist/esm/components/PropertyList/index.js.map +1 -0
- package/dist/esm/components/ResizeHandle/ResizeHandle.d.ts +11 -0
- package/dist/esm/components/ResizeHandle/ResizeHandle.d.ts.map +1 -0
- package/dist/esm/components/ResizeHandle/ResizeHandle.js +29 -0
- package/dist/esm/components/ResizeHandle/ResizeHandle.js.map +1 -0
- package/dist/esm/components/ResizeHandle/Styles.d.ts +7 -0
- package/dist/esm/components/ResizeHandle/Styles.d.ts.map +1 -0
- package/dist/esm/components/ResizeHandle/Styles.js +19 -0
- package/dist/esm/components/ResizeHandle/Styles.js.map +1 -0
- package/dist/esm/components/ResizeHandle/index.d.ts +2 -0
- package/dist/esm/components/ResizeHandle/index.d.ts.map +1 -0
- package/dist/esm/components/ResizeHandle/index.js +2 -0
- package/dist/esm/components/ResizeHandle/index.js.map +1 -0
- package/dist/esm/components/Section/Section.d.ts +13 -0
- package/dist/esm/components/Section/Section.d.ts.map +1 -0
- package/dist/esm/components/Section/Section.js +40 -0
- package/dist/esm/components/Section/Section.js.map +1 -0
- package/dist/esm/components/Section/Styles.d.ts +6 -0
- package/dist/esm/components/Section/Styles.d.ts.map +1 -0
- package/dist/esm/components/Section/Styles.js +22 -0
- package/dist/esm/components/Section/Styles.js.map +1 -0
- package/dist/esm/components/Section/index.d.ts +2 -0
- package/dist/esm/components/Section/index.d.ts.map +1 -0
- package/dist/esm/components/Section/index.js +2 -0
- package/dist/esm/components/Section/index.js.map +1 -0
- package/dist/esm/components/Sheet/Sheet.d.ts +4 -0
- package/dist/esm/components/Sheet/Sheet.d.ts.map +1 -1
- package/dist/esm/components/Sheet/Sheet.js +8 -3
- package/dist/esm/components/Sheet/Sheet.js.map +1 -1
- package/dist/esm/components/Sheet/Styles.d.ts +2 -0
- package/dist/esm/components/Sheet/Styles.d.ts.map +1 -1
- package/dist/esm/components/Sheet/Styles.js +6 -2
- package/dist/esm/components/Sheet/Styles.js.map +1 -1
- package/dist/esm/components/Steppers/DateStepper/Styles.d.ts +1 -0
- package/dist/esm/components/Steppers/DateStepper/Styles.d.ts.map +1 -1
- package/dist/esm/components/Typography/Styles.d.ts +2 -2
- package/dist/esm/components/Typography/Styles.d.ts.map +1 -1
- package/dist/esm/components/Typography/Styles.js +6 -2
- package/dist/esm/components/Typography/Styles.js.map +1 -1
- package/dist/esm/components/Typography/Typography.d.ts +2 -2
- package/dist/esm/components/Typography/Typography.d.ts.map +1 -1
- package/dist/esm/components/Typography/Typography.js.map +1 -1
- package/dist/esm/components/Typography/Variants/Title3.d.ts +8 -0
- package/dist/esm/components/Typography/Variants/Title3.d.ts.map +1 -0
- package/dist/esm/components/Typography/Variants/Title3.js +18 -0
- package/dist/esm/components/Typography/Variants/Title3.js.map +1 -0
- package/dist/esm/components/Typography/index.d.ts +1 -0
- package/dist/esm/components/Typography/index.d.ts.map +1 -1
- package/dist/esm/components/Typography/index.js +1 -0
- package/dist/esm/components/Typography/index.js.map +1 -1
- package/dist/esm/components/index.d.ts +13 -0
- package/dist/esm/components/index.d.ts.map +1 -1
- package/dist/esm/components/index.js +13 -0
- package/dist/esm/components/index.js.map +1 -1
- package/dist/esm/hooks/index.d.ts +2 -0
- package/dist/esm/hooks/index.d.ts.map +1 -1
- package/dist/esm/hooks/index.js +2 -0
- package/dist/esm/hooks/index.js.map +1 -1
- package/dist/esm/hooks/useLongPress.d.ts +23 -0
- package/dist/esm/hooks/useLongPress.d.ts.map +1 -0
- package/dist/esm/hooks/useLongPress.js +82 -0
- package/dist/esm/hooks/useLongPress.js.map +1 -0
- package/dist/esm/hooks/useResizablePanel.d.ts +27 -0
- package/dist/esm/hooks/useResizablePanel.d.ts.map +1 -0
- package/dist/esm/hooks/useResizablePanel.js +98 -0
- package/dist/esm/hooks/useResizablePanel.js.map +1 -0
- package/dist/esm/utils/useContainerCss.d.ts +2 -0
- package/dist/esm/utils/useContainerCss.d.ts.map +1 -0
- package/dist/esm/utils/useContainerCss.js +12 -0
- package/dist/esm/utils/useContainerCss.js.map +1 -0
- package/dist/index.js +3303 -880
- package/dist/index.js.map +1 -1
- package/dist/index.min.js +1 -1
- package/dist/index.min.js.map +1 -1
- package/package.json +1 -1
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import React, { HTMLAttributes, ReactNode } from "react";
|
|
2
|
+
export interface IListRowProps extends HTMLAttributes<HTMLDivElement> {
|
|
3
|
+
/** A control beside the card. It shows on hover, on focus, and always on touch. */
|
|
4
|
+
sideAction?: ReactNode;
|
|
5
|
+
/** The distance of the side action from the top of the row, in pixels. */
|
|
6
|
+
sideActionTop?: number;
|
|
7
|
+
/** The distance from the right edge of the row to the edge of the card, in pixels. */
|
|
8
|
+
sideActionOffset?: number;
|
|
9
|
+
/** Extra attributes for the box of the side action. */
|
|
10
|
+
sideActionProps?: HTMLAttributes<HTMLSpanElement> & {
|
|
11
|
+
"data-testid"?: string;
|
|
12
|
+
};
|
|
13
|
+
/** Draws a line under the row, inset 16px. */
|
|
14
|
+
divided?: boolean;
|
|
15
|
+
/** Highlights the row under the pointer. */
|
|
16
|
+
hover?: boolean;
|
|
17
|
+
}
|
|
18
|
+
export declare const ListRow: React.ForwardRefExoticComponent<IListRowProps & React.RefAttributes<HTMLDivElement>>;
|
|
19
|
+
//# sourceMappingURL=ListRow.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ListRow.d.ts","sourceRoot":"","sources":["../../../../src/components/ListRow/ListRow.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,EAEZ,cAAc,EACd,SAAS,EAEV,MAAM,OAAO,CAAC;AAYf,MAAM,WAAW,aAAc,SAAQ,cAAc,CAAC,cAAc,CAAC;IACnE,mFAAmF;IACnF,UAAU,CAAC,EAAE,SAAS,CAAC;IACvB,0EAA0E;IAC1E,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,sFAAsF;IACtF,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,uDAAuD;IACvD,eAAe,CAAC,EAAE,cAAc,CAAC,eAAe,CAAC,GAAG;QAClD,aAAa,CAAC,EAAE,MAAM,CAAC;KACxB,CAAC;IACF,8CAA8C;IAC9C,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,4CAA4C;IAC5C,KAAK,CAAC,EAAE,OAAO,CAAC;CACjB;AAED,eAAO,MAAM,OAAO,sFAmDnB,CAAC"}
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
import _extends from "@babel/runtime/helpers/esm/extends";
|
|
2
|
+
import _objectWithoutPropertiesLoose from "@babel/runtime/helpers/esm/objectWithoutPropertiesLoose";
|
|
3
|
+
const _excluded = ["sideAction", "sideActionTop", "sideActionOffset", "sideActionProps", "divided", "hover", "className", "children"];
|
|
4
|
+
import React, { forwardRef } from "react";
|
|
5
|
+
import classnames from "classnames";
|
|
6
|
+
import { CONTAINER_CSS, StyledListRow, StyledListRowDivider, StyledListRowSideAction } from "./Styles";
|
|
7
|
+
import { useContainerCss } from "../../utils/useContainerCss";
|
|
8
|
+
export const ListRow = /*#__PURE__*/forwardRef((_ref, ref) => {
|
|
9
|
+
let sideAction = _ref.sideAction,
|
|
10
|
+
_ref$sideActionTop = _ref.sideActionTop,
|
|
11
|
+
sideActionTop = _ref$sideActionTop === void 0 ? 4 : _ref$sideActionTop,
|
|
12
|
+
_ref$sideActionOffset = _ref.sideActionOffset,
|
|
13
|
+
sideActionOffset = _ref$sideActionOffset === void 0 ? 0 : _ref$sideActionOffset,
|
|
14
|
+
sideActionProps = _ref.sideActionProps,
|
|
15
|
+
_ref$divided = _ref.divided,
|
|
16
|
+
divided = _ref$divided === void 0 ? false : _ref$divided,
|
|
17
|
+
_ref$hover = _ref.hover,
|
|
18
|
+
hover = _ref$hover === void 0 ? false : _ref$hover,
|
|
19
|
+
className = _ref.className,
|
|
20
|
+
children = _ref.children,
|
|
21
|
+
rest = _objectWithoutPropertiesLoose(_ref, _excluded);
|
|
22
|
+
useContainerCss("c-list-row-container", CONTAINER_CSS);
|
|
23
|
+
return /*#__PURE__*/React.createElement(StyledListRow, _extends({}, rest, {
|
|
24
|
+
ref: ref,
|
|
25
|
+
$hover: hover,
|
|
26
|
+
className: classnames("c-list-row", className)
|
|
27
|
+
}), children, sideAction ? /*#__PURE__*/React.createElement(StyledListRowSideAction, _extends({}, sideActionProps, {
|
|
28
|
+
className: classnames("c-list-row__side-action", sideActionProps == null ? void 0 : sideActionProps.className),
|
|
29
|
+
style: {
|
|
30
|
+
top: sideActionTop,
|
|
31
|
+
"--side-offset": sideActionOffset + "px"
|
|
32
|
+
}
|
|
33
|
+
}), sideAction) : null, divided ? /*#__PURE__*/React.createElement(StyledListRowDivider, {
|
|
34
|
+
"aria-hidden": "true",
|
|
35
|
+
className: "c-list-row__divider"
|
|
36
|
+
}) : null);
|
|
37
|
+
});
|
|
38
|
+
ListRow.displayName = "ListRow";
|
|
39
|
+
//# sourceMappingURL=ListRow.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ListRow.js","names":["React","forwardRef","classnames","CONTAINER_CSS","StyledListRow","StyledListRowDivider","StyledListRowSideAction","useContainerCss","ListRow","_ref","ref","sideAction","_ref$sideActionTop","sideActionTop","_ref$sideActionOffset","sideActionOffset","sideActionProps","_ref$divided","divided","_ref$hover","hover","className","children","rest","_objectWithoutPropertiesLoose","_excluded","createElement","_extends","$hover","style","top","displayName"],"sources":["../../../../src/components/ListRow/ListRow.tsx"],"sourcesContent":["import React, {\n CSSProperties,\n HTMLAttributes,\n ReactNode,\n forwardRef,\n} from \"react\";\n\nimport classnames from \"classnames\";\n\nimport {\n CONTAINER_CSS,\n StyledListRow,\n StyledListRowDivider,\n StyledListRowSideAction,\n} from \"./Styles\";\nimport { useContainerCss } from \"../../utils/useContainerCss\";\n\nexport interface IListRowProps extends HTMLAttributes<HTMLDivElement> {\n /** A control beside the card. It shows on hover, on focus, and always on touch. */\n sideAction?: ReactNode;\n /** The distance of the side action from the top of the row, in pixels. */\n sideActionTop?: number;\n /** The distance from the right edge of the row to the edge of the card, in pixels. */\n sideActionOffset?: number;\n /** Extra attributes for the box of the side action. */\n sideActionProps?: HTMLAttributes<HTMLSpanElement> & {\n \"data-testid\"?: string;\n };\n /** Draws a line under the row, inset 16px. */\n divided?: boolean;\n /** Highlights the row under the pointer. */\n hover?: boolean;\n}\n\nexport const ListRow = forwardRef<HTMLDivElement, IListRowProps>(\n (\n {\n sideAction,\n sideActionTop = 4,\n sideActionOffset = 0,\n sideActionProps,\n divided = false,\n hover = false,\n className,\n children,\n ...rest\n },\n ref\n ) => {\n useContainerCss(\"c-list-row-container\", CONTAINER_CSS);\n\n return (\n <StyledListRow\n {...rest}\n ref={ref}\n $hover={hover}\n className={classnames(\"c-list-row\", className)}\n >\n {children}\n {sideAction ? (\n <StyledListRowSideAction\n {...sideActionProps}\n className={classnames(\n \"c-list-row__side-action\",\n sideActionProps?.className\n )}\n style={\n {\n top: sideActionTop,\n \"--side-offset\": `${sideActionOffset}px`,\n } as CSSProperties\n }\n >\n {sideAction}\n </StyledListRowSideAction>\n ) : null}\n {divided ? (\n <StyledListRowDivider\n aria-hidden=\"true\"\n className=\"c-list-row__divider\"\n />\n ) : null}\n </StyledListRow>\n );\n }\n);\n\nListRow.displayName = \"ListRow\";\n"],"mappings":";;;AAAA,OAAOA,KAAK,IAIVC,UAAU,QACL,OAAO;AAEd,OAAOC,UAAU,MAAM,YAAY;AAEnC,SACEC,aAAa,EACbC,aAAa,EACbC,oBAAoB,EACpBC,uBAAuB,QAClB,UAAU;AACjB,SAASC,eAAe,QAAQ,6BAA6B;AAmB7D,OAAO,MAAMC,OAAO,gBAAGP,UAAU,CAC/B,CAAAQ,IAAA,EAYEC,GAAG,KACA;EAAA,IAXDC,UAAU,GAAAF,IAAA,CAAVE,UAAU;IAAAC,kBAAA,GAAAH,IAAA,CACVI,aAAa;IAAbA,aAAa,GAAAD,kBAAA,cAAG,CAAC,GAAAA,kBAAA;IAAAE,qBAAA,GAAAL,IAAA,CACjBM,gBAAgB;IAAhBA,gBAAgB,GAAAD,qBAAA,cAAG,CAAC,GAAAA,qBAAA;IACpBE,eAAe,GAAAP,IAAA,CAAfO,eAAe;IAAAC,YAAA,GAAAR,IAAA,CACfS,OAAO;IAAPA,OAAO,GAAAD,YAAA,cAAG,KAAK,GAAAA,YAAA;IAAAE,UAAA,GAAAV,IAAA,CACfW,KAAK;IAALA,KAAK,GAAAD,UAAA,cAAG,KAAK,GAAAA,UAAA;IACbE,SAAS,GAAAZ,IAAA,CAATY,SAAS;IACTC,QAAQ,GAAAb,IAAA,CAARa,QAAQ;IACLC,IAAI,GAAAC,6BAAA,CAAAf,IAAA,EAAAgB,SAAA;EAITlB,eAAe,CAAC,sBAAsB,EAAEJ,aAAa,CAAC;EAEtD,oBACEH,KAAA,CAAA0B,aAAA,CAACtB,aAAa,EAAAuB,QAAA,KACRJ,IAAI;IACRb,GAAG,EAAEA,GAAI;IACTkB,MAAM,EAAER,KAAM;IACdC,SAAS,EAAEnB,UAAU,CAAC,YAAY,EAAEmB,SAAS;EAAE,IAE9CC,QAAQ,EACRX,UAAU,gBACTX,KAAA,CAAA0B,aAAA,CAACpB,uBAAuB,EAAAqB,QAAA,KAClBX,eAAe;IACnBK,SAAS,EAAEnB,UAAU,CACnB,yBAAyB,EACzBc,eAAe,oBAAfA,eAAe,CAAEK,SACnB,CAAE;IACFQ,KAAK,EACH;MACEC,GAAG,EAAEjB,aAAa;MAClB,eAAe,EAAKE,gBAAgB;IACtC;EACD,IAEAJ,UACsB,CAAC,GACxB,IAAI,EACPO,OAAO,gBACNlB,KAAA,CAAA0B,aAAA,CAACrB,oBAAoB;IACnB,eAAY,MAAM;IAClBgB,SAAS,EAAC;EAAqB,CAChC,CAAC,GACA,IACS,CAAC;AAEpB,CACF,CAAC;AAEDb,OAAO,CAACuB,WAAW,GAAG,SAAS","ignoreList":[]}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
export declare const CONTAINER_CSS = "\n@container (min-width: 900px) {\n .c-list-row > .c-list-row__side-action {\n right: calc(-32px - var(--side-offset));\n width: 32px;\n }\n}\n";
|
|
2
|
+
export declare const StyledListRowSideAction: import("styled-components").StyledComponent<"span", any, {}, never>;
|
|
3
|
+
export declare const StyledListRowDivider: import("styled-components").StyledComponent<"div", any, {}, never>;
|
|
4
|
+
export declare const StyledListRow: import("styled-components").StyledComponent<"div", any, {
|
|
5
|
+
$hover: boolean;
|
|
6
|
+
}, never>;
|
|
7
|
+
//# sourceMappingURL=Styles.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Styles.d.ts","sourceRoot":"","sources":["../../../../src/components/ListRow/Styles.ts"],"names":[],"mappings":"AAEA,eAAO,MAAM,aAAa,4JAOzB,CAAC;AAEF,eAAO,MAAM,uBAAuB,qEAiBnC,CAAC;AAEF,eAAO,MAAM,oBAAoB,oEAIhC,CAAC;AAEF,eAAO,MAAM,aAAa;YAAwB,OAAO;SAqBxD,CAAC"}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import styled from "styled-components";
|
|
2
|
+
export const CONTAINER_CSS = "\n@container (min-width: 900px) {\n .c-list-row > .c-list-row__side-action {\n right: calc(-32px - var(--side-offset));\n width: 32px;\n }\n}\n";
|
|
3
|
+
export const StyledListRowSideAction = styled.span.withConfig({
|
|
4
|
+
displayName: "Styles__StyledListRowSideAction",
|
|
5
|
+
componentId: "sc-ef2wrc-0"
|
|
6
|
+
})(["position:absolute;right:calc(-16px - var(--side-offset));display:flex;justify-content:center;width:16px;opacity:0;&:has([aria-expanded=\"true\"]),&:has([open]),&:has(.open){opacity:1;}@media (hover:none){opacity:1;}"]);
|
|
7
|
+
export const StyledListRowDivider = styled.div.withConfig({
|
|
8
|
+
displayName: "Styles__StyledListRowDivider",
|
|
9
|
+
componentId: "sc-ef2wrc-1"
|
|
10
|
+
})(["height:1px;margin:0 16px;background-color:var(--border-raised);"]);
|
|
11
|
+
export const StyledListRow = styled.div.withConfig({
|
|
12
|
+
displayName: "Styles__StyledListRow",
|
|
13
|
+
componentId: "sc-ef2wrc-2"
|
|
14
|
+
})(["position:relative;", " &:hover > ", ",&:focus-within > ", "{opacity:1;}&:hover > ", ",&:has(+ .c-list-row:hover) > ", "{background-color:transparent;}"], _ref => {
|
|
15
|
+
let $hover = _ref.$hover;
|
|
16
|
+
return $hover && "\n &:hover {\n background-color: var(--color-theme-200);\n }\n ";
|
|
17
|
+
}, StyledListRowSideAction, StyledListRowSideAction, StyledListRowDivider, StyledListRowDivider);
|
|
18
|
+
//# sourceMappingURL=Styles.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Styles.js","names":["styled","CONTAINER_CSS","StyledListRowSideAction","span","withConfig","displayName","componentId","StyledListRowDivider","div","StyledListRow","_ref","$hover"],"sources":["../../../../src/components/ListRow/Styles.ts"],"sourcesContent":["import styled from \"styled-components\";\n\nexport const CONTAINER_CSS = `\n@container (min-width: 900px) {\n .c-list-row > .c-list-row__side-action {\n right: calc(-32px - var(--side-offset));\n width: 32px;\n }\n}\n`;\n\nexport const StyledListRowSideAction = styled.span`\n position: absolute;\n right: calc(-16px - var(--side-offset));\n display: flex;\n justify-content: center;\n width: 16px;\n opacity: 0;\n\n &:has([aria-expanded=\"true\"]),\n &:has([open]),\n &:has(.open) {\n opacity: 1;\n }\n\n @media (hover: none) {\n opacity: 1;\n }\n`;\n\nexport const StyledListRowDivider = styled.div`\n height: 1px;\n margin: 0 16px;\n background-color: var(--border-raised);\n`;\n\nexport const StyledListRow = styled.div<{ $hover: boolean }>`\n position: relative;\n\n ${({ $hover }) =>\n $hover &&\n `\n &:hover {\n background-color: var(--color-theme-200);\n }\n `}\n\n &:hover > ${StyledListRowSideAction}, &:focus-within > ${StyledListRowSideAction} {\n opacity: 1;\n }\n\n &:hover\n > ${StyledListRowDivider},\n &:has(+ .c-list-row:hover)\n > ${StyledListRowDivider} {\n background-color: transparent;\n }\n`;\n"],"mappings":"AAAA,OAAOA,MAAM,MAAM,mBAAmB;AAEtC,OAAO,MAAMC,aAAa,4JAOzB;AAED,OAAO,MAAMC,uBAAuB,GAAGF,MAAM,CAACG,IAAI,CAAAC,UAAA;EAAAC,WAAA;EAAAC,WAAA;AAAA,+NAiBjD;AAED,OAAO,MAAMC,oBAAoB,GAAGP,MAAM,CAACQ,GAAG,CAAAJ,UAAA;EAAAC,WAAA;EAAAC,WAAA;AAAA,uEAI7C;AAED,OAAO,MAAMG,aAAa,GAAGT,MAAM,CAACQ,GAAG,CAAAJ,UAAA;EAAAC,WAAA;EAAAC,WAAA;AAAA,+JAGnCI,IAAA;EAAA,IAAGC,MAAM,GAAAD,IAAA,CAANC,MAAM;EAAA,OACTA,MAAM,iFAKP;AAAA,GAEWT,uBAAuB,EAAsBA,uBAAuB,EAK1EK,oBAAoB,EAEpBA,oBAAoB,CAG3B","ignoreList":[]}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/components/ListRow/index.ts"],"names":[],"mappings":"AAAA,cAAc,WAAW,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","names":[],"sources":["../../../../src/components/ListRow/index.ts"],"sourcesContent":["export * from \"./ListRow\";\n"],"mappings":"AAAA,cAAc,WAAW","ignoreList":[]}
|
|
@@ -1,3 +1,13 @@
|
|
|
1
1
|
import React from "react";
|
|
2
|
-
export
|
|
2
|
+
export interface SkeletonLoaderProps extends React.ComponentPropsWithoutRef<"div"> {
|
|
3
|
+
/** A number is in pixels. The default is 70%. */
|
|
4
|
+
width?: number | string;
|
|
5
|
+
/** A number is in pixels. The default is 16px. */
|
|
6
|
+
height?: number | string;
|
|
7
|
+
/** A number is in pixels. The default is 8px. */
|
|
8
|
+
radius?: number | string;
|
|
9
|
+
/** "pulse" is a solid block that fades in and out, for the skeleton of a page. */
|
|
10
|
+
animation?: "shimmer" | "pulse";
|
|
11
|
+
}
|
|
12
|
+
export declare const SkeletonLoader: React.ForwardRefExoticComponent<SkeletonLoaderProps & React.RefAttributes<HTMLDivElement>>;
|
|
3
13
|
//# sourceMappingURL=SkeletonLoader.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SkeletonLoader.d.ts","sourceRoot":"","sources":["../../../../../src/components/Loaders/Skeleton/SkeletonLoader.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAqB,MAAM,OAAO,CAAC;AAM1C,eAAO,MAAM,cAAc,
|
|
1
|
+
{"version":3,"file":"SkeletonLoader.d.ts","sourceRoot":"","sources":["../../../../../src/components/Loaders/Skeleton/SkeletonLoader.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAqB,MAAM,OAAO,CAAC;AAM1C,MAAM,WAAW,mBACf,SAAQ,KAAK,CAAC,wBAAwB,CAAC,KAAK,CAAC;IAC7C,iDAAiD;IACjD,KAAK,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;IACxB,kDAAkD;IAClD,MAAM,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;IACzB,iDAAiD;IACjD,MAAM,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;IACzB,kFAAkF;IAClF,SAAS,CAAC,EAAE,SAAS,GAAG,OAAO,CAAC;CACjC;AAED,eAAO,MAAM,cAAc,4FAiB1B,CAAC"}
|
|
@@ -1,15 +1,24 @@
|
|
|
1
1
|
import _extends from "@babel/runtime/helpers/esm/extends";
|
|
2
2
|
import _objectWithoutPropertiesLoose from "@babel/runtime/helpers/esm/objectWithoutPropertiesLoose";
|
|
3
|
-
const _excluded = ["className"];
|
|
3
|
+
const _excluded = ["className", "width", "height", "radius", "animation"];
|
|
4
4
|
import React, { forwardRef } from "react";
|
|
5
5
|
import classNames from "classnames";
|
|
6
6
|
import { StyledSkeletonLoader } from "./Styles";
|
|
7
7
|
export const SkeletonLoader = /*#__PURE__*/forwardRef((_ref, ref) => {
|
|
8
8
|
let className = _ref.className,
|
|
9
|
+
width = _ref.width,
|
|
10
|
+
height = _ref.height,
|
|
11
|
+
radius = _ref.radius,
|
|
12
|
+
_ref$animation = _ref.animation,
|
|
13
|
+
animation = _ref$animation === void 0 ? "shimmer" : _ref$animation,
|
|
9
14
|
rest = _objectWithoutPropertiesLoose(_ref, _excluded);
|
|
10
15
|
return /*#__PURE__*/React.createElement(StyledSkeletonLoader, _extends({
|
|
11
16
|
ref: ref,
|
|
12
|
-
className: classNames("c-loader c-loader--linear", className)
|
|
17
|
+
className: classNames("c-loader c-loader--linear", className),
|
|
18
|
+
$width: width,
|
|
19
|
+
$height: height,
|
|
20
|
+
$radius: radius,
|
|
21
|
+
$pulse: animation === "pulse"
|
|
13
22
|
}, rest));
|
|
14
23
|
});
|
|
15
24
|
SkeletonLoader.displayName = "SkeletonLoader";
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SkeletonLoader.js","names":["React","forwardRef","classNames","StyledSkeletonLoader","SkeletonLoader","_ref","ref","className","rest","_objectWithoutPropertiesLoose","_excluded","createElement","_extends","displayName"],"sources":["../../../../../src/components/Loaders/Skeleton/SkeletonLoader.tsx"],"sourcesContent":["import React, { forwardRef } from \"react\";\n\nimport classNames from \"classnames\";\n\nimport { StyledSkeletonLoader } from \"./Styles\";\n\nexport
|
|
1
|
+
{"version":3,"file":"SkeletonLoader.js","names":["React","forwardRef","classNames","StyledSkeletonLoader","SkeletonLoader","_ref","ref","className","width","height","radius","_ref$animation","animation","rest","_objectWithoutPropertiesLoose","_excluded","createElement","_extends","$width","$height","$radius","$pulse","displayName"],"sources":["../../../../../src/components/Loaders/Skeleton/SkeletonLoader.tsx"],"sourcesContent":["import React, { forwardRef } from \"react\";\n\nimport classNames from \"classnames\";\n\nimport { StyledSkeletonLoader } from \"./Styles\";\n\nexport interface SkeletonLoaderProps\n extends React.ComponentPropsWithoutRef<\"div\"> {\n /** A number is in pixels. The default is 70%. */\n width?: number | string;\n /** A number is in pixels. The default is 16px. */\n height?: number | string;\n /** A number is in pixels. The default is 8px. */\n radius?: number | string;\n /** \"pulse\" is a solid block that fades in and out, for the skeleton of a page. */\n animation?: \"shimmer\" | \"pulse\";\n}\n\nexport const SkeletonLoader = forwardRef<HTMLDivElement, SkeletonLoaderProps>(\n (\n { className, width, height, radius, animation = \"shimmer\", ...rest },\n ref\n ) => {\n return (\n <StyledSkeletonLoader\n ref={ref}\n className={classNames(\"c-loader c-loader--linear\", className)}\n $width={width}\n $height={height}\n $radius={radius}\n $pulse={animation === \"pulse\"}\n {...rest}\n />\n );\n }\n);\n\nSkeletonLoader.displayName = \"SkeletonLoader\";\n"],"mappings":";;;AAAA,OAAOA,KAAK,IAAIC,UAAU,QAAQ,OAAO;AAEzC,OAAOC,UAAU,MAAM,YAAY;AAEnC,SAASC,oBAAoB,QAAQ,UAAU;AAc/C,OAAO,MAAMC,cAAc,gBAAGH,UAAU,CACtC,CAAAI,IAAA,EAEEC,GAAG,KACA;EAAA,IAFDC,SAAS,GAAAF,IAAA,CAATE,SAAS;IAAEC,KAAK,GAAAH,IAAA,CAALG,KAAK;IAAEC,MAAM,GAAAJ,IAAA,CAANI,MAAM;IAAEC,MAAM,GAAAL,IAAA,CAANK,MAAM;IAAAC,cAAA,GAAAN,IAAA,CAAEO,SAAS;IAATA,SAAS,GAAAD,cAAA,cAAG,SAAS,GAAAA,cAAA;IAAKE,IAAI,GAAAC,6BAAA,CAAAT,IAAA,EAAAU,SAAA;EAGlE,oBACEf,KAAA,CAAAgB,aAAA,CAACb,oBAAoB,EAAAc,QAAA;IACnBX,GAAG,EAAEA,GAAI;IACTC,SAAS,EAAEL,UAAU,CAAC,2BAA2B,EAAEK,SAAS,CAAE;IAC9DW,MAAM,EAAEV,KAAM;IACdW,OAAO,EAAEV,MAAO;IAChBW,OAAO,EAAEV,MAAO;IAChBW,MAAM,EAAET,SAAS,KAAK;EAAQ,GAC1BC,IAAI,CACT,CAAC;AAEN,CACF,CAAC;AAEDT,cAAc,CAACkB,WAAW,GAAG,gBAAgB","ignoreList":[]}
|
|
@@ -1,2 +1,9 @@
|
|
|
1
|
-
|
|
1
|
+
interface SkeletonLook {
|
|
2
|
+
$width?: number | string;
|
|
3
|
+
$height?: number | string;
|
|
4
|
+
$radius?: number | string;
|
|
5
|
+
$pulse?: boolean;
|
|
6
|
+
}
|
|
7
|
+
export declare const StyledSkeletonLoader: import("styled-components").StyledComponent<"div", any, SkeletonLook, never>;
|
|
8
|
+
export {};
|
|
2
9
|
//# sourceMappingURL=Styles.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Styles.d.ts","sourceRoot":"","sources":["../../../../../src/components/Loaders/Skeleton/Styles.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"Styles.d.ts","sourceRoot":"","sources":["../../../../../src/components/Loaders/Skeleton/Styles.ts"],"names":[],"mappings":"AAsBA,UAAU,YAAY;IACpB,MAAM,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;IACzB,OAAO,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;IAC1B,OAAO,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;IAC1B,MAAM,CAAC,EAAE,OAAO,CAAC;CAClB;AAED,eAAO,MAAM,oBAAoB,8EAiDhC,CAAC"}
|
|
@@ -1,8 +1,10 @@
|
|
|
1
|
-
import styled, { keyframes } from "styled-components";
|
|
1
|
+
import styled, { css, keyframes } from "styled-components";
|
|
2
2
|
import { DARK_THEME_SELECTOR } from "../../../utils/themes";
|
|
3
3
|
const linearAnimation = keyframes(["0%{background-position:left;}100%{background-position:right;}"]);
|
|
4
|
+
const pulseAnimation = keyframes(["50%{opacity:0.5;}"]);
|
|
5
|
+
const toCssSize = value => typeof value === "number" ? value + "px" : value;
|
|
4
6
|
export const StyledSkeletonLoader = styled.div.withConfig({
|
|
5
7
|
displayName: "Styles__StyledSkeletonLoader",
|
|
6
8
|
componentId: "sc-1n0a2yl-0"
|
|
7
|
-
})(["width:70%;background:linear-gradient( 90deg,rgba(255,255,255,0) 20%,rgba(0,0,0,0.05) 50%,rgba(255,255,255,0) 60% );background-size:400%;height:16px;border-radius:8px;", " &{background:linear-gradient( 90deg,rgba(255,255,255,0) 20%,rgba(0,0,0,0.2) 50%,rgba(255,255,255,0) 60% );background-size:500%;}animation-duration:1s;animation-iteration-count:infinite;animation-name:", ";animation-timing-function:linear;animation-direction:reverse;"], DARK_THEME_SELECTOR, linearAnimation);
|
|
9
|
+
})(["width:70%;background:linear-gradient( 90deg,rgba(255,255,255,0) 20%,rgba(0,0,0,0.05) 50%,rgba(255,255,255,0) 60% );background-size:400%;height:16px;border-radius:8px;", " &{background:linear-gradient( 90deg,rgba(255,255,255,0) 20%,rgba(0,0,0,0.2) 50%,rgba(255,255,255,0) 60% );background-size:500%;}animation-duration:1s;animation-iteration-count:infinite;animation-name:", ";animation-timing-function:linear;animation-direction:reverse;", " ", " ", " ", ""], DARK_THEME_SELECTOR, linearAnimation, props => props.$width !== undefined && css(["width:", ";"], toCssSize(props.$width)), props => props.$height !== undefined && css(["height:", ";"], toCssSize(props.$height)), props => props.$radius !== undefined && css(["border-radius:", ";"], toCssSize(props.$radius)), props => props.$pulse && css(["&&{background:var(--color-theme-300);animation:", " 2s cubic-bezier(0.4,0,0.6,1) infinite;}"], pulseAnimation));
|
|
8
10
|
//# sourceMappingURL=Styles.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Styles.js","names":["styled","keyframes","DARK_THEME_SELECTOR","linearAnimation","StyledSkeletonLoader","div","withConfig","displayName","componentId"],"sources":["../../../../../src/components/Loaders/Skeleton/Styles.ts"],"sourcesContent":["import styled, { keyframes } from \"styled-components\";\n\nimport { DARK_THEME_SELECTOR } from \"../../../utils/themes\";\n\nconst linearAnimation = keyframes`\n 0% {\n background-position: left;\n }\n 100% {\n background-position: right;\n }\n`;\n\nexport const StyledSkeletonLoader = styled.div
|
|
1
|
+
{"version":3,"file":"Styles.js","names":["styled","css","keyframes","DARK_THEME_SELECTOR","linearAnimation","pulseAnimation","toCssSize","value","StyledSkeletonLoader","div","withConfig","displayName","componentId","props","$width","undefined","$height","$radius","$pulse"],"sources":["../../../../../src/components/Loaders/Skeleton/Styles.ts"],"sourcesContent":["import styled, { css, keyframes } from \"styled-components\";\n\nimport { DARK_THEME_SELECTOR } from \"../../../utils/themes\";\n\nconst linearAnimation = keyframes`\n 0% {\n background-position: left;\n }\n 100% {\n background-position: right;\n }\n`;\n\nconst pulseAnimation = keyframes`\n 50% {\n opacity: 0.5;\n }\n`;\n\nconst toCssSize = (value: number | string) =>\n typeof value === \"number\" ? `${value}px` : value;\n\ninterface SkeletonLook {\n $width?: number | string;\n $height?: number | string;\n $radius?: number | string;\n $pulse?: boolean;\n}\n\nexport const StyledSkeletonLoader = styled.div<SkeletonLook>`\n width: 70%;\n background: linear-gradient(\n 90deg,\n rgba(255, 255, 255, 0) 20%,\n rgba(0, 0, 0, 0.05) 50%,\n rgba(255, 255, 255, 0) 60%\n );\n background-size: 400%;\n height: 16px;\n border-radius: 8px;\n ${DARK_THEME_SELECTOR} & {\n background: linear-gradient(\n 90deg,\n rgba(255, 255, 255, 0) 20%,\n rgba(0, 0, 0, 0.2) 50%,\n rgba(255, 255, 255, 0) 60%\n );\n background-size: 500%;\n }\n animation-duration: 1s;\n animation-iteration-count: infinite;\n animation-name: ${linearAnimation};\n animation-timing-function: linear;\n animation-direction: reverse;\n\n ${(props) =>\n props.$width !== undefined &&\n css`\n width: ${toCssSize(props.$width)};\n `}\n ${(props) =>\n props.$height !== undefined &&\n css`\n height: ${toCssSize(props.$height)};\n `}\n ${(props) =>\n props.$radius !== undefined &&\n css`\n border-radius: ${toCssSize(props.$radius)};\n `}\n ${(props) =>\n props.$pulse &&\n css`\n && {\n background: var(--color-theme-300);\n animation: ${pulseAnimation} 2s cubic-bezier(0.4, 0, 0.6, 1) infinite;\n }\n `}\n`;\n"],"mappings":"AAAA,OAAOA,MAAM,IAAIC,GAAG,EAAEC,SAAS,QAAQ,mBAAmB;AAE1D,SAASC,mBAAmB,QAAQ,uBAAuB;AAE3D,MAAMC,eAAe,GAAGF,SAAS,mEAOhC;AAED,MAAMG,cAAc,GAAGH,SAAS,uBAI/B;AAED,MAAMI,SAAS,GAAIC,KAAsB,IACvC,OAAOA,KAAK,KAAK,QAAQ,GAAMA,KAAK,UAAOA,KAAK;AASlD,OAAO,MAAMC,oBAAoB,GAAGR,MAAM,CAACS,GAAG,CAAAC,UAAA;EAAAC,WAAA;EAAAC,WAAA;AAAA,idAW1CT,mBAAmB,EAWHC,eAAe,EAI9BS,KAAK,IACNA,KAAK,CAACC,MAAM,KAAKC,SAAS,IAC1Bd,GAAG,kBACQK,SAAS,CAACO,KAAK,CAACC,MAAM,CAAC,CACjC,EACAD,KAAK,IACNA,KAAK,CAACG,OAAO,KAAKD,SAAS,IAC3Bd,GAAG,mBACSK,SAAS,CAACO,KAAK,CAACG,OAAO,CAAC,CACnC,EACAH,KAAK,IACNA,KAAK,CAACI,OAAO,KAAKF,SAAS,IAC3Bd,GAAG,0BACgBK,SAAS,CAACO,KAAK,CAACI,OAAO,CAAC,CAC1C,EACAJ,KAAK,IACNA,KAAK,CAACK,MAAM,IACZjB,GAAG,kGAGcI,cAAc,CAE9B,CACJ","ignoreList":[]}
|
|
@@ -17,6 +17,8 @@ export interface IMenu {
|
|
|
17
17
|
disableFocusLock?: boolean;
|
|
18
18
|
/** Menu width mode */
|
|
19
19
|
mode?: MenuMode;
|
|
20
|
+
/** A width in pixels, or "target" for the width of the target. It wins over the mode. */
|
|
21
|
+
width?: number | "target";
|
|
20
22
|
/** Should menu be open when it's mounted */
|
|
21
23
|
open?: boolean;
|
|
22
24
|
/** Callback triggered when modal has been opened */
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Menu.d.ts","sourceRoot":"","sources":["../../../../src/components/Menu/Menu.tsx"],"names":[],"mappings":"AAAA,OAAc,EAEZ,EAAE,EACF,SAAS,EACT,UAAU,EAOV,YAAY,EACZ,GAAG,EACJ,MAAM,OAAO,CAAC;AAEf,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAY3C,UAAU,cAAc,CAAC,CAAC,CAAE,SAAQ,YAAY;IAC9C,GAAG,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC;CACd;AAID,MAAM,MAAM,QAAQ,GAAG,QAAQ,GAAG,OAAO,GAAG,MAAM,GAAG,QAAQ,CAAC;AAE9D,MAAM,WAAW,KAAK;IACpB,mBAAmB;IACnB,QAAQ,EACJ,SAAS,GACT,CAAC,CAAC,UAAU,EAAE;QAAE,UAAU,EAAE,MAAM,IAAI,CAAA;KAAE,KAAK,GAAG,CAAC,OAAO,CAAC,CAAC;IAC9D,4BAA4B;IAC5B,WAAW,CAAC,EAAE,CAAC,KAAK,EAAE,UAAU,CAAC,WAAW,CAAC,KAAK,IAAI,CAAC;IACvD,wBAAwB;IACxB,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,yBAAyB;IACzB,gBAAgB,CAAC,EAAE,OAAO,CAAC;IAC3B,sBAAsB;IACtB,IAAI,CAAC,EAAE,QAAQ,CAAC;IAChB,4CAA4C;IAC5C,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,oDAAoD;IACpD,MAAM,CAAC,EAAE,MAAM,IAAI,CAAC;IACpB,oDAAoD;IACpD,OAAO,CAAC,EAAE,MAAM,IAAI,CAAC;IACrB,4BAA4B;IAC5B,aAAa,CAAC,EAAE,MAAM,OAAO,CAAC;IAC9B,oBAAoB;IACpB,QAAQ,CAAC,EAAE,SAAS,CAAC;IACrB,qBAAqB;IACrB,MAAM,CAAC,EAAE,cAAc,CAAC,OAAO,CAAC,CAAC;IACjC,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,mBAAmB;IACnB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,uBAAuB;IACvB,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,6FAA6F;IAC7F,sBAAsB,CAAC,EAAE,MAAM,CAAC;IAChC,6CAA6C;IAC7C,0BAA0B,CAAC,EAAE,OAAO,CAAC;IACrC,qBAAqB;IACrB,YAAY,CAAC,EAAE,CAAC,GAAG,IAAI,OAAA,KAAK,IAAI,CAAC;IACjC,iHAAiH;IACjH,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,+GAA+G;IAC/G,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,iHAAiH;IACjH,WAAW,CAAC,EAAE,OAAO,CAAC;CACvB;AA+LD,eAAO,MAAM,IAAI,EAAE,EAAE,CAAC,KAAK,
|
|
1
|
+
{"version":3,"file":"Menu.d.ts","sourceRoot":"","sources":["../../../../src/components/Menu/Menu.tsx"],"names":[],"mappings":"AAAA,OAAc,EAEZ,EAAE,EACF,SAAS,EACT,UAAU,EAOV,YAAY,EACZ,GAAG,EACJ,MAAM,OAAO,CAAC;AAEf,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAY3C,UAAU,cAAc,CAAC,CAAC,CAAE,SAAQ,YAAY;IAC9C,GAAG,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC;CACd;AAID,MAAM,MAAM,QAAQ,GAAG,QAAQ,GAAG,OAAO,GAAG,MAAM,GAAG,QAAQ,CAAC;AAE9D,MAAM,WAAW,KAAK;IACpB,mBAAmB;IACnB,QAAQ,EACJ,SAAS,GACT,CAAC,CAAC,UAAU,EAAE;QAAE,UAAU,EAAE,MAAM,IAAI,CAAA;KAAE,KAAK,GAAG,CAAC,OAAO,CAAC,CAAC;IAC9D,4BAA4B;IAC5B,WAAW,CAAC,EAAE,CAAC,KAAK,EAAE,UAAU,CAAC,WAAW,CAAC,KAAK,IAAI,CAAC;IACvD,wBAAwB;IACxB,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,yBAAyB;IACzB,gBAAgB,CAAC,EAAE,OAAO,CAAC;IAC3B,sBAAsB;IACtB,IAAI,CAAC,EAAE,QAAQ,CAAC;IAChB,yFAAyF;IACzF,KAAK,CAAC,EAAE,MAAM,GAAG,QAAQ,CAAC;IAC1B,4CAA4C;IAC5C,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,oDAAoD;IACpD,MAAM,CAAC,EAAE,MAAM,IAAI,CAAC;IACpB,oDAAoD;IACpD,OAAO,CAAC,EAAE,MAAM,IAAI,CAAC;IACrB,4BAA4B;IAC5B,aAAa,CAAC,EAAE,MAAM,OAAO,CAAC;IAC9B,oBAAoB;IACpB,QAAQ,CAAC,EAAE,SAAS,CAAC;IACrB,qBAAqB;IACrB,MAAM,CAAC,EAAE,cAAc,CAAC,OAAO,CAAC,CAAC;IACjC,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,mBAAmB;IACnB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,uBAAuB;IACvB,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,6FAA6F;IAC7F,sBAAsB,CAAC,EAAE,MAAM,CAAC;IAChC,6CAA6C;IAC7C,0BAA0B,CAAC,EAAE,OAAO,CAAC;IACrC,qBAAqB;IACrB,YAAY,CAAC,EAAE,CAAC,GAAG,IAAI,OAAA,KAAK,IAAI,CAAC;IACjC,iHAAiH;IACjH,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,+GAA+G;IAC/G,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,iHAAiH;IACjH,WAAW,CAAC,EAAE,OAAO,CAAC;CACvB;AA+LD,eAAO,MAAM,IAAI,EAAE,EAAE,CAAC,KAAK,CAwY1B,CAAC"}
|
|
@@ -153,6 +153,7 @@ export const Menu = _ref4 => {
|
|
|
153
153
|
handleScroll = _ref4$handleScroll === void 0 ? true : _ref4$handleScroll,
|
|
154
154
|
_ref4$mode = _ref4.mode,
|
|
155
155
|
mode = _ref4$mode === void 0 ? "normal" : _ref4$mode,
|
|
156
|
+
width = _ref4.width,
|
|
156
157
|
_ref4$open = _ref4.open,
|
|
157
158
|
defaultOpen = _ref4$open === void 0 ? false : _ref4$open,
|
|
158
159
|
onOpen = _ref4.onOpen,
|
|
@@ -426,6 +427,7 @@ export const Menu = _ref4 => {
|
|
|
426
427
|
modifiers: popperModifiers,
|
|
427
428
|
transition: true
|
|
428
429
|
}, _ref5 => {
|
|
430
|
+
var _elementRef$current2;
|
|
429
431
|
let placement = _ref5.placement,
|
|
430
432
|
transitionProps = _ref5.transitionProps;
|
|
431
433
|
return /*#__PURE__*/React.createElement(Grow, {
|
|
@@ -441,7 +443,8 @@ export const Menu = _ref4 => {
|
|
|
441
443
|
$mode: mode,
|
|
442
444
|
onMouseDown: onMenuClick,
|
|
443
445
|
style: {
|
|
444
|
-
pointerEvents: open ? "auto" : "none"
|
|
446
|
+
pointerEvents: open ? "auto" : "none",
|
|
447
|
+
width: width === "target" ? (_elementRef$current2 = elementRef.current) == null ? void 0 : _elementRef$current2.offsetWidth : width
|
|
445
448
|
}
|
|
446
449
|
}, /*#__PURE__*/React.createElement(MenuContextProvider, {
|
|
447
450
|
value: {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Menu.js","names":["React","useRef","useState","useCallback","useEffect","useLayoutEffect","useMemo","classnames","MenuContextProvider","StyledMenu","Portal","useForkRef","Overlay","Popper","Grow","Window","isFocusVisible","element","Boolean","matches","_unused","TRIGGER","triggerOf","node","_node$querySelector","querySelector","visibleBoxOf","rects","getBoundingClientRect","Array","from","children","map","filter","rect","width","height","left","Math","min","right","max","top","bottom","offsetToVisibleBox","name","options","offset","_ref","placement","wrapper","box","_placement$split","split","side","align","vertical","start","end","skidding","distance","TABBABLE","returnFocusOptions","visible","focusVisible","focusTabNeighbor","trigger","step","menu","nodes","document","querySelectorAll","tabIndex","disabled","closest","contains","indexOf","index","length","focus","activeElement","isOnLayerAbove","target","own","layer","Element","layerZ","Number","style","zIndex","ownZ","compareDocumentPosition","Node","DOCUMENT_POSITION_FOLLOWING","PRERENDER_DELAY","PRERENDER_GAP","prerenderQueue","prerenderTimer","runPrerenderQueue","_prerenderQueue$shift","shift","setTimeout","queuePrerender","render","push","splice","FocusInside","_ref2","onFocused","ref","_ref$current","_ref3","current","parentElement","first","find","preventScroll","createElement","hidden","Menu","_ref4","_ref4$disableFocusLoc","disableFocusLock","onMenuClick","_ref4$handleScroll","handleScroll","_ref4$mode","mode","_ref4$open","open","defaultOpen","onOpen","onClose","onBeforeClose","_ref4$position","position","className","menuClassName","popperClassName","backgroundElementClass","_ref4$windowAbsolutel","windowAbsolutelyPositioned","onPopperOpen","_ref4$closeOnTab","closeOnTab","_ref4$prerender","prerender","_ref4$scopedFocus","scopedFocus","_useState","setOpen","_useState2","exited","setExited","elementRef","isOpenAtLeastOnce","wasOpen","focusBeforeOpen","focusWasVisible","returnFocusTo","popperRef","windowRef","tabOut","expandedTrigger","checkedTrigger","triggerOwnsExpanded","hasAttribute","setAttribute","removeAttribute","handleRef","undefined","_useState3","childNode","setChildNode","popperModifiers","HTMLElement","handleOpen","event","_target$props","preventDefault","stopPropagation","props","onClick","handleClose","handleTabOut","key","defaultPrevented","shiftKey","childProps","forceClose","_useState4","focusedInside","setFocusedInside","markFocusedInside","_useState5","prerenderStep","setPrerenderStep","handleCloseRef","handleTargetClose","targetProps","pressInside","markPressInside","nativeEvent","closeOnPressOutside","_elementRef$current","timer","addEventListener","clearTimeout","removeEventListener","previous","tabbedTo","returnTo","isConnected","keepFocusOut","_popperRef$current","_returnFocusTo$curren","Fragment","cloneElement","value","onKeyDown","disableReturnFocus","disableScrollLock","isolateScroll","disableCloseOnEsc","onPointerDownCapture","pointerEvents","disableBackgroundColor","anchorEl","afterWrite","modifiers","transition","_ref5","transitionProps","in","onEnter","onExited","$mode","onMouseDown","displayName"],"sources":["../../../../src/components/Menu/Menu.tsx"],"sourcesContent":["import React, {\n useRef,\n FC,\n ReactNode,\n MouseEvent,\n KeyboardEvent,\n useState,\n useCallback,\n useEffect,\n useLayoutEffect,\n useMemo,\n ReactElement,\n Ref,\n} from \"react\";\n\nimport { Placement } from \"@popperjs/core\";\nimport classnames from \"classnames\";\n\nimport { MenuContextProvider } from \"./context\";\nimport { StyledMenu } from \"./Styles\";\nimport { Portal } from \"../../helpers\";\nimport useForkRef from \"../../utils/useForkRef\";\nimport { Overlay } from \"../Overlay\";\nimport { Popper } from \"../Popper\";\nimport { Grow } from \"../Transitions\";\nimport { Window } from \"../Window\";\n\ninterface ElementWithRef<T> extends ReactElement {\n ref?: Ref<T>;\n}\n\n// source: https://twitter.com/mattpocockuk/status/1671908303918473217/photo/1\n// eslint-disable-next-line @typescript-eslint/ban-types\nexport type MenuMode = \"normal\" | \"wider\" | \"tiny\" | \"widest\";\n\nexport interface IMenu {\n /** Menu content */\n children:\n | ReactNode\n | ((childProps: { forceClose: () => void }) => JSX.Element);\n /** On menu element click */\n onMenuClick?: (event: MouseEvent<HTMLElement>) => void;\n /** Handle scroll bar */\n handleScroll?: boolean;\n /** Disable Focus Lock */\n disableFocusLock?: boolean;\n /** Menu width mode */\n mode?: MenuMode;\n /** Should menu be open when it's mounted */\n open?: boolean;\n /** Callback triggered when modal has been opened */\n onOpen?: () => void;\n /** Callback triggered when modal has been closed */\n onClose?: () => void;\n /** Before close callback */\n onBeforeClose?: () => boolean;\n /** Position Menu */\n position?: Placement;\n /** Target element */\n target?: ElementWithRef<Element>;\n className?: string;\n /** Menu classes */\n menuClassName?: string;\n /** Popper class name*/\n popperClassName?: string;\n /** Background style for clickable element after the menu is open (opacity, color, etc...) */\n backgroundElementClass?: string;\n /** Should Window be positioned absolutely */\n windowAbsolutelyPositioned?: boolean;\n /** Popper on open */\n onPopperOpen?: (...args) => void;\n /** Tab and Shift+Tab close the menu and move the focus on from the target, as they would on the target itself */\n closeOnTab?: boolean;\n /** Render the content once, hidden, soon after this turns on, so the first open is as fast as the next ones */\n prerender?: boolean;\n /** Move the focus into the menu itself, so the focus lock never searches the whole page for a place to put it */\n scopedFocus?: boolean;\n}\n\nconst isFocusVisible = (element: Element | null) => {\n try {\n return Boolean(element?.matches(\":focus-visible\"));\n } catch {\n return false;\n }\n};\n\nconst TRIGGER = 'button, [role=\"button\"], a[href]';\n\n// A target can wrap its button, as a div around a Tooltip or a CounterButton does.\nconst triggerOf = (node: HTMLElement) =>\n node.matches(TRIGGER)\n ? node\n : node.querySelector<HTMLElement>(TRIGGER) ?? node;\n\nconst visibleBoxOf = (node: HTMLElement) => {\n // A child hidden by a breakpoint has an empty box at 0,0, so it must not count.\n const rects = [\n node.getBoundingClientRect(),\n ...Array.from(node.children)\n .map((element) => element.getBoundingClientRect())\n .filter((rect) => rect.width > 0 || rect.height > 0),\n ];\n\n return {\n left: Math.min(...rects.map((rect) => rect.left)),\n right: Math.max(...rects.map((rect) => rect.right)),\n top: Math.min(...rects.map((rect) => rect.top)),\n bottom: Math.max(...rects.map((rect) => rect.bottom)),\n };\n};\n\n// A control group pulls a wrapped button out of its wrapper by negative margins, so the menu lines up with the button.\nconst offsetToVisibleBox = (node: HTMLElement) => ({\n name: \"offset\",\n options: {\n offset: ({ placement }: { placement: Placement }): [number, number] => {\n if (triggerOf(node) === node) {\n return [0, 0];\n }\n\n const wrapper = node.getBoundingClientRect();\n const box = visibleBoxOf(node);\n const [side, align] = placement.split(\"-\");\n const vertical = side === \"top\" || side === \"bottom\";\n const start = vertical ? \"left\" : \"top\";\n const end = vertical ? \"right\" : \"bottom\";\n const skidding =\n align === \"start\"\n ? box[start] - wrapper[start]\n : align === \"end\"\n ? box[end] - wrapper[end]\n : (box[start] + box[end] - wrapper[start] - wrapper[end]) / 2;\n const distance = {\n bottom: box.bottom - wrapper.bottom,\n top: wrapper.top - box.top,\n right: box.right - wrapper.right,\n left: wrapper.left - box.left,\n }[side];\n\n return [skidding, distance ?? 0];\n },\n },\n});\n\nconst TABBABLE =\n 'a[href], button, input, select, textarea, iframe, [tabindex], [contenteditable=\"true\"]';\n\n// A menu opened with the pointer hands the focus back without a focus ring, so its trigger does not stay lit.\nconst returnFocusOptions = (visible: boolean) =>\n ({ focusVisible: visible } as FocusOptions);\n\n// Moves the focus where a Tab or Shift+Tab on the trigger would go. The closing menu itself does not count.\nconst focusTabNeighbor = (\n trigger: HTMLElement,\n step: 1 | -1,\n menu: HTMLElement | null\n) => {\n const nodes = Array.from(\n document.querySelectorAll<HTMLElement>(TABBABLE)\n ).filter(\n (node) =>\n node === trigger ||\n (node.tabIndex >= 0 &&\n !(node as HTMLButtonElement).disabled &&\n !node.closest(\"[inert]\") &&\n !menu?.contains(node))\n );\n\n const from = nodes.indexOf(trigger);\n\n for (\n let index = from + step;\n from !== -1 && index >= 0 && index < nodes.length;\n index += step\n ) {\n nodes[index].focus(returnFocusOptions(true));\n\n if (document.activeElement === nodes[index]) {\n return nodes[index];\n }\n }\n\n return null;\n};\n\n// A press on a layer above the menu, such as a dialog it opened, never reached the old overlay either.\nconst isOnLayerAbove = (\n target: EventTarget | null,\n own: HTMLElement | null\n) => {\n const layer =\n target instanceof Element ? target.closest<HTMLElement>(\".c-window\") : null;\n\n if (!layer || !own || layer === own) {\n return false;\n }\n\n const layerZ = Number(layer.style.zIndex) || 0;\n const ownZ = Number(own.style.zIndex) || 0;\n\n return (\n layerZ > ownZ ||\n (layerZ === ownZ &&\n Boolean(\n own.compareDocumentPosition(layer) & Node.DOCUMENT_POSITION_FOLLOWING\n ))\n );\n};\n\nconst PRERENDER_DELAY = 50;\nconst PRERENDER_GAP = 50;\nconst prerenderQueue: (() => void)[] = [];\nlet prerenderTimer: ReturnType<typeof setTimeout> | null = null;\n\nconst runPrerenderQueue = () => {\n prerenderQueue.shift()?.();\n prerenderTimer = prerenderQueue.length\n ? setTimeout(runPrerenderQueue, PRERENDER_GAP)\n : null;\n};\n\n// One menu at a time, a moment after the caller turns it on, so no frame carries more than one render.\nconst queuePrerender = (render: () => void) => {\n prerenderQueue.push(render);\n\n if (!prerenderTimer) {\n prerenderTimer = setTimeout(runPrerenderQueue, PRERENDER_DELAY);\n }\n\n return () => {\n const index = prerenderQueue.indexOf(render);\n\n if (index !== -1) {\n prerenderQueue.splice(index, 1);\n }\n };\n};\n\n// Its layout effect runs before the popper ref is set, so it finds the menu through its own node.\nconst FocusInside: FC<{ onFocused: () => void }> = ({ onFocused }) => {\n const ref = useRef<HTMLSpanElement>(null);\n\n useLayoutEffect(() => {\n const menu = ref.current?.parentElement;\n\n if (!menu) {\n return;\n }\n\n if (menu.contains(document.activeElement)) {\n onFocused();\n return;\n }\n\n const first = Array.from(menu.querySelectorAll<HTMLElement>(TABBABLE)).find(\n (node) => node.tabIndex >= 0 && !(node as HTMLButtonElement).disabled\n );\n\n (first ?? menu.closest<HTMLElement>(\"[tabindex]\"))?.focus({\n preventScroll: true,\n });\n onFocused();\n }, [onFocused]);\n\n return <span ref={ref} hidden />;\n};\n\nexport const Menu: FC<IMenu> = ({\n children,\n disableFocusLock = false,\n onMenuClick,\n handleScroll = true,\n mode = \"normal\",\n open: defaultOpen = false,\n onOpen,\n onClose,\n onBeforeClose,\n position = \"bottom-start\",\n target,\n className,\n menuClassName,\n popperClassName,\n backgroundElementClass,\n windowAbsolutelyPositioned = false,\n onPopperOpen,\n closeOnTab = false,\n prerender = false,\n scopedFocus = false,\n}) => {\n const [open, setOpen] = useState(defaultOpen);\n const [exited, setExited] = useState(!defaultOpen);\n // The trigger node lives in a ref. In state it would render every menu of a list again right after it mounts.\n const elementRef = useRef<HTMLElement | null>(null);\n const isOpenAtLeastOnce = useRef(false);\n const wasOpen = useRef(open);\n const focusBeforeOpen = useRef<Element | null>(null);\n const focusWasVisible = useRef(false);\n const returnFocusTo = useRef<HTMLElement | null>(null);\n const popperRef = useRef<HTMLDivElement | null>(null);\n const windowRef = useRef<HTMLDivElement | null>(null);\n const tabOut = useRef<1 | -1 | 0>(0);\n\n // Read on the render that opens the menu, before the focus lock moves the focus inside it.\n if (open && !wasOpen.current && typeof document !== \"undefined\") {\n focusBeforeOpen.current = document.activeElement;\n focusWasVisible.current = isFocusVisible(document.activeElement);\n }\n wasOpen.current = open;\n\n useEffect(() => {\n setOpen(defaultOpen);\n }, [defaultOpen]);\n\n useEffect(() => {\n if (open) {\n setExited(false);\n }\n }, [open]);\n\n // Set on the node itself, so the trigger gets it also through a wrapper such as Tooltip. It runs after every\n // render, because the trigger node lives in a ref and a new node brings no render of its own.\n const expandedTrigger = useRef<HTMLElement | null>(null);\n const checkedTrigger = useRef<HTMLElement | null>(null);\n const triggerOwnsExpanded = useRef(false);\n\n useEffect(() => {\n const node = elementRef.current;\n\n if (!node) {\n return;\n }\n\n const trigger = triggerOf(node);\n\n // A trigger that renders its own aria-expanded keeps it, so the menu never clears its \"false\".\n if (checkedTrigger.current !== trigger) {\n checkedTrigger.current = trigger;\n triggerOwnsExpanded.current = trigger.hasAttribute(\"aria-expanded\");\n }\n\n if (!trigger.hasAttribute(\"aria-haspopup\")) {\n trigger.setAttribute(\"aria-haspopup\", \"true\");\n }\n\n if (triggerOwnsExpanded.current) {\n return;\n }\n\n if (open) {\n trigger.setAttribute(\"aria-expanded\", \"true\");\n expandedTrigger.current = trigger;\n } else if (expandedTrigger.current) {\n expandedTrigger.current.removeAttribute(\"aria-expanded\");\n expandedTrigger.current = null;\n }\n });\n\n const handleRef = useForkRef(target ? target.ref : undefined, elementRef);\n\n // The popper needs the node as state, so it is copied only while the menu shows, before the browser paints.\n const [childNode, setChildNode] = useState<HTMLElement | null>(null);\n\n useLayoutEffect(() => {\n const node = open || !exited ? elementRef.current : null;\n\n if (node !== childNode) {\n setChildNode(node);\n }\n }, [open, exited, childNode]);\n\n const popperModifiers = useMemo(\n () =>\n childNode instanceof HTMLElement\n ? [offsetToVisibleBox(childNode)]\n : undefined,\n [childNode]\n );\n\n const handleOpen = useCallback(\n (\n event: Pick<MouseEvent<Element>, \"preventDefault\" | \"stopPropagation\">\n ) => {\n event?.preventDefault();\n event?.stopPropagation();\n setOpen(true);\n typeof onOpen === \"function\" && onOpen();\n typeof target?.props?.onClick === \"function\" &&\n target.props.onClick(event);\n },\n [onOpen, target?.props]\n );\n\n const handleClose = useCallback(() => {\n if (typeof onBeforeClose === \"function\" && !onBeforeClose()) {\n return false;\n }\n setOpen(false);\n typeof onClose === \"function\" && onClose();\n\n return true;\n }, [onClose, onBeforeClose]);\n\n const handleTabOut = useCallback(\n (event: KeyboardEvent<HTMLDivElement>) => {\n if (event.key !== \"Tab\" || event.defaultPrevented) {\n return;\n }\n\n event.preventDefault();\n tabOut.current = event.shiftKey ? -1 : 1;\n\n if (!handleClose()) {\n tabOut.current = 0;\n }\n },\n [handleClose]\n );\n\n const childProps = {\n forceClose: handleClose,\n };\n\n const [focusedInside, setFocusedInside] = useState(false);\n const markFocusedInside = useCallback(() => setFocusedInside(true), []);\n\n useEffect(() => {\n if (!open) {\n setFocusedInside(false);\n }\n }, [open]);\n\n const [prerenderStep, setPrerenderStep] = useState<\n \"off\" | \"waiting\" | \"rendering\" | \"done\"\n >(\"off\");\n\n // The caller can turn it on later, for example once the form that holds the menu has finished opening.\n useEffect(() => {\n if (prerender && prerenderStep === \"off\") {\n setPrerenderStep(\"waiting\");\n }\n }, [prerender, prerenderStep]);\n\n useEffect(() => {\n if (prerenderStep === \"off\" || prerenderStep === \"done\") {\n return undefined;\n }\n\n if (prerenderStep === \"rendering\") {\n setPrerenderStep(\"done\");\n\n return undefined;\n }\n\n return queuePrerender(() => setPrerenderStep(\"rendering\"));\n }, [prerenderStep]);\n\n const handleCloseRef = useRef(handleClose);\n handleCloseRef.current = handleClose;\n\n const handleTargetClose = useCallback(\n (\n event: Pick<MouseEvent<Element>, \"preventDefault\" | \"stopPropagation\">\n ) => {\n event?.preventDefault();\n event?.stopPropagation();\n handleClose();\n },\n [handleClose]\n );\n\n const targetProps = {\n open,\n ref: handleRef,\n onClick: open ? handleTargetClose : handleOpen,\n };\n\n // React carries the press through portals, so a nested menu or dialog counts as inside.\n const pressInside = useRef<Event | null>(null);\n const markPressInside = useCallback((event: React.PointerEvent) => {\n pressInside.current = event.nativeEvent;\n }, []);\n\n useEffect(() => {\n if (!open) {\n return undefined;\n }\n\n const closeOnPressOutside = (event: Event) => {\n if (\n pressInside.current === event ||\n elementRef.current?.contains(event.target as Node) ||\n isOnLayerAbove(event.target, windowRef.current)\n ) {\n return;\n }\n\n handleCloseRef.current();\n };\n\n // Armed after the press that opened the menu has passed the document.\n const timer = setTimeout(() =>\n document.addEventListener(\"pointerdown\", closeOnPressOutside)\n );\n\n return () => {\n clearTimeout(timer);\n document.removeEventListener(\"pointerdown\", closeOnPressOutside);\n };\n }, [open]);\n\n useEffect(() => {\n if (open) {\n isOpenAtLeastOnce.current = true;\n } else if (!open && isOpenAtLeastOnce.current) {\n const previous = focusBeforeOpen.current;\n const step = tabOut.current;\n const tabbedTo =\n step && elementRef.current\n ? focusTabNeighbor(\n triggerOf(elementRef.current),\n step,\n windowRef.current\n )\n : null;\n\n tabOut.current = 0;\n\n if (tabbedTo) {\n returnFocusTo.current = tabbedTo;\n } else {\n const returnTo =\n previous instanceof HTMLElement && previous.isConnected\n ? previous\n : elementRef.current;\n\n returnFocusTo.current = returnTo;\n returnTo?.focus(returnFocusOptions(focusWasVisible.current));\n }\n isOpenAtLeastOnce.current = false;\n }\n }, [open]);\n\n // A fading menu is already closed. Its content can still reach for the focus, and would take it away\n // with it when it unmounts, so the focus goes straight back to where the menu returned it.\n useEffect(() => {\n if (open || exited) {\n return undefined;\n }\n\n const keepFocusOut = (event: FocusEvent) => {\n if (popperRef.current?.contains(event.target as Node)) {\n returnFocusTo.current?.focus(\n returnFocusOptions(focusWasVisible.current)\n );\n }\n };\n\n document.addEventListener(\"focusin\", keepFocusOut, true);\n\n return () => document.removeEventListener(\"focusin\", keepFocusOut, true);\n }, [open, exited]);\n\n return (\n <>\n {target && React.cloneElement(target, targetProps)}\n {prerenderStep === \"rendering\" && !open && exited ? (\n <Portal>\n <div hidden aria-hidden>\n <MenuContextProvider value={{ open: false, setOpen }}>\n {typeof children === \"function\" ? children(childProps) : children}\n </MenuContextProvider>\n </div>\n </Portal>\n ) : null}\n {open || !exited ? (\n <Window\n ref={windowRef}\n onClose={handleClose}\n onKeyDown={closeOnTab && open ? handleTabOut : undefined}\n // The lock returns the focus with the props of the render before it turns off, too late to skip a Tab.\n // The menu returns the focus itself, so a menu that closes on Tab leaves the lock out of it.\n disableReturnFocus={closeOnTab}\n disableScrollLock={!handleScroll || !open}\n isolateScroll\n // The menu returns the focus itself at once, so a late returnFocus cannot undo a caller's move.\n // With the focus already inside, the lock turns on without searching the page for a place to put it.\n disableFocusLock={\n disableFocusLock || !open || (scopedFocus && !focusedInside)\n }\n // A fading menu is already closed, so an escape pressed meanwhile belongs to the page behind it.\n disableCloseOnEsc={!open}\n onPointerDownCapture={markPressInside}\n // The page behind the menu keeps its clicks and its cursor. Only the menu itself takes the pointer.\n style={{\n position: windowAbsolutelyPositioned ? \"absolute\" : \"fixed\",\n pointerEvents: \"none\",\n }}\n >\n {open ? (\n <Overlay\n className={backgroundElementClass}\n disableBackgroundColor\n />\n ) : null}\n <Popper\n ref={popperRef}\n anchorEl={childNode}\n open={childNode ? open : false}\n placement={position}\n className={popperClassName}\n tabIndex={-1}\n afterWrite={onPopperOpen}\n modifiers={popperModifiers}\n transition\n >\n {({ placement, transitionProps }) => (\n <Grow\n placement={placement}\n in={transitionProps?.in}\n onEnter={transitionProps?.onEnter}\n onExited={() => {\n setExited(true);\n transitionProps?.onExited?.();\n }}\n >\n <StyledMenu\n className={classnames(\n \"c-simple-menu__paper\",\n `c-simple-menu__${mode}`,\n menuClassName,\n className\n )}\n $mode={mode}\n onMouseDown={onMenuClick}\n style={{ pointerEvents: open ? \"auto\" : \"none\" }}\n >\n <MenuContextProvider value={{ open, setOpen }}>\n {typeof children === \"function\"\n ? children(childProps)\n : children}\n </MenuContextProvider>\n {scopedFocus && open ? (\n <FocusInside onFocused={markFocusedInside} />\n ) : null}\n </StyledMenu>\n </Grow>\n )}\n </Popper>\n </Window>\n ) : null}\n </>\n );\n};\n\nMenu.displayName = \"Menu\";\n"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"file":"Menu.js","names":["React","useRef","useState","useCallback","useEffect","useLayoutEffect","useMemo","classnames","MenuContextProvider","StyledMenu","Portal","useForkRef","Overlay","Popper","Grow","Window","isFocusVisible","element","Boolean","matches","_unused","TRIGGER","triggerOf","node","_node$querySelector","querySelector","visibleBoxOf","rects","getBoundingClientRect","Array","from","children","map","filter","rect","width","height","left","Math","min","right","max","top","bottom","offsetToVisibleBox","name","options","offset","_ref","placement","wrapper","box","_placement$split","split","side","align","vertical","start","end","skidding","distance","TABBABLE","returnFocusOptions","visible","focusVisible","focusTabNeighbor","trigger","step","menu","nodes","document","querySelectorAll","tabIndex","disabled","closest","contains","indexOf","index","length","focus","activeElement","isOnLayerAbove","target","own","layer","Element","layerZ","Number","style","zIndex","ownZ","compareDocumentPosition","Node","DOCUMENT_POSITION_FOLLOWING","PRERENDER_DELAY","PRERENDER_GAP","prerenderQueue","prerenderTimer","runPrerenderQueue","_prerenderQueue$shift","shift","setTimeout","queuePrerender","render","push","splice","FocusInside","_ref2","onFocused","ref","_ref$current","_ref3","current","parentElement","first","find","preventScroll","createElement","hidden","Menu","_ref4","_ref4$disableFocusLoc","disableFocusLock","onMenuClick","_ref4$handleScroll","handleScroll","_ref4$mode","mode","_ref4$open","open","defaultOpen","onOpen","onClose","onBeforeClose","_ref4$position","position","className","menuClassName","popperClassName","backgroundElementClass","_ref4$windowAbsolutel","windowAbsolutelyPositioned","onPopperOpen","_ref4$closeOnTab","closeOnTab","_ref4$prerender","prerender","_ref4$scopedFocus","scopedFocus","_useState","setOpen","_useState2","exited","setExited","elementRef","isOpenAtLeastOnce","wasOpen","focusBeforeOpen","focusWasVisible","returnFocusTo","popperRef","windowRef","tabOut","expandedTrigger","checkedTrigger","triggerOwnsExpanded","hasAttribute","setAttribute","removeAttribute","handleRef","undefined","_useState3","childNode","setChildNode","popperModifiers","HTMLElement","handleOpen","event","_target$props","preventDefault","stopPropagation","props","onClick","handleClose","handleTabOut","key","defaultPrevented","shiftKey","childProps","forceClose","_useState4","focusedInside","setFocusedInside","markFocusedInside","_useState5","prerenderStep","setPrerenderStep","handleCloseRef","handleTargetClose","targetProps","pressInside","markPressInside","nativeEvent","closeOnPressOutside","_elementRef$current","timer","addEventListener","clearTimeout","removeEventListener","previous","tabbedTo","returnTo","isConnected","keepFocusOut","_popperRef$current","_returnFocusTo$curren","Fragment","cloneElement","value","onKeyDown","disableReturnFocus","disableScrollLock","isolateScroll","disableCloseOnEsc","onPointerDownCapture","pointerEvents","disableBackgroundColor","anchorEl","afterWrite","modifiers","transition","_ref5","_elementRef$current2","transitionProps","in","onEnter","onExited","$mode","onMouseDown","offsetWidth","displayName"],"sources":["../../../../src/components/Menu/Menu.tsx"],"sourcesContent":["import React, {\n useRef,\n FC,\n ReactNode,\n MouseEvent,\n KeyboardEvent,\n useState,\n useCallback,\n useEffect,\n useLayoutEffect,\n useMemo,\n ReactElement,\n Ref,\n} from \"react\";\n\nimport { Placement } from \"@popperjs/core\";\nimport classnames from \"classnames\";\n\nimport { MenuContextProvider } from \"./context\";\nimport { StyledMenu } from \"./Styles\";\nimport { Portal } from \"../../helpers\";\nimport useForkRef from \"../../utils/useForkRef\";\nimport { Overlay } from \"../Overlay\";\nimport { Popper } from \"../Popper\";\nimport { Grow } from \"../Transitions\";\nimport { Window } from \"../Window\";\n\ninterface ElementWithRef<T> extends ReactElement {\n ref?: Ref<T>;\n}\n\n// source: https://twitter.com/mattpocockuk/status/1671908303918473217/photo/1\n// eslint-disable-next-line @typescript-eslint/ban-types\nexport type MenuMode = \"normal\" | \"wider\" | \"tiny\" | \"widest\";\n\nexport interface IMenu {\n /** Menu content */\n children:\n | ReactNode\n | ((childProps: { forceClose: () => void }) => JSX.Element);\n /** On menu element click */\n onMenuClick?: (event: MouseEvent<HTMLElement>) => void;\n /** Handle scroll bar */\n handleScroll?: boolean;\n /** Disable Focus Lock */\n disableFocusLock?: boolean;\n /** Menu width mode */\n mode?: MenuMode;\n /** A width in pixels, or \"target\" for the width of the target. It wins over the mode. */\n width?: number | \"target\";\n /** Should menu be open when it's mounted */\n open?: boolean;\n /** Callback triggered when modal has been opened */\n onOpen?: () => void;\n /** Callback triggered when modal has been closed */\n onClose?: () => void;\n /** Before close callback */\n onBeforeClose?: () => boolean;\n /** Position Menu */\n position?: Placement;\n /** Target element */\n target?: ElementWithRef<Element>;\n className?: string;\n /** Menu classes */\n menuClassName?: string;\n /** Popper class name*/\n popperClassName?: string;\n /** Background style for clickable element after the menu is open (opacity, color, etc...) */\n backgroundElementClass?: string;\n /** Should Window be positioned absolutely */\n windowAbsolutelyPositioned?: boolean;\n /** Popper on open */\n onPopperOpen?: (...args) => void;\n /** Tab and Shift+Tab close the menu and move the focus on from the target, as they would on the target itself */\n closeOnTab?: boolean;\n /** Render the content once, hidden, soon after this turns on, so the first open is as fast as the next ones */\n prerender?: boolean;\n /** Move the focus into the menu itself, so the focus lock never searches the whole page for a place to put it */\n scopedFocus?: boolean;\n}\n\nconst isFocusVisible = (element: Element | null) => {\n try {\n return Boolean(element?.matches(\":focus-visible\"));\n } catch {\n return false;\n }\n};\n\nconst TRIGGER = 'button, [role=\"button\"], a[href]';\n\n// A target can wrap its button, as a div around a Tooltip or a CounterButton does.\nconst triggerOf = (node: HTMLElement) =>\n node.matches(TRIGGER)\n ? node\n : node.querySelector<HTMLElement>(TRIGGER) ?? node;\n\nconst visibleBoxOf = (node: HTMLElement) => {\n // A child hidden by a breakpoint has an empty box at 0,0, so it must not count.\n const rects = [\n node.getBoundingClientRect(),\n ...Array.from(node.children)\n .map((element) => element.getBoundingClientRect())\n .filter((rect) => rect.width > 0 || rect.height > 0),\n ];\n\n return {\n left: Math.min(...rects.map((rect) => rect.left)),\n right: Math.max(...rects.map((rect) => rect.right)),\n top: Math.min(...rects.map((rect) => rect.top)),\n bottom: Math.max(...rects.map((rect) => rect.bottom)),\n };\n};\n\n// A control group pulls a wrapped button out of its wrapper by negative margins, so the menu lines up with the button.\nconst offsetToVisibleBox = (node: HTMLElement) => ({\n name: \"offset\",\n options: {\n offset: ({ placement }: { placement: Placement }): [number, number] => {\n if (triggerOf(node) === node) {\n return [0, 0];\n }\n\n const wrapper = node.getBoundingClientRect();\n const box = visibleBoxOf(node);\n const [side, align] = placement.split(\"-\");\n const vertical = side === \"top\" || side === \"bottom\";\n const start = vertical ? \"left\" : \"top\";\n const end = vertical ? \"right\" : \"bottom\";\n const skidding =\n align === \"start\"\n ? box[start] - wrapper[start]\n : align === \"end\"\n ? box[end] - wrapper[end]\n : (box[start] + box[end] - wrapper[start] - wrapper[end]) / 2;\n const distance = {\n bottom: box.bottom - wrapper.bottom,\n top: wrapper.top - box.top,\n right: box.right - wrapper.right,\n left: wrapper.left - box.left,\n }[side];\n\n return [skidding, distance ?? 0];\n },\n },\n});\n\nconst TABBABLE =\n 'a[href], button, input, select, textarea, iframe, [tabindex], [contenteditable=\"true\"]';\n\n// A menu opened with the pointer hands the focus back without a focus ring, so its trigger does not stay lit.\nconst returnFocusOptions = (visible: boolean) =>\n ({ focusVisible: visible } as FocusOptions);\n\n// Moves the focus where a Tab or Shift+Tab on the trigger would go. The closing menu itself does not count.\nconst focusTabNeighbor = (\n trigger: HTMLElement,\n step: 1 | -1,\n menu: HTMLElement | null\n) => {\n const nodes = Array.from(\n document.querySelectorAll<HTMLElement>(TABBABLE)\n ).filter(\n (node) =>\n node === trigger ||\n (node.tabIndex >= 0 &&\n !(node as HTMLButtonElement).disabled &&\n !node.closest(\"[inert]\") &&\n !menu?.contains(node))\n );\n\n const from = nodes.indexOf(trigger);\n\n for (\n let index = from + step;\n from !== -1 && index >= 0 && index < nodes.length;\n index += step\n ) {\n nodes[index].focus(returnFocusOptions(true));\n\n if (document.activeElement === nodes[index]) {\n return nodes[index];\n }\n }\n\n return null;\n};\n\n// A press on a layer above the menu, such as a dialog it opened, never reached the old overlay either.\nconst isOnLayerAbove = (\n target: EventTarget | null,\n own: HTMLElement | null\n) => {\n const layer =\n target instanceof Element ? target.closest<HTMLElement>(\".c-window\") : null;\n\n if (!layer || !own || layer === own) {\n return false;\n }\n\n const layerZ = Number(layer.style.zIndex) || 0;\n const ownZ = Number(own.style.zIndex) || 0;\n\n return (\n layerZ > ownZ ||\n (layerZ === ownZ &&\n Boolean(\n own.compareDocumentPosition(layer) & Node.DOCUMENT_POSITION_FOLLOWING\n ))\n );\n};\n\nconst PRERENDER_DELAY = 50;\nconst PRERENDER_GAP = 50;\nconst prerenderQueue: (() => void)[] = [];\nlet prerenderTimer: ReturnType<typeof setTimeout> | null = null;\n\nconst runPrerenderQueue = () => {\n prerenderQueue.shift()?.();\n prerenderTimer = prerenderQueue.length\n ? setTimeout(runPrerenderQueue, PRERENDER_GAP)\n : null;\n};\n\n// One menu at a time, a moment after the caller turns it on, so no frame carries more than one render.\nconst queuePrerender = (render: () => void) => {\n prerenderQueue.push(render);\n\n if (!prerenderTimer) {\n prerenderTimer = setTimeout(runPrerenderQueue, PRERENDER_DELAY);\n }\n\n return () => {\n const index = prerenderQueue.indexOf(render);\n\n if (index !== -1) {\n prerenderQueue.splice(index, 1);\n }\n };\n};\n\n// Its layout effect runs before the popper ref is set, so it finds the menu through its own node.\nconst FocusInside: FC<{ onFocused: () => void }> = ({ onFocused }) => {\n const ref = useRef<HTMLSpanElement>(null);\n\n useLayoutEffect(() => {\n const menu = ref.current?.parentElement;\n\n if (!menu) {\n return;\n }\n\n if (menu.contains(document.activeElement)) {\n onFocused();\n return;\n }\n\n const first = Array.from(menu.querySelectorAll<HTMLElement>(TABBABLE)).find(\n (node) => node.tabIndex >= 0 && !(node as HTMLButtonElement).disabled\n );\n\n (first ?? menu.closest<HTMLElement>(\"[tabindex]\"))?.focus({\n preventScroll: true,\n });\n onFocused();\n }, [onFocused]);\n\n return <span ref={ref} hidden />;\n};\n\nexport const Menu: FC<IMenu> = ({\n children,\n disableFocusLock = false,\n onMenuClick,\n handleScroll = true,\n mode = \"normal\",\n width,\n open: defaultOpen = false,\n onOpen,\n onClose,\n onBeforeClose,\n position = \"bottom-start\",\n target,\n className,\n menuClassName,\n popperClassName,\n backgroundElementClass,\n windowAbsolutelyPositioned = false,\n onPopperOpen,\n closeOnTab = false,\n prerender = false,\n scopedFocus = false,\n}) => {\n const [open, setOpen] = useState(defaultOpen);\n const [exited, setExited] = useState(!defaultOpen);\n // The trigger node lives in a ref. In state it would render every menu of a list again right after it mounts.\n const elementRef = useRef<HTMLElement | null>(null);\n const isOpenAtLeastOnce = useRef(false);\n const wasOpen = useRef(open);\n const focusBeforeOpen = useRef<Element | null>(null);\n const focusWasVisible = useRef(false);\n const returnFocusTo = useRef<HTMLElement | null>(null);\n const popperRef = useRef<HTMLDivElement | null>(null);\n const windowRef = useRef<HTMLDivElement | null>(null);\n const tabOut = useRef<1 | -1 | 0>(0);\n\n // Read on the render that opens the menu, before the focus lock moves the focus inside it.\n if (open && !wasOpen.current && typeof document !== \"undefined\") {\n focusBeforeOpen.current = document.activeElement;\n focusWasVisible.current = isFocusVisible(document.activeElement);\n }\n wasOpen.current = open;\n\n useEffect(() => {\n setOpen(defaultOpen);\n }, [defaultOpen]);\n\n useEffect(() => {\n if (open) {\n setExited(false);\n }\n }, [open]);\n\n // Set on the node itself, so the trigger gets it also through a wrapper such as Tooltip. It runs after every\n // render, because the trigger node lives in a ref and a new node brings no render of its own.\n const expandedTrigger = useRef<HTMLElement | null>(null);\n const checkedTrigger = useRef<HTMLElement | null>(null);\n const triggerOwnsExpanded = useRef(false);\n\n useEffect(() => {\n const node = elementRef.current;\n\n if (!node) {\n return;\n }\n\n const trigger = triggerOf(node);\n\n // A trigger that renders its own aria-expanded keeps it, so the menu never clears its \"false\".\n if (checkedTrigger.current !== trigger) {\n checkedTrigger.current = trigger;\n triggerOwnsExpanded.current = trigger.hasAttribute(\"aria-expanded\");\n }\n\n if (!trigger.hasAttribute(\"aria-haspopup\")) {\n trigger.setAttribute(\"aria-haspopup\", \"true\");\n }\n\n if (triggerOwnsExpanded.current) {\n return;\n }\n\n if (open) {\n trigger.setAttribute(\"aria-expanded\", \"true\");\n expandedTrigger.current = trigger;\n } else if (expandedTrigger.current) {\n expandedTrigger.current.removeAttribute(\"aria-expanded\");\n expandedTrigger.current = null;\n }\n });\n\n const handleRef = useForkRef(target ? target.ref : undefined, elementRef);\n\n // The popper needs the node as state, so it is copied only while the menu shows, before the browser paints.\n const [childNode, setChildNode] = useState<HTMLElement | null>(null);\n\n useLayoutEffect(() => {\n const node = open || !exited ? elementRef.current : null;\n\n if (node !== childNode) {\n setChildNode(node);\n }\n }, [open, exited, childNode]);\n\n const popperModifiers = useMemo(\n () =>\n childNode instanceof HTMLElement\n ? [offsetToVisibleBox(childNode)]\n : undefined,\n [childNode]\n );\n\n const handleOpen = useCallback(\n (\n event: Pick<MouseEvent<Element>, \"preventDefault\" | \"stopPropagation\">\n ) => {\n event?.preventDefault();\n event?.stopPropagation();\n setOpen(true);\n typeof onOpen === \"function\" && onOpen();\n typeof target?.props?.onClick === \"function\" &&\n target.props.onClick(event);\n },\n [onOpen, target?.props]\n );\n\n const handleClose = useCallback(() => {\n if (typeof onBeforeClose === \"function\" && !onBeforeClose()) {\n return false;\n }\n setOpen(false);\n typeof onClose === \"function\" && onClose();\n\n return true;\n }, [onClose, onBeforeClose]);\n\n const handleTabOut = useCallback(\n (event: KeyboardEvent<HTMLDivElement>) => {\n if (event.key !== \"Tab\" || event.defaultPrevented) {\n return;\n }\n\n event.preventDefault();\n tabOut.current = event.shiftKey ? -1 : 1;\n\n if (!handleClose()) {\n tabOut.current = 0;\n }\n },\n [handleClose]\n );\n\n const childProps = {\n forceClose: handleClose,\n };\n\n const [focusedInside, setFocusedInside] = useState(false);\n const markFocusedInside = useCallback(() => setFocusedInside(true), []);\n\n useEffect(() => {\n if (!open) {\n setFocusedInside(false);\n }\n }, [open]);\n\n const [prerenderStep, setPrerenderStep] = useState<\n \"off\" | \"waiting\" | \"rendering\" | \"done\"\n >(\"off\");\n\n // The caller can turn it on later, for example once the form that holds the menu has finished opening.\n useEffect(() => {\n if (prerender && prerenderStep === \"off\") {\n setPrerenderStep(\"waiting\");\n }\n }, [prerender, prerenderStep]);\n\n useEffect(() => {\n if (prerenderStep === \"off\" || prerenderStep === \"done\") {\n return undefined;\n }\n\n if (prerenderStep === \"rendering\") {\n setPrerenderStep(\"done\");\n\n return undefined;\n }\n\n return queuePrerender(() => setPrerenderStep(\"rendering\"));\n }, [prerenderStep]);\n\n const handleCloseRef = useRef(handleClose);\n handleCloseRef.current = handleClose;\n\n const handleTargetClose = useCallback(\n (\n event: Pick<MouseEvent<Element>, \"preventDefault\" | \"stopPropagation\">\n ) => {\n event?.preventDefault();\n event?.stopPropagation();\n handleClose();\n },\n [handleClose]\n );\n\n const targetProps = {\n open,\n ref: handleRef,\n onClick: open ? handleTargetClose : handleOpen,\n };\n\n // React carries the press through portals, so a nested menu or dialog counts as inside.\n const pressInside = useRef<Event | null>(null);\n const markPressInside = useCallback((event: React.PointerEvent) => {\n pressInside.current = event.nativeEvent;\n }, []);\n\n useEffect(() => {\n if (!open) {\n return undefined;\n }\n\n const closeOnPressOutside = (event: Event) => {\n if (\n pressInside.current === event ||\n elementRef.current?.contains(event.target as Node) ||\n isOnLayerAbove(event.target, windowRef.current)\n ) {\n return;\n }\n\n handleCloseRef.current();\n };\n\n // Armed after the press that opened the menu has passed the document.\n const timer = setTimeout(() =>\n document.addEventListener(\"pointerdown\", closeOnPressOutside)\n );\n\n return () => {\n clearTimeout(timer);\n document.removeEventListener(\"pointerdown\", closeOnPressOutside);\n };\n }, [open]);\n\n useEffect(() => {\n if (open) {\n isOpenAtLeastOnce.current = true;\n } else if (!open && isOpenAtLeastOnce.current) {\n const previous = focusBeforeOpen.current;\n const step = tabOut.current;\n const tabbedTo =\n step && elementRef.current\n ? focusTabNeighbor(\n triggerOf(elementRef.current),\n step,\n windowRef.current\n )\n : null;\n\n tabOut.current = 0;\n\n if (tabbedTo) {\n returnFocusTo.current = tabbedTo;\n } else {\n const returnTo =\n previous instanceof HTMLElement && previous.isConnected\n ? previous\n : elementRef.current;\n\n returnFocusTo.current = returnTo;\n returnTo?.focus(returnFocusOptions(focusWasVisible.current));\n }\n isOpenAtLeastOnce.current = false;\n }\n }, [open]);\n\n // A fading menu is already closed. Its content can still reach for the focus, and would take it away\n // with it when it unmounts, so the focus goes straight back to where the menu returned it.\n useEffect(() => {\n if (open || exited) {\n return undefined;\n }\n\n const keepFocusOut = (event: FocusEvent) => {\n if (popperRef.current?.contains(event.target as Node)) {\n returnFocusTo.current?.focus(\n returnFocusOptions(focusWasVisible.current)\n );\n }\n };\n\n document.addEventListener(\"focusin\", keepFocusOut, true);\n\n return () => document.removeEventListener(\"focusin\", keepFocusOut, true);\n }, [open, exited]);\n\n return (\n <>\n {target && React.cloneElement(target, targetProps)}\n {prerenderStep === \"rendering\" && !open && exited ? (\n <Portal>\n <div hidden aria-hidden>\n <MenuContextProvider value={{ open: false, setOpen }}>\n {typeof children === \"function\" ? children(childProps) : children}\n </MenuContextProvider>\n </div>\n </Portal>\n ) : null}\n {open || !exited ? (\n <Window\n ref={windowRef}\n onClose={handleClose}\n onKeyDown={closeOnTab && open ? handleTabOut : undefined}\n // The lock returns the focus with the props of the render before it turns off, too late to skip a Tab.\n // The menu returns the focus itself, so a menu that closes on Tab leaves the lock out of it.\n disableReturnFocus={closeOnTab}\n disableScrollLock={!handleScroll || !open}\n isolateScroll\n // The menu returns the focus itself at once, so a late returnFocus cannot undo a caller's move.\n // With the focus already inside, the lock turns on without searching the page for a place to put it.\n disableFocusLock={\n disableFocusLock || !open || (scopedFocus && !focusedInside)\n }\n // A fading menu is already closed, so an escape pressed meanwhile belongs to the page behind it.\n disableCloseOnEsc={!open}\n onPointerDownCapture={markPressInside}\n // The page behind the menu keeps its clicks and its cursor. Only the menu itself takes the pointer.\n style={{\n position: windowAbsolutelyPositioned ? \"absolute\" : \"fixed\",\n pointerEvents: \"none\",\n }}\n >\n {open ? (\n <Overlay\n className={backgroundElementClass}\n disableBackgroundColor\n />\n ) : null}\n <Popper\n ref={popperRef}\n anchorEl={childNode}\n open={childNode ? open : false}\n placement={position}\n className={popperClassName}\n tabIndex={-1}\n afterWrite={onPopperOpen}\n modifiers={popperModifiers}\n transition\n >\n {({ placement, transitionProps }) => (\n <Grow\n placement={placement}\n in={transitionProps?.in}\n onEnter={transitionProps?.onEnter}\n onExited={() => {\n setExited(true);\n transitionProps?.onExited?.();\n }}\n >\n <StyledMenu\n className={classnames(\n \"c-simple-menu__paper\",\n `c-simple-menu__${mode}`,\n menuClassName,\n className\n )}\n $mode={mode}\n onMouseDown={onMenuClick}\n style={{\n pointerEvents: open ? \"auto\" : \"none\",\n width:\n width === \"target\"\n ? elementRef.current?.offsetWidth\n : width,\n }}\n >\n <MenuContextProvider value={{ open, setOpen }}>\n {typeof children === \"function\"\n ? children(childProps)\n : children}\n </MenuContextProvider>\n {scopedFocus && open ? (\n <FocusInside onFocused={markFocusedInside} />\n ) : null}\n </StyledMenu>\n </Grow>\n )}\n </Popper>\n </Window>\n ) : null}\n </>\n );\n};\n\nMenu.displayName = \"Menu\";\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -1,7 +1,19 @@
|
|
|
1
1
|
import React, { ReactNode, ReactNodeArray } from "react";
|
|
2
|
+
export interface MenuFooterAction {
|
|
3
|
+
label: string;
|
|
4
|
+
onClick: () => void;
|
|
5
|
+
disabled?: boolean;
|
|
6
|
+
"data-testid"?: string;
|
|
7
|
+
}
|
|
2
8
|
export interface IMenuFooter {
|
|
3
9
|
className?: string;
|
|
4
10
|
children?: ReactNode | ReactNodeArray;
|
|
11
|
+
/** The main action, a primary button at the left. */
|
|
12
|
+
primary?: MenuFooterAction;
|
|
13
|
+
/** The second action, beside the main one. */
|
|
14
|
+
secondary?: MenuFooterAction;
|
|
15
|
+
/** A quiet action at the right, such as Remove. */
|
|
16
|
+
tertiary?: MenuFooterAction;
|
|
5
17
|
}
|
|
6
18
|
export declare const MenuFooter: React.ForwardRefExoticComponent<IMenuFooter & React.HTMLAttributes<HTMLDivElement> & React.RefAttributes<HTMLDivElement>>;
|
|
7
19
|
//# sourceMappingURL=MenuFooter.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"MenuFooter.d.ts","sourceRoot":"","sources":["../../../../src/components/Menu/MenuFooter.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,EAGZ,SAAS,EACT,cAAc,EAEf,MAAM,OAAO,CAAC;
|
|
1
|
+
{"version":3,"file":"MenuFooter.d.ts","sourceRoot":"","sources":["../../../../src/components/Menu/MenuFooter.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,EAGZ,SAAS,EACT,cAAc,EAEf,MAAM,OAAO,CAAC;AAOf,MAAM,WAAW,gBAAgB;IAC/B,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,MAAM,IAAI,CAAC;IACpB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,aAAa,CAAC,EAAE,MAAM,CAAC;CACxB;AAED,MAAM,WAAW,WAAW;IAC1B,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,QAAQ,CAAC,EAAE,SAAS,GAAG,cAAc,CAAC;IACtC,qDAAqD;IACrD,OAAO,CAAC,EAAE,gBAAgB,CAAC;IAC3B,8CAA8C;IAC9C,SAAS,CAAC,EAAE,gBAAgB,CAAC;IAC7B,mDAAmD;IACnD,QAAQ,CAAC,EAAE,gBAAgB,CAAC;CAC7B;AAmBD,eAAO,MAAM,UAAU,2HAkCtB,CAAC"}
|
|
@@ -1,17 +1,31 @@
|
|
|
1
1
|
import _extends from "@babel/runtime/helpers/esm/extends";
|
|
2
2
|
import _objectWithoutPropertiesLoose from "@babel/runtime/helpers/esm/objectWithoutPropertiesLoose";
|
|
3
|
-
const _excluded = ["children", "className"];
|
|
3
|
+
const _excluded = ["children", "className", "primary", "secondary", "tertiary"];
|
|
4
4
|
import React, { forwardRef } from "react";
|
|
5
5
|
import classnames from "classnames";
|
|
6
|
-
import { StyledMenuFooter } from "./Styles";
|
|
6
|
+
import { StyledMenuFooter, StyledMenuFooterGroup } from "./Styles";
|
|
7
|
+
import { Button } from "../Button";
|
|
8
|
+
const actionButton = (action, variant) => action ? /*#__PURE__*/React.createElement(Button, {
|
|
9
|
+
type: "button",
|
|
10
|
+
variant: variant,
|
|
11
|
+
size: "small",
|
|
12
|
+
disabled: action.disabled,
|
|
13
|
+
onClick: action.onClick,
|
|
14
|
+
"data-testid": action["data-testid"]
|
|
15
|
+
}, action.label) : null;
|
|
7
16
|
export const MenuFooter = /*#__PURE__*/forwardRef((_ref, ref) => {
|
|
8
17
|
let children = _ref.children,
|
|
9
18
|
className = _ref.className,
|
|
19
|
+
primary = _ref.primary,
|
|
20
|
+
secondary = _ref.secondary,
|
|
21
|
+
tertiary = _ref.tertiary,
|
|
10
22
|
props = _objectWithoutPropertiesLoose(_ref, _excluded);
|
|
23
|
+
const hasActions = Boolean(primary || secondary || tertiary);
|
|
11
24
|
return /*#__PURE__*/React.createElement(StyledMenuFooter, _extends({}, props, {
|
|
25
|
+
$actions: hasActions,
|
|
12
26
|
className: classnames("c-menu-footer", className),
|
|
13
27
|
ref: ref
|
|
14
|
-
}), children);
|
|
28
|
+
}), hasActions ? /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement(StyledMenuFooterGroup, null, actionButton(primary, "primary"), actionButton(secondary, "secondary")), actionButton(tertiary, "text gray")) : null, children);
|
|
15
29
|
});
|
|
16
30
|
MenuFooter.displayName = "MenuFooter";
|
|
17
31
|
//# sourceMappingURL=MenuFooter.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"MenuFooter.js","names":["React","forwardRef","classnames","StyledMenuFooter","MenuFooter","_ref","ref","children","className","props","_objectWithoutPropertiesLoose","_excluded","
|
|
1
|
+
{"version":3,"file":"MenuFooter.js","names":["React","forwardRef","classnames","StyledMenuFooter","StyledMenuFooterGroup","Button","actionButton","action","variant","createElement","type","size","disabled","onClick","label","MenuFooter","_ref","ref","children","className","primary","secondary","tertiary","props","_objectWithoutPropertiesLoose","_excluded","hasActions","Boolean","_extends","$actions","Fragment","displayName"],"sources":["../../../../src/components/Menu/MenuFooter.tsx"],"sourcesContent":["import React, {\n forwardRef,\n HTMLAttributes,\n ReactNode,\n ReactNodeArray,\n Ref,\n} from \"react\";\n\nimport classnames from \"classnames\";\n\nimport { StyledMenuFooter, StyledMenuFooterGroup } from \"./Styles\";\nimport { Button } from \"../Button\";\n\nexport interface MenuFooterAction {\n label: string;\n onClick: () => void;\n disabled?: boolean;\n \"data-testid\"?: string;\n}\n\nexport interface IMenuFooter {\n className?: string;\n children?: ReactNode | ReactNodeArray;\n /** The main action, a primary button at the left. */\n primary?: MenuFooterAction;\n /** The second action, beside the main one. */\n secondary?: MenuFooterAction;\n /** A quiet action at the right, such as Remove. */\n tertiary?: MenuFooterAction;\n}\n\nconst actionButton = (\n action: MenuFooterAction | undefined,\n variant: \"primary\" | \"secondary\" | \"text gray\"\n) =>\n action ? (\n <Button\n type=\"button\"\n variant={variant}\n size=\"small\"\n disabled={action.disabled}\n onClick={action.onClick}\n data-testid={action[\"data-testid\"]}\n >\n {action.label}\n </Button>\n ) : null;\n\nexport const MenuFooter = forwardRef(\n (\n {\n children,\n className,\n primary,\n secondary,\n tertiary,\n ...props\n }: IMenuFooter & HTMLAttributes<HTMLDivElement>,\n ref: Ref<HTMLDivElement>\n ) => {\n const hasActions = Boolean(primary || secondary || tertiary);\n\n return (\n <StyledMenuFooter\n {...props}\n $actions={hasActions}\n className={classnames(\"c-menu-footer\", className)}\n ref={ref}\n >\n {hasActions ? (\n <>\n <StyledMenuFooterGroup>\n {actionButton(primary, \"primary\")}\n {actionButton(secondary, \"secondary\")}\n </StyledMenuFooterGroup>\n {actionButton(tertiary, \"text gray\")}\n </>\n ) : null}\n {children}\n </StyledMenuFooter>\n );\n }\n);\n\nMenuFooter.displayName = \"MenuFooter\";\n"],"mappings":";;;AAAA,OAAOA,KAAK,IACVC,UAAU,QAKL,OAAO;AAEd,OAAOC,UAAU,MAAM,YAAY;AAEnC,SAASC,gBAAgB,EAAEC,qBAAqB,QAAQ,UAAU;AAClE,SAASC,MAAM,QAAQ,WAAW;AAoBlC,MAAMC,YAAY,GAAGA,CACnBC,MAAoC,EACpCC,OAA8C,KAE9CD,MAAM,gBACJP,KAAA,CAAAS,aAAA,CAACJ,MAAM;EACLK,IAAI,EAAC,QAAQ;EACbF,OAAO,EAAEA,OAAQ;EACjBG,IAAI,EAAC,OAAO;EACZC,QAAQ,EAAEL,MAAM,CAACK,QAAS;EAC1BC,OAAO,EAAEN,MAAM,CAACM,OAAQ;EACxB,eAAaN,MAAM,CAAC,aAAa;AAAE,GAElCA,MAAM,CAACO,KACF,CAAC,GACP,IAAI;AAEV,OAAO,MAAMC,UAAU,gBAAGd,UAAU,CAClC,CAAAe,IAAA,EASEC,GAAwB,KACrB;EAAA,IARDC,QAAQ,GAAAF,IAAA,CAARE,QAAQ;IACRC,SAAS,GAAAH,IAAA,CAATG,SAAS;IACTC,OAAO,GAAAJ,IAAA,CAAPI,OAAO;IACPC,SAAS,GAAAL,IAAA,CAATK,SAAS;IACTC,QAAQ,GAAAN,IAAA,CAARM,QAAQ;IACLC,KAAK,GAAAC,6BAAA,CAAAR,IAAA,EAAAS,SAAA;EAIV,MAAMC,UAAU,GAAGC,OAAO,CAACP,OAAO,IAAIC,SAAS,IAAIC,QAAQ,CAAC;EAE5D,oBACEtB,KAAA,CAAAS,aAAA,CAACN,gBAAgB,EAAAyB,QAAA,KACXL,KAAK;IACTM,QAAQ,EAAEH,UAAW;IACrBP,SAAS,EAAEjB,UAAU,CAAC,eAAe,EAAEiB,SAAS,CAAE;IAClDF,GAAG,EAAEA;EAAI,IAERS,UAAU,gBACT1B,KAAA,CAAAS,aAAA,CAAAT,KAAA,CAAA8B,QAAA,qBACE9B,KAAA,CAAAS,aAAA,CAACL,qBAAqB,QACnBE,YAAY,CAACc,OAAO,EAAE,SAAS,CAAC,EAChCd,YAAY,CAACe,SAAS,EAAE,WAAW,CACf,CAAC,EACvBf,YAAY,CAACgB,QAAQ,EAAE,WAAW,CACnC,CAAC,GACD,IAAI,EACPJ,QACe,CAAC;AAEvB,CACF,CAAC;AAEDH,UAAU,CAACgB,WAAW,GAAG,YAAY","ignoreList":[]}
|