@primer/react 38.32.1-rc.3a244cb73 → 38.32.1-rc.50746cb84

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.
@@ -1,6 +1,6 @@
1
1
  import { useId as useId$1 } from "../hooks/useId.js";
2
- import { invariant } from "../utils/invariant.js";
3
2
  import { useSlots } from "../hooks/useSlots.js";
3
+ import { invariant } from "../utils/invariant.js";
4
4
  import { ListContext } from "./shared.js";
5
5
  import ActionList_module_css_default from "./ActionList.module.css.js";
6
6
  import { useFeatureFlag } from "../FeatureFlags/useFeatureFlag.js";
@@ -1,11 +1,11 @@
1
1
  import { useId as useId$1 } from "../hooks/useId.js";
2
+ import { useSlots } from "../hooks/useSlots.js";
2
3
  import { ConditionalWrapper } from "../internal/components/ConditionalWrapper.js";
3
4
  import { invariant } from "../utils/invariant.js";
4
5
  import { fixedForwardRef } from "../utils/modern-polymorphic.js";
5
6
  import VisuallyHidden from "../_VisuallyHidden.js";
6
7
  import { TooltipContext } from "../TooltipV2/TooltipContext.js";
7
8
  import { Tooltip } from "../TooltipV2/Tooltip.js";
8
- import { useSlots } from "../hooks/useSlots.js";
9
9
  import { ActionListContainerContext } from "./ActionListContainerContext.js";
10
10
  import { ItemContext, ListContext } from "./shared.js";
11
11
  import ActionList_module_css_default from "./ActionList.module.css.js";
@@ -1,8 +1,8 @@
1
1
  import { useProvidedRefOrCreate } from "../hooks/useProvidedRefOrCreate.js";
2
2
  import useIsomorphicLayoutEffect from "../utils/useIsomorphicLayoutEffect.js";
3
3
  import { useId as useId$1 } from "../hooks/useId.js";
4
- import { fixedForwardRef } from "../utils/modern-polymorphic.js";
5
4
  import { useSlots } from "../hooks/useSlots.js";
5
+ import { fixedForwardRef } from "../utils/modern-polymorphic.js";
6
6
  import { FocusKeys, useFocusZone } from "../hooks/useFocusZone.js";
7
7
  import { ActionListContainerContext } from "./ActionListContainerContext.js";
8
8
  import { ListContext } from "./shared.js";
@@ -2,10 +2,10 @@ import { useProvidedRefOrCreate } from "../hooks/useProvidedRefOrCreate.js";
2
2
  import { useProvidedStateOrCreate } from "../hooks/useProvidedStateOrCreate.js";
3
3
  import { useMenuKeyboardNavigation } from "../hooks/useMenuKeyboardNavigation.js";
4
4
  import { useId as useId$1 } from "../hooks/useId.js";
5
+ import { isSlot } from "../utils/is-slot.js";
5
6
  import { Tooltip } from "../TooltipV2/Tooltip.js";
6
7
  import { ButtonComponent } from "../Button/Button.js";
7
8
  import { useResponsiveValue } from "../hooks/useResponsiveValue.js";
8
- import { isSlot } from "../utils/is-slot.js";
9
9
  import { DialogContext } from "../Dialog/DialogContext.js";
10
10
  import { ActionListContainerContext } from "../ActionList/ActionListContainerContext.js";
11
11
  import { Divider } from "../ActionList/Divider.js";
@@ -122,7 +122,8 @@ const AnchoredOverlay = ({ renderAnchor, anchorRef: externalAnchorRef, anchorId:
122
122
  else currentOverlay.style.removeProperty("position-try-fallbacks");
123
123
  pendingPositionFrame = requestAnimationFrame(() => {
124
124
  pendingPositionFrame = null;
125
- const result = getDefaultPosition(anchorElement, currentOverlay, width ? parseInt(widthMap[width]) : parseInt(widthMap.small));
125
+ const fallbackWidth = width ? parseInt(widthMap[width]) : parseInt(widthMap.small);
126
+ const result = getDefaultPosition(anchorElement, currentOverlay, fallbackWidth);
126
127
  currentOverlay.setAttribute("data-align", result.horizontal);
127
128
  if (result.suggestedSide) currentOverlay.setAttribute("data-side", result.suggestedSide);
128
129
  const offset = result.horizontal === "left" ? result.leftOffset : result.rightOffset;
@@ -193,10 +193,11 @@ function AutocompleteMenu(props) {
193
193
  t12 = (current, _previous, directlyActivated) => {
194
194
  activeDescendantRef.current = current || null;
195
195
  if (current) {
196
- setHighlightedItem(allItemsToRenderRef.current.find((item_1) => {
196
+ const selectedItem = allItemsToRenderRef.current.find((item_1) => {
197
197
  var _current$closest;
198
198
  return item_1.id === ((_current$closest = current.closest("li")) === null || _current$closest === void 0 ? void 0 : _current$closest.getAttribute("data-id"));
199
- }));
199
+ });
200
+ setHighlightedItem(selectedItem);
200
201
  setIsMenuDirectlyActivated(directlyActivated);
201
202
  }
202
203
  if (current && customScrollContainerRef && customScrollContainerRef.current && directlyActivated) scrollIntoView(current, customScrollContainerRef.current, menuScrollMargins);
@@ -250,7 +250,10 @@ function Breadcrumbs(t0) {
250
250
  const measuredContainerWidth = containerElement.offsetWidth;
251
251
  setContainerWidth((prev_0) => prev_0 === measuredContainerWidth ? prev_0 : measuredContainerWidth);
252
252
  const listElement = containerElement.querySelector("ol");
253
- if (listElement && listElement.children.length > 0 && listElement.children.length === childArray.length) setChildArrayWidths(Array.from(listElement.children).map(_temp3));
253
+ if (listElement && listElement.children.length > 0 && listElement.children.length === childArray.length) {
254
+ const widths = Array.from(listElement.children).map(_temp3);
255
+ setChildArrayWidths(widths);
256
+ }
254
257
  };
255
258
  $[3] = childArray.length;
256
259
  $[4] = overflow;
@@ -3,9 +3,9 @@ import { useProvidedRefOrCreate } from "../hooks/useProvidedRefOrCreate.js";
3
3
  import { useOnEscapePress } from "../hooks/useOnEscapePress.js";
4
4
  import { useResizeObserver } from "../hooks/useResizeObserver.js";
5
5
  import { useId as useId$1 } from "../hooks/useId.js";
6
+ import { useSlots } from "../hooks/useSlots.js";
6
7
  import { IconButton } from "../Button/IconButton.js";
7
8
  import { ButtonComponent } from "../Button/Button.js";
8
- import { useSlots } from "../hooks/useSlots.js";
9
9
  import { useFocusTrap } from "../hooks/useFocusTrap.js";
10
10
  import { useFocusZone } from "../hooks/useFocusZone.js";
11
11
  import Portal_default from "../Portal/index.js";
@@ -31,20 +31,23 @@ const useAnnouncements = (items, listContainerRef, inputRef, enabled = true, loa
31
31
  }, [enabled]);
32
32
  useEffect(function announceInitialFocus() {
33
33
  const focusHandler = () => {
34
- if (usingRovingTabindex) announce$1(`${items.length} item${items.length > 1 ? "s" : ""} available, ${selectedItems} selected.`, {
35
- delayMs,
36
- from: liveRegion ? liveRegion : void 0
37
- });
38
- else window.requestAnimationFrame(() => {
34
+ if (usingRovingTabindex) {
35
+ const announcementText = `${items.length} item${items.length > 1 ? "s" : ""} available, ${selectedItems} selected.`;
36
+ announce$1(announcementText, {
37
+ delayMs,
38
+ from: liveRegion ? liveRegion : void 0
39
+ });
40
+ } else window.requestAnimationFrame(() => {
39
41
  const activeItem = getItemWithActiveDescendant(listContainerRef, items);
40
42
  if (!activeItem) return;
41
43
  const { index, text, selected } = activeItem;
42
- announce$1([
44
+ const announcementText = [
43
45
  `Focus on filter text box and list of items`,
44
46
  `Focused item: ${text}`,
45
47
  `${selected ? "selected" : "not selected"}`,
46
48
  `${index + 1} of ${items.length}`
47
- ].join(", "), {
49
+ ].join(", ");
50
+ announce$1(announcementText, {
48
51
  delayMs,
49
52
  from: liveRegion ? liveRegion : void 0
50
53
  });
@@ -70,20 +73,23 @@ const useAnnouncements = (items, listContainerRef, inputRef, enabled = true, loa
70
73
  announce$1(`${message === null || message === void 0 ? void 0 : message.title}. ${message === null || message === void 0 ? void 0 : message.description}`, { delayMs });
71
74
  return;
72
75
  }
73
- if (usingRovingTabindex) announce$1(`${items.length} item${items.length > 1 ? "s" : ""} available, ${selectedItems} selected.`, {
74
- delayMs,
75
- from: liveRegion ? liveRegion : void 0
76
- });
77
- else window.requestAnimationFrame(() => {
76
+ if (usingRovingTabindex) {
77
+ const announcementText = `${items.length} item${items.length > 1 ? "s" : ""} available, ${selectedItems} selected.`;
78
+ announce$1(announcementText, {
79
+ delayMs,
80
+ from: liveRegion ? liveRegion : void 0
81
+ });
82
+ } else window.requestAnimationFrame(() => {
78
83
  const activeItem = getItemWithActiveDescendant(listContainerRef, items);
79
84
  if (!activeItem) return;
80
85
  const { index, text, selected } = activeItem;
81
- announce$1([
86
+ const announcementText = [
82
87
  `List updated`,
83
88
  `Focused item: ${text}`,
84
89
  `${selected ? "selected" : "not selected"}`,
85
90
  `${index + 1} of ${items.length}`
86
- ].join(", "), {
91
+ ].join(", ");
92
+ announce$1(announcementText, {
87
93
  delayMs,
88
94
  from: liveRegion ? liveRegion : void 0
89
95
  });
@@ -1,8 +1,8 @@
1
1
  import useIsomorphicLayoutEffect from "../utils/useIsomorphicLayoutEffect.js";
2
2
  import { useId as useId$1 } from "../hooks/useId.js";
3
+ import { useSlots } from "../hooks/useSlots.js";
3
4
  import { fixedForwardRef } from "../utils/modern-polymorphic.js";
4
5
  import _VisuallyHidden_module_css_default from "../_VisuallyHidden.module.css.js";
5
- import { useSlots } from "../hooks/useSlots.js";
6
6
  import { ActionListContainerContext } from "../ActionList/ActionListContainerContext.js";
7
7
  import Heading$1 from "../Heading/Heading.js";
8
8
  import ActionList_module_css_default from "../ActionList/ActionList.module.css.js";
@@ -1,7 +1,7 @@
1
1
  import { useProvidedRefOrCreate } from "../hooks/useProvidedRefOrCreate.js";
2
2
  import { warning } from "../utils/warning.js";
3
- import { isResponsiveValue } from "../hooks/useResponsiveValue.js";
4
3
  import { isSlot } from "../utils/is-slot.js";
4
+ import { isResponsiveValue } from "../hooks/useResponsiveValue.js";
5
5
  import { getResponsiveAttributes } from "../internal/utils/getResponsiveAttributes.js";
6
6
  import Heading from "../Heading/Heading.js";
7
7
  import Link from "../Link/Link.js";
@@ -1,8 +1,8 @@
1
1
  import { useMergedRefs } from "../hooks/useMergedRefs.js";
2
2
  import { useId as useId$1 } from "../hooks/useId.js";
3
3
  import { warning } from "../utils/warning.js";
4
- import { isResponsiveValue } from "../hooks/useResponsiveValue.js";
5
4
  import { useSlots } from "../hooks/useSlots.js";
5
+ import { isResponsiveValue } from "../hooks/useResponsiveValue.js";
6
6
  import { useOverflow } from "../hooks/useOverflow.js";
7
7
  import { getResponsiveAttributes } from "../internal/utils/getResponsiveAttributes.js";
8
8
  import PageLayout_module_css_default from "./PageLayout.module.css.js";
@@ -12,8 +12,8 @@ import { c } from "react-compiler-runtime";
12
12
  import { clsx } from "clsx";
13
13
  import { jsx, jsxs } from "react/jsx-runtime";
14
14
  import React, { useRef, useState } from "react";
15
- import { FocusKeys } from "@primer/behaviors";
16
15
  import { isFocusable } from "@primer/behaviors/utils";
16
+ import { FocusKeys } from "@primer/behaviors";
17
17
  import { isValidElementType } from "react-is";
18
18
  //#region src/TextInputWithTokens/TextInputWithTokens.tsx
19
19
  /**
@@ -184,12 +184,13 @@ const Tooltip = /*#__PURE__*/ React.forwardRef(({ direction = "s", text, type =
184
184
  (_child$props$onFocus = (_child$props3 = child.props).onFocus) === null || _child$props$onFocus === void 0 || _child$props$onFocus.call(_child$props3, event);
185
185
  },
186
186
  onMouseOverCapture: (event) => {
187
+ const delayTime = delayTimeMap[delay] || 50;
187
188
  openTimeoutRef.current = safeSetTimeout(() => {
188
189
  var _child$props$onMouseE, _child$props4;
189
190
  if (!openTimeoutRef.current) return;
190
191
  openTooltip();
191
192
  (_child$props$onMouseE = (_child$props4 = child.props).onMouseEnter) === null || _child$props$onMouseE === void 0 || _child$props$onMouseE.call(_child$props4, event);
192
- }, delayTimeMap[delay] || 50);
193
+ }, delayTime);
193
194
  },
194
195
  onMouseLeave: (event) => {
195
196
  var _child$props$onMouseL, _child$props5;
@@ -1,4 +1,6 @@
1
1
  import { useId as useId$1 } from "../hooks/useId.js";
2
+ import { isSlot } from "../utils/is-slot.js";
3
+ import { useSlots } from "../hooks/useSlots.js";
2
4
  import Spinner from "../Spinner/Spinner.js";
3
5
  import { AriaStatus } from "../live-region/AriaStatus.js";
4
6
  import { fixedForwardRef } from "../utils/modern-polymorphic.js";
@@ -10,8 +12,6 @@ import useSafeTimeout from "../hooks/useSafeTimeout.js";
10
12
  import { Tooltip } from "../TooltipV2/Tooltip.js";
11
13
  import { IconButton } from "../Button/IconButton.js";
12
14
  import { ButtonComponent } from "../Button/Button.js";
13
- import { isSlot } from "../utils/is-slot.js";
14
- import { useSlots } from "../hooks/useSlots.js";
15
15
  import { Dialog } from "../Dialog/Dialog.js";
16
16
  import { ConfirmationDialog } from "../ConfirmationDialog/ConfirmationDialog.js";
17
17
  import { ActionList } from "../ActionList/index.js";
@@ -349,7 +349,10 @@ const SubTree = ({ count, state, children, "aria-label": ariaLabel }) => {
349
349
  });
350
350
  setLoadingFocused(false);
351
351
  }
352
- } else if (state === "loading") announceUpdate(`${getAccessibleName(parentElement)} content loading`);
352
+ } else if (state === "loading") {
353
+ const parentName = getAccessibleName(parentElement);
354
+ announceUpdate(`${parentName} content loading`);
355
+ }
353
356
  }, [
354
357
  loadingFocused,
355
358
  previousState,
@@ -1,14 +1,14 @@
1
1
  import { useProvidedRefOrCreate } from "../../hooks/useProvidedRefOrCreate.js";
2
2
  import { useAnchoredPosition } from "../../hooks/useAnchoredPosition.js";
3
3
  import { useId as useId$1 } from "../../hooks/useId.js";
4
+ import { isSlot } from "../../utils/is-slot.js";
5
+ import { useSlots } from "../../hooks/useSlots.js";
4
6
  import Spinner from "../../Spinner/Spinner.js";
5
7
  import { AriaStatus } from "../../live-region/AriaStatus.js";
6
8
  import { invariant } from "../../utils/invariant.js";
7
9
  import { IconButton } from "../../Button/IconButton.js";
8
10
  import { ButtonComponent } from "../../Button/Button.js";
9
11
  import { useResponsiveValue } from "../../hooks/useResponsiveValue.js";
10
- import { isSlot } from "../../utils/is-slot.js";
11
- import { useSlots } from "../../hooks/useSlots.js";
12
12
  import { ActionListContainerContext } from "../../ActionList/ActionListContainerContext.js";
13
13
  import Heading from "../../Heading/Heading.js";
14
14
  import Link from "../../Link/Link.js";
@@ -1,8 +1,8 @@
1
1
  import useIsomorphicLayoutEffect from "../../utils/useIsomorphicLayoutEffect.js";
2
2
  import { useResizeObserver } from "../../hooks/useResizeObserver.js";
3
3
  import { useId as useId$1 } from "../../hooks/useId.js";
4
- import { invariant } from "../../utils/invariant.js";
5
4
  import { isSlot } from "../../utils/is-slot.js";
5
+ import { invariant } from "../../utils/invariant.js";
6
6
  import { createComponent } from "../../utils/create-component.js";
7
7
  import { UnderlineItem, UnderlineItemList, UnderlineWrapper } from "../../internal/components/UnderlineTabbedInterface.js";
8
8
  import UnderlinePanels_module_css_default from "./UnderlinePanels.module.css.js";
@@ -1,4 +1,5 @@
1
1
  "use client";
2
+ import { useSlots } from "../hooks/useSlots.js";
2
3
  import { Announce } from "../live-region/Announce.js";
3
4
  import { AriaAlert } from "../live-region/AriaAlert.js";
4
5
  import { AriaStatus } from "../live-region/AriaStatus.js";
@@ -6,7 +7,6 @@ import { ButtonBase } from "../Button/ButtonBase.js";
6
7
  import { KeybindingHint } from "../KeybindingHint/KeybindingHint.js";
7
8
  import { getAccessibleKeybindingHintString } from "../KeybindingHint/utils.js";
8
9
  import { Tooltip } from "../TooltipV2/Tooltip.js";
9
- import { useSlots } from "../hooks/useSlots.js";
10
10
  import { useOverflow } from "../hooks/useOverflow.js";
11
11
  import { ScrollableRegion } from "../ScrollableRegion/ScrollableRegion.js";
12
12
  import { Dialog } from "../Dialog/Dialog.js";
@@ -91,7 +91,8 @@ function useDialog(t0) {
91
91
  let t8;
92
92
  if ($[15] !== getFocusableItem) {
93
93
  t8 = (e_1) => {
94
- const focusableItem_0 = getFocusableItem(e_1, e_1.shiftKey ? -1 : 1);
94
+ const movement_0 = e_1.shiftKey ? -1 : 1;
95
+ const focusableItem_0 = getFocusableItem(e_1, movement_0);
95
96
  if (!focusableItem_0) return;
96
97
  focusableItem_0.focus();
97
98
  };
@@ -15,7 +15,8 @@ function useScrollFlash(scrollContainerRef) {
15
15
  if (!scrollContainer) return;
16
16
  const id = requestAnimationFrame(() => {
17
17
  const currentScroll = scrollContainer.scrollTop;
18
- scrollContainer.scrollTop = currentScroll < 1 ? currentScroll + 1 : currentScroll - 1;
18
+ const altScroll = currentScroll < 1 ? currentScroll + 1 : currentScroll - 1;
19
+ scrollContainer.scrollTop = altScroll;
19
20
  scrollContainer.scrollTop = currentScroll;
20
21
  });
21
22
  return () => cancelAnimationFrame(id);
package/dist/index.js CHANGED
@@ -9,12 +9,15 @@ import { VisuallyHidden } from "./VisuallyHidden/VisuallyHidden.js";
9
9
  import { useOnOutsideClick } from "./hooks/useOnOutsideClick.js";
10
10
  import { useProvidedRefOrCreate } from "./hooks/useProvidedRefOrCreate.js";
11
11
  import { useOnEscapePress } from "./hooks/useOnEscapePress.js";
12
+ import { useOpenAndCloseFocus } from "./hooks/useOpenAndCloseFocus.js";
12
13
  import useIsomorphicLayoutEffect from "./utils/useIsomorphicLayoutEffect.js";
13
14
  import { useResizeObserver } from "./hooks/useResizeObserver.js";
14
15
  import { useAnchoredPosition } from "./hooks/useAnchoredPosition.js";
15
- import { useOpenAndCloseFocus } from "./hooks/useOpenAndCloseFocus.js";
16
16
  import { useOverlay } from "./hooks/useOverlay.js";
17
+ import { useRefObjectAsForwardedRef } from "./hooks/useRefObjectAsForwardedRef.js";
17
18
  import { useId } from "./hooks/useId.js";
19
+ import { isSlot } from "./utils/is-slot.js";
20
+ import { useSlots } from "./hooks/useSlots.js";
18
21
  import Spinner from "./Spinner/Spinner.js";
19
22
  import CounterLabel from "./CounterLabel/CounterLabel.js";
20
23
  import { ButtonBase } from "./Button/ButtonBase.js";
@@ -25,8 +28,6 @@ import { IconButton } from "./Button/IconButton.js";
25
28
  import { LinkButton } from "./Button/LinkButton.js";
26
29
  import { ButtonComponent } from "./Button/Button.js";
27
30
  import { useResponsiveValue } from "./hooks/useResponsiveValue.js";
28
- import { isSlot } from "./utils/is-slot.js";
29
- import { useSlots } from "./hooks/useSlots.js";
30
31
  import { PageLayout } from "./PageLayout/PageLayout.js";
31
32
  import { SplitPageLayout } from "./SplitPageLayout/SplitPageLayout.js";
32
33
  import useDetails from "./hooks/useDetails.js";
@@ -38,7 +39,6 @@ import Portal_default from "./Portal/index.js";
38
39
  import { Dialog } from "./Dialog/Dialog.js";
39
40
  import { ConfirmationDialog } from "./ConfirmationDialog/ConfirmationDialog.js";
40
41
  import { useConfirm } from "./ConfirmationDialog/useConfirm.js";
41
- import { useRefObjectAsForwardedRef } from "./hooks/useRefObjectAsForwardedRef.js";
42
42
  import { createComponent } from "./utils/create-component.js";
43
43
  import { asSlot } from "./utils/as-slot.js";
44
44
  import Radio from "./Radio/Radio.js";
@@ -1,6 +1,6 @@
1
1
  import { useId as useId$1 } from "../../../hooks/useId.js";
2
- import VisuallyHidden from "../../../_VisuallyHidden.js";
3
2
  import { useSlots } from "../../../hooks/useSlots.js";
3
+ import VisuallyHidden from "../../../_VisuallyHidden.js";
4
4
  import ValidationAnimationContainer from "../ValidationAnimationContainer.js";
5
5
  import CheckboxOrRadioGroupContext from "./CheckboxOrRadioGroupContext.js";
6
6
  import CheckboxOrRadioGroup_module_css_default from "./CheckboxOrRadioGroup.module.css.js";
@@ -5,9 +5,10 @@ const warn = function warn(message) {
5
5
  const warning = function warning(condition, format, ...args) {
6
6
  if (condition) {
7
7
  let index = 0;
8
- warn(format.replace(/%s/g, () => {
8
+ const message = format.replace(/%s/g, () => {
9
9
  return args[index++];
10
- }));
10
+ });
11
+ warn(message);
11
12
  }
12
13
  };
13
14
  //#endregion
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@primer/react",
3
3
  "type": "module",
4
- "version": "38.32.1-rc.3a244cb73",
4
+ "version": "38.32.1-rc.50746cb84",
5
5
  "description": "An implementation of GitHub's Primer Design System using React",
6
6
  "main": "./dist/index.js",
7
7
  "module": "./dist/index.js",
@@ -169,7 +169,7 @@
169
169
  "react-is": "18.3.1",
170
170
  "recast": "0.23.7",
171
171
  "rimraf": "5.0.5",
172
- "rolldown": "^1.1.2",
172
+ "rolldown": "^1.1.4",
173
173
  "rolldown-plugin-dts": "^0.26.0",
174
174
  "rolldown-plugin-import-css": "^0.0.0",
175
175
  "rolldown-plugin-preserve-directives": "^0.0.0",