@react-spectrum/breadcrumbs 3.9.6 → 3.9.8

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.
@@ -42,7 +42,7 @@ function $d90ab02c74e9be0c$export$c13f210c706eb549(props) {
42
42
  let { children: children, isCurrent: isCurrent, isDisabled: isDisabled, isMenu: isMenu } = props;
43
43
  let { direction: direction } = (0, $k4xVk$reactariai18n.useLocale)();
44
44
  let ref = (0, $k4xVk$react.useRef)(null);
45
- let ElementType = props.href ? "a" : "span";
45
+ let ElementType = props.href ? 'a' : 'span';
46
46
  let { itemProps: itemProps } = (0, $k4xVk$reactariabreadcrumbs.useBreadcrumbItem)({
47
47
  ...props,
48
48
  elementType: ElementType
@@ -51,18 +51,18 @@ function $d90ab02c74e9be0c$export$c13f210c706eb549(props) {
51
51
  // If this item contains a menu button, then it shouldn't be a link.
52
52
  if (isMenu) itemProps = {};
53
53
  return /*#__PURE__*/ (0, ($parcel$interopDefault($k4xVk$react))).createElement((0, $k4xVk$react.Fragment), null, /*#__PURE__*/ (0, ($parcel$interopDefault($k4xVk$react))).createElement((0, $k4xVk$reactariafocus.FocusRing), {
54
- focusRingClass: (0, $k4xVk$reactspectrumutils.classNames)((0, ($parcel$interopDefault($3292ef9f328419fc$exports))), "focus-ring")
54
+ focusRingClass: (0, $k4xVk$reactspectrumutils.classNames)((0, ($parcel$interopDefault($3292ef9f328419fc$exports))), 'focus-ring')
55
55
  }, /*#__PURE__*/ (0, ($parcel$interopDefault($k4xVk$react))).createElement(ElementType, {
56
56
  ...(0, $k4xVk$reactariautils.mergeProps)(itemProps, hoverProps),
57
57
  ref: ref,
58
58
  className: (0, $k4xVk$reactspectrumutils.classNames)((0, ($parcel$interopDefault($3292ef9f328419fc$exports))), {
59
- "spectrum-Breadcrumbs-itemLink": !isMenu,
60
- "is-disabled": !isCurrent && isDisabled,
61
- "is-hovered": isHovered
59
+ 'spectrum-Breadcrumbs-itemLink': !isMenu,
60
+ 'is-disabled': !isCurrent && isDisabled,
61
+ 'is-hovered': isHovered
62
62
  })
63
63
  }, children)), /*#__PURE__*/ (0, ($parcel$interopDefault($k4xVk$react))).createElement((0, ($parcel$interopDefault($k4xVk$spectrumiconsuiChevronRightSmall))), {
64
- UNSAFE_className: (0, $k4xVk$reactspectrumutils.classNames)((0, ($parcel$interopDefault($3292ef9f328419fc$exports))), "spectrum-Breadcrumbs-itemSeparator", {
65
- "is-reversed": direction === "rtl"
64
+ UNSAFE_className: (0, $k4xVk$reactspectrumutils.classNames)((0, ($parcel$interopDefault($3292ef9f328419fc$exports))), 'spectrum-Breadcrumbs-itemSeparator', {
65
+ 'is-reversed': direction === 'rtl'
66
66
  })
67
67
  }));
68
68
  }
@@ -36,7 +36,7 @@ function $2bfa2c84c665c457$export$c13f210c706eb549(props) {
36
36
  let { children: children, isCurrent: isCurrent, isDisabled: isDisabled, isMenu: isMenu } = props;
37
37
  let { direction: direction } = (0, $9saoi$useLocale)();
38
38
  let ref = (0, $9saoi$useRef)(null);
39
- let ElementType = props.href ? "a" : "span";
39
+ let ElementType = props.href ? 'a' : 'span';
40
40
  let { itemProps: itemProps } = (0, $9saoi$useBreadcrumbItem)({
41
41
  ...props,
42
42
  elementType: ElementType
@@ -45,22 +45,22 @@ function $2bfa2c84c665c457$export$c13f210c706eb549(props) {
45
45
  // If this item contains a menu button, then it shouldn't be a link.
46
46
  if (isMenu) itemProps = {};
47
47
  return /*#__PURE__*/ (0, $9saoi$react).createElement((0, $9saoi$Fragment), null, /*#__PURE__*/ (0, $9saoi$react).createElement((0, $9saoi$FocusRing), {
48
- focusRingClass: (0, $9saoi$classNames)((0, ($parcel$interopDefault($9saoi$breadcrumb_vars_cssmodulejs))), "focus-ring")
48
+ focusRingClass: (0, $9saoi$classNames)((0, ($parcel$interopDefault($9saoi$breadcrumb_vars_cssmodulejs))), 'focus-ring')
49
49
  }, /*#__PURE__*/ (0, $9saoi$react).createElement(ElementType, {
50
50
  ...(0, $9saoi$mergeProps)(itemProps, hoverProps),
51
51
  ref: ref,
52
52
  className: (0, $9saoi$classNames)((0, ($parcel$interopDefault($9saoi$breadcrumb_vars_cssmodulejs))), {
53
- "spectrum-Breadcrumbs-itemLink": !isMenu,
54
- "is-disabled": !isCurrent && isDisabled,
55
- "is-hovered": isHovered
53
+ 'spectrum-Breadcrumbs-itemLink': !isMenu,
54
+ 'is-disabled': !isCurrent && isDisabled,
55
+ 'is-hovered': isHovered
56
56
  })
57
57
  }, children)), /*#__PURE__*/ (0, $9saoi$react).createElement((0, $9saoi$spectrumiconsuiChevronRightSmall), {
58
- UNSAFE_className: (0, $9saoi$classNames)((0, ($parcel$interopDefault($9saoi$breadcrumb_vars_cssmodulejs))), "spectrum-Breadcrumbs-itemSeparator", {
59
- "is-reversed": direction === "rtl"
58
+ UNSAFE_className: (0, $9saoi$classNames)((0, ($parcel$interopDefault($9saoi$breadcrumb_vars_cssmodulejs))), 'spectrum-Breadcrumbs-itemSeparator', {
59
+ 'is-reversed': direction === 'rtl'
60
60
  })
61
61
  }));
62
62
  }
63
63
 
64
64
 
65
65
  export {$2bfa2c84c665c457$export$c13f210c706eb549 as BreadcrumbItem};
66
- //# sourceMappingURL=BreadcrumbItem.mjs.map
66
+ //# sourceMappingURL=BreadcrumbItem.module.js.map
@@ -36,7 +36,7 @@ function $2bfa2c84c665c457$export$c13f210c706eb549(props) {
36
36
  let { children: children, isCurrent: isCurrent, isDisabled: isDisabled, isMenu: isMenu } = props;
37
37
  let { direction: direction } = (0, $9saoi$useLocale)();
38
38
  let ref = (0, $9saoi$useRef)(null);
39
- let ElementType = props.href ? "a" : "span";
39
+ let ElementType = props.href ? 'a' : 'span';
40
40
  let { itemProps: itemProps } = (0, $9saoi$useBreadcrumbItem)({
41
41
  ...props,
42
42
  elementType: ElementType
@@ -45,18 +45,18 @@ function $2bfa2c84c665c457$export$c13f210c706eb549(props) {
45
45
  // If this item contains a menu button, then it shouldn't be a link.
46
46
  if (isMenu) itemProps = {};
47
47
  return /*#__PURE__*/ (0, $9saoi$react).createElement((0, $9saoi$Fragment), null, /*#__PURE__*/ (0, $9saoi$react).createElement((0, $9saoi$FocusRing), {
48
- focusRingClass: (0, $9saoi$classNames)((0, ($parcel$interopDefault($9saoi$breadcrumb_vars_cssmodulejs))), "focus-ring")
48
+ focusRingClass: (0, $9saoi$classNames)((0, ($parcel$interopDefault($9saoi$breadcrumb_vars_cssmodulejs))), 'focus-ring')
49
49
  }, /*#__PURE__*/ (0, $9saoi$react).createElement(ElementType, {
50
50
  ...(0, $9saoi$mergeProps)(itemProps, hoverProps),
51
51
  ref: ref,
52
52
  className: (0, $9saoi$classNames)((0, ($parcel$interopDefault($9saoi$breadcrumb_vars_cssmodulejs))), {
53
- "spectrum-Breadcrumbs-itemLink": !isMenu,
54
- "is-disabled": !isCurrent && isDisabled,
55
- "is-hovered": isHovered
53
+ 'spectrum-Breadcrumbs-itemLink': !isMenu,
54
+ 'is-disabled': !isCurrent && isDisabled,
55
+ 'is-hovered': isHovered
56
56
  })
57
57
  }, children)), /*#__PURE__*/ (0, $9saoi$react).createElement((0, $9saoi$spectrumiconsuiChevronRightSmall), {
58
- UNSAFE_className: (0, $9saoi$classNames)((0, ($parcel$interopDefault($9saoi$breadcrumb_vars_cssmodulejs))), "spectrum-Breadcrumbs-itemSeparator", {
59
- "is-reversed": direction === "rtl"
58
+ UNSAFE_className: (0, $9saoi$classNames)((0, ($parcel$interopDefault($9saoi$breadcrumb_vars_cssmodulejs))), 'spectrum-Breadcrumbs-itemSeparator', {
59
+ 'is-reversed': direction === 'rtl'
60
60
  })
61
61
  }));
62
62
  }
@@ -44,7 +44,7 @@ const $299bf776d9162a05$var$MIN_VISIBLE_ITEMS = 1;
44
44
  const $299bf776d9162a05$var$MAX_VISIBLE_ITEMS = 4;
45
45
  function $299bf776d9162a05$var$Breadcrumbs(props, ref) {
46
46
  props = (0, $lykgu$reactspectrumprovider.useProviderProps)(props);
47
- let { size: size = "L", isMultiline: isMultiline, children: children, showRoot: showRoot, isDisabled: isDisabled, onAction: onAction, autoFocusCurrent: autoFocusCurrent, ...otherProps } = props;
47
+ let { size: size = 'L', isMultiline: isMultiline, children: children, showRoot: showRoot, isDisabled: isDisabled, onAction: onAction, autoFocusCurrent: autoFocusCurrent, ...otherProps } = props;
48
48
  // Not using React.Children.toArray because it mutates the key prop.
49
49
  let childArray = [];
50
50
  (0, ($parcel$interopDefault($lykgu$react))).Children.forEach(children, (child, index)=>{
@@ -88,10 +88,10 @@ function $299bf776d9162a05$var$Breadcrumbs(props, ref) {
88
88
  } else if (listItems.length > 0) {
89
89
  // Ensure the last breadcrumb isn't truncated when we measure it.
90
90
  let last = listItems.pop();
91
- last.style.overflow = "visible";
91
+ last.style.overflow = 'visible';
92
92
  calculatedWidth += last.offsetWidth;
93
93
  if (calculatedWidth < containerWidth) newVisibleItems++;
94
- last.style.overflow = "";
94
+ last.style.overflow = '';
95
95
  }
96
96
  for (let breadcrumb of listItems.reverse()){
97
97
  calculatedWidth += breadcrumb.offsetWidth;
@@ -139,7 +139,7 @@ function $299bf776d9162a05$var$Breadcrumbs(props, ref) {
139
139
  key: "menu",
140
140
  isMenu: true
141
141
  }, /*#__PURE__*/ (0, ($parcel$interopDefault($lykgu$react))).createElement((0, $lykgu$reactspectrummenu.MenuTrigger), null, /*#__PURE__*/ (0, ($parcel$interopDefault($lykgu$react))).createElement((0, $lykgu$reactspectrumbutton.ActionButton), {
142
- UNSAFE_className: (0, $lykgu$reactspectrumutils.classNames)((0, ($parcel$interopDefault($3292ef9f328419fc$exports))), "spectrum-Breadcrumbs-actionButton"),
142
+ UNSAFE_className: (0, $lykgu$reactspectrumutils.classNames)((0, ($parcel$interopDefault($3292ef9f328419fc$exports))), 'spectrum-Breadcrumbs-actionButton'),
143
143
  "aria-label": "\u2026",
144
144
  isQuiet: true,
145
145
  isDisabled: isDisabled
@@ -174,7 +174,7 @@ function $299bf776d9162a05$var$Breadcrumbs(props, ref) {
174
174
  };
175
175
  return /*#__PURE__*/ (0, ($parcel$interopDefault($lykgu$react))).createElement("li", {
176
176
  key: index,
177
- className: (0, $lykgu$reactspectrumutils.classNames)((0, ($parcel$interopDefault($3292ef9f328419fc$exports))), "spectrum-Breadcrumbs-item")
177
+ className: (0, $lykgu$reactspectrumutils.classNames)((0, ($parcel$interopDefault($3292ef9f328419fc$exports))), 'spectrum-Breadcrumbs-item')
178
178
  }, /*#__PURE__*/ (0, ($parcel$interopDefault($lykgu$react))).createElement((0, $d90ab02c74e9be0c$exports.BreadcrumbItem), {
179
179
  ...child.props,
180
180
  key: key,
@@ -190,12 +190,12 @@ function $299bf776d9162a05$var$Breadcrumbs(props, ref) {
190
190
  ref: domRef
191
191
  }, /*#__PURE__*/ (0, ($parcel$interopDefault($lykgu$react))).createElement("ul", {
192
192
  ref: listRef,
193
- className: (0, $lykgu$reactspectrumutils.classNames)((0, ($parcel$interopDefault($3292ef9f328419fc$exports))), "spectrum-Breadcrumbs", {
194
- "spectrum-Breadcrumbs--small": size === "S",
195
- "spectrum-Breadcrumbs--medium": size === "M",
196
- "spectrum-Breadcrumbs--multiline": isMultiline,
197
- "spectrum-Breadcrumbs--showRoot": showRoot,
198
- "is-disabled": isDisabled
193
+ className: (0, $lykgu$reactspectrumutils.classNames)((0, ($parcel$interopDefault($3292ef9f328419fc$exports))), 'spectrum-Breadcrumbs', {
194
+ 'spectrum-Breadcrumbs--small': size === 'S',
195
+ 'spectrum-Breadcrumbs--medium': size === 'M',
196
+ 'spectrum-Breadcrumbs--multiline': isMultiline,
197
+ 'spectrum-Breadcrumbs--showRoot': showRoot,
198
+ 'is-disabled': isDisabled
199
199
  }, styleProps.className)
200
200
  }, breadcrumbItems));
201
201
  }
@@ -1 +1 @@
1
- {"mappings":"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","sources":["packages/@react-spectrum/breadcrumbs/src/Breadcrumbs.tsx"],"sourcesContent":["/*\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, Key} from '@react-types/shared';\nimport FolderBreadcrumb from '@spectrum-icons/ui/FolderBreadcrumb';\nimport {Menu, MenuTrigger} from '@react-spectrum/menu';\nimport React, {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, useResizeObserver, useValueEffect} from '@react-aria/utils';\nimport {useProviderProps} from '@react-spectrum/provider';\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 autoFocusCurrent,\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, index) => {\n if (React.isValidElement(child)) {\n if (child.key == null) {\n child = React.cloneElement(child, {key: index});\n }\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): number => {\n // Refs can be null at runtime.\n let currListRef: HTMLUListElement | null = listRef.current;\n if (!currListRef) {\n return visibleItems;\n }\n\n let listItems = Array.from(currListRef.children) as HTMLLIElement[];\n if (listItems.length <= 0) {\n return visibleItems;\n }\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() as HTMLLIElement).offsetWidth;\n newVisibleItems++;\n }\n\n if (isShowingMenu) {\n calculatedWidth += (listItems.shift() as HTMLLIElement).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 if (listItems.length > 0) {\n // Ensure the last breadcrumb isn't truncated when we measure it.\n let last = (listItems.pop() as HTMLLIElement);\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\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 }, [childArray.length, setVisibleItems, showRoot, isMultiline]);\n\n useResizeObserver({ref: domRef, onResize: updateOverflow});\n\n let lastChildren = useRef<typeof children | null>(null);\n useLayoutEffect(() => {\n if (children !== lastChildren.current) {\n lastChildren.current = children;\n updateOverflow();\n }\n });\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\" isMenu>\n <MenuTrigger>\n <ActionButton\n UNSAFE_className={classNames(styles, 'spectrum-Breadcrumbs-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 let rootItem = breadcrumbs.shift();\n if (rootItem) {\n contents.unshift(rootItem);\n }\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={index}\n className={\n classNames(\n styles,\n 'spectrum-Breadcrumbs-item'\n )\n }>\n <BreadcrumbItem\n {...child.props}\n key={key}\n isCurrent={isCurrent}\n isDisabled={isDisabled}\n onPress={onPress}\n autoFocus={isCurrent && autoFocusCurrent}>\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":[],"version":3,"file":"Breadcrumbs.main.js.map"}
1
+ {"mappings":"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","sources":["packages/@react-spectrum/breadcrumbs/src/Breadcrumbs.tsx"],"sourcesContent":["/*\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, Key} from '@react-types/shared';\nimport FolderBreadcrumb from '@spectrum-icons/ui/FolderBreadcrumb';\nimport {Menu, MenuTrigger} from '@react-spectrum/menu';\nimport React, {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, useResizeObserver, useValueEffect} from '@react-aria/utils';\nimport {useProviderProps} from '@react-spectrum/provider';\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 autoFocusCurrent,\n ...otherProps\n } = props;\n\n // Not using React.Children.toArray because it mutates the key prop.\n let childArray: ReactElement<any>[] = [];\n React.Children.forEach(children, (child, index) => {\n if (React.isValidElement(child)) {\n if (child.key == null) {\n child = React.cloneElement(child, {key: index});\n }\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): number => {\n // Refs can be null at runtime.\n let currListRef: HTMLUListElement | null = listRef.current;\n if (!currListRef) {\n return visibleItems;\n }\n\n let listItems = Array.from(currListRef.children) as HTMLLIElement[];\n if (listItems.length <= 0) {\n return visibleItems;\n }\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() as HTMLLIElement).offsetWidth;\n newVisibleItems++;\n }\n\n if (isShowingMenu) {\n calculatedWidth += (listItems.shift() as HTMLLIElement).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 if (listItems.length > 0) {\n // Ensure the last breadcrumb isn't truncated when we measure it.\n let last = (listItems.pop() as HTMLLIElement);\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\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 }, [childArray.length, setVisibleItems, showRoot, isMultiline]);\n\n useResizeObserver({ref: domRef, onResize: updateOverflow});\n\n let lastChildren = useRef<typeof children | null>(null);\n useLayoutEffect(() => {\n if (children !== lastChildren.current) {\n lastChildren.current = children;\n updateOverflow();\n }\n });\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\" isMenu>\n <MenuTrigger>\n <ActionButton\n UNSAFE_className={classNames(styles, 'spectrum-Breadcrumbs-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 let rootItem = breadcrumbs.shift();\n if (rootItem) {\n contents.unshift(rootItem);\n }\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={index}\n className={\n classNames(\n styles,\n 'spectrum-Breadcrumbs-item'\n )\n }>\n <BreadcrumbItem\n {...child.props}\n key={key}\n isCurrent={isCurrent}\n isDisabled={isDisabled}\n onPress={onPress}\n autoFocus={isCurrent && autoFocusCurrent}>\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":[],"version":3,"file":"Breadcrumbs.main.js.map"}
@@ -38,7 +38,7 @@ const $2adaf67aabd3300b$var$MIN_VISIBLE_ITEMS = 1;
38
38
  const $2adaf67aabd3300b$var$MAX_VISIBLE_ITEMS = 4;
39
39
  function $2adaf67aabd3300b$var$Breadcrumbs(props, ref) {
40
40
  props = (0, $52CM4$useProviderProps)(props);
41
- let { size: size = "L", isMultiline: isMultiline, children: children, showRoot: showRoot, isDisabled: isDisabled, onAction: onAction, autoFocusCurrent: autoFocusCurrent, ...otherProps } = props;
41
+ let { size: size = 'L', isMultiline: isMultiline, children: children, showRoot: showRoot, isDisabled: isDisabled, onAction: onAction, autoFocusCurrent: autoFocusCurrent, ...otherProps } = props;
42
42
  // Not using React.Children.toArray because it mutates the key prop.
43
43
  let childArray = [];
44
44
  (0, $52CM4$react).Children.forEach(children, (child, index)=>{
@@ -82,10 +82,10 @@ function $2adaf67aabd3300b$var$Breadcrumbs(props, ref) {
82
82
  } else if (listItems.length > 0) {
83
83
  // Ensure the last breadcrumb isn't truncated when we measure it.
84
84
  let last = listItems.pop();
85
- last.style.overflow = "visible";
85
+ last.style.overflow = 'visible';
86
86
  calculatedWidth += last.offsetWidth;
87
87
  if (calculatedWidth < containerWidth) newVisibleItems++;
88
- last.style.overflow = "";
88
+ last.style.overflow = '';
89
89
  }
90
90
  for (let breadcrumb of listItems.reverse()){
91
91
  calculatedWidth += breadcrumb.offsetWidth;
@@ -133,7 +133,7 @@ function $2adaf67aabd3300b$var$Breadcrumbs(props, ref) {
133
133
  key: "menu",
134
134
  isMenu: true
135
135
  }, /*#__PURE__*/ (0, $52CM4$react).createElement((0, $52CM4$MenuTrigger), null, /*#__PURE__*/ (0, $52CM4$react).createElement((0, $52CM4$ActionButton), {
136
- UNSAFE_className: (0, $52CM4$classNames)((0, ($parcel$interopDefault($52CM4$breadcrumb_vars_cssmodulejs))), "spectrum-Breadcrumbs-actionButton"),
136
+ UNSAFE_className: (0, $52CM4$classNames)((0, ($parcel$interopDefault($52CM4$breadcrumb_vars_cssmodulejs))), 'spectrum-Breadcrumbs-actionButton'),
137
137
  "aria-label": "\u2026",
138
138
  isQuiet: true,
139
139
  isDisabled: isDisabled
@@ -168,7 +168,7 @@ function $2adaf67aabd3300b$var$Breadcrumbs(props, ref) {
168
168
  };
169
169
  return /*#__PURE__*/ (0, $52CM4$react).createElement("li", {
170
170
  key: index,
171
- className: (0, $52CM4$classNames)((0, ($parcel$interopDefault($52CM4$breadcrumb_vars_cssmodulejs))), "spectrum-Breadcrumbs-item")
171
+ className: (0, $52CM4$classNames)((0, ($parcel$interopDefault($52CM4$breadcrumb_vars_cssmodulejs))), 'spectrum-Breadcrumbs-item')
172
172
  }, /*#__PURE__*/ (0, $52CM4$react).createElement((0, $2bfa2c84c665c457$export$c13f210c706eb549), {
173
173
  ...child.props,
174
174
  key: key,
@@ -184,12 +184,12 @@ function $2adaf67aabd3300b$var$Breadcrumbs(props, ref) {
184
184
  ref: domRef
185
185
  }, /*#__PURE__*/ (0, $52CM4$react).createElement("ul", {
186
186
  ref: listRef,
187
- className: (0, $52CM4$classNames)((0, ($parcel$interopDefault($52CM4$breadcrumb_vars_cssmodulejs))), "spectrum-Breadcrumbs", {
188
- "spectrum-Breadcrumbs--small": size === "S",
189
- "spectrum-Breadcrumbs--medium": size === "M",
190
- "spectrum-Breadcrumbs--multiline": isMultiline,
191
- "spectrum-Breadcrumbs--showRoot": showRoot,
192
- "is-disabled": isDisabled
187
+ className: (0, $52CM4$classNames)((0, ($parcel$interopDefault($52CM4$breadcrumb_vars_cssmodulejs))), 'spectrum-Breadcrumbs', {
188
+ 'spectrum-Breadcrumbs--small': size === 'S',
189
+ 'spectrum-Breadcrumbs--medium': size === 'M',
190
+ 'spectrum-Breadcrumbs--multiline': isMultiline,
191
+ 'spectrum-Breadcrumbs--showRoot': showRoot,
192
+ 'is-disabled': isDisabled
193
193
  }, styleProps.className)
194
194
  }, breadcrumbItems));
195
195
  }
@@ -199,4 +199,4 @@ function $2adaf67aabd3300b$var$Breadcrumbs(props, ref) {
199
199
 
200
200
 
201
201
  export {$2adaf67aabd3300b$export$2dc68d50d56fbbd as Breadcrumbs};
202
- //# sourceMappingURL=Breadcrumbs.mjs.map
202
+ //# sourceMappingURL=Breadcrumbs.module.js.map
@@ -38,7 +38,7 @@ const $2adaf67aabd3300b$var$MIN_VISIBLE_ITEMS = 1;
38
38
  const $2adaf67aabd3300b$var$MAX_VISIBLE_ITEMS = 4;
39
39
  function $2adaf67aabd3300b$var$Breadcrumbs(props, ref) {
40
40
  props = (0, $52CM4$useProviderProps)(props);
41
- let { size: size = "L", isMultiline: isMultiline, children: children, showRoot: showRoot, isDisabled: isDisabled, onAction: onAction, autoFocusCurrent: autoFocusCurrent, ...otherProps } = props;
41
+ let { size: size = 'L', isMultiline: isMultiline, children: children, showRoot: showRoot, isDisabled: isDisabled, onAction: onAction, autoFocusCurrent: autoFocusCurrent, ...otherProps } = props;
42
42
  // Not using React.Children.toArray because it mutates the key prop.
43
43
  let childArray = [];
44
44
  (0, $52CM4$react).Children.forEach(children, (child, index)=>{
@@ -82,10 +82,10 @@ function $2adaf67aabd3300b$var$Breadcrumbs(props, ref) {
82
82
  } else if (listItems.length > 0) {
83
83
  // Ensure the last breadcrumb isn't truncated when we measure it.
84
84
  let last = listItems.pop();
85
- last.style.overflow = "visible";
85
+ last.style.overflow = 'visible';
86
86
  calculatedWidth += last.offsetWidth;
87
87
  if (calculatedWidth < containerWidth) newVisibleItems++;
88
- last.style.overflow = "";
88
+ last.style.overflow = '';
89
89
  }
90
90
  for (let breadcrumb of listItems.reverse()){
91
91
  calculatedWidth += breadcrumb.offsetWidth;
@@ -133,7 +133,7 @@ function $2adaf67aabd3300b$var$Breadcrumbs(props, ref) {
133
133
  key: "menu",
134
134
  isMenu: true
135
135
  }, /*#__PURE__*/ (0, $52CM4$react).createElement((0, $52CM4$MenuTrigger), null, /*#__PURE__*/ (0, $52CM4$react).createElement((0, $52CM4$ActionButton), {
136
- UNSAFE_className: (0, $52CM4$classNames)((0, ($parcel$interopDefault($52CM4$breadcrumb_vars_cssmodulejs))), "spectrum-Breadcrumbs-actionButton"),
136
+ UNSAFE_className: (0, $52CM4$classNames)((0, ($parcel$interopDefault($52CM4$breadcrumb_vars_cssmodulejs))), 'spectrum-Breadcrumbs-actionButton'),
137
137
  "aria-label": "\u2026",
138
138
  isQuiet: true,
139
139
  isDisabled: isDisabled
@@ -168,7 +168,7 @@ function $2adaf67aabd3300b$var$Breadcrumbs(props, ref) {
168
168
  };
169
169
  return /*#__PURE__*/ (0, $52CM4$react).createElement("li", {
170
170
  key: index,
171
- className: (0, $52CM4$classNames)((0, ($parcel$interopDefault($52CM4$breadcrumb_vars_cssmodulejs))), "spectrum-Breadcrumbs-item")
171
+ className: (0, $52CM4$classNames)((0, ($parcel$interopDefault($52CM4$breadcrumb_vars_cssmodulejs))), 'spectrum-Breadcrumbs-item')
172
172
  }, /*#__PURE__*/ (0, $52CM4$react).createElement((0, $2bfa2c84c665c457$export$c13f210c706eb549), {
173
173
  ...child.props,
174
174
  key: key,
@@ -184,12 +184,12 @@ function $2adaf67aabd3300b$var$Breadcrumbs(props, ref) {
184
184
  ref: domRef
185
185
  }, /*#__PURE__*/ (0, $52CM4$react).createElement("ul", {
186
186
  ref: listRef,
187
- className: (0, $52CM4$classNames)((0, ($parcel$interopDefault($52CM4$breadcrumb_vars_cssmodulejs))), "spectrum-Breadcrumbs", {
188
- "spectrum-Breadcrumbs--small": size === "S",
189
- "spectrum-Breadcrumbs--medium": size === "M",
190
- "spectrum-Breadcrumbs--multiline": isMultiline,
191
- "spectrum-Breadcrumbs--showRoot": showRoot,
192
- "is-disabled": isDisabled
187
+ className: (0, $52CM4$classNames)((0, ($parcel$interopDefault($52CM4$breadcrumb_vars_cssmodulejs))), 'spectrum-Breadcrumbs', {
188
+ 'spectrum-Breadcrumbs--small': size === 'S',
189
+ 'spectrum-Breadcrumbs--medium': size === 'M',
190
+ 'spectrum-Breadcrumbs--multiline': isMultiline,
191
+ 'spectrum-Breadcrumbs--showRoot': showRoot,
192
+ 'is-disabled': isDisabled
193
193
  }, styleProps.className)
194
194
  }, breadcrumbItems));
195
195
  }
@@ -1 +1 @@
1
- {"mappings":"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","sources":["packages/@react-spectrum/breadcrumbs/src/Breadcrumbs.tsx"],"sourcesContent":["/*\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, Key} from '@react-types/shared';\nimport FolderBreadcrumb from '@spectrum-icons/ui/FolderBreadcrumb';\nimport {Menu, MenuTrigger} from '@react-spectrum/menu';\nimport React, {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, useResizeObserver, useValueEffect} from '@react-aria/utils';\nimport {useProviderProps} from '@react-spectrum/provider';\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 autoFocusCurrent,\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, index) => {\n if (React.isValidElement(child)) {\n if (child.key == null) {\n child = React.cloneElement(child, {key: index});\n }\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): number => {\n // Refs can be null at runtime.\n let currListRef: HTMLUListElement | null = listRef.current;\n if (!currListRef) {\n return visibleItems;\n }\n\n let listItems = Array.from(currListRef.children) as HTMLLIElement[];\n if (listItems.length <= 0) {\n return visibleItems;\n }\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() as HTMLLIElement).offsetWidth;\n newVisibleItems++;\n }\n\n if (isShowingMenu) {\n calculatedWidth += (listItems.shift() as HTMLLIElement).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 if (listItems.length > 0) {\n // Ensure the last breadcrumb isn't truncated when we measure it.\n let last = (listItems.pop() as HTMLLIElement);\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\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 }, [childArray.length, setVisibleItems, showRoot, isMultiline]);\n\n useResizeObserver({ref: domRef, onResize: updateOverflow});\n\n let lastChildren = useRef<typeof children | null>(null);\n useLayoutEffect(() => {\n if (children !== lastChildren.current) {\n lastChildren.current = children;\n updateOverflow();\n }\n });\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\" isMenu>\n <MenuTrigger>\n <ActionButton\n UNSAFE_className={classNames(styles, 'spectrum-Breadcrumbs-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 let rootItem = breadcrumbs.shift();\n if (rootItem) {\n contents.unshift(rootItem);\n }\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={index}\n className={\n classNames(\n styles,\n 'spectrum-Breadcrumbs-item'\n )\n }>\n <BreadcrumbItem\n {...child.props}\n key={key}\n isCurrent={isCurrent}\n isDisabled={isDisabled}\n onPress={onPress}\n autoFocus={isCurrent && autoFocusCurrent}>\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":[],"version":3,"file":"Breadcrumbs.module.js.map"}
1
+ {"mappings":"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","sources":["packages/@react-spectrum/breadcrumbs/src/Breadcrumbs.tsx"],"sourcesContent":["/*\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, Key} from '@react-types/shared';\nimport FolderBreadcrumb from '@spectrum-icons/ui/FolderBreadcrumb';\nimport {Menu, MenuTrigger} from '@react-spectrum/menu';\nimport React, {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, useResizeObserver, useValueEffect} from '@react-aria/utils';\nimport {useProviderProps} from '@react-spectrum/provider';\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 autoFocusCurrent,\n ...otherProps\n } = props;\n\n // Not using React.Children.toArray because it mutates the key prop.\n let childArray: ReactElement<any>[] = [];\n React.Children.forEach(children, (child, index) => {\n if (React.isValidElement(child)) {\n if (child.key == null) {\n child = React.cloneElement(child, {key: index});\n }\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): number => {\n // Refs can be null at runtime.\n let currListRef: HTMLUListElement | null = listRef.current;\n if (!currListRef) {\n return visibleItems;\n }\n\n let listItems = Array.from(currListRef.children) as HTMLLIElement[];\n if (listItems.length <= 0) {\n return visibleItems;\n }\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() as HTMLLIElement).offsetWidth;\n newVisibleItems++;\n }\n\n if (isShowingMenu) {\n calculatedWidth += (listItems.shift() as HTMLLIElement).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 if (listItems.length > 0) {\n // Ensure the last breadcrumb isn't truncated when we measure it.\n let last = (listItems.pop() as HTMLLIElement);\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\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 }, [childArray.length, setVisibleItems, showRoot, isMultiline]);\n\n useResizeObserver({ref: domRef, onResize: updateOverflow});\n\n let lastChildren = useRef<typeof children | null>(null);\n useLayoutEffect(() => {\n if (children !== lastChildren.current) {\n lastChildren.current = children;\n updateOverflow();\n }\n });\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\" isMenu>\n <MenuTrigger>\n <ActionButton\n UNSAFE_className={classNames(styles, 'spectrum-Breadcrumbs-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 let rootItem = breadcrumbs.shift();\n if (rootItem) {\n contents.unshift(rootItem);\n }\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={index}\n className={\n classNames(\n styles,\n 'spectrum-Breadcrumbs-item'\n )\n }>\n <BreadcrumbItem\n {...child.props}\n key={key}\n isCurrent={isCurrent}\n isDisabled={isDisabled}\n onPress={onPress}\n autoFocus={isCurrent && autoFocusCurrent}>\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":[],"version":3,"file":"Breadcrumbs.module.js.map"}
@@ -67,4 +67,4 @@ $48e85557f3729e3d$export$63e9e087a73f808b = `_1gDPVa_spectrum-Heading--pageTitle
67
67
 
68
68
 
69
69
  export {$48e85557f3729e3d$exports as default};
70
- //# sourceMappingURL=breadcrumb_vars_css.mjs.map
70
+ //# sourceMappingURL=breadcrumb_vars_css.module.js.map
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@react-spectrum/breadcrumbs",
3
- "version": "3.9.6",
3
+ "version": "3.9.8",
4
4
  "description": "Spectrum UI components in React",
5
5
  "license": "Apache-2.0",
6
6
  "main": "dist/main.js",
@@ -36,18 +36,18 @@
36
36
  "url": "https://github.com/adobe/react-spectrum"
37
37
  },
38
38
  "dependencies": {
39
- "@react-aria/breadcrumbs": "^3.5.12",
40
- "@react-aria/focus": "^3.17.0",
41
- "@react-aria/i18n": "^3.11.0",
42
- "@react-aria/interactions": "^3.21.2",
43
- "@react-aria/utils": "^3.24.0",
44
- "@react-spectrum/button": "^3.16.3",
45
- "@react-spectrum/menu": "^3.19.0",
46
- "@react-spectrum/utils": "^3.11.6",
47
- "@react-stately/collections": "^3.10.6",
48
- "@react-types/breadcrumbs": "^3.7.4",
49
- "@react-types/shared": "^3.23.0",
50
- "@spectrum-icons/ui": "^3.6.6",
39
+ "@react-aria/breadcrumbs": "^3.5.14",
40
+ "@react-aria/focus": "^3.18.0",
41
+ "@react-aria/i18n": "^3.12.0",
42
+ "@react-aria/interactions": "^3.22.0",
43
+ "@react-aria/utils": "^3.25.0",
44
+ "@react-spectrum/button": "^3.16.5",
45
+ "@react-spectrum/menu": "^3.20.0",
46
+ "@react-spectrum/utils": "^3.11.8",
47
+ "@react-stately/collections": "^3.10.8",
48
+ "@react-types/breadcrumbs": "^3.7.6",
49
+ "@react-types/shared": "^3.24.0",
50
+ "@spectrum-icons/ui": "^3.6.8",
51
51
  "@swc/helpers": "^0.5.0"
52
52
  },
53
53
  "devDependencies": {
@@ -55,11 +55,11 @@
55
55
  },
56
56
  "peerDependencies": {
57
57
  "@react-spectrum/provider": "^3.0.0",
58
- "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0",
59
- "react-dom": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0"
58
+ "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0",
59
+ "react-dom": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0"
60
60
  },
61
61
  "publishConfig": {
62
62
  "access": "public"
63
63
  },
64
- "gitHead": "f645f29edc1322153fd60af4640cbcab1d992dbd"
64
+ "gitHead": "86d80e3216bc32e75108831cf3a5a720bc849206"
65
65
  }
@@ -39,7 +39,7 @@ function Breadcrumbs<T>(props: SpectrumBreadcrumbsProps<T>, ref: DOMRef) {
39
39
  } = props;
40
40
 
41
41
  // Not using React.Children.toArray because it mutates the key prop.
42
- let childArray: ReactElement[] = [];
42
+ let childArray: ReactElement<any>[] = [];
43
43
  React.Children.forEach(children, (child, index) => {
44
44
  if (React.isValidElement(child)) {
45
45
  if (child.key == null) {