@procore/core-react 12.21.2 → 12.22.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +6 -8
- package/dist/@types/global.d.js.map +1 -1
- package/dist/AnchorNavigation/AnchorNavigation.styles.d.ts +6 -5
- package/dist/AnchorNavigation/AnchorNavigation.styles.js +3 -3
- package/dist/Avatar/Avatar.styles.d.ts +7 -6
- package/dist/Avatar/Avatar.styles.js +5 -5
- package/dist/AvatarStack/AvatarStack.styles.d.ts +1677 -13
- package/dist/AvatarStack/AvatarStack.styles.js +7 -7
- package/dist/Badge/Badge.styles.d.ts +3 -2
- package/dist/Badge/Badge.styles.js +2 -2
- package/dist/Banner/Banner.js +1 -1
- package/dist/Banner/Banner.js.map +1 -1
- package/dist/Banner/Banner.styles.d.ts +22 -13
- package/dist/Banner/Banner.styles.js +12 -12
- package/dist/Banner/Banner.styles.js.map +1 -1
- package/dist/Box/Box.js +1 -1
- package/dist/Box/Box.js.map +1 -1
- package/dist/Box/Box.styles.d.ts +2 -1
- package/dist/Box/Box.styles.js +3 -3
- package/dist/Box/Box.styles.js.map +1 -1
- package/dist/Box/Box.types.d.ts +1 -1
- package/dist/Box/Box.types.js.map +1 -1
- package/dist/Breadcrumbs/Breadcrumbs.styles.d.ts +5 -4
- package/dist/Breadcrumbs/Breadcrumbs.styles.js +4 -4
- package/dist/Button/Button.styles.d.ts +8 -6
- package/dist/Button/Button.styles.js +5 -5
- package/dist/Calendar/Calendar.styles.d.ts +15 -9
- package/dist/Calendar/Calendar.styles.js +8 -8
- package/dist/Card/Card.styles.d.ts +3 -2
- package/dist/Card/Card.styles.js +1 -1
- package/dist/Checkbox/Checkbox.styles.d.ts +11 -10
- package/dist/Checkbox/Checkbox.styles.js +6 -6
- package/dist/Checkbox/CheckboxTooltip.js +1 -1
- package/dist/ContactItem/ContactItem.styles.d.ts +18 -7
- package/dist/ContactItem/ContactItem.styles.js +5 -5
- package/dist/Content/Content.styles.d.ts +6 -2
- package/dist/Content/Content.styles.js +2 -2
- package/dist/DateInput/DateInput.js +6 -6
- package/dist/DateInput/DateInput.js.map +1 -1
- package/dist/DateInput/DateInput.styles.d.ts +20 -13
- package/dist/DateInput/DateInput.styles.js +21 -23
- package/dist/DateInput/DateInput.styles.js.map +1 -1
- package/dist/DateSelect/DateSelect.js +2 -2
- package/dist/DateSelect/DateSelect.js.map +1 -1
- package/dist/DetailPage/DetailPage.styles.d.ts +13 -7
- package/dist/DetailPage/DetailPage.styles.js +7 -7
- package/dist/Dropdown/Dropdown.styles.d.ts +10 -4
- package/dist/Dropdown/Dropdown.styles.js +3 -3
- package/dist/DropdownFlyout/DropdownFlyout.js +1 -1
- package/dist/DropdownFlyout/DropdownFlyout.js.map +1 -1
- package/dist/DropdownFlyout/DropdownFlyout.styles.d.ts +5 -4
- package/dist/DropdownFlyout/DropdownFlyout.styles.js +4 -4
- package/dist/DropdownFlyout/DropdownFlyout.types.d.ts +4 -1
- package/dist/DropdownFlyout/DropdownFlyout.types.js.map +1 -1
- package/dist/Dropzone/Dropzone.d.ts +3 -1
- package/dist/Dropzone/Dropzone.js +5 -5
- package/dist/Dropzone/Dropzone.js.map +1 -1
- package/dist/Dropzone/Dropzone.styles.d.ts +24 -16
- package/dist/Dropzone/Dropzone.styles.js +22 -22
- package/dist/Dropzone/Dropzone.styles.js.map +1 -1
- package/dist/EmptyState/EmptyState.js +1 -1
- package/dist/EmptyState/EmptyState.js.map +1 -1
- package/dist/EmptyState/EmptyState.styles.d.ts +8 -7
- package/dist/EmptyState/EmptyState.styles.js +6 -6
- package/dist/Field/Field.styles.d.ts +4 -3
- package/dist/Field/Field.styles.js +3 -3
- package/dist/FileList/FileList.styles.d.ts +8 -4
- package/dist/FileList/FileList.styles.js +4 -4
- package/dist/FileSelect/FileExplorer/FileExplorer.styles.d.ts +18 -10
- package/dist/FileSelect/FileExplorer/FileExplorer.styles.js +9 -9
- package/dist/FileSelect/FileExplorer/FileExplorerSidebar.styles.d.ts +5 -3
- package/dist/FileSelect/FileExplorer/FileExplorerSidebar.styles.js +3 -3
- package/dist/FileSelect/FileSelect.d.ts +3 -3
- package/dist/FileSelect/FileSelect.js +4 -4
- package/dist/FileSelect/FileSelect.js.map +1 -1
- package/dist/FileSelect/FileSelect.styles.d.ts +4 -2
- package/dist/FileSelect/FileSelect.styles.js +2 -2
- package/dist/FileSelect/FileSelectDropzone/FileSelectDropzone.styles.d.ts +7 -5
- package/dist/FileSelect/FileSelectDropzone/FileSelectDropzone.styles.js +3 -3
- package/dist/FileSelect/FileTokenList/FileTokenList.styles.d.ts +4 -2
- package/dist/FileSelect/FileTokenList/FileTokenList.styles.js +2 -2
- package/dist/FileSelect/GridSource/GridSource.styles.d.ts +11 -9
- package/dist/FileSelect/GridSource/GridSource.styles.js +6 -6
- package/dist/FileSelect/LocalSource/LocalSource.styles.d.ts +10 -4
- package/dist/FileSelect/LocalSource/LocalSource.styles.js +4 -4
- package/dist/FileSelect/SourceItem/SourceItem.styles.d.ts +5 -4
- package/dist/FileSelect/SourceItem/SourceItem.styles.js +3 -3
- package/dist/FileSelect/ThumbnailList/ThumbnailList.js +1 -1
- package/dist/FileSelect/ThumbnailList/ThumbnailList.js.map +1 -1
- package/dist/FileSelect/ThumbnailList/ThumbnailList.styles.d.ts +18 -8
- package/dist/FileSelect/ThumbnailList/ThumbnailList.styles.js +6 -6
- package/dist/FileSelect/TreeSource/TreeSource.styles.d.ts +2 -1
- package/dist/FileSelect/TreeSource/TreeSource.styles.js +1 -1
- package/dist/FileToken/FileToken.styles.d.ts +6 -5
- package/dist/FileToken/FileToken.styles.js +4 -4
- package/dist/FilterToken/FilterToken.styles.d.ts +8 -7
- package/dist/FilterToken/FilterToken.styles.js +5 -5
- package/dist/FlexList/FlexList.styles.d.ts +4 -2
- package/dist/FlexList/FlexList.styles.js +1 -1
- package/dist/Form/Form.d.ts +2 -1
- package/dist/Form/Form.js.map +1 -1
- package/dist/Form/Form.styles.d.ts +48 -25
- package/dist/Form/Form.styles.js +18 -18
- package/dist/Form/Form.styles.js.map +1 -1
- package/dist/Form/Form.types.d.ts +1 -1
- package/dist/Form/Form.types.js.map +1 -1
- package/dist/Form/StyledFormikForm.styles.d.ts +7 -3
- package/dist/Form/StyledFormikForm.styles.js +2 -2
- package/dist/GhostPlaceholder/GhostPlaceholder.styles.d.ts +5 -2
- package/dist/GhostPlaceholder/GhostPlaceholder.styles.js +2 -2
- package/dist/Grid/Grid.styles.d.ts +5 -4
- package/dist/Grid/Grid.styles.js +2 -2
- package/dist/GroupSelect/GroupSelect.js +1 -1
- package/dist/GroupSelect/GroupSelect.js.map +1 -1
- package/dist/GroupSelect/GroupSelect.styles.d.ts +4 -2
- package/dist/GroupSelect/GroupSelect.styles.js +1 -1
- package/dist/Input/Input.js +5 -1
- package/dist/Input/Input.js.map +1 -1
- package/dist/Input/Input.styles.d.ts +8 -8
- package/dist/Input/Input.styles.js +5 -5
- package/dist/Input/Input.styles.js.map +1 -1
- package/dist/Link/Link.js +3 -1
- package/dist/Link/Link.js.map +1 -1
- package/dist/Link/Link.styles.d.ts +4 -1
- package/dist/Link/Link.styles.js +4 -4
- package/dist/Link/Link.styles.js.map +1 -1
- package/dist/Link/Link.types.d.ts +1 -2
- package/dist/Link/Link.types.js.map +1 -1
- package/dist/ListPage/ListPage.styles.d.ts +9 -8
- package/dist/ListPage/ListPage.styles.js +8 -8
- package/dist/Loader/Loader.styles.d.ts +4 -3
- package/dist/Loader/Loader.styles.js +2 -2
- package/dist/Menu/Menu.js +6 -5
- package/dist/Menu/Menu.js.map +1 -1
- package/dist/MenuImperative/MenuImperative.d.ts +2 -3
- package/dist/MenuImperative/MenuImperative.js +8 -26
- package/dist/MenuImperative/MenuImperative.js.map +1 -1
- package/dist/MenuImperative/MenuImperative.styles.d.ts +15 -13
- package/dist/MenuImperative/MenuImperative.styles.js +13 -13
- package/dist/MenuImperative/MenuImperative.styles.js.map +1 -1
- package/dist/Modal/Modal.d.ts +6 -6
- package/dist/Modal/Modal.js +2 -2
- package/dist/Modal/Modal.js.map +1 -1
- package/dist/Modal/Modal.styles.d.ts +27 -19
- package/dist/Modal/Modal.styles.js +13 -13
- package/dist/MultiSelect/MultiSelect.js +5 -5
- package/dist/MultiSelect/MultiSelect.js.map +1 -1
- package/dist/MultiSelect/MultiSelect.styles.d.ts +19 -13
- package/dist/MultiSelect/MultiSelect.styles.js +6 -6
- package/dist/NextMenu/NextMenu.styles.d.ts +4 -3
- package/dist/NextMenu/NextMenu.styles.js +3 -3
- package/dist/Notation/Notation.js +5 -5
- package/dist/Notation/Notation.js.map +1 -1
- package/dist/NumberInput/NumberInput.hooks.d.ts +1 -1
- package/dist/NumberInput/NumberInput.styles.d.ts +16 -10
- package/dist/NumberInput/NumberInput.styles.js +7 -7
- package/dist/Overlay/OverlayArrow.styles.d.ts +2 -1
- package/dist/Overlay/OverlayArrow.styles.js +1 -1
- package/dist/OverlayTrigger/a11yPresets.d.ts +20 -20
- package/dist/PageLayout/PageLayout.styles.d.ts +33 -24
- package/dist/PageLayout/PageLayout.styles.js +16 -16
- package/dist/PageTemplate/PageFooterTemplate/PageFooterTemplate.styles.d.ts +2 -1
- package/dist/PageTemplate/PageFooterTemplate/PageFooterTemplate.styles.js +1 -1
- package/dist/PageTemplate/PageHeaderTemplate/PageHeaderTemplate.d.ts +3 -1
- package/dist/PageTemplate/PageHeaderTemplate/PageHeaderTemplate.js.map +1 -1
- package/dist/PageTemplate/PageHeaderTemplate/PageHeaderTemplate.styles.d.ts +10 -4
- package/dist/PageTemplate/PageHeaderTemplate/PageHeaderTemplate.styles.js +3 -3
- package/dist/PageTemplate/PagePaneTemplate/PagePaneTemplate.styles.d.ts +12 -8
- package/dist/PageTemplate/PagePaneTemplate/PagePaneTemplate.styles.js +2 -2
- package/dist/PageTemplate/PageTemplate/PageTemplate.styles.d.ts +5 -3
- package/dist/PageTemplate/PageTemplate/PageTemplate.styles.js +3 -3
- package/dist/Pagination/Pagination.styles.d.ts +13 -5
- package/dist/Pagination/Pagination.styles.js +5 -5
- package/dist/Panel/Panel.js +1 -1
- package/dist/Panel/Panel.js.map +1 -1
- package/dist/Panel/Panel.styles.d.ts +19 -15
- package/dist/Panel/Panel.styles.js +19 -19
- package/dist/Panel/Panel.styles.js.map +1 -1
- package/dist/Pill/Pill.styles.d.ts +9 -5
- package/dist/Pill/Pill.styles.js +2 -2
- package/dist/PillSelect/PillSelect.styles.d.ts +7 -5
- package/dist/PillSelect/PillSelect.styles.js +4 -4
- package/dist/Popover/Popover.styles.d.ts +3 -2
- package/dist/Popover/Popover.styles.js +2 -2
- package/dist/Portal/Portal.styles.d.ts +2 -1
- package/dist/Portal/Portal.styles.js +1 -1
- package/dist/ProgressBar/ProgressBar.styles.d.ts +3 -3
- package/dist/ProgressBar/ProgressBar.styles.js +2 -2
- package/dist/RadioButton/RadioButton.styles.d.ts +5 -4
- package/dist/RadioButton/RadioButton.styles.js +3 -3
- package/dist/Required/Required.styles.d.ts +5 -4
- package/dist/Required/Required.styles.js +3 -3
- package/dist/Search/Search.js +6 -2
- package/dist/Search/Search.js.map +1 -1
- package/dist/Search/Search.styles.d.ts +11 -12
- package/dist/Search/Search.styles.js +13 -7
- package/dist/Search/Search.styles.js.map +1 -1
- package/dist/Section/Section.styles.d.ts +11 -9
- package/dist/Section/Section.styles.js +7 -7
- package/dist/SegmentedController/SegmentedController.js +1 -1
- package/dist/SegmentedController/SegmentedController.js.map +1 -1
- package/dist/SegmentedController/SegmentedController.styles.d.ts +8 -7
- package/dist/SegmentedController/SegmentedController.styles.js +9 -9
- package/dist/SegmentedController/SegmentedController.styles.js.map +1 -1
- package/dist/Select/Select.js +4 -4
- package/dist/Select/Select.js.map +1 -1
- package/dist/Select/Select.styles.d.ts +13 -9
- package/dist/Select/Select.styles.js +7 -7
- package/dist/Semantic/Semantic.styles.d.ts +359 -20
- package/dist/Semantic/Semantic.styles.js +11 -12
- package/dist/Semantic/Semantic.styles.js.map +1 -1
- package/dist/Slider/Slider.styles.d.ts +9 -7
- package/dist/Slider/Slider.styles.js +5 -5
- package/dist/Spinner/Spinner.styles.d.ts +9 -8
- package/dist/Spinner/Spinner.styles.js +7 -7
- package/dist/SplitViewCard/SplitViewCard.styles.d.ts +13 -11
- package/dist/SplitViewCard/SplitViewCard.styles.js +8 -8
- package/dist/SuperSelect/SuperSelect.components.d.ts +1 -1
- package/dist/SuperSelect/SuperSelect.components.js.map +1 -1
- package/dist/SuperSelect/SuperSelect.presets.styles.d.ts +3 -1
- package/dist/SuperSelect/SuperSelect.presets.styles.js +1 -1
- package/dist/SuperSelect/SuperSelect.styles.d.ts +67 -54
- package/dist/SuperSelect/SuperSelect.styles.js +37 -37
- package/dist/SuperSelect/SuperSelect.styles.js.map +1 -1
- package/dist/SuperSelect/SuperSelect.types.d.ts +9 -8
- package/dist/SuperSelect/SuperSelect.types.js.map +1 -1
- package/dist/SuperSelect/presets/filterPreset.js.map +1 -1
- package/dist/SuperSelect/useSuperSelect.js.map +1 -1
- package/dist/Switch/Switch.styles.d.ts +6 -5
- package/dist/Switch/Switch.styles.js +4 -4
- package/dist/Table/Table.d.ts +7 -3
- package/dist/Table/Table.js.map +1 -1
- package/dist/Table/Table.styles.d.ts +69 -45
- package/dist/Table/Table.styles.js +28 -28
- package/dist/TableShelf/TableShelf.styles.d.ts +6 -5
- package/dist/TableShelf/TableShelf.styles.js +5 -5
- package/dist/Tabs/Tabs.styles.d.ts +31 -9
- package/dist/Tabs/Tabs.styles.js +15 -15
- package/dist/Tearsheet/Tearsheet.styles.d.ts +12 -10
- package/dist/Tearsheet/Tearsheet.styles.js +6 -6
- package/dist/Tearsheet/Tearsheet.styles.js.map +1 -1
- package/dist/TextArea/TextArea.js +6 -2
- package/dist/TextArea/TextArea.js.map +1 -1
- package/dist/TextArea/TextArea.styles.d.ts +7 -1
- package/dist/TextArea/TextArea.styles.js +2 -2
- package/dist/TextArea/TextArea.styles.js.map +1 -1
- package/dist/TextEditor/TextEditor.styles.d.ts +3 -2
- package/dist/TextEditorOutput/TextEditorOutput.styles.d.ts +2 -1
- package/dist/TextEditorOutput/TextEditorOutput.styles.js +1 -1
- package/dist/Thumbnail/Thumbnail.hooks.d.ts +129 -139
- package/dist/Thumbnail/Thumbnail.js +69 -56
- package/dist/Thumbnail/Thumbnail.js.map +1 -1
- package/dist/Thumbnail/Thumbnail.styles.d.ts +34 -32
- package/dist/Thumbnail/Thumbnail.styles.js +78 -79
- package/dist/Thumbnail/Thumbnail.styles.js.map +1 -1
- package/dist/Thumbnail/Thumbnail.types.d.ts +1 -1
- package/dist/Thumbnail/Thumbnail.types.js.map +1 -1
- package/dist/Thumbnail/ThumbnailCaption.js +10 -10
- package/dist/Thumbnail/ThumbnailCaption.js.map +1 -1
- package/dist/ThumbnailGrid/ThumbnailGrid.js +2 -2
- package/dist/ThumbnailGrid/ThumbnailGrid.js.map +1 -1
- package/dist/ThumbnailGrid/ThumbnailGrid.styles.d.ts +20 -8
- package/dist/ThumbnailGrid/ThumbnailGrid.styles.js +7 -7
- package/dist/TieredSelect/TierSelectionTieredSelect.js +9 -9
- package/dist/TieredSelect/TierSelectionTieredSelect.js.map +1 -1
- package/dist/TieredSelect/TieredSelect.styles.d.ts +29 -13
- package/dist/TieredSelect/TieredSelect.styles.js +9 -9
- package/dist/TieredSelect/TieredSelect.types.d.ts +1 -1
- package/dist/TieredSelect/TieredSelect.types.js.map +1 -1
- package/dist/TieredSelect/TieredSelectMenu.js +10 -10
- package/dist/TieredSelect/TieredSelectMenu.js.map +1 -1
- package/dist/Tile/Tile.js +1 -1
- package/dist/Tile/Tile.js.map +1 -1
- package/dist/Tile/Tile.styles.d.ts +13 -11
- package/dist/Tile/Tile.styles.js +8 -8
- package/dist/Title/Title.styles.d.ts +12 -8
- package/dist/Title/Title.styles.js +7 -7
- package/dist/Toast/Toast.styles.d.ts +7 -5
- package/dist/Toast/Toast.styles.js +3 -3
- package/dist/ToggleButton/ToggleButton.styles.d.ts +4 -2
- package/dist/ToggleButton/ToggleButton.styles.js +1 -1
- package/dist/Token/Token.styles.d.ts +9 -5
- package/dist/Token/Token.styles.js +3 -3
- package/dist/ToolHeader/ToolHeader.d.ts +8 -4
- package/dist/ToolHeader/ToolHeader.styles.d.ts +9 -7
- package/dist/ToolHeader/ToolHeader.styles.js +8 -8
- package/dist/ToolHeader/ToolHeader.styles.js.map +1 -1
- package/dist/ToolLandingPage/ToolLandingPage.styles.d.ts +5 -3
- package/dist/ToolLandingPage/ToolLandingPage.styles.js +3 -3
- package/dist/Tooltip/Tooltip.js +3 -4
- package/dist/Tooltip/Tooltip.js.map +1 -1
- package/dist/Tooltip/Tooltip.styles.d.ts +3 -2
- package/dist/Tooltip/Tooltip.styles.js +3 -3
- package/dist/Tooltip/Tooltip.styles.js.map +1 -1
- package/dist/Tree/Tree.styles.d.ts +24 -12
- package/dist/Tree/Tree.styles.js +9 -9
- package/dist/Typeahead/Typeahead.js +1 -1
- package/dist/Typeahead/Typeahead.js.map +1 -1
- package/dist/Typeahead/Typeahead.styles.d.ts +5 -7
- package/dist/Typeahead/Typeahead.styles.js +3 -3
- package/dist/Typography/Typography.styles.d.ts +5 -4
- package/dist/Typography/Typography.styles.js +1 -1
- package/dist/Typography/Typography.styles.js.map +1 -1
- package/dist/Typography/Typography.table.story.js +2 -2
- package/dist/_styles/arrows.d.ts +4 -4
- package/dist/_styles/borderRadius.d.ts +1 -1
- package/dist/_styles/mixins.d.ts +7 -7
- package/dist/_styles/shadows.d.ts +1 -1
- package/dist/_typedoc/AnchorNavigation/AnchorNavigation.types.json +3 -3
- package/dist/_typedoc/Avatar/Avatar.types.json +20 -20
- package/dist/_typedoc/AvatarStack/AvatarStack.types.json +24 -24
- package/dist/_typedoc/Badge/Badge.types.json +6 -6
- package/dist/_typedoc/Banner/Banner.types.json +13 -13
- package/dist/_typedoc/Box/Box.types.json +77 -77
- package/dist/_typedoc/Breadcrumbs/Breadcrumbs.types.json +10 -10
- package/dist/_typedoc/Button/Button.types.json +13 -13
- package/dist/_typedoc/Calendar/Calendar.types.json +80 -80
- package/dist/_typedoc/Card/Card.types.json +6 -6
- package/dist/_typedoc/Checkbox/Checkbox.types.json +9 -9
- package/dist/_typedoc/ContactItem/ContactItem.types.json +9 -9
- package/dist/_typedoc/DateInput/DateInput.types.json +35 -35
- package/dist/_typedoc/DateSelect/DateSelect.types.json +13 -13
- package/dist/_typedoc/DetailPage/DetailPage.types.json +5 -5
- package/dist/_typedoc/Dropdown/Dropdown.types.json +37 -37
- package/dist/_typedoc/DropdownFlyout/DropdownFlyout.types.json +39 -29
- package/dist/_typedoc/Dropzone/Dropzone.types.json +44 -44
- package/dist/_typedoc/EmptyState/EmptyState.types.json +16 -16
- package/dist/_typedoc/FileList/FileList.types.json +9 -9
- package/dist/_typedoc/FileSelect/FileSelect.types.json +27 -27
- package/dist/_typedoc/FileSelect/GridSource/GridSource.types.json +20 -20
- package/dist/_typedoc/FileSelect/LocalSource/LocalSource.types.json +14 -14
- package/dist/_typedoc/FileSelect/TreeSource/TreeSource.types.json +9 -9
- package/dist/_typedoc/Flex/Flex.types.json +27 -27
- package/dist/_typedoc/FlexList/FlexList.types.json +30 -30
- package/dist/_typedoc/Form/Form.types.json +747 -747
- package/dist/_typedoc/GhostPlaceholder/GhostPlaceholder.types.json +12 -12
- package/dist/_typedoc/Grid/Grid.types.json +8 -8
- package/dist/_typedoc/GroupSelect/GroupSelect.types.json +52 -52
- package/dist/_typedoc/Input/Input.types.json +2 -2
- package/dist/_typedoc/Link/Link.types.json +11 -6
- package/dist/_typedoc/ListPage/ListPage.types.json +13 -13
- package/dist/_typedoc/Menu/Menu.types.json +62 -62
- package/dist/_typedoc/MenuImperative/MenuImperative.types.json +74 -74
- package/dist/_typedoc/Modal/Modal.types.json +46 -46
- package/dist/_typedoc/MultiSelect/MultiSelect.types.json +31 -31
- package/dist/_typedoc/Notation/Notation.types.json +4 -4
- package/dist/_typedoc/NumberInput/NumberInput.types.json +37 -37
- package/dist/_typedoc/OverlayTrigger/OverlayTrigger.types.json +31 -31
- package/dist/_typedoc/PageLayout/PageLayout.types.json +29 -29
- package/dist/_typedoc/Pagination/Pagination.types.json +7 -7
- package/dist/_typedoc/Panel/Panel.types.json +28 -28
- package/dist/_typedoc/Pill/Pill.types.json +2 -2
- package/dist/_typedoc/PillSelect/PillSelect.types.json +49 -49
- package/dist/_typedoc/Popover/Popover.types.json +15 -15
- package/dist/_typedoc/ProgressBar/ProgressBar.types.json +6 -6
- package/dist/_typedoc/RadioButton/RadioButton.types.json +6 -6
- package/dist/_typedoc/Required/Required.types.json +5 -5
- package/dist/_typedoc/Search/Search.types.json +18 -18
- package/dist/_typedoc/Section/Section.types.json +15 -15
- package/dist/_typedoc/SegmentedController/SegmentedController.types.json +21 -21
- package/dist/_typedoc/Select/Select.types.json +60 -60
- package/dist/_typedoc/SettingsPage/SettingsPage.types.json +10 -10
- package/dist/_typedoc/Slider/Slider.types.json +6 -6
- package/dist/_typedoc/Spinner/Spinner.types.json +9 -9
- package/dist/_typedoc/SplitViewCard/SplitViewCard.types.json +12 -12
- package/dist/_typedoc/Switch/Switch.types.json +3 -3
- package/dist/_typedoc/Table/Table.types.json +101 -101
- package/dist/_typedoc/Tabs/Tabs.types.json +20 -20
- package/dist/_typedoc/Tearsheet/Tearsheet.types.json +17 -17
- package/dist/_typedoc/TextArea/TextArea.types.json +3 -3
- package/dist/_typedoc/TextEditor/TextEditor.types.json +9 -9
- package/dist/_typedoc/TextEditorOutput/TextEditorOutput.types.json +4 -4
- package/dist/_typedoc/Thumbnail/Thumbnail.types.json +19 -19
- package/dist/_typedoc/TieredDropdown/TieredDropdown.types.json +44 -44
- package/dist/_typedoc/TieredSelect/TieredSelect.types.json +30 -30
- package/dist/_typedoc/Tile/Tile.types.json +30 -30
- package/dist/_typedoc/Title/Title.types.json +3 -3
- package/dist/_typedoc/Toast/Toast.types.json +4 -4
- package/dist/_typedoc/ToggleButton/ToggleButton.types.json +4 -4
- package/dist/_typedoc/Token/Token.types.json +6 -6
- package/dist/_typedoc/ToolHeader/ToolHeader.types.json +10 -10
- package/dist/_typedoc/ToolLandingPage/ToolLandingPage.types.json +7 -7
- package/dist/_typedoc/Tooltip/Tooltip.types.json +13 -13
- package/dist/_typedoc/Tree/Tree.types.json +86 -86
- package/dist/_typedoc/Typeahead/Typeahead.types.json +2 -2
- package/dist/_typedoc/Typography/Typography.types.json +9 -9
- package/dist/_typedoc/_utils/types.json +3 -3
- package/package.json +10 -12
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"GroupSelect.js","names":["React","MenuImperative","MultiSelect","StyledGroupSelectOption","emptyArray","noop","defaultGetId","item","id","defaultGetLabel","label","defaultGetGroup","options","defaultGetOptGroup","groupId","defaultOptionRenderer","_ref","getId","getLabel","_ref$disabled","disabled","value","props","_objectWithoutProperties","_excluded","createElement","_extends","key","concat","defaultOptGroupRenderer","_ref2","Group","clickable","useGroupSelect","_ref3","groups","getGroup","onChange","_onSearch","onSearch","_React$useState","useState","_React$useState2","_slicedToArray","searchValue","setSearchValue","groupOptionsDictionary","useMemo","reduce","acc","curr","_objectSpread","_defineProperty","collectOptionIds","useCallback","cur","add","Set","groupIds","isGroup","groupdId","has","externalOnSearch","e","internalOnSearch","target","selectedOptions","filter","option","selectedOptionIds","selectedGroups","group","length","every","selectedGroupIds","getGroupOptions","groupOptiodId","groupOptions","groupOption","onSelect","selection","newSelected","optionId","_toConsumableArray","searchFilterCallback","toLowerCase","includes","computedOptions","filteredGroups","computedGroups","GroupSelect","forwardRef","_ref4","ref","_ref4$value","_ref4$options","_ref4$groups","_ref4$getId","_ref4$getLabel","_ref4$getGroup","_ref4$getOptGroup","getOptGroup","_ref4$onChange","optionRenderer","groupRenderer","_ref4$optGroupRendere","optGroupRenderer","_excluded2","_useGroupSelect","multiselectOptionRenderer","renderer","isSelected","isDisabled","selected","groupHeaderRenderer","displayName"],"sources":["../../src/GroupSelect/GroupSelect.tsx"],"sourcesContent":["import React from 'react'\nimport { MenuImperative } from '../MenuImperative/MenuImperative'\nimport { MultiSelect } from '../MultiSelect/MultiSelect'\nimport type {\n GroupItem,\n MultiSelectProps,\n} from '../MultiSelect/MultiSelect.types'\nimport { StyledGroupSelectOption } from './GroupSelect.styles'\nimport type {\n ChangeEvent,\n GroupOption,\n GroupSelectConfig,\n GroupSelectOptionRendererParams,\n GroupSelectProps,\n Option,\n} from './GroupSelect.types'\n\nconst emptyArray: Option[] = []\nconst noop: GroupSelectProps['onChange'] = () => {}\nconst defaultGetId: GroupSelectProps['getId'] = (item) => item.id\nconst defaultGetLabel: GroupSelectProps['getLabel'] = (item) => item.label\nconst defaultGetGroup: GroupSelectProps['getGroup'] = (item) => item.options\nconst defaultGetOptGroup: GroupSelectProps['getOptGroup'] = (item) =>\n item.groupId\n\nfunction defaultOptionRenderer(\n item: Option | GroupOption,\n {\n getId,\n getLabel,\n disabled = false,\n value,\n ...props\n }: GroupSelectOptionRendererParams\n) {\n return (\n <StyledGroupSelectOption\n {...props}\n key={`group-select-menu-item-${getId(item)}`}\n value={value || item}\n disabled={disabled}\n >\n {getLabel(item)}\n </StyledGroupSelectOption>\n )\n}\n\nfunction defaultOptGroupRenderer({ id, label }: GroupItem) {\n return (\n <MenuImperative.Group key={`group_${id}`} clickable={false}>\n {label}\n </MenuImperative.Group>\n )\n}\n\nfunction useGroupSelect({\n value,\n options,\n groups,\n getId,\n getLabel,\n getGroup,\n onChange,\n onSearch: _onSearch,\n}: GroupSelectConfig) {\n const [searchValue, setSearchValue] = React.useState('')\n\n const groupOptionsDictionary: Record<string | number, Option> = React.useMemo(\n () =>\n groups.reduce(\n (acc, curr) => ({\n ...acc,\n [getId(curr)]: getGroup(curr),\n }),\n {}\n ),\n [getGroup, getId, groups]\n )\n\n const collectOptionIds = React.useCallback(\n (value: Option[]) =>\n value.reduce<Set<number | string>>(\n (acc, cur) => acc.add(getId(cur)),\n new Set()\n ),\n [getId]\n )\n\n const groupIds = React.useMemo(\n () => collectOptionIds(groups),\n [collectOptionIds, groups]\n )\n\n const isGroup = (groupdId: string | number) => groupIds.has(groupdId)\n\n const externalOnSearch = React.useCallback(\n (e: ChangeEvent) => {\n if (_onSearch) {\n _onSearch(e)\n }\n },\n [_onSearch]\n )\n\n const internalOnSearch = React.useCallback((e: ChangeEvent) => {\n setSearchValue(e.target.value)\n }, [])\n\n const onSearch = _onSearch ? externalOnSearch : internalOnSearch\n\n const selectedOptions = React.useMemo(\n () => value.filter((option) => !groupIds.has(getId(option))),\n [getId, groupIds, value]\n )\n\n const selectedOptionIds = React.useMemo(\n () => collectOptionIds(selectedOptions),\n [collectOptionIds, selectedOptions]\n )\n\n const selectedGroups = React.useMemo(\n () =>\n groups.filter(\n (group) =>\n getGroup(group).length &&\n getGroup(group).every((option: Option) =>\n selectedOptionIds.has(getId(option))\n )\n ),\n [getGroup, getId, groups, selectedOptionIds]\n )\n\n const selectedGroupIds = React.useMemo(\n () => collectOptionIds(selectedGroups),\n [collectOptionIds, selectedGroups]\n )\n\n const getGroupOptions = (groupOptiodId: string | number) => {\n const groupOptions = groupOptionsDictionary[groupOptiodId] || []\n return groupOptions.filter(\n (groupOption: Option) => !selectedOptionIds.has(getId(groupOption))\n )\n }\n\n const onSelect = (selection: (Option | GroupOption)[]) => {\n const newSelected = selection.reduce((acc, option) => {\n const optionId = getId(option)\n\n if (isGroup(optionId)) {\n return !selectedGroupIds.has(optionId)\n ? [...acc, ...getGroupOptions(optionId)]\n : acc\n }\n\n return [...acc, option]\n }, [])\n\n setSearchValue('')\n\n onChange(newSelected)\n }\n\n const searchFilterCallback = React.useCallback(\n (option) =>\n getLabel(option).toLowerCase().includes(searchValue.toLowerCase()),\n [getLabel, searchValue]\n )\n\n const computedOptions = _onSearch\n ? options\n : options.filter(searchFilterCallback)\n\n const filteredGroups = _onSearch\n ? groups\n : groups.filter(searchFilterCallback)\n\n const computedGroups = React.useMemo(\n () => filteredGroups.filter((group: Option) => getGroup(group).length),\n [filteredGroups, getGroup]\n )\n\n return {\n selectedOptions,\n computedOptions: [...computedGroups, ...computedOptions],\n selectedOptionIds,\n selectedGroupIds,\n isGroup,\n onSearch,\n onSelect,\n }\n}\n\n/**\n\n Group select allows users to select multiple options from a single item in a\n menu. Other select components are multi select, and select, tiered select.\n\n @since 10.19.0\n\n @see [Storybook](https://stories.core.procore.com/?path=/story/core-react_demos-groupselect--custom-search)\n\n @see [Design Guidelines](https://design.procore.com/group-select)\n\n */\nexport const GroupSelect = React.forwardRef<\n HTMLDivElement & MultiSelectProps,\n GroupSelectProps\n>(function GroupSelect(\n {\n value = emptyArray,\n options = emptyArray,\n groups = emptyArray,\n getId = defaultGetId,\n getLabel = defaultGetLabel,\n getGroup = defaultGetGroup,\n getOptGroup = defaultGetOptGroup,\n onChange = noop,\n onSearch: _onSearch,\n optionRenderer,\n groupRenderer,\n optGroupRenderer = defaultOptGroupRenderer,\n ...props\n },\n ref\n) {\n const {\n selectedOptions,\n selectedOptionIds,\n selectedGroupIds,\n computedOptions,\n isGroup,\n onSelect,\n onSearch,\n } = useGroupSelect({\n value,\n options,\n groups,\n getId,\n getLabel,\n getGroup,\n onChange,\n onSearch: _onSearch,\n })\n\n const multiselectOptionRenderer = React.useCallback(\n (option: Option) => {\n const optionId = getId(option)\n const renderer =\n (isGroup(optionId) ? groupRenderer : optionRenderer) ||\n defaultOptionRenderer\n\n const isSelected = selectedOptionIds.has(optionId)\n const isDisabled = selectedGroupIds.has(optionId)\n\n return renderer(option, {\n getId,\n getLabel,\n value: option,\n selected: isSelected,\n disabled: isDisabled,\n })\n },\n [\n getId,\n getLabel,\n groupRenderer,\n isGroup,\n optionRenderer,\n selectedGroupIds,\n selectedOptionIds,\n ]\n )\n\n return (\n <MultiSelect\n ref={ref}\n {...props}\n value={selectedOptions}\n options={computedOptions}\n getId={getId}\n getLabel={getLabel}\n onChange={onSelect}\n onSearch={onSearch}\n getGroup={getOptGroup}\n optionRenderer={multiselectOptionRenderer}\n groupHeaderRenderer={optGroupRenderer}\n />\n )\n})\n\nGroupSelect.displayName = 'GroupSelect'\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"GroupSelect.js","names":["React","MenuImperative","MultiSelect","StyledGroupSelectOption","emptyArray","noop","defaultGetId","item","id","defaultGetLabel","label","defaultGetGroup","options","defaultGetOptGroup","groupId","defaultOptionRenderer","_ref","getId","getLabel","_ref$disabled","disabled","value","props","_objectWithoutProperties","_excluded","createElement","_extends","key","concat","defaultOptGroupRenderer","_ref2","Group","clickable","useGroupSelect","_ref3","groups","getGroup","onChange","_onSearch","onSearch","_React$useState","useState","_React$useState2","_slicedToArray","searchValue","setSearchValue","groupOptionsDictionary","useMemo","reduce","acc","curr","_objectSpread","_defineProperty","collectOptionIds","useCallback","cur","add","Set","groupIds","isGroup","groupdId","has","externalOnSearch","e","internalOnSearch","target","selectedOptions","filter","option","selectedOptionIds","selectedGroups","group","length","every","selectedGroupIds","getGroupOptions","groupOptiodId","groupOptions","groupOption","onSelect","selection","newSelected","optionId","_toConsumableArray","searchFilterCallback","toLowerCase","includes","computedOptions","filteredGroups","computedGroups","GroupSelect","forwardRef","_ref4","ref","_ref4$value","_ref4$options","_ref4$groups","_ref4$getId","_ref4$getLabel","_ref4$getGroup","_ref4$getOptGroup","getOptGroup","_ref4$onChange","optionRenderer","groupRenderer","_ref4$optGroupRendere","optGroupRenderer","_excluded2","_useGroupSelect","multiselectOptionRenderer","renderer","isSelected","isDisabled","selected","groupHeaderRenderer","displayName"],"sources":["../../src/GroupSelect/GroupSelect.tsx"],"sourcesContent":["import React from 'react'\nimport { MenuImperative } from '../MenuImperative/MenuImperative'\nimport { MultiSelect } from '../MultiSelect'\nimport type {\n GroupItem,\n MultiSelectProps,\n} from '../MultiSelect/MultiSelect.types'\nimport { StyledGroupSelectOption } from './GroupSelect.styles'\nimport type {\n ChangeEvent,\n GroupOption,\n GroupSelectConfig,\n GroupSelectOptionRendererParams,\n GroupSelectProps,\n Option,\n} from './GroupSelect.types'\n\nconst emptyArray: Option[] = []\nconst noop: GroupSelectProps['onChange'] = () => {}\nconst defaultGetId: GroupSelectProps['getId'] = (item) => item.id\nconst defaultGetLabel: GroupSelectProps['getLabel'] = (item) => item.label\nconst defaultGetGroup: GroupSelectProps['getGroup'] = (item) => item.options\nconst defaultGetOptGroup: GroupSelectProps['getOptGroup'] = (item) =>\n item.groupId\n\nfunction defaultOptionRenderer(\n item: Option | GroupOption,\n {\n getId,\n getLabel,\n disabled = false,\n value,\n ...props\n }: GroupSelectOptionRendererParams\n) {\n return (\n <StyledGroupSelectOption\n {...props}\n key={`group-select-menu-item-${getId(item)}`}\n value={value || item}\n disabled={disabled}\n >\n {getLabel(item)}\n </StyledGroupSelectOption>\n )\n}\n\nfunction defaultOptGroupRenderer({ id, label }: GroupItem) {\n return (\n <MenuImperative.Group key={`group_${id}`} clickable={false}>\n {label}\n </MenuImperative.Group>\n )\n}\n\nfunction useGroupSelect({\n value,\n options,\n groups,\n getId,\n getLabel,\n getGroup,\n onChange,\n onSearch: _onSearch,\n}: GroupSelectConfig) {\n const [searchValue, setSearchValue] = React.useState('')\n\n const groupOptionsDictionary: Record<string | number, Option> = React.useMemo(\n () =>\n groups.reduce(\n (acc, curr) => ({\n ...acc,\n [getId(curr)]: getGroup(curr),\n }),\n {}\n ),\n [getGroup, getId, groups]\n )\n\n const collectOptionIds = React.useCallback(\n (value: Option[]) =>\n value.reduce<Set<number | string>>(\n (acc, cur) => acc.add(getId(cur)),\n new Set()\n ),\n [getId]\n )\n\n const groupIds = React.useMemo(\n () => collectOptionIds(groups),\n [collectOptionIds, groups]\n )\n\n const isGroup = (groupdId: string | number) => groupIds.has(groupdId)\n\n const externalOnSearch = React.useCallback(\n (e: ChangeEvent) => {\n if (_onSearch) {\n _onSearch(e)\n }\n },\n [_onSearch]\n )\n\n const internalOnSearch = React.useCallback((e: ChangeEvent) => {\n setSearchValue(e.target.value)\n }, [])\n\n const onSearch = _onSearch ? externalOnSearch : internalOnSearch\n\n const selectedOptions = React.useMemo(\n () => value.filter((option) => !groupIds.has(getId(option))),\n [getId, groupIds, value]\n )\n\n const selectedOptionIds = React.useMemo(\n () => collectOptionIds(selectedOptions),\n [collectOptionIds, selectedOptions]\n )\n\n const selectedGroups = React.useMemo(\n () =>\n groups.filter(\n (group) =>\n getGroup(group).length &&\n getGroup(group).every((option: Option) =>\n selectedOptionIds.has(getId(option))\n )\n ),\n [getGroup, getId, groups, selectedOptionIds]\n )\n\n const selectedGroupIds = React.useMemo(\n () => collectOptionIds(selectedGroups),\n [collectOptionIds, selectedGroups]\n )\n\n const getGroupOptions = (groupOptiodId: string | number) => {\n const groupOptions = groupOptionsDictionary[groupOptiodId] || []\n return groupOptions.filter(\n (groupOption: Option) => !selectedOptionIds.has(getId(groupOption))\n )\n }\n\n const onSelect = (selection: (Option | GroupOption)[]) => {\n const newSelected = selection.reduce((acc, option) => {\n const optionId = getId(option)\n\n if (isGroup(optionId)) {\n return !selectedGroupIds.has(optionId)\n ? [...acc, ...getGroupOptions(optionId)]\n : acc\n }\n\n return [...acc, option]\n }, [])\n\n setSearchValue('')\n\n onChange(newSelected)\n }\n\n const searchFilterCallback = React.useCallback(\n (option: Option | GroupOption) =>\n getLabel(option).toLowerCase().includes(searchValue.toLowerCase()),\n [getLabel, searchValue]\n )\n\n const computedOptions = _onSearch\n ? options\n : options.filter(searchFilterCallback)\n\n const filteredGroups = _onSearch\n ? groups\n : groups.filter(searchFilterCallback)\n\n const computedGroups = React.useMemo(\n () => filteredGroups.filter((group: Option) => getGroup(group).length),\n [filteredGroups, getGroup]\n )\n\n return {\n selectedOptions,\n computedOptions: [...computedGroups, ...computedOptions],\n selectedOptionIds,\n selectedGroupIds,\n isGroup,\n onSearch,\n onSelect,\n }\n}\n\n/**\n\n Group select allows users to select multiple options from a single item in a\n menu. Other select components are multi select, and select, tiered select.\n\n @since 10.19.0\n\n @see [Storybook](https://stories.core.procore.com/?path=/story/core-react_demos-groupselect--custom-search)\n\n @see [Design Guidelines](https://design.procore.com/group-select)\n\n */\nexport const GroupSelect = React.forwardRef<\n HTMLDivElement & MultiSelectProps,\n GroupSelectProps\n>(function GroupSelect(\n {\n value = emptyArray,\n options = emptyArray,\n groups = emptyArray,\n getId = defaultGetId,\n getLabel = defaultGetLabel,\n getGroup = defaultGetGroup,\n getOptGroup = defaultGetOptGroup,\n onChange = noop,\n onSearch: _onSearch,\n optionRenderer,\n groupRenderer,\n optGroupRenderer = defaultOptGroupRenderer,\n ...props\n },\n ref\n) {\n const {\n selectedOptions,\n selectedOptionIds,\n selectedGroupIds,\n computedOptions,\n isGroup,\n onSelect,\n onSearch,\n } = useGroupSelect({\n value,\n options,\n groups,\n getId,\n getLabel,\n getGroup,\n onChange,\n onSearch: _onSearch,\n })\n\n const multiselectOptionRenderer = React.useCallback(\n (option: Option) => {\n const optionId = getId(option)\n const renderer =\n (isGroup(optionId) ? groupRenderer : optionRenderer) ||\n defaultOptionRenderer\n\n const isSelected = selectedOptionIds.has(optionId)\n const isDisabled = selectedGroupIds.has(optionId)\n\n return renderer(option, {\n getId,\n getLabel,\n value: option,\n selected: isSelected,\n disabled: isDisabled,\n })\n },\n [\n getId,\n getLabel,\n groupRenderer,\n isGroup,\n optionRenderer,\n selectedGroupIds,\n selectedOptionIds,\n ]\n )\n\n return (\n <MultiSelect\n ref={ref}\n {...props}\n value={selectedOptions}\n options={computedOptions}\n getId={getId}\n getLabel={getLabel}\n onChange={onSelect}\n onSearch={onSearch}\n getGroup={getOptGroup}\n optionRenderer={multiselectOptionRenderer}\n groupHeaderRenderer={optGroupRenderer}\n />\n )\n})\n\nGroupSelect.displayName = 'GroupSelect'\n"],"mappings":"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"}
|
|
@@ -1,4 +1,6 @@
|
|
|
1
1
|
/// <reference types="react" />
|
|
2
|
-
export declare const StyledGroupSelectOption: import("styled-components").
|
|
2
|
+
export declare const StyledGroupSelectOption: import("styled-components/dist/types").IStyledComponentBase<"web", import("styled-components/dist/types").Substitute<Omit<import("..").MultiSelectOptionProps & import("react").RefAttributes<HTMLDivElement>, "ref"> & {
|
|
3
|
+
ref?: ((instance: HTMLDivElement | null) => void) | import("react").RefObject<HTMLDivElement> | null | undefined;
|
|
4
|
+
}, {
|
|
3
5
|
disabled: boolean;
|
|
4
|
-
},
|
|
6
|
+
}>> & string & Omit<import("react").ForwardRefExoticComponent<import("..").MultiSelectOptionProps & import("react").RefAttributes<HTMLDivElement>>, keyof import("react").Component<any, {}, any>>;
|
|
@@ -3,7 +3,7 @@ import { MultiSelect } from '../MultiSelect/MultiSelect';
|
|
|
3
3
|
import { colors } from '../_styles/colors';
|
|
4
4
|
export var StyledGroupSelectOption = /*#__PURE__*/styled(MultiSelect.Option).withConfig({
|
|
5
5
|
displayName: "StyledGroupSelectOption",
|
|
6
|
-
componentId: "core-
|
|
6
|
+
componentId: "core-12_22_0__sc-u5gu8j-0"
|
|
7
7
|
})(["", ""], function (_ref) {
|
|
8
8
|
var disabled = _ref.disabled;
|
|
9
9
|
return disabled && css(["color:", ";cursor:not-allowed;a,a:hover{color:", ";text-decoration:none;}"], colors.gray70, colors.gray70);
|
package/dist/Input/Input.js
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
var _excluded = ["children"];
|
|
1
|
+
var _excluded = ["children", "error", "variant"];
|
|
2
2
|
function _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }
|
|
3
3
|
function _objectWithoutProperties(e, t) { if (null == e) return {}; var o, r, i = _objectWithoutPropertiesLoose(e, t); if (Object.getOwnPropertySymbols) { var n = Object.getOwnPropertySymbols(e); for (r = 0; r < n.length; r++) o = n[r], -1 === t.indexOf(o) && {}.propertyIsEnumerable.call(e, o) && (i[o] = e[o]); } return i; }
|
|
4
4
|
function _objectWithoutPropertiesLoose(r, e) { if (null == r) return {}; var t = {}; for (var n in r) if ({}.hasOwnProperty.call(r, n)) { if (-1 !== e.indexOf(n)) continue; t[n] = r[n]; } return t; }
|
|
@@ -15,8 +15,12 @@ import { StyledInput } from './Input.styles';
|
|
|
15
15
|
*/
|
|
16
16
|
export var Input = /*#__PURE__*/React.forwardRef(function Input(_ref, ref) {
|
|
17
17
|
var children = _ref.children,
|
|
18
|
+
error = _ref.error,
|
|
19
|
+
variant = _ref.variant,
|
|
18
20
|
props = _objectWithoutProperties(_ref, _excluded);
|
|
19
21
|
return /*#__PURE__*/React.createElement(StyledInput, _extends({}, props, {
|
|
22
|
+
$error: error,
|
|
23
|
+
$variant: variant,
|
|
20
24
|
ref: ref
|
|
21
25
|
}));
|
|
22
26
|
});
|
package/dist/Input/Input.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Input.js","names":["React","StyledInput","Input","forwardRef","_ref","ref","children","props","_objectWithoutProperties","_excluded","createElement","_extends","displayName"],"sources":["../../src/Input/Input.tsx"],"sourcesContent":["import React from 'react'\nimport type { InputAttributes } from '../_utils/types'\nimport { StyledInput } from './Input.styles'\nimport type { InputProps } from './Input.types'\n\n/**\n\n @since 10.19.0\n\n @see [Storybook](https://stories.core.procore.com/?path=/story/core-react_demos-input--demo)\n\n @see [Design Guidelines](https://design.procore.com/text-input)\n\n */\nexport const Input = React.forwardRef<\n HTMLInputElement,\n InputAttributes & InputProps\n>(function Input({ children, ...props }, ref) {\n return <StyledInput {...props} ref={ref} />\n})\n\nInput.displayName = 'Input'\n"],"mappings":";;;;AAAA,OAAOA,KAAK,MAAM,OAAO;AAEzB,SAASC,WAAW,QAAQ,gBAAgB;AAG5C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO,IAAMC,KAAK,gBAAGF,KAAK,CAACG,UAAU,CAGnC,SAASD,KAAKA,CAAAE,IAAA,
|
|
1
|
+
{"version":3,"file":"Input.js","names":["React","StyledInput","Input","forwardRef","_ref","ref","children","error","variant","props","_objectWithoutProperties","_excluded","createElement","_extends","$error","$variant","displayName"],"sources":["../../src/Input/Input.tsx"],"sourcesContent":["import React from 'react'\nimport type { InputAttributes } from '../_utils/types'\nimport { StyledInput } from './Input.styles'\nimport type { InputProps } from './Input.types'\n\n/**\n\n @since 10.19.0\n\n @see [Storybook](https://stories.core.procore.com/?path=/story/core-react_demos-input--demo)\n\n @see [Design Guidelines](https://design.procore.com/text-input)\n\n */\nexport const Input = React.forwardRef<\n HTMLInputElement,\n InputAttributes & InputProps\n>(function Input({ children, error, variant, ...props }, ref) {\n return <StyledInput {...props} $error={error} $variant={variant} ref={ref} />\n})\n\nInput.displayName = 'Input'\n"],"mappings":";;;;AAAA,OAAOA,KAAK,MAAM,OAAO;AAEzB,SAASC,WAAW,QAAQ,gBAAgB;AAG5C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO,IAAMC,KAAK,gBAAGF,KAAK,CAACG,UAAU,CAGnC,SAASD,KAAKA,CAAAE,IAAA,EAAyCC,GAAG,EAAE;EAAA,IAA3CC,QAAQ,GAAAF,IAAA,CAARE,QAAQ;IAAEC,KAAK,GAAAH,IAAA,CAALG,KAAK;IAAEC,OAAO,GAAAJ,IAAA,CAAPI,OAAO;IAAKC,KAAK,GAAAC,wBAAA,CAAAN,IAAA,EAAAO,SAAA;EACnD,oBAAOX,KAAA,CAAAY,aAAA,CAACX,WAAW,EAAAY,QAAA,KAAKJ,KAAK;IAAEK,MAAM,EAAEP,KAAM;IAACQ,QAAQ,EAAEP,OAAQ;IAACH,GAAG,EAAEA;EAAI,EAAE,CAAC;AAC/E,CAAC,CAAC;AAEFH,KAAK,CAACc,WAAW,GAAG,OAAO"}
|
|
@@ -1,12 +1,12 @@
|
|
|
1
|
+
/// <reference types="react" />
|
|
2
|
+
import type { Interpolation } from 'styled-components';
|
|
3
|
+
export declare type InputStylesProps = {
|
|
4
|
+
$error?: boolean;
|
|
5
|
+
$variant?: 'error' | '';
|
|
6
|
+
};
|
|
1
7
|
export declare const dataQa: {
|
|
2
8
|
focused: string;
|
|
3
9
|
hovered: string;
|
|
4
10
|
};
|
|
5
|
-
export declare function getInputStyles({ error, variant, }:
|
|
6
|
-
|
|
7
|
-
variant?: 'error' | '';
|
|
8
|
-
}): import("styled-components").FlattenSimpleInterpolation;
|
|
9
|
-
export declare const StyledInput: import("styled-components").StyledComponent<"input", any, {
|
|
10
|
-
error?: boolean | undefined;
|
|
11
|
-
variant?: "" | "error" | undefined;
|
|
12
|
-
}, never>;
|
|
11
|
+
export declare function getInputStyles({ $error, $variant, }: InputStylesProps): Interpolation<object>;
|
|
12
|
+
export declare const StyledInput: import("styled-components/dist/types").IStyledComponentBase<"web", import("styled-components/dist/types").Substitute<import("react").DetailedHTMLProps<import("react").InputHTMLAttributes<HTMLInputElement>, HTMLInputElement>, InputStylesProps>> & string;
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import styled, { css } from 'styled-components';
|
|
2
|
-
import { getTypographyIntent } from '../Typography
|
|
2
|
+
import { getTypographyIntent } from '../Typography';
|
|
3
3
|
import { borderRadius } from '../_styles/borderRadius';
|
|
4
4
|
import { colors } from '../_styles/colors';
|
|
5
5
|
import { getFocus } from '../_styles/mixins';
|
|
@@ -10,12 +10,12 @@ export var dataQa = {
|
|
|
10
10
|
};
|
|
11
11
|
var inputHeight = 36;
|
|
12
12
|
export function getInputStyles(_ref) {
|
|
13
|
-
var error = _ref
|
|
14
|
-
variant = _ref
|
|
15
|
-
return css(["", " background-color:", ";border-color:", ";border-radius:", "px;border-style:solid;border-width:1px;color:", ";display:block;font-family:inherit;height:", "px;width:100%;&::placeholder{color:", ";}&::-moz-placeholder{color:", ";opacity:1;}", " &:focus,&[data-qa=", "]{", "}&:disabled{background-color:", ";border-color:", ";color:", ";-webkit-text-fill-color:", ";opacity:1;}", ""], getTypographyIntent('body'), colors.white, colors.gray70, borderRadius.md, colors.gray15, inputHeight, colors.gray45, colors.gray45,
|
|
13
|
+
var $error = _ref.$error,
|
|
14
|
+
$variant = _ref.$variant;
|
|
15
|
+
return css(["", " background-color:", ";border-color:", ";border-radius:", "px;border-style:solid;border-width:1px;color:", ";display:block;font-family:inherit;height:", "px;width:100%;&::placeholder{color:", ";}&::-moz-placeholder{color:", ";opacity:1;}", " &:focus,&[data-qa=", "]{", "}&:disabled{background-color:", ";border-color:", ";color:", ";-webkit-text-fill-color:", ";opacity:1;}", ""], getTypographyIntent('body'), colors.white, colors.gray70, borderRadius.md, colors.gray15, inputHeight, colors.gray45, colors.gray45, !$error && css(["&:hover,&[data-qa=", "]{border-color:", ";}"], dataQa.hovered, colors.gray45), dataQa.focused, getFocus(), colors.gray94, colors.gray70, colors.gray45, colors.gray45, ($error || $variant === 'error') && css(["border-color:", ";background-color:", ";border-color:var(--core-input-error-border-color,", ");background-color:var( --core-input-error-background-color,", " );"], colors.red50, colors.white, colors.red50, colors.white));
|
|
16
16
|
}
|
|
17
17
|
export var StyledInput = /*#__PURE__*/styled.input.withConfig({
|
|
18
18
|
displayName: "StyledInput",
|
|
19
|
-
componentId: "core-
|
|
19
|
+
componentId: "core-12_22_0__sc-12sjkxg-0"
|
|
20
20
|
})(["", " padding:0 ", "px;&::-ms-clear{display:none;}&[type='number']{-moz-appearance:textfield;&::-webkit-inner-spin-button,&::-webkit-outer-spin-button{-webkit-appearance:none;margin:0;}}"], getInputStyles, spacing.md);
|
|
21
21
|
//# sourceMappingURL=Input.styles.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Input.styles.js","names":["styled","css","getTypographyIntent","borderRadius","colors","getFocus","spacing","dataQa","focused","hovered","inputHeight","getInputStyles","_ref","error","variant","white","gray70","md","gray15","gray45","gray94","red50","StyledInput","input","withConfig","displayName","componentId"],"sources":["../../src/Input/Input.styles.ts"],"sourcesContent":["import styled, { css } from 'styled-components'\nimport { getTypographyIntent } from '../Typography
|
|
1
|
+
{"version":3,"file":"Input.styles.js","names":["styled","css","getTypographyIntent","borderRadius","colors","getFocus","spacing","dataQa","focused","hovered","inputHeight","getInputStyles","_ref","$error","$variant","white","gray70","md","gray15","gray45","gray94","red50","StyledInput","input","withConfig","displayName","componentId"],"sources":["../../src/Input/Input.styles.ts"],"sourcesContent":["import type { Interpolation } from 'styled-components'\nimport styled, { css } from 'styled-components'\nimport { getTypographyIntent } from '../Typography'\nimport { borderRadius } from '../_styles/borderRadius'\nimport { colors } from '../_styles/colors'\nimport { getFocus } from '../_styles/mixins'\nimport { spacing } from '../_styles/spacing'\n\nexport type InputStylesProps = {\n $error?: boolean\n $variant?: 'error' | ''\n}\n\nexport const dataQa = {\n focused: 'core-input-focused',\n hovered: 'core-input-hovered',\n}\n\nconst inputHeight = 36\n\nexport function getInputStyles({\n $error,\n $variant,\n}: InputStylesProps): Interpolation<object> {\n return css`\n ${getTypographyIntent('body')}\n\n background-color: ${colors.white};\n border-color: ${colors.gray70};\n border-radius: ${borderRadius.md}px;\n border-style: solid;\n border-width: 1px;\n color: ${colors.gray15};\n display: block;\n font-family: inherit;\n height: ${inputHeight}px;\n width: 100%;\n\n &::placeholder {\n color: ${colors.gray45};\n }\n\n /* Firefox 19+ */\n &::-moz-placeholder {\n color: ${colors.gray45};\n opacity: 1;\n }\n\n ${!$error &&\n css`\n &:hover,\n &[data-qa=${dataQa.hovered}] {\n border-color: ${colors.gray45};\n }\n `}\n\n &:focus,\n &[data-qa=${dataQa.focused}] {\n ${getFocus()}\n }\n\n &:disabled {\n background-color: ${colors.gray94};\n border-color: ${colors.gray70};\n color: ${colors.gray45};\n // Safari: fixes lighter color of disabled input text\n -webkit-text-fill-color: ${colors.gray45};\n opacity: 1;\n }\n\n ${($error || $variant === 'error') &&\n css`\n border-color: ${colors.red50};\n background-color: ${colors.white};\n\n // TODO we can clean up these css vars when we convert Form to JSS\n border-color: var(--core-input-error-border-color, ${colors.red50});\n background-color: var(\n --core-input-error-background-color,\n ${colors.white}\n );\n `}\n `\n}\n\nexport const StyledInput = styled.input<InputStylesProps>`\n ${getInputStyles}\n\n padding: 0 ${spacing.md}px;\n\n &::-ms-clear {\n display: none;\n }\n\n &[type='number'] {\n -moz-appearance: textfield;\n\n &::-webkit-inner-spin-button,\n &::-webkit-outer-spin-button {\n -webkit-appearance: none;\n margin: 0;\n }\n }\n`\n"],"mappings":"AACA,OAAOA,MAAM,IAAIC,GAAG,QAAQ,mBAAmB;AAC/C,SAASC,mBAAmB,QAAQ,eAAe;AACnD,SAASC,YAAY,QAAQ,yBAAyB;AACtD,SAASC,MAAM,QAAQ,mBAAmB;AAC1C,SAASC,QAAQ,QAAQ,mBAAmB;AAC5C,SAASC,OAAO,QAAQ,oBAAoB;AAO5C,OAAO,IAAMC,MAAM,GAAG;EACpBC,OAAO,EAAE,oBAAoB;EAC7BC,OAAO,EAAE;AACX,CAAC;AAED,IAAMC,WAAW,GAAG,EAAE;AAEtB,OAAO,SAASC,cAAcA,CAAAC,IAAA,EAGc;EAAA,IAF1CC,MAAM,GAAAD,IAAA,CAANC,MAAM;IACNC,QAAQ,GAAAF,IAAA,CAARE,QAAQ;EAER,OAAOb,GAAG,oYACNC,mBAAmB,CAAC,MAAM,CAAC,EAETE,MAAM,CAACW,KAAK,EAChBX,MAAM,CAACY,MAAM,EACZb,YAAY,CAACc,EAAE,EAGvBb,MAAM,CAACc,MAAM,EAGZR,WAAW,EAIVN,MAAM,CAACe,MAAM,EAKbf,MAAM,CAACe,MAAM,EAItB,CAACN,MAAM,IACTZ,GAAG,kDAEWM,MAAM,CAACE,OAAO,EACRL,MAAM,CAACe,MAAM,CAEhC,EAGWZ,MAAM,CAACC,OAAO,EACtBH,QAAQ,CAAC,CAAC,EAIQD,MAAM,CAACgB,MAAM,EACjBhB,MAAM,CAACY,MAAM,EACpBZ,MAAM,CAACe,MAAM,EAEKf,MAAM,CAACe,MAAM,EAIxC,CAACN,MAAM,IAAIC,QAAQ,KAAK,OAAO,KACjCb,GAAG,uKACeG,MAAM,CAACiB,KAAK,EACRjB,MAAM,CAACW,KAAK,EAGqBX,MAAM,CAACiB,KAAK,EAG7DjB,MAAM,CAACW,KAAK,CAEjB;AAEL;AAEA,OAAO,IAAMO,WAAW,gBAAGtB,MAAM,CAACuB,KAAK,CAAAC,UAAA;EAAAC,WAAA;EAAAC,WAAA;AAAA,kMACnCf,cAAc,EAEHL,OAAO,CAACW,EAAE,CAexB"}
|
package/dist/Link/Link.js
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
var _excluded = ["children"];
|
|
1
|
+
var _excluded = ["children", "variant"];
|
|
2
2
|
function _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }
|
|
3
3
|
function _objectWithoutProperties(e, t) { if (null == e) return {}; var o, r, i = _objectWithoutPropertiesLoose(e, t); if (Object.getOwnPropertySymbols) { var n = Object.getOwnPropertySymbols(e); for (r = 0; r < n.length; r++) o = n[r], -1 === t.indexOf(o) && {}.propertyIsEnumerable.call(e, o) && (i[o] = e[o]); } return i; }
|
|
4
4
|
function _objectWithoutPropertiesLoose(r, e) { if (null == r) return {}; var t = {}; for (var n in r) if ({}.hasOwnProperty.call(r, n)) { if (-1 !== e.indexOf(n)) continue; t[n] = r[n]; } return t; }
|
|
@@ -21,8 +21,10 @@ import { StyledLink } from './Link.styles';
|
|
|
21
21
|
*/
|
|
22
22
|
export var Link = /*#__PURE__*/React.forwardRef(function (_ref, ref) {
|
|
23
23
|
var children = _ref.children,
|
|
24
|
+
variant = _ref.variant,
|
|
24
25
|
props = _objectWithoutProperties(_ref, _excluded);
|
|
25
26
|
return /*#__PURE__*/React.createElement(StyledLink, _extends({}, props, {
|
|
27
|
+
$variant: variant,
|
|
26
28
|
ref: ref
|
|
27
29
|
}), children);
|
|
28
30
|
});
|
package/dist/Link/Link.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Link.js","names":["React","StyledLink","Link","forwardRef","_ref","ref","children","props","_objectWithoutProperties","_excluded","createElement","_extends","displayName"],"sources":["../../src/Link/Link.tsx"],"sourcesContent":["import React from 'react'\nimport { StyledLink } from './Link.styles'\nimport type { LinkProps } from './Link.types'\n\n/**\n\n Links provide users with quick references to relevant Procore or affiliate\n websites that will provide more contextual information to a page or feature.\n\n Links should not be used to reference a page or modal in Procore’s product.\n In that case, use a button.\n\n @since 10.19.0\n\n @see [Storybook](https://stories.core.procore.com/?path=/story/core-react_demos-link--demo)\n\n @see [Design Guidelines](https://design.procore.com/link)\n\n */\nexport const Link = React.forwardRef<HTMLAnchorElement, LinkProps>(\n ({ children, ...props }, ref) => {\n return (\n <StyledLink {...props} ref={ref}>\n {children}\n </StyledLink>\n )\n }\n)\n\nLink.displayName = 'Link'\n"],"mappings":";;;;AAAA,OAAOA,KAAK,MAAM,OAAO;AACzB,SAASC,UAAU,QAAQ,eAAe;AAG1C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO,IAAMC,IAAI,gBAAGF,KAAK,CAACG,UAAU,CAClC,UAAAC,IAAA,
|
|
1
|
+
{"version":3,"file":"Link.js","names":["React","StyledLink","Link","forwardRef","_ref","ref","children","variant","props","_objectWithoutProperties","_excluded","createElement","_extends","$variant","displayName"],"sources":["../../src/Link/Link.tsx"],"sourcesContent":["import React from 'react'\nimport { StyledLink } from './Link.styles'\nimport type { LinkProps } from './Link.types'\n\n/**\n\n Links provide users with quick references to relevant Procore or affiliate\n websites that will provide more contextual information to a page or feature.\n\n Links should not be used to reference a page or modal in Procore’s product.\n In that case, use a button.\n\n @since 10.19.0\n\n @see [Storybook](https://stories.core.procore.com/?path=/story/core-react_demos-link--demo)\n\n @see [Design Guidelines](https://design.procore.com/link)\n\n */\nexport const Link = React.forwardRef<HTMLAnchorElement, LinkProps>(\n ({ children, variant, ...props }, ref) => {\n return (\n <StyledLink {...props} $variant={variant} ref={ref}>\n {children}\n </StyledLink>\n )\n }\n)\n\nLink.displayName = 'Link'\n"],"mappings":";;;;AAAA,OAAOA,KAAK,MAAM,OAAO;AACzB,SAASC,UAAU,QAAQ,eAAe;AAG1C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO,IAAMC,IAAI,gBAAGF,KAAK,CAACG,UAAU,CAClC,UAAAC,IAAA,EAAkCC,GAAG,EAAK;EAAA,IAAvCC,QAAQ,GAAAF,IAAA,CAARE,QAAQ;IAAEC,OAAO,GAAAH,IAAA,CAAPG,OAAO;IAAKC,KAAK,GAAAC,wBAAA,CAAAL,IAAA,EAAAM,SAAA;EAC5B,oBACEV,KAAA,CAAAW,aAAA,CAACV,UAAU,EAAAW,QAAA,KAAKJ,KAAK;IAAEK,QAAQ,EAAEN,OAAQ;IAACF,GAAG,EAAEA;EAAI,IAChDC,QACS,CAAC;AAEjB,CACF,CAAC;AAEDJ,IAAI,CAACY,WAAW,GAAG,MAAM"}
|
|
@@ -1,2 +1,5 @@
|
|
|
1
|
+
/// <reference types="react" />
|
|
1
2
|
import type { LinkProps } from './Link.types';
|
|
2
|
-
export declare const StyledLink: import("styled-components").
|
|
3
|
+
export declare const StyledLink: import("styled-components/dist/types").IStyledComponentBase<"web", import("styled-components/dist/types").Substitute<import("react").DetailedHTMLProps<import("react").AnchorHTMLAttributes<HTMLAnchorElement>, HTMLAnchorElement>, {
|
|
4
|
+
$variant: LinkProps['variant'];
|
|
5
|
+
}>> & string;
|
package/dist/Link/Link.styles.js
CHANGED
|
@@ -3,9 +3,9 @@ import { getBorderRadius } from '../_styles/borderRadius';
|
|
|
3
3
|
import { colors } from '../_styles/colors';
|
|
4
4
|
import { focusable } from '../_styles/mixins';
|
|
5
5
|
function getLinkColors(_ref) {
|
|
6
|
-
var _ref
|
|
7
|
-
variant = _ref
|
|
8
|
-
switch (variant) {
|
|
6
|
+
var _ref$$variant = _ref.$variant,
|
|
7
|
+
$variant = _ref$$variant === void 0 ? 'default' : _ref$$variant;
|
|
8
|
+
switch ($variant) {
|
|
9
9
|
case 'gray':
|
|
10
10
|
return css(["color:", ";&:hover{color:", ";}"], colors.gray30, colors.orange50);
|
|
11
11
|
case 'white':
|
|
@@ -17,6 +17,6 @@ function getLinkColors(_ref) {
|
|
|
17
17
|
}
|
|
18
18
|
export var StyledLink = /*#__PURE__*/styled.a.withConfig({
|
|
19
19
|
displayName: "StyledLink",
|
|
20
|
-
componentId: "core-
|
|
20
|
+
componentId: "core-12_22_0__sc-jfowrl-0"
|
|
21
21
|
})(["text-decoration:underline;&:hover{cursor:pointer;text-decoration:underline;}", " &.focus,&:focus{", ";}", ""], focusable, getBorderRadius('md'), getLinkColors);
|
|
22
22
|
//# sourceMappingURL=Link.styles.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Link.styles.js","names":["styled","css","getBorderRadius","colors","focusable","getLinkColors","_ref","_ref
|
|
1
|
+
{"version":3,"file":"Link.styles.js","names":["styled","css","getBorderRadius","colors","focusable","getLinkColors","_ref","_ref$$variant","$variant","gray30","orange50","white","gray85","blue45","blue30","StyledLink","a","withConfig","displayName","componentId"],"sources":["../../src/Link/Link.styles.ts"],"sourcesContent":["import styled, { css } from 'styled-components'\nimport { getBorderRadius } from '../_styles/borderRadius'\nimport { colors } from '../_styles/colors'\nimport { focusable } from '../_styles/mixins'\nimport type { LinkProps } from './Link.types'\n\nfunction getLinkColors({ $variant = 'default' }) {\n switch ($variant) {\n case 'gray':\n return css`\n color: ${colors.gray30};\n\n &:hover {\n color: ${colors.orange50};\n }\n `\n case 'white':\n return css`\n color: ${colors.white};\n\n &:hover {\n color: ${colors.gray85};\n }\n `\n case 'default':\n default:\n return css`\n color: ${colors.blue45};\n\n &:hover {\n color: ${colors.blue30};\n }\n `\n }\n}\n\nexport const StyledLink = styled.a<{ $variant: LinkProps['variant'] }>`\n text-decoration: underline;\n\n &:hover {\n cursor: pointer;\n text-decoration: underline;\n }\n\n ${focusable}\n\n // the focusable mixin applies the class and pseudo selector\n &.focus,\n &:focus {\n ${getBorderRadius('md')};\n }\n\n ${getLinkColors}\n`\n"],"mappings":"AAAA,OAAOA,MAAM,IAAIC,GAAG,QAAQ,mBAAmB;AAC/C,SAASC,eAAe,QAAQ,yBAAyB;AACzD,SAASC,MAAM,QAAQ,mBAAmB;AAC1C,SAASC,SAAS,QAAQ,mBAAmB;AAG7C,SAASC,aAAaA,CAAAC,IAAA,EAA2B;EAAA,IAAAC,aAAA,GAAAD,IAAA,CAAxBE,QAAQ;IAARA,QAAQ,GAAAD,aAAA,cAAG,SAAS,GAAAA,aAAA;EAC3C,QAAQC,QAAQ;IACd,KAAK,MAAM;MACT,OAAOP,GAAG,sCACCE,MAAM,CAACM,MAAM,EAGXN,MAAM,CAACO,QAAQ;IAG9B,KAAK,OAAO;MACV,OAAOT,GAAG,sCACCE,MAAM,CAACQ,KAAK,EAGVR,MAAM,CAACS,MAAM;IAG5B,KAAK,SAAS;IACd;MACE,OAAOX,GAAG,sCACCE,MAAM,CAACU,MAAM,EAGXV,MAAM,CAACW,MAAM;EAG9B;AACF;AAEA,OAAO,IAAMC,UAAU,gBAAGf,MAAM,CAACgB,CAAC,CAAAC,UAAA;EAAAC,WAAA;EAAAC,WAAA;AAAA,oHAQ9Bf,SAAS,EAKPF,eAAe,CAAC,IAAI,CAAC,EAGvBG,aAAa,CAChB"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import type { AnchorAttributes, Props } from '../_utils/types';
|
|
2
|
-
declare type LinkVariant = 'gray' | 'white';
|
|
2
|
+
export declare type LinkVariant = 'gray' | 'white';
|
|
3
3
|
export interface LinkProps extends Props, AnchorAttributes {
|
|
4
4
|
/**
|
|
5
5
|
* The color variant of the link
|
|
@@ -10,4 +10,3 @@ export interface LinkProps extends Props, AnchorAttributes {
|
|
|
10
10
|
*/
|
|
11
11
|
variant?: LinkVariant;
|
|
12
12
|
}
|
|
13
|
-
export {};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Link.types.js","names":[],"sources":["../../src/Link/Link.types.ts"],"sourcesContent":["import type { AnchorAttributes, Props } from '../_utils/types'\n\
|
|
1
|
+
{"version":3,"file":"Link.types.js","names":[],"sources":["../../src/Link/Link.types.ts"],"sourcesContent":["import type { AnchorAttributes, Props } from '../_utils/types'\n\nexport type LinkVariant = 'gray' | 'white'\n\nexport interface LinkProps extends Props, AnchorAttributes {\n /**\n * The color variant of the link\n * @since 10.19.0\n *\n * @deprecated variant `gray` is deprecated and will be removed\n * @deprecatedSince 12.18.0\n */\n variant?: LinkVariant\n}\n"],"mappings":""}
|
|
@@ -1,14 +1,15 @@
|
|
|
1
|
-
|
|
2
|
-
export declare const
|
|
3
|
-
export declare const
|
|
1
|
+
/// <reference types="react" />
|
|
2
|
+
export declare const StyledListPageMain: import("styled-components/dist/types").IStyledComponentBase<"web", import("styled-components").FastOmit<import("react").DetailedHTMLProps<import("react").HTMLAttributes<HTMLDivElement>, HTMLDivElement>, never>> & string;
|
|
3
|
+
export declare const StyledListPageBanner: import("styled-components/dist/types").IStyledComponentBase<"web", import("styled-components").FastOmit<import("react").DetailedHTMLProps<import("react").HTMLAttributes<HTMLDivElement>, HTMLDivElement>, never>> & string;
|
|
4
|
+
export declare const StyledListPageToolHeader: import("styled-components/dist/types").IStyledComponentBase<"web", import("styled-components").FastOmit<import("react").DetailedHTMLProps<import("react").HTMLAttributes<HTMLDivElement>, HTMLDivElement>, never>> & string;
|
|
4
5
|
interface StyledListPageControlProps {
|
|
5
6
|
$alignRight: boolean;
|
|
6
7
|
$block: boolean;
|
|
7
8
|
$search: boolean;
|
|
8
9
|
}
|
|
9
|
-
export declare const StyledListPageControl: import("styled-components").
|
|
10
|
-
export declare const StyledListPageContentControls: import("styled-components").
|
|
11
|
-
export declare const StyledListPageBody: import("styled-components").
|
|
12
|
-
export declare const StyledListPageBodyContent: import("styled-components").
|
|
13
|
-
export declare const StyledListPage: import("styled-components").
|
|
10
|
+
export declare const StyledListPageControl: import("styled-components/dist/types").IStyledComponentBase<"web", import("styled-components/dist/types").Substitute<import("react").DetailedHTMLProps<import("react").HTMLAttributes<HTMLDivElement>, HTMLDivElement>, StyledListPageControlProps>> & string;
|
|
11
|
+
export declare const StyledListPageContentControls: import("styled-components/dist/types").IStyledComponentBase<"web", import("styled-components").FastOmit<import("react").DetailedHTMLProps<import("react").HTMLAttributes<HTMLDivElement>, HTMLDivElement>, never>> & string;
|
|
12
|
+
export declare const StyledListPageBody: import("styled-components/dist/types").IStyledComponentBase<"web", import("styled-components").FastOmit<import("react").DetailedHTMLProps<import("react").HTMLAttributes<HTMLDivElement>, HTMLDivElement>, never>> & string;
|
|
13
|
+
export declare const StyledListPageBodyContent: import("styled-components/dist/types").IStyledComponentBase<"web", import("styled-components").FastOmit<import("react").DetailedHTMLProps<import("react").HTMLAttributes<HTMLDivElement>, HTMLDivElement>, never>> & string;
|
|
14
|
+
export declare const StyledListPage: import("styled-components/dist/types").IStyledComponentBase<"web", import("styled-components").FastOmit<import("react").DetailedHTMLProps<import("react").HTMLAttributes<HTMLDivElement>, HTMLDivElement>, never>> & string;
|
|
14
15
|
export {};
|
|
@@ -3,19 +3,19 @@ import { colors } from '../_styles/colors';
|
|
|
3
3
|
import { spacing } from '../_styles/spacing';
|
|
4
4
|
export var StyledListPageMain = /*#__PURE__*/styled.div.withConfig({
|
|
5
5
|
displayName: "StyledListPageMain",
|
|
6
|
-
componentId: "core-
|
|
6
|
+
componentId: "core-12_22_0__sc-1eq7fzi-0"
|
|
7
7
|
})(["display:flex;flex:1 0 auto;flex-direction:column;min-width:0;padding:", "px ", "px;width:100%;"], spacing.lg, spacing.xl);
|
|
8
8
|
export var StyledListPageBanner = /*#__PURE__*/styled.div.withConfig({
|
|
9
9
|
displayName: "StyledListPageBanner",
|
|
10
|
-
componentId: "core-
|
|
10
|
+
componentId: "core-12_22_0__sc-1eq7fzi-1"
|
|
11
11
|
})(["flex:0 0 auto;"]);
|
|
12
12
|
export var StyledListPageToolHeader = /*#__PURE__*/styled.div.withConfig({
|
|
13
13
|
displayName: "StyledListPageToolHeader",
|
|
14
|
-
componentId: "core-
|
|
14
|
+
componentId: "core-12_22_0__sc-1eq7fzi-2"
|
|
15
15
|
})(["flex:0 0 auto;padding-bottom:", "px;"], spacing.lg);
|
|
16
16
|
export var StyledListPageControl = /*#__PURE__*/styled.div.withConfig({
|
|
17
17
|
displayName: "StyledListPageControl",
|
|
18
|
-
componentId: "core-
|
|
18
|
+
componentId: "core-12_22_0__sc-1eq7fzi-3"
|
|
19
19
|
})(["flex:", ";", " ", ""], function (_ref) {
|
|
20
20
|
var $block = _ref.$block;
|
|
21
21
|
return $block ? '1 0 auto' : '0 0 auto';
|
|
@@ -32,18 +32,18 @@ export var StyledListPageControl = /*#__PURE__*/styled.div.withConfig({
|
|
|
32
32
|
});
|
|
33
33
|
export var StyledListPageContentControls = /*#__PURE__*/styled.div.withConfig({
|
|
34
34
|
displayName: "StyledListPageContentControls",
|
|
35
|
-
componentId: "core-
|
|
35
|
+
componentId: "core-12_22_0__sc-1eq7fzi-4"
|
|
36
36
|
})(["align-items:center;display:flex;flex:0 0 auto;justify-content:space-between;padding:", "px 0;", " + ", "{margin-left:", "px;}"], spacing.md, StyledListPageControl, StyledListPageControl, spacing.lg);
|
|
37
37
|
export var StyledListPageBody = /*#__PURE__*/styled.div.withConfig({
|
|
38
38
|
displayName: "StyledListPageBody",
|
|
39
|
-
componentId: "core-
|
|
39
|
+
componentId: "core-12_22_0__sc-1eq7fzi-5"
|
|
40
40
|
})(["display:flex;flex:1 0 auto;padding-top:", "px;"], spacing.md);
|
|
41
41
|
export var StyledListPageBodyContent = /*#__PURE__*/styled.div.withConfig({
|
|
42
42
|
displayName: "StyledListPageBodyContent",
|
|
43
|
-
componentId: "core-
|
|
43
|
+
componentId: "core-12_22_0__sc-1eq7fzi-6"
|
|
44
44
|
})(["flex:1 1 auto;"]);
|
|
45
45
|
export var StyledListPage = /*#__PURE__*/styled.div.withConfig({
|
|
46
46
|
displayName: "StyledListPage",
|
|
47
|
-
componentId: "core-
|
|
47
|
+
componentId: "core-12_22_0__sc-1eq7fzi-7"
|
|
48
48
|
})(["display:flex;flex-direction:row;height:100%;width:100%;", " + ", "{padding-top:", "px;}", " + ", "{border-top-color:", ";border-top-style:solid;border-top-width:1px;}", " + ", ",", " + ", "{border-top-color:", ";border-top-style:solid;border-top-width:1px;}", " + ", "{padding-top:0;}"], StyledListPageBanner, StyledListPageToolHeader, spacing.lg, StyledListPageContentControls, StyledListPageContentControls, colors.gray85, StyledListPageToolHeader, StyledListPageContentControls, StyledListPageToolHeader, StyledListPageBody, colors.gray85, StyledListPageContentControls, StyledListPageBody);
|
|
49
49
|
//# sourceMappingURL=ListPage.styles.js.map
|
|
@@ -1,5 +1,6 @@
|
|
|
1
|
+
/// <reference types="react" />
|
|
1
2
|
export declare const loaderTransitionDuration = 250;
|
|
2
|
-
export declare const StyledLoader: import("styled-components").
|
|
3
|
-
export declare const StyledGradient: import("styled-components").
|
|
3
|
+
export declare const StyledLoader: import("styled-components/dist/types").IStyledComponentBase<"web", import("styled-components").FastOmit<import("react").DetailedHTMLProps<import("react").HTMLAttributes<HTMLDivElement>, HTMLDivElement>, never>> & string;
|
|
4
|
+
export declare const StyledGradient: import("styled-components/dist/types").IStyledComponentBase<"web", import("styled-components/dist/types").Substitute<import("react").DetailedHTMLProps<import("react").HTMLAttributes<HTMLDivElement>, HTMLDivElement>, {
|
|
4
5
|
$animated: boolean;
|
|
5
|
-
}
|
|
6
|
+
}>> & string;
|
|
@@ -7,11 +7,11 @@ export var loaderTransitionDuration = 250;
|
|
|
7
7
|
var movingStripes = /*#__PURE__*/keyframes(["from{background-position:", "px 0;}100%{background-position:0 ", "px;}"], backgroundSize, backgroundSize);
|
|
8
8
|
export var StyledLoader = /*#__PURE__*/styled.div.withConfig({
|
|
9
9
|
displayName: "StyledLoader",
|
|
10
|
-
componentId: "core-
|
|
10
|
+
componentId: "core-12_22_0__sc-wgvjj9-0"
|
|
11
11
|
})(["display:block;height:100%;left:0;min-width:12px;position:absolute;transition:width ", "ms ease-out;top:0;"], loaderTransitionDuration);
|
|
12
12
|
export var StyledGradient = /*#__PURE__*/styled.div.withConfig({
|
|
13
13
|
displayName: "StyledGradient",
|
|
14
|
-
componentId: "core-
|
|
14
|
+
componentId: "core-12_22_0__sc-wgvjj9-1"
|
|
15
15
|
})(["height:100%;", ""], function (_ref) {
|
|
16
16
|
var $animated = _ref.$animated;
|
|
17
17
|
return $animated ? css(["animation:", " 0.5s linear infinite;background-image:linear-gradient( 45deg,", " 26%,", " 25%,", " 51%,", " 50%,", " 76%,", " 75%,", " );background-size:", "px ", "px;"], movingStripes, color1, color2, color2, color1, color1, color2, color2, backgroundSize, backgroundSize) : css(["background-color:", ";"], colors.blue50);
|
package/dist/Menu/Menu.js
CHANGED
|
@@ -22,7 +22,7 @@ function _objectWithoutPropertiesLoose(r, e) { if (null == r) return {}; var t =
|
|
|
22
22
|
import React from 'react';
|
|
23
23
|
import { StyledFooter, StyledGroup, StyledHeader, StyledItem, StyledMenu, StyledOptions, StyledSearch, StyledWrapper } from '../MenuImperative/MenuImperative.styles';
|
|
24
24
|
import { useOverlayTriggerContext } from '../OverlayTrigger/OverlayTrigger';
|
|
25
|
-
import { Typeahead } from '../Typeahead
|
|
25
|
+
import { Typeahead } from '../Typeahead';
|
|
26
26
|
import { useEventListener } from '../_hooks/EventListener';
|
|
27
27
|
import { useI18nContext } from '../_hooks/I18n';
|
|
28
28
|
import { useListNavigation } from '../_hooks/ListNavigation';
|
|
@@ -192,10 +192,11 @@ export var Group = /*#__PURE__*/React.forwardRef(function Group(_ref3, ref) {
|
|
|
192
192
|
item = _ref3.item,
|
|
193
193
|
props = _objectWithoutProperties(_ref3, _excluded2);
|
|
194
194
|
return /*#__PURE__*/React.createElement(StyledGroup, _extends({}, props, {
|
|
195
|
-
ref: ref
|
|
196
|
-
|
|
197
|
-
|
|
198
|
-
}
|
|
195
|
+
ref: ref
|
|
196
|
+
// onClick={(event) => {
|
|
197
|
+
// TODO: implement selecting groups?
|
|
198
|
+
// }}
|
|
199
|
+
,
|
|
199
200
|
$clickable: clickable
|
|
200
201
|
}), children);
|
|
201
202
|
});
|
package/dist/Menu/Menu.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Menu.js","names":["React","StyledFooter","StyledGroup","StyledHeader","StyledItem","StyledMenu","StyledOptions","StyledSearch","StyledWrapper","useOverlayTriggerContext","Typeahead","useEventListener","useI18nContext","useListNavigation","addSubcomponents","usingHookOrDefault","onScrollBottomThreshold","isItem","element","type","Item","scrollIntoView","index","parentElement","scrollTop","offsetTop","clientHeight","_element$parentElemen","parentHeight","checkBottomScrollPosition","callback","onScroll","e","currentTarget","HTMLElement","scrollHeight","noop","useMenu","_ref","_ref$isSelectable","isSelectable","externalKeyHandlerRef","keyHandlerRef","_ref$multiple","multiple","onScrollBottom","_ref$onSearch","onSearch","_ref$onSelect","onSelect","_ref$scrollable","scrollable","listNavigation","circular","initialIndex","size","highlighted","useRef","createRef","selectItem","useCallback","selection","onKeyDown","key","increment","preventDefault","decrement","current","click","useEffect","el","addEventListener","removeEventListener","domHandlers","nativeEvent","MenuHookContext","createContext","useMenuHookContext","context","useContext","Error","Menu_","forwardRef","Menu","_ref2","ref","children","_ref2$UNSAFE_closesOn","UNSAFE_closesOnSelect","_ref2$isSelectable","_ref2$onSelect","_ref2$scrollable","usingHook","props","_objectWithoutProperties","_excluded","overlayTriggerContext","menu","reset","hide","event","createElement","Provider","value","_objectSpread","_extends","tabIndex","Group","_ref3","_ref3$clickable","clickable","item","_excluded2","onClick","$clickable","_ref4","_ref4$index","_ref4$onClick","_ref4$selected","selected","_ref4$suggested","suggested","onMouseMove","_excluded3","_useMenuHookContext","itemRef","isHighlighted","set","group","$highlighted","$selected","Options","_ref5","className","_ref5$scrollable","_useMenuHookContext2","menuScrollable","optionsRef","Children","toArray","filter","length","setSize","handler","scope","$scrollable","map","child","isValidElement","selectableIndex","cloneElement","Search","_ref6","_ref6$i18nScope","i18nScope","placeholder","_onChange","onChange","_excluded4","I18n","_React$useState","useState","_React$useState2","_slicedToArray","setValue","_menu$onSearch","target","call","autoFocus","t","Header","_ref7","_objectDestructuringEmpty","Footer","_ref8","_ref8$padding","padding","_excluded5","displayName"],"sources":["../../src/Menu/Menu.tsx"],"sourcesContent":["import React from 'react'\nimport {\n StyledFooter,\n StyledGroup,\n StyledHeader,\n StyledItem,\n StyledMenu,\n StyledOptions,\n StyledSearch,\n StyledWrapper,\n} from '../MenuImperative/MenuImperative.styles'\nimport { useOverlayTriggerContext } from '../OverlayTrigger/OverlayTrigger'\nimport { Typeahead } from '../Typeahead/Typeahead'\nimport type { TypeaheadProps } from '../Typeahead/Typeahead.types'\nimport { useEventListener } from '../_hooks/EventListener'\nimport { useI18nContext } from '../_hooks/I18n'\nimport { useListNavigation } from '../_hooks/ListNavigation'\nimport { addSubcomponents } from '../_utils/addSubcomponents'\nimport type { DivAttributes } from '../_utils/types'\nimport { usingHookOrDefault } from '../_utils/usingHookOrDefault'\nimport type {\n ElementTypeChecker,\n MenuFooterProps,\n MenuGroupProps,\n MenuHeaderProps,\n MenuHook,\n MenuHookConfig,\n MenuItemProps,\n MenuOptionsProps,\n MenuProps,\n MenuSearchProps,\n MenuSelection,\n} from './Menu.types'\n\nconst onScrollBottomThreshold = 8\n\nexport const isItem: ElementTypeChecker = (element) => element.type === Item\n\nfunction scrollIntoView(index: number, element: HTMLElement) {\n if (!element.parentElement) {\n return\n }\n\n if (index === 0) {\n element.parentElement.scrollTop = 0\n\n return\n }\n\n const { offsetTop, clientHeight } = element\n\n const { scrollTop, clientHeight: parentHeight } = element.parentElement\n\n if (offsetTop < scrollTop) {\n element.parentElement.scrollTop = offsetTop\n } else if (offsetTop + clientHeight > scrollTop + parentHeight) {\n element.parentElement.scrollTop = offsetTop - parentHeight + clientHeight\n }\n}\n\nfunction checkBottomScrollPosition(callback?: (e: Event) => void) {\n return function onScroll(e: Event) {\n if (\n callback &&\n e.currentTarget instanceof HTMLElement &&\n e.currentTarget.scrollTop >=\n e.currentTarget.scrollHeight -\n e.currentTarget.clientHeight -\n onScrollBottomThreshold\n ) {\n callback(e)\n }\n }\n}\n\nfunction noop() {}\n\nexport function useMenu({\n isSelectable = isItem,\n keyHandlerRef: externalKeyHandlerRef,\n multiple = false,\n onScrollBottom,\n onSearch = noop,\n onSelect = noop,\n scrollable = true,\n}: MenuHookConfig): MenuHook {\n const listNavigation = useListNavigation({\n circular: !onScrollBottom,\n initialIndex: 0,\n size: 0,\n })\n\n const highlighted = React.useRef<HTMLDivElement>(null)\n\n const keyHandlerRef = externalKeyHandlerRef || React.createRef<HTMLElement>()\n\n const selectItem = React.useCallback(\n (selection: MenuSelection) => {\n onSelect(selection)\n },\n [onSelect]\n )\n\n const onKeyDown = React.useCallback(\n function (e: KeyboardEvent) {\n const { key } = e\n\n if (key === 'ArrowDown' || key === 'Down') {\n listNavigation.increment()\n e.preventDefault()\n } else if (key === 'ArrowUp' || key === 'Up') {\n listNavigation.decrement()\n e.preventDefault()\n } else if (key === 'Enter') {\n if (highlighted.current) {\n highlighted.current.click()\n }\n }\n },\n [listNavigation]\n )\n\n // TODO - deprecate keyhandlerRef, this is just for backwards compatibility since we already exposed it\n React.useEffect(\n function () {\n let el: HTMLElement\n\n if (keyHandlerRef.current) {\n keyHandlerRef.current.addEventListener('keydown', onKeyDown)\n\n el = keyHandlerRef.current\n }\n\n return function () {\n if (el) {\n el.removeEventListener('keydown', onKeyDown)\n }\n }\n },\n [keyHandlerRef, onKeyDown]\n )\n\n return {\n domHandlers: {\n onKeyDown: (e: React.KeyboardEvent<HTMLElement>) =>\n onKeyDown(e.nativeEvent),\n },\n highlighted,\n isSelectable,\n listNavigation,\n multiple,\n onScrollBottom,\n onSearch,\n scrollable,\n selectItem,\n }\n}\n\nexport const MenuHookContext = React.createContext<MenuHook | null>(null)\n\nexport function useMenuHookContext(): MenuHook {\n const context = React.useContext(MenuHookContext)\n\n if (context === null) {\n throw new Error(\n 'Cannot find `MenuHook` context, please wrap your component in `<MenuHookContext.Provider>`'\n )\n }\n\n return context\n}\n\nexport const Menu_ = React.forwardRef<HTMLDivElement, MenuProps>(function Menu(\n {\n children,\n UNSAFE_closesOnSelect = true,\n isSelectable = isItem,\n keyHandlerRef,\n onScrollBottom,\n onSelect = noop,\n onSearch,\n scrollable = true,\n usingHook,\n ...props\n },\n ref\n) {\n // Don't be tempted to put this in useMenu. In order for hooks to be portable\n // across the dom tree, they should not contain context consumers.\n const overlayTriggerContext = useOverlayTriggerContext()\n\n const menu = usingHookOrDefault(\n usingHook,\n useMenu\n )({\n isSelectable,\n keyHandlerRef,\n onScrollBottom,\n onSelect,\n onSearch,\n scrollable,\n })\n\n React.useEffect(\n function () {\n // When unmounting, reset the listNavigation index and set\n // the current highlighted item to null. we only want to run this once,\n // so don't pass any dependencies\n return function () {\n menu.listNavigation.reset()\n menu.highlighted.current = null\n }\n },\n /* eslint-disable */ [] /* eslint-enable */\n )\n\n function selectItem(selection: MenuSelection) {\n menu.selectItem(selection)\n\n if (UNSAFE_closesOnSelect) {\n overlayTriggerContext.hide(selection.event)\n }\n }\n\n return (\n <MenuHookContext.Provider value={{ ...menu, selectItem }}>\n <StyledWrapper {...menu.domHandlers} ref={ref} tabIndex={0}>\n <StyledMenu {...props}>{children}</StyledMenu>\n </StyledWrapper>\n </MenuHookContext.Provider>\n )\n})\n\nexport const Group = React.forwardRef<\n HTMLDivElement,\n DivAttributes & MenuGroupProps\n>(function Group({ children, clickable = false, item, ...props }, ref) {\n return (\n <StyledGroup\n {...props}\n ref={ref}\n onClick={(event) => {\n // TODO: implement selecting groups?\n }}\n $clickable={clickable}\n >\n {children}\n </StyledGroup>\n )\n})\n\nexport const Item = React.forwardRef<\n HTMLDivElement,\n DivAttributes & MenuItemProps\n>(function Item(\n {\n children,\n index = 0,\n item,\n onClick = noop,\n selected = false,\n suggested = false,\n onMouseMove,\n ...props\n },\n ref\n) {\n const { highlighted, listNavigation, multiple, selectItem } =\n useMenuHookContext()\n\n const itemRef =\n // eslint-disable-next-line react-hooks/rules-of-hooks\n (ref as React.RefObject<HTMLDivElement>) || React.useRef<HTMLDivElement>()\n\n const isHighlighted = index === listNavigation.index\n\n React.useEffect(\n function () {\n // When mounting, check if this item is selected or suggested, and if\n // it is, then set it as the current index and scroll to it.\n // We only want to run this once, so don't pass any dependencies\n\n if (multiple) {\n // don't do this behavior in multiple mode\n return\n }\n\n if (itemRef.current && (selected || suggested)) {\n highlighted.current = itemRef.current\n listNavigation.set(index)\n }\n },\n /* eslint-disable */ [] /* eslint-enable */\n )\n\n React.useEffect(\n function () {\n // If this item has become highlighted, scroll to it\n if (itemRef.current && isHighlighted) {\n highlighted.current = itemRef.current\n scrollIntoView(index, itemRef.current)\n }\n },\n [highlighted, index, isHighlighted, itemRef]\n )\n\n return (\n <StyledItem\n {...props}\n onClick={(event) => {\n listNavigation.set(index)\n\n selectItem({ event: event.nativeEvent, item, group: false })\n\n onClick(event)\n }}\n onMouseMove={(event) => {\n if (onMouseMove) {\n onMouseMove(event)\n }\n if (listNavigation.index !== index) {\n listNavigation.set(index)\n }\n }}\n ref={itemRef}\n $highlighted={isHighlighted}\n $selected={selected}\n >\n {children}\n </StyledItem>\n )\n})\n\nexport const Options = React.forwardRef<HTMLDivElement, MenuOptionsProps>(\n function Options({ children, className, scrollable = true }, ref) {\n const {\n listNavigation,\n isSelectable,\n onScrollBottom,\n scrollable: menuScrollable,\n } = useMenuHookContext()\n\n const optionsRef =\n (ref as React.RefObject<HTMLDivElement>) || React.createRef()\n\n const size = React.Children.toArray(children).filter(isSelectable).length\n\n React.useEffect(\n function () {\n listNavigation.setSize(size)\n },\n [listNavigation, size]\n )\n\n useEventListener({\n event: 'scroll',\n handler: checkBottomScrollPosition(onScrollBottom),\n scope: optionsRef,\n })\n\n let index = 0\n\n return (\n <StyledOptions\n className={className}\n ref={optionsRef}\n $scrollable={menuScrollable || scrollable}\n >\n {React.Children.map(children, (child) => {\n if (React.isValidElement(child) && isSelectable(child)) {\n const selectableIndex = index\n\n index = index + 1\n\n return React.cloneElement(child, {\n index: selectableIndex,\n })\n }\n\n return child\n })}\n </StyledOptions>\n )\n }\n)\n\nexport const Search = ({\n className,\n i18nScope = 'core.menu',\n placeholder,\n onChange: _onChange,\n ...props\n}: MenuSearchProps) => {\n const I18n = useI18nContext()\n const menu = useMenuHookContext()\n\n const [value, setValue] = React.useState('')\n\n const onChange: TypeaheadProps['onChange'] = React.useCallback(\n function (value: string, event: any) {\n setValue(event.target.value)\n menu.onSearch?.(event)\n menu.listNavigation.set(0)\n _onChange?.(event)\n },\n [_onChange]\n )\n\n return (\n <StyledSearch className={className}>\n <Typeahead\n {...props}\n autoFocus={true}\n placeholder={placeholder || I18n.t('search', { scope: i18nScope })}\n onChange={onChange}\n value={value}\n />\n </StyledSearch>\n )\n}\n\nexport const Header = React.forwardRef<\n HTMLDivElement,\n DivAttributes & MenuHeaderProps\n>(function Header({ ...props }, ref) {\n return <StyledHeader ref={ref} {...props} />\n})\n\nexport const Footer = React.forwardRef<\n HTMLDivElement,\n DivAttributes & MenuFooterProps\n>(function Footer({ padding = 'md lg', ...props }, ref) {\n return <StyledFooter ref={ref} padding={padding} {...props} />\n})\n\nMenu_.displayName = 'Menu'\n\nFooter.displayName = 'Menu.Footer'\n\nGroup.displayName = 'Menu.Group'\n\nHeader.displayName = 'Menu.Header'\n\nItem.displayName = 'Menu.Item'\n\nOptions.displayName = 'Menu.Options'\n\nSearch.displayName = 'Menu.Search'\n\n/**\n\n Menus are used in conjunction with components that contain dropdowns.\n For example, multi select, single select, and dropdown.\n\n @since 10.19.0\n\n @see [Storybook](https://stories.core.procore.com/?path=/story/core-react_demos-menu--demo)\n\n @see [Design Guidelines](https://design.procore.com/menu)\n\n */\nexport const Menu = addSubcomponents(\n {\n Footer,\n Group,\n Header,\n Item,\n Options,\n Search,\n },\n Menu_\n)\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"Menu.js","names":["React","StyledFooter","StyledGroup","StyledHeader","StyledItem","StyledMenu","StyledOptions","StyledSearch","StyledWrapper","useOverlayTriggerContext","Typeahead","useEventListener","useI18nContext","useListNavigation","addSubcomponents","usingHookOrDefault","onScrollBottomThreshold","isItem","element","type","Item","scrollIntoView","index","parentElement","scrollTop","offsetTop","clientHeight","_element$parentElemen","parentHeight","checkBottomScrollPosition","callback","onScroll","e","currentTarget","HTMLElement","scrollHeight","noop","useMenu","_ref","_ref$isSelectable","isSelectable","externalKeyHandlerRef","keyHandlerRef","_ref$multiple","multiple","onScrollBottom","_ref$onSearch","onSearch","_ref$onSelect","onSelect","_ref$scrollable","scrollable","listNavigation","circular","initialIndex","size","highlighted","useRef","createRef","selectItem","useCallback","selection","onKeyDown","key","increment","preventDefault","decrement","current","click","useEffect","el","addEventListener","removeEventListener","domHandlers","nativeEvent","MenuHookContext","createContext","useMenuHookContext","context","useContext","Error","Menu_","forwardRef","Menu","_ref2","ref","children","_ref2$UNSAFE_closesOn","UNSAFE_closesOnSelect","_ref2$isSelectable","_ref2$onSelect","_ref2$scrollable","usingHook","props","_objectWithoutProperties","_excluded","overlayTriggerContext","menu","reset","hide","event","createElement","Provider","value","_objectSpread","_extends","tabIndex","Group","_ref3","_ref3$clickable","clickable","item","_excluded2","$clickable","_ref4","_ref4$index","_ref4$onClick","onClick","_ref4$selected","selected","_ref4$suggested","suggested","onMouseMove","_excluded3","_useMenuHookContext","itemRef","isHighlighted","set","group","$highlighted","$selected","Options","_ref5","className","_ref5$scrollable","_useMenuHookContext2","menuScrollable","optionsRef","Children","toArray","filter","length","setSize","handler","scope","$scrollable","map","child","isValidElement","selectableIndex","cloneElement","Search","_ref6","_ref6$i18nScope","i18nScope","placeholder","_onChange","onChange","_excluded4","I18n","_React$useState","useState","_React$useState2","_slicedToArray","setValue","_menu$onSearch","target","call","autoFocus","t","Header","_ref7","_objectDestructuringEmpty","Footer","_ref8","_ref8$padding","padding","_excluded5","displayName"],"sources":["../../src/Menu/Menu.tsx"],"sourcesContent":["import React from 'react'\nimport {\n StyledFooter,\n StyledGroup,\n StyledHeader,\n StyledItem,\n StyledMenu,\n StyledOptions,\n StyledSearch,\n StyledWrapper,\n} from '../MenuImperative/MenuImperative.styles'\nimport { useOverlayTriggerContext } from '../OverlayTrigger/OverlayTrigger'\nimport type { TypeaheadProps } from '../Typeahead'\nimport { Typeahead } from '../Typeahead'\nimport { useEventListener } from '../_hooks/EventListener'\nimport { useI18nContext } from '../_hooks/I18n'\nimport { useListNavigation } from '../_hooks/ListNavigation'\nimport { addSubcomponents } from '../_utils/addSubcomponents'\nimport type { DivAttributes } from '../_utils/types'\nimport { usingHookOrDefault } from '../_utils/usingHookOrDefault'\nimport type {\n ElementTypeChecker,\n MenuFooterProps,\n MenuGroupProps,\n MenuHeaderProps,\n MenuHook,\n MenuHookConfig,\n MenuItemProps,\n MenuOptionsProps,\n MenuProps,\n MenuSearchProps,\n MenuSelection,\n} from './Menu.types'\n\nconst onScrollBottomThreshold = 8\n\nexport const isItem: ElementTypeChecker = (element) => element.type === Item\n\nfunction scrollIntoView(index: number, element: HTMLElement) {\n if (!element.parentElement) {\n return\n }\n\n if (index === 0) {\n element.parentElement.scrollTop = 0\n\n return\n }\n\n const { offsetTop, clientHeight } = element\n\n const { scrollTop, clientHeight: parentHeight } = element.parentElement\n\n if (offsetTop < scrollTop) {\n element.parentElement.scrollTop = offsetTop\n } else if (offsetTop + clientHeight > scrollTop + parentHeight) {\n element.parentElement.scrollTop = offsetTop - parentHeight + clientHeight\n }\n}\n\nfunction checkBottomScrollPosition(callback?: (e: Event) => void) {\n return function onScroll(e: Event) {\n if (\n callback &&\n e.currentTarget instanceof HTMLElement &&\n e.currentTarget.scrollTop >=\n e.currentTarget.scrollHeight -\n e.currentTarget.clientHeight -\n onScrollBottomThreshold\n ) {\n callback(e)\n }\n }\n}\n\nfunction noop() {}\n\nexport function useMenu({\n isSelectable = isItem,\n keyHandlerRef: externalKeyHandlerRef,\n multiple = false,\n onScrollBottom,\n onSearch = noop,\n onSelect = noop,\n scrollable = true,\n}: MenuHookConfig): MenuHook {\n const listNavigation = useListNavigation({\n circular: !onScrollBottom,\n initialIndex: 0,\n size: 0,\n })\n\n const highlighted = React.useRef<HTMLDivElement>(null)\n\n const keyHandlerRef = externalKeyHandlerRef || React.createRef<HTMLElement>()\n\n const selectItem = React.useCallback(\n (selection: MenuSelection) => {\n onSelect(selection)\n },\n [onSelect]\n )\n\n const onKeyDown = React.useCallback(\n function (e: KeyboardEvent) {\n const { key } = e\n\n if (key === 'ArrowDown' || key === 'Down') {\n listNavigation.increment()\n e.preventDefault()\n } else if (key === 'ArrowUp' || key === 'Up') {\n listNavigation.decrement()\n e.preventDefault()\n } else if (key === 'Enter') {\n if (highlighted.current) {\n highlighted.current.click()\n }\n }\n },\n [listNavigation]\n )\n\n // TODO - deprecate keyhandlerRef, this is just for backwards compatibility since we already exposed it\n React.useEffect(\n function () {\n let el: HTMLElement\n\n if (keyHandlerRef.current) {\n keyHandlerRef.current.addEventListener('keydown', onKeyDown)\n\n el = keyHandlerRef.current\n }\n\n return function () {\n if (el) {\n el.removeEventListener('keydown', onKeyDown)\n }\n }\n },\n [keyHandlerRef, onKeyDown]\n )\n\n return {\n domHandlers: {\n onKeyDown: (e: React.KeyboardEvent<HTMLElement>) =>\n onKeyDown(e.nativeEvent),\n },\n highlighted,\n isSelectable,\n listNavigation,\n multiple,\n onScrollBottom,\n onSearch,\n scrollable,\n selectItem,\n }\n}\n\nexport const MenuHookContext = React.createContext<MenuHook | null>(null)\n\nexport function useMenuHookContext(): MenuHook {\n const context = React.useContext(MenuHookContext)\n\n if (context === null) {\n throw new Error(\n 'Cannot find `MenuHook` context, please wrap your component in `<MenuHookContext.Provider>`'\n )\n }\n\n return context\n}\n\nexport const Menu_ = React.forwardRef<HTMLDivElement, MenuProps>(function Menu(\n {\n children,\n UNSAFE_closesOnSelect = true,\n isSelectable = isItem,\n keyHandlerRef,\n onScrollBottom,\n onSelect = noop,\n onSearch,\n scrollable = true,\n usingHook,\n ...props\n },\n ref\n) {\n // Don't be tempted to put this in useMenu. In order for hooks to be portable\n // across the dom tree, they should not contain context consumers.\n const overlayTriggerContext = useOverlayTriggerContext()\n\n const menu = usingHookOrDefault(\n usingHook,\n useMenu\n )({\n isSelectable,\n keyHandlerRef,\n onScrollBottom,\n onSelect,\n onSearch,\n scrollable,\n })\n\n React.useEffect(\n function () {\n // When unmounting, reset the listNavigation index and set\n // the current highlighted item to null. we only want to run this once,\n // so don't pass any dependencies\n return function () {\n menu.listNavigation.reset()\n menu.highlighted.current = null\n }\n },\n /* eslint-disable */ [] /* eslint-enable */\n )\n\n function selectItem(selection: MenuSelection) {\n menu.selectItem(selection)\n\n if (UNSAFE_closesOnSelect) {\n overlayTriggerContext.hide(selection.event)\n }\n }\n\n return (\n <MenuHookContext.Provider value={{ ...menu, selectItem }}>\n <StyledWrapper {...menu.domHandlers} ref={ref} tabIndex={0}>\n <StyledMenu {...props}>{children}</StyledMenu>\n </StyledWrapper>\n </MenuHookContext.Provider>\n )\n})\n\nexport const Group = React.forwardRef<\n HTMLDivElement,\n DivAttributes & MenuGroupProps\n>(function Group({ children, clickable = false, item, ...props }, ref) {\n return (\n <StyledGroup\n {...props}\n ref={ref}\n // onClick={(event) => {\n // TODO: implement selecting groups?\n // }}\n $clickable={clickable}\n >\n {children}\n </StyledGroup>\n )\n})\n\nexport const Item = React.forwardRef<\n HTMLDivElement,\n DivAttributes & MenuItemProps\n>(function Item(\n {\n children,\n index = 0,\n item,\n onClick = noop,\n selected = false,\n suggested = false,\n onMouseMove,\n ...props\n },\n ref\n) {\n const { highlighted, listNavigation, multiple, selectItem } =\n useMenuHookContext()\n\n const itemRef =\n // eslint-disable-next-line react-hooks/rules-of-hooks\n (ref as React.RefObject<HTMLDivElement>) || React.useRef<HTMLDivElement>()\n\n const isHighlighted = index === listNavigation.index\n\n React.useEffect(\n function () {\n // When mounting, check if this item is selected or suggested, and if\n // it is, then set it as the current index and scroll to it.\n // We only want to run this once, so don't pass any dependencies\n\n if (multiple) {\n // don't do this behavior in multiple mode\n return\n }\n\n if (itemRef.current && (selected || suggested)) {\n highlighted.current = itemRef.current\n listNavigation.set(index)\n }\n },\n /* eslint-disable */ [] /* eslint-enable */\n )\n\n React.useEffect(\n function () {\n // If this item has become highlighted, scroll to it\n if (itemRef.current && isHighlighted) {\n highlighted.current = itemRef.current\n scrollIntoView(index, itemRef.current)\n }\n },\n [highlighted, index, isHighlighted, itemRef]\n )\n\n return (\n <StyledItem\n {...props}\n onClick={(event: React.MouseEvent<HTMLDivElement>) => {\n listNavigation.set(index)\n\n selectItem({ event: event.nativeEvent, item, group: false })\n\n onClick(event)\n }}\n onMouseMove={(event: React.MouseEvent<HTMLDivElement>) => {\n if (onMouseMove) {\n onMouseMove(event)\n }\n if (listNavigation.index !== index) {\n listNavigation.set(index)\n }\n }}\n ref={itemRef}\n $highlighted={isHighlighted}\n $selected={selected}\n >\n {children}\n </StyledItem>\n )\n})\n\nexport const Options = React.forwardRef<HTMLDivElement, MenuOptionsProps>(\n function Options({ children, className, scrollable = true }, ref) {\n const {\n listNavigation,\n isSelectable,\n onScrollBottom,\n scrollable: menuScrollable,\n } = useMenuHookContext()\n\n const optionsRef =\n (ref as React.RefObject<HTMLDivElement>) || React.createRef()\n\n const size = React.Children.toArray(children).filter(isSelectable).length\n\n React.useEffect(\n function () {\n listNavigation.setSize(size)\n },\n [listNavigation, size]\n )\n\n useEventListener({\n event: 'scroll',\n handler: checkBottomScrollPosition(onScrollBottom),\n scope: optionsRef,\n })\n\n let index = 0\n\n return (\n <StyledOptions\n className={className}\n ref={optionsRef}\n $scrollable={menuScrollable || scrollable}\n >\n {React.Children.map(children, (child) => {\n if (React.isValidElement(child) && isSelectable(child)) {\n const selectableIndex = index\n\n index = index + 1\n\n return React.cloneElement(child, {\n index: selectableIndex,\n })\n }\n\n return child\n })}\n </StyledOptions>\n )\n }\n)\n\nexport const Search = ({\n className,\n i18nScope = 'core.menu',\n placeholder,\n onChange: _onChange,\n ...props\n}: MenuSearchProps) => {\n const I18n = useI18nContext()\n const menu = useMenuHookContext()\n\n const [value, setValue] = React.useState('')\n\n const onChange: TypeaheadProps['onChange'] = React.useCallback(\n function (value: string, event: any) {\n setValue(event.target.value)\n menu.onSearch?.(event)\n menu.listNavigation.set(0)\n _onChange?.(event)\n },\n [_onChange]\n )\n\n return (\n <StyledSearch className={className}>\n <Typeahead\n {...props}\n autoFocus={true}\n placeholder={placeholder || I18n.t('search', { scope: i18nScope })}\n onChange={onChange}\n value={value}\n />\n </StyledSearch>\n )\n}\n\nexport const Header = React.forwardRef<\n HTMLDivElement,\n DivAttributes & MenuHeaderProps\n>(function Header({ ...props }, ref) {\n return <StyledHeader ref={ref} {...props} />\n})\n\nexport const Footer = React.forwardRef<\n HTMLDivElement,\n DivAttributes & MenuFooterProps\n>(function Footer({ padding = 'md lg', ...props }, ref) {\n return <StyledFooter ref={ref} padding={padding} {...props} />\n})\n\nMenu_.displayName = 'Menu'\n\nFooter.displayName = 'Menu.Footer'\n\nGroup.displayName = 'Menu.Group'\n\nHeader.displayName = 'Menu.Header'\n\nItem.displayName = 'Menu.Item'\n\nOptions.displayName = 'Menu.Options'\n\nSearch.displayName = 'Menu.Search'\n\n/**\n\n Menus are used in conjunction with components that contain dropdowns.\n For example, multi select, single select, and dropdown.\n\n @since 10.19.0\n\n @see [Storybook](https://stories.core.procore.com/?path=/story/core-react_demos-menu--demo)\n\n @see [Design Guidelines](https://design.procore.com/menu)\n\n */\nexport const Menu = addSubcomponents(\n {\n Footer,\n Group,\n Header,\n Item,\n Options,\n Search,\n },\n Menu_\n)\n"],"mappings":"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"}
|