@procore/core-react 12.34.1 → 12.36.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 +53 -0
- package/dist/AnchorNavigation/AnchorNavigation.styles.js +3 -3
- package/dist/Avatar/Avatar.styles.js +5 -5
- package/dist/AvatarStack/AvatarStack.styles.js +7 -7
- package/dist/Badge/Badge.styles.js +2 -2
- package/dist/BadgePill/BadgePill.styles.js +4 -4
- package/dist/Banner/Banner.styles.js +10 -10
- package/dist/Box/Box.styles.js +1 -1
- package/dist/Breadcrumbs/Breadcrumbs.styles.js +4 -4
- package/dist/Button/Button.styles.js +5 -5
- package/dist/Calendar/Calendar.d.ts +2 -2
- package/dist/Calendar/Calendar.js.map +1 -1
- package/dist/Calendar/Calendar.styles.d.ts +6 -3
- package/dist/Calendar/Calendar.styles.js +15 -9
- package/dist/Calendar/Calendar.styles.js.map +1 -1
- package/dist/Calendar/Calendar.types.d.ts +1 -31
- package/dist/Calendar/Calendar.types.js.map +1 -1
- package/dist/Card/Card.styles.js +1 -1
- package/dist/Checkbox/Checkbox.styles.js +6 -6
- package/dist/Checkbox/CheckboxTooltip.js +1 -1
- package/dist/ContactItem/ContactItem.styles.js +5 -5
- package/dist/ContactItem/ContactItem.types.d.ts +2 -0
- package/dist/ContactItem/ContactItem.types.js.map +1 -1
- package/dist/Content/Content.styles.js +2 -2
- package/dist/DateInput/DateInput.js +58 -53
- package/dist/DateInput/DateInput.js.map +1 -1
- package/dist/DateInput/DateInput.styles.js +9 -9
- package/dist/DateInput/DateInput.styles.js.map +1 -1
- package/dist/DetailPage/DetailPage.styles.js +7 -7
- package/dist/Dropdown/Dropdown.styles.js +3 -3
- package/dist/DropdownFlyout/DropdownFlyout.styles.js +4 -4
- package/dist/Dropzone/Dropzone.js +1 -1
- package/dist/Dropzone/Dropzone.styles.js +9 -9
- package/dist/EmptyState/EmptyState.styles.js +6 -6
- package/dist/Field/Field.styles.js +3 -3
- package/dist/FileList/FileList.styles.js +4 -4
- package/dist/FileSelect/FileExplorer/FileExplorer.styles.js +9 -9
- package/dist/FileSelect/FileExplorer/FileExplorerSidebar.styles.js +3 -3
- package/dist/FileSelect/FileSelect.styles.js +2 -2
- package/dist/FileSelect/FileSelectDropzone/FileSelectDropzone.styles.js +3 -3
- package/dist/FileSelect/FileTokenList/FileTokenList.styles.js +2 -2
- package/dist/FileSelect/GridSource/GridSource.styles.js +6 -6
- package/dist/FileSelect/LocalSource/LocalSource.styles.js +4 -4
- package/dist/FileSelect/SourceItem/SourceItem.styles.js +3 -3
- package/dist/FileSelect/ThumbnailList/ThumbnailList.styles.js +6 -6
- package/dist/FileSelect/TreeSource/TreeSource.styles.js +1 -1
- package/dist/FileToken/FileToken.styles.js +4 -4
- package/dist/FilterToken/FilterToken.styles.js +5 -5
- package/dist/FlexList/FlexList.styles.js +1 -1
- package/dist/Form/Form.styles.js +14 -14
- package/dist/Form/StyledFormikForm.styles.js +2 -2
- package/dist/GhostPlaceholder/GhostPlaceholder.styles.js +2 -2
- package/dist/Grid/Grid.styles.js +2 -2
- package/dist/GroupSelect/GroupSelect.styles.js +1 -1
- package/dist/Input/Input.styles.js +2 -2
- package/dist/Input/Input.styles.js.map +1 -1
- package/dist/Link/Link.styles.js +1 -1
- package/dist/ListPage/ListPage.styles.js +8 -8
- package/dist/Loader/Loader.styles.js +2 -2
- package/dist/MenuImperative/MenuImperative.styles.js +10 -10
- package/dist/Modal/Modal.styles.js +13 -13
- package/dist/MultiSelect/MultiSelect.styles.js +6 -6
- package/dist/NextMenu/NextMenu.styles.js +3 -3
- package/dist/Notation/Notation.js +1 -1
- package/dist/NumberInput/NumberInput.styles.js +9 -9
- package/dist/NumberInput/NumberInput.styles.js.map +1 -1
- package/dist/Overlay/OverlayArrow.styles.js +1 -1
- package/dist/OverlayTrigger/OverlayTrigger.js +16 -0
- package/dist/OverlayTrigger/OverlayTrigger.js.map +1 -1
- package/dist/PageLayout/PageLayout.styles.js +16 -16
- package/dist/PageTemplate/PageFooterTemplate/PageFooterTemplate.styles.js +1 -1
- package/dist/PageTemplate/PageHeaderTemplate/PageHeaderTemplate.styles.js +3 -3
- package/dist/PageTemplate/PagePaneTemplate/PagePaneTemplate.styles.js +2 -2
- package/dist/PageTemplate/PageTemplate/PageTemplate.styles.js +3 -3
- package/dist/Pagination/Pagination.styles.js +6 -6
- package/dist/Pagination/Pagination.styles.js.map +1 -1
- package/dist/Pagination/Pagination.types.d.ts +4 -0
- package/dist/Pagination/Pagination.types.js.map +1 -1
- package/dist/Pagination/PaginationSelect.js +59 -3
- package/dist/Pagination/PaginationSelect.js.map +1 -1
- package/dist/Panel/Panel.js +6 -2
- package/dist/Panel/Panel.js.map +1 -1
- package/dist/Panel/Panel.styles.js +11 -11
- package/dist/Pill/Pill.styles.js +3 -3
- package/dist/PillSelect/PillSelect.styles.js +4 -4
- package/dist/Popover/Popover.styles.js +2 -2
- package/dist/Portal/Portal.js +4 -1
- package/dist/Portal/Portal.js.map +1 -1
- package/dist/Portal/Portal.styles.js +1 -1
- package/dist/Portal/Portal.types.d.ts +1 -1
- package/dist/Portal/Portal.types.js.map +1 -1
- package/dist/Portal/PortalProvider.d.ts +5 -0
- package/dist/Portal/PortalProvider.js +14 -0
- package/dist/Portal/PortalProvider.js.map +1 -0
- package/dist/Portal/PortalProvider.types.d.ts +4 -0
- package/dist/Portal/PortalProvider.types.js +2 -0
- package/dist/Portal/PortalProvider.types.js.map +1 -0
- package/dist/Portal/index.d.ts +2 -0
- package/dist/Portal/index.js +1 -0
- package/dist/Portal/index.js.map +1 -1
- package/dist/ProgressBar/ProgressBar.styles.js +2 -2
- package/dist/RadioButton/RadioButton.styles.js +4 -4
- package/dist/RadioButton/RadioButton.styles.js.map +1 -1
- package/dist/Required/Required.styles.js +3 -3
- package/dist/Search/Search.styles.js +5 -5
- package/dist/Section/Section.styles.js +7 -7
- package/dist/SegmentedController/SegmentedController.styles.js +4 -4
- package/dist/Select/Select.js +1 -0
- package/dist/Select/Select.js.map +1 -1
- package/dist/Select/Select.styles.js +10 -10
- package/dist/Select/Select.styles.js.map +1 -1
- package/dist/Semantic/Semantic.styles.js +9 -9
- package/dist/Slider/Slider.js +3 -1
- package/dist/Slider/Slider.js.map +1 -1
- package/dist/Slider/Slider.styles.js +5 -5
- package/dist/Spinner/Spinner.styles.js +7 -7
- package/dist/SplitViewCard/SplitViewCard.context.js +10 -2
- package/dist/SplitViewCard/SplitViewCard.context.js.map +1 -1
- package/dist/SplitViewCard/SplitViewCard.js +4 -2
- package/dist/SplitViewCard/SplitViewCard.js.map +1 -1
- package/dist/SplitViewCard/SplitViewCard.styles.js +8 -8
- package/dist/SplitViewCard/SplitViewCard.types.js.map +1 -1
- package/dist/SuperSelect/SuperSelect.components.js +3 -3
- package/dist/SuperSelect/SuperSelect.components.js.map +1 -1
- package/dist/SuperSelect/SuperSelect.presets.styles.js +1 -1
- package/dist/SuperSelect/SuperSelect.styles.js +41 -41
- package/dist/SuperSelect/SuperSelect.styles.js.map +1 -1
- package/dist/SuperSelect/useSuperSelect.js +11 -11
- package/dist/SuperSelect/useSuperSelect.js.map +1 -1
- package/dist/Switch/Switch.styles.js +4 -4
- package/dist/Table/Table.d.ts +2 -2
- package/dist/Table/Table.js +58 -18
- package/dist/Table/Table.js.map +1 -1
- package/dist/Table/Table.styles.d.ts +3 -1
- package/dist/Table/Table.styles.js +34 -33
- package/dist/Table/Table.styles.js.map +1 -1
- package/dist/Table/Table.types.d.ts +5 -0
- package/dist/Table/Table.types.js.map +1 -1
- package/dist/TableShelf/TableShelf.styles.js +5 -5
- package/dist/Tabs/Tabs.styles.js +15 -15
- package/dist/Tearsheet/Tearsheet.styles.js +5 -5
- package/dist/TextArea/TextArea.js +1 -0
- package/dist/TextArea/TextArea.js.map +1 -1
- package/dist/TextArea/TextArea.styles.js +1 -1
- package/dist/TextEditor/TextEditor.d.ts +1 -1
- package/dist/TextEditor/TextEditor.js +67 -12
- package/dist/TextEditor/TextEditor.js.map +1 -1
- package/dist/TextEditor/TextEditor.types.d.ts +17 -0
- package/dist/TextEditor/TextEditor.types.js.map +1 -1
- package/dist/TextEditorOutput/TextEditorOutput.styles.js +1 -1
- package/dist/Thumbnail/Thumbnail.styles.js +17 -17
- package/dist/Thumbnail/ThumbnailDocumentIcon.d.ts +3 -1
- package/dist/Thumbnail/ThumbnailDocumentIcon.js +61 -21
- package/dist/Thumbnail/ThumbnailDocumentIcon.js.map +1 -1
- package/dist/ThumbnailGrid/ThumbnailGrid.styles.js +7 -7
- package/dist/TieredSelect/TieredSelect.styles.js +9 -9
- package/dist/Tile/Tile.styles.js +8 -8
- package/dist/Title/Title.styles.js +7 -7
- package/dist/Toast/Toast.js +1 -1
- package/dist/Toast/Toast.js.map +1 -1
- package/dist/Toast/Toast.styles.js +3 -3
- package/dist/ToggleButton/ToggleButton.styles.js +1 -1
- package/dist/Token/Token.styles.js +3 -3
- package/dist/ToolHeader/ToolHeader.styles.js +6 -6
- package/dist/ToolLandingPage/ToolLandingPage.styles.js +3 -3
- package/dist/Tooltip/Tooltip.styles.js +2 -2
- package/dist/Tree/Tree.hooks.js +11 -6
- package/dist/Tree/Tree.hooks.js.map +1 -1
- package/dist/Tree/Tree.js +142 -49
- package/dist/Tree/Tree.js.map +1 -1
- package/dist/Tree/Tree.styles.d.ts +5 -0
- package/dist/Tree/Tree.styles.js +17 -9
- package/dist/Tree/Tree.styles.js.map +1 -1
- package/dist/Tree/Tree.types.d.ts +21 -1
- package/dist/Tree/Tree.types.js.map +1 -1
- package/dist/Typeahead/Typeahead.styles.js +3 -3
- package/dist/Typography/Typography.styles.js +1 -1
- package/dist/Typography/Typography.table.story.js +2 -2
- package/dist/_hooks/I18n.d.ts +200 -11
- package/dist/_locales/de-DE.json +11 -3
- package/dist/_locales/en-AU.json +10 -2
- package/dist/_locales/en-CA.json +10 -2
- package/dist/_locales/en-GB.json +10 -2
- package/dist/_locales/en.json +6 -0
- package/dist/_locales/es-ES.json +12 -4
- package/dist/_locales/es.json +15 -7
- package/dist/_locales/fr-CA.json +11 -3
- package/dist/_locales/fr-FR.json +12 -4
- package/dist/_locales/is-IS.json +11 -3
- package/dist/_locales/it-IT.json +56 -48
- package/dist/_locales/ja-JP.json +12 -4
- package/dist/_locales/pl-PL.json +10 -2
- package/dist/_locales/pseudo.json +6 -0
- package/dist/_locales/pt-BR.json +11 -3
- package/dist/_locales/pt-PT.json +190 -182
- package/dist/_locales/th-TH.json +13 -5
- package/dist/_locales/zh-SG.json +10 -2
- package/dist/_locales/zh-TW.json +16 -8
- package/dist/_storyHelpers_/components/Deprecation.styles.js +1 -1
- package/dist/_storyHelpers_/components/StoryGrid.js +3 -3
- 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 +68 -68
- 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 +89 -89
- package/dist/_typedoc/Card/Card.types.json +6 -6
- package/dist/_typedoc/Checkbox/Checkbox.types.json +8 -8
- package/dist/_typedoc/ContactItem/ContactItem.types.json +12 -10
- 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 +30 -30
- 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 +794 -754
- 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 +1 -1
- 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 +77 -77
- package/dist/_typedoc/Modal/Modal.types.json +46 -46
- package/dist/_typedoc/MultiSelect/MultiSelect.types.json +31 -31
- package/dist/_typedoc/NextTile/NextTile.types.json +32 -32
- package/dist/_typedoc/Notation/Notation.types.json +4 -4
- package/dist/_typedoc/NumberInput/NumberInput.types.json +48 -48
- package/dist/_typedoc/OverlayTrigger/OverlayTrigger.types.json +34 -34
- package/dist/_typedoc/PageLayout/PageLayout.types.json +26 -26
- package/dist/_typedoc/Pagination/Pagination.types.json +7 -7
- package/dist/_typedoc/Panel/Panel.types.json +30 -30
- package/dist/_typedoc/Pill/Pill.types.json +2 -2
- package/dist/_typedoc/PillSelect/PillSelect.types.json +51 -51
- package/dist/_typedoc/Popover/Popover.types.json +15 -15
- package/dist/_typedoc/ProgressBar/ProgressBar.types.json +7 -7
- 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 +64 -64
- 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 +14 -14
- package/dist/_typedoc/Table/Table.types.json +113 -103
- 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 +29 -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 +43 -43
- package/dist/_typedoc/TieredSelect/TieredSelect.types.json +29 -29
- package/dist/_typedoc/Tile/Tile.types.json +8 -8
- package/dist/_typedoc/Title/Title.types.json +1 -1
- 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 +7 -7
- package/dist/_typedoc/ToolHeader/ToolHeader.types.json +10 -10
- package/dist/_typedoc/ToolLandingPage/ToolLandingPage.types.json +8 -8
- package/dist/_typedoc/Tooltip/Tooltip.types.json +13 -13
- package/dist/_typedoc/Tree/Tree.types.json +111 -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/dist/_typedoc/deprecations.json +1 -1
- package/dist/_utils/a11y.d.ts +1 -0
- package/dist/_utils/a11y.js +8 -0
- package/dist/_utils/a11y.js.map +1 -0
- package/package.json +1 -1
package/dist/Tree/Tree.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Tree.js","names":["File","Folder","React","areEqual","FixedSizeList","Spinner","Tooltip","useI18nContext","useIntersectionObserver","useResizeObserver","useTimer","useVisibility","parseFilename","mergeRefs","useTree","StyledChevron","StyledChevronContainer","StyledFilenameCaption","StyledIconContainer","StyledTree","StyledTreeRowContainer","StyledTreeRowContent","StyledTreeRowWrapper","spacing","rootSpacing","defaultRowHeight","rowRightPadding","scrollbarWidth","getPadding","level","intersectionThresholds","Array","from","length","map","_","index","tooltipDelay","UNSAFE_treeRootNodeId","defaultIsExpandable","node","defaultGetType","defaultIsSelectable","type","defaultGetParentId","parentId","defaultGetLabel","name","noop","isRootNode","rootValues","undefined","includes","Tree","forwardRef","_ref","ref","options","_ref$expanded","expanded","_ref$selected","selected","_ref$selectionLimit","selectionLimit","Infinity","getRoot_","getRoot","getChildren_","getChildren","getIconBase","getIcon","_ref$getLabel","getLabel","_ref$getParentId","getParentId","getParentId_","_ref$getType","getType","_ref$isExpandable","isExpandable","_ref$isSelectable","isSelectable","_ref$multiple","multiple","_ref$onSelect","onSelect","_ref$onCollapse","onCollapse","_ref$onExpand","onExpand","Promise","resolve","rowRendererBase","rowRenderer","_ref$maxVisibleNodes","maxVisibleNodes","visibleHeight","_ref$autoExpandParent","autoExpandParent","innerElementType","outerElementType","onKeyDown","children","props","_objectWithoutProperties","_excluded","rowHeight","wrapperRef","useRef","listRef","listInnerRef","listOuterRefRef","_React$useState","useState","_React$useState2","_slicedToArray","contentMaxWidth","setContentMaxWidth","useMemo","defaultGetRoot","useCallback","nodes","filter","rootNodes","roots","isArray","useEffect","console","warn","_React$useState3","_React$useState4","isTreeFocused","setIsTreeFocused","_React$useState5","width","height","_React$useState6","containerSize","setContainerSize","handleContainerResize","entries","_ref2","target","clientHeight","clientWidth","setResizeObserverTarget","defaultGetChildren","childNode","id","_useTree","isExpanded","isSelected","isLoading","highlightedNode","isNodeHighlighted","isHighlighted","highlight","handleSelection","handleExpansion","_setExpanded","setExpanded","_setSelected","setSelected","isFileLimitReached","listNavigation","Set","useImperativeHandle","rootEl","current","toggleSelected","toggleExpanded","defaultGetIcon","isFolder","createElement","role","handleAccessibility","e","key","preventDefault","increment","decrement","_listRef$current","scrollToItem","defaultRowRenderer","TreeRow","_listInnerRef$current","rowContentSizes","childNodes","forEach","child","rowContent","querySelector","_dataset$padding","leftPadding","dataset","padding","push","scrollWidth","parseInt","maxSizeRowContent","Math","max","apply","itemData","treeContainer","error","_extends","tabIndex","onFocus","onBlur","className","min","innerRef","outerRef","itemCount","itemSize","TreeNode","memo","_ref3","_ref3$data","data","_excluded2","style","_React$useState7","_React$useState8","isMouseOver","setMouseOver","timer","_useVisibility","shouldShowTooltip","isVisible","showTooltip","show","hideTooltip","hide","setTimer","onMouseEnter","onMouseLeave","cancel","_objectSpread","_ref4","_excluded3","expanderRef","nodeType","rowLabel","onClick","event","_expanderRef$current","contains","onMouseDown","focus","TreeRowContainer","TreeRowChevron","TreeRowIcon","icon","TreeRowTooltip","fileName","TreeRowName","value","IconContainer","_ref5","_excluded4","$isSelected","_ref6","$isExpanded","_ref7","marginLeft","marginRight","size","_ref8","getSelectionLimitMessage","count","getUnsupportedFileTypeMessage","_parseFilename","extension","isFilename","concat","fileType","toUpperCase","_ref9","isFocused","I18n","rowRef","isUserInteracting","isTooltipVisible","isFile","_React$useState9","_React$useState0","isCropped","setCropped","registerRowEl","entry","rootBounds","left","boundingClientRect","root","rootMargin","threshold","selectionLimitMessage","unsupportedFileTypeMessage","message","trigger","overlay","t","placement","_ref0","_excluded5","$isSelectable","$isHighlighted","paddingLeft"],"sources":["../../src/Tree/Tree.tsx"],"sourcesContent":["import { File, Folder } from '@procore/core-icons/dist'\nimport type { FunctionComponent, PropsWithChildren } from 'react'\nimport React from 'react'\nimport { areEqual, FixedSizeList } from 'react-window'\nimport { Spinner } from '../Spinner/Spinner'\nimport { Tooltip } from '../Tooltip'\nimport { useI18nContext } from '../_hooks/I18n'\nimport { useIntersectionObserver } from '../_hooks/IntersectionObserver'\nimport { useResizeObserver } from '../_hooks/ResizeObserver'\nimport { useTimer } from '../_hooks/Timer'\nimport { useVisibility } from '../_hooks/Visibility'\nimport { parseFilename } from '../_utils/filename'\nimport { mergeRefs } from '../_utils/mergeRefs'\nimport { useTree } from './Tree.hooks'\nimport {\n StyledChevron,\n StyledChevronContainer,\n StyledFilenameCaption,\n StyledIconContainer,\n StyledTree,\n StyledTreeRowContainer,\n StyledTreeRowContent,\n StyledTreeRowWrapper,\n} from './Tree.styles'\nimport type {\n CustomDataType,\n IconContainerProps,\n Node,\n TreeDefaultNode,\n TreeNodeId,\n TreeNodeProps,\n TreeProps,\n TreeRef,\n TreeRowContainerProps,\n TreeRowProps,\n TreeRowTooltipProps,\n} from './Tree.types'\n\nconst spacing = 32\nconst rootSpacing = 24\nconst defaultRowHeight = 36\n\n// Selected nodes have a bold text, and browsers occasionally miscalculate scrollWidth by one pixel down.\n// That situations might cause an issue when we get a second horizontal scrollbar.\n// This padding serves as compensation to prevent the described issue.\nconst rowRightPadding = 12\n// For most of browsers it usually varies between 12px and 20px.\n// To avoid tricky cross-browser calculations of scrollbar width. The maximum width is used.\nconst scrollbarWidth = 20\n\nfunction getPadding(level: number) {\n return rootSpacing + level * spacing\n}\n\nconst intersectionThresholds = Array.from({ length: 101 }).map(\n (_, index) => index / 100\n)\n\nconst tooltipDelay = 300\n\n// TODO refactor this to not be upper snake case\nexport const UNSAFE_treeRootNodeId = 'ROOT_ID'\n\nconst defaultIsExpandable: NonNullable<TreeProps['isExpandable']> = (\n node: TreeDefaultNode\n) => defaultGetType(node) === 'branch'\nconst defaultIsSelectable: NonNullable<TreeProps['isSelectable']> = (\n node: TreeDefaultNode\n) => node.type === 'leaf'\nconst defaultGetType: NonNullable<TreeProps['getType']> = (\n node: TreeDefaultNode\n) => node.type\nconst defaultGetParentId: NonNullable<TreeProps['getParentId']> = (\n node: TreeDefaultNode\n) => node.parentId\nconst defaultGetLabel: NonNullable<TreeProps['getLabel']> = (\n node: TreeDefaultNode\n) => node.name\nfunction noop() {}\n\nexport function isRootNode(parentId: TreeNodeId): boolean {\n const rootValues = [UNSAFE_treeRootNodeId, null, undefined] as TreeNodeId[]\n return rootValues.includes(parentId)\n}\n\n/**\n\n The tree allows users to navigate between folder / file directories,\n and optionally select those files.\n\n @since 10.19.0\n\n @see [Storybook](https://stories.core.procore.com/?path=/story/core-react_demos-tree--demo)\n\n @see [Design Guidelines](https://design.procore.com/tree)\n\n */\nexport const Tree = React.forwardRef(\n <T extends Node = Node, P extends CustomDataType<T> = Array<T>>(\n {\n options,\n expanded = [],\n selected = [],\n selectionLimit = Infinity,\n getRoot: getRoot_,\n getChildren: getChildren_,\n getIcon: getIconBase,\n getLabel = defaultGetLabel,\n getParentId: getParentId_ = defaultGetParentId,\n getType = defaultGetType,\n isExpandable = defaultIsExpandable,\n isSelectable = defaultIsSelectable,\n multiple = true,\n onSelect = noop,\n onCollapse = noop,\n onExpand = () => Promise.resolve(),\n rowRenderer: rowRendererBase,\n maxVisibleNodes = Infinity,\n visibleHeight,\n autoExpandParent = true,\n innerElementType,\n outerElementType,\n onKeyDown,\n children,\n ...props\n }: TreeProps<T, P>,\n ref: React.Ref<TreeRef<T>>\n ) => {\n const rowHeight = defaultRowHeight\n const wrapperRef = React.useRef<HTMLDivElement | null>(null)\n const listRef = React.useRef<FixedSizeList>(null)\n const listInnerRef = React.useRef<HTMLDivElement>(null)\n const listOuterRefRef = React.useRef<HTMLDivElement>(null)\n const [contentMaxWidth, setContentMaxWidth] = React.useState(0)\n\n const getParentId = React.useMemo(() => getParentId_, [])\n\n const defaultGetRoot = React.useCallback(\n (nodes: P): T | T[] =>\n nodes.filter((node: T) => {\n return isRootNode(getParentId(node))\n }),\n [getParentId]\n )\n\n const getRoot = React.useMemo(\n () => getRoot_ || defaultGetRoot,\n [defaultGetRoot]\n )\n\n const rootNodes = React.useMemo(() => {\n const roots = getRoot(options)\n return Array.isArray(roots) ? roots : [roots]\n }, [getRoot, options])\n\n React.useEffect(() => {\n if (!rootNodes.length) {\n console.warn(\n 'Tree must have at least one root node. Look up `Tree#getParentId` for details.'\n )\n }\n }, [rootNodes])\n\n const [isTreeFocused, setIsTreeFocused] = React.useState(false)\n const [containerSize, setContainerSize] = React.useState({\n width: 0,\n height: 0,\n })\n\n const handleContainerResize = React.useCallback(\n (entries: ResizeObserverEntry[]) => {\n if (entries[0]) {\n const { clientHeight: height, clientWidth: width } = entries[0]\n .target as HTMLElement\n setContainerSize({ width, height })\n }\n },\n [setContainerSize]\n )\n\n const setResizeObserverTarget = useResizeObserver(handleContainerResize)\n\n const defaultGetChildren = React.useCallback(\n (node: T) =>\n Array.isArray(options)\n ? options.filter((childNode: T) => getParentId(childNode) === node.id)\n : ([] as T[]),\n [getParentId, options]\n )\n\n const getChildren = getChildren_ || defaultGetChildren\n\n const {\n nodes,\n isExpanded,\n isSelected,\n isLoading,\n highlightedNode,\n isHighlighted: isNodeHighlighted,\n highlight,\n handleSelection,\n handleExpansion,\n setExpanded: _setExpanded,\n setSelected: _setSelected,\n isFileLimitReached,\n listNavigation,\n } = useTree<T>({\n rootNodes,\n expanded,\n selected,\n selectionLimit,\n multiple,\n autoExpandParent,\n onSelect,\n onCollapse,\n onExpand,\n getChildren,\n getParentId,\n })\n\n const setSelected = React.useCallback(\n (selected: T | T[]) => {\n const nodes = Array.isArray(selected) ? selected : [selected]\n\n _setSelected(new Set(nodes.map((node) => node.id)))\n },\n [_setSelected]\n )\n\n const setExpanded = React.useCallback(\n (expanded: T | T[]) => {\n const nodes = Array.isArray(expanded) ? expanded : [expanded]\n\n _setExpanded(new Set(nodes.map((node) => node.id)))\n },\n [_setExpanded]\n )\n\n React.useImperativeHandle(ref, () => ({\n rootEl: wrapperRef.current,\n setSelected,\n setExpanded,\n toggleSelected: (node: T) => handleSelection(node),\n toggleExpanded: (node: T) => handleExpansion(node),\n }))\n\n const defaultGetIcon = React.useCallback(\n (node: T): React.ReactNode => {\n const isFolder = getType(node) === 'branch'\n return isFolder ? (\n <Folder role=\"img\" aria-label=\"Folder\" aria-hidden={false} />\n ) : (\n <File role=\"img\" aria-label=\"File\" aria-hidden={false} />\n )\n },\n [getType]\n )\n\n const getIcon = getIconBase || defaultGetIcon\n\n const isHighlighted = React.useCallback(\n (node: T) => isTreeFocused && isNodeHighlighted(node),\n [isNodeHighlighted, isTreeFocused]\n )\n\n const handleAccessibility = (e: React.KeyboardEvent<HTMLDivElement>) => {\n onKeyDown?.(e)\n const { key } = e\n\n switch (key) {\n case 'Enter':\n e.preventDefault()\n isSelectable(highlightedNode) && handleSelection(highlightedNode)\n break\n case 'Space Bar':\n case ' ':\n e.preventDefault()\n isExpandable(highlightedNode) && handleExpansion(highlightedNode)\n break\n case 'ArrowDown':\n case 'Down':\n e.preventDefault()\n listNavigation.increment()\n break\n case 'ArrowUp':\n case 'Up':\n e.preventDefault()\n listNavigation.decrement()\n break\n }\n }\n\n React.useEffect(() => {\n if (isTreeFocused) {\n listRef.current?.scrollToItem(listNavigation.index)\n }\n }, [isTreeFocused, listNavigation.index])\n\n const defaultRowRenderer = React.useCallback(\n (props: TreeRowProps) => <TreeRow {...props} />,\n []\n )\n\n React.useEffect(() => {\n const rowContentSizes: number[] = []\n\n const childNodes = Array.from(listInnerRef.current?.childNodes || [])\n childNodes.forEach((child) => {\n const rowContent = (child as HTMLElement).querySelector(\n '[data-row-content]'\n )\n\n if (rowContent) {\n const leftPadding = (child as HTMLElement).dataset.padding ?? '0'\n rowContentSizes.push(\n rowContent.scrollWidth + parseInt(leftPadding, 10) + rowRightPadding\n )\n }\n })\n\n const maxSizeRowContent = Math.max(...rowContentSizes) + scrollbarWidth\n setContentMaxWidth(maxSizeRowContent)\n })\n\n const rowRenderer = rowRendererBase || defaultRowRenderer\n\n const itemData = React.useMemo(\n () => ({\n nodes,\n getIcon,\n getLabel,\n getType,\n isExpandable,\n isSelectable,\n isExpanded,\n isSelected,\n isLoading,\n highlight,\n isHighlighted,\n handleSelection,\n handleExpansion,\n rowRenderer,\n isFileLimitReached,\n selectionLimit,\n isTreeFocused,\n treeContainer: wrapperRef.current as HTMLDivElement,\n }),\n [\n getIcon,\n getLabel,\n getType,\n handleExpansion,\n handleSelection,\n highlight,\n isExpandable,\n isExpanded,\n isFileLimitReached,\n isHighlighted,\n isLoading,\n isSelectable,\n isSelected,\n isTreeFocused,\n nodes,\n rowRenderer,\n selectionLimit,\n ]\n )\n\n if (!rootNodes) {\n console.error('Tree must have a valid root node')\n return null\n }\n\n return (\n <StyledTree\n {...props}\n ref={mergeRefs(wrapperRef, setResizeObserverTarget)}\n tabIndex={0}\n onFocus={() => setIsTreeFocused(true)}\n onBlur={() => setIsTreeFocused(false)}\n onKeyDown={handleAccessibility}\n >\n <FixedSizeList\n className=\"size-list\"\n ref={listRef}\n height={\n visibleHeight ||\n Math.min(nodes.length * rowHeight, rowHeight * maxVisibleNodes)\n }\n innerRef={listInnerRef}\n outerRef={listOuterRefRef}\n itemCount={nodes.length}\n itemSize={rowHeight}\n innerElementType={innerElementType}\n outerElementType={outerElementType}\n itemData={itemData}\n width={Math.max(contentMaxWidth, containerSize.width)}\n >\n {TreeNode}\n </FixedSizeList>\n </StyledTree>\n )\n }\n)\n\nconst TreeNode: React.FC<TreeNodeProps> = React.memo(\n ({\n data: { nodes, rowRenderer, highlight, isTreeFocused, ...props },\n index,\n style,\n }) => {\n const node = nodes[index]\n\n const isHighlighted = props.isHighlighted(node)\n const [isMouseOver, setMouseOver] = React.useState(false)\n\n const timer = useTimer({})\n const {\n isVisible: shouldShowTooltip,\n show: showTooltip,\n hide: hideTooltip,\n } = useVisibility({})\n\n React.useEffect(() => {\n if (isHighlighted && !shouldShowTooltip) {\n timer.setTimer(showTooltip, tooltipDelay)\n }\n\n return () => {\n if (isTreeFocused && !isHighlighted && shouldShowTooltip) {\n hideTooltip()\n }\n }\n })\n\n const onMouseEnter = () => {\n setMouseOver(true)\n if (!shouldShowTooltip) {\n timer.setTimer(showTooltip, tooltipDelay)\n }\n highlight(node)\n }\n\n const onMouseLeave = () => {\n setMouseOver(false)\n timer.cancel()\n hideTooltip()\n }\n\n return (\n <StyledTreeRowWrapper\n tabIndex={-1}\n onMouseEnter={onMouseEnter}\n onMouseLeave={onMouseLeave}\n style={style}\n data-padding={getPadding(node.level)}\n >\n {rowRenderer({\n node,\n shouldShowTooltip,\n isMouseOver,\n ...props,\n })}\n </StyledTreeRowWrapper>\n )\n },\n areEqual\n)\n\nconst TreeRow: React.FC<TreeRowProps> = ({\n node,\n getIcon,\n getLabel,\n handleExpansion,\n handleSelection,\n selectionLimit,\n isFileLimitReached,\n shouldShowTooltip,\n isMouseOver,\n treeContainer,\n ...props\n}) => {\n const expanderRef = React.useRef<HTMLDivElement>(null)\n const isSelected = props.isSelected(node)\n const isSelectable = props.isSelectable(node)\n const isExpandable = props.isExpandable(node)\n const isExpanded = props.isExpanded(node)\n const isLoading = props.isLoading(node)\n const isHighlighted = props.isHighlighted(node)\n const nodeType = props.getType(node)\n const rowLabel = getLabel(node)\n\n const onClick = React.useCallback(\n (event: React.MouseEvent) => {\n if (isSelectable && isExpandable) {\n // @ts-ignore\n expanderRef?.current?.contains(event.target)\n ? handleExpansion(node)\n : handleSelection(node)\n } else if (isSelectable) {\n handleSelection(node)\n } else if (isExpandable) {\n handleExpansion(node)\n }\n },\n [handleExpansion, handleSelection, isExpandable, isSelectable, node]\n )\n\n const onMouseDown = React.useCallback(\n (e: React.MouseEvent) => {\n e.preventDefault()\n treeContainer.focus()\n },\n [treeContainer]\n )\n\n return (\n <TreeRowContainer\n level={node.level}\n onClick={onClick}\n onMouseDown={onMouseDown}\n isSelected={isSelected}\n isSelectable={isSelectable}\n isExpandable={isExpandable}\n isHighlighted={isHighlighted}\n isFileLimitReached={isFileLimitReached}\n data-qa=\"core-tree-row-container\"\n >\n {\n // WARNING!\n // Be aware that this data attribute is used for calculations, changing this data attribute will break its operability.\n }\n <StyledTreeRowContent data-row-content>\n <TreeRowChevron\n ref={expanderRef}\n isExpandable={isExpandable}\n isExpanded={isExpanded}\n />\n <TreeRowIcon\n isLoading={isLoading}\n isSelected={isSelected}\n icon={getIcon(node)}\n />\n <TreeRowTooltip\n isSelected={isSelected}\n isSelectable={isSelectable}\n isHighlighted={isHighlighted}\n selectionLimit={selectionLimit}\n isFileLimitReached={isFileLimitReached}\n shouldShowTooltip={shouldShowTooltip}\n isMouseOver={isMouseOver}\n fileName={rowLabel}\n nodeType={nodeType}\n treeContainer={treeContainer}\n >\n <TreeRowName value={rowLabel} />\n </TreeRowTooltip>\n </StyledTreeRowContent>\n </TreeRowContainer>\n )\n}\n\nconst IconContainer: React.FC<IconContainerProps> = ({\n children,\n isSelected,\n ...props\n}) => (\n <StyledIconContainer $isSelected={isSelected} {...props}>\n {children}\n </StyledIconContainer>\n)\n\nconst TreeRowChevron = React.forwardRef<\n HTMLDivElement,\n {\n isExpanded: boolean\n isExpandable: boolean\n }\n>(({ isExpanded, isExpandable }, ref) => {\n return (\n <StyledChevronContainer ref={ref}>\n {isExpandable ? <StyledChevron $isExpanded={isExpanded} /> : null}\n </StyledChevronContainer>\n )\n})\n\nconst TreeRowIcon: React.FC<{\n isSelected: boolean\n isLoading: boolean\n icon: React.ReactNode\n}> = ({ isSelected, isLoading, icon }) => (\n <IconContainer isSelected={isSelected} marginLeft=\"sm\" marginRight=\"sm\">\n {isLoading ? <Spinner size=\"sm\" /> : icon}\n </IconContainer>\n)\n\nconst TreeRowName: React.FC<{ value: string }> = ({ value }) => (\n <StyledFilenameCaption>{value}</StyledFilenameCaption>\n)\n\nconst getSelectionLimitMessage = (selectionLimit: number) => ({\n key: 'selectionLimit',\n options: {\n count: selectionLimit,\n },\n})\n\nconst getUnsupportedFileTypeMessage = (fileName: string) => {\n const { extension, isFilename } = parseFilename(fileName)\n const key = isFilename ? 'specific' : 'unspecific'\n\n return {\n key: `unsupportedFileType.${key}`,\n options: {\n fileType: `.${extension.toUpperCase()}`,\n },\n }\n}\n\nconst TreeRowTooltip: FunctionComponent<\n PropsWithChildren<TreeRowTooltipProps>\n> = ({\n children,\n isHighlighted: isFocused,\n isFileLimitReached,\n isSelectable,\n isSelected,\n nodeType,\n selectionLimit,\n shouldShowTooltip,\n isMouseOver,\n fileName,\n treeContainer,\n}) => {\n const I18n = useI18nContext()\n const rowRef = React.useRef<HTMLDivElement>(null)\n const isUserInteracting = isFocused || isMouseOver\n const isTooltipVisible = isUserInteracting && shouldShowTooltip && !isSelected\n const isFile = nodeType === 'leaf'\n const [isCropped, setCropped] = React.useState(false)\n\n const registerRowEl = useIntersectionObserver(\n (entries) => {\n entries.forEach((entry) => {\n if (\n entry.rootBounds &&\n entry.rootBounds.left - entry.boundingClientRect.left >= 0\n ) {\n setCropped(true)\n return\n }\n setCropped(false)\n })\n },\n {\n root: treeContainer,\n rootMargin: '0px',\n threshold: intersectionThresholds,\n }\n )\n\n const selectionLimitMessage = getSelectionLimitMessage(selectionLimit)\n const unsupportedFileTypeMessage = getUnsupportedFileTypeMessage(fileName)\n\n const message = isSelectable\n ? isFileLimitReached && selectionLimitMessage\n : isFile && unsupportedFileTypeMessage\n\n const trigger = isTooltipVisible && !isCropped && message ? 'always' : 'none'\n\n return (\n <Tooltip\n trigger={trigger}\n overlay={\n message ? I18n.t(`core.tree.${message.key}`, message.options) : null\n }\n placement=\"top-left\"\n >\n <div ref={mergeRefs(rowRef, registerRowEl)}>{children}</div>\n </Tooltip>\n )\n}\n\nconst TreeRowContainer: React.FC<TreeRowContainerProps> = ({\n children,\n isHighlighted,\n isSelected,\n isSelectable,\n isExpandable,\n isFileLimitReached,\n level,\n ...props\n}) => {\n return (\n <StyledTreeRowContainer\n $isSelectable={\n (isSelectable &&\n ((isFileLimitReached && isSelected) || !isFileLimitReached)) ||\n isExpandable\n }\n $isHighlighted={isHighlighted}\n $isSelected={isSelected}\n style={{ paddingLeft: getPadding(level) }}\n {...props}\n >\n {children}\n </StyledTreeRowContainer>\n )\n}\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"Tree.js","names":["ChevronRight","File","Folder","React","areEqual","FixedSizeList","styled","Button","Spinner","Tooltip","useI18nContext","useIntersectionObserver","useResizeObserver","useTimer","useVisibility","parseFilename","mergeRefs","useTree","StyledChevronPlaceholder","StyledFilenameCaption","StyledIconContainer","StyledTree","StyledTreeRowContainer","StyledTreeRowContent","StyledTreeRowWrapper","spacing","rootSpacing","defaultRowHeight","rowRightPadding","scrollbarWidth","getPadding","level","intersectionThresholds","Array","from","length","map","_","index","TreeInnerElement","forwardRef","props","ref","createElement","_extends","role","TreeOuterElement","tooltipDelay","getTreeItemId","nodeId","concat","UNSAFE_treeRootNodeId","defaultIsExpandable","node","defaultGetType","defaultIsSelectable","type","defaultGetParentId","parentId","defaultGetLabel","name","noop","isRootNode","rootValues","undefined","includes","Tree","_ref","options","_ref$expanded","expanded","_ref$selected","selected","_ref$selectionLimit","selectionLimit","Infinity","getRoot_","getRoot","getChildren_","getChildren","getIconBase","getIcon","_ref$getLabel","getLabel","_ref$getParentId","getParentId","getParentId_","_ref$getType","getType","_ref$isExpandable","isExpandable","_ref$isSelectable","isSelectable","_ref$multiple","multiple","_ref$onSelect","onSelect","_ref$onCollapse","onCollapse","_ref$onExpand","onExpand","Promise","resolve","rowRendererBase","rowRenderer","_ref$maxVisibleNodes","maxVisibleNodes","visibleHeight","_ref$autoExpandParent","autoExpandParent","innerElementType","outerElementType","onKeyDown","children","_objectWithoutProperties","_excluded","rowHeight","wrapperRef","useRef","listRef","listInnerRef","listOuterRefRef","_React$useState","useState","_React$useState2","_slicedToArray","contentMaxWidth","setContentMaxWidth","useMemo","defaultGetRoot","useCallback","nodes","filter","rootNodes","roots","isArray","useEffect","console","warn","_React$useState3","_React$useState4","isTreeFocused","setIsTreeFocused","_React$useState5","width","height","_React$useState6","containerSize","setContainerSize","handleContainerResize","entries","_ref2","target","clientHeight","clientWidth","setResizeObserverTarget","defaultGetChildren","childNode","id","_useTree","isExpanded","isSelected","isLoading","highlightedNode","isNodeHighlighted","isHighlighted","highlight","handleSelection","handleExpansion","_setExpanded","setExpanded","_setSelected","setSelected","isFileLimitReached","listNavigation","Set","useImperativeHandle","rootEl","current","toggleSelected","toggleExpanded","defaultGetIcon","isFolder","handleAccessibility","e","key","preventDefault","shiftKey","decrement","increment","parentNode","find","_listRef$current","scrollToItem","defaultRowRenderer","TreeRow","_listInnerRef$current","rowContentSizes","childNodes","forEach","child","rowContent","querySelector","_dataset$padding","leftPadding","dataset","padding","push","scrollWidth","parseInt","maxSizeRowContent","Math","max","apply","itemData","treeContainer","error","tabIndex","onFocus","onBlur","className","min","innerRef","outerRef","itemCount","itemSize","TreeNode","memo","_ref3","_ref3$data","data","_excluded2","style","_React$useState7","_React$useState8","isMouseOver","setMouseOver","timer","_useVisibility","shouldShowTooltip","isVisible","showTooltip","show","hideTooltip","hide","setTimer","onMouseEnter","onMouseLeave","cancel","nodeIsExpandable","nodeIsSelectable","nodeIsExpanded","nodeIsSelected","setSize","posInSet","_objectSpread","_ref4","_excluded3","chevronButtonRef","nodeType","rowLabel","onChevronClick","event","stopPropagation","onClick","_chevronButtonRef$cur","contains","onMouseDown","focus","TreeRowContainer","TreeRowChevron","TreeRowIcon","icon","TreeRowTooltip","fileName","TreeRowName","value","IconContainer","_ref5","_excluded4","$isSelected","StyledChevronIcon","withConfig","displayName","componentId","_ref6","$isExpanded","_ref7","I18n","variant","size","t","_ref8","marginLeft","marginRight","_ref9","getSelectionLimitMessage","count","getUnsupportedFileTypeMessage","_parseFilename","extension","isFilename","fileType","toUpperCase","_ref0","isFocused","rowRef","isUserInteracting","isTooltipVisible","isFile","_React$useState9","_React$useState0","isCropped","setCropped","registerRowEl","entry","rootBounds","left","boundingClientRect","root","rootMargin","threshold","selectionLimitMessage","unsupportedFileTypeMessage","message","trigger","overlay","placement","_ref1","_excluded5","$isSelectable","$isHighlighted","paddingLeft"],"sources":["../../src/Tree/Tree.tsx"],"sourcesContent":["import { ChevronRight, File, Folder } from '@procore/core-icons/dist'\nimport type { FunctionComponent, PropsWithChildren } from 'react'\nimport React from 'react'\nimport { areEqual, FixedSizeList } from 'react-window'\nimport styled from 'styled-components'\nimport { Button } from '../Button/Button'\nimport { Spinner } from '../Spinner/Spinner'\nimport { Tooltip } from '../Tooltip'\nimport { useI18nContext } from '../_hooks/I18n'\nimport { useIntersectionObserver } from '../_hooks/IntersectionObserver'\nimport { useResizeObserver } from '../_hooks/ResizeObserver'\nimport { useTimer } from '../_hooks/Timer'\nimport { useVisibility } from '../_hooks/Visibility'\nimport { parseFilename } from '../_utils/filename'\nimport { mergeRefs } from '../_utils/mergeRefs'\nimport { useTree } from './Tree.hooks'\nimport {\n StyledChevronPlaceholder,\n StyledFilenameCaption,\n StyledIconContainer,\n StyledTree,\n StyledTreeRowContainer,\n StyledTreeRowContent,\n StyledTreeRowWrapper,\n} from './Tree.styles'\nimport type {\n CustomDataType,\n IconContainerProps,\n Node,\n TreeDefaultNode,\n TreeNodeId,\n TreeNodeProps,\n TreeProps,\n TreeRef,\n TreeRowContainerProps,\n TreeRowProps,\n TreeRowTooltipProps,\n} from './Tree.types'\n\nconst spacing = 32\nconst rootSpacing = 24\nconst defaultRowHeight = 36\n\n// Selected nodes have a bold text, and browsers occasionally miscalculate scrollWidth by one pixel down.\n// That situations might cause an issue when we get a second horizontal scrollbar.\n// This padding serves as compensation to prevent the described issue.\nconst rowRightPadding = 12\n// For most of browsers it usually varies between 12px and 20px.\n// To avoid tricky cross-browser calculations of scrollbar width. The maximum width is used.\nconst scrollbarWidth = 20\n\nfunction getPadding(level: number) {\n return rootSpacing + level * spacing\n}\n\nconst intersectionThresholds = Array.from({ length: 101 }).map(\n (_, index) => index / 100\n)\n\nconst TreeInnerElement = React.forwardRef<\n HTMLDivElement,\n React.HTMLProps<HTMLDivElement>\n>((props, ref) => <div role=\"presentation\" ref={ref} {...props} />)\n\nconst TreeOuterElement = React.forwardRef<\n HTMLDivElement,\n React.HTMLProps<HTMLDivElement>\n>((props, ref) => <div role=\"presentation\" ref={ref} {...props} />)\n\nconst tooltipDelay = 300\n\nfunction getTreeItemId(nodeId: TreeNodeId): string {\n return `treeitem-${nodeId}`\n}\n\n// TODO refactor this to not be upper snake case\nexport const UNSAFE_treeRootNodeId = 'ROOT_ID'\n\nconst defaultIsExpandable: NonNullable<TreeProps['isExpandable']> = (\n node: TreeDefaultNode\n) => defaultGetType(node) === 'branch'\nconst defaultIsSelectable: NonNullable<TreeProps['isSelectable']> = (\n node: TreeDefaultNode\n) => node.type === 'leaf'\nconst defaultGetType: NonNullable<TreeProps['getType']> = (\n node: TreeDefaultNode\n) => node.type\nconst defaultGetParentId: NonNullable<TreeProps['getParentId']> = (\n node: TreeDefaultNode\n) => node.parentId\nconst defaultGetLabel: NonNullable<TreeProps['getLabel']> = (\n node: TreeDefaultNode\n) => node.name\nfunction noop() {}\n\nexport function isRootNode(parentId: TreeNodeId): boolean {\n const rootValues = [UNSAFE_treeRootNodeId, null, undefined] as TreeNodeId[]\n return rootValues.includes(parentId)\n}\n\n/**\n\n The tree allows users to navigate between folder / file directories,\n and optionally select those files.\n\n @since 10.19.0\n\n @see [Storybook](https://stories.core.procore.com/?path=/story/core-react_demos-tree--demo)\n\n @see [Design Guidelines](https://design.procore.com/tree)\n\n */\nexport const Tree = React.forwardRef(\n <T extends Node = Node, P extends CustomDataType<T> = Array<T>>(\n {\n options,\n expanded = [],\n selected = [],\n selectionLimit = Infinity,\n getRoot: getRoot_,\n getChildren: getChildren_,\n getIcon: getIconBase,\n getLabel = defaultGetLabel,\n getParentId: getParentId_ = defaultGetParentId,\n getType = defaultGetType,\n isExpandable = defaultIsExpandable,\n isSelectable = defaultIsSelectable,\n multiple = true,\n onSelect = noop,\n onCollapse = noop,\n onExpand = () => Promise.resolve(),\n rowRenderer: rowRendererBase,\n maxVisibleNodes = Infinity,\n visibleHeight,\n autoExpandParent = true,\n innerElementType,\n outerElementType,\n onKeyDown,\n children,\n ...props\n }: TreeProps<T, P>,\n ref: React.Ref<TreeRef<T>>\n ) => {\n const rowHeight = defaultRowHeight\n const wrapperRef = React.useRef<HTMLDivElement | null>(null)\n const listRef = React.useRef<FixedSizeList>(null)\n const listInnerRef = React.useRef<HTMLDivElement>(null)\n const listOuterRefRef = React.useRef<HTMLDivElement>(null)\n const [contentMaxWidth, setContentMaxWidth] = React.useState(0)\n\n const getParentId = React.useMemo(() => getParentId_, [])\n\n const defaultGetRoot = React.useCallback(\n (nodes: P): T | T[] =>\n nodes.filter((node: T) => {\n return isRootNode(getParentId(node))\n }),\n [getParentId]\n )\n\n const getRoot = React.useMemo(\n () => getRoot_ || defaultGetRoot,\n [defaultGetRoot]\n )\n\n const rootNodes = React.useMemo(() => {\n const roots = getRoot(options)\n return Array.isArray(roots) ? roots : [roots]\n }, [getRoot, options])\n\n React.useEffect(() => {\n if (!rootNodes.length) {\n console.warn(\n 'Tree must have at least one root node. Look up `Tree#getParentId` for details.'\n )\n }\n }, [rootNodes])\n\n const [isTreeFocused, setIsTreeFocused] = React.useState(false)\n const [containerSize, setContainerSize] = React.useState({\n width: 0,\n height: 0,\n })\n\n const handleContainerResize = React.useCallback(\n (entries: ResizeObserverEntry[]) => {\n if (entries[0]) {\n const { clientHeight: height, clientWidth: width } = entries[0]\n .target as HTMLElement\n setContainerSize({ width, height })\n }\n },\n [setContainerSize]\n )\n\n const setResizeObserverTarget = useResizeObserver(handleContainerResize)\n\n const defaultGetChildren = React.useCallback(\n (node: T) =>\n Array.isArray(options)\n ? options.filter((childNode: T) => getParentId(childNode) === node.id)\n : ([] as T[]),\n [getParentId, options]\n )\n\n const getChildren = getChildren_ || defaultGetChildren\n\n const {\n nodes,\n isExpanded,\n isSelected,\n isLoading,\n highlightedNode,\n isHighlighted: isNodeHighlighted,\n highlight,\n handleSelection,\n handleExpansion,\n setExpanded: _setExpanded,\n setSelected: _setSelected,\n isFileLimitReached,\n listNavigation,\n } = useTree<T>({\n rootNodes,\n expanded,\n selected,\n selectionLimit,\n multiple,\n autoExpandParent,\n onSelect,\n onCollapse,\n onExpand,\n getChildren,\n getParentId,\n })\n\n const setSelected = React.useCallback(\n (selected: T | T[]) => {\n const nodes = Array.isArray(selected) ? selected : [selected]\n\n _setSelected(new Set(nodes.map((node) => node.id)))\n },\n [_setSelected]\n )\n\n const setExpanded = React.useCallback(\n (expanded: T | T[]) => {\n const nodes = Array.isArray(expanded) ? expanded : [expanded]\n\n _setExpanded(new Set(nodes.map((node) => node.id)))\n },\n [_setExpanded]\n )\n\n React.useImperativeHandle(ref, () => ({\n rootEl: wrapperRef.current,\n setSelected,\n setExpanded,\n toggleSelected: (node: T) => handleSelection(node),\n toggleExpanded: (node: T) => handleExpansion(node),\n }))\n\n const defaultGetIcon = React.useCallback(\n (node: T): React.ReactNode => {\n const isFolder = getType(node) === 'branch'\n return isFolder ? (\n <Folder role=\"img\" aria-label=\"Folder\" aria-hidden={false} />\n ) : (\n <File role=\"img\" aria-label=\"File\" aria-hidden={false} />\n )\n },\n [getType]\n )\n\n const getIcon = getIconBase || defaultGetIcon\n\n const isHighlighted = React.useCallback(\n (node: T) => isTreeFocused && isNodeHighlighted(node),\n [isNodeHighlighted, isTreeFocused]\n )\n\n const handleAccessibility = (e: React.KeyboardEvent<HTMLDivElement>) => {\n onKeyDown?.(e)\n const { key } = e\n\n switch (key) {\n case 'Enter':\n e.preventDefault()\n isSelectable(highlightedNode) && handleSelection(highlightedNode)\n break\n case 'Space Bar':\n case ' ':\n e.preventDefault()\n isExpandable(highlightedNode) && handleExpansion(highlightedNode)\n break\n case 'Tab':\n if (e.shiftKey) {\n if (listNavigation.index > 0) {\n e.preventDefault()\n listNavigation.decrement()\n }\n } else {\n if (listNavigation.index < nodes.length - 1) {\n e.preventDefault()\n listNavigation.increment()\n }\n }\n break\n case 'ArrowLeft':\n case 'Left':\n e.preventDefault()\n if (isExpandable(highlightedNode) && isExpanded(highlightedNode)) {\n handleExpansion(highlightedNode)\n } else {\n const parentId = getParentId(highlightedNode)\n if (!isRootNode(parentId)) {\n const parentNode = nodes.find((node) => node.id === parentId)\n if (parentNode) {\n highlight(parentNode)\n }\n }\n }\n break\n case 'ArrowRight':\n case 'Right':\n e.preventDefault()\n if (isExpandable(highlightedNode) && !isExpanded(highlightedNode)) {\n handleExpansion(highlightedNode)\n } else if (\n isExpandable(highlightedNode) &&\n isExpanded(highlightedNode)\n ) {\n listNavigation.increment()\n }\n break\n case 'ArrowDown':\n case 'Down':\n e.preventDefault()\n listNavigation.increment()\n break\n case 'ArrowUp':\n case 'Up':\n e.preventDefault()\n listNavigation.decrement()\n break\n }\n }\n\n React.useEffect(() => {\n if (isTreeFocused) {\n listRef.current?.scrollToItem(listNavigation.index)\n }\n }, [isTreeFocused, listNavigation.index])\n\n const defaultRowRenderer = React.useCallback(\n (props: TreeRowProps) => <TreeRow {...props} />,\n []\n )\n\n React.useEffect(() => {\n const rowContentSizes: number[] = []\n\n const childNodes = Array.from(listInnerRef.current?.childNodes || [])\n childNodes.forEach((child) => {\n const rowContent = (child as HTMLElement).querySelector(\n '[data-row-content]'\n )\n\n if (rowContent) {\n const leftPadding = (child as HTMLElement).dataset.padding ?? '0'\n rowContentSizes.push(\n rowContent.scrollWidth + parseInt(leftPadding, 10) + rowRightPadding\n )\n }\n })\n\n const maxSizeRowContent = Math.max(...rowContentSizes) + scrollbarWidth\n setContentMaxWidth(maxSizeRowContent)\n })\n\n const rowRenderer = rowRendererBase || defaultRowRenderer\n\n const itemData = React.useMemo(\n () => ({\n nodes,\n getIcon,\n getLabel,\n getType,\n isExpandable,\n isSelectable,\n isExpanded,\n isSelected,\n isLoading,\n highlight,\n isHighlighted,\n handleSelection,\n handleExpansion,\n rowRenderer,\n isFileLimitReached,\n selectionLimit,\n isTreeFocused,\n treeContainer: wrapperRef.current as HTMLDivElement,\n }),\n [\n getIcon,\n getLabel,\n getType,\n handleExpansion,\n handleSelection,\n highlight,\n isExpandable,\n isExpanded,\n isFileLimitReached,\n isHighlighted,\n isLoading,\n isSelectable,\n isSelected,\n isTreeFocused,\n nodes,\n rowRenderer,\n selectionLimit,\n ]\n )\n\n if (!rootNodes) {\n console.error('Tree must have a valid root node')\n return null\n }\n\n return (\n <StyledTree\n {...props}\n ref={mergeRefs(wrapperRef, setResizeObserverTarget)}\n role=\"tree\"\n aria-multiselectable={multiple}\n aria-activedescendant={\n highlightedNode ? getTreeItemId(highlightedNode.id) : undefined\n }\n tabIndex={0}\n onFocus={() => setIsTreeFocused(true)}\n onBlur={() => setIsTreeFocused(false)}\n onKeyDown={handleAccessibility}\n >\n <FixedSizeList\n className=\"size-list\"\n ref={listRef}\n height={\n visibleHeight ||\n Math.min(nodes.length * rowHeight, rowHeight * maxVisibleNodes)\n }\n innerRef={listInnerRef}\n outerRef={listOuterRefRef}\n itemCount={nodes.length}\n itemSize={rowHeight}\n innerElementType={innerElementType ?? TreeInnerElement}\n outerElementType={outerElementType ?? TreeOuterElement}\n itemData={itemData}\n width={Math.max(contentMaxWidth, containerSize.width)}\n >\n {TreeNode}\n </FixedSizeList>\n </StyledTree>\n )\n }\n)\n\nconst TreeNode: React.FC<TreeNodeProps> = React.memo(\n ({\n data: { nodes, rowRenderer, highlight, isTreeFocused, ...props },\n index,\n style,\n }) => {\n const node = nodes[index]\n\n const isHighlighted = props.isHighlighted(node)\n const [isMouseOver, setMouseOver] = React.useState(false)\n\n const timer = useTimer({})\n const {\n isVisible: shouldShowTooltip,\n show: showTooltip,\n hide: hideTooltip,\n } = useVisibility({})\n\n React.useEffect(() => {\n if (isHighlighted && !shouldShowTooltip) {\n timer.setTimer(showTooltip, tooltipDelay)\n }\n\n return () => {\n if (isTreeFocused && !isHighlighted && shouldShowTooltip) {\n hideTooltip()\n }\n }\n })\n\n const onMouseEnter = () => {\n setMouseOver(true)\n if (!shouldShowTooltip) {\n timer.setTimer(showTooltip, tooltipDelay)\n }\n highlight(node)\n }\n\n const onMouseLeave = () => {\n setMouseOver(false)\n timer.cancel()\n hideTooltip()\n }\n\n const nodeIsExpandable = props.isExpandable(node)\n const nodeIsSelectable = props.isSelectable(node)\n const nodeIsExpanded = props.isExpanded(node)\n const nodeIsSelected = props.isSelected(node)\n\n return (\n <StyledTreeRowWrapper\n id={getTreeItemId(node.id)}\n role=\"treeitem\"\n aria-level={node.level + 1}\n aria-setsize={node.setSize}\n aria-posinset={node.posInSet}\n aria-expanded={nodeIsExpandable ? nodeIsExpanded : undefined}\n aria-selected={nodeIsSelectable ? nodeIsSelected : undefined}\n onMouseEnter={onMouseEnter}\n onMouseLeave={onMouseLeave}\n style={style}\n data-padding={getPadding(node.level)}\n >\n {rowRenderer({\n node,\n shouldShowTooltip,\n isMouseOver,\n ...props,\n })}\n </StyledTreeRowWrapper>\n )\n },\n areEqual\n)\n\nconst TreeRow: React.FC<TreeRowProps> = ({\n node,\n getIcon,\n getLabel,\n handleExpansion,\n handleSelection,\n selectionLimit,\n isFileLimitReached,\n shouldShowTooltip,\n isMouseOver,\n treeContainer,\n ...props\n}) => {\n const chevronButtonRef = React.useRef<HTMLButtonElement>(null)\n const isSelected = props.isSelected(node)\n const isSelectable = props.isSelectable(node)\n const isExpandable = props.isExpandable(node)\n const isExpanded = props.isExpanded(node)\n const isLoading = props.isLoading(node)\n const isHighlighted = props.isHighlighted(node)\n const nodeType = props.getType(node)\n const rowLabel = getLabel(node)\n\n const onChevronClick = React.useCallback(\n (event: React.MouseEvent) => {\n event.stopPropagation()\n handleExpansion(node)\n },\n [handleExpansion, node]\n )\n\n const onClick = React.useCallback(\n (event: React.MouseEvent) => {\n // Chevron button handles its own event\n if (chevronButtonRef.current?.contains(event.target as globalThis.Node)) {\n return\n }\n\n if (isSelectable) {\n handleSelection(node)\n } else if (isExpandable) {\n handleExpansion(node)\n }\n },\n [handleExpansion, handleSelection, isExpandable, isSelectable, node]\n )\n\n const onMouseDown = React.useCallback(\n (e: React.MouseEvent) => {\n e.preventDefault()\n treeContainer.focus()\n },\n [treeContainer]\n )\n\n return (\n <TreeRowContainer\n level={node.level}\n onClick={onClick}\n onMouseDown={onMouseDown}\n isSelected={isSelected}\n isSelectable={isSelectable}\n isExpandable={isExpandable}\n isHighlighted={isHighlighted}\n isFileLimitReached={isFileLimitReached}\n data-qa=\"core-tree-row-container\"\n >\n {\n // WARNING!\n // Be aware that this data attribute is used for calculations, changing this data attribute will break its operability.\n }\n <StyledTreeRowContent data-row-content>\n <TreeRowChevron\n ref={chevronButtonRef}\n isExpandable={isExpandable}\n isExpanded={isExpanded}\n onClick={onChevronClick}\n />\n <TreeRowIcon\n isLoading={isLoading}\n isSelected={isSelected}\n icon={getIcon(node)}\n />\n <TreeRowTooltip\n isSelected={isSelected}\n isSelectable={isSelectable}\n isHighlighted={isHighlighted}\n selectionLimit={selectionLimit}\n isFileLimitReached={isFileLimitReached}\n shouldShowTooltip={shouldShowTooltip}\n isMouseOver={isMouseOver}\n fileName={rowLabel}\n nodeType={nodeType}\n treeContainer={treeContainer}\n >\n <TreeRowName value={rowLabel} />\n </TreeRowTooltip>\n </StyledTreeRowContent>\n </TreeRowContainer>\n )\n}\n\nconst IconContainer: React.FC<IconContainerProps> = ({\n children,\n isSelected,\n ...props\n}) => (\n <StyledIconContainer $isSelected={isSelected} {...props}>\n {children}\n </StyledIconContainer>\n)\n\nconst StyledChevronIcon = styled(ChevronRight)<{ $isExpanded: boolean }>`\n transform: rotate(${({ $isExpanded }) => ($isExpanded ? 90 : 0)}deg);\n transition: transform 150ms ease-out;\n`\n\nconst TreeRowChevron = React.forwardRef<\n HTMLButtonElement,\n {\n isExpanded: boolean\n isExpandable: boolean\n onClick: (event: React.MouseEvent) => void\n }\n>(({ isExpanded, isExpandable, onClick }, ref) => {\n const I18n = useI18nContext()\n\n if (!isExpandable) {\n return <StyledChevronPlaceholder />\n }\n\n return (\n <Button\n ref={ref}\n variant=\"tertiary\"\n size=\"sm\"\n icon={<StyledChevronIcon $isExpanded={isExpanded} />}\n onClick={onClick}\n tabIndex={-1}\n aria-label={I18n.t(\n isExpanded ? 'core.tree.collapse' : 'core.tree.expand'\n )}\n />\n )\n})\n\nconst TreeRowIcon: React.FC<{\n isSelected: boolean\n isLoading: boolean\n icon: React.ReactNode\n}> = ({ isSelected, isLoading, icon }) => (\n <IconContainer isSelected={isSelected} marginLeft=\"sm\" marginRight=\"sm\">\n {isLoading ? <Spinner size=\"sm\" /> : icon}\n </IconContainer>\n)\n\nconst TreeRowName: React.FC<{ value: string }> = ({ value }) => (\n <StyledFilenameCaption>{value}</StyledFilenameCaption>\n)\n\nconst getSelectionLimitMessage = (selectionLimit: number) => ({\n key: 'selectionLimit',\n options: {\n count: selectionLimit,\n },\n})\n\nconst getUnsupportedFileTypeMessage = (fileName: string) => {\n const { extension, isFilename } = parseFilename(fileName)\n const key = isFilename ? 'specific' : 'unspecific'\n\n return {\n key: `unsupportedFileType.${key}`,\n options: {\n fileType: `.${extension.toUpperCase()}`,\n },\n }\n}\n\nconst TreeRowTooltip: FunctionComponent<\n PropsWithChildren<TreeRowTooltipProps>\n> = ({\n children,\n isHighlighted: isFocused,\n isFileLimitReached,\n isSelectable,\n isSelected,\n nodeType,\n selectionLimit,\n shouldShowTooltip,\n isMouseOver,\n fileName,\n treeContainer,\n}) => {\n const I18n = useI18nContext()\n const rowRef = React.useRef<HTMLDivElement>(null)\n const isUserInteracting = isFocused || isMouseOver\n const isTooltipVisible = isUserInteracting && shouldShowTooltip && !isSelected\n const isFile = nodeType === 'leaf'\n const [isCropped, setCropped] = React.useState(false)\n\n const registerRowEl = useIntersectionObserver(\n (entries) => {\n entries.forEach((entry) => {\n if (\n entry.rootBounds &&\n entry.rootBounds.left - entry.boundingClientRect.left >= 0\n ) {\n setCropped(true)\n return\n }\n setCropped(false)\n })\n },\n {\n root: treeContainer,\n rootMargin: '0px',\n threshold: intersectionThresholds,\n }\n )\n\n const selectionLimitMessage = getSelectionLimitMessage(selectionLimit)\n const unsupportedFileTypeMessage = getUnsupportedFileTypeMessage(fileName)\n\n const message = isSelectable\n ? isFileLimitReached && selectionLimitMessage\n : isFile && unsupportedFileTypeMessage\n\n const trigger = isTooltipVisible && !isCropped && message ? 'always' : 'none'\n\n return (\n <Tooltip\n trigger={trigger}\n overlay={\n message ? I18n.t(`core.tree.${message.key}`, message.options) : null\n }\n placement=\"top-left\"\n >\n <div ref={mergeRefs(rowRef, registerRowEl)}>{children}</div>\n </Tooltip>\n )\n}\n\nconst TreeRowContainer: React.FC<TreeRowContainerProps> = ({\n children,\n isHighlighted,\n isSelected,\n isSelectable,\n isExpandable,\n isFileLimitReached,\n level,\n ...props\n}) => {\n return (\n <StyledTreeRowContainer\n $isSelectable={\n (isSelectable &&\n ((isFileLimitReached && isSelected) || !isFileLimitReached)) ||\n isExpandable\n }\n $isHighlighted={isHighlighted}\n $isSelected={isSelected}\n style={{ paddingLeft: getPadding(level) }}\n {...props}\n >\n {children}\n </StyledTreeRowContainer>\n )\n}\n"],"mappings":"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"}
|
|
@@ -18,14 +18,19 @@ export declare const StyledTreeRowContainer: import("styled-components/dist/type
|
|
|
18
18
|
}>> & string & Omit<import("react").ForwardRefExoticComponent<import("react").HTMLAttributes<HTMLSpanElement> & import("..").TypographyProps & import("react").RefAttributes<HTMLSpanElement>>, keyof import("react").Component<any, {}, any>>;
|
|
19
19
|
export declare const StyledTreeRowContent: import("styled-components/dist/types").IStyledComponentBase<"web", import("styled-components").FastOmit<import("react").DetailedHTMLProps<import("react").HTMLAttributes<HTMLDivElement>, HTMLDivElement>, never>> & string;
|
|
20
20
|
export declare const StyledTreeRowWrapper: import("styled-components/dist/types").IStyledComponentBase<"web", import("styled-components").FastOmit<import("react").DetailedHTMLProps<import("react").HTMLAttributes<HTMLDivElement>, HTMLDivElement>, never>> & string;
|
|
21
|
+
/** @deprecated Use StyledChevronPlaceholder instead */
|
|
21
22
|
export declare const StyledChevronContainer: import("styled-components/dist/types").IStyledComponentBase<"web", import("styled-components").FastOmit<import("styled-components").FastOmit<Omit<import("react").HTMLAttributes<HTMLDivElement> & import("..").BoxProps & import("react").RefAttributes<HTMLDivElement>, "ref"> & {
|
|
22
23
|
ref?: ((instance: HTMLDivElement | null) => void) | import("react").RefObject<HTMLDivElement> | null | undefined;
|
|
23
24
|
}, never>, never>> & string;
|
|
25
|
+
export declare const StyledChevronPlaceholder: import("styled-components/dist/types").IStyledComponentBase<"web", import("styled-components").FastOmit<import("styled-components").FastOmit<Omit<import("react").HTMLAttributes<HTMLDivElement> & import("..").BoxProps & import("react").RefAttributes<HTMLDivElement>, "ref"> & {
|
|
26
|
+
ref?: ((instance: HTMLDivElement | null) => void) | import("react").RefObject<HTMLDivElement> | null | undefined;
|
|
27
|
+
}, never>, never>> & string;
|
|
24
28
|
export declare const StyledIconContainer: import("styled-components/dist/types").IStyledComponentBase<"web", import("styled-components/dist/types").Substitute<import("styled-components").FastOmit<Omit<import("react").HTMLAttributes<HTMLDivElement> & import("..").BoxProps & import("react").RefAttributes<HTMLDivElement>, "ref"> & {
|
|
25
29
|
ref?: ((instance: HTMLDivElement | null) => void) | import("react").RefObject<HTMLDivElement> | null | undefined;
|
|
26
30
|
}, never>, {
|
|
27
31
|
$isSelected?: boolean | undefined;
|
|
28
32
|
}>> & string;
|
|
33
|
+
/** @deprecated TreeRowChevron now uses Button with inline styled icon */
|
|
29
34
|
export declare const StyledChevron: import("styled-components/dist/types").IStyledComponentBase<"web", import("styled-components/dist/types").Substitute<Omit<{
|
|
30
35
|
size?: import("@procore/core-icons/dist/Icon").IconSize | undefined;
|
|
31
36
|
} & import("react").SVGAttributes<SVGElement> & import("react").RefAttributes<SVGSVGElement>, "ref"> & {
|
package/dist/Tree/Tree.styles.js
CHANGED
|
@@ -5,11 +5,11 @@ import { Typography } from '../Typography/Typography';
|
|
|
5
5
|
import { colors } from '../_styles/colors';
|
|
6
6
|
export var StyledFilenameCaption = /*#__PURE__*/styled(Typography).withConfig({
|
|
7
7
|
displayName: "StyledFilenameCaption",
|
|
8
|
-
componentId: "core-
|
|
8
|
+
componentId: "core-12_36_0__sc-2d45b5-0"
|
|
9
9
|
})(["display:flex;width:100%;"]);
|
|
10
10
|
export var StyledTree = /*#__PURE__*/styled.div.withConfig({
|
|
11
11
|
displayName: "StyledTree",
|
|
12
|
-
componentId: "core-
|
|
12
|
+
componentId: "core-12_36_0__sc-2d45b5-1"
|
|
13
13
|
})(["width:100%;height:100%;min-height:36px;outline:none;overflow:auto;"]);
|
|
14
14
|
export var StyledTreeRowContainer = /*#__PURE__*/styled(Typography).withConfig({
|
|
15
15
|
shouldForwardProp: function shouldForwardProp(prop) {
|
|
@@ -17,7 +17,7 @@ export var StyledTreeRowContainer = /*#__PURE__*/styled(Typography).withConfig({
|
|
|
17
17
|
}
|
|
18
18
|
}).withConfig({
|
|
19
19
|
displayName: "StyledTreeRowContainer",
|
|
20
|
-
componentId: "core-
|
|
20
|
+
componentId: "core-12_36_0__sc-2d45b5-2"
|
|
21
21
|
})(["display:flex;align-items:center;height:36px;background:transparent;box-shadow:inset 4px 0px 0px transparent;cursor:default;outline:none;", " &:hover{background:", ";}", " ", ""], function (_ref) {
|
|
22
22
|
var isSelectable = _ref.isSelectable,
|
|
23
23
|
$isSelectable = _ref.$isSelectable;
|
|
@@ -35,30 +35,38 @@ export var StyledTreeRowContainer = /*#__PURE__*/styled(Typography).withConfig({
|
|
|
35
35
|
});
|
|
36
36
|
export var StyledTreeRowContent = /*#__PURE__*/styled.div.withConfig({
|
|
37
37
|
displayName: "StyledTreeRowContent",
|
|
38
|
-
componentId: "core-
|
|
38
|
+
componentId: "core-12_36_0__sc-2d45b5-3"
|
|
39
39
|
})(["display:flex;align-items:center;"]);
|
|
40
40
|
export var StyledTreeRowWrapper = /*#__PURE__*/styled.div.withConfig({
|
|
41
41
|
displayName: "StyledTreeRowWrapper",
|
|
42
|
-
componentId: "core-
|
|
42
|
+
componentId: "core-12_36_0__sc-2d45b5-4"
|
|
43
43
|
})(["outline:none;"]);
|
|
44
44
|
var StyledIconBase = /*#__PURE__*/styled(Box).withConfig({
|
|
45
45
|
displayName: "StyledIconBase",
|
|
46
|
-
componentId: "core-
|
|
46
|
+
componentId: "core-12_36_0__sc-2d45b5-5"
|
|
47
47
|
})(["display:flex;justify-content:center;align-items:center;width:24px;height:24px;min-width:24px;min-height:24px;"]);
|
|
48
|
+
|
|
49
|
+
/** @deprecated Use StyledChevronPlaceholder instead */
|
|
48
50
|
export var StyledChevronContainer = /*#__PURE__*/styled(StyledIconBase).withConfig({
|
|
49
51
|
displayName: "StyledChevronContainer",
|
|
50
|
-
componentId: "core-
|
|
52
|
+
componentId: "core-12_36_0__sc-2d45b5-6"
|
|
53
|
+
})([""]);
|
|
54
|
+
export var StyledChevronPlaceholder = /*#__PURE__*/styled(StyledIconBase).withConfig({
|
|
55
|
+
displayName: "StyledChevronPlaceholder",
|
|
56
|
+
componentId: "core-12_36_0__sc-2d45b5-7"
|
|
51
57
|
})([""]);
|
|
52
58
|
export var StyledIconContainer = /*#__PURE__*/styled(StyledIconBase).withConfig({
|
|
53
59
|
displayName: "StyledIconContainer",
|
|
54
|
-
componentId: "core-
|
|
60
|
+
componentId: "core-12_36_0__sc-2d45b5-8"
|
|
55
61
|
})(["color:", ";"], function (_ref4) {
|
|
56
62
|
var $isSelected = _ref4.$isSelected;
|
|
57
63
|
return $isSelected ? colors.blue45 : colors.gray40;
|
|
58
64
|
});
|
|
65
|
+
|
|
66
|
+
/** @deprecated TreeRowChevron now uses Button with inline styled icon */
|
|
59
67
|
export var StyledChevron = /*#__PURE__*/styled(ChevronRight).withConfig({
|
|
60
68
|
displayName: "StyledChevron",
|
|
61
|
-
componentId: "core-
|
|
69
|
+
componentId: "core-12_36_0__sc-2d45b5-9"
|
|
62
70
|
})(["transform:rotate(", "deg);transition:transform 150ms ease-out;"], function (_ref5) {
|
|
63
71
|
var $isExpanded = _ref5.$isExpanded;
|
|
64
72
|
return $isExpanded ? 90 : 0;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Tree.styles.js","names":["ChevronRight","styled","Box","Typography","colors","StyledFilenameCaption","withConfig","displayName","componentId","StyledTree","div","StyledTreeRowContainer","shouldForwardProp","prop","includes","_ref","isSelectable","$isSelectable","concat","StyledChevron","StyledIconContainer","gray70","gray98","_ref2","isHighlighted","$isHighlighted","_ref3","isSelected","$isSelected","blue96","blue50","blue40","blue94","blue45","StyledTreeRowContent","StyledTreeRowWrapper","StyledIconBase","StyledChevronContainer","_ref4","gray40","_ref5","$isExpanded"],"sources":["../../src/Tree/Tree.styles.ts"],"sourcesContent":["import { ChevronRight } from '@procore/core-icons'\nimport styled from 'styled-components'\nimport { Box } from '../Box/Box'\nimport { Typography } from '../Typography/Typography'\nimport { colors } from '../_styles/colors'\n\nexport const StyledFilenameCaption = styled(Typography)`\n display: flex;\n width: 100%;\n`\n\nexport const StyledTree = styled.div`\n width: 100%;\n height: 100%;\n min-height: 36px;\n outline: none;\n overflow: auto;\n`\n\nexport const StyledTreeRowContainer = styled(Typography).withConfig({\n shouldForwardProp: (prop) =>\n !['isHighlighted', 'isSelectable', 'isSelected'].includes(prop),\n})<{\n /** @deprecated Use $isHighlighted instead */\n isHighlighted?: boolean\n $isHighlighted?: boolean\n /** @deprecated Use $isSelectable instead */\n isSelectable?: boolean\n $isSelectable?: boolean\n /** @deprecated Use $isSelected instead */\n isSelected?: boolean\n $isSelected?: boolean\n}>`\n display: flex;\n align-items: center;\n height: 36px;\n background: transparent;\n box-shadow: inset 4px 0px 0px transparent;\n cursor: default;\n outline: none;\n\n ${({ isSelectable, $isSelectable }) =>\n isSelectable || $isSelectable\n ? 'cursor: pointer;'\n : `\n ${StyledFilenameCaption},\n ${StyledChevron},\n ${StyledIconContainer} {\n color: ${colors.gray70};\n }\n `}\n\n &:hover {\n background: ${colors.gray98};\n }\n\n ${({ isHighlighted, $isHighlighted }) =>\n isHighlighted || $isHighlighted ? `background: ${colors.gray98};` : ''}\n\n ${({ isSelected, $isSelected, isHighlighted, $isHighlighted }) =>\n (isSelected || $isSelected) &&\n `\n background: ${colors.blue96};\n box-shadow: inset 4px 0px 0px ${colors.blue50};\n\n ${StyledFilenameCaption} {\n color: ${colors.blue40};\n font-weight: 600;\n }\n\n &:hover {\n background-color: ${colors.blue94};\n ${StyledFilenameCaption} {\n color: ${colors.blue45};\n }\n }\n\n ${\n (isHighlighted || $isHighlighted) &&\n `\n background-color: ${colors.blue94};\n ${StyledFilenameCaption} {\n color: ${colors.blue45};\n }\n `\n }\n `}\n`\n\nexport const StyledTreeRowContent = styled.div`\n display: flex;\n align-items: center;\n`\n\nexport const StyledTreeRowWrapper = styled.div`\n outline: none;\n`\n\nconst StyledIconBase = styled(Box)`\n display: flex;\n justify-content: center;\n align-items: center;\n\n width: 24px;\n height: 24px;\n min-width: 24px;\n min-height: 24px;\n`\n\nexport const StyledChevronContainer = styled(StyledIconBase)``\n\nexport const StyledIconContainer = styled(StyledIconBase)<{\n $isSelected?: boolean\n}>`\n color: ${({ $isSelected }) => ($isSelected ? colors.blue45 : colors.gray40)};\n`\n\nexport const StyledChevron = styled(ChevronRight)<{\n $isExpanded?: boolean\n}>`\n transform: rotate(${({ $isExpanded }) => ($isExpanded ? 90 : 0)}deg);\n transition: transform 150ms ease-out;\n`\n"],"mappings":"AAAA,SAASA,YAAY,QAAQ,qBAAqB;AAClD,OAAOC,MAAM,MAAM,mBAAmB;AACtC,SAASC,GAAG,QAAQ,YAAY;AAChC,SAASC,UAAU,QAAQ,0BAA0B;AACrD,SAASC,MAAM,QAAQ,mBAAmB;AAE1C,OAAO,IAAMC,qBAAqB,gBAAGJ,MAAM,CAACE,UAAU,CAAC,CAAAG,UAAA;EAAAC,WAAA;EAAAC,WAAA;AAAA,gCAGtD;AAED,OAAO,IAAMC,UAAU,gBAAGR,MAAM,CAACS,GAAG,CAAAJ,UAAA;EAAAC,WAAA;EAAAC,WAAA;AAAA,0EAMnC;AAED,OAAO,IAAMG,sBAAsB,gBAAGV,MAAM,CAACE,UAAU,CAAC,CAACG,UAAU,CAAC;EAClEM,iBAAiB,EAAE,SAAnBA,iBAAiBA,CAAGC,IAAI;IAAA,OACtB,CAAC,CAAC,eAAe,EAAE,cAAc,EAAE,YAAY,CAAC,CAACC,QAAQ,CAACD,IAAI,CAAC;EAAA;AACnE,CAAC,CAAC,CAAAP,UAAA;EAAAC,WAAA;EAAAC,WAAA;AAAA,wLAmBE,UAAAO,IAAA;EAAA,IAAGC,YAAY,GAAAD,IAAA,CAAZC,YAAY;IAAEC,aAAa,GAAAF,IAAA,CAAbE,aAAa;EAAA,OAC9BD,YAAY,IAAIC,aAAa,GACzB,kBAAkB,cAAAC,MAAA,CAElBb,qBAAqB,eAAAa,MAAA,CACrBC,aAAa,eAAAD,MAAA,CACbE,mBAAmB,yBAAAF,MAAA,CACVd,MAAM,CAACiB,MAAM,mBAE3B;AAAA,GAGejB,MAAM,CAACkB,MAAM,EAG3B,UAAAC,KAAA;EAAA,IAAGC,aAAa,GAAAD,KAAA,CAAbC,aAAa;IAAEC,cAAc,GAAAF,KAAA,CAAdE,cAAc;EAAA,OAChCD,aAAa,IAAIC,cAAc,kBAAAP,MAAA,CAAkBd,MAAM,CAACkB,MAAM,SAAM,EAAE;AAAA,GAEtE,UAAAI,KAAA;EAAA,IAAGC,UAAU,GAAAD,KAAA,CAAVC,UAAU;IAAEC,WAAW,GAAAF,KAAA,CAAXE,WAAW;IAAEJ,aAAa,GAAAE,KAAA,CAAbF,aAAa;IAAEC,cAAc,GAAAC,KAAA,CAAdD,cAAc;EAAA,OACzD,CAACE,UAAU,IAAIC,WAAW,4BAAAV,MAAA,CAEVd,MAAM,CAACyB,MAAM,6CAAAX,MAAA,CACKd,MAAM,CAAC0B,MAAM,iBAAAZ,MAAA,CAE3Cb,qBAAqB,yBAAAa,MAAA,CACZd,MAAM,CAAC2B,MAAM,0FAAAb,MAAA,CAKFd,MAAM,CAAC4B,MAAM,iBAAAd,MAAA,CAC/Bb,qBAAqB,2BAAAa,MAAA,CACZd,MAAM,CAAC6B,MAAM,qCAAAf,MAAA,CAKxB,CAACM,aAAa,IAAIC,cAAc,sCAAAP,MAAA,CAEVd,MAAM,CAAC4B,MAAM,mBAAAd,MAAA,CAC/Bb,qBAAqB,6BAAAa,MAAA,CACZd,MAAM,CAAC6B,MAAM,6BAEzB,WAEJ;AAAA,EACJ;AAED,OAAO,IAAMC,oBAAoB,gBAAGjC,MAAM,CAACS,GAAG,CAAAJ,UAAA;EAAAC,WAAA;EAAAC,WAAA;AAAA,wCAG7C;AAED,OAAO,IAAM2B,oBAAoB,gBAAGlC,MAAM,CAACS,GAAG,CAAAJ,UAAA;EAAAC,WAAA;EAAAC,WAAA;AAAA,qBAE7C;AAED,IAAM4B,cAAc,gBAAGnC,MAAM,CAACC,GAAG,CAAC,CAAAI,UAAA;EAAAC,WAAA;EAAAC,WAAA;AAAA,qHASjC;
|
|
1
|
+
{"version":3,"file":"Tree.styles.js","names":["ChevronRight","styled","Box","Typography","colors","StyledFilenameCaption","withConfig","displayName","componentId","StyledTree","div","StyledTreeRowContainer","shouldForwardProp","prop","includes","_ref","isSelectable","$isSelectable","concat","StyledChevron","StyledIconContainer","gray70","gray98","_ref2","isHighlighted","$isHighlighted","_ref3","isSelected","$isSelected","blue96","blue50","blue40","blue94","blue45","StyledTreeRowContent","StyledTreeRowWrapper","StyledIconBase","StyledChevronContainer","StyledChevronPlaceholder","_ref4","gray40","_ref5","$isExpanded"],"sources":["../../src/Tree/Tree.styles.ts"],"sourcesContent":["import { ChevronRight } from '@procore/core-icons'\nimport styled from 'styled-components'\nimport { Box } from '../Box/Box'\nimport { Typography } from '../Typography/Typography'\nimport { colors } from '../_styles/colors'\n\nexport const StyledFilenameCaption = styled(Typography)`\n display: flex;\n width: 100%;\n`\n\nexport const StyledTree = styled.div`\n width: 100%;\n height: 100%;\n min-height: 36px;\n outline: none;\n overflow: auto;\n`\n\nexport const StyledTreeRowContainer = styled(Typography).withConfig({\n shouldForwardProp: (prop) =>\n !['isHighlighted', 'isSelectable', 'isSelected'].includes(prop),\n})<{\n /** @deprecated Use $isHighlighted instead */\n isHighlighted?: boolean\n $isHighlighted?: boolean\n /** @deprecated Use $isSelectable instead */\n isSelectable?: boolean\n $isSelectable?: boolean\n /** @deprecated Use $isSelected instead */\n isSelected?: boolean\n $isSelected?: boolean\n}>`\n display: flex;\n align-items: center;\n height: 36px;\n background: transparent;\n box-shadow: inset 4px 0px 0px transparent;\n cursor: default;\n outline: none;\n\n ${({ isSelectable, $isSelectable }) =>\n isSelectable || $isSelectable\n ? 'cursor: pointer;'\n : `\n ${StyledFilenameCaption},\n ${StyledChevron},\n ${StyledIconContainer} {\n color: ${colors.gray70};\n }\n `}\n\n &:hover {\n background: ${colors.gray98};\n }\n\n ${({ isHighlighted, $isHighlighted }) =>\n isHighlighted || $isHighlighted ? `background: ${colors.gray98};` : ''}\n\n ${({ isSelected, $isSelected, isHighlighted, $isHighlighted }) =>\n (isSelected || $isSelected) &&\n `\n background: ${colors.blue96};\n box-shadow: inset 4px 0px 0px ${colors.blue50};\n\n ${StyledFilenameCaption} {\n color: ${colors.blue40};\n font-weight: 600;\n }\n\n &:hover {\n background-color: ${colors.blue94};\n ${StyledFilenameCaption} {\n color: ${colors.blue45};\n }\n }\n\n ${\n (isHighlighted || $isHighlighted) &&\n `\n background-color: ${colors.blue94};\n ${StyledFilenameCaption} {\n color: ${colors.blue45};\n }\n `\n }\n `}\n`\n\nexport const StyledTreeRowContent = styled.div`\n display: flex;\n align-items: center;\n`\n\nexport const StyledTreeRowWrapper = styled.div`\n outline: none;\n`\n\nconst StyledIconBase = styled(Box)`\n display: flex;\n justify-content: center;\n align-items: center;\n\n width: 24px;\n height: 24px;\n min-width: 24px;\n min-height: 24px;\n`\n\n/** @deprecated Use StyledChevronPlaceholder instead */\nexport const StyledChevronContainer = styled(StyledIconBase)``\n\nexport const StyledChevronPlaceholder = styled(StyledIconBase)``\n\nexport const StyledIconContainer = styled(StyledIconBase)<{\n $isSelected?: boolean\n}>`\n color: ${({ $isSelected }) => ($isSelected ? colors.blue45 : colors.gray40)};\n`\n\n/** @deprecated TreeRowChevron now uses Button with inline styled icon */\nexport const StyledChevron = styled(ChevronRight)<{\n $isExpanded?: boolean\n}>`\n transform: rotate(${({ $isExpanded }) => ($isExpanded ? 90 : 0)}deg);\n transition: transform 150ms ease-out;\n`\n"],"mappings":"AAAA,SAASA,YAAY,QAAQ,qBAAqB;AAClD,OAAOC,MAAM,MAAM,mBAAmB;AACtC,SAASC,GAAG,QAAQ,YAAY;AAChC,SAASC,UAAU,QAAQ,0BAA0B;AACrD,SAASC,MAAM,QAAQ,mBAAmB;AAE1C,OAAO,IAAMC,qBAAqB,gBAAGJ,MAAM,CAACE,UAAU,CAAC,CAAAG,UAAA;EAAAC,WAAA;EAAAC,WAAA;AAAA,gCAGtD;AAED,OAAO,IAAMC,UAAU,gBAAGR,MAAM,CAACS,GAAG,CAAAJ,UAAA;EAAAC,WAAA;EAAAC,WAAA;AAAA,0EAMnC;AAED,OAAO,IAAMG,sBAAsB,gBAAGV,MAAM,CAACE,UAAU,CAAC,CAACG,UAAU,CAAC;EAClEM,iBAAiB,EAAE,SAAnBA,iBAAiBA,CAAGC,IAAI;IAAA,OACtB,CAAC,CAAC,eAAe,EAAE,cAAc,EAAE,YAAY,CAAC,CAACC,QAAQ,CAACD,IAAI,CAAC;EAAA;AACnE,CAAC,CAAC,CAAAP,UAAA;EAAAC,WAAA;EAAAC,WAAA;AAAA,wLAmBE,UAAAO,IAAA;EAAA,IAAGC,YAAY,GAAAD,IAAA,CAAZC,YAAY;IAAEC,aAAa,GAAAF,IAAA,CAAbE,aAAa;EAAA,OAC9BD,YAAY,IAAIC,aAAa,GACzB,kBAAkB,cAAAC,MAAA,CAElBb,qBAAqB,eAAAa,MAAA,CACrBC,aAAa,eAAAD,MAAA,CACbE,mBAAmB,yBAAAF,MAAA,CACVd,MAAM,CAACiB,MAAM,mBAE3B;AAAA,GAGejB,MAAM,CAACkB,MAAM,EAG3B,UAAAC,KAAA;EAAA,IAAGC,aAAa,GAAAD,KAAA,CAAbC,aAAa;IAAEC,cAAc,GAAAF,KAAA,CAAdE,cAAc;EAAA,OAChCD,aAAa,IAAIC,cAAc,kBAAAP,MAAA,CAAkBd,MAAM,CAACkB,MAAM,SAAM,EAAE;AAAA,GAEtE,UAAAI,KAAA;EAAA,IAAGC,UAAU,GAAAD,KAAA,CAAVC,UAAU;IAAEC,WAAW,GAAAF,KAAA,CAAXE,WAAW;IAAEJ,aAAa,GAAAE,KAAA,CAAbF,aAAa;IAAEC,cAAc,GAAAC,KAAA,CAAdD,cAAc;EAAA,OACzD,CAACE,UAAU,IAAIC,WAAW,4BAAAV,MAAA,CAEVd,MAAM,CAACyB,MAAM,6CAAAX,MAAA,CACKd,MAAM,CAAC0B,MAAM,iBAAAZ,MAAA,CAE3Cb,qBAAqB,yBAAAa,MAAA,CACZd,MAAM,CAAC2B,MAAM,0FAAAb,MAAA,CAKFd,MAAM,CAAC4B,MAAM,iBAAAd,MAAA,CAC/Bb,qBAAqB,2BAAAa,MAAA,CACZd,MAAM,CAAC6B,MAAM,qCAAAf,MAAA,CAKxB,CAACM,aAAa,IAAIC,cAAc,sCAAAP,MAAA,CAEVd,MAAM,CAAC4B,MAAM,mBAAAd,MAAA,CAC/Bb,qBAAqB,6BAAAa,MAAA,CACZd,MAAM,CAAC6B,MAAM,6BAEzB,WAEJ;AAAA,EACJ;AAED,OAAO,IAAMC,oBAAoB,gBAAGjC,MAAM,CAACS,GAAG,CAAAJ,UAAA;EAAAC,WAAA;EAAAC,WAAA;AAAA,wCAG7C;AAED,OAAO,IAAM2B,oBAAoB,gBAAGlC,MAAM,CAACS,GAAG,CAAAJ,UAAA;EAAAC,WAAA;EAAAC,WAAA;AAAA,qBAE7C;AAED,IAAM4B,cAAc,gBAAGnC,MAAM,CAACC,GAAG,CAAC,CAAAI,UAAA;EAAAC,WAAA;EAAAC,WAAA;AAAA,qHASjC;;AAED;AACA,OAAO,IAAM6B,sBAAsB,gBAAGpC,MAAM,CAACmC,cAAc,CAAC,CAAA9B,UAAA;EAAAC,WAAA;EAAAC,WAAA;AAAA,QAAE;AAE9D,OAAO,IAAM8B,wBAAwB,gBAAGrC,MAAM,CAACmC,cAAc,CAAC,CAAA9B,UAAA;EAAAC,WAAA;EAAAC,WAAA;AAAA,QAAE;AAEhE,OAAO,IAAMY,mBAAmB,gBAAGnB,MAAM,CAACmC,cAAc,CAAC,CAAA9B,UAAA;EAAAC,WAAA;EAAAC,WAAA;AAAA,oBAG9C,UAAA+B,KAAA;EAAA,IAAGX,WAAW,GAAAW,KAAA,CAAXX,WAAW;EAAA,OAAQA,WAAW,GAAGxB,MAAM,CAAC6B,MAAM,GAAG7B,MAAM,CAACoC,MAAM;AAAA,CAAC,CAC5E;;AAED;AACA,OAAO,IAAMrB,aAAa,gBAAGlB,MAAM,CAACD,YAAY,CAAC,CAAAM,UAAA;EAAAC,WAAA;EAAAC,WAAA;AAAA,uEAG3B,UAAAiC,KAAA;EAAA,IAAGC,WAAW,GAAAD,KAAA,CAAXC,WAAW;EAAA,OAAQA,WAAW,GAAG,EAAE,GAAG,CAAC;AAAA,CAAC,CAEhE"}
|
|
@@ -4,6 +4,16 @@ import type { BoxProps } from '../Box/Box.types';
|
|
|
4
4
|
import type { OverlayProps } from '../Overlay/Overlay';
|
|
5
5
|
import type { UNSAFE_treeRootNodeId } from './Tree';
|
|
6
6
|
declare type NodeType = 'branch' | 'leaf';
|
|
7
|
+
export declare type TreeAriaProps = {
|
|
8
|
+
/**
|
|
9
|
+
* @since 12.35.0
|
|
10
|
+
*/
|
|
11
|
+
'aria-label'?: string;
|
|
12
|
+
/**
|
|
13
|
+
* @since 12.35.0
|
|
14
|
+
*/
|
|
15
|
+
'aria-labelledby'?: string;
|
|
16
|
+
};
|
|
7
17
|
export declare type TreeNodeId = number | string | null | undefined | typeof UNSAFE_treeRootNodeId;
|
|
8
18
|
export interface Node {
|
|
9
19
|
/**
|
|
@@ -30,6 +40,16 @@ export interface LevelWise {
|
|
|
30
40
|
* @since 10.19.0
|
|
31
41
|
*/
|
|
32
42
|
level: number;
|
|
43
|
+
/**
|
|
44
|
+
* Total number of siblings at the same level (for aria-setsize)
|
|
45
|
+
* @since 12.35.0
|
|
46
|
+
*/
|
|
47
|
+
setSize: number;
|
|
48
|
+
/**
|
|
49
|
+
* Position among siblings, 1-indexed (for aria-posinset)
|
|
50
|
+
* @since 12.35.0
|
|
51
|
+
*/
|
|
52
|
+
posInSet: number;
|
|
33
53
|
}
|
|
34
54
|
export interface UseTreeProps<T extends Node = Node> {
|
|
35
55
|
rootNodes: T[];
|
|
@@ -217,7 +237,7 @@ export interface TreeRowProps<T extends Node = Node> extends Omit<TreeNodeAPI, '
|
|
|
217
237
|
*/
|
|
218
238
|
treeContainer: HTMLDivElement;
|
|
219
239
|
}
|
|
220
|
-
export interface TreeProps<T extends Node = Node, P extends CustomDataType<T> = Array<T>> extends Omit<React.HTMLAttributes<HTMLDivElement>, 'onSelect'>, Partial<Pick<FixedSizeListProps, 'innerElementType' | 'outerElementType'
|
|
240
|
+
export interface TreeProps<T extends Node = Node, P extends CustomDataType<T> = Array<T>> extends Omit<React.HTMLAttributes<HTMLDivElement>, 'onSelect'>, Partial<Pick<FixedSizeListProps, 'innerElementType' | 'outerElementType'>>, TreeAriaProps {
|
|
221
241
|
/**
|
|
222
242
|
* @since 10.19.0
|
|
223
243
|
*/
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Tree.types.js","names":[],"sources":["../../src/Tree/Tree.types.ts"],"sourcesContent":["import type React from 'react'\nimport type { FixedSizeListProps, ListChildComponentProps } from 'react-window'\nimport type { BoxProps } from '../Box/Box.types'\nimport type { OverlayProps } from '../Overlay/Overlay'\nimport type { UNSAFE_treeRootNodeId } from './Tree'\n\ntype NodeType = 'branch' | 'leaf'\n\nexport type TreeNodeId =\n | number\n | string\n | null\n | undefined\n | typeof UNSAFE_treeRootNodeId\n\nexport interface Node {\n /**\n * @since 10.19.0\n */\n id: TreeNodeId\n}\nexport interface TreeDefaultNode extends Node {\n /**\n * @since 10.19.0\n */\n name: string\n /**\n * @since 10.19.0\n */\n parentId: TreeNodeId\n /**\n * @since 10.19.0\n */\n type: NodeType\n}\n\nexport interface LevelWise {\n /**\n * @since 10.19.0\n */\n level: number\n}\n\nexport interface UseTreeProps<T extends Node = Node> {\n rootNodes: T[]\n /**\n * @since 10.19.0\n */\n expanded: T['id'][]\n /**\n * @since 10.19.0\n */\n selected: T['id'][]\n /**\n * @since 10.19.0\n */\n selectionLimit: number\n /**\n * @since 10.19.0\n */\n getChildren(node: T): T[]\n /**\n * @since 10.19.0\n */\n getParentId(node: T): TreeNodeId\n /**\n * @since 10.19.0\n */\n autoExpandParent: boolean\n /**\n * @since 10.19.0\n */\n multiple: boolean\n /**\n * @since 10.19.0\n */\n onSelect(nodes: T[]): void\n /**\n * @since 10.19.0\n */\n onCollapse(node: T): void\n /**\n * @since 10.19.0\n */\n onExpand(node: T): Promise<any>\n}\n\nexport interface TreeNodeAPI<T extends Node = Node> {\n /**\n * @since 10.19.0\n */\n nodes: (T & LevelWise)[]\n /**\n * @since 10.19.0\n */\n getIcon(props: T): React.ReactNode\n /**\n * @since 10.19.0\n */\n getLabel(props: T): string\n /**\n * @since 10.19.0\n */\n getType(node: T): NodeType\n /**\n * @since 10.19.0\n */\n isExpandable(node: T): boolean\n /**\n * @since 10.19.0\n */\n isSelectable(node: T): boolean\n /**\n * @since 10.19.0\n */\n isSelected(node: T): boolean\n /**\n * @since 10.19.0\n */\n isLoading(node: T): boolean\n /**\n * @since 10.19.0\n */\n isExpanded(node: T): boolean\n /**\n * @since 10.19.0\n */\n highlight(node: T): void\n /**\n * @since 10.19.0\n */\n isHighlighted(node: T): boolean\n /**\n * @since 10.19.0\n */\n handleSelection(node: T): void\n /**\n * @since 10.19.0\n */\n handleExpansion(node: T): void\n /**\n * @since 10.19.0\n */\n rowRenderer(props: TreeRowProps<T>): React.ReactNode\n /**\n * @since 10.19.0\n */\n selectionLimit: number\n /**\n * @since 10.19.0\n */\n isFileLimitReached: boolean\n /**\n * @since 10.19.0\n */\n isTreeFocused: boolean\n /**\n * @since 10.19.0\n */\n treeContainer: HTMLDivElement\n}\n\nexport interface CustomDataType<T> {\n /**\n * @since 10.19.0\n */\n [key: string]: any\n}\n\nexport interface TreeRef<T extends Node = Node> {\n /**\n * @since 10.19.0\n */\n setSelected: (selected: T | T[]) => void\n /**\n * @since 10.19.0\n */\n setExpanded: (expanded: T | T[]) => void\n /**\n * @since 10.19.0\n */\n toggleSelected: (node: T) => void\n /**\n * @since 10.19.0\n */\n toggleExpanded: (node: T) => void\n /**\n * @since 10.19.0\n */\n rootEl: HTMLElement | null\n}\n\nexport interface TreeNodeProps extends ListChildComponentProps {\n /**\n * @since 10.19.0\n */\n data: TreeNodeAPI\n}\n\nexport interface TreeRowOverlayProps {\n /**\n * @since 10.19.0\n */\n overlayRef: OverlayProps['overlayRef']\n /**\n * @since 10.19.0\n */\n targetRef: OverlayProps['targetRef']\n /**\n * @since 10.19.0\n */\n message: { key: string; options?: object }\n}\n\nexport interface TreeRowProps<T extends Node = Node>\n extends Omit<\n TreeNodeAPI,\n 'rowRenderer' | 'nodes' | 'highlight' | 'isTreeFocused'\n > {\n /**\n * @since 10.19.0\n */\n node: T & LevelWise\n /**\n * @since 10.19.0\n */\n shouldShowTooltip: boolean\n /**\n * @since 10.19.0\n */\n isMouseOver: boolean\n /**\n * @since 10.19.0\n */\n treeContainer: HTMLDivElement\n}\n\nexport interface TreeProps<\n T extends Node = Node,\n P extends CustomDataType<T> = Array<T>\n> extends Omit<React.HTMLAttributes<HTMLDivElement>, 'onSelect'>,\n Partial<Pick<FixedSizeListProps, 'innerElementType' | 'outerElementType'
|
|
1
|
+
{"version":3,"file":"Tree.types.js","names":[],"sources":["../../src/Tree/Tree.types.ts"],"sourcesContent":["import type React from 'react'\nimport type { FixedSizeListProps, ListChildComponentProps } from 'react-window'\nimport type { BoxProps } from '../Box/Box.types'\nimport type { OverlayProps } from '../Overlay/Overlay'\nimport type { UNSAFE_treeRootNodeId } from './Tree'\n\ntype NodeType = 'branch' | 'leaf'\n\nexport type TreeAriaProps = {\n /**\n * @since 12.35.0\n */\n 'aria-label'?: string\n /**\n * @since 12.35.0\n */\n 'aria-labelledby'?: string\n}\n\nexport type TreeNodeId =\n | number\n | string\n | null\n | undefined\n | typeof UNSAFE_treeRootNodeId\n\nexport interface Node {\n /**\n * @since 10.19.0\n */\n id: TreeNodeId\n}\nexport interface TreeDefaultNode extends Node {\n /**\n * @since 10.19.0\n */\n name: string\n /**\n * @since 10.19.0\n */\n parentId: TreeNodeId\n /**\n * @since 10.19.0\n */\n type: NodeType\n}\n\nexport interface LevelWise {\n /**\n * @since 10.19.0\n */\n level: number\n /**\n * Total number of siblings at the same level (for aria-setsize)\n * @since 12.35.0\n */\n setSize: number\n /**\n * Position among siblings, 1-indexed (for aria-posinset)\n * @since 12.35.0\n */\n posInSet: number\n}\n\nexport interface UseTreeProps<T extends Node = Node> {\n rootNodes: T[]\n /**\n * @since 10.19.0\n */\n expanded: T['id'][]\n /**\n * @since 10.19.0\n */\n selected: T['id'][]\n /**\n * @since 10.19.0\n */\n selectionLimit: number\n /**\n * @since 10.19.0\n */\n getChildren(node: T): T[]\n /**\n * @since 10.19.0\n */\n getParentId(node: T): TreeNodeId\n /**\n * @since 10.19.0\n */\n autoExpandParent: boolean\n /**\n * @since 10.19.0\n */\n multiple: boolean\n /**\n * @since 10.19.0\n */\n onSelect(nodes: T[]): void\n /**\n * @since 10.19.0\n */\n onCollapse(node: T): void\n /**\n * @since 10.19.0\n */\n onExpand(node: T): Promise<any>\n}\n\nexport interface TreeNodeAPI<T extends Node = Node> {\n /**\n * @since 10.19.0\n */\n nodes: (T & LevelWise)[]\n /**\n * @since 10.19.0\n */\n getIcon(props: T): React.ReactNode\n /**\n * @since 10.19.0\n */\n getLabel(props: T): string\n /**\n * @since 10.19.0\n */\n getType(node: T): NodeType\n /**\n * @since 10.19.0\n */\n isExpandable(node: T): boolean\n /**\n * @since 10.19.0\n */\n isSelectable(node: T): boolean\n /**\n * @since 10.19.0\n */\n isSelected(node: T): boolean\n /**\n * @since 10.19.0\n */\n isLoading(node: T): boolean\n /**\n * @since 10.19.0\n */\n isExpanded(node: T): boolean\n /**\n * @since 10.19.0\n */\n highlight(node: T): void\n /**\n * @since 10.19.0\n */\n isHighlighted(node: T): boolean\n /**\n * @since 10.19.0\n */\n handleSelection(node: T): void\n /**\n * @since 10.19.0\n */\n handleExpansion(node: T): void\n /**\n * @since 10.19.0\n */\n rowRenderer(props: TreeRowProps<T>): React.ReactNode\n /**\n * @since 10.19.0\n */\n selectionLimit: number\n /**\n * @since 10.19.0\n */\n isFileLimitReached: boolean\n /**\n * @since 10.19.0\n */\n isTreeFocused: boolean\n /**\n * @since 10.19.0\n */\n treeContainer: HTMLDivElement\n}\n\nexport interface CustomDataType<T> {\n /**\n * @since 10.19.0\n */\n [key: string]: any\n}\n\nexport interface TreeRef<T extends Node = Node> {\n /**\n * @since 10.19.0\n */\n setSelected: (selected: T | T[]) => void\n /**\n * @since 10.19.0\n */\n setExpanded: (expanded: T | T[]) => void\n /**\n * @since 10.19.0\n */\n toggleSelected: (node: T) => void\n /**\n * @since 10.19.0\n */\n toggleExpanded: (node: T) => void\n /**\n * @since 10.19.0\n */\n rootEl: HTMLElement | null\n}\n\nexport interface TreeNodeProps extends ListChildComponentProps {\n /**\n * @since 10.19.0\n */\n data: TreeNodeAPI\n}\n\nexport interface TreeRowOverlayProps {\n /**\n * @since 10.19.0\n */\n overlayRef: OverlayProps['overlayRef']\n /**\n * @since 10.19.0\n */\n targetRef: OverlayProps['targetRef']\n /**\n * @since 10.19.0\n */\n message: { key: string; options?: object }\n}\n\nexport interface TreeRowProps<T extends Node = Node>\n extends Omit<\n TreeNodeAPI,\n 'rowRenderer' | 'nodes' | 'highlight' | 'isTreeFocused'\n > {\n /**\n * @since 10.19.0\n */\n node: T & LevelWise\n /**\n * @since 10.19.0\n */\n shouldShowTooltip: boolean\n /**\n * @since 10.19.0\n */\n isMouseOver: boolean\n /**\n * @since 10.19.0\n */\n treeContainer: HTMLDivElement\n}\n\nexport interface TreeProps<\n T extends Node = Node,\n P extends CustomDataType<T> = Array<T>\n> extends Omit<React.HTMLAttributes<HTMLDivElement>, 'onSelect'>,\n Partial<Pick<FixedSizeListProps, 'innerElementType' | 'outerElementType'>>,\n TreeAriaProps {\n /**\n * @since 10.19.0\n */\n options: P\n /**\n * Array of keys of the expanded nodes\n * @since 10.19.0\n */\n expanded?: T['id'][]\n\n /**\n * Array of keys of the selected nodes\n * @since 10.19.0\n */\n selected?: T['id'][]\n\n /**\n * Number of nodes that can be selected\n * @default Infinity\n * @since 10.19.0\n */\n selectionLimit?: number\n\n /**\n * Function should return a single root node or an array of root nodes\n * ```\n * (): Node | Node[]\n * ```\n * @since 10.19.0\n * @deprecated To be removed in future release. `getParentId` should be used to determine root nodes instead.\n * @deprecatedSince 11.9.0\n */\n getRoot?(data: P): T | T[]\n\n /**\n * Should return an array of children nodes.\n * ```\n * (node: Node): Node[]\n * ```\n * @since 10.19.0\n */\n getChildren?(node: T): T[]\n\n /**\n * This function will be executed on each node. Should return `Icon` component\n * ```\n * (node: Node): React.ReactNode\n * ```\n * @since 10.19.0\n */\n getIcon?(node: T): React.ReactNode\n\n /**\n * This function will be executed on each node. Should return `label` for row\n * ```\n * (node: Node): string\n * ```\n * @since 10.19.0\n */\n getLabel?(node: T): string\n\n /**\n * This function can be used to override the default parent detection mechanism.\n * If not defined, `Node['parentId']` is used to get a given node's parent.\n * ```\n * (node: Node): TreeNodeId\n * ```\n * @since 10.19.0\n * @deprecated Returning `UNSAFE_treeRootNodeId` to determine a root node is deprecated.\n * Return `null` or `undefined` intead.\n * @deprecatedSince 11.9.0\n */\n getParentId?(node: T): TreeNodeId\n\n /**\n * This function will be executed on each node. Should return `'branch'` or `'leaf'`\n * ```\n * (node: Node): NodeType\n * ```\n * @since 10.19.0\n */\n getType?(node: T): NodeType\n\n /**\n * Function of whether to enable tree node expansion/collapsing.\n * ```\n * (node: Node): boolean\n * ```\n * @since 10.19.0\n */\n isExpandable?(node: T): boolean\n\n /**\n * Function of whether to enable tree node selection.\n * ```\n * (node: Node): boolean\n * ```\n * @since 10.19.0\n */\n isSelectable?(node: T): boolean\n\n /**\n * Allows selection of multiple nodes\n * @default true\n * @since 10.19.0\n */\n multiple?: boolean\n\n /**\n * Number of visible nodes. Helps fix performance bottlenecks in large dataset\n * @default Infinity\n * @since 10.19.0\n */\n maxVisibleNodes?: number\n\n /**\n * Height of the list. Helps fix performance bottlenecks in large dataset.\n * @since 10.19.0\n */\n visibleHeight?: number\n\n /**\n * Whether to expand parent node when a child node is expanded or selected\n * @default true\n * @since 10.19.0\n */\n autoExpandParent?: boolean\n\n /**\n * Callback return currently selected array of nodes.\n * ```\n * (nodes: Node[]): void\n * ```\n * @since 10.19.0\n */\n onSelect?(nodes: T[]): void\n\n /**\n * Triggers when current node collapse\n * ```\n * (node: Node): void\n * ```\n * @since 10.19.0\n */\n onCollapse?(node: T): void\n\n /**\n * Triggers when current node expand\n * ```\n * (node: Node): Promise<void>\n * ```\n * @since 10.19.0\n */\n onExpand?(node: T): Promise<any>\n\n /**\n * Callback for rendering tree nodes\n * ```\n * (props: TreeRowProps): React.ReactNode\n * ```\n * @since 10.19.0\n */\n rowRenderer?(props: TreeRowProps<T>): React.ReactNode\n}\n\nexport interface IconContainerProps extends BoxProps {\n /**\n * @since 10.19.0\n */\n isSelected?: boolean\n}\n\nexport interface TreeRowTooltipProps {\n /**\n * @since 10.19.0\n */\n isHighlighted: boolean\n /**\n * @since 10.19.0\n */\n isSelected: boolean\n /**\n * @since 10.19.0\n */\n isSelectable: boolean\n /**\n * @since 10.19.0\n */\n selectionLimit: number\n /**\n * @since 10.19.0\n */\n isFileLimitReached: boolean\n /**\n * @since 10.19.0\n */\n shouldShowTooltip: boolean\n /**\n * @since 10.19.0\n */\n isMouseOver: boolean\n /**\n * @since 10.19.0\n */\n fileName: string\n /**\n * @since 10.19.0\n */\n nodeType: NodeType\n /**\n * @since 10.19.0\n */\n treeContainer: HTMLDivElement\n}\n\nexport interface TreeRowContainerProps\n extends Omit<React.HTMLAttributes<HTMLDivElement>, 'color'> {\n /**\n * @since 10.19.0\n */\n isHighlighted: boolean\n /**\n * @since 10.19.0\n */\n isSelected: boolean\n /**\n * @since 10.19.0\n */\n isSelectable: boolean\n /**\n * @since 10.19.0\n */\n isExpandable: boolean\n /**\n * @since 10.19.0\n */\n isFileLimitReached: boolean\n /**\n * @since 10.19.0\n */\n level: number\n}\n"],"mappings":""}
|
|
@@ -5,11 +5,11 @@ import { spacing } from '../_styles/spacing';
|
|
|
5
5
|
var inputHeight = 36;
|
|
6
6
|
export var StyledInput = /*#__PURE__*/styled.input.withConfig({
|
|
7
7
|
displayName: "StyledInput",
|
|
8
|
-
componentId: "core-
|
|
8
|
+
componentId: "core-12_36_0__sc-gpc39h-0"
|
|
9
9
|
})(["", " padding-right:", "px;"], getSearchInputStyles(), spacing.xxl);
|
|
10
10
|
export var StyledIcon = /*#__PURE__*/styled.div.withConfig({
|
|
11
11
|
displayName: "StyledIcon",
|
|
12
|
-
componentId: "core-
|
|
12
|
+
componentId: "core-12_36_0__sc-gpc39h-1"
|
|
13
13
|
})(["align-items:center;color:", ";display:flex;height:", "px;justify-content:center;pointer-events:", ";position:absolute;right:0;top:0;width:", "px;"], function (p) {
|
|
14
14
|
return p.disabled ? colors.gray70 : colors.gray45;
|
|
15
15
|
}, inputHeight, function (p) {
|
|
@@ -17,6 +17,6 @@ export var StyledIcon = /*#__PURE__*/styled.div.withConfig({
|
|
|
17
17
|
}, inputHeight);
|
|
18
18
|
export var StyledTypeahead = /*#__PURE__*/styled.div.withConfig({
|
|
19
19
|
displayName: "StyledTypeahead",
|
|
20
|
-
componentId: "core-
|
|
20
|
+
componentId: "core-12_36_0__sc-gpc39h-2"
|
|
21
21
|
})(["position:relative;width:100%;"]);
|
|
22
22
|
//# sourceMappingURL=Typeahead.styles.js.map
|
|
@@ -35,7 +35,7 @@ export var semiboldRules = function semiboldRules() {
|
|
|
35
35
|
};
|
|
36
36
|
export var StyledTypography = /*#__PURE__*/styled.span.withConfig({
|
|
37
37
|
displayName: "StyledTypography",
|
|
38
|
-
componentId: "core-
|
|
38
|
+
componentId: "core-12_36_0__sc-1c4583t-0"
|
|
39
39
|
})(["", " color:", ";font-style:", ";font-weight:", ";", " ", " em,i{font-style:italic;}"], function (_ref) {
|
|
40
40
|
var _ref$$intent = _ref.$intent,
|
|
41
41
|
$intent = _ref$$intent === void 0 ? 'body' : _ref$$intent;
|
|
@@ -5,11 +5,11 @@ import { colors } from '../_styles/colors';
|
|
|
5
5
|
import { getTypographyIntent } from './Typography.styles';
|
|
6
6
|
var StyledBodyCell = /*#__PURE__*/styled(Table.BodyCell).withConfig({
|
|
7
7
|
displayName: "StyledBodyCell",
|
|
8
|
-
componentId: "core-
|
|
8
|
+
componentId: "core-12_36_0__sc-p4v7d-0"
|
|
9
9
|
})([""]);
|
|
10
10
|
var StyledTextCell = /*#__PURE__*/styled(Table.TextCell).withConfig({
|
|
11
11
|
displayName: "StyledTextCell",
|
|
12
|
-
componentId: "core-
|
|
12
|
+
componentId: "core-12_36_0__sc-p4v7d-1"
|
|
13
13
|
})(["", " color:", ";"], getTypographyIntent('body'), colors.blue50);
|
|
14
14
|
function BodyCell() {
|
|
15
15
|
return /*#__PURE__*/React.createElement(StyledBodyCell, {
|