@react-spectrum/breadcrumbs 3.2.0 → 3.2.4
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/main.js +14 -7
- package/dist/main.js.map +1 -1
- package/dist/module.js +14 -7
- package/dist/module.js.map +1 -1
- package/dist/types.d.ts.map +1 -1
- package/package.json +18 -17
- package/src/Breadcrumbs.tsx +10 -4
package/dist/main.js
CHANGED
|
@@ -35,6 +35,7 @@ var {
|
|
|
35
35
|
var {
|
|
36
36
|
mergeProps,
|
|
37
37
|
useLayoutEffect,
|
|
38
|
+
useValueEffect,
|
|
38
39
|
useResizeObserver
|
|
39
40
|
} = require("@react-aria/utils");
|
|
40
41
|
|
|
@@ -46,8 +47,7 @@ var {
|
|
|
46
47
|
classNames,
|
|
47
48
|
getWrappedElement,
|
|
48
49
|
useDOMRef,
|
|
49
|
-
useStyleProps
|
|
50
|
-
useValueEffect
|
|
50
|
+
useStyleProps
|
|
51
51
|
} = require("@react-spectrum/utils");
|
|
52
52
|
|
|
53
53
|
var _spectrumIconsUiChevronRightSmall = $parcel$interopDefault(require("@spectrum-icons/ui/ChevronRightSmall"));
|
|
@@ -114,7 +114,7 @@ function $ccb3b1ecd96026a521a9bbbd15d0b93d$export$BreadcrumbItem(props) {
|
|
|
114
114
|
isHovered
|
|
115
115
|
} = useHover(props);
|
|
116
116
|
|
|
117
|
-
let element = _react.cloneElement(getWrappedElement(children), _babelRuntimeHelpersExtends({}, mergeProps(itemProps, hoverProps), {
|
|
117
|
+
let element = /*#__PURE__*/_react.cloneElement(getWrappedElement(children), _babelRuntimeHelpersExtends({}, mergeProps(itemProps, hoverProps), {
|
|
118
118
|
ref,
|
|
119
119
|
className: classNames($cbb9ca45c80051a074b454ff67e12191$$interop$default, 'spectrum-Breadcrumbs-itemLink', {
|
|
120
120
|
'is-disabled': !isCurrent && isDisabled,
|
|
@@ -151,7 +151,7 @@ function $e2f01fb373fadb4c4bc7c0c3ead285a$var$Breadcrumbs(props, ref) {
|
|
|
151
151
|
let childArray = [];
|
|
152
152
|
|
|
153
153
|
_react.Children.forEach(children, child => {
|
|
154
|
-
if (_react.isValidElement(child)) {
|
|
154
|
+
if ( /*#__PURE__*/_react.isValidElement(child)) {
|
|
155
155
|
childArray.push(child);
|
|
156
156
|
}
|
|
157
157
|
});
|
|
@@ -167,8 +167,15 @@ function $e2f01fb373fadb4c4bc7c0c3ead285a$var$Breadcrumbs(props, ref) {
|
|
|
167
167
|
} = useStyleProps(otherProps);
|
|
168
168
|
let updateOverflow = useCallback(() => {
|
|
169
169
|
let computeVisibleItems = visibleItems => {
|
|
170
|
-
|
|
171
|
-
let
|
|
170
|
+
// Refs can be null at runtime.
|
|
171
|
+
let currListRef = listRef.current;
|
|
172
|
+
|
|
173
|
+
if (!currListRef) {
|
|
174
|
+
return;
|
|
175
|
+
}
|
|
176
|
+
|
|
177
|
+
let listItems = Array.from(currListRef.children);
|
|
178
|
+
let containerWidth = currListRef.offsetWidth;
|
|
172
179
|
let isShowingMenu = childArray.length > visibleItems;
|
|
173
180
|
let calculatedWidth = 0;
|
|
174
181
|
let newVisibleItems = 0;
|
|
@@ -313,7 +320,7 @@ function $e2f01fb373fadb4c4bc7c0c3ead285a$var$Breadcrumbs(props, ref) {
|
|
|
313
320
|
*/
|
|
314
321
|
|
|
315
322
|
|
|
316
|
-
let Breadcrumbs = _react.forwardRef($e2f01fb373fadb4c4bc7c0c3ead285a$var$Breadcrumbs);
|
|
323
|
+
let Breadcrumbs = /*#__PURE__*/_react.forwardRef($e2f01fb373fadb4c4bc7c0c3ead285a$var$Breadcrumbs);
|
|
317
324
|
|
|
318
325
|
exports.Breadcrumbs = Breadcrumbs;
|
|
319
326
|
//# sourceMappingURL=main.js.map
|
package/dist/main.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"mappings":"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","sources":["./node_modules/@parcel/scope-hoisting/lib/helpers.js","./node_modules/@adobe/spectrum-css-temp/components/breadcrumb/vars.css","./packages/@react-spectrum/breadcrumbs/src/BreadcrumbItem.tsx","./packages/@react-spectrum/breadcrumbs/src/Breadcrumbs.tsx"],"sourcesContent":["function $parcel$interopDefault(a) {\n return a && a.__esModule ? a.default : a;\n}\n\nfunction $parcel$defineInteropFlag(a) {\n Object.defineProperty(a, '__esModule', {value: true});\n}\n\nfunction $parcel$exportWildcard(dest, source) {\n Object.keys(source).forEach(function(key) {\n if (key === 'default' || key === '__esModule') {\n return;\n }\n\n Object.defineProperty(dest, key, {\n enumerable: true,\n get: function get() {\n return source[key];\n },\n });\n });\n\n return dest;\n}\n\nfunction $parcel$missingModule(name) {\n var err = new Error(\"Cannot find module '\" + name + \"'\");\n err.code = 'MODULE_NOT_FOUND';\n throw err;\n}\n\nvar $parcel$global =\n typeof globalThis !== 'undefined'\n ? globalThis\n : typeof self !== 'undefined'\n ? self\n : typeof window !== 'undefined'\n ? window\n : typeof global !== 'undefined'\n ? global\n : {};\n","/*\n * Copyright 2020 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */\n\n@import './index.css';\n@import './skin.css';\n","/*\n * Copyright 2020 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */\n\nimport {BreadcrumbItemProps} from '@react-types/breadcrumbs';\nimport ChevronRightSmall from '@spectrum-icons/ui/ChevronRightSmall';\nimport {classNames, getWrappedElement} from '@react-spectrum/utils';\nimport {FocusRing} from '@react-aria/focus';\nimport {mergeProps} from '@react-aria/utils';\nimport React, {Fragment, useRef} from 'react';\nimport styles from '@adobe/spectrum-css-temp/components/breadcrumb/vars.css';\nimport {useBreadcrumbItem} from '@react-aria/breadcrumbs';\nimport {useHover} from '@react-aria/interactions';\nimport {useLocale} from '@react-aria/i18n';\n\nexport function BreadcrumbItem(props: BreadcrumbItemProps) {\n let {\n children,\n isCurrent,\n isDisabled\n } = props;\n\n let {direction} = useLocale();\n let ref = useRef();\n let {itemProps} = useBreadcrumbItem({\n ...props,\n elementType: typeof children === 'string' ? 'span' : 'a'\n }, ref);\n let {hoverProps, isHovered} = useHover(props);\n\n let element = React.cloneElement(\n getWrappedElement(children),\n {\n ...mergeProps(itemProps, hoverProps),\n ref,\n className:\n classNames(\n styles,\n 'spectrum-Breadcrumbs-itemLink',\n {\n 'is-disabled': !isCurrent && isDisabled,\n 'is-hovered': isHovered\n }\n )\n }\n );\n\n return (\n <Fragment>\n <FocusRing focusRingClass={classNames(styles, 'focus-ring')}>\n {element}\n </FocusRing>\n {isCurrent === false &&\n <ChevronRightSmall\n UNSAFE_className={\n classNames(\n styles,\n 'spectrum-Breadcrumbs-itemSeparator',\n {\n 'is-reversed': direction === 'rtl'\n }\n )\n } />\n }\n </Fragment>\n );\n}\n","/*\n * Copyright 2020 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */\nimport {ActionButton} from '@react-spectrum/button';\nimport {BreadcrumbItem} from './BreadcrumbItem';\nimport {classNames, useDOMRef, useStyleProps, useValueEffect} from '@react-spectrum/utils';\nimport {DOMRef} from '@react-types/shared';\nimport FolderBreadcrumb from '@spectrum-icons/ui/FolderBreadcrumb';\nimport {Menu, MenuTrigger} from '@react-spectrum/menu';\nimport React, {Key, ReactElement, useCallback, useRef} from 'react';\nimport {SpectrumBreadcrumbsProps} from '@react-types/breadcrumbs';\nimport styles from '@adobe/spectrum-css-temp/components/breadcrumb/vars.css';\nimport {useBreadcrumbs} from '@react-aria/breadcrumbs';\nimport {useLayoutEffect} from '@react-aria/utils';\nimport {useProviderProps} from '@react-spectrum/provider';\nimport {useResizeObserver} from '@react-aria/utils';\n\nconst MIN_VISIBLE_ITEMS = 1;\nconst MAX_VISIBLE_ITEMS = 4;\n\nfunction Breadcrumbs<T>(props: SpectrumBreadcrumbsProps<T>, ref: DOMRef) {\n props = useProviderProps(props);\n let {\n size = 'L',\n isMultiline,\n children,\n showRoot,\n isDisabled,\n onAction,\n ...otherProps\n } = props;\n\n // Not using React.Children.toArray because it mutates the key prop.\n let childArray: ReactElement[] = [];\n React.Children.forEach(children, child => {\n if (React.isValidElement(child)) {\n childArray.push(child);\n }\n });\n\n let domRef = useDOMRef(ref);\n let listRef = useRef<HTMLUListElement>(null);\n\n let [visibleItems, setVisibleItems] = useValueEffect(childArray.length);\n\n let {navProps} = useBreadcrumbs(props);\n let {styleProps} = useStyleProps(otherProps);\n\n let updateOverflow = useCallback(() => {\n let computeVisibleItems = (visibleItems: number) => {\n let listItems = Array.from(listRef.current.children) as HTMLLIElement[];\n let containerWidth = listRef.current.offsetWidth;\n let isShowingMenu = childArray.length > visibleItems;\n let calculatedWidth = 0;\n let newVisibleItems = 0;\n let maxVisibleItems = MAX_VISIBLE_ITEMS;\n\n if (showRoot) {\n calculatedWidth += listItems.shift().offsetWidth;\n newVisibleItems++;\n }\n\n if (isShowingMenu) {\n calculatedWidth += listItems.shift().offsetWidth;\n maxVisibleItems--;\n }\n\n if (showRoot && calculatedWidth >= containerWidth) {\n newVisibleItems--;\n }\n\n // TODO: what if multiline and only one breadcrumb??\n if (isMultiline) {\n listItems.pop();\n newVisibleItems++;\n } else {\n // Ensure the last breadcrumb isn't truncated when we measure it.\n let last = listItems.pop();\n last.style.overflow = 'visible';\n\n calculatedWidth += last.offsetWidth;\n if (calculatedWidth < containerWidth) {\n newVisibleItems++;\n }\n\n last.style.overflow = '';\n }\n\n for (let breadcrumb of listItems.reverse()) {\n calculatedWidth += breadcrumb.offsetWidth;\n if (calculatedWidth < containerWidth) {\n newVisibleItems++;\n }\n }\n\n return Math.max(MIN_VISIBLE_ITEMS, Math.min(maxVisibleItems, newVisibleItems));\n };\n\n setVisibleItems(function *() {\n // Update to show all items.\n yield childArray.length;\n\n // Measure, and update to show the items that fit.\n let newVisibleItems = computeVisibleItems(childArray.length);\n yield newVisibleItems;\n\n // If the number of items is less than the number of children,\n // then update again to ensure that the menu fits.\n if (newVisibleItems < childArray.length && newVisibleItems > 1) {\n yield computeVisibleItems(newVisibleItems);\n }\n });\n }, [listRef, children, setVisibleItems, showRoot, isMultiline]);\n\n useResizeObserver({ref: domRef, onResize: updateOverflow});\n\n useLayoutEffect(updateOverflow, [children]);\n\n let contents = childArray;\n if (childArray.length > visibleItems) {\n let selectedItem = childArray[childArray.length - 1];\n let selectedKey = selectedItem.key ?? childArray.length - 1;\n let onMenuAction = (key: Key) => {\n // Don't fire onAction when clicking on the last item\n if (key !== selectedKey && onAction) {\n onAction(key);\n }\n };\n\n let menuItem = (\n <BreadcrumbItem key=\"menu\">\n <MenuTrigger>\n <ActionButton\n aria-label=\"…\"\n isQuiet\n isDisabled={isDisabled}>\n <FolderBreadcrumb />\n </ActionButton>\n <Menu selectionMode=\"single\" selectedKeys={[selectedKey]} onAction={onMenuAction}>\n {childArray}\n </Menu>\n </MenuTrigger>\n </BreadcrumbItem>\n );\n\n contents = [menuItem];\n let breadcrumbs = [...childArray];\n let endItems = visibleItems;\n if (showRoot && visibleItems > 1) {\n contents.unshift(breadcrumbs.shift());\n endItems--;\n }\n contents.push(...breadcrumbs.slice(-endItems));\n }\n\n let lastIndex = contents.length - 1;\n let breadcrumbItems = contents.map((child, index) => {\n let isCurrent = index === lastIndex;\n let key = child.key ?? index;\n let onPress = () => {\n if (onAction) {\n onAction(key);\n }\n };\n\n return (\n <li\n key={key}\n className={\n classNames(\n styles,\n 'spectrum-Breadcrumbs-item'\n )\n }>\n <BreadcrumbItem\n isCurrent={isCurrent}\n isDisabled={isDisabled}\n onPress={onPress}>\n {child.props.children}\n </BreadcrumbItem>\n </li>\n );\n });\n\n return (\n <nav\n {...styleProps}\n {...navProps}\n ref={domRef}>\n <ul\n ref={listRef}\n className={\n classNames(\n styles,\n 'spectrum-Breadcrumbs',\n {\n 'spectrum-Breadcrumbs--small': size === 'S',\n 'spectrum-Breadcrumbs--medium': size === 'M',\n 'spectrum-Breadcrumbs--multiline': isMultiline,\n 'spectrum-Breadcrumbs--showRoot': showRoot,\n 'is-disabled': isDisabled\n },\n styleProps.className\n )\n }>\n {breadcrumbItems}\n </ul>\n </nav>\n );\n}\n\n/**\n * Breadcrumbs show hierarchy and navigational context for a user’s location within an application.\n */\nlet _Breadcrumbs = React.forwardRef(Breadcrumbs);\nexport {_Breadcrumbs as Breadcrumbs};\n"],"names":["$parcel$interopDefault","a","__esModule","default","BreadcrumbItem","props","children","isCurrent","isDisabled","direction","useLocale","ref","useRef","itemProps","useBreadcrumbItem","elementType","hoverProps","isHovered","useHover","element","React","cloneElement","getWrappedElement","mergeProps","className","classNames","MIN_VISIBLE_ITEMS","MAX_VISIBLE_ITEMS","Breadcrumbs","useProviderProps","size","isMultiline","showRoot","onAction","otherProps","childArray","Children","forEach","child","isValidElement","push","domRef","useDOMRef","listRef","visibleItems","setVisibleItems","useValueEffect","length","navProps","useBreadcrumbs","styleProps","useStyleProps","updateOverflow","useCallback","computeVisibleItems","listItems","Array","from","current","containerWidth","offsetWidth","isShowingMenu","calculatedWidth","newVisibleItems","maxVisibleItems","shift","pop","last","style","overflow","breadcrumb","reverse","Math","max","min","useResizeObserver","onResize","useLayoutEffect","contents","selectedItem","selectedKey","key","onMenuAction","menuItem","breadcrumbs","endItems","unshift","slice","lastIndex","breadcrumbItems","map","index","onPress","_Breadcrumbs","forwardRef"],"version":3,"file":"main.js.map"}
|
|
1
|
+
{"mappings":"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","sources":["./node_modules/@parcel/scope-hoisting/lib/helpers.js","./node_modules/@adobe/spectrum-css-temp/components/breadcrumb/vars.css","./packages/@react-spectrum/breadcrumbs/src/BreadcrumbItem.tsx","./packages/@react-spectrum/breadcrumbs/src/Breadcrumbs.tsx"],"sourcesContent":["function $parcel$interopDefault(a) {\n return a && a.__esModule ? a.default : a;\n}\n\nfunction $parcel$defineInteropFlag(a) {\n Object.defineProperty(a, '__esModule', {value: true});\n}\n\nfunction $parcel$exportWildcard(dest, source) {\n Object.keys(source).forEach(function(key) {\n if (key === 'default' || key === '__esModule') {\n return;\n }\n\n Object.defineProperty(dest, key, {\n enumerable: true,\n get: function get() {\n return source[key];\n },\n });\n });\n\n return dest;\n}\n\nfunction $parcel$missingModule(name) {\n var err = new Error(\"Cannot find module '\" + name + \"'\");\n err.code = 'MODULE_NOT_FOUND';\n throw err;\n}\n\nvar $parcel$global =\n typeof globalThis !== 'undefined'\n ? globalThis\n : typeof self !== 'undefined'\n ? self\n : typeof window !== 'undefined'\n ? window\n : typeof global !== 'undefined'\n ? global\n : {};\n","/*\n * Copyright 2020 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */\n\n@import './index.css';\n@import './skin.css';\n","/*\n * Copyright 2020 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */\n\nimport {BreadcrumbItemProps} from '@react-types/breadcrumbs';\nimport ChevronRightSmall from '@spectrum-icons/ui/ChevronRightSmall';\nimport {classNames, getWrappedElement} from '@react-spectrum/utils';\nimport {FocusRing} from '@react-aria/focus';\nimport {mergeProps} from '@react-aria/utils';\nimport React, {Fragment, useRef} from 'react';\nimport styles from '@adobe/spectrum-css-temp/components/breadcrumb/vars.css';\nimport {useBreadcrumbItem} from '@react-aria/breadcrumbs';\nimport {useHover} from '@react-aria/interactions';\nimport {useLocale} from '@react-aria/i18n';\n\nexport function BreadcrumbItem(props: BreadcrumbItemProps) {\n let {\n children,\n isCurrent,\n isDisabled\n } = props;\n\n let {direction} = useLocale();\n let ref = useRef();\n let {itemProps} = useBreadcrumbItem({\n ...props,\n elementType: typeof children === 'string' ? 'span' : 'a'\n }, ref);\n let {hoverProps, isHovered} = useHover(props);\n\n let element = React.cloneElement(\n getWrappedElement(children),\n {\n ...mergeProps(itemProps, hoverProps),\n ref,\n className:\n classNames(\n styles,\n 'spectrum-Breadcrumbs-itemLink',\n {\n 'is-disabled': !isCurrent && isDisabled,\n 'is-hovered': isHovered\n }\n )\n }\n );\n\n return (\n <Fragment>\n <FocusRing focusRingClass={classNames(styles, 'focus-ring')}>\n {element}\n </FocusRing>\n {isCurrent === false &&\n <ChevronRightSmall\n UNSAFE_className={\n classNames(\n styles,\n 'spectrum-Breadcrumbs-itemSeparator',\n {\n 'is-reversed': direction === 'rtl'\n }\n )\n } />\n }\n </Fragment>\n );\n}\n","/*\n * Copyright 2020 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */\nimport {ActionButton} from '@react-spectrum/button';\nimport {BreadcrumbItem} from './BreadcrumbItem';\nimport {classNames, useDOMRef, useStyleProps} from '@react-spectrum/utils';\nimport {DOMRef} from '@react-types/shared';\nimport FolderBreadcrumb from '@spectrum-icons/ui/FolderBreadcrumb';\nimport {Menu, MenuTrigger} from '@react-spectrum/menu';\nimport React, {Key, ReactElement, useCallback, useRef} from 'react';\nimport {SpectrumBreadcrumbsProps} from '@react-types/breadcrumbs';\nimport styles from '@adobe/spectrum-css-temp/components/breadcrumb/vars.css';\nimport {useBreadcrumbs} from '@react-aria/breadcrumbs';\nimport {useLayoutEffect, useValueEffect} from '@react-aria/utils';\nimport {useProviderProps} from '@react-spectrum/provider';\nimport {useResizeObserver} from '@react-aria/utils';\n\nconst MIN_VISIBLE_ITEMS = 1;\nconst MAX_VISIBLE_ITEMS = 4;\n\nfunction Breadcrumbs<T>(props: SpectrumBreadcrumbsProps<T>, ref: DOMRef) {\n props = useProviderProps(props);\n let {\n size = 'L',\n isMultiline,\n children,\n showRoot,\n isDisabled,\n onAction,\n ...otherProps\n } = props;\n\n // Not using React.Children.toArray because it mutates the key prop.\n let childArray: ReactElement[] = [];\n React.Children.forEach(children, child => {\n if (React.isValidElement(child)) {\n childArray.push(child);\n }\n });\n\n let domRef = useDOMRef(ref);\n let listRef = useRef<HTMLUListElement>(null);\n\n let [visibleItems, setVisibleItems] = useValueEffect(childArray.length);\n\n let {navProps} = useBreadcrumbs(props);\n let {styleProps} = useStyleProps(otherProps);\n\n let updateOverflow = useCallback(() => {\n let computeVisibleItems = (visibleItems: number) => {\n // Refs can be null at runtime.\n let currListRef: HTMLUListElement | null = listRef.current;\n if (!currListRef) {\n return;\n }\n\n let listItems = Array.from(currListRef.children) as HTMLLIElement[];\n let containerWidth = currListRef.offsetWidth;\n let isShowingMenu = childArray.length > visibleItems;\n let calculatedWidth = 0;\n let newVisibleItems = 0;\n let maxVisibleItems = MAX_VISIBLE_ITEMS;\n\n if (showRoot) {\n calculatedWidth += listItems.shift().offsetWidth;\n newVisibleItems++;\n }\n\n if (isShowingMenu) {\n calculatedWidth += listItems.shift().offsetWidth;\n maxVisibleItems--;\n }\n\n if (showRoot && calculatedWidth >= containerWidth) {\n newVisibleItems--;\n }\n\n // TODO: what if multiline and only one breadcrumb??\n if (isMultiline) {\n listItems.pop();\n newVisibleItems++;\n } else {\n // Ensure the last breadcrumb isn't truncated when we measure it.\n let last = listItems.pop();\n last.style.overflow = 'visible';\n\n calculatedWidth += last.offsetWidth;\n if (calculatedWidth < containerWidth) {\n newVisibleItems++;\n }\n\n last.style.overflow = '';\n }\n\n for (let breadcrumb of listItems.reverse()) {\n calculatedWidth += breadcrumb.offsetWidth;\n if (calculatedWidth < containerWidth) {\n newVisibleItems++;\n }\n }\n\n return Math.max(MIN_VISIBLE_ITEMS, Math.min(maxVisibleItems, newVisibleItems));\n };\n\n setVisibleItems(function *() {\n // Update to show all items.\n yield childArray.length;\n\n // Measure, and update to show the items that fit.\n let newVisibleItems = computeVisibleItems(childArray.length);\n yield newVisibleItems;\n\n // If the number of items is less than the number of children,\n // then update again to ensure that the menu fits.\n if (newVisibleItems < childArray.length && newVisibleItems > 1) {\n yield computeVisibleItems(newVisibleItems);\n }\n });\n }, [listRef, children, setVisibleItems, showRoot, isMultiline]);\n\n useResizeObserver({ref: domRef, onResize: updateOverflow});\n\n useLayoutEffect(updateOverflow, [children]);\n\n let contents = childArray;\n if (childArray.length > visibleItems) {\n let selectedItem = childArray[childArray.length - 1];\n let selectedKey = selectedItem.key ?? childArray.length - 1;\n let onMenuAction = (key: Key) => {\n // Don't fire onAction when clicking on the last item\n if (key !== selectedKey && onAction) {\n onAction(key);\n }\n };\n\n let menuItem = (\n <BreadcrumbItem key=\"menu\">\n <MenuTrigger>\n <ActionButton\n aria-label=\"…\"\n isQuiet\n isDisabled={isDisabled}>\n <FolderBreadcrumb />\n </ActionButton>\n <Menu selectionMode=\"single\" selectedKeys={[selectedKey]} onAction={onMenuAction}>\n {childArray}\n </Menu>\n </MenuTrigger>\n </BreadcrumbItem>\n );\n\n contents = [menuItem];\n let breadcrumbs = [...childArray];\n let endItems = visibleItems;\n if (showRoot && visibleItems > 1) {\n contents.unshift(breadcrumbs.shift());\n endItems--;\n }\n contents.push(...breadcrumbs.slice(-endItems));\n }\n\n let lastIndex = contents.length - 1;\n let breadcrumbItems = contents.map((child, index) => {\n let isCurrent = index === lastIndex;\n let key = child.key ?? index;\n let onPress = () => {\n if (onAction) {\n onAction(key);\n }\n };\n\n return (\n <li\n key={key}\n className={\n classNames(\n styles,\n 'spectrum-Breadcrumbs-item'\n )\n }>\n <BreadcrumbItem\n isCurrent={isCurrent}\n isDisabled={isDisabled}\n onPress={onPress}>\n {child.props.children}\n </BreadcrumbItem>\n </li>\n );\n });\n\n return (\n <nav\n {...styleProps}\n {...navProps}\n ref={domRef}>\n <ul\n ref={listRef}\n className={\n classNames(\n styles,\n 'spectrum-Breadcrumbs',\n {\n 'spectrum-Breadcrumbs--small': size === 'S',\n 'spectrum-Breadcrumbs--medium': size === 'M',\n 'spectrum-Breadcrumbs--multiline': isMultiline,\n 'spectrum-Breadcrumbs--showRoot': showRoot,\n 'is-disabled': isDisabled\n },\n styleProps.className\n )\n }>\n {breadcrumbItems}\n </ul>\n </nav>\n );\n}\n\n/**\n * Breadcrumbs show hierarchy and navigational context for a user’s location within an application.\n */\nlet _Breadcrumbs = React.forwardRef(Breadcrumbs);\nexport {_Breadcrumbs as Breadcrumbs};\n"],"names":["$parcel$interopDefault","a","__esModule","default","BreadcrumbItem","props","children","isCurrent","isDisabled","direction","useLocale","ref","useRef","itemProps","useBreadcrumbItem","elementType","hoverProps","isHovered","useHover","element","React","cloneElement","getWrappedElement","mergeProps","className","classNames","MIN_VISIBLE_ITEMS","MAX_VISIBLE_ITEMS","Breadcrumbs","useProviderProps","size","isMultiline","showRoot","onAction","otherProps","childArray","Children","forEach","child","isValidElement","push","domRef","useDOMRef","listRef","visibleItems","setVisibleItems","useValueEffect","length","navProps","useBreadcrumbs","styleProps","useStyleProps","updateOverflow","useCallback","computeVisibleItems","currListRef","current","listItems","Array","from","containerWidth","offsetWidth","isShowingMenu","calculatedWidth","newVisibleItems","maxVisibleItems","shift","pop","last","style","overflow","breadcrumb","reverse","Math","max","min","useResizeObserver","onResize","useLayoutEffect","contents","selectedItem","selectedKey","key","onMenuAction","menuItem","breadcrumbs","endItems","unshift","slice","lastIndex","breadcrumbItems","map","index","onPress","_Breadcrumbs","forwardRef"],"version":3,"file":"main.js.map"}
|
package/dist/module.js
CHANGED
|
@@ -5,9 +5,9 @@ import { useLocale } from "@react-aria/i18n";
|
|
|
5
5
|
import { useHover } from "@react-aria/interactions";
|
|
6
6
|
import { useBreadcrumbItem, useBreadcrumbs } from "@react-aria/breadcrumbs";
|
|
7
7
|
import _react, { Fragment, useRef, useCallback } from "react";
|
|
8
|
-
import { mergeProps, useLayoutEffect, useResizeObserver } from "@react-aria/utils";
|
|
8
|
+
import { mergeProps, useLayoutEffect, useValueEffect, useResizeObserver } from "@react-aria/utils";
|
|
9
9
|
import { FocusRing } from "@react-aria/focus";
|
|
10
|
-
import { classNames, getWrappedElement, useDOMRef, useStyleProps
|
|
10
|
+
import { classNames, getWrappedElement, useDOMRef, useStyleProps } from "@react-spectrum/utils";
|
|
11
11
|
import _spectrumIconsUiChevronRightSmall from "@spectrum-icons/ui/ChevronRightSmall";
|
|
12
12
|
import { ActionButton } from "@react-spectrum/button";
|
|
13
13
|
import _babelRuntimeHelpersEsmObjectWithoutPropertiesLoose from "@babel/runtime/helpers/esm/objectWithoutPropertiesLoose";
|
|
@@ -62,7 +62,7 @@ function $dacda927994e51fbe8a71ffbc$export$BreadcrumbItem(props) {
|
|
|
62
62
|
isHovered
|
|
63
63
|
} = useHover(props);
|
|
64
64
|
|
|
65
|
-
let element = _react.cloneElement(getWrappedElement(children), _babelRuntimeHelpersEsmExtends({}, mergeProps(itemProps, hoverProps), {
|
|
65
|
+
let element = /*#__PURE__*/_react.cloneElement(getWrappedElement(children), _babelRuntimeHelpersEsmExtends({}, mergeProps(itemProps, hoverProps), {
|
|
66
66
|
ref,
|
|
67
67
|
className: classNames($a5baa762b556403ac2f1cf2374238631$$interop$default, 'spectrum-Breadcrumbs-itemLink', {
|
|
68
68
|
'is-disabled': !isCurrent && isDisabled,
|
|
@@ -99,7 +99,7 @@ function $ca93a0b524bf6d5b2a180315b966bddc$var$Breadcrumbs(props, ref) {
|
|
|
99
99
|
let childArray = [];
|
|
100
100
|
|
|
101
101
|
_react.Children.forEach(children, child => {
|
|
102
|
-
if (_react.isValidElement(child)) {
|
|
102
|
+
if ( /*#__PURE__*/_react.isValidElement(child)) {
|
|
103
103
|
childArray.push(child);
|
|
104
104
|
}
|
|
105
105
|
});
|
|
@@ -115,8 +115,15 @@ function $ca93a0b524bf6d5b2a180315b966bddc$var$Breadcrumbs(props, ref) {
|
|
|
115
115
|
} = useStyleProps(otherProps);
|
|
116
116
|
let updateOverflow = useCallback(() => {
|
|
117
117
|
let computeVisibleItems = visibleItems => {
|
|
118
|
-
|
|
119
|
-
let
|
|
118
|
+
// Refs can be null at runtime.
|
|
119
|
+
let currListRef = listRef.current;
|
|
120
|
+
|
|
121
|
+
if (!currListRef) {
|
|
122
|
+
return;
|
|
123
|
+
}
|
|
124
|
+
|
|
125
|
+
let listItems = Array.from(currListRef.children);
|
|
126
|
+
let containerWidth = currListRef.offsetWidth;
|
|
120
127
|
let isShowingMenu = childArray.length > visibleItems;
|
|
121
128
|
let calculatedWidth = 0;
|
|
122
129
|
let newVisibleItems = 0;
|
|
@@ -261,5 +268,5 @@ function $ca93a0b524bf6d5b2a180315b966bddc$var$Breadcrumbs(props, ref) {
|
|
|
261
268
|
*/
|
|
262
269
|
|
|
263
270
|
|
|
264
|
-
export let Breadcrumbs = _react.forwardRef($ca93a0b524bf6d5b2a180315b966bddc$var$Breadcrumbs);
|
|
271
|
+
export let Breadcrumbs = /*#__PURE__*/_react.forwardRef($ca93a0b524bf6d5b2a180315b966bddc$var$Breadcrumbs);
|
|
265
272
|
//# sourceMappingURL=module.js.map
|
package/dist/module.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"mappings":"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","sources":["./node_modules/@parcel/scope-hoisting/lib/helpers.js","./node_modules/@adobe/spectrum-css-temp/components/breadcrumb/vars.css","./packages/@react-spectrum/breadcrumbs/src/BreadcrumbItem.tsx","./packages/@react-spectrum/breadcrumbs/src/Breadcrumbs.tsx"],"sourcesContent":["function $parcel$interopDefault(a) {\n return a && a.__esModule ? a.default : a;\n}\n\nfunction $parcel$defineInteropFlag(a) {\n Object.defineProperty(a, '__esModule', {value: true});\n}\n\nfunction $parcel$exportWildcard(dest, source) {\n Object.keys(source).forEach(function(key) {\n if (key === 'default' || key === '__esModule') {\n return;\n }\n\n Object.defineProperty(dest, key, {\n enumerable: true,\n get: function get() {\n return source[key];\n },\n });\n });\n\n return dest;\n}\n\nfunction $parcel$missingModule(name) {\n var err = new Error(\"Cannot find module '\" + name + \"'\");\n err.code = 'MODULE_NOT_FOUND';\n throw err;\n}\n\nvar $parcel$global =\n typeof globalThis !== 'undefined'\n ? globalThis\n : typeof self !== 'undefined'\n ? self\n : typeof window !== 'undefined'\n ? window\n : typeof global !== 'undefined'\n ? global\n : {};\n","/*\n * Copyright 2020 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */\n\n@import './index.css';\n@import './skin.css';\n","/*\n * Copyright 2020 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */\n\nimport {BreadcrumbItemProps} from '@react-types/breadcrumbs';\nimport ChevronRightSmall from '@spectrum-icons/ui/ChevronRightSmall';\nimport {classNames, getWrappedElement} from '@react-spectrum/utils';\nimport {FocusRing} from '@react-aria/focus';\nimport {mergeProps} from '@react-aria/utils';\nimport React, {Fragment, useRef} from 'react';\nimport styles from '@adobe/spectrum-css-temp/components/breadcrumb/vars.css';\nimport {useBreadcrumbItem} from '@react-aria/breadcrumbs';\nimport {useHover} from '@react-aria/interactions';\nimport {useLocale} from '@react-aria/i18n';\n\nexport function BreadcrumbItem(props: BreadcrumbItemProps) {\n let {\n children,\n isCurrent,\n isDisabled\n } = props;\n\n let {direction} = useLocale();\n let ref = useRef();\n let {itemProps} = useBreadcrumbItem({\n ...props,\n elementType: typeof children === 'string' ? 'span' : 'a'\n }, ref);\n let {hoverProps, isHovered} = useHover(props);\n\n let element = React.cloneElement(\n getWrappedElement(children),\n {\n ...mergeProps(itemProps, hoverProps),\n ref,\n className:\n classNames(\n styles,\n 'spectrum-Breadcrumbs-itemLink',\n {\n 'is-disabled': !isCurrent && isDisabled,\n 'is-hovered': isHovered\n }\n )\n }\n );\n\n return (\n <Fragment>\n <FocusRing focusRingClass={classNames(styles, 'focus-ring')}>\n {element}\n </FocusRing>\n {isCurrent === false &&\n <ChevronRightSmall\n UNSAFE_className={\n classNames(\n styles,\n 'spectrum-Breadcrumbs-itemSeparator',\n {\n 'is-reversed': direction === 'rtl'\n }\n )\n } />\n }\n </Fragment>\n );\n}\n","/*\n * Copyright 2020 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */\nimport {ActionButton} from '@react-spectrum/button';\nimport {BreadcrumbItem} from './BreadcrumbItem';\nimport {classNames, useDOMRef, useStyleProps, useValueEffect} from '@react-spectrum/utils';\nimport {DOMRef} from '@react-types/shared';\nimport FolderBreadcrumb from '@spectrum-icons/ui/FolderBreadcrumb';\nimport {Menu, MenuTrigger} from '@react-spectrum/menu';\nimport React, {Key, ReactElement, useCallback, useRef} from 'react';\nimport {SpectrumBreadcrumbsProps} from '@react-types/breadcrumbs';\nimport styles from '@adobe/spectrum-css-temp/components/breadcrumb/vars.css';\nimport {useBreadcrumbs} from '@react-aria/breadcrumbs';\nimport {useLayoutEffect} from '@react-aria/utils';\nimport {useProviderProps} from '@react-spectrum/provider';\nimport {useResizeObserver} from '@react-aria/utils';\n\nconst MIN_VISIBLE_ITEMS = 1;\nconst MAX_VISIBLE_ITEMS = 4;\n\nfunction Breadcrumbs<T>(props: SpectrumBreadcrumbsProps<T>, ref: DOMRef) {\n props = useProviderProps(props);\n let {\n size = 'L',\n isMultiline,\n children,\n showRoot,\n isDisabled,\n onAction,\n ...otherProps\n } = props;\n\n // Not using React.Children.toArray because it mutates the key prop.\n let childArray: ReactElement[] = [];\n React.Children.forEach(children, child => {\n if (React.isValidElement(child)) {\n childArray.push(child);\n }\n });\n\n let domRef = useDOMRef(ref);\n let listRef = useRef<HTMLUListElement>(null);\n\n let [visibleItems, setVisibleItems] = useValueEffect(childArray.length);\n\n let {navProps} = useBreadcrumbs(props);\n let {styleProps} = useStyleProps(otherProps);\n\n let updateOverflow = useCallback(() => {\n let computeVisibleItems = (visibleItems: number) => {\n let listItems = Array.from(listRef.current.children) as HTMLLIElement[];\n let containerWidth = listRef.current.offsetWidth;\n let isShowingMenu = childArray.length > visibleItems;\n let calculatedWidth = 0;\n let newVisibleItems = 0;\n let maxVisibleItems = MAX_VISIBLE_ITEMS;\n\n if (showRoot) {\n calculatedWidth += listItems.shift().offsetWidth;\n newVisibleItems++;\n }\n\n if (isShowingMenu) {\n calculatedWidth += listItems.shift().offsetWidth;\n maxVisibleItems--;\n }\n\n if (showRoot && calculatedWidth >= containerWidth) {\n newVisibleItems--;\n }\n\n // TODO: what if multiline and only one breadcrumb??\n if (isMultiline) {\n listItems.pop();\n newVisibleItems++;\n } else {\n // Ensure the last breadcrumb isn't truncated when we measure it.\n let last = listItems.pop();\n last.style.overflow = 'visible';\n\n calculatedWidth += last.offsetWidth;\n if (calculatedWidth < containerWidth) {\n newVisibleItems++;\n }\n\n last.style.overflow = '';\n }\n\n for (let breadcrumb of listItems.reverse()) {\n calculatedWidth += breadcrumb.offsetWidth;\n if (calculatedWidth < containerWidth) {\n newVisibleItems++;\n }\n }\n\n return Math.max(MIN_VISIBLE_ITEMS, Math.min(maxVisibleItems, newVisibleItems));\n };\n\n setVisibleItems(function *() {\n // Update to show all items.\n yield childArray.length;\n\n // Measure, and update to show the items that fit.\n let newVisibleItems = computeVisibleItems(childArray.length);\n yield newVisibleItems;\n\n // If the number of items is less than the number of children,\n // then update again to ensure that the menu fits.\n if (newVisibleItems < childArray.length && newVisibleItems > 1) {\n yield computeVisibleItems(newVisibleItems);\n }\n });\n }, [listRef, children, setVisibleItems, showRoot, isMultiline]);\n\n useResizeObserver({ref: domRef, onResize: updateOverflow});\n\n useLayoutEffect(updateOverflow, [children]);\n\n let contents = childArray;\n if (childArray.length > visibleItems) {\n let selectedItem = childArray[childArray.length - 1];\n let selectedKey = selectedItem.key ?? childArray.length - 1;\n let onMenuAction = (key: Key) => {\n // Don't fire onAction when clicking on the last item\n if (key !== selectedKey && onAction) {\n onAction(key);\n }\n };\n\n let menuItem = (\n <BreadcrumbItem key=\"menu\">\n <MenuTrigger>\n <ActionButton\n aria-label=\"…\"\n isQuiet\n isDisabled={isDisabled}>\n <FolderBreadcrumb />\n </ActionButton>\n <Menu selectionMode=\"single\" selectedKeys={[selectedKey]} onAction={onMenuAction}>\n {childArray}\n </Menu>\n </MenuTrigger>\n </BreadcrumbItem>\n );\n\n contents = [menuItem];\n let breadcrumbs = [...childArray];\n let endItems = visibleItems;\n if (showRoot && visibleItems > 1) {\n contents.unshift(breadcrumbs.shift());\n endItems--;\n }\n contents.push(...breadcrumbs.slice(-endItems));\n }\n\n let lastIndex = contents.length - 1;\n let breadcrumbItems = contents.map((child, index) => {\n let isCurrent = index === lastIndex;\n let key = child.key ?? index;\n let onPress = () => {\n if (onAction) {\n onAction(key);\n }\n };\n\n return (\n <li\n key={key}\n className={\n classNames(\n styles,\n 'spectrum-Breadcrumbs-item'\n )\n }>\n <BreadcrumbItem\n isCurrent={isCurrent}\n isDisabled={isDisabled}\n onPress={onPress}>\n {child.props.children}\n </BreadcrumbItem>\n </li>\n );\n });\n\n return (\n <nav\n {...styleProps}\n {...navProps}\n ref={domRef}>\n <ul\n ref={listRef}\n className={\n classNames(\n styles,\n 'spectrum-Breadcrumbs',\n {\n 'spectrum-Breadcrumbs--small': size === 'S',\n 'spectrum-Breadcrumbs--medium': size === 'M',\n 'spectrum-Breadcrumbs--multiline': isMultiline,\n 'spectrum-Breadcrumbs--showRoot': showRoot,\n 'is-disabled': isDisabled\n },\n styleProps.className\n )\n }>\n {breadcrumbItems}\n </ul>\n </nav>\n );\n}\n\n/**\n * Breadcrumbs show hierarchy and navigational context for a user’s location within an application.\n */\nlet _Breadcrumbs = React.forwardRef(Breadcrumbs);\nexport {_Breadcrumbs as Breadcrumbs};\n"],"names":["$parcel$interopDefault","a","__esModule","default","BreadcrumbItem","props","children","isCurrent","isDisabled","direction","useLocale","ref","useRef","itemProps","useBreadcrumbItem","elementType","hoverProps","isHovered","useHover","element","React","cloneElement","getWrappedElement","mergeProps","className","classNames","MIN_VISIBLE_ITEMS","MAX_VISIBLE_ITEMS","Breadcrumbs","useProviderProps","size","isMultiline","showRoot","onAction","otherProps","childArray","Children","forEach","child","isValidElement","push","domRef","useDOMRef","listRef","visibleItems","setVisibleItems","useValueEffect","length","navProps","useBreadcrumbs","styleProps","useStyleProps","updateOverflow","useCallback","computeVisibleItems","listItems","Array","from","current","containerWidth","offsetWidth","isShowingMenu","calculatedWidth","newVisibleItems","maxVisibleItems","shift","pop","last","style","overflow","breadcrumb","reverse","Math","max","min","useResizeObserver","onResize","useLayoutEffect","contents","selectedItem","selectedKey","key","onMenuAction","menuItem","breadcrumbs","endItems","unshift","slice","lastIndex","breadcrumbItems","map","index","onPress","_Breadcrumbs","forwardRef"],"version":3,"file":"module.js.map"}
|
|
1
|
+
{"mappings":"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","sources":["./node_modules/@parcel/scope-hoisting/lib/helpers.js","./node_modules/@adobe/spectrum-css-temp/components/breadcrumb/vars.css","./packages/@react-spectrum/breadcrumbs/src/BreadcrumbItem.tsx","./packages/@react-spectrum/breadcrumbs/src/Breadcrumbs.tsx"],"sourcesContent":["function $parcel$interopDefault(a) {\n return a && a.__esModule ? a.default : a;\n}\n\nfunction $parcel$defineInteropFlag(a) {\n Object.defineProperty(a, '__esModule', {value: true});\n}\n\nfunction $parcel$exportWildcard(dest, source) {\n Object.keys(source).forEach(function(key) {\n if (key === 'default' || key === '__esModule') {\n return;\n }\n\n Object.defineProperty(dest, key, {\n enumerable: true,\n get: function get() {\n return source[key];\n },\n });\n });\n\n return dest;\n}\n\nfunction $parcel$missingModule(name) {\n var err = new Error(\"Cannot find module '\" + name + \"'\");\n err.code = 'MODULE_NOT_FOUND';\n throw err;\n}\n\nvar $parcel$global =\n typeof globalThis !== 'undefined'\n ? globalThis\n : typeof self !== 'undefined'\n ? self\n : typeof window !== 'undefined'\n ? window\n : typeof global !== 'undefined'\n ? global\n : {};\n","/*\n * Copyright 2020 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */\n\n@import './index.css';\n@import './skin.css';\n","/*\n * Copyright 2020 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */\n\nimport {BreadcrumbItemProps} from '@react-types/breadcrumbs';\nimport ChevronRightSmall from '@spectrum-icons/ui/ChevronRightSmall';\nimport {classNames, getWrappedElement} from '@react-spectrum/utils';\nimport {FocusRing} from '@react-aria/focus';\nimport {mergeProps} from '@react-aria/utils';\nimport React, {Fragment, useRef} from 'react';\nimport styles from '@adobe/spectrum-css-temp/components/breadcrumb/vars.css';\nimport {useBreadcrumbItem} from '@react-aria/breadcrumbs';\nimport {useHover} from '@react-aria/interactions';\nimport {useLocale} from '@react-aria/i18n';\n\nexport function BreadcrumbItem(props: BreadcrumbItemProps) {\n let {\n children,\n isCurrent,\n isDisabled\n } = props;\n\n let {direction} = useLocale();\n let ref = useRef();\n let {itemProps} = useBreadcrumbItem({\n ...props,\n elementType: typeof children === 'string' ? 'span' : 'a'\n }, ref);\n let {hoverProps, isHovered} = useHover(props);\n\n let element = React.cloneElement(\n getWrappedElement(children),\n {\n ...mergeProps(itemProps, hoverProps),\n ref,\n className:\n classNames(\n styles,\n 'spectrum-Breadcrumbs-itemLink',\n {\n 'is-disabled': !isCurrent && isDisabled,\n 'is-hovered': isHovered\n }\n )\n }\n );\n\n return (\n <Fragment>\n <FocusRing focusRingClass={classNames(styles, 'focus-ring')}>\n {element}\n </FocusRing>\n {isCurrent === false &&\n <ChevronRightSmall\n UNSAFE_className={\n classNames(\n styles,\n 'spectrum-Breadcrumbs-itemSeparator',\n {\n 'is-reversed': direction === 'rtl'\n }\n )\n } />\n }\n </Fragment>\n );\n}\n","/*\n * Copyright 2020 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */\nimport {ActionButton} from '@react-spectrum/button';\nimport {BreadcrumbItem} from './BreadcrumbItem';\nimport {classNames, useDOMRef, useStyleProps} from '@react-spectrum/utils';\nimport {DOMRef} from '@react-types/shared';\nimport FolderBreadcrumb from '@spectrum-icons/ui/FolderBreadcrumb';\nimport {Menu, MenuTrigger} from '@react-spectrum/menu';\nimport React, {Key, ReactElement, useCallback, useRef} from 'react';\nimport {SpectrumBreadcrumbsProps} from '@react-types/breadcrumbs';\nimport styles from '@adobe/spectrum-css-temp/components/breadcrumb/vars.css';\nimport {useBreadcrumbs} from '@react-aria/breadcrumbs';\nimport {useLayoutEffect, useValueEffect} from '@react-aria/utils';\nimport {useProviderProps} from '@react-spectrum/provider';\nimport {useResizeObserver} from '@react-aria/utils';\n\nconst MIN_VISIBLE_ITEMS = 1;\nconst MAX_VISIBLE_ITEMS = 4;\n\nfunction Breadcrumbs<T>(props: SpectrumBreadcrumbsProps<T>, ref: DOMRef) {\n props = useProviderProps(props);\n let {\n size = 'L',\n isMultiline,\n children,\n showRoot,\n isDisabled,\n onAction,\n ...otherProps\n } = props;\n\n // Not using React.Children.toArray because it mutates the key prop.\n let childArray: ReactElement[] = [];\n React.Children.forEach(children, child => {\n if (React.isValidElement(child)) {\n childArray.push(child);\n }\n });\n\n let domRef = useDOMRef(ref);\n let listRef = useRef<HTMLUListElement>(null);\n\n let [visibleItems, setVisibleItems] = useValueEffect(childArray.length);\n\n let {navProps} = useBreadcrumbs(props);\n let {styleProps} = useStyleProps(otherProps);\n\n let updateOverflow = useCallback(() => {\n let computeVisibleItems = (visibleItems: number) => {\n // Refs can be null at runtime.\n let currListRef: HTMLUListElement | null = listRef.current;\n if (!currListRef) {\n return;\n }\n\n let listItems = Array.from(currListRef.children) as HTMLLIElement[];\n let containerWidth = currListRef.offsetWidth;\n let isShowingMenu = childArray.length > visibleItems;\n let calculatedWidth = 0;\n let newVisibleItems = 0;\n let maxVisibleItems = MAX_VISIBLE_ITEMS;\n\n if (showRoot) {\n calculatedWidth += listItems.shift().offsetWidth;\n newVisibleItems++;\n }\n\n if (isShowingMenu) {\n calculatedWidth += listItems.shift().offsetWidth;\n maxVisibleItems--;\n }\n\n if (showRoot && calculatedWidth >= containerWidth) {\n newVisibleItems--;\n }\n\n // TODO: what if multiline and only one breadcrumb??\n if (isMultiline) {\n listItems.pop();\n newVisibleItems++;\n } else {\n // Ensure the last breadcrumb isn't truncated when we measure it.\n let last = listItems.pop();\n last.style.overflow = 'visible';\n\n calculatedWidth += last.offsetWidth;\n if (calculatedWidth < containerWidth) {\n newVisibleItems++;\n }\n\n last.style.overflow = '';\n }\n\n for (let breadcrumb of listItems.reverse()) {\n calculatedWidth += breadcrumb.offsetWidth;\n if (calculatedWidth < containerWidth) {\n newVisibleItems++;\n }\n }\n\n return Math.max(MIN_VISIBLE_ITEMS, Math.min(maxVisibleItems, newVisibleItems));\n };\n\n setVisibleItems(function *() {\n // Update to show all items.\n yield childArray.length;\n\n // Measure, and update to show the items that fit.\n let newVisibleItems = computeVisibleItems(childArray.length);\n yield newVisibleItems;\n\n // If the number of items is less than the number of children,\n // then update again to ensure that the menu fits.\n if (newVisibleItems < childArray.length && newVisibleItems > 1) {\n yield computeVisibleItems(newVisibleItems);\n }\n });\n }, [listRef, children, setVisibleItems, showRoot, isMultiline]);\n\n useResizeObserver({ref: domRef, onResize: updateOverflow});\n\n useLayoutEffect(updateOverflow, [children]);\n\n let contents = childArray;\n if (childArray.length > visibleItems) {\n let selectedItem = childArray[childArray.length - 1];\n let selectedKey = selectedItem.key ?? childArray.length - 1;\n let onMenuAction = (key: Key) => {\n // Don't fire onAction when clicking on the last item\n if (key !== selectedKey && onAction) {\n onAction(key);\n }\n };\n\n let menuItem = (\n <BreadcrumbItem key=\"menu\">\n <MenuTrigger>\n <ActionButton\n aria-label=\"…\"\n isQuiet\n isDisabled={isDisabled}>\n <FolderBreadcrumb />\n </ActionButton>\n <Menu selectionMode=\"single\" selectedKeys={[selectedKey]} onAction={onMenuAction}>\n {childArray}\n </Menu>\n </MenuTrigger>\n </BreadcrumbItem>\n );\n\n contents = [menuItem];\n let breadcrumbs = [...childArray];\n let endItems = visibleItems;\n if (showRoot && visibleItems > 1) {\n contents.unshift(breadcrumbs.shift());\n endItems--;\n }\n contents.push(...breadcrumbs.slice(-endItems));\n }\n\n let lastIndex = contents.length - 1;\n let breadcrumbItems = contents.map((child, index) => {\n let isCurrent = index === lastIndex;\n let key = child.key ?? index;\n let onPress = () => {\n if (onAction) {\n onAction(key);\n }\n };\n\n return (\n <li\n key={key}\n className={\n classNames(\n styles,\n 'spectrum-Breadcrumbs-item'\n )\n }>\n <BreadcrumbItem\n isCurrent={isCurrent}\n isDisabled={isDisabled}\n onPress={onPress}>\n {child.props.children}\n </BreadcrumbItem>\n </li>\n );\n });\n\n return (\n <nav\n {...styleProps}\n {...navProps}\n ref={domRef}>\n <ul\n ref={listRef}\n className={\n classNames(\n styles,\n 'spectrum-Breadcrumbs',\n {\n 'spectrum-Breadcrumbs--small': size === 'S',\n 'spectrum-Breadcrumbs--medium': size === 'M',\n 'spectrum-Breadcrumbs--multiline': isMultiline,\n 'spectrum-Breadcrumbs--showRoot': showRoot,\n 'is-disabled': isDisabled\n },\n styleProps.className\n )\n }>\n {breadcrumbItems}\n </ul>\n </nav>\n );\n}\n\n/**\n * Breadcrumbs show hierarchy and navigational context for a user’s location within an application.\n */\nlet _Breadcrumbs = React.forwardRef(Breadcrumbs);\nexport {_Breadcrumbs as Breadcrumbs};\n"],"names":["$parcel$interopDefault","a","__esModule","default","BreadcrumbItem","props","children","isCurrent","isDisabled","direction","useLocale","ref","useRef","itemProps","useBreadcrumbItem","elementType","hoverProps","isHovered","useHover","element","React","cloneElement","getWrappedElement","mergeProps","className","classNames","MIN_VISIBLE_ITEMS","MAX_VISIBLE_ITEMS","Breadcrumbs","useProviderProps","size","isMultiline","showRoot","onAction","otherProps","childArray","Children","forEach","child","isValidElement","push","domRef","useDOMRef","listRef","visibleItems","setVisibleItems","useValueEffect","length","navProps","useBreadcrumbs","styleProps","useStyleProps","updateOverflow","useCallback","computeVisibleItems","currListRef","current","listItems","Array","from","containerWidth","offsetWidth","isShowingMenu","calculatedWidth","newVisibleItems","maxVisibleItems","shift","pop","last","style","overflow","breadcrumb","reverse","Math","max","min","useResizeObserver","onResize","useLayoutEffect","contents","selectedItem","selectedKey","key","onMenuAction","menuItem","breadcrumbs","endItems","unshift","slice","lastIndex","breadcrumbItems","map","index","onPress","_Breadcrumbs","forwardRef"],"version":3,"file":"module.js.map"}
|
package/dist/types.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"mappings":"A;A;
|
|
1
|
+
{"mappings":"A;A;ACiOA;A;GAEG;AACH,OAAA,IAAI,6JAA4C,CAAC;ACrNjD,OAAO,EAAC,IAAI,EAAC,MAAM,4BAA4B,CAAC","sources":["./packages/@react-spectrum/breadcrumbs/src/packages/@react-spectrum/breadcrumbs/src/BreadcrumbItem.tsx","./packages/@react-spectrum/breadcrumbs/src/packages/@react-spectrum/breadcrumbs/src/Breadcrumbs.tsx","./packages/@react-spectrum/breadcrumbs/src/packages/@react-spectrum/breadcrumbs/src/index.ts"],"sourcesContent":[null,null,null],"names":[],"version":3,"file":"types.d.ts.map"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@react-spectrum/breadcrumbs",
|
|
3
|
-
"version": "3.2.
|
|
3
|
+
"version": "3.2.4",
|
|
4
4
|
"description": "Spectrum UI components in React",
|
|
5
5
|
"license": "Apache-2.0",
|
|
6
6
|
"main": "dist/main.js",
|
|
@@ -32,28 +32,29 @@
|
|
|
32
32
|
},
|
|
33
33
|
"dependencies": {
|
|
34
34
|
"@babel/runtime": "^7.6.2",
|
|
35
|
-
"@react-aria/breadcrumbs": "^3.1.
|
|
36
|
-
"@react-aria/focus": "^3.
|
|
37
|
-
"@react-aria/i18n": "^3.
|
|
38
|
-
"@react-aria/interactions": "^3.
|
|
39
|
-
"@react-aria/utils": "^3.
|
|
40
|
-
"@react-spectrum/button": "^3.
|
|
41
|
-
"@react-spectrum/menu": "^3.
|
|
42
|
-
"@react-spectrum/utils": "^3.
|
|
43
|
-
"@react-stately/collections": "^3.3.
|
|
44
|
-
"@react-types/breadcrumbs": "^3.
|
|
45
|
-
"@react-types/shared": "^3.
|
|
46
|
-
"@spectrum-icons/ui": "^3.2.
|
|
35
|
+
"@react-aria/breadcrumbs": "^3.1.5",
|
|
36
|
+
"@react-aria/focus": "^3.4.1",
|
|
37
|
+
"@react-aria/i18n": "^3.3.3",
|
|
38
|
+
"@react-aria/interactions": "^3.7.0",
|
|
39
|
+
"@react-aria/utils": "^3.10.0",
|
|
40
|
+
"@react-spectrum/button": "^3.5.1",
|
|
41
|
+
"@react-spectrum/menu": "^3.4.0",
|
|
42
|
+
"@react-spectrum/utils": "^3.6.3",
|
|
43
|
+
"@react-stately/collections": "^3.3.3",
|
|
44
|
+
"@react-types/breadcrumbs": "^3.2.1",
|
|
45
|
+
"@react-types/shared": "^3.10.0",
|
|
46
|
+
"@spectrum-icons/ui": "^3.2.1"
|
|
47
47
|
},
|
|
48
48
|
"devDependencies": {
|
|
49
|
-
"@adobe/spectrum-css-temp": "
|
|
49
|
+
"@adobe/spectrum-css-temp": "3.0.0-alpha.1"
|
|
50
50
|
},
|
|
51
51
|
"peerDependencies": {
|
|
52
|
-
"@react-spectrum/provider": "^3.0.0
|
|
53
|
-
"react": "^16.8.0 || ^17.0.0-rc.1"
|
|
52
|
+
"@react-spectrum/provider": "^3.0.0",
|
|
53
|
+
"react": "^16.8.0 || ^17.0.0-rc.1",
|
|
54
|
+
"react-dom": "^16.8.0 || ^17.0.0-rc.1"
|
|
54
55
|
},
|
|
55
56
|
"publishConfig": {
|
|
56
57
|
"access": "public"
|
|
57
58
|
},
|
|
58
|
-
"gitHead": "
|
|
59
|
+
"gitHead": "896eabe5521a0349a675c4773ed7629addd4b8c4"
|
|
59
60
|
}
|
package/src/Breadcrumbs.tsx
CHANGED
|
@@ -11,7 +11,7 @@
|
|
|
11
11
|
*/
|
|
12
12
|
import {ActionButton} from '@react-spectrum/button';
|
|
13
13
|
import {BreadcrumbItem} from './BreadcrumbItem';
|
|
14
|
-
import {classNames, useDOMRef, useStyleProps
|
|
14
|
+
import {classNames, useDOMRef, useStyleProps} from '@react-spectrum/utils';
|
|
15
15
|
import {DOMRef} from '@react-types/shared';
|
|
16
16
|
import FolderBreadcrumb from '@spectrum-icons/ui/FolderBreadcrumb';
|
|
17
17
|
import {Menu, MenuTrigger} from '@react-spectrum/menu';
|
|
@@ -19,7 +19,7 @@ import React, {Key, ReactElement, useCallback, useRef} from 'react';
|
|
|
19
19
|
import {SpectrumBreadcrumbsProps} from '@react-types/breadcrumbs';
|
|
20
20
|
import styles from '@adobe/spectrum-css-temp/components/breadcrumb/vars.css';
|
|
21
21
|
import {useBreadcrumbs} from '@react-aria/breadcrumbs';
|
|
22
|
-
import {useLayoutEffect} from '@react-aria/utils';
|
|
22
|
+
import {useLayoutEffect, useValueEffect} from '@react-aria/utils';
|
|
23
23
|
import {useProviderProps} from '@react-spectrum/provider';
|
|
24
24
|
import {useResizeObserver} from '@react-aria/utils';
|
|
25
25
|
|
|
@@ -56,8 +56,14 @@ function Breadcrumbs<T>(props: SpectrumBreadcrumbsProps<T>, ref: DOMRef) {
|
|
|
56
56
|
|
|
57
57
|
let updateOverflow = useCallback(() => {
|
|
58
58
|
let computeVisibleItems = (visibleItems: number) => {
|
|
59
|
-
|
|
60
|
-
let
|
|
59
|
+
// Refs can be null at runtime.
|
|
60
|
+
let currListRef: HTMLUListElement | null = listRef.current;
|
|
61
|
+
if (!currListRef) {
|
|
62
|
+
return;
|
|
63
|
+
}
|
|
64
|
+
|
|
65
|
+
let listItems = Array.from(currListRef.children) as HTMLLIElement[];
|
|
66
|
+
let containerWidth = currListRef.offsetWidth;
|
|
61
67
|
let isShowingMenu = childArray.length > visibleItems;
|
|
62
68
|
let calculatedWidth = 0;
|
|
63
69
|
let newVisibleItems = 0;
|