@primer/react 38.16.0 → 38.17.0-rc.0f1e4e0c9

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.
Files changed (49) hide show
  1. package/CHANGELOG.md +16 -0
  2. package/dist/ActionList/LinkItem.d.ts +6 -3
  3. package/dist/ActionList/LinkItem.d.ts.map +1 -1
  4. package/dist/ActionList/LinkItem.js +42 -87
  5. package/dist/ActionList/index.d.ts +25 -1
  6. package/dist/ActionList/index.d.ts.map +1 -1
  7. package/dist/ActionMenu/{ActionMenu-53493541.css → ActionMenu-58362ca7.css} +2 -2
  8. package/dist/ActionMenu/ActionMenu-58362ca7.css.map +1 -0
  9. package/dist/ActionMenu/ActionMenu.d.ts.map +1 -1
  10. package/dist/ActionMenu/ActionMenu.js +4 -0
  11. package/dist/ActionMenu/ActionMenu.module.css.js +1 -1
  12. package/dist/Banner/Banner.js +1 -1
  13. package/dist/Breadcrumbs/Breadcrumbs.d.ts +23 -8
  14. package/dist/Breadcrumbs/Breadcrumbs.d.ts.map +1 -1
  15. package/dist/Breadcrumbs/Breadcrumbs.js +27 -65
  16. package/dist/Details/Details.js +1 -1
  17. package/dist/FeatureFlags/DefaultFeatureFlags.d.ts.map +1 -1
  18. package/dist/FeatureFlags/DefaultFeatureFlags.js +2 -1
  19. package/dist/NavList/NavList.d.ts +20 -3
  20. package/dist/NavList/NavList.d.ts.map +1 -1
  21. package/dist/NavList/NavList.js +50 -124
  22. package/dist/Overlay/{Overlay-2e0ce8db.css → Overlay-f81a131d.css} +2 -2
  23. package/dist/Overlay/Overlay-f81a131d.css.map +1 -0
  24. package/dist/Overlay/Overlay.d.ts.map +1 -1
  25. package/dist/Overlay/Overlay.js +35 -22
  26. package/dist/Overlay/Overlay.module.css.js +1 -1
  27. package/dist/hooks/index.d.ts +1 -0
  28. package/dist/hooks/index.d.ts.map +1 -1
  29. package/dist/hooks/useMergedRefs.d.ts +51 -0
  30. package/dist/hooks/useMergedRefs.d.ts.map +1 -0
  31. package/dist/hooks/useMergedRefs.js +86 -0
  32. package/dist/hooks/useProvidedRefOrCreate.d.ts +12 -0
  33. package/dist/hooks/useProvidedRefOrCreate.d.ts.map +1 -1
  34. package/dist/hooks/useProvidedRefOrCreate.js +12 -0
  35. package/dist/hooks/useRefObjectAsForwardedRef.d.ts +12 -0
  36. package/dist/hooks/useRefObjectAsForwardedRef.d.ts.map +1 -1
  37. package/dist/hooks/useRefObjectAsForwardedRef.js +12 -0
  38. package/dist/index.d.ts +1 -0
  39. package/dist/index.d.ts.map +1 -1
  40. package/dist/index.js +1 -0
  41. package/dist/internal/components/CheckboxOrRadioGroup/CheckboxOrRadioGroup.d.ts.map +1 -1
  42. package/dist/internal/components/CheckboxOrRadioGroup/CheckboxOrRadioGroup.js +17 -8
  43. package/generated/hooks.json +22 -0
  44. package/package.json +1 -1
  45. package/dist/ActionMenu/ActionMenu-53493541.css.map +0 -1
  46. package/dist/Overlay/Overlay-2e0ce8db.css.map +0 -1
  47. package/dist/internal/hooks/useMergedRefs.d.ts +0 -2
  48. package/dist/internal/hooks/useMergedRefs.d.ts.map +0 -1
  49. package/dist/internal/hooks/useMergedRefs.js +0 -16
package/CHANGELOG.md CHANGED
@@ -1,5 +1,21 @@
1
1
  # @primer/react
2
2
 
3
+ ## 38.17.0
4
+
5
+ ### Minor Changes
6
+
7
+ - [#7658](https://github.com/primer/react/pull/7658) [`259fdff`](https://github.com/primer/react/commit/259fdff67550e328b851129a78e87413ddb07229) Thanks [@hussam-i-am](https://github.com/hussam-i-am)! - fix(polymorphic): Improve prop passthrough for ActionList.LinkItem and Breadcrumbs.Item
8
+
9
+ - [#7672](https://github.com/primer/react/pull/7672) [`77735f9`](https://github.com/primer/react/commit/77735f975c71b267130899fc1fd7b47bcb5f062d) Thanks [@iansan5653](https://github.com/iansan5653)! - - New: Exposes new `useMergedRefs` hook that can merge two refs into a single combined ref
10
+ - Deprecates `useRefObjectAsForwardedRef`; see doc comment for migration instructions
11
+ - Deprecates `useProvidedRefOrCreate`; see doc comment for migration instructions
12
+
13
+ ### Patch Changes
14
+
15
+ - [#7510](https://github.com/primer/react/pull/7510) [`8fa988b`](https://github.com/primer/react/commit/8fa988ba613117874657af722ef6de768b0e0eb8) Thanks [@francinelucca](https://github.com/francinelucca)! - chore: ensure max-height does not surpass viewport height in Overlay, ActionMenu under feature flag
16
+
17
+ - [#7682](https://github.com/primer/react/pull/7682) [`8aed331`](https://github.com/primer/react/commit/8aed331f9dcb8c51d86bf531f7e331a6ccd23d9a) Thanks [@llastflowers](https://github.com/llastflowers)! - Update CheckboxOrRadioGroup.tsx to add `required` announcement
18
+
3
19
  ## 38.16.0
4
20
 
5
21
  ### Minor Changes
@@ -1,5 +1,5 @@
1
- import React from 'react';
2
- import type { ForwardRefComponent as PolymorphicForwardRefComponent } from '../utils/polymorphic';
1
+ import type React from 'react';
2
+ import type { WithSlotMarker } from '../utils/types/Slots';
3
3
  import type { ActionListItemProps } from './shared';
4
4
  type LinkProps = {
5
5
  download?: string;
@@ -14,6 +14,9 @@ type LinkProps = {
14
14
  className?: string;
15
15
  };
16
16
  export type ActionListLinkItemProps = Pick<ActionListItemProps, 'active' | 'children' | 'inactiveText' | 'variant' | 'size'> & LinkProps;
17
- export declare const LinkItem: PolymorphicForwardRefComponent<"a", ActionListLinkItemProps>;
17
+ declare const LinkItemComponent: <As extends React.ElementType = "a">(props: (React.ComponentPropsWithRef<React.ElementType extends As ? "a" : As> & Pick<ActionListItemProps, "children" | "size" | "active" | "variant" | "inactiveText"> & LinkProps extends infer T ? T extends React.ComponentPropsWithRef<React.ElementType extends As ? "a" : As> & Pick<ActionListItemProps, "children" | "size" | "active" | "variant" | "inactiveText"> & LinkProps ? T extends unknown ? Omit<T, "as"> : never : never : never) & {
18
+ as?: As | undefined;
19
+ } & React.RefAttributes<unknown>) => React.ReactNode;
20
+ export declare const LinkItem: WithSlotMarker<typeof LinkItemComponent>;
18
21
  export {};
19
22
  //# sourceMappingURL=LinkItem.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"LinkItem.d.ts","sourceRoot":"","sources":["../../src/ActionList/LinkItem.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAA;AACzB,OAAO,KAAK,EAAC,mBAAmB,IAAI,8BAA8B,EAAC,MAAM,sBAAsB,CAAA;AAG/F,OAAO,KAAK,EAAC,mBAAmB,EAAC,MAAM,UAAU,CAAA;AAGjD,KAAK,SAAS,GAAG;IACf,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,GAAG,CAAC,EAAE,MAAM,CAAA;IACZ,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,cAAc,CAAC,EAAE,KAAK,CAAC,oBAAoB,CAAC,iBAAiB,CAAC,CAAC,gBAAgB,CAAC,CAAA;IAChF,SAAS,CAAC,EAAE,MAAM,CAAA;CACnB,CAAA;AAGD,MAAM,MAAM,uBAAuB,GAAG,IAAI,CACxC,mBAAmB,EACnB,QAAQ,GAAG,UAAU,GAAG,cAAc,GAAG,SAAS,GAAG,MAAM,CAC5D,GACC,SAAS,CAAA;AAEX,eAAO,MAAM,QAAQ,EA4BhB,8BAA8B,CAAC,GAAG,EAAE,uBAAuB,CAAC,CAAA"}
1
+ {"version":3,"file":"LinkItem.d.ts","sourceRoot":"","sources":["../../src/ActionList/LinkItem.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAA;AAE9B,OAAO,KAAK,EAAC,cAAc,EAAC,MAAM,sBAAsB,CAAA;AAGxD,OAAO,KAAK,EAAC,mBAAmB,EAAC,MAAM,UAAU,CAAA;AAIjD,KAAK,SAAS,GAAG;IACf,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,GAAG,CAAC,EAAE,MAAM,CAAA;IACZ,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,cAAc,CAAC,EAAE,KAAK,CAAC,oBAAoB,CAAC,iBAAiB,CAAC,CAAC,gBAAgB,CAAC,CAAA;IAChF,SAAS,CAAC,EAAE,MAAM,CAAA;CACnB,CAAA;AAGD,MAAM,MAAM,uBAAuB,GAAG,IAAI,CACxC,mBAAmB,EACnB,QAAQ,GAAG,UAAU,GAAG,cAAc,GAAG,SAAS,GAAG,MAAM,CAC5D,GACC,SAAS,CAAA;AAIX,QAAA,MAAM,iBAAiB,GACpB,EAAE,SAAS,KAAK,CAAC,WAAW;;oDAqC9B,CAAA;AAED,eAAO,MAAM,QAAQ,EAAE,cAAc,CAAC,OAAO,iBAAiB,CAG5D,CAAA"}
@@ -1,62 +1,46 @@
1
- import { c } from 'react-compiler-runtime';
2
- import React from 'react';
3
1
  import { Item } from './Item.js';
2
+ import { fixedForwardRef } from '../utils/modern-polymorphic.js';
4
3
  import { jsx } from 'react/jsx-runtime';
5
4
  import Link from '../Link/Link.js';
6
5
 
7
- const LinkItem = /*#__PURE__*/React.forwardRef((t0, forwardedRef) => {
8
- const $ = c(22);
9
- let Component;
10
- let active;
11
- let className;
12
- let inactiveText;
13
- let props;
14
- let size;
15
- let variant;
16
- if ($[0] !== t0) {
17
- ({
18
- active,
19
- inactiveText,
20
- variant,
21
- size,
22
- as: Component,
23
- className,
24
- ...props
25
- } = t0);
26
- $[0] = t0;
27
- $[1] = Component;
28
- $[2] = active;
29
- $[3] = className;
30
- $[4] = inactiveText;
31
- $[5] = props;
32
- $[6] = size;
33
- $[7] = variant;
34
- } else {
35
- Component = $[1];
36
- active = $[2];
37
- className = $[3];
38
- inactiveText = $[4];
39
- props = $[5];
40
- size = $[6];
41
- variant = $[7];
42
- }
43
- const t1 = inactiveText ? true : undefined;
44
- let t2;
45
- if ($[8] !== Component || $[9] !== forwardedRef || $[10] !== inactiveText || $[11] !== props) {
46
- t2 = t3 => {
47
- const {
48
- children,
49
- onClick,
50
- ...rest
51
- } = t3;
6
+ const LinkItemComponent = fixedForwardRef(({
7
+ active,
8
+ inactiveText,
9
+ variant,
10
+ size,
11
+ as: Component,
12
+ className,
13
+ ...props
14
+ }, forwardedRef) => {
15
+ return /*#__PURE__*/jsx(Item, {
16
+ className: className,
17
+ active: active,
18
+ inactiveText: inactiveText,
19
+ "data-inactive": inactiveText ? true : undefined,
20
+ variant: variant,
21
+ size: size,
22
+ _PrivateItemWrapper: ({
23
+ children,
24
+ onClick,
25
+ ...rest
26
+ }) => {
52
27
  const clickHandler = event => {
53
28
  onClick && onClick(event);
54
29
  props.onClick && props.onClick(event);
55
30
  };
56
- return inactiveText ? /*#__PURE__*/jsx("span", {
57
- ...rest,
58
- children: children
59
- }) : /*#__PURE__*/jsx(Link, {
31
+ if (inactiveText) {
32
+ return /*#__PURE__*/jsx("span", {
33
+ ...rest,
34
+ children: children
35
+ });
36
+ }
37
+
38
+ // Type safety for the polymorphic `as` prop is enforced at the
39
+ // LinkItem boundary via fixedForwardRef. Internally we widen
40
+ // Link's type so TypeScript doesn't re-check the generic
41
+ // constraint across two polymorphic layers.
42
+ const InternalLink = Link;
43
+ return /*#__PURE__*/jsx(InternalLink, {
60
44
  as: Component,
61
45
  ...rest,
62
46
  ...props,
@@ -64,42 +48,13 @@ const LinkItem = /*#__PURE__*/React.forwardRef((t0, forwardedRef) => {
64
48
  ref: forwardedRef,
65
49
  children: children
66
50
  });
67
- };
68
- $[8] = Component;
69
- $[9] = forwardedRef;
70
- $[10] = inactiveText;
71
- $[11] = props;
72
- $[12] = t2;
73
- } else {
74
- t2 = $[12];
75
- }
76
- let t3;
77
- if ($[13] !== active || $[14] !== className || $[15] !== inactiveText || $[16] !== props.children || $[17] !== size || $[18] !== t1 || $[19] !== t2 || $[20] !== variant) {
78
- t3 = /*#__PURE__*/jsx(Item, {
79
- className: className,
80
- active: active,
81
- inactiveText: inactiveText,
82
- "data-inactive": t1,
83
- variant: variant,
84
- size: size,
85
- _PrivateItemWrapper: t2,
86
- children: props.children
87
- });
88
- $[13] = active;
89
- $[14] = className;
90
- $[15] = inactiveText;
91
- $[16] = props.children;
92
- $[17] = size;
93
- $[18] = t1;
94
- $[19] = t2;
95
- $[20] = variant;
96
- $[21] = t3;
97
- } else {
98
- t3 = $[21];
99
- }
100
- return t3;
51
+ },
52
+ children: props.children
53
+ });
54
+ });
55
+ const LinkItem = Object.assign(LinkItemComponent, {
56
+ displayName: 'ActionList.LinkItem',
57
+ __SLOT__: Symbol('ActionList.LinkItem')
101
58
  });
102
- LinkItem.displayName = 'ActionList.LinkItem';
103
- LinkItem.__SLOT__ = Symbol('ActionList.LinkItem');
104
59
 
105
60
  export { LinkItem };
@@ -84,7 +84,31 @@ export declare const ActionList: (<As extends React.ElementType = "ul">(props: (
84
84
  __SLOT__: symbol;
85
85
  };
86
86
  /** A `Item` that renders a full-size anchor inside ListItem */
87
- LinkItem: import("../utils/polymorphic").ForwardRefComponent<"a", import("./LinkItem").ActionListLinkItemProps>;
87
+ LinkItem: import("../utils/types").WithSlotMarker<(<As extends React.ElementType = "a">(props: (import("react").ComponentPropsWithRef<import("react").ElementType extends As ? "a" : As> & Pick<import("./shared").ActionListItemProps, "children" | "size" | "active" | "variant" | "inactiveText"> & {
88
+ download?: string;
89
+ href?: string;
90
+ hrefLang?: string;
91
+ media?: string;
92
+ ping?: string;
93
+ rel?: string;
94
+ target?: string;
95
+ type?: string;
96
+ referrerPolicy?: React.AnchorHTMLAttributes<HTMLAnchorElement>["referrerPolicy"];
97
+ className?: string;
98
+ } extends infer T ? T extends import("react").ComponentPropsWithRef<import("react").ElementType extends As ? "a" : As> & Pick<import("./shared").ActionListItemProps, "children" | "size" | "active" | "variant" | "inactiveText"> & {
99
+ download?: string;
100
+ href?: string;
101
+ hrefLang?: string;
102
+ media?: string;
103
+ ping?: string;
104
+ rel?: string;
105
+ target?: string;
106
+ type?: string;
107
+ referrerPolicy?: React.AnchorHTMLAttributes<HTMLAnchorElement>["referrerPolicy"];
108
+ className?: string;
109
+ } ? T extends unknown ? Omit<T, "as"> : never : never : never) & {
110
+ as?: As | undefined;
111
+ } & import("react").RefAttributes<unknown>) => React.ReactNode)>;
88
112
  /** Visually separates `Item`s or `Group`s in an `ActionList`. */
89
113
  Divider: import("../utils/types").FCWithSlotMarker<import("react").PropsWithChildren<import("./Divider").ActionListDividerProps>>;
90
114
  /** Secondary text which provides additional information about an `Item`. */
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/ActionList/index.ts"],"names":[],"mappings":"AAUA,YAAY,EAAC,eAAe,EAAC,MAAM,UAAU,CAAA;AAC7C,YAAY,EAAC,oBAAoB,EAAE,2BAA2B,EAAC,MAAM,SAAS,CAAA;AAC9E,YAAY,EAAC,mBAAmB,EAAC,MAAM,UAAU,CAAA;AACjD,YAAY,EAAC,uBAAuB,EAAC,MAAM,YAAY,CAAA;AACvD,YAAY,EAAC,sBAAsB,EAAC,MAAM,WAAW,CAAA;AACrD,YAAY,EAAC,0BAA0B,EAAC,MAAM,eAAe,CAAA;AAC7D,YAAY,EAAC,4BAA4B,EAAE,6BAA6B,EAAC,MAAM,WAAW,CAAA;AAC1F,YAAY,EAAC,sBAAsB,EAAC,MAAM,WAAW,CAAA;AACrD,YAAY,EAAC,6BAA6B,EAAC,MAAM,kBAAkB,CAAA;AAEnE;;GAEG;AACH,eAAO,MAAM,UAAU;;;;;;;;;;;;;;;;;;;;;IACrB,mDAAmD;;IAGnD,yCAAyC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;IAGzC,+DAA+D;;IAG/D,iEAAiE;;IAGjE,4EAA4E;;IAG5E,uDAAuD;;IAGvD,sDAAsD;;IAGtD,mCAAmC;;IAGnC,qCAAqC;;IAGrC,uBAAuB;;CAEvB,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/ActionList/index.ts"],"names":[],"mappings":"AAUA,YAAY,EAAC,eAAe,EAAC,MAAM,UAAU,CAAA;AAC7C,YAAY,EAAC,oBAAoB,EAAE,2BAA2B,EAAC,MAAM,SAAS,CAAA;AAC9E,YAAY,EAAC,mBAAmB,EAAC,MAAM,UAAU,CAAA;AACjD,YAAY,EAAC,uBAAuB,EAAC,MAAM,YAAY,CAAA;AACvD,YAAY,EAAC,sBAAsB,EAAC,MAAM,WAAW,CAAA;AACrD,YAAY,EAAC,0BAA0B,EAAC,MAAM,eAAe,CAAA;AAC7D,YAAY,EAAC,4BAA4B,EAAE,6BAA6B,EAAC,MAAM,WAAW,CAAA;AAC1F,YAAY,EAAC,sBAAsB,EAAC,MAAM,WAAW,CAAA;AACrD,YAAY,EAAC,6BAA6B,EAAC,MAAM,kBAAkB,CAAA;AAEnE;;GAEG;AACH,eAAO,MAAM,UAAU;;;;;;;;;;;;;;;;;;;;;IACrB,mDAAmD;;IAGnD,yCAAyC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;IAGzC,+DAA+D;;;;;;;;;;;;;;;;;;;;;;;;;;IAG/D,iEAAiE;;IAGjE,4EAA4E;;IAG5E,uDAAuD;;IAGvD,sDAAsD;;IAGtD,mCAAmC;;IAGnC,qCAAqC;;IAGrC,uBAAuB;;CAEvB,CAAA"}
@@ -1,2 +1,2 @@
1
- .prc-ActionMenu-ActionMenuContainer-Om1Qz{max-height:100vh}.prc-ActionMenu-ActionMenuContainer-Om1Qz:where([data-variant=fullscreen]){padding-top:var(--base-size-36,2.25rem)}.prc-ActionMenu-ActionMenuContainer-Om1Qz:where([data-overflow-auto]){overflow:auto}.prc-ActionMenu-ActionMenuContainer-Om1Qz:where([data-overflow-hidden]){overflow:hidden}.prc-ActionMenu-ActionMenuContainer-Om1Qz:where([data-overflow-scroll]){overflow:scroll}.prc-ActionMenu-ActionMenuContainer-Om1Qz:where([data-overflow-visible]){overflow:visible}.prc-ActionMenu-ActionMenuContainer-Om1Qz:where([data-max-height-xsmall]){max-height:192px}.prc-ActionMenu-ActionMenuContainer-Om1Qz:where([data-max-height-small]){max-height:256px}.prc-ActionMenu-ActionMenuContainer-Om1Qz:where([data-max-height-medium]){max-height:320px}.prc-ActionMenu-ActionMenuContainer-Om1Qz:where([data-max-height-large]){max-height:432px}.prc-ActionMenu-ActionMenuContainer-Om1Qz:where([data-max-height-xlarge]){max-height:600px}.prc-ActionMenu-ActionMenuContainer-Om1Qz:where([data-max-height-fit-content]){max-height:-moz-fit-content;max-height:fit-content}
2
- /*# sourceMappingURL=ActionMenu-53493541.css.map */
1
+ .prc-ActionMenu-ActionMenuContainer-Om1Qz{max-height:100vh}.prc-ActionMenu-ActionMenuContainer-Om1Qz:where([data-variant=fullscreen]){padding-top:var(--base-size-36,2.25rem)}.prc-ActionMenu-ActionMenuContainer-Om1Qz:where([data-overflow-auto]){overflow:auto}.prc-ActionMenu-ActionMenuContainer-Om1Qz:where([data-overflow-hidden]){overflow:hidden}.prc-ActionMenu-ActionMenuContainer-Om1Qz:where([data-overflow-scroll]){overflow:scroll}.prc-ActionMenu-ActionMenuContainer-Om1Qz:where([data-overflow-visible]){overflow:visible}.prc-ActionMenu-ActionMenuContainer-Om1Qz:where([data-max-height-xsmall]){max-height:192px}.prc-ActionMenu-ActionMenuContainer-Om1Qz:where([data-max-height-small]){max-height:256px}.prc-ActionMenu-ActionMenuContainer-Om1Qz:where([data-max-height-medium]){max-height:320px}.prc-ActionMenu-ActionMenuContainer-Om1Qz:where([data-max-height-large]){max-height:432px}.prc-ActionMenu-ActionMenuContainer-Om1Qz:where([data-max-height-xlarge]){max-height:600px}.prc-ActionMenu-ActionMenuContainer-Om1Qz:where([data-max-height-clamp-to-viewport][data-max-height-xsmall]){max-height:min(192px,100dvh)}.prc-ActionMenu-ActionMenuContainer-Om1Qz:where([data-max-height-clamp-to-viewport][data-max-height-small]){max-height:min(256px,100dvh)}.prc-ActionMenu-ActionMenuContainer-Om1Qz:where([data-max-height-clamp-to-viewport][data-max-height-medium]){max-height:min(320px,100dvh)}.prc-ActionMenu-ActionMenuContainer-Om1Qz:where([data-max-height-clamp-to-viewport][data-max-height-large]){max-height:min(432px,100dvh)}.prc-ActionMenu-ActionMenuContainer-Om1Qz:where([data-max-height-clamp-to-viewport][data-max-height-xlarge]){max-height:min(600px,100dvh)}.prc-ActionMenu-ActionMenuContainer-Om1Qz:where([data-max-height-fit-content]){max-height:-moz-fit-content;max-height:fit-content}
2
+ /*# sourceMappingURL=ActionMenu-58362ca7.css.map */
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/ActionMenu/ActionMenu.module.css.js"],"names":[],"mappings":"AAAA,0CAEE,gBAoEF,CAlEE,2EACE,uCACF,CAGA,sEACE,aACF,CAEA,wEACE,eACF,CAEA,wEACE,eACF,CAEA,yEACE,gBACF,CAGA,0EACE,gBACF,CAEA,yEACE,gBACF,CAEA,0EACE,gBACF,CAEA,yEACE,gBACF,CAEA,0EACE,gBACF,CAGA,6GACE,4BACF,CAEA,4GACE,4BACF,CAEA,6GACE,4BACF,CAEA,4GACE,4BACF,CAEA,6GACE,4BACF,CAEA,+EACE,2BAAuB,CAAvB,sBACF","file":"ActionMenu-58362ca7.css","sourcesContent":[".ActionMenuContainer {\n /* add default max height */\n max-height: 100vh;\n\n &:where([data-variant='fullscreen']) {\n padding-top: var(--base-size-36);\n }\n\n /* Overflow variants */\n &:where([data-overflow-auto]) {\n overflow: auto;\n }\n\n &:where([data-overflow-hidden]) {\n overflow: hidden;\n }\n\n &:where([data-overflow-scroll]) {\n overflow: scroll;\n }\n\n &:where([data-overflow-visible]) {\n overflow: visible;\n }\n\n /* Max-height size tokens (mirror Overlay sizes) */\n &:where([data-max-height-xsmall]) {\n max-height: 192px;\n }\n\n &:where([data-max-height-small]) {\n max-height: 256px;\n }\n\n &:where([data-max-height-medium]) {\n max-height: 320px;\n }\n\n &:where([data-max-height-large]) {\n max-height: 432px;\n }\n\n &:where([data-max-height-xlarge]) {\n max-height: 600px;\n }\n\n /* Max-height size tokens clamped to viewport (enabled via feature flag) */\n &:where([data-max-height-clamp-to-viewport][data-max-height-xsmall]) {\n max-height: min(192px, 100dvh);\n }\n\n &:where([data-max-height-clamp-to-viewport][data-max-height-small]) {\n max-height: min(256px, 100dvh);\n }\n\n &:where([data-max-height-clamp-to-viewport][data-max-height-medium]) {\n max-height: min(320px, 100dvh);\n }\n\n &:where([data-max-height-clamp-to-viewport][data-max-height-large]) {\n max-height: min(432px, 100dvh);\n }\n\n &:where([data-max-height-clamp-to-viewport][data-max-height-xlarge]) {\n max-height: min(600px, 100dvh);\n }\n\n &:where([data-max-height-fit-content]) {\n max-height: fit-content;\n }\n}\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"ActionMenu.d.ts","sourceRoot":"","sources":["../../src/ActionMenu/ActionMenu.tsx"],"names":[],"mappings":"AAAA,OAAO,KAA8D,MAAM,OAAO,CAAA;AAGlF,OAAO,KAAK,EAAC,oBAAoB,EAAC,MAAM,oBAAoB,CAAA;AAE5D,OAAO,KAAK,EAAC,YAAY,EAAC,MAAM,YAAY,CAAA;AAI5C,OAAO,KAAK,EAAC,WAAW,EAAC,MAAM,WAAW,CAAA;AAC1C,OAAO,KAAK,EAAC,cAAc,EAAC,MAAM,mBAAmB,CAAA;AAIrD,OAAO,KAAK,EAAC,mBAAmB,IAAI,8BAA8B,EAAC,MAAM,sBAAsB,CAAA;AAK/F,OAAO,KAAK,EAAC,gBAAgB,EAAE,cAAc,EAAC,MAAM,sBAAsB,CAAA;AAI1E,MAAM,MAAM,gBAAgB,GAAG,CAC7B,OAAO,EAAE,cAAc,GAAG,eAAe,GAAG,QAAQ,GAAG,KAAK,GAAG,aAAa,GAAG,YAAY,GAAG,OAAO,KAClG,IAAI,CAAA;AAET,MAAM,MAAM,gBAAgB,GAAG,IAAI,CACjC,oBAAoB,EACpB,WAAW,GAAG,cAAc,GAAG,MAAM,GAAG,QAAQ,GAAG,UAAU,CAC9D,GAAG;IACF,OAAO,CAAC,EAAE,gBAAgB,CAAA;IAC1B,SAAS,CAAC,EAAE,OAAO,CAAA;CACpB,CAAA;AAGD,MAAM,MAAM,eAAe,GAAG;IAC5B;;OAEG;IAEH,QAAQ,EAAE,KAAK,CAAC,YAAY,CAAC,GAAG,CAAC,EAAE,GAAG,KAAK,CAAC,YAAY,CAAC,GAAG,CAAC,CAAA;IAE7D;;OAEG;IACH,IAAI,CAAC,EAAE,OAAO,CAAA;IAEd;;OAEG;IACH,YAAY,CAAC,EAAE,CAAC,CAAC,EAAE,OAAO,KAAK,IAAI,CAAA;CACpC,GAAG,IAAI,CAAC,oBAAoB,EAAE,WAAW,CAAC,CAAA;AA8I3C,MAAM,MAAM,qBAAqB,GAAG;IAAC,QAAQ,EAAE,KAAK,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC;IAAC,EAAE,CAAC,EAAE,MAAM,CAAA;CAAC,GAAG,KAAK,CAAC,cAAc,CAAC,WAAW,CAAC,CAAA;AA2DxH,6CAA6C;AAC7C,MAAM,MAAM,qBAAqB,GAAG,WAAW,CAAA;AAe/C,KAAK,gBAAgB,GAAG,OAAO,CAAC,YAAY,CAAC,GAC3C,IAAI,CAAC,oBAAoB,EAAE,OAAO,GAAG,MAAM,GAAG,SAAS,GAAG,mBAAmB,CAAC,GAAG;IAC/E;;OAEG;IACH,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAA;IACzB,gBAAgB,CAAC,EAAE,CAAC,EAAC,QAAQ,EAAC,EAAE;QAAC,QAAQ,EAAE,cAAc,CAAA;KAAC,KAAK,IAAI,CAAA;CACpE,CAAA;AAgHH,eAAO,MAAM,UAAU;;;kBA7LP,KAAK,CAAC,YAAY,CAAC,GAAG,CAAC;aAC5B,MAAM;;;;CA4L4E,CAAA"}
1
+ {"version":3,"file":"ActionMenu.d.ts","sourceRoot":"","sources":["../../src/ActionMenu/ActionMenu.tsx"],"names":[],"mappings":"AAAA,OAAO,KAA8D,MAAM,OAAO,CAAA;AAGlF,OAAO,KAAK,EAAC,oBAAoB,EAAC,MAAM,oBAAoB,CAAA;AAE5D,OAAO,KAAK,EAAC,YAAY,EAAC,MAAM,YAAY,CAAA;AAI5C,OAAO,KAAK,EAAC,WAAW,EAAC,MAAM,WAAW,CAAA;AAC1C,OAAO,KAAK,EAAC,cAAc,EAAC,MAAM,mBAAmB,CAAA;AAIrD,OAAO,KAAK,EAAC,mBAAmB,IAAI,8BAA8B,EAAC,MAAM,sBAAsB,CAAA;AAK/F,OAAO,KAAK,EAAC,gBAAgB,EAAE,cAAc,EAAC,MAAM,sBAAsB,CAAA;AAI1E,MAAM,MAAM,gBAAgB,GAAG,CAC7B,OAAO,EAAE,cAAc,GAAG,eAAe,GAAG,QAAQ,GAAG,KAAK,GAAG,aAAa,GAAG,YAAY,GAAG,OAAO,KAClG,IAAI,CAAA;AAET,MAAM,MAAM,gBAAgB,GAAG,IAAI,CACjC,oBAAoB,EACpB,WAAW,GAAG,cAAc,GAAG,MAAM,GAAG,QAAQ,GAAG,UAAU,CAC9D,GAAG;IACF,OAAO,CAAC,EAAE,gBAAgB,CAAA;IAC1B,SAAS,CAAC,EAAE,OAAO,CAAA;CACpB,CAAA;AAGD,MAAM,MAAM,eAAe,GAAG;IAC5B;;OAEG;IAEH,QAAQ,EAAE,KAAK,CAAC,YAAY,CAAC,GAAG,CAAC,EAAE,GAAG,KAAK,CAAC,YAAY,CAAC,GAAG,CAAC,CAAA;IAE7D;;OAEG;IACH,IAAI,CAAC,EAAE,OAAO,CAAA;IAEd;;OAEG;IACH,YAAY,CAAC,EAAE,CAAC,CAAC,EAAE,OAAO,KAAK,IAAI,CAAA;CACpC,GAAG,IAAI,CAAC,oBAAoB,EAAE,WAAW,CAAC,CAAA;AA8I3C,MAAM,MAAM,qBAAqB,GAAG;IAAC,QAAQ,EAAE,KAAK,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC;IAAC,EAAE,CAAC,EAAE,MAAM,CAAA;CAAC,GAAG,KAAK,CAAC,cAAc,CAAC,WAAW,CAAC,CAAA;AA2DxH,6CAA6C;AAC7C,MAAM,MAAM,qBAAqB,GAAG,WAAW,CAAA;AAe/C,KAAK,gBAAgB,GAAG,OAAO,CAAC,YAAY,CAAC,GAC3C,IAAI,CAAC,oBAAoB,EAAE,OAAO,GAAG,MAAM,GAAG,SAAS,GAAG,mBAAmB,CAAC,GAAG;IAC/E;;OAEG;IACH,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAA;IACzB,gBAAgB,CAAC,EAAE,CAAC,EAAC,QAAQ,EAAC,EAAE;QAAC,QAAQ,EAAE,cAAc,CAAA;KAAC,KAAK,IAAI,CAAA;CACpE,CAAA;AAmHH,eAAO,MAAM,UAAU;;;kBAhMP,KAAK,CAAC,YAAY,CAAC,GAAG,CAAC;aAC5B,MAAM;;;;CA+L4E,CAAA"}
@@ -265,6 +265,7 @@ const Overlay = ({
265
265
  }
266
266
  }, [anchorRef]);
267
267
  const featureFlagDisplayInViewportInsideDialog = useFeatureFlag('primer_react_action_menu_display_in_viewport_inside_dialog');
268
+ const featureFlagMaxHeightClampToViewport = useFeatureFlag('primer_react_overlay_max_height_clamp_to_viewport');
268
269
  const isInsideDialog = useContext(DialogContext) !== undefined;
269
270
  return /*#__PURE__*/jsx(AnchoredOverlay, {
270
271
  anchorRef: anchorRef,
@@ -288,6 +289,9 @@ const Overlay = ({
288
289
  ref: containerRef,
289
290
  className: styles.ActionMenuContainer,
290
291
  "data-variant": responsiveVariant,
292
+ ...(featureFlagMaxHeightClampToViewport ? {
293
+ 'data-max-height-clamp-to-viewport': ''
294
+ } : {}),
291
295
  ...(overlayProps.overflow ? {
292
296
  [`data-overflow-${overlayProps.overflow}`]: ''
293
297
  } : {}),
@@ -1,4 +1,4 @@
1
- import './ActionMenu-53493541.css';
1
+ import './ActionMenu-58362ca7.css';
2
2
 
3
3
  var styles = {"ActionMenuContainer":"prc-ActionMenu-ActionMenuContainer-Om1Qz"};
4
4
 
@@ -3,7 +3,7 @@ import React, { useEffect, forwardRef } from 'react';
3
3
  import { XIcon, AlertIcon, InfoIcon, CheckCircleIcon, StopIcon } from '@primer/octicons-react';
4
4
  import { IconButton } from '../Button/IconButton.js';
5
5
  import { ButtonComponent } from '../Button/Button.js';
6
- import { useMergedRefs } from '../internal/hooks/useMergedRefs.js';
6
+ import { useMergedRefs } from '../hooks/useMergedRefs.js';
7
7
  import { useId } from '../hooks/useId.js';
8
8
  import classes from './Banner.module.css.js';
9
9
  import { jsx, jsxs } from 'react/jsx-runtime';
@@ -1,5 +1,6 @@
1
1
  import type { To } from 'history';
2
2
  import React from 'react';
3
+ import { type PolymorphicProps } from '../utils/modern-polymorphic';
3
4
  export type BreadcrumbsProps = React.PropsWithChildren<{
4
5
  /**
5
6
  * Optional class name for the breadcrumbs container.
@@ -27,24 +28,38 @@ declare function Breadcrumbs({ className, children, style, overflow, variant }:
27
28
  declare namespace Breadcrumbs {
28
29
  var displayName: string;
29
30
  }
30
- type DistributiveOmit<T, TOmitted extends PropertyKey> = T extends any ? Omit<T, TOmitted> : never;
31
- type StyledBreadcrumbsItemProps<As extends React.ElementType> = {
32
- as?: As;
31
+ type StyledBreadcrumbsItemProps<As extends React.ElementType = 'a'> = PolymorphicProps<As, 'a', {
33
32
  to?: To;
34
33
  selected?: boolean;
35
- className?: string;
36
- style?: React.CSSProperties;
37
- } & DistributiveOmit<React.ComponentPropsWithRef<React.ElementType extends As ? 'a' : As>, 'as'>;
34
+ }>;
38
35
  export type BreadcrumbsItemProps<As extends React.ElementType = 'a'> = StyledBreadcrumbsItemProps<As>;
39
36
  declare const _default: typeof Breadcrumbs & {
40
- Item: React.ForwardRefExoticComponent<Omit<StyledBreadcrumbsItemProps<React.ElementType<any, keyof React.JSX.IntrinsicElements>>, "ref"> & React.RefAttributes<any>>;
37
+ Item: (<As extends React.ElementType = "a">(props: (React.ComponentPropsWithRef<React.ElementType extends As ? "a" : As> & {
38
+ to?: To;
39
+ selected?: boolean;
40
+ } extends infer T ? T extends React.ComponentPropsWithRef<React.ElementType extends As ? "a" : As> & {
41
+ to?: To;
42
+ selected?: boolean;
43
+ } ? T extends unknown ? Omit<T, "as"> : never : never : never) & {
44
+ as?: As | undefined;
45
+ } & React.RefAttributes<any>) => React.ReactNode) & {
46
+ displayName: string;
47
+ };
41
48
  };
42
49
  export default _default;
43
50
  /**
44
51
  * @deprecated Use the `Breadcrumbs` component instead (i.e. `<Breadcrumb>` → `<Breadcrumbs>`)
45
52
  */
46
53
  export declare const Breadcrumb: typeof Breadcrumbs & {
47
- Item: React.ForwardRefExoticComponent<Omit<StyledBreadcrumbsItemProps<React.ElementType<any, keyof React.JSX.IntrinsicElements>>, "ref"> & React.RefAttributes<any>>;
54
+ Item: <As extends React.ElementType = "a">(props: (React.ComponentPropsWithRef<React.ElementType extends As ? "a" : As> & {
55
+ to?: To;
56
+ selected?: boolean;
57
+ } extends infer T ? T extends React.ComponentPropsWithRef<React.ElementType extends As ? "a" : As> & {
58
+ to?: To;
59
+ selected?: boolean;
60
+ } ? T extends unknown ? Omit<T, "as"> : never : never : never) & {
61
+ as?: As | undefined;
62
+ } & React.RefAttributes<any>) => React.ReactNode;
48
63
  };
49
64
  /**
50
65
  * @deprecated Use the `BreadcrumbsProps` type instead
@@ -1 +1 @@
1
- {"version":3,"file":"Breadcrumbs.d.ts","sourceRoot":"","sources":["../../src/Breadcrumbs/Breadcrumbs.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAC,EAAE,EAAC,MAAM,SAAS,CAAA;AAC/B,OAAO,KAA6E,MAAM,OAAO,CAAA;AAYjG,MAAM,MAAM,gBAAgB,GAAG,KAAK,CAAC,iBAAiB,CAAC;IACrD;;OAEG;IACH,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB;;;;;OAKG;IACH,QAAQ,CAAC,EAAE,MAAM,GAAG,MAAM,GAAG,gBAAgB,CAAA;IAC7C;;;;OAIG;IACH,OAAO,CAAC,EAAE,QAAQ,GAAG,UAAU,CAAA;IAC/B;;OAEG;IACH,KAAK,CAAC,EAAE,KAAK,CAAC,aAAa,CAAA;CAC5B,CAAC,CAAA;AA2GF,iBAAS,WAAW,CAAC,EAAC,SAAS,EAAE,QAAQ,EAAE,KAAK,EAAE,QAAiB,EAAE,OAAkB,EAAC,EAAE,gBAAgB,qBA+MzG;kBA/MQ,WAAW;;;AA4NpB,KAAK,gBAAgB,CAAC,CAAC,EAAE,QAAQ,SAAS,WAAW,IAAI,CAAC,SAAS,GAAG,GAAG,IAAI,CAAC,CAAC,EAAE,QAAQ,CAAC,GAAG,KAAK,CAAA;AAElG,KAAK,0BAA0B,CAAC,EAAE,SAAS,KAAK,CAAC,WAAW,IAAI;IAC9D,EAAE,CAAC,EAAE,EAAE,CAAA;IACP,EAAE,CAAC,EAAE,EAAE,CAAA;IACP,QAAQ,CAAC,EAAE,OAAO,CAAA;IAClB,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,KAAK,CAAC,EAAE,KAAK,CAAC,aAAa,CAAA;CAC5B,GAAG,gBAAgB,CAAC,KAAK,CAAC,qBAAqB,CAAC,KAAK,CAAC,WAAW,SAAS,EAAE,GAAG,GAAG,GAAG,EAAE,CAAC,EAAE,IAAI,CAAC,CAAA;AAwBhG,MAAM,MAAM,oBAAoB,CAAC,EAAE,SAAS,KAAK,CAAC,WAAW,GAAG,GAAG,IAAI,0BAA0B,CAAC,EAAE,CAAC,CAAA;;;;AACrG,wBAAkE;AAElE;;GAEG;AACH,eAAO,MAAM,UAAU;;CAAsD,CAAA;AAE7E;;GAEG;AACH,MAAM,MAAM,eAAe,GAAG,gBAAgB,CAAA;AAE9C;;GAEG;AACH,MAAM,MAAM,mBAAmB,CAAC,EAAE,SAAS,KAAK,CAAC,WAAW,GAAG,GAAG,IAAI,oBAAoB,CAAC,EAAE,CAAC,CAAA"}
1
+ {"version":3,"file":"Breadcrumbs.d.ts","sourceRoot":"","sources":["../../src/Breadcrumbs/Breadcrumbs.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAC,EAAE,EAAC,MAAM,SAAS,CAAA;AAC/B,OAAO,KAA6E,MAAM,OAAO,CAAA;AAWjG,OAAO,EAAC,KAAK,gBAAgB,EAAkB,MAAM,6BAA6B,CAAA;AAElF,MAAM,MAAM,gBAAgB,GAAG,KAAK,CAAC,iBAAiB,CAAC;IACrD;;OAEG;IACH,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB;;;;;OAKG;IACH,QAAQ,CAAC,EAAE,MAAM,GAAG,MAAM,GAAG,gBAAgB,CAAA;IAC7C;;;;OAIG;IACH,OAAO,CAAC,EAAE,QAAQ,GAAG,UAAU,CAAA;IAC/B;;OAEG;IACH,KAAK,CAAC,EAAE,KAAK,CAAC,aAAa,CAAA;CAC5B,CAAC,CAAA;AA8GF,iBAAS,WAAW,CAAC,EAAC,SAAS,EAAE,QAAQ,EAAE,KAAK,EAAE,QAAiB,EAAE,OAAkB,EAAC,EAAE,gBAAgB,qBA+MzG;kBA/MQ,WAAW;;;AA2NpB,KAAK,0BAA0B,CAAC,EAAE,SAAS,KAAK,CAAC,WAAW,GAAG,GAAG,IAAI,gBAAgB,CACpF,EAAE,EACF,GAAG,EACH;IACE,EAAE,CAAC,EAAE,EAAE,CAAA;IACP,QAAQ,CAAC,EAAE,OAAO,CAAA;CACnB,CACF,CAAA;AAsBD,MAAM,MAAM,oBAAoB,CAAC,EAAE,SAAS,KAAK,CAAC,WAAW,GAAG,GAAG,IAAI,0BAA0B,CAAC,EAAE,CAAC,CAAA;;YAnBlG,EAAE,SAAS,KAAK,CAAC,WAAW;aANtB,EAAE;mBACI,OAAO;;aADb,EAAE;mBACI,OAAO;;;;;;;AA2BtB,wBAAiF;AAEjF;;GAEG;AACH,eAAO,MAAM,UAAU;WA3BpB,EAAE,SAAS,KAAK,CAAC,WAAW;aANtB,EAAE;mBACI,OAAO;;aADb,EAAE;mBACI,OAAO;;;;CAgCuD,CAAA;AAE7E;;GAEG;AACH,MAAM,MAAM,eAAe,GAAG,gBAAgB,CAAA;AAE9C;;GAEG;AACH,MAAM,MAAM,mBAAmB,CAAC,EAAE,SAAS,KAAK,CAAC,WAAW,GAAG,GAAG,IAAI,oBAAoB,CAAC,EAAE,CAAC,CAAA"}
@@ -8,6 +8,7 @@ import { KebabHorizontalIcon } from '@primer/octicons-react';
8
8
  import { useResizeObserver } from '../hooks/useResizeObserver.js';
9
9
  import { useOnEscapePress } from '../hooks/useOnEscapePress.js';
10
10
  import { useOnOutsideClick } from '../hooks/useOnOutsideClick.js';
11
+ import { fixedForwardRef } from '../utils/modern-polymorphic.js';
11
12
  import { jsx, jsxs } from 'react/jsx-runtime';
12
13
  import { useFeatureFlag } from '../FeatureFlags/useFeatureFlag.js';
13
14
  import Details from '../Details/Details.js';
@@ -399,69 +400,26 @@ const ItemSeparator = () => {
399
400
  }
400
401
  return t0;
401
402
  };
402
-
403
- // eslint-disable-next-line @typescript-eslint/no-explicit-any
404
-
405
- function BreadcrumbsItemComponent(props, ref) {
406
- const $ = c(14);
407
- let className;
408
- let rest;
409
- let selected;
410
- let t0;
411
- if ($[0] !== props) {
412
- ({
413
- as: t0,
414
- selected,
415
- className,
416
- ...rest
417
- } = props);
418
- $[0] = props;
419
- $[1] = className;
420
- $[2] = rest;
421
- $[3] = selected;
422
- $[4] = t0;
423
- } else {
424
- className = $[1];
425
- rest = $[2];
426
- selected = $[3];
427
- t0 = $[4];
428
- }
429
- const Component = t0 === undefined ? "a" : t0;
430
- const t1 = selected && "selected";
431
- let t2;
432
- if ($[5] !== className || $[6] !== t1) {
433
- t2 = clsx(className, classes.Item, t1);
434
- $[5] = className;
435
- $[6] = t1;
436
- $[7] = t2;
437
- } else {
438
- t2 = $[7];
439
- }
440
- const t3 = selected ? "page" : undefined;
441
- let t4;
442
- if ($[8] !== Component || $[9] !== ref || $[10] !== rest || $[11] !== t2 || $[12] !== t3) {
443
- t4 = /*#__PURE__*/jsx(Component, {
444
- className: t2,
445
- "aria-current": t3,
446
- ref: ref,
447
- ...rest
448
- });
449
- $[8] = Component;
450
- $[9] = ref;
451
- $[10] = rest;
452
- $[11] = t2;
453
- $[12] = t3;
454
- $[13] = t4;
455
- } else {
456
- t4 = $[13];
457
- }
458
- return t4;
459
- }
460
- BreadcrumbsItemComponent.displayName = 'Breadcrumbs.Item';
461
- const BreadcrumbsItem = /*#__PURE__*/React.forwardRef(BreadcrumbsItemComponent);
403
+ const BreadcrumbsItem = fixedForwardRef((props, ref) => {
404
+ const {
405
+ as: Component = 'a',
406
+ selected,
407
+ className,
408
+ ...rest
409
+ } = props;
410
+ return /*#__PURE__*/jsx(Component, {
411
+ className: clsx(className, classes.Item, selected && 'selected'),
412
+ "aria-current": selected ? 'page' : undefined,
413
+ ref: ref,
414
+ ...rest
415
+ });
416
+ });
462
417
  Breadcrumbs.displayName = 'Breadcrumbs';
418
+ const BreadcrumbsItemWithDisplayName = Object.assign(BreadcrumbsItem, {
419
+ displayName: 'Breadcrumbs.Item'
420
+ });
463
421
  var Breadcrumbs_default = Object.assign(Breadcrumbs, {
464
- Item: BreadcrumbsItem
422
+ Item: BreadcrumbsItemWithDisplayName
465
423
  });
466
424
 
467
425
  /**
@@ -479,11 +437,15 @@ const Breadcrumb = Object.assign(Breadcrumbs, {
479
437
  * @deprecated Use the `BreadcrumbsItemProps` type instead
480
438
  */
481
439
  function _temp(item, index) {
482
- const href = item.props.href;
483
- const children = item.props.children;
484
- const selected = item.props.selected;
440
+ const {
441
+ children,
442
+ selected,
443
+ as: Component,
444
+ ...itemProps
445
+ } = item.props;
485
446
  return /*#__PURE__*/jsx(ActionList.LinkItem, {
486
- href: href,
447
+ as: Component,
448
+ ...itemProps,
487
449
  "aria-current": selected ? "page" : undefined,
488
450
  children: children
489
451
  }, index);
@@ -3,7 +3,7 @@ import React, { useEffect } from 'react';
3
3
  import { warning } from '../utils/warning.js';
4
4
  import { clsx } from 'clsx';
5
5
  import classes from './Details.module.css.js';
6
- import { useMergedRefs } from '../internal/hooks/useMergedRefs.js';
6
+ import { useMergedRefs } from '../hooks/useMergedRefs.js';
7
7
  import { jsx } from 'react/jsx-runtime';
8
8
 
9
9
  const Root = /*#__PURE__*/React.forwardRef(
@@ -1 +1 @@
1
- {"version":3,"file":"DefaultFeatureFlags.d.ts","sourceRoot":"","sources":["../../src/FeatureFlags/DefaultFeatureFlags.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,gBAAgB,EAAC,MAAM,oBAAoB,CAAA;AAEnD,eAAO,MAAM,mBAAmB,kBAS9B,CAAA"}
1
+ {"version":3,"file":"DefaultFeatureFlags.d.ts","sourceRoot":"","sources":["../../src/FeatureFlags/DefaultFeatureFlags.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,gBAAgB,EAAC,MAAM,oBAAoB,CAAA;AAEnD,eAAO,MAAM,mBAAmB,kBAU9B,CAAA"}
@@ -8,7 +8,8 @@ const DefaultFeatureFlags = FeatureFlagScope.create({
8
8
  primer_react_select_panel_order_selected_at_top: false,
9
9
  primer_react_select_panel_remove_active_descendant: false,
10
10
  primer_react_spinner_synchronize_animations: false,
11
- primer_react_action_menu_display_in_viewport_inside_dialog: false
11
+ primer_react_action_menu_display_in_viewport_inside_dialog: false,
12
+ primer_react_overlay_max_height_clamp_to_viewport: false
12
13
  });
13
14
 
14
15
  export { DefaultFeatureFlags };
@@ -2,16 +2,17 @@ import { type Icon } from '@primer/octicons-react';
2
2
  import type { ForwardRefComponent as PolymorphicForwardRefComponent } from '../utils/polymorphic';
3
3
  import React from 'react';
4
4
  import type { ActionListTrailingActionProps, ActionListDividerProps, ActionListLeadingVisualProps, ActionListTrailingVisualProps, ActionListGroupHeadingProps } from '../ActionList';
5
+ import { type PolymorphicProps } from '../utils/modern-polymorphic';
5
6
  export type NavListProps = {
6
7
  children: React.ReactNode;
7
8
  } & React.ComponentProps<'nav'>;
8
- export type NavListItemProps = {
9
+ export type NavListItemProps<As extends React.ElementType = React.ElementType> = PolymorphicProps<As, 'a', {
9
10
  children: React.ReactNode;
10
11
  defaultOpen?: boolean;
11
12
  href?: string;
12
13
  'aria-current'?: 'page' | 'step' | 'location' | 'date' | 'time' | 'true' | 'false' | boolean;
13
14
  inactiveText?: string;
14
- };
15
+ }>;
15
16
  export type NavListSubNavProps = {
16
17
  children: React.ReactNode;
17
18
  };
@@ -40,7 +41,23 @@ export declare const GroupExpand: React.ForwardRefExoticComponent<NavListGroupEx
40
41
  export type NavListGroupHeadingProps = ActionListGroupHeadingProps;
41
42
  export declare const NavList: React.ForwardRefExoticComponent<Omit<NavListProps, "ref"> & React.RefAttributes<HTMLElement>> & {
42
43
  Description: import("../utils/types").FCWithSlotMarker<React.PropsWithChildren<import("..").ActionListDescriptionProps>>;
43
- Item: PolymorphicForwardRefComponent<"a", NavListItemProps>;
44
+ Item: (<As extends React.ElementType = "a">(props: (React.ComponentPropsWithRef<React.ElementType extends As ? "a" : As> & {
45
+ children: React.ReactNode;
46
+ defaultOpen?: boolean;
47
+ href?: string;
48
+ 'aria-current'?: "page" | "step" | "location" | "date" | "time" | "true" | "false" | boolean;
49
+ inactiveText?: string;
50
+ } extends infer T ? T extends React.ComponentPropsWithRef<React.ElementType extends As ? "a" : As> & {
51
+ children: React.ReactNode;
52
+ defaultOpen?: boolean;
53
+ href?: string;
54
+ 'aria-current'?: "page" | "step" | "location" | "date" | "time" | "true" | "false" | boolean;
55
+ inactiveText?: string;
56
+ } ? T extends unknown ? Omit<T, "as"> : never : never : never) & {
57
+ as?: As | undefined;
58
+ } & React.RefAttributes<unknown>) => React.ReactNode) & {
59
+ displayName: string;
60
+ };
44
61
  SubNav: PolymorphicForwardRefComponent<"ul", NavListSubNavProps>;
45
62
  LeadingVisual: import("../utils/types").FCWithSlotMarker<React.PropsWithChildren<import("../ActionList/Visuals").VisualProps>>;
46
63
  TrailingVisual: import("../utils/types").FCWithSlotMarker<React.PropsWithChildren<import("../ActionList/Visuals").VisualProps>>;
@@ -1 +1 @@
1
- {"version":3,"file":"NavList.d.ts","sourceRoot":"","sources":["../../src/NavList/NavList.tsx"],"names":[],"mappings":"AAAA,OAAO,EAA4B,KAAK,IAAI,EAAC,MAAM,wBAAwB,CAAA;AAC3E,OAAO,KAAK,EAAC,mBAAmB,IAAI,8BAA8B,EAAC,MAAM,sBAAsB,CAAA;AAC/F,OAAO,KAAuB,MAAM,OAAO,CAAA;AAE3C,OAAO,KAAK,EACV,6BAA6B,EAC7B,sBAAsB,EACtB,4BAA4B,EAC5B,6BAA6B,EAC7B,2BAA2B,EAC5B,MAAM,eAAe,CAAA;AActB,MAAM,MAAM,YAAY,GAAG;IACzB,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAA;CAC1B,GAAG,KAAK,CAAC,cAAc,CAAC,KAAK,CAAC,CAAA;AAqB/B,MAAM,MAAM,gBAAgB,GAAG;IAC7B,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAA;IACzB,WAAW,CAAC,EAAE,OAAO,CAAA;IACrB,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,cAAc,CAAC,EAAE,MAAM,GAAG,MAAM,GAAG,UAAU,GAAG,MAAM,GAAG,MAAM,GAAG,MAAM,GAAG,OAAO,GAAG,OAAO,CAAA;IAC5F,YAAY,CAAC,EAAE,MAAM,CAAA;CACtB,CAAA;AAqHD,MAAM,MAAM,kBAAkB,GAAG;IAC/B,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAA;CAC1B,CAAA;AAkCD,MAAM,MAAM,yBAAyB,GAAG,4BAA4B,CAAA;AASpE,MAAM,MAAM,0BAA0B,GAAG,6BAA6B,CAAA;AAStE,MAAM,MAAM,mBAAmB,GAAG,sBAAsB,CAAA;AAQxD,MAAM,MAAM,0BAA0B,GAAG,6BAA6B,CAAA;AAStE,MAAM,MAAM,iBAAiB,GAAG,KAAK,CAAC,cAAc,CAAC,aAAa,CAAC,GAAG;IACpE,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAA;IACzB,KAAK,CAAC,EAAE,MAAM,CAAA;CACf,CAAA;AAqBD,KAAK,SAAS,GAAG;IACf,IAAI,EAAE,MAAM,CAAA;IACZ,cAAc,CAAC,EAAE,IAAI,GAAG,MAAM,CAAA;IAC9B,aAAa,CAAC,EAAE,IAAI,CAAA;IACpB,cAAc,CAAC,EAAE,6BAA6B,CAAA;IAC9C,0BAA0B,CAAC,EAAE,MAAM,CAAA;CACpC,GAAG,IAAI,CAAC,gBAAgB,EAAE,UAAU,CAAC,CAAA;AAEtC,MAAM,MAAM,uBAAuB,GAAG;IACpC,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,KAAK,EAAE,SAAS,EAAE,CAAA;IAClB,UAAU,CAAC,EAAE,CAAC,IAAI,EAAE,SAAS,KAAK,KAAK,CAAC,SAAS,CAAA;CAClD,CAAA;AAED,eAAO,MAAM,WAAW,mGAgFvB,CAAA;AAKD,MAAM,MAAM,wBAAwB,GAAG,2BAA2B,CAAA;AAqBlE,eAAO,MAAM,OAAO;;;;;;;;;;;CAWlB,CAAA"}
1
+ {"version":3,"file":"NavList.d.ts","sourceRoot":"","sources":["../../src/NavList/NavList.tsx"],"names":[],"mappings":"AAAA,OAAO,EAA4B,KAAK,IAAI,EAAC,MAAM,wBAAwB,CAAA;AAC3E,OAAO,KAAK,EAAC,mBAAmB,IAAI,8BAA8B,EAAC,MAAM,sBAAsB,CAAA;AAC/F,OAAO,KAAuB,MAAM,OAAO,CAAA;AAE3C,OAAO,KAAK,EACV,6BAA6B,EAC7B,sBAAsB,EACtB,4BAA4B,EAC5B,6BAA6B,EAC7B,2BAA2B,EAC5B,MAAM,eAAe,CAAA;AAUtB,OAAO,EAAkB,KAAK,gBAAgB,EAAC,MAAM,6BAA6B,CAAA;AAKlF,MAAM,MAAM,YAAY,GAAG;IACzB,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAA;CAC1B,GAAG,KAAK,CAAC,cAAc,CAAC,KAAK,CAAC,CAAA;AAqB/B,MAAM,MAAM,gBAAgB,CAAC,EAAE,SAAS,KAAK,CAAC,WAAW,GAAG,KAAK,CAAC,WAAW,IAAI,gBAAgB,CAC/F,EAAE,EACF,GAAG,EACH;IACE,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAA;IACzB,WAAW,CAAC,EAAE,OAAO,CAAA;IACrB,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,cAAc,CAAC,EAAE,MAAM,GAAG,MAAM,GAAG,UAAU,GAAG,MAAM,GAAG,MAAM,GAAG,MAAM,GAAG,OAAO,GAAG,OAAO,CAAA;IAC5F,YAAY,CAAC,EAAE,MAAM,CAAA;CACtB,CACF,CAAA;AA8HD,MAAM,MAAM,kBAAkB,GAAG;IAC/B,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAA;CAC1B,CAAA;AAkCD,MAAM,MAAM,yBAAyB,GAAG,4BAA4B,CAAA;AASpE,MAAM,MAAM,0BAA0B,GAAG,6BAA6B,CAAA;AAStE,MAAM,MAAM,mBAAmB,GAAG,sBAAsB,CAAA;AAQxD,MAAM,MAAM,0BAA0B,GAAG,6BAA6B,CAAA;AAStE,MAAM,MAAM,iBAAiB,GAAG,KAAK,CAAC,cAAc,CAAC,aAAa,CAAC,GAAG;IACpE,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAA;IACzB,KAAK,CAAC,EAAE,MAAM,CAAA;CACf,CAAA;AAqBD,KAAK,SAAS,GAAG;IACf,IAAI,EAAE,MAAM,CAAA;IACZ,cAAc,CAAC,EAAE,IAAI,GAAG,MAAM,CAAA;IAC9B,aAAa,CAAC,EAAE,IAAI,CAAA;IACpB,cAAc,CAAC,EAAE,6BAA6B,CAAA;IAC9C,0BAA0B,CAAC,EAAE,MAAM,CAAA;CACpC,GAAG,IAAI,CAAC,gBAAgB,EAAE,UAAU,CAAC,CAAA;AAEtC,MAAM,MAAM,uBAAuB,GAAG;IACpC,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,KAAK,EAAE,SAAS,EAAE,CAAA;IAClB,UAAU,CAAC,EAAE,CAAC,IAAI,EAAE,SAAS,KAAK,KAAK,CAAC,SAAS,CAAA;CAClD,CAAA;AAED,eAAO,MAAM,WAAW,mGAgFvB,CAAA;AAKD,MAAM,MAAM,wBAAwB,GAAG,2BAA2B,CAAA;AAqBlE,eAAO,MAAM,OAAO;;YAnVjB,EAAE,SAAS,KAAK,CAAC,WAAW;kBATjB,KAAK,CAAC,SAAS;sBACX,OAAO;eACd,MAAM;yBACI,MAAM,GAAG,MAAM,GAAG,UAAU,GAAG,MAAM,GAAG,MAAM,GAAG,MAAM,GAAG,OAAO,GAAG,OAAO;uBAC7E,MAAM;;kBAJX,KAAK,CAAC,SAAS;sBACX,OAAO;eACd,MAAM;yBACI,MAAM,GAAG,MAAM,GAAG,UAAU,GAAG,MAAM,GAAG,MAAM,GAAG,MAAM,GAAG,OAAO,GAAG,OAAO;uBAC7E,MAAM;;;;;;;;;;;;;;CAmWvB,CAAA"}