@primer/react 38.1.0-rc.ee8ca60b6 → 38.1.0-rc.f826eb31c
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +12 -0
- package/dist/ActionBar/ActionBar.d.ts +70 -0
- package/dist/ActionBar/ActionBar.d.ts.map +1 -1
- package/dist/ActionBar/ActionBar.js +232 -16
- package/dist/ActionBar/index.d.ts +17 -1
- package/dist/ActionBar/index.d.ts.map +1 -1
- package/dist/ActionBar/index.js +3 -2
- package/dist/AnchoredOverlay/AnchoredOverlay.d.ts.map +1 -1
- package/dist/AnchoredOverlay/AnchoredOverlay.js +13 -1
- package/dist/PageHeader/PageHeader-9f4a690a.css +2 -0
- package/dist/PageHeader/PageHeader-9f4a690a.css.map +1 -0
- package/dist/PageHeader/PageHeader.d.ts.map +1 -1
- package/dist/PageHeader/PageHeader.js +24 -16
- package/dist/PageHeader/PageHeader.module.css.js +1 -1
- package/dist/experimental/Tabs/Tabs.d.ts +127 -0
- package/dist/experimental/Tabs/Tabs.d.ts.map +1 -0
- package/dist/experimental/Tabs/Tabs.js +317 -0
- package/dist/experimental/Tabs/index.d.ts +3 -0
- package/dist/experimental/Tabs/index.d.ts.map +1 -0
- package/dist/experimental/index.d.ts +1 -0
- package/dist/experimental/index.d.ts.map +1 -1
- package/dist/experimental/index.js +1 -0
- package/generated/components.json +29 -0
- package/package.json +1 -1
- package/dist/PageHeader/PageHeader-4e1d8fee.css +0 -2
- package/dist/PageHeader/PageHeader-4e1d8fee.css.map +0 -1
package/CHANGELOG.md
CHANGED
|
@@ -4,12 +4,20 @@
|
|
|
4
4
|
|
|
5
5
|
### Minor Changes
|
|
6
6
|
|
|
7
|
+
- [#7065](https://github.com/primer/react/pull/7065) [`9090053`](https://github.com/primer/react/commit/90900532e7566da2d12ff74685678463d5c7f247) Thanks [@TylerJDev](https://github.com/TylerJDev)! - ActionBar: Add `ActionBar.Menu` subcomponent
|
|
8
|
+
|
|
7
9
|
- [#7056](https://github.com/primer/react/pull/7056) [`6ff2797`](https://github.com/primer/react/commit/6ff2797662bf7ab8cf8575d13ad061923bf0d9c1) Thanks [@adierkens](https://github.com/adierkens)! - Update active indicators for ActionList & FilteredActionList to follow content height
|
|
8
10
|
|
|
9
11
|
- [#7063](https://github.com/primer/react/pull/7063) [`247c66a`](https://github.com/primer/react/commit/247c66a3c297afba73c6e9e3842cc15ff8a845c1) Thanks [@francinelucca](https://github.com/francinelucca)! - Feat: popover implement click outside
|
|
10
12
|
|
|
13
|
+
- [#7123](https://github.com/primer/react/pull/7123) [`01b16db`](https://github.com/primer/react/commit/01b16dbe6bf7984bcd282ba5d640d2f6b19b887f) Thanks [@adierkens](https://github.com/adierkens)! - Adds an experimental `Tabs` utility component & associated hooks
|
|
14
|
+
|
|
11
15
|
- [#7109](https://github.com/primer/react/pull/7109) [`34e7108`](https://github.com/primer/react/commit/34e71089ea7668d7b0ab4572f125d13b998e8754) Thanks [@adierkens](https://github.com/adierkens)! - Add support to ActionList for 'tablist' and 'tab' roles
|
|
12
16
|
|
|
17
|
+
- [#7112](https://github.com/primer/react/pull/7112) [`7160709`](https://github.com/primer/react/commit/71607096f1ed60455313d3e1e26ce803f985307c) Thanks [@hectahertz](https://github.com/hectahertz)! - PageHeader: Remove useResponsiveValue hook from TitleArea variant prop
|
|
18
|
+
|
|
19
|
+
Migrates PageHeader.TitleArea's `variant` prop to use `getResponsiveAttributes` following ADR-018 for SSR-safe responsive values. This prevents layout shift during hydration when using responsive variants.
|
|
20
|
+
|
|
13
21
|
### Patch Changes
|
|
14
22
|
|
|
15
23
|
- [#7114](https://github.com/primer/react/pull/7114) [`15a13c6`](https://github.com/primer/react/commit/15a13c64917676d47e4ce899ce1f96939cc754d6) Thanks [@liuliu-dev](https://github.com/liuliu-dev)! - ActionList: Fix trailing action button to take full height.
|
|
@@ -18,8 +26,12 @@
|
|
|
18
26
|
|
|
19
27
|
- [#7060](https://github.com/primer/react/pull/7060) [`3468793`](https://github.com/primer/react/commit/3468793e15269d6d9f226ee7844921e44bfc4622) Thanks [@francinelucca](https://github.com/francinelucca)! - @primer/react: chore(Dialog): allow direct children
|
|
20
28
|
|
|
29
|
+
- [#7115](https://github.com/primer/react/pull/7115) [`21cefb9`](https://github.com/primer/react/commit/21cefb96c1ed7d00d6b16f29ea5d358c6502d160) Thanks [@siddharthkp](https://github.com/siddharthkp)! - ActionBar: IconButton no longer adds it's own `data-testid`
|
|
30
|
+
|
|
21
31
|
- [#7061](https://github.com/primer/react/pull/7061) [`e58e102`](https://github.com/primer/react/commit/e58e1027d7f3cdae5223c08d83f7b86918db370b) Thanks [@francinelucca](https://github.com/francinelucca)! - PageLayout: update wrapper dimensions to match PageLayout's root element
|
|
22
32
|
|
|
33
|
+
- [#7130](https://github.com/primer/react/pull/7130) [`57ffdbc`](https://github.com/primer/react/commit/57ffdbce7fa2bedd762b7e4d6dcea1d916e0da9c) Thanks [@joshblack](https://github.com/joshblack)! - Update the `AnchoredOverlay` component so that the `ref` value is not overridden when spreading props
|
|
34
|
+
|
|
23
35
|
- [#7097](https://github.com/primer/react/pull/7097) [`12fad7a`](https://github.com/primer/react/commit/12fad7af4d9d31898dfff5d3419987100b398d9e) Thanks [@francinelucca](https://github.com/francinelucca)! - chore: fix UnderlineWrapper html structure
|
|
24
36
|
|
|
25
37
|
- [#7101](https://github.com/primer/react/pull/7101) [`9382e52`](https://github.com/primer/react/commit/9382e529a8a4a0204ce0c412a0c8840cfbfe9f2c) Thanks [@hectahertz](https://github.com/hectahertz)! - Remove use of useResponsiveValue hook - PageLayout
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import React from 'react';
|
|
2
|
+
import { type ActionListItemProps } from '../ActionList';
|
|
2
3
|
import type { IconButtonProps } from '../Button';
|
|
3
4
|
type Size = 'small' | 'medium' | 'large';
|
|
4
5
|
type A11yProps = {
|
|
@@ -37,11 +38,80 @@ export type ActionBarProps = {
|
|
|
37
38
|
export type ActionBarIconButtonProps = {
|
|
38
39
|
disabled?: boolean;
|
|
39
40
|
} & IconButtonProps;
|
|
41
|
+
export type ActionBarMenuItemProps = ({
|
|
42
|
+
/**
|
|
43
|
+
* Type of menu item to be rendered in the menu (action | group).
|
|
44
|
+
* Defaults to 'action' if not specified.
|
|
45
|
+
*/
|
|
46
|
+
type?: 'action';
|
|
47
|
+
/**
|
|
48
|
+
* Whether the menu item is disabled.
|
|
49
|
+
* All interactions will be prevented if true.
|
|
50
|
+
*/
|
|
51
|
+
disabled?: boolean;
|
|
52
|
+
/**
|
|
53
|
+
* Leading visual rendered for the menu item.
|
|
54
|
+
*/
|
|
55
|
+
leadingVisual?: ActionBarIconButtonProps['icon'];
|
|
56
|
+
/**
|
|
57
|
+
* Trailing visual rendered for the menu item.
|
|
58
|
+
*/
|
|
59
|
+
trailingVisual?: ActionBarIconButtonProps['icon'] | string;
|
|
60
|
+
/**
|
|
61
|
+
* Label for the menu item.
|
|
62
|
+
*/
|
|
63
|
+
label: string;
|
|
64
|
+
/**
|
|
65
|
+
* Callback fired when the menu item is selected.
|
|
66
|
+
*/
|
|
67
|
+
onClick?: ActionListItemProps['onSelect'];
|
|
68
|
+
/**
|
|
69
|
+
* Nested menu items to render within a submenu.
|
|
70
|
+
* If provided, the menu item will render a submenu.
|
|
71
|
+
*/
|
|
72
|
+
items?: ActionBarMenuItemProps[];
|
|
73
|
+
} & Pick<ActionListItemProps, 'variant'>) | {
|
|
74
|
+
type: 'divider';
|
|
75
|
+
};
|
|
76
|
+
export type ActionBarMenuProps = {
|
|
77
|
+
/** Accessible label for the menu button */
|
|
78
|
+
'aria-label': string;
|
|
79
|
+
/** Icon for the menu button */
|
|
80
|
+
icon: ActionBarIconButtonProps['icon'];
|
|
81
|
+
items: ActionBarMenuItemProps[];
|
|
82
|
+
/**
|
|
83
|
+
* Icon displayed when the menu item is overflowing.
|
|
84
|
+
* If 'none' is provided, no icon will be shown in the overflow menu.
|
|
85
|
+
*/
|
|
86
|
+
overflowIcon?: ActionBarIconButtonProps['icon'] | 'none';
|
|
87
|
+
} & IconButtonProps;
|
|
40
88
|
export declare const ActionBar: React.FC<React.PropsWithChildren<ActionBarProps>>;
|
|
41
89
|
export declare const ActionBarIconButton: React.ForwardRefExoticComponent<ActionBarIconButtonProps & React.RefAttributes<unknown>>;
|
|
42
90
|
export declare const ActionBarGroup: React.ForwardRefExoticComponent<{
|
|
43
91
|
children?: React.ReactNode | undefined;
|
|
44
92
|
} & React.RefAttributes<unknown>>;
|
|
93
|
+
export declare const ActionBarMenu: React.ForwardRefExoticComponent<{
|
|
94
|
+
/** Accessible label for the menu button */
|
|
95
|
+
'aria-label': string;
|
|
96
|
+
/** Icon for the menu button */
|
|
97
|
+
icon: ActionBarIconButtonProps["icon"];
|
|
98
|
+
items: ActionBarMenuItemProps[];
|
|
99
|
+
/**
|
|
100
|
+
* Icon displayed when the menu item is overflowing.
|
|
101
|
+
* If 'none' is provided, no icon will be shown in the overflow menu.
|
|
102
|
+
*/
|
|
103
|
+
overflowIcon?: ActionBarIconButtonProps["icon"] | "none";
|
|
104
|
+
} & {
|
|
105
|
+
'aria-label': string;
|
|
106
|
+
'aria-labelledby'?: undefined;
|
|
107
|
+
} & {
|
|
108
|
+
icon: React.ElementType;
|
|
109
|
+
unsafeDisableTooltip?: boolean;
|
|
110
|
+
description?: string;
|
|
111
|
+
tooltipDirection?: import("../TooltipV2").TooltipDirection;
|
|
112
|
+
keyshortcuts?: string;
|
|
113
|
+
keybindingHint?: string;
|
|
114
|
+
} & Omit<import("..").ButtonBaseProps, "aria-label" | "aria-labelledby"> & React.RefAttributes<unknown>>;
|
|
45
115
|
export declare const VerticalDivider: () => React.JSX.Element | null;
|
|
46
116
|
export {};
|
|
47
117
|
//# sourceMappingURL=ActionBar.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ActionBar.d.ts","sourceRoot":"","sources":["../../src/ActionBar/ActionBar.tsx"],"names":[],"mappings":"AACA,OAAO,KAAyD,MAAM,OAAO,CAAA;
|
|
1
|
+
{"version":3,"file":"ActionBar.d.ts","sourceRoot":"","sources":["../../src/ActionBar/ActionBar.tsx"],"names":[],"mappings":"AACA,OAAO,KAAyD,MAAM,OAAO,CAAA;AAE7E,OAAO,EAAa,KAAK,mBAAmB,EAAC,MAAM,eAAe,CAAA;AAOlE,OAAO,KAAK,EAAC,eAAe,EAAC,MAAM,WAAW,CAAA;AAoD9C,KAAK,IAAI,GAAG,OAAO,GAAG,QAAQ,GAAG,OAAO,CAAA;AAExC,KAAK,SAAS,GACV;IACE,wDAAwD;IACxD,YAAY,EAAE,KAAK,CAAC,cAAc,CAAC,YAAY,CAAC,CAAA;IAChD,iBAAiB,CAAC,EAAE,SAAS,CAAA;CAC9B,GACD;IACE,YAAY,CAAC,EAAE,SAAS,CAAA;IACxB;;OAEG;IACH,iBAAiB,EAAE,KAAK,CAAC,cAAc,CAAC,iBAAiB,CAAC,CAAA;CAC3D,CAAA;AAEL,KAAK,QAAQ,GAAG,MAAM,GAAG,WAAW,CAAA;AAEpC,MAAM,MAAM,cAAc,GAAG;IAC3B;;;SAGK;IACL,IAAI,CAAC,EAAE,IAAI,CAAA;IAEX,gCAAgC;IAChC,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAA;IAEzB;;;SAGK;IACL,KAAK,CAAC,EAAE,OAAO,CAAA;IAEf,uBAAuB;IACvB,SAAS,CAAC,EAAE,MAAM,CAAA;IAElB;;;OAGG;IACH,GAAG,CAAC,EAAE,QAAQ,CAAA;CACf,GAAG,SAAS,CAAA;AAEb,MAAM,MAAM,wBAAwB,GAAG;IAAC,QAAQ,CAAC,EAAE,OAAO,CAAA;CAAC,GAAG,eAAe,CAAA;AAE7E,MAAM,MAAM,sBAAsB,GAC9B,CAAC;IACC;;;OAGG;IACH,IAAI,CAAC,EAAE,QAAQ,CAAA;IACf;;;OAGG;IACH,QAAQ,CAAC,EAAE,OAAO,CAAA;IAClB;;OAEG;IACH,aAAa,CAAC,EAAE,wBAAwB,CAAC,MAAM,CAAC,CAAA;IAChD;;OAEG;IACH,cAAc,CAAC,EAAE,wBAAwB,CAAC,MAAM,CAAC,GAAG,MAAM,CAAA;IAC1D;;OAEG;IACH,KAAK,EAAE,MAAM,CAAA;IACb;;OAEG;IACH,OAAO,CAAC,EAAE,mBAAmB,CAAC,UAAU,CAAC,CAAA;IACzC;;;OAGG;IACH,KAAK,CAAC,EAAE,sBAAsB,EAAE,CAAA;CACjC,GAAG,IAAI,CAAC,mBAAmB,EAAE,SAAS,CAAC,CAAC,GACzC;IACE,IAAI,EAAE,SAAS,CAAA;CAChB,CAAA;AAEL,MAAM,MAAM,kBAAkB,GAAG;IAC/B,2CAA2C;IAC3C,YAAY,EAAE,MAAM,CAAA;IACpB,+BAA+B;IAC/B,IAAI,EAAE,wBAAwB,CAAC,MAAM,CAAC,CAAA;IACtC,KAAK,EAAE,sBAAsB,EAAE,CAAA;IAC/B;;;OAGG;IACH,YAAY,CAAC,EAAE,wBAAwB,CAAC,MAAM,CAAC,GAAG,MAAM,CAAA;CACzD,GAAG,eAAe,CAAA;AAgInB,eAAO,MAAM,SAAS,EAAE,KAAK,CAAC,EAAE,CAAC,KAAK,CAAC,iBAAiB,CAAC,cAAc,CAAC,CAgNvE,CAAA;AAED,eAAO,MAAM,mBAAmB,0FAqD/B,CAAA;AAMD,eAAO,MAAM,cAAc;;iCA6BzB,CAAA;AAEF,eAAO,MAAM,aAAa;IAtbxB,2CAA2C;kBAC7B,MAAM;IACpB,+BAA+B;UACzB,wBAAwB,CAAC,MAAM,CAAC;WAC/B,sBAAsB,EAAE;IAC/B;;;OAGG;mBACY,wBAAwB,CAAC,MAAM,CAAC,GAAG,MAAM;;;;;;;;;;;wGAydzD,CAAA;AAED,eAAO,MAAM,eAAe,gCAoB3B,CAAA"}
|
|
@@ -50,6 +50,54 @@ const calculatePossibleItems = (registryEntries, navWidth, gap, moreMenuWidth =
|
|
|
50
50
|
}
|
|
51
51
|
return breakpoint;
|
|
52
52
|
};
|
|
53
|
+
const renderMenuItem = (item, index) => {
|
|
54
|
+
if (item.type === 'divider') {
|
|
55
|
+
return /*#__PURE__*/jsx(ActionList.Divider, {}, index);
|
|
56
|
+
}
|
|
57
|
+
const {
|
|
58
|
+
label,
|
|
59
|
+
onClick,
|
|
60
|
+
disabled,
|
|
61
|
+
trailingVisual: TrailingIcon,
|
|
62
|
+
leadingVisual: LeadingIcon,
|
|
63
|
+
items,
|
|
64
|
+
variant
|
|
65
|
+
} = item;
|
|
66
|
+
if (items && items.length > 0) {
|
|
67
|
+
return /*#__PURE__*/jsxs(ActionMenu, {
|
|
68
|
+
children: [/*#__PURE__*/jsx(ActionMenu.Anchor, {
|
|
69
|
+
children: /*#__PURE__*/jsxs(ActionList.Item, {
|
|
70
|
+
disabled: disabled,
|
|
71
|
+
variant: variant,
|
|
72
|
+
children: [LeadingIcon ? /*#__PURE__*/jsx(ActionList.LeadingVisual, {
|
|
73
|
+
children: /*#__PURE__*/jsx(LeadingIcon, {})
|
|
74
|
+
}) : null, label, TrailingIcon ? /*#__PURE__*/jsx(ActionList.TrailingVisual, {
|
|
75
|
+
children: typeof TrailingIcon === 'string' ? /*#__PURE__*/jsx("span", {
|
|
76
|
+
children: TrailingIcon
|
|
77
|
+
}) : /*#__PURE__*/jsx(TrailingIcon, {})
|
|
78
|
+
}) : null]
|
|
79
|
+
})
|
|
80
|
+
}), /*#__PURE__*/jsx(ActionMenu.Overlay, {
|
|
81
|
+
children: /*#__PURE__*/jsx(ActionList, {
|
|
82
|
+
children: items.map((subItem, subIndex) => renderMenuItem(subItem, subIndex))
|
|
83
|
+
})
|
|
84
|
+
})]
|
|
85
|
+
}, label);
|
|
86
|
+
}
|
|
87
|
+
return /*#__PURE__*/jsxs(ActionList.Item, {
|
|
88
|
+
onSelect: onClick,
|
|
89
|
+
disabled: disabled,
|
|
90
|
+
variant: variant,
|
|
91
|
+
children: [LeadingIcon ? /*#__PURE__*/jsx(ActionList.LeadingVisual, {
|
|
92
|
+
children: /*#__PURE__*/jsx(LeadingIcon, {})
|
|
93
|
+
}) : null, label, TrailingIcon ? /*#__PURE__*/jsx(ActionList.TrailingVisual, {
|
|
94
|
+
children: typeof TrailingIcon === 'string' ? /*#__PURE__*/jsx("span", {
|
|
95
|
+
children: TrailingIcon
|
|
96
|
+
}) : /*#__PURE__*/jsx(TrailingIcon, {})
|
|
97
|
+
}) : null]
|
|
98
|
+
}, label);
|
|
99
|
+
};
|
|
100
|
+
renderMenuItem.displayName = "renderMenuItem";
|
|
53
101
|
const getMenuItems = (navWidth, moreMenuWidth, childRegistry, hasActiveMenu, gap) => {
|
|
54
102
|
const registryEntries = Array.from(childRegistry).filter(entry => entry[1] !== null && (entry[1].type !== 'action' || entry[1].groupId === undefined));
|
|
55
103
|
if (registryEntries.length === 0) return new Set();
|
|
@@ -321,6 +369,26 @@ const ActionBar = props => {
|
|
|
321
369
|
}, label);
|
|
322
370
|
}
|
|
323
371
|
}
|
|
372
|
+
if (menuItem.type === "menu") {
|
|
373
|
+
const menuItems = menuItem.items;
|
|
374
|
+
const {
|
|
375
|
+
icon: Icon_0,
|
|
376
|
+
label: label_0
|
|
377
|
+
} = menuItem;
|
|
378
|
+
return /*#__PURE__*/jsxs(ActionMenu, {
|
|
379
|
+
children: [/*#__PURE__*/jsx(ActionMenu.Anchor, {
|
|
380
|
+
children: /*#__PURE__*/jsxs(ActionList.Item, {
|
|
381
|
+
children: [Icon_0 !== "none" ? /*#__PURE__*/jsx(ActionList.LeadingVisual, {
|
|
382
|
+
children: /*#__PURE__*/jsx(Icon_0, {})
|
|
383
|
+
}) : null, label_0]
|
|
384
|
+
})
|
|
385
|
+
}), /*#__PURE__*/jsx(ActionMenu.Overlay, {
|
|
386
|
+
children: /*#__PURE__*/jsx(ActionList, {
|
|
387
|
+
children: menuItems.map(_temp3)
|
|
388
|
+
})
|
|
389
|
+
})]
|
|
390
|
+
}, id_2);
|
|
391
|
+
}
|
|
324
392
|
const groupedMenuItems = groupedItems.get(id_2) || [];
|
|
325
393
|
if (menuItem.type === "group") {
|
|
326
394
|
return /*#__PURE__*/jsx(React.Fragment, {
|
|
@@ -329,8 +397,8 @@ const ActionBar = props => {
|
|
|
329
397
|
if (childProps_1.type === "action") {
|
|
330
398
|
const {
|
|
331
399
|
onClick: onClick_0,
|
|
332
|
-
icon:
|
|
333
|
-
label:
|
|
400
|
+
icon: Icon_1,
|
|
401
|
+
label: label_1,
|
|
334
402
|
disabled: disabled_0
|
|
335
403
|
} = childProps_1;
|
|
336
404
|
return /*#__PURE__*/jsxs(ActionList.Item, {
|
|
@@ -341,8 +409,8 @@ const ActionBar = props => {
|
|
|
341
409
|
},
|
|
342
410
|
disabled: disabled_0,
|
|
343
411
|
children: [/*#__PURE__*/jsx(ActionList.LeadingVisual, {
|
|
344
|
-
children: /*#__PURE__*/jsx(
|
|
345
|
-
}),
|
|
412
|
+
children: /*#__PURE__*/jsx(Icon_1, {})
|
|
413
|
+
}), label_1]
|
|
346
414
|
}, key_0);
|
|
347
415
|
}
|
|
348
416
|
return null;
|
|
@@ -411,7 +479,7 @@ const ActionBar = props => {
|
|
|
411
479
|
return t20;
|
|
412
480
|
};
|
|
413
481
|
const ActionBarIconButton = /*#__PURE__*/forwardRef((t0, forwardedRef) => {
|
|
414
|
-
const $ = c(
|
|
482
|
+
const $ = c(27);
|
|
415
483
|
let disabled;
|
|
416
484
|
let onClick;
|
|
417
485
|
let props;
|
|
@@ -513,24 +581,22 @@ const ActionBarIconButton = /*#__PURE__*/forwardRef((t0, forwardedRef) => {
|
|
|
513
581
|
return null;
|
|
514
582
|
}
|
|
515
583
|
let t5;
|
|
516
|
-
if ($[22] !== clickHandler || $[23] !== disabled || $[24] !==
|
|
584
|
+
if ($[22] !== clickHandler || $[23] !== disabled || $[24] !== props || $[25] !== size) {
|
|
517
585
|
t5 = /*#__PURE__*/jsx(IconButton, {
|
|
518
586
|
"aria-disabled": disabled,
|
|
519
587
|
ref: ref,
|
|
520
588
|
size: size,
|
|
521
589
|
onClick: clickHandler,
|
|
522
590
|
...props,
|
|
523
|
-
variant: "invisible"
|
|
524
|
-
"data-testid": id
|
|
591
|
+
variant: "invisible"
|
|
525
592
|
});
|
|
526
593
|
$[22] = clickHandler;
|
|
527
594
|
$[23] = disabled;
|
|
528
|
-
$[24] =
|
|
529
|
-
$[25] =
|
|
530
|
-
$[26] =
|
|
531
|
-
$[27] = t5;
|
|
595
|
+
$[24] = props;
|
|
596
|
+
$[25] = size;
|
|
597
|
+
$[26] = t5;
|
|
532
598
|
} else {
|
|
533
|
-
t5 = $[
|
|
599
|
+
t5 = $[26];
|
|
534
600
|
}
|
|
535
601
|
return t5;
|
|
536
602
|
});
|
|
@@ -624,6 +690,150 @@ const ActionBarGroup = /*#__PURE__*/forwardRef((t0, forwardedRef) => {
|
|
|
624
690
|
}
|
|
625
691
|
return t5;
|
|
626
692
|
});
|
|
693
|
+
const ActionBarMenu = /*#__PURE__*/forwardRef((t0, forwardedRef) => {
|
|
694
|
+
const $ = c(35);
|
|
695
|
+
let ariaLabel;
|
|
696
|
+
let icon;
|
|
697
|
+
let items;
|
|
698
|
+
let overflowIcon;
|
|
699
|
+
let props;
|
|
700
|
+
if ($[0] !== t0) {
|
|
701
|
+
({
|
|
702
|
+
"aria-label": ariaLabel,
|
|
703
|
+
icon,
|
|
704
|
+
overflowIcon,
|
|
705
|
+
items,
|
|
706
|
+
...props
|
|
707
|
+
} = t0);
|
|
708
|
+
$[0] = t0;
|
|
709
|
+
$[1] = ariaLabel;
|
|
710
|
+
$[2] = icon;
|
|
711
|
+
$[3] = items;
|
|
712
|
+
$[4] = overflowIcon;
|
|
713
|
+
$[5] = props;
|
|
714
|
+
} else {
|
|
715
|
+
ariaLabel = $[1];
|
|
716
|
+
icon = $[2];
|
|
717
|
+
items = $[3];
|
|
718
|
+
overflowIcon = $[4];
|
|
719
|
+
props = $[5];
|
|
720
|
+
}
|
|
721
|
+
const backupRef = useRef(null);
|
|
722
|
+
const ref = forwardedRef !== null && forwardedRef !== void 0 ? forwardedRef : backupRef;
|
|
723
|
+
const id = useId();
|
|
724
|
+
const {
|
|
725
|
+
registerChild,
|
|
726
|
+
unregisterChild,
|
|
727
|
+
isVisibleChild
|
|
728
|
+
} = React.useContext(ActionBarContext);
|
|
729
|
+
const [menuOpen, setMenuOpen] = useState(false);
|
|
730
|
+
const widthRef = useRef();
|
|
731
|
+
let t1;
|
|
732
|
+
if ($[6] !== ariaLabel || $[7] !== icon || $[8] !== id || $[9] !== items || $[10] !== overflowIcon || $[11] !== ref || $[12] !== registerChild || $[13] !== unregisterChild) {
|
|
733
|
+
t1 = () => {
|
|
734
|
+
var _ref$current3;
|
|
735
|
+
const width = (_ref$current3 = ref.current) === null || _ref$current3 === void 0 ? void 0 : _ref$current3.getBoundingClientRect().width;
|
|
736
|
+
if (width) {
|
|
737
|
+
widthRef.current = width;
|
|
738
|
+
}
|
|
739
|
+
if (!widthRef.current) {
|
|
740
|
+
return;
|
|
741
|
+
}
|
|
742
|
+
registerChild(id, {
|
|
743
|
+
type: "menu",
|
|
744
|
+
width: widthRef.current,
|
|
745
|
+
label: ariaLabel,
|
|
746
|
+
icon: overflowIcon ? overflowIcon : icon,
|
|
747
|
+
items
|
|
748
|
+
});
|
|
749
|
+
return () => {
|
|
750
|
+
unregisterChild(id);
|
|
751
|
+
};
|
|
752
|
+
};
|
|
753
|
+
$[6] = ariaLabel;
|
|
754
|
+
$[7] = icon;
|
|
755
|
+
$[8] = id;
|
|
756
|
+
$[9] = items;
|
|
757
|
+
$[10] = overflowIcon;
|
|
758
|
+
$[11] = ref;
|
|
759
|
+
$[12] = registerChild;
|
|
760
|
+
$[13] = unregisterChild;
|
|
761
|
+
$[14] = t1;
|
|
762
|
+
} else {
|
|
763
|
+
t1 = $[14];
|
|
764
|
+
}
|
|
765
|
+
let t2;
|
|
766
|
+
if ($[15] !== ariaLabel || $[16] !== icon || $[17] !== items || $[18] !== overflowIcon || $[19] !== registerChild || $[20] !== unregisterChild) {
|
|
767
|
+
t2 = [registerChild, unregisterChild, ariaLabel, overflowIcon, icon, items];
|
|
768
|
+
$[15] = ariaLabel;
|
|
769
|
+
$[16] = icon;
|
|
770
|
+
$[17] = items;
|
|
771
|
+
$[18] = overflowIcon;
|
|
772
|
+
$[19] = registerChild;
|
|
773
|
+
$[20] = unregisterChild;
|
|
774
|
+
$[21] = t2;
|
|
775
|
+
} else {
|
|
776
|
+
t2 = $[21];
|
|
777
|
+
}
|
|
778
|
+
useIsomorphicLayoutEffect(t1, t2);
|
|
779
|
+
if (!isVisibleChild(id)) {
|
|
780
|
+
return null;
|
|
781
|
+
}
|
|
782
|
+
let t3;
|
|
783
|
+
if ($[22] !== ariaLabel || $[23] !== icon || $[24] !== props) {
|
|
784
|
+
t3 = /*#__PURE__*/jsx(ActionMenu.Anchor, {
|
|
785
|
+
children: /*#__PURE__*/jsx(IconButton, {
|
|
786
|
+
variant: "invisible",
|
|
787
|
+
"aria-label": ariaLabel,
|
|
788
|
+
icon: icon,
|
|
789
|
+
...props
|
|
790
|
+
})
|
|
791
|
+
});
|
|
792
|
+
$[22] = ariaLabel;
|
|
793
|
+
$[23] = icon;
|
|
794
|
+
$[24] = props;
|
|
795
|
+
$[25] = t3;
|
|
796
|
+
} else {
|
|
797
|
+
t3 = $[25];
|
|
798
|
+
}
|
|
799
|
+
let t4;
|
|
800
|
+
if ($[26] !== items) {
|
|
801
|
+
t4 = items.map(_temp4);
|
|
802
|
+
$[26] = items;
|
|
803
|
+
$[27] = t4;
|
|
804
|
+
} else {
|
|
805
|
+
t4 = $[27];
|
|
806
|
+
}
|
|
807
|
+
let t5;
|
|
808
|
+
if ($[28] !== t4) {
|
|
809
|
+
t5 = /*#__PURE__*/jsx(ActionMenu.Overlay, {
|
|
810
|
+
children: /*#__PURE__*/jsx(ActionList, {
|
|
811
|
+
children: t4
|
|
812
|
+
})
|
|
813
|
+
});
|
|
814
|
+
$[28] = t4;
|
|
815
|
+
$[29] = t5;
|
|
816
|
+
} else {
|
|
817
|
+
t5 = $[29];
|
|
818
|
+
}
|
|
819
|
+
let t6;
|
|
820
|
+
if ($[30] !== menuOpen || $[31] !== ref || $[32] !== t3 || $[33] !== t5) {
|
|
821
|
+
t6 = /*#__PURE__*/jsxs(ActionMenu, {
|
|
822
|
+
anchorRef: ref,
|
|
823
|
+
open: menuOpen,
|
|
824
|
+
onOpenChange: setMenuOpen,
|
|
825
|
+
children: [t3, t5]
|
|
826
|
+
});
|
|
827
|
+
$[30] = menuOpen;
|
|
828
|
+
$[31] = ref;
|
|
829
|
+
$[32] = t3;
|
|
830
|
+
$[33] = t5;
|
|
831
|
+
$[34] = t6;
|
|
832
|
+
} else {
|
|
833
|
+
t6 = $[34];
|
|
834
|
+
}
|
|
835
|
+
return t6;
|
|
836
|
+
});
|
|
627
837
|
const VerticalDivider = () => {
|
|
628
838
|
const $ = c(8);
|
|
629
839
|
const ref = useRef(null);
|
|
@@ -637,8 +847,8 @@ const VerticalDivider = () => {
|
|
|
637
847
|
let t0;
|
|
638
848
|
if ($[0] !== id || $[1] !== registerChild || $[2] !== unregisterChild) {
|
|
639
849
|
t0 = () => {
|
|
640
|
-
var _ref$
|
|
641
|
-
const width = (_ref$
|
|
850
|
+
var _ref$current4;
|
|
851
|
+
const width = (_ref$current4 = ref.current) === null || _ref$current4 === void 0 ? void 0 : _ref$current4.getBoundingClientRect().width;
|
|
642
852
|
if (width) {
|
|
643
853
|
widthRef.current = width;
|
|
644
854
|
}
|
|
@@ -691,5 +901,11 @@ function _temp() {
|
|
|
691
901
|
function _temp2() {
|
|
692
902
|
return new Set();
|
|
693
903
|
}
|
|
904
|
+
function _temp3(item, index) {
|
|
905
|
+
return renderMenuItem(item, index);
|
|
906
|
+
}
|
|
907
|
+
function _temp4(item, index) {
|
|
908
|
+
return renderMenuItem(item, index);
|
|
909
|
+
}
|
|
694
910
|
|
|
695
|
-
export { ActionBar, ActionBarGroup, ActionBarIconButton, VerticalDivider };
|
|
911
|
+
export { ActionBar, ActionBarGroup, ActionBarIconButton, ActionBarMenu, VerticalDivider };
|
|
@@ -1,10 +1,26 @@
|
|
|
1
|
-
export type { ActionBarProps } from './ActionBar';
|
|
1
|
+
export type { ActionBarProps, ActionBarMenuProps, ActionBarMenuItemProps } from './ActionBar';
|
|
2
2
|
declare const ActionBar: import("react").FC<import("react").PropsWithChildren<import("./ActionBar").ActionBarProps>> & {
|
|
3
3
|
IconButton: import("react").ForwardRefExoticComponent<import("./ActionBar").ActionBarIconButtonProps & import("react").RefAttributes<unknown>>;
|
|
4
4
|
Divider: () => import("react").JSX.Element | null;
|
|
5
5
|
Group: import("react").ForwardRefExoticComponent<{
|
|
6
6
|
children?: import("react").ReactNode | undefined;
|
|
7
7
|
} & import("react").RefAttributes<unknown>>;
|
|
8
|
+
Menu: import("react").ForwardRefExoticComponent<{
|
|
9
|
+
'aria-label': string;
|
|
10
|
+
icon: import("./ActionBar").ActionBarIconButtonProps["icon"];
|
|
11
|
+
items: import("./ActionBar").ActionBarMenuItemProps[];
|
|
12
|
+
overflowIcon?: import("./ActionBar").ActionBarIconButtonProps["icon"] | "none";
|
|
13
|
+
} & {
|
|
14
|
+
'aria-label': string;
|
|
15
|
+
'aria-labelledby'?: undefined;
|
|
16
|
+
} & {
|
|
17
|
+
icon: React.ElementType;
|
|
18
|
+
unsafeDisableTooltip?: boolean;
|
|
19
|
+
description?: string;
|
|
20
|
+
tooltipDirection?: import("../TooltipV2").TooltipDirection;
|
|
21
|
+
keyshortcuts?: string;
|
|
22
|
+
keybindingHint?: string;
|
|
23
|
+
} & Omit<import("..").ButtonBaseProps, "aria-label" | "aria-labelledby"> & import("react").RefAttributes<unknown>>;
|
|
8
24
|
};
|
|
9
25
|
export default ActionBar;
|
|
10
26
|
export { ActionBar };
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/ActionBar/index.ts"],"names":[],"mappings":"AACA,YAAY,EAAC,cAAc,EAAC,MAAM,aAAa,CAAA;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/ActionBar/index.ts"],"names":[],"mappings":"AACA,YAAY,EAAC,cAAc,EAAE,kBAAkB,EAAE,sBAAsB,EAAC,MAAM,aAAa,CAAA;AAE3F,QAAA,MAAM,SAAS;;;;;;;;;;;;;;;;;;;;;;CAKb,CAAA;AAEF,eAAe,SAAS,CAAA;AACxB,OAAO,EAAC,SAAS,EAAC,CAAA"}
|
package/dist/ActionBar/index.js
CHANGED
|
@@ -1,9 +1,10 @@
|
|
|
1
|
-
import { ActionBar as ActionBar$1, ActionBarGroup, VerticalDivider, ActionBarIconButton } from './ActionBar.js';
|
|
1
|
+
import { ActionBar as ActionBar$1, ActionBarMenu, ActionBarGroup, VerticalDivider, ActionBarIconButton } from './ActionBar.js';
|
|
2
2
|
|
|
3
3
|
const ActionBar = Object.assign(ActionBar$1, {
|
|
4
4
|
IconButton: ActionBarIconButton,
|
|
5
5
|
Divider: VerticalDivider,
|
|
6
|
-
Group: ActionBarGroup
|
|
6
|
+
Group: ActionBarGroup,
|
|
7
|
+
Menu: ActionBarMenu
|
|
7
8
|
});
|
|
8
9
|
|
|
9
10
|
export { ActionBar, ActionBar as default };
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AnchoredOverlay.d.ts","sourceRoot":"","sources":["../../src/AnchoredOverlay/AnchoredOverlay.tsx"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"AnchoredOverlay.d.ts","sourceRoot":"","sources":["../../src/AnchoredOverlay/AnchoredOverlay.tsx"],"names":[],"mappings":"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"}
|
|
@@ -124,7 +124,6 @@ const AnchoredOverlay = ({
|
|
|
124
124
|
onClickOutside: onClickOutside,
|
|
125
125
|
ignoreClickRefs: [anchorRef],
|
|
126
126
|
onEscape: onEscape,
|
|
127
|
-
ref: updateOverlayRef,
|
|
128
127
|
role: "none",
|
|
129
128
|
visibility: position_0 ? 'visible' : 'hidden',
|
|
130
129
|
height: height,
|
|
@@ -137,6 +136,12 @@ const AnchoredOverlay = ({
|
|
|
137
136
|
className: className,
|
|
138
137
|
preventOverflow: preventOverflow,
|
|
139
138
|
...overlayProps,
|
|
139
|
+
ref: node => {
|
|
140
|
+
if (overlayProps !== null && overlayProps !== void 0 && overlayProps.ref) {
|
|
141
|
+
assignRef(overlayProps.ref, node);
|
|
142
|
+
}
|
|
143
|
+
updateOverlayRef(node);
|
|
144
|
+
},
|
|
140
145
|
children: [showXIcon ? /*#__PURE__*/jsx("div", {
|
|
141
146
|
className: classes.ResponsiveCloseButtonContainer,
|
|
142
147
|
children: /*#__PURE__*/jsx(IconButton, {
|
|
@@ -160,6 +165,13 @@ const AnchoredOverlay = ({
|
|
|
160
165
|
}) : null]
|
|
161
166
|
});
|
|
162
167
|
};
|
|
168
|
+
function assignRef(ref, value) {
|
|
169
|
+
if (typeof ref === 'function') {
|
|
170
|
+
ref(value);
|
|
171
|
+
} else if (ref) {
|
|
172
|
+
ref.current = value;
|
|
173
|
+
}
|
|
174
|
+
}
|
|
163
175
|
AnchoredOverlay.displayName = 'AnchoredOverlay';
|
|
164
176
|
|
|
165
177
|
export { AnchoredOverlay };
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
.prc-PageHeader-PageHeader-sT1Hp{--grid-row-order-context-area:1;--grid-row-order-leading-action:2;--grid-row-order-breadcrumbs:2;--grid-row-order-title-area:2;--grid-row-order-trailing-action:2;--grid-row-order-actions:2;--grid-row-order-description:3;--grid-row-order-navigation:4;--title-area-region-order-leading-visual:0;--title-area-region-order-title:1;--title-area-region-order-trailing-visual:2;--context-area-region-order-parent-link:0;--context-area-region-order-context-bar:1;--context-area-region-order-context-area-actions:2;display:grid;grid-template-areas:"context-area context-area context-area context-area context-area" "leading-action breadcrumbs title-area trailing-action actions" "description description description description description" "navigation navigation navigation navigation navigation";grid-template-columns:auto auto auto auto 1fr}.prc-PageHeader-PageHeader-sT1Hp:has([data-component=TitleArea][data-size-variant=large]){font-size:var(--custom-font-size,var(--text-title-size-large,2rem));font-weight:var(--custom-font-weight,var(--base-text-weight-normal,400));line-height:var(--custom-line-height,var(--text-title-lineHeight-large,1.5));--title-line-height:var(--custom-line-height,var(--text-title-lineHeight-large,1.5))}.prc-PageHeader-PageHeader-sT1Hp:has([data-component=TitleArea][data-size-variant=medium]){font-size:var(--custom-font-size,var(--text-title-size-medium,1.25rem));font-weight:var(--custom-font-weight,var(--base-text-weight-semibold,600));line-height:var(--custom-line-height,var(--text-title-lineHeight-medium,1.6));--title-line-height:var(--custom-line-height,var(--text-title-lineHeight-medium,1.6))}.prc-PageHeader-PageHeader-sT1Hp:has([data-component=TitleArea][data-size-variant=subtitle]){font-size:var(--custom-font-size,var(--text-title-size-medium,1.25rem));font-weight:var(--custom-font-weight,var(--base-text-weight-normal,400));line-height:var(--custom-line-height,var(--text-title-lineHeight-medium,1.6));--title-line-height:var(--custom-line-height,var(--text-title-lineHeight-medium,1.6))}@media (max-width:calc(48rem - 0.02px)){.prc-PageHeader-PageHeader-sT1Hp:has([data-component=TitleArea][data-size-variant-narrow=large]){font-size:var(--custom-font-size,var(--text-title-size-large,2rem));font-weight:var(--custom-font-weight,var(--base-text-weight-normal,400));line-height:var(--custom-line-height,var(--text-title-lineHeight-large,1.5));--title-line-height:var(--custom-line-height,var(--text-title-lineHeight-large,1.5))}.prc-PageHeader-PageHeader-sT1Hp:has([data-component=TitleArea][data-size-variant-narrow=medium]){font-size:var(--custom-font-size,var(--text-title-size-medium,1.25rem));font-weight:var(--custom-font-weight,var(--base-text-weight-semibold,600));line-height:var(--custom-line-height,var(--text-title-lineHeight-medium,1.6));--title-line-height:var(--custom-line-height,var(--text-title-lineHeight-medium,1.6))}.prc-PageHeader-PageHeader-sT1Hp:has([data-component=TitleArea][data-size-variant-narrow=subtitle]){font-size:var(--custom-font-size,var(--text-title-size-medium,1.25rem));font-weight:var(--custom-font-weight,var(--base-text-weight-normal,400));line-height:var(--custom-line-height,var(--text-title-lineHeight-medium,1.6));--title-line-height:var(--custom-line-height,var(--text-title-lineHeight-medium,1.6))}}@media (min-width:48rem){.prc-PageHeader-PageHeader-sT1Hp:has([data-component=TitleArea][data-size-variant-regular=large]){font-size:var(--custom-font-size,var(--text-title-size-large,2rem));font-weight:var(--custom-font-weight,var(--base-text-weight-normal,400));line-height:var(--custom-line-height,var(--text-title-lineHeight-large,1.5));--title-line-height:var(--custom-line-height,var(--text-title-lineHeight-large,1.5))}.prc-PageHeader-PageHeader-sT1Hp:has([data-component=TitleArea][data-size-variant-regular=medium]){font-size:var(--custom-font-size,var(--text-title-size-medium,1.25rem));font-weight:var(--custom-font-weight,var(--base-text-weight-semibold,600));line-height:var(--custom-line-height,var(--text-title-lineHeight-medium,1.6));--title-line-height:var(--custom-line-height,var(--text-title-lineHeight-medium,1.6))}.prc-PageHeader-PageHeader-sT1Hp:has([data-component=TitleArea][data-size-variant-regular=subtitle]){font-size:var(--custom-font-size,var(--text-title-size-medium,1.25rem));font-weight:var(--custom-font-weight,var(--base-text-weight-normal,400));line-height:var(--custom-line-height,var(--text-title-lineHeight-medium,1.6));--title-line-height:var(--custom-line-height,var(--text-title-lineHeight-medium,1.6))}}@media (min-width:87.5rem){.prc-PageHeader-PageHeader-sT1Hp:has([data-component=TitleArea][data-size-variant-wide=large]){font-size:var(--custom-font-size,var(--text-title-size-large,2rem));font-weight:var(--custom-font-weight,var(--base-text-weight-normal,400));line-height:var(--custom-line-height,var(--text-title-lineHeight-large,1.5));--title-line-height:var(--custom-line-height,var(--text-title-lineHeight-large,1.5))}.prc-PageHeader-PageHeader-sT1Hp:has([data-component=TitleArea][data-size-variant-wide=medium]){font-size:var(--custom-font-size,var(--text-title-size-medium,1.25rem));font-weight:var(--custom-font-weight,var(--base-text-weight-semibold,600));line-height:var(--custom-line-height,var(--text-title-lineHeight-medium,1.6));--title-line-height:var(--custom-line-height,var(--text-title-lineHeight-medium,1.6))}.prc-PageHeader-PageHeader-sT1Hp:has([data-component=TitleArea][data-size-variant-wide=subtitle]){font-size:var(--custom-font-size,var(--text-title-size-medium,1.25rem));font-weight:var(--custom-font-weight,var(--base-text-weight-normal,400));line-height:var(--custom-line-height,var(--text-title-lineHeight-medium,1.6));--title-line-height:var(--custom-line-height,var(--text-title-lineHeight-medium,1.6))}}.prc-PageHeader-PageHeader-sT1Hp[data-has-border=true]:has([data-component=PH_Navigation][data-hidden-all]),.prc-PageHeader-PageHeader-sT1Hp[data-has-border=true]:not(:has([data-component=PH_Navigation])){border-block-end:var(--borderWidth-thin,.0625rem) solid var(--borderColor-default,var(--color-border-default));padding-block-end:var(--base-size-8,.5rem)}@media (max-width:calc(48rem - 0.02px)){.prc-PageHeader-PageHeader-sT1Hp[data-has-border=true]:has([data-component=PH_Navigation][data-hidden-narrow]){border-block-end:var(--borderWidth-thin,.0625rem) solid var(--borderColor-default,var(--color-border-default));padding-block-end:var(--base-size-8,.5rem)}}@media (min-width:48rem){.prc-PageHeader-PageHeader-sT1Hp[data-has-border=true]:has([data-component=PH_Navigation][data-hidden-regular]){border-block-end:var(--borderWidth-thin,.0625rem) solid var(--borderColor-default,var(--color-border-default));padding-block-end:var(--base-size-8,.5rem)}}@media (min-width:87.5rem){.prc-PageHeader-PageHeader-sT1Hp[data-has-border=true]:has([data-component=PH_Navigation][data-hidden-wide]){border-block-end:var(--borderWidth-thin,.0625rem) solid var(--borderColor-default,var(--color-border-default));padding-block-end:var(--base-size-8,.5rem)}}.prc-PageHeader-PageHeader-sT1Hp [data-component=PH_Actions],.prc-PageHeader-PageHeader-sT1Hp [data-component=PH_LeadingAction],.prc-PageHeader-PageHeader-sT1Hp [data-component=PH_LeadingVisual],.prc-PageHeader-PageHeader-sT1Hp [data-component=PH_TrailingAction],.prc-PageHeader-PageHeader-sT1Hp [data-component=PH_TrailingVisual]{height:calc(var(--title-line-height)*1em)}.prc-PageHeader-PageHeader-sT1Hp [data-hidden-all]{display:none}@media (max-width:calc(48rem - 0.02px)){.prc-PageHeader-PageHeader-sT1Hp [data-hidden-narrow]{display:none}}@media (min-width:48rem){.prc-PageHeader-PageHeader-sT1Hp [data-hidden-regular]{display:none}}@media (min-width:87.5rem){.prc-PageHeader-PageHeader-sT1Hp [data-hidden-wide]{display:none}}.prc-PageHeader-ContextArea-6ykSJ{flex-direction:row;font-size:var(--text-body-size-medium,.875rem);font-weight:var(--base-text-weight-normal,400);grid-area:context-area;grid-row:var(--grid-row-order-context-area);line-height:var(--text-body-lineHeight-medium,1.4285);padding-bottom:var(--base-size-8,.5rem)}.prc-PageHeader-ContextArea-6ykSJ,.prc-PageHeader-ParentLink-BvDS0{align-items:center;display:flex;gap:var(--stack-gap-condensed,.5rem)}.prc-PageHeader-ParentLink-BvDS0{order:var(--context-area-region-order-parent-link)}.prc-PageHeader-ContextBar-XQ8Q0{display:flex;order:var(--context-area-region-order-context-bar)}.prc-PageHeader-ContextAreaActions-RTJRk{align-items:center;flex-grow:1;justify-content:flex-end;order:var(--context-area-region-order-context-area-actions)}.prc-PageHeader-ContextAreaActions-RTJRk,.prc-PageHeader-TitleArea-jxJZy{display:flex;flex-direction:row;gap:var(--stack-gap-condensed,.5rem)}.prc-PageHeader-TitleArea-jxJZy{align-items:flex-start;grid-area:title-area;grid-row:var(--grid-row-order-title-area)}.prc-PageHeader-LeadingAction-88LQ0{grid-area:leading-action;grid-row:var(--grid-row-order-leading-action)}.prc-PageHeader-Breadcrumbs-3c6ig,.prc-PageHeader-LeadingAction-88LQ0{align-items:center;display:flex;padding-right:var(--base-size-8,.5rem)}.prc-PageHeader-Breadcrumbs-3c6ig{font-size:var(--text-body-size-medium,.875rem);font-weight:var(--base-text-weight-normal,400);grid-area:breadcrumbs;grid-row:var(--grid-row-order-breadcrumbs);line-height:var(--text-body-lineHeight-medium,1.4285)}.prc-PageHeader-LeadingVisual-7zjCx{align-items:center;display:flex;order:var(--title-area-region-order-leading-visual)}.prc-PageHeader-Title-LKOsd{display:block;font-size:inherit;font-weight:inherit;order:var(--title-area-region-order-title)}.prc-PageHeader-Title-LKOsd:where([data-hidden=true]){display:none}.prc-PageHeader-TrailingVisual-7Ft0D{align-items:center;display:flex;order:var(--title-area-region-order-trailing-visual)}.prc-PageHeader-TrailingAction-QOaow{grid-area:trailing-action;grid-row:var(--grid-row-order-trailing-action)}.prc-PageHeader-Actions-ygtmj,.prc-PageHeader-TrailingAction-QOaow{align-items:center;display:flex;padding-left:var(--base-size-8,.5rem)}.prc-PageHeader-Actions-ygtmj{flex-direction:row;gap:var(--stack-gap-condensed,.5rem);grid-area:actions;grid-row:var(--grid-row-order-actions);justify-content:flex-end;min-width:max-content}.prc-PageHeader-Description-kFg8r{align-items:center;display:flex;flex-direction:row;gap:var(--stack-gap-condensed,.5rem);grid-area:description;grid-row:var(--grid-row-order-description)}.prc-PageHeader-Description-kFg8r,.prc-PageHeader-Navigation-9Uvch{font-size:var(--text-body-size-medium,.875rem);font-weight:var(--base-text-weight-normal,400);line-height:var(--text-body-lineHeight-medium,1.4285);padding-top:var(--base-size-8,.5rem)}.prc-PageHeader-Navigation-9Uvch{display:block;grid-area:navigation;grid-row:var(--grid-row-order-navigation)}
|
|
2
|
+
/*# sourceMappingURL=PageHeader-9f4a690a.css.map */
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/PageHeader/PageHeader.module.css"],"names":[],"mappings":"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","file":"PageHeader-9f4a690a.css","sourcesContent":[".PageHeader {\n /* Grid Row Order */\n --grid-row-order-context-area: 1;\n --grid-row-order-leading-action: 2;\n --grid-row-order-breadcrumbs: 2;\n --grid-row-order-title-area: 2;\n --grid-row-order-trailing-action: 2;\n --grid-row-order-actions: 2;\n --grid-row-order-description: 3;\n --grid-row-order-navigation: 4;\n\n /* Title Area Region Order */\n --title-area-region-order-leading-visual: 0;\n --title-area-region-order-title: 1;\n --title-area-region-order-trailing-visual: 2;\n\n /* Context Area Region Order */\n --context-area-region-order-parent-link: 0;\n --context-area-region-order-context-bar: 1;\n --context-area-region-order-context-area-actions: 2;\n\n display: grid;\n\n /* We have max 5 columns. */\n grid-template-columns: auto auto auto auto 1fr;\n grid-template-areas:\n 'context-area context-area context-area context-area context-area'\n 'leading-action breadcrumbs title-area trailing-action actions'\n 'description description description description description'\n 'navigation navigation navigation navigation navigation';\n\n /*\n line-height is calculated with calc(height/font-size) and the below numbers are from @primer/primitives.\n --custom-font-size, --custom-line-height, --custom-font-weight are custom properties that can be used to override the below values.\n We don't want these values to be overridden but still want to allow consumers to override them if needed.\n */\n &:has([data-component='TitleArea'][data-size-variant='large']) {\n font-size: var(--custom-font-size, var(--text-title-size-large, 2rem));\n font-weight: var(--custom-font-weight, var(--base-text-weight-normal, 400));\n line-height: var(--custom-line-height, var(--text-title-lineHeight-large, 1.5)); /* calc(48/32) */\n\n --title-line-height: var(--custom-line-height, var(--text-title-lineHeight-large, 1.5));\n }\n\n &:has([data-component='TitleArea'][data-size-variant='medium']) {\n font-size: var(--custom-font-size, var(--text-title-size-medium, 1.25rem));\n font-weight: var(--custom-font-weight, var(--base-text-weight-semibold, 600));\n line-height: var(--custom-line-height, var(--text-title-lineHeight-medium, 1.6)); /* calc(32/20) */\n\n --title-line-height: var(--custom-line-height, var(--text-title-lineHeight-medium, 1.6));\n }\n\n &:has([data-component='TitleArea'][data-size-variant='subtitle']) {\n font-size: var(--custom-font-size, var(--text-title-size-medium, 1.25rem));\n font-weight: var(--custom-font-weight, var(--base-text-weight-normal, 400));\n line-height: var(--custom-line-height, var(--text-title-lineHeight-medium, 1.6)); /* calc(32/20) */\n\n --title-line-height: var(--custom-line-height, var(--text-title-lineHeight-medium, 1.6));\n }\n\n /* Responsive size variants */\n @media (--viewportRange-narrow) {\n &:has([data-component='TitleArea'][data-size-variant-narrow='large']) {\n font-size: var(--custom-font-size, var(--text-title-size-large, 2rem));\n font-weight: var(--custom-font-weight, var(--base-text-weight-normal, 400));\n line-height: var(--custom-line-height, var(--text-title-lineHeight-large, 1.5));\n\n --title-line-height: var(--custom-line-height, var(--text-title-lineHeight-large, 1.5));\n }\n\n &:has([data-component='TitleArea'][data-size-variant-narrow='medium']) {\n font-size: var(--custom-font-size, var(--text-title-size-medium, 1.25rem));\n font-weight: var(--custom-font-weight, var(--base-text-weight-semibold, 600));\n line-height: var(--custom-line-height, var(--text-title-lineHeight-medium, 1.6));\n\n --title-line-height: var(--custom-line-height, var(--text-title-lineHeight-medium, 1.6));\n }\n\n &:has([data-component='TitleArea'][data-size-variant-narrow='subtitle']) {\n font-size: var(--custom-font-size, var(--text-title-size-medium, 1.25rem));\n font-weight: var(--custom-font-weight, var(--base-text-weight-normal, 400));\n line-height: var(--custom-line-height, var(--text-title-lineHeight-medium, 1.6));\n\n --title-line-height: var(--custom-line-height, var(--text-title-lineHeight-medium, 1.6));\n }\n }\n\n @media (--viewportRange-regular) {\n &:has([data-component='TitleArea'][data-size-variant-regular='large']) {\n font-size: var(--custom-font-size, var(--text-title-size-large, 2rem));\n font-weight: var(--custom-font-weight, var(--base-text-weight-normal, 400));\n line-height: var(--custom-line-height, var(--text-title-lineHeight-large, 1.5));\n\n --title-line-height: var(--custom-line-height, var(--text-title-lineHeight-large, 1.5));\n }\n\n &:has([data-component='TitleArea'][data-size-variant-regular='medium']) {\n font-size: var(--custom-font-size, var(--text-title-size-medium, 1.25rem));\n font-weight: var(--custom-font-weight, var(--base-text-weight-semibold, 600));\n line-height: var(--custom-line-height, var(--text-title-lineHeight-medium, 1.6));\n\n --title-line-height: var(--custom-line-height, var(--text-title-lineHeight-medium, 1.6));\n }\n\n &:has([data-component='TitleArea'][data-size-variant-regular='subtitle']) {\n font-size: var(--custom-font-size, var(--text-title-size-medium, 1.25rem));\n font-weight: var(--custom-font-weight, var(--base-text-weight-normal, 400));\n line-height: var(--custom-line-height, var(--text-title-lineHeight-medium, 1.6));\n\n --title-line-height: var(--custom-line-height, var(--text-title-lineHeight-medium, 1.6));\n }\n }\n\n @media (--viewportRange-wide) {\n &:has([data-component='TitleArea'][data-size-variant-wide='large']) {\n font-size: var(--custom-font-size, var(--text-title-size-large, 2rem));\n font-weight: var(--custom-font-weight, var(--base-text-weight-normal, 400));\n line-height: var(--custom-line-height, var(--text-title-lineHeight-large, 1.5));\n\n --title-line-height: var(--custom-line-height, var(--text-title-lineHeight-large, 1.5));\n }\n\n &:has([data-component='TitleArea'][data-size-variant-wide='medium']) {\n font-size: var(--custom-font-size, var(--text-title-size-medium, 1.25rem));\n font-weight: var(--custom-font-weight, var(--base-text-weight-semibold, 600));\n line-height: var(--custom-line-height, var(--text-title-lineHeight-medium, 1.6));\n\n --title-line-height: var(--custom-line-height, var(--text-title-lineHeight-medium, 1.6));\n }\n\n &:has([data-component='TitleArea'][data-size-variant-wide='subtitle']) {\n font-size: var(--custom-font-size, var(--text-title-size-medium, 1.25rem));\n font-weight: var(--custom-font-weight, var(--base-text-weight-normal, 400));\n line-height: var(--custom-line-height, var(--text-title-lineHeight-medium, 1.6));\n\n --title-line-height: var(--custom-line-height, var(--text-title-lineHeight-medium, 1.6));\n }\n }\n\n &[data-has-border='true']:has([data-component='PH_Navigation'][data-hidden-all]),\n &[data-has-border='true']:not(:has([data-component='PH_Navigation'])) {\n border-block-end: var(--borderWidth-thin) solid var(--borderColor-default);\n padding-block-end: var(--base-size-8);\n }\n\n @media (--viewportRange-narrow) {\n &[data-has-border='true']:has([data-component='PH_Navigation'][data-hidden-narrow]) {\n border-block-end: var(--borderWidth-thin) solid var(--borderColor-default);\n padding-block-end: var(--base-size-8);\n }\n }\n\n @media (--viewportRange-regular) {\n &[data-has-border='true']:has([data-component='PH_Navigation'][data-hidden-regular]) {\n border-block-end: var(--borderWidth-thin) solid var(--borderColor-default);\n padding-block-end: var(--base-size-8);\n }\n }\n\n @media (--viewportRange-wide) {\n &[data-has-border='true']:has([data-component='PH_Navigation'][data-hidden-wide]) {\n border-block-end: var(--borderWidth-thin) solid var(--borderColor-default);\n padding-block-end: var(--base-size-8);\n }\n }\n\n & [data-component='PH_LeadingAction'],\n & [data-component='PH_TrailingAction'],\n & [data-component='PH_Actions'],\n & [data-component='PH_LeadingVisual'],\n & [data-component='PH_TrailingVisual'] {\n height: calc(var(--title-line-height) * 1em);\n }\n\n & [data-hidden-all] {\n display: none;\n }\n\n & [data-hidden-narrow] {\n @media (--viewportRange-narrow) {\n display: none;\n }\n }\n\n & [data-hidden-regular] {\n @media (--viewportRange-regular) {\n display: none;\n }\n }\n\n & [data-hidden-wide] {\n @media (--viewportRange-wide) {\n display: none;\n }\n }\n}\n\n.ContextArea {\n display: flex;\n padding-bottom: var(--base-size-8);\n font-size: var(--text-body-size-medium, 0.875rem);\n font-weight: var(--base-text-weight-normal);\n line-height: var(--text-body-lineHeight-medium, 1.4285);\n flex-direction: row;\n grid-row: var(--grid-row-order-context-area);\n grid-area: context-area;\n align-items: center;\n gap: var(--stack-gap-condensed);\n}\n\n.ParentLink {\n display: flex;\n align-items: center;\n order: var(--context-area-region-order-parent-link);\n gap: var(--stack-gap-condensed);\n}\n\n.ContextBar {\n display: flex;\n order: var(--context-area-region-order-context-bar);\n}\n\n.ContextAreaActions {\n display: flex;\n flex-direction: row;\n order: var(--context-area-region-order-context-area-actions);\n align-items: center;\n gap: var(--stack-gap-condensed);\n flex-grow: 1;\n justify-content: flex-end;\n}\n\n.TitleArea {\n grid-row: var(--grid-row-order-title-area);\n grid-area: title-area;\n display: flex;\n gap: var(--stack-gap-condensed);\n flex-direction: row;\n align-items: flex-start;\n}\n\n.LeadingAction {\n display: flex;\n padding-right: var(--base-size-8);\n grid-row: var(--grid-row-order-leading-action);\n grid-area: leading-action;\n align-items: center;\n}\n\n.Breadcrumbs {\n display: flex;\n padding-right: var(--base-size-8);\n font-size: var(--text-body-size-medium, 0.875rem);\n font-weight: var(--base-text-weight-normal);\n line-height: var(--text-body-lineHeight-medium, 1.4285);\n grid-row: var(--grid-row-order-breadcrumbs);\n grid-area: breadcrumbs;\n align-items: center;\n}\n\n.LeadingVisual {\n /* using flex and order to display the leading visual in the title area. */\n display: flex;\n order: var(--title-area-region-order-leading-visual);\n align-items: center;\n}\n\n.Title {\n /* using flex and order to display the title in the title area. */\n display: block;\n order: var(--title-area-region-order-title);\n font-size: inherit;\n font-weight: inherit;\n}\n\n.Title:where([data-hidden='true']) {\n display: none;\n}\n\n.TrailingVisual {\n /* using flex and order to display the trailing visual in the title area. */\n display: flex;\n order: var(--title-area-region-order-trailing-visual);\n align-items: center;\n}\n\n.TrailingAction {\n display: flex;\n padding-left: var(--base-size-8);\n grid-row: var(--grid-row-order-trailing-action);\n grid-area: trailing-action;\n align-items: center;\n}\n\n.Actions {\n display: flex;\n min-width: max-content;\n padding-left: var(--base-size-8);\n flex-direction: row;\n grid-row: var(--grid-row-order-actions);\n grid-area: actions;\n gap: var(--stack-gap-condensed);\n justify-content: flex-end;\n align-items: center;\n}\n\n.Description {\n display: flex;\n padding-top: var(--base-size-8);\n font-size: var(--text-body-size-medium, 0.875rem);\n font-weight: var(--base-text-weight-normal);\n line-height: var(--text-body-lineHeight-medium, 1.4285);\n flex-direction: row;\n grid-row: var(--grid-row-order-description);\n grid-area: description;\n align-items: center;\n gap: var(--stack-gap-condensed);\n}\n\n.Navigation {\n display: block;\n padding-top: var(--base-size-8);\n font-size: var(--text-body-size-medium, 0.875rem);\n font-weight: var(--base-text-weight-normal);\n line-height: var(--text-body-lineHeight-medium, 1.4285);\n grid-row: var(--grid-row-order-navigation);\n grid-area: navigation;\n}\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"PageHeader.d.ts","sourceRoot":"","sources":["../../src/PageHeader/PageHeader.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAkB,MAAM,OAAO,CAAA;AACtC,OAAO,KAAK,EAAC,eAAe,EAAC,MAAM,6BAA6B,CAAA;AAIhE,OAAO,KAAK,EAAC,SAAS,IAAI,aAAa,EAAC,MAAM,SAAS,CAAA;
|
|
1
|
+
{"version":3,"file":"PageHeader.d.ts","sourceRoot":"","sources":["../../src/PageHeader/PageHeader.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAkB,MAAM,OAAO,CAAA;AACtC,OAAO,KAAK,EAAC,eAAe,EAAC,MAAM,6BAA6B,CAAA;AAIhE,OAAO,KAAK,EAAC,SAAS,IAAI,aAAa,EAAC,MAAM,SAAS,CAAA;AAIvD,OAAO,KAAK,EAAC,mBAAmB,IAAI,8BAA8B,EAAC,MAAM,sBAAsB,CAAA;AAI/F,OAAO,KAAK,EAAC,QAAQ,EAAE,gBAAgB,EAAC,MAAM,gBAAgB,CAAA;AAO9D,MAAM,MAAM,iBAAiB,GAAG;IAC9B,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,MAAM,CAAC,EAAE,OAAO,GAAG,eAAe,CAAC,OAAO,CAAC,CAAA;CAC5C,CAAA;AAkBD,MAAM,MAAM,eAAe,GAAG;IAC5B,YAAY,CAAC,EAAE,KAAK,CAAC,cAAc,CAAC,YAAY,CAAC,CAAA;IACjD,EAAE,CAAC,EAAE,KAAK,CAAC,WAAW,GAAG,QAAQ,GAAG,KAAK,CAAA;IACzC,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,IAAI,CAAC,EAAE,QAAQ,CAAA;IACf,SAAS,CAAC,EAAE,OAAO,CAAA;CACpB,CAAA;AA0FD,KAAK,SAAS,GAAG,IAAI,CACnB,KAAK,CAAC,oBAAoB,CAAC,iBAAiB,CAAC,GAAG,aAAa,EAC7D,UAAU,GAAG,MAAM,GAAG,UAAU,GAAG,OAAO,GAAG,MAAM,GAAG,KAAK,GAAG,QAAQ,GAAG,MAAM,GAAG,gBAAgB,GAAG,IAAI,CAC1G,GAAG;IACF,YAAY,CAAC,EAAE,KAAK,CAAC,cAAc,CAAC,YAAY,CAAC,CAAA;CAClD,CAAA;AACD,MAAM,MAAM,eAAe,GAAG,KAAK,CAAC,iBAAiB,CAAC,iBAAiB,GAAG,SAAS,CAAC,CAAA;AAuDpF,MAAM,MAAM,cAAc,GAAG;IAC3B,OAAO,CAAC,EAAE,UAAU,GAAG,QAAQ,GAAG,OAAO,GAAG,eAAe,CAAC,UAAU,GAAG,QAAQ,GAAG,OAAO,CAAC,CAAA;CAC7F,GAAG,iBAAiB,CAAA;AAqErB,MAAM,MAAM,UAAU,GAAG;IACvB,EAAE,CAAC,EAAE,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,CAAA;CAC7C,GAAG,iBAAiB,CAAA;AAiDrB,MAAM,MAAM,YAAY,GAAG,KAAK,CAAC,iBAAiB,CAAC,iBAAiB,CAAC,CAAA;AAmBrE,MAAM,MAAM,eAAe,GAAG;IAC5B,EAAE,CAAC,EAAE,KAAK,GAAG,KAAK,CAAA;IAClB,YAAY,CAAC,EAAE,KAAK,CAAC,cAAc,CAAC,YAAY,CAAC,CAAA;IACjD,iBAAiB,CAAC,EAAE,KAAK,CAAC,cAAc,CAAC,iBAAiB,CAAC,CAAA;CAC5D,GAAG,iBAAiB,CAAA;AAsFrB,eAAO,MAAM,UAAU;;;;;;;;;;;;+CA3GiC,YAAY;;;CA0HlE,CAAA"}
|
|
@@ -1,7 +1,8 @@
|
|
|
1
1
|
import { c } from 'react-compiler-runtime';
|
|
2
2
|
import React, { useEffect } from 'react';
|
|
3
|
-
import {
|
|
3
|
+
import { isResponsiveValue } from '../hooks/useResponsiveValue.js';
|
|
4
4
|
import { ArrowLeftIcon } from '@primer/octicons-react';
|
|
5
|
+
import { getResponsiveAttributes } from '../internal/utils/getResponsiveAttributes.js';
|
|
5
6
|
import { areAllValuesTheSame, haveRegularAndWideSameValue } from '../utils/getBreakpointDeclarations.js';
|
|
6
7
|
import { warning } from '../utils/warning.js';
|
|
7
8
|
import { clsx } from 'clsx';
|
|
@@ -324,7 +325,7 @@ const ContextAreaActions = t0 => {
|
|
|
324
325
|
// ---------------------------------------------------------------------
|
|
325
326
|
|
|
326
327
|
const TitleArea = /*#__PURE__*/React.forwardRef((t0, forwardedRef) => {
|
|
327
|
-
const $ = c(
|
|
328
|
+
const $ = c(12);
|
|
328
329
|
const {
|
|
329
330
|
children,
|
|
330
331
|
className,
|
|
@@ -334,7 +335,6 @@ const TitleArea = /*#__PURE__*/React.forwardRef((t0, forwardedRef) => {
|
|
|
334
335
|
const hidden = t1 === undefined ? false : t1;
|
|
335
336
|
const variant = t2 === undefined ? "medium" : t2;
|
|
336
337
|
const titleAreaRef = useProvidedRefOrCreate(forwardedRef);
|
|
337
|
-
const currentVariant = useResponsiveValue(variant, "medium");
|
|
338
338
|
let t3;
|
|
339
339
|
if ($[0] !== className) {
|
|
340
340
|
t3 = clsx(classes.TitleArea, className);
|
|
@@ -344,33 +344,41 @@ const TitleArea = /*#__PURE__*/React.forwardRef((t0, forwardedRef) => {
|
|
|
344
344
|
t3 = $[1];
|
|
345
345
|
}
|
|
346
346
|
let t4;
|
|
347
|
-
if ($[2] !==
|
|
348
|
-
t4 =
|
|
349
|
-
$[2] =
|
|
347
|
+
if ($[2] !== variant) {
|
|
348
|
+
t4 = getResponsiveAttributes("size-variant", variant);
|
|
349
|
+
$[2] = variant;
|
|
350
350
|
$[3] = t4;
|
|
351
351
|
} else {
|
|
352
352
|
t4 = $[3];
|
|
353
353
|
}
|
|
354
354
|
let t5;
|
|
355
|
-
if ($[4] !==
|
|
356
|
-
t5 =
|
|
355
|
+
if ($[4] !== hidden) {
|
|
356
|
+
t5 = getHiddenDataAttributes(hidden);
|
|
357
|
+
$[4] = hidden;
|
|
358
|
+
$[5] = t5;
|
|
359
|
+
} else {
|
|
360
|
+
t5 = $[5];
|
|
361
|
+
}
|
|
362
|
+
let t6;
|
|
363
|
+
if ($[6] !== children || $[7] !== t3 || $[8] !== t4 || $[9] !== t5 || $[10] !== titleAreaRef) {
|
|
364
|
+
t6 = /*#__PURE__*/jsx("div", {
|
|
357
365
|
className: t3,
|
|
358
366
|
ref: titleAreaRef,
|
|
359
367
|
"data-component": "TitleArea",
|
|
360
|
-
"data-size-variant": currentVariant,
|
|
361
368
|
...t4,
|
|
369
|
+
...t5,
|
|
362
370
|
children: children
|
|
363
371
|
});
|
|
364
|
-
$[
|
|
365
|
-
$[
|
|
366
|
-
$[
|
|
367
|
-
$[7] = t4;
|
|
368
|
-
$[8] = titleAreaRef;
|
|
372
|
+
$[6] = children;
|
|
373
|
+
$[7] = t3;
|
|
374
|
+
$[8] = t4;
|
|
369
375
|
$[9] = t5;
|
|
376
|
+
$[10] = titleAreaRef;
|
|
377
|
+
$[11] = t6;
|
|
370
378
|
} else {
|
|
371
|
-
|
|
379
|
+
t6 = $[11];
|
|
372
380
|
}
|
|
373
|
-
return
|
|
381
|
+
return t6;
|
|
374
382
|
});
|
|
375
383
|
TitleArea.displayName = 'TitleArea';
|
|
376
384
|
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import './PageHeader-
|
|
1
|
+
import './PageHeader-9f4a690a.css';
|
|
2
2
|
|
|
3
3
|
var classes = {"PageHeader":"prc-PageHeader-PageHeader-sT1Hp","ContextArea":"prc-PageHeader-ContextArea-6ykSJ","ParentLink":"prc-PageHeader-ParentLink-BvDS0","ContextBar":"prc-PageHeader-ContextBar-XQ8Q0","ContextAreaActions":"prc-PageHeader-ContextAreaActions-RTJRk","TitleArea":"prc-PageHeader-TitleArea-jxJZy","LeadingAction":"prc-PageHeader-LeadingAction-88LQ0","Breadcrumbs":"prc-PageHeader-Breadcrumbs-3c6ig","LeadingVisual":"prc-PageHeader-LeadingVisual-7zjCx","Title":"prc-PageHeader-Title-LKOsd","TrailingVisual":"prc-PageHeader-TrailingVisual-7Ft0D","TrailingAction":"prc-PageHeader-TrailingAction-QOaow","Actions":"prc-PageHeader-Actions-ygtmj","Description":"prc-PageHeader-Description-kFg8r","Navigation":"prc-PageHeader-Navigation-9Uvch"};
|
|
4
4
|
|
|
@@ -0,0 +1,127 @@
|
|
|
1
|
+
import React, { type AriaAttributes, type PropsWithChildren } from 'react';
|
|
2
|
+
/**
|
|
3
|
+
* Props to be used when the Tabs component's state is controlled by the parent
|
|
4
|
+
*/
|
|
5
|
+
type ControlledTabsProps = {
|
|
6
|
+
/**
|
|
7
|
+
* Specify the selected tab
|
|
8
|
+
*/
|
|
9
|
+
value: string;
|
|
10
|
+
/**
|
|
11
|
+
* `defaultValue` can only be used in the uncontrolled variant of the component
|
|
12
|
+
* If you need to use `defaultValue`, please switch to the uncontrolled variant by removing the `value` prop.
|
|
13
|
+
*/
|
|
14
|
+
defaultValue?: never;
|
|
15
|
+
/**
|
|
16
|
+
* Provide an optional callback that is called when the selected tab changes
|
|
17
|
+
*/
|
|
18
|
+
onValueChange: ({ value }: {
|
|
19
|
+
value: string;
|
|
20
|
+
}) => void;
|
|
21
|
+
};
|
|
22
|
+
/**
|
|
23
|
+
* Props to be used when the Tabs component is managing its own state
|
|
24
|
+
*/
|
|
25
|
+
type UncontrolledTabsProps = {
|
|
26
|
+
/**
|
|
27
|
+
* Specify the default selected tab
|
|
28
|
+
*/
|
|
29
|
+
defaultValue: string;
|
|
30
|
+
/**
|
|
31
|
+
* `value` can only be used in the controlled variant of the component
|
|
32
|
+
* If you need to use `value`, please switch to the controlled variant by removing the `defaultValue` prop.
|
|
33
|
+
*/
|
|
34
|
+
value?: never;
|
|
35
|
+
/**
|
|
36
|
+
* Provide an optional callback that is called when the selected tab changes
|
|
37
|
+
*/
|
|
38
|
+
onValueChange?: ({ value }: {
|
|
39
|
+
value: string;
|
|
40
|
+
}) => void;
|
|
41
|
+
};
|
|
42
|
+
type TabsProps = PropsWithChildren<ControlledTabsProps | UncontrolledTabsProps>;
|
|
43
|
+
/**
|
|
44
|
+
* The Tabs component provides the base structure for a tabbed interface, without providing any formal requirement on DOM structure or styling.
|
|
45
|
+
* It manages the state of the selected tab, handles tab ordering/selection and provides context to its child components to ensure an accessible experience.
|
|
46
|
+
*
|
|
47
|
+
* This is intended to be used in conjunction with the `useTab`, `useTabList`, and `useTabPanel` hooks to build a fully accessible tabs component.
|
|
48
|
+
* The `Tab`, `TabList`, and `TabPanel` components are provided for convenience to showcase the API & implementation.
|
|
49
|
+
*/
|
|
50
|
+
declare function Tabs(props: TabsProps): React.JSX.Element;
|
|
51
|
+
type Label = {
|
|
52
|
+
'aria-label': string;
|
|
53
|
+
};
|
|
54
|
+
type LabelledBy = {
|
|
55
|
+
'aria-labelledby': string;
|
|
56
|
+
};
|
|
57
|
+
type Labelled = Label | LabelledBy;
|
|
58
|
+
type TabListProps = Labelled & React.HTMLAttributes<HTMLElement>;
|
|
59
|
+
declare function useTabList<T extends HTMLElement>(props: TabListProps & {
|
|
60
|
+
/** Optional ref to use for the tablist. If none is provided, one will be generated automatically */
|
|
61
|
+
ref?: React.RefObject<T>;
|
|
62
|
+
}): {
|
|
63
|
+
/** Props to be spread onto the tablist element */
|
|
64
|
+
tabListProps: {
|
|
65
|
+
onKeyDown: React.KeyboardEventHandler<T>;
|
|
66
|
+
'aria-orientation': AriaAttributes['aria-orientation'];
|
|
67
|
+
'aria-label': AriaAttributes['aria-label'];
|
|
68
|
+
'aria-labelledby': AriaAttributes['aria-labelledby'];
|
|
69
|
+
ref: React.RefObject<T>;
|
|
70
|
+
role: 'tablist';
|
|
71
|
+
};
|
|
72
|
+
};
|
|
73
|
+
declare function TabList({ children, ...rest }: TabListProps): React.JSX.Element;
|
|
74
|
+
type TabProps = React.ComponentPropsWithoutRef<'button'> & {
|
|
75
|
+
/**
|
|
76
|
+
* Specify whether the tab is disabled
|
|
77
|
+
*/
|
|
78
|
+
disabled?: boolean;
|
|
79
|
+
/**
|
|
80
|
+
* Provide a value that uniquely identifies the tab. This should mirror the
|
|
81
|
+
* value provided to the corresponding TabPanel
|
|
82
|
+
*/
|
|
83
|
+
value: string;
|
|
84
|
+
};
|
|
85
|
+
/**
|
|
86
|
+
* A custom hook that provides the props needed for a tab component.
|
|
87
|
+
* The props returned should be spread onto the component (typically a button) with the `role=tab`, under a `tablist`.
|
|
88
|
+
*/
|
|
89
|
+
declare function useTab<T extends HTMLElement>(props: Pick<TabProps, 'disabled' | 'value'>): {
|
|
90
|
+
/** Props to be spread onto the tab component */
|
|
91
|
+
tabProps: Pick<React.HTMLProps<T>, 'aria-controls' | 'aria-disabled' | 'aria-selected' | 'id' | 'tabIndex' | 'onKeyDown' | 'onMouseDown' | 'onFocus'> & {
|
|
92
|
+
role: 'tab';
|
|
93
|
+
};
|
|
94
|
+
};
|
|
95
|
+
declare const Tab: React.ForwardRefExoticComponent<Omit<React.DetailedHTMLProps<React.ButtonHTMLAttributes<HTMLButtonElement>, HTMLButtonElement>, "ref"> & {
|
|
96
|
+
/**
|
|
97
|
+
* Specify whether the tab is disabled
|
|
98
|
+
*/
|
|
99
|
+
disabled?: boolean;
|
|
100
|
+
/**
|
|
101
|
+
* Provide a value that uniquely identifies the tab. This should mirror the
|
|
102
|
+
* value provided to the corresponding TabPanel
|
|
103
|
+
*/
|
|
104
|
+
value: string;
|
|
105
|
+
} & React.RefAttributes<HTMLButtonElement>>;
|
|
106
|
+
type TabPanelProps = {
|
|
107
|
+
/**
|
|
108
|
+
* Provide a value that uniquely identifies the tab panel. This should mirror
|
|
109
|
+
* the value set for the corresponding tab
|
|
110
|
+
*/
|
|
111
|
+
value: string;
|
|
112
|
+
};
|
|
113
|
+
/** Utility hook for tab panels */
|
|
114
|
+
declare function useTabPanel<T extends HTMLElement>(props: TabPanelProps): {
|
|
115
|
+
/** Props to be spread onto the tabpanel component */
|
|
116
|
+
tabPanelProps: Pick<React.HTMLProps<T>, 'aria-labelledby' | 'id' | 'hidden'> & {
|
|
117
|
+
/**
|
|
118
|
+
* An identifier to aid in styling when this panel is selected & active
|
|
119
|
+
*/
|
|
120
|
+
'data-selected': string | undefined;
|
|
121
|
+
role: 'tabpanel';
|
|
122
|
+
};
|
|
123
|
+
};
|
|
124
|
+
declare function TabPanel({ children, value, ...rest }: React.HTMLAttributes<HTMLDivElement> & TabPanelProps): React.JSX.Element;
|
|
125
|
+
export { Tabs, TabList, Tab, TabPanel, useTab, useTabList, useTabPanel };
|
|
126
|
+
export type { TabsProps, TabListProps, TabProps, TabPanelProps };
|
|
127
|
+
//# sourceMappingURL=Tabs.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Tabs.d.ts","sourceRoot":"","sources":["../../../src/experimental/Tabs/Tabs.tsx"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,317 @@
|
|
|
1
|
+
import { c } from 'react-compiler-runtime';
|
|
2
|
+
import React, { useId, createContext, useContext } from 'react';
|
|
3
|
+
import useIsomorphicLayoutEffect from '../../utils/useIsomorphicLayoutEffect.js';
|
|
4
|
+
import { useControllableState } from '../../hooks/useControllableState.js';
|
|
5
|
+
import { jsx } from 'react/jsx-runtime';
|
|
6
|
+
import { useProvidedRefOrCreate } from '../../hooks/useProvidedRefOrCreate.js';
|
|
7
|
+
|
|
8
|
+
/**
|
|
9
|
+
* The Tabs component provides the base structure for a tabbed interface, without providing any formal requirement on DOM structure or styling.
|
|
10
|
+
* It manages the state of the selected tab, handles tab ordering/selection and provides context to its child components to ensure an accessible experience.
|
|
11
|
+
*
|
|
12
|
+
* This is intended to be used in conjunction with the `useTab`, `useTabList`, and `useTabPanel` hooks to build a fully accessible tabs component.
|
|
13
|
+
* The `Tab`, `TabList`, and `TabPanel` components are provided for convenience to showcase the API & implementation.
|
|
14
|
+
*/
|
|
15
|
+
function Tabs(props) {
|
|
16
|
+
var _props$defaultValue;
|
|
17
|
+
const $ = c(13);
|
|
18
|
+
const {
|
|
19
|
+
children,
|
|
20
|
+
onValueChange
|
|
21
|
+
} = props;
|
|
22
|
+
const groupId = useId();
|
|
23
|
+
const t0 = (_props$defaultValue = props.defaultValue) !== null && _props$defaultValue !== void 0 ? _props$defaultValue : props.value;
|
|
24
|
+
let t1;
|
|
25
|
+
if ($[0] !== props.value || $[1] !== t0) {
|
|
26
|
+
t1 = {
|
|
27
|
+
name: "tab-selection",
|
|
28
|
+
defaultValue: t0,
|
|
29
|
+
value: props.value
|
|
30
|
+
};
|
|
31
|
+
$[0] = props.value;
|
|
32
|
+
$[1] = t0;
|
|
33
|
+
$[2] = t1;
|
|
34
|
+
} else {
|
|
35
|
+
t1 = $[2];
|
|
36
|
+
}
|
|
37
|
+
const [selectedValue, setSelectedValue] = useControllableState(t1);
|
|
38
|
+
const savedOnValueChange = React.useRef(onValueChange);
|
|
39
|
+
let t2;
|
|
40
|
+
if ($[3] !== groupId || $[4] !== selectedValue || $[5] !== setSelectedValue) {
|
|
41
|
+
t2 = {
|
|
42
|
+
groupId,
|
|
43
|
+
selectedValue,
|
|
44
|
+
selectTab(value) {
|
|
45
|
+
var _savedOnValueChange$c;
|
|
46
|
+
setSelectedValue(value);
|
|
47
|
+
(_savedOnValueChange$c = savedOnValueChange.current) === null || _savedOnValueChange$c === void 0 ? void 0 : _savedOnValueChange$c.call(savedOnValueChange, {
|
|
48
|
+
value
|
|
49
|
+
});
|
|
50
|
+
}
|
|
51
|
+
};
|
|
52
|
+
$[3] = groupId;
|
|
53
|
+
$[4] = selectedValue;
|
|
54
|
+
$[5] = setSelectedValue;
|
|
55
|
+
$[6] = t2;
|
|
56
|
+
} else {
|
|
57
|
+
t2 = $[6];
|
|
58
|
+
}
|
|
59
|
+
const contextValue = t2;
|
|
60
|
+
let t3;
|
|
61
|
+
let t4;
|
|
62
|
+
if ($[7] !== onValueChange) {
|
|
63
|
+
t3 = () => {
|
|
64
|
+
savedOnValueChange.current = onValueChange;
|
|
65
|
+
};
|
|
66
|
+
t4 = [onValueChange];
|
|
67
|
+
$[7] = onValueChange;
|
|
68
|
+
$[8] = t3;
|
|
69
|
+
$[9] = t4;
|
|
70
|
+
} else {
|
|
71
|
+
t3 = $[8];
|
|
72
|
+
t4 = $[9];
|
|
73
|
+
}
|
|
74
|
+
useIsomorphicLayoutEffect(t3, t4);
|
|
75
|
+
let t5;
|
|
76
|
+
if ($[10] !== children || $[11] !== contextValue) {
|
|
77
|
+
t5 = /*#__PURE__*/jsx(TabsContext.Provider, {
|
|
78
|
+
value: contextValue,
|
|
79
|
+
children: children
|
|
80
|
+
});
|
|
81
|
+
$[10] = children;
|
|
82
|
+
$[11] = contextValue;
|
|
83
|
+
$[12] = t5;
|
|
84
|
+
} else {
|
|
85
|
+
t5 = $[12];
|
|
86
|
+
}
|
|
87
|
+
return t5;
|
|
88
|
+
}
|
|
89
|
+
function useTabList(props) {
|
|
90
|
+
const $ = c(9);
|
|
91
|
+
const {
|
|
92
|
+
"aria-label": ariaLabel,
|
|
93
|
+
"aria-labelledby": ariaLabelledby,
|
|
94
|
+
"aria-orientation": ariaOrientation
|
|
95
|
+
} = props;
|
|
96
|
+
const ref = useProvidedRefOrCreate(props.ref);
|
|
97
|
+
let t0;
|
|
98
|
+
if ($[0] !== ariaOrientation || $[1] !== ref) {
|
|
99
|
+
t0 = event => {
|
|
100
|
+
const {
|
|
101
|
+
current: tablist
|
|
102
|
+
} = ref;
|
|
103
|
+
if (tablist === null) {
|
|
104
|
+
return;
|
|
105
|
+
}
|
|
106
|
+
const tabs = getFocusableTabs(tablist);
|
|
107
|
+
const isVertical = ariaOrientation === "vertical";
|
|
108
|
+
const nextKey = isVertical ? "ArrowDown" : "ArrowRight";
|
|
109
|
+
const prevKey = isVertical ? "ArrowUp" : "ArrowLeft";
|
|
110
|
+
if (event.key === nextKey || event.key === prevKey || event.key === "Home" || event.key === "End") {
|
|
111
|
+
event.preventDefault();
|
|
112
|
+
event.stopPropagation();
|
|
113
|
+
}
|
|
114
|
+
if (event.key === nextKey) {
|
|
115
|
+
const selectedTabIndex = tabs.findIndex(_temp);
|
|
116
|
+
if (selectedTabIndex === -1) {
|
|
117
|
+
return;
|
|
118
|
+
}
|
|
119
|
+
const nextTabIndex = (selectedTabIndex + 1) % tabs.length;
|
|
120
|
+
tabs[nextTabIndex].focus();
|
|
121
|
+
} else {
|
|
122
|
+
if (event.key === prevKey) {
|
|
123
|
+
const selectedTabIndex_0 = tabs.findIndex(_temp2);
|
|
124
|
+
if (selectedTabIndex_0 === -1) {
|
|
125
|
+
return;
|
|
126
|
+
}
|
|
127
|
+
const nextTabIndex_0 = (tabs.length + selectedTabIndex_0 - 1) % tabs.length;
|
|
128
|
+
tabs[nextTabIndex_0].focus();
|
|
129
|
+
} else {
|
|
130
|
+
if (event.key === "Home") {
|
|
131
|
+
if (tabs[0]) {
|
|
132
|
+
tabs[0].focus();
|
|
133
|
+
}
|
|
134
|
+
} else {
|
|
135
|
+
if (event.key === "End") {
|
|
136
|
+
if (tabs.length > 0) {
|
|
137
|
+
tabs[tabs.length - 1].focus();
|
|
138
|
+
}
|
|
139
|
+
}
|
|
140
|
+
}
|
|
141
|
+
}
|
|
142
|
+
}
|
|
143
|
+
};
|
|
144
|
+
$[0] = ariaOrientation;
|
|
145
|
+
$[1] = ref;
|
|
146
|
+
$[2] = t0;
|
|
147
|
+
} else {
|
|
148
|
+
t0 = $[2];
|
|
149
|
+
}
|
|
150
|
+
const onKeyDown = t0;
|
|
151
|
+
const t1 = ariaOrientation !== null && ariaOrientation !== void 0 ? ariaOrientation : "horizontal";
|
|
152
|
+
let t2;
|
|
153
|
+
if ($[3] !== ariaLabel || $[4] !== ariaLabelledby || $[5] !== onKeyDown || $[6] !== ref || $[7] !== t1) {
|
|
154
|
+
t2 = {
|
|
155
|
+
tabListProps: {
|
|
156
|
+
ref,
|
|
157
|
+
"aria-label": ariaLabel,
|
|
158
|
+
"aria-labelledby": ariaLabelledby,
|
|
159
|
+
"aria-orientation": t1,
|
|
160
|
+
role: "tablist",
|
|
161
|
+
onKeyDown
|
|
162
|
+
}
|
|
163
|
+
};
|
|
164
|
+
$[3] = ariaLabel;
|
|
165
|
+
$[4] = ariaLabelledby;
|
|
166
|
+
$[5] = onKeyDown;
|
|
167
|
+
$[6] = ref;
|
|
168
|
+
$[7] = t1;
|
|
169
|
+
$[8] = t2;
|
|
170
|
+
} else {
|
|
171
|
+
t2 = $[8];
|
|
172
|
+
}
|
|
173
|
+
return t2;
|
|
174
|
+
}
|
|
175
|
+
function _temp2(tab_0) {
|
|
176
|
+
return tab_0.getAttribute("aria-selected") === "true";
|
|
177
|
+
}
|
|
178
|
+
function _temp(tab) {
|
|
179
|
+
return tab.getAttribute("aria-selected") === "true";
|
|
180
|
+
}
|
|
181
|
+
function getFocusableTabs(tablist) {
|
|
182
|
+
return Array.from(tablist.querySelectorAll('[role="tab"]:not([aria-disabled])'));
|
|
183
|
+
}
|
|
184
|
+
/**
|
|
185
|
+
* A custom hook that provides the props needed for a tab component.
|
|
186
|
+
* The props returned should be spread onto the component (typically a button) with the `role=tab`, under a `tablist`.
|
|
187
|
+
*/
|
|
188
|
+
function useTab(props) {
|
|
189
|
+
const $ = c(21);
|
|
190
|
+
const {
|
|
191
|
+
disabled,
|
|
192
|
+
value
|
|
193
|
+
} = props;
|
|
194
|
+
const tabs = useTabs();
|
|
195
|
+
const selected = tabs.selectedValue === value;
|
|
196
|
+
const id = `${tabs.groupId}-tab-${value}`;
|
|
197
|
+
const panelId = `${tabs.groupId}-panel-${value}`;
|
|
198
|
+
let t0;
|
|
199
|
+
if ($[0] !== tabs || $[1] !== value) {
|
|
200
|
+
t0 = function onKeyDown(event) {
|
|
201
|
+
if (event.key === " " || event.key === "Enter") {
|
|
202
|
+
tabs.selectTab(value);
|
|
203
|
+
}
|
|
204
|
+
};
|
|
205
|
+
$[0] = tabs;
|
|
206
|
+
$[1] = value;
|
|
207
|
+
$[2] = t0;
|
|
208
|
+
} else {
|
|
209
|
+
t0 = $[2];
|
|
210
|
+
}
|
|
211
|
+
const onKeyDown = t0;
|
|
212
|
+
let t1;
|
|
213
|
+
if ($[3] !== disabled || $[4] !== tabs || $[5] !== value) {
|
|
214
|
+
t1 = function onMouseDown(event_0) {
|
|
215
|
+
if (!disabled && event_0.button === 0 && event_0.ctrlKey === false) {
|
|
216
|
+
tabs.selectTab(value);
|
|
217
|
+
} else {
|
|
218
|
+
event_0.preventDefault();
|
|
219
|
+
}
|
|
220
|
+
};
|
|
221
|
+
$[3] = disabled;
|
|
222
|
+
$[4] = tabs;
|
|
223
|
+
$[5] = value;
|
|
224
|
+
$[6] = t1;
|
|
225
|
+
} else {
|
|
226
|
+
t1 = $[6];
|
|
227
|
+
}
|
|
228
|
+
const onMouseDown = t1;
|
|
229
|
+
let t2;
|
|
230
|
+
if ($[7] !== disabled || $[8] !== selected || $[9] !== tabs || $[10] !== value) {
|
|
231
|
+
t2 = function onFocus() {
|
|
232
|
+
if (!selected && !disabled) {
|
|
233
|
+
tabs.selectTab(value);
|
|
234
|
+
}
|
|
235
|
+
};
|
|
236
|
+
$[7] = disabled;
|
|
237
|
+
$[8] = selected;
|
|
238
|
+
$[9] = tabs;
|
|
239
|
+
$[10] = value;
|
|
240
|
+
$[11] = t2;
|
|
241
|
+
} else {
|
|
242
|
+
t2 = $[11];
|
|
243
|
+
}
|
|
244
|
+
const onFocus = t2;
|
|
245
|
+
const t3 = disabled ? true : undefined;
|
|
246
|
+
const t4 = selected ? 0 : -1;
|
|
247
|
+
let t5;
|
|
248
|
+
if ($[12] !== id || $[13] !== onFocus || $[14] !== onKeyDown || $[15] !== onMouseDown || $[16] !== panelId || $[17] !== selected || $[18] !== t3 || $[19] !== t4) {
|
|
249
|
+
t5 = {
|
|
250
|
+
tabProps: {
|
|
251
|
+
"aria-disabled": t3,
|
|
252
|
+
"aria-controls": panelId,
|
|
253
|
+
"aria-selected": selected,
|
|
254
|
+
onKeyDown,
|
|
255
|
+
onMouseDown,
|
|
256
|
+
onFocus,
|
|
257
|
+
id,
|
|
258
|
+
role: "tab",
|
|
259
|
+
tabIndex: t4
|
|
260
|
+
}
|
|
261
|
+
};
|
|
262
|
+
$[12] = id;
|
|
263
|
+
$[13] = onFocus;
|
|
264
|
+
$[14] = onKeyDown;
|
|
265
|
+
$[15] = onMouseDown;
|
|
266
|
+
$[16] = panelId;
|
|
267
|
+
$[17] = selected;
|
|
268
|
+
$[18] = t3;
|
|
269
|
+
$[19] = t4;
|
|
270
|
+
$[20] = t5;
|
|
271
|
+
} else {
|
|
272
|
+
t5 = $[20];
|
|
273
|
+
}
|
|
274
|
+
return t5;
|
|
275
|
+
}
|
|
276
|
+
/** Utility hook for tab panels */
|
|
277
|
+
function useTabPanel(props) {
|
|
278
|
+
const $ = c(5);
|
|
279
|
+
const {
|
|
280
|
+
value
|
|
281
|
+
} = props;
|
|
282
|
+
const tabs = useTabs();
|
|
283
|
+
const id = `${tabs.groupId}-panel-${value}`;
|
|
284
|
+
const tabId = `${tabs.groupId}-tab-${value}`;
|
|
285
|
+
const t0 = tabs.selectedValue === value ? "" : undefined;
|
|
286
|
+
const t1 = tabs.selectedValue !== value;
|
|
287
|
+
let t2;
|
|
288
|
+
if ($[0] !== id || $[1] !== t0 || $[2] !== t1 || $[3] !== tabId) {
|
|
289
|
+
t2 = {
|
|
290
|
+
tabPanelProps: {
|
|
291
|
+
"aria-labelledby": tabId,
|
|
292
|
+
"data-selected": t0,
|
|
293
|
+
id,
|
|
294
|
+
hidden: t1,
|
|
295
|
+
role: "tabpanel"
|
|
296
|
+
}
|
|
297
|
+
};
|
|
298
|
+
$[0] = id;
|
|
299
|
+
$[1] = t0;
|
|
300
|
+
$[2] = t1;
|
|
301
|
+
$[3] = tabId;
|
|
302
|
+
$[4] = t2;
|
|
303
|
+
} else {
|
|
304
|
+
t2 = $[4];
|
|
305
|
+
}
|
|
306
|
+
return t2;
|
|
307
|
+
}
|
|
308
|
+
const TabsContext = /*#__PURE__*/createContext(null);
|
|
309
|
+
function useTabs() {
|
|
310
|
+
const context = useContext(TabsContext);
|
|
311
|
+
if (context) {
|
|
312
|
+
return context;
|
|
313
|
+
}
|
|
314
|
+
throw new Error("Component must be used within a <Tabs> component");
|
|
315
|
+
}
|
|
316
|
+
|
|
317
|
+
export { Tabs, useTab, useTabList, useTabPanel };
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/experimental/Tabs/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,IAAI,EAAE,MAAM,EAAE,UAAU,EAAE,WAAW,EAAC,MAAM,QAAQ,CAAA;AAC5D,YAAY,EAAC,SAAS,EAAE,YAAY,EAAE,QAAQ,EAAE,aAAa,EAAC,MAAM,QAAQ,CAAA"}
|
|
@@ -45,4 +45,5 @@ export type { FilteredActionListProps } from '../FilteredActionList';
|
|
|
45
45
|
export { IssueLabel } from './IssueLabel';
|
|
46
46
|
export type { IssueLabelProps } from './IssueLabel';
|
|
47
47
|
export * from '../KeybindingHint';
|
|
48
|
+
export * from './Tabs';
|
|
48
49
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/experimental/index.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/experimental/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -29,3 +29,4 @@ export { useOverflow } from '../hooks/useOverflow.js';
|
|
|
29
29
|
export { useSlots } from '../hooks/useSlots.js';
|
|
30
30
|
export { SelectPanel } from './SelectPanel2/SelectPanel.js';
|
|
31
31
|
export { KeybindingHint, getAccessibleKeybindingHintString } from '../KeybindingHint/KeybindingHint.js';
|
|
32
|
+
export { Tabs, useTab, useTabList, useTabPanel } from './Tabs/Tabs.js';
|
|
@@ -111,6 +111,35 @@
|
|
|
111
111
|
"defaultValue": ""
|
|
112
112
|
}
|
|
113
113
|
]
|
|
114
|
+
},
|
|
115
|
+
{
|
|
116
|
+
"name": "ActionBar.Menu",
|
|
117
|
+
"props": [
|
|
118
|
+
{
|
|
119
|
+
"name": "aria-label",
|
|
120
|
+
"type": "string",
|
|
121
|
+
"required": true,
|
|
122
|
+
"description": "Accessible label for the menu button."
|
|
123
|
+
},
|
|
124
|
+
{
|
|
125
|
+
"name": "icon",
|
|
126
|
+
"type": "Component",
|
|
127
|
+
"required": true,
|
|
128
|
+
"description": "Icon for the menu button."
|
|
129
|
+
},
|
|
130
|
+
{
|
|
131
|
+
"name": "items",
|
|
132
|
+
"type": "ActionBarMenuItemProps[]",
|
|
133
|
+
"required": true,
|
|
134
|
+
"description": "Array of menu items to render in the menu. Each item can be an action, group, or divider."
|
|
135
|
+
},
|
|
136
|
+
{
|
|
137
|
+
"name": "overflowIcon",
|
|
138
|
+
"type": "Component | 'none'",
|
|
139
|
+
"required": false,
|
|
140
|
+
"description": "Icon displayed when the menu item is within the overflow menu. If 'none' is provided, no icon will be shown in the overflow menu."
|
|
141
|
+
}
|
|
142
|
+
]
|
|
114
143
|
}
|
|
115
144
|
]
|
|
116
145
|
},
|
package/package.json
CHANGED
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
.prc-PageHeader-PageHeader-sT1Hp{--grid-row-order-context-area:1;--grid-row-order-leading-action:2;--grid-row-order-breadcrumbs:2;--grid-row-order-title-area:2;--grid-row-order-trailing-action:2;--grid-row-order-actions:2;--grid-row-order-description:3;--grid-row-order-navigation:4;--title-area-region-order-leading-visual:0;--title-area-region-order-title:1;--title-area-region-order-trailing-visual:2;--context-area-region-order-parent-link:0;--context-area-region-order-context-bar:1;--context-area-region-order-context-area-actions:2;display:grid;grid-template-areas:"context-area context-area context-area context-area context-area" "leading-action breadcrumbs title-area trailing-action actions" "description description description description description" "navigation navigation navigation navigation navigation";grid-template-columns:auto auto auto auto 1fr}.prc-PageHeader-PageHeader-sT1Hp:has([data-component=TitleArea][data-size-variant=large]){font-size:var(--custom-font-size,var(--text-title-size-large,2rem));font-weight:var(--custom-font-weight,var(--base-text-weight-normal,400));line-height:var(--custom-line-height,var(--text-title-lineHeight-large,1.5));--title-line-height:var(--custom-line-height,var(--text-title-lineHeight-large,1.5))}.prc-PageHeader-PageHeader-sT1Hp:has([data-component=TitleArea][data-size-variant=medium]){font-size:var(--custom-font-size,var(--text-title-size-medium,1.25rem));font-weight:var(--custom-font-weight,var(--base-text-weight-semibold,600));line-height:var(--custom-line-height,var(--text-title-lineHeight-medium,1.6));--title-line-height:var(--custom-line-height,var(--text-title-lineHeight-medium,1.6))}.prc-PageHeader-PageHeader-sT1Hp:has([data-component=TitleArea][data-size-variant=subtitle]){font-size:var(--custom-font-size,var(--text-title-size-medium,1.25rem));font-weight:var(--custom-font-weight,var(--base-text-weight-normal,400));line-height:var(--custom-line-height,var(--text-title-lineHeight-medium,1.6));--title-line-height:var(--custom-line-height,var(--text-title-lineHeight-medium,1.6))}.prc-PageHeader-PageHeader-sT1Hp[data-has-border=true]:has([data-component=PH_Navigation][data-hidden-all]),.prc-PageHeader-PageHeader-sT1Hp[data-has-border=true]:not(:has([data-component=PH_Navigation])){border-block-end:var(--borderWidth-thin,.0625rem) solid var(--borderColor-default,var(--color-border-default));padding-block-end:var(--base-size-8,.5rem)}@media screen and (max-width:768px){.prc-PageHeader-PageHeader-sT1Hp[data-has-border=true]:has([data-component=PH_Navigation][data-hidden-narrow]){border-block-end:var(--borderWidth-thin,.0625rem) solid var(--borderColor-default,var(--color-border-default));padding-block-end:var(--base-size-8,.5rem)}}@media screen and (min-width:768px){.prc-PageHeader-PageHeader-sT1Hp[data-has-border=true]:has([data-component=PH_Navigation][data-hidden-regular]){border-block-end:var(--borderWidth-thin,.0625rem) solid var(--borderColor-default,var(--color-border-default));padding-block-end:var(--base-size-8,.5rem)}}@media screen and (min-width:1440px){.prc-PageHeader-PageHeader-sT1Hp[data-has-border=true]:has([data-component=PH_Navigation][data-hidden-wide]){border-block-end:var(--borderWidth-thin,.0625rem) solid var(--borderColor-default,var(--color-border-default));padding-block-end:var(--base-size-8,.5rem)}}.prc-PageHeader-PageHeader-sT1Hp [data-component=PH_Actions],.prc-PageHeader-PageHeader-sT1Hp [data-component=PH_LeadingAction],.prc-PageHeader-PageHeader-sT1Hp [data-component=PH_LeadingVisual],.prc-PageHeader-PageHeader-sT1Hp [data-component=PH_TrailingAction],.prc-PageHeader-PageHeader-sT1Hp [data-component=PH_TrailingVisual]{height:calc(var(--title-line-height)*1em)}.prc-PageHeader-PageHeader-sT1Hp [data-hidden-all]{display:none}@media screen and (max-width:768px){.prc-PageHeader-PageHeader-sT1Hp [data-hidden-narrow]{display:none}}@media screen and (min-width:768px){.prc-PageHeader-PageHeader-sT1Hp [data-hidden-regular]{display:none}}@media screen and (min-width:1440px){.prc-PageHeader-PageHeader-sT1Hp [data-hidden-wide]{display:none}}.prc-PageHeader-ContextArea-6ykSJ{flex-direction:row;font-size:var(--text-body-size-medium,.875rem);font-weight:var(--base-text-weight-normal,400);grid-area:context-area;grid-row:var(--grid-row-order-context-area);line-height:var(--text-body-lineHeight-medium,1.4285);padding-bottom:var(--base-size-8,.5rem)}.prc-PageHeader-ContextArea-6ykSJ,.prc-PageHeader-ParentLink-BvDS0{align-items:center;display:flex;gap:var(--stack-gap-condensed,.5rem)}.prc-PageHeader-ParentLink-BvDS0{order:var(--context-area-region-order-parent-link)}.prc-PageHeader-ContextBar-XQ8Q0{display:flex;order:var(--context-area-region-order-context-bar)}.prc-PageHeader-ContextAreaActions-RTJRk{align-items:center;flex-grow:1;justify-content:flex-end;order:var(--context-area-region-order-context-area-actions)}.prc-PageHeader-ContextAreaActions-RTJRk,.prc-PageHeader-TitleArea-jxJZy{display:flex;flex-direction:row;gap:var(--stack-gap-condensed,.5rem)}.prc-PageHeader-TitleArea-jxJZy{align-items:flex-start;grid-area:title-area;grid-row:var(--grid-row-order-title-area)}.prc-PageHeader-LeadingAction-88LQ0{grid-area:leading-action;grid-row:var(--grid-row-order-leading-action)}.prc-PageHeader-Breadcrumbs-3c6ig,.prc-PageHeader-LeadingAction-88LQ0{align-items:center;display:flex;padding-right:var(--base-size-8,.5rem)}.prc-PageHeader-Breadcrumbs-3c6ig{font-size:var(--text-body-size-medium,.875rem);font-weight:var(--base-text-weight-normal,400);grid-area:breadcrumbs;grid-row:var(--grid-row-order-breadcrumbs);line-height:var(--text-body-lineHeight-medium,1.4285)}.prc-PageHeader-LeadingVisual-7zjCx{align-items:center;display:flex;order:var(--title-area-region-order-leading-visual)}.prc-PageHeader-Title-LKOsd{display:block;font-size:inherit;font-weight:inherit;order:var(--title-area-region-order-title)}.prc-PageHeader-Title-LKOsd:where([data-hidden=true]){display:none}.prc-PageHeader-TrailingVisual-7Ft0D{align-items:center;display:flex;order:var(--title-area-region-order-trailing-visual)}.prc-PageHeader-TrailingAction-QOaow{grid-area:trailing-action;grid-row:var(--grid-row-order-trailing-action)}.prc-PageHeader-Actions-ygtmj,.prc-PageHeader-TrailingAction-QOaow{align-items:center;display:flex;padding-left:var(--base-size-8,.5rem)}.prc-PageHeader-Actions-ygtmj{flex-direction:row;gap:var(--stack-gap-condensed,.5rem);grid-area:actions;grid-row:var(--grid-row-order-actions);justify-content:flex-end;min-width:max-content}.prc-PageHeader-Description-kFg8r{align-items:center;display:flex;flex-direction:row;gap:var(--stack-gap-condensed,.5rem);grid-area:description;grid-row:var(--grid-row-order-description)}.prc-PageHeader-Description-kFg8r,.prc-PageHeader-Navigation-9Uvch{font-size:var(--text-body-size-medium,.875rem);font-weight:var(--base-text-weight-normal,400);line-height:var(--text-body-lineHeight-medium,1.4285);padding-top:var(--base-size-8,.5rem)}.prc-PageHeader-Navigation-9Uvch{display:block;grid-area:navigation;grid-row:var(--grid-row-order-navigation)}
|
|
2
|
-
/*# sourceMappingURL=PageHeader-4e1d8fee.css.map */
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/PageHeader/PageHeader.module.css"],"names":[],"mappings":"AAAA,iCAEE,+BAAgC,CAChC,iCAAkC,CAClC,8BAA+B,CAC/B,6BAA8B,CAC9B,kCAAmC,CACnC,0BAA2B,CAC3B,8BAA+B,CAC/B,6BAA8B,CAG9B,0CAA2C,CAC3C,iCAAkC,CAClC,2CAA4C,CAG5C,yCAA0C,CAC1C,yCAA0C,CAC1C,kDAAmD,CAEnD,YAAa,CAIb,6QAI0D,CAL1D,6CA4FF,CAhFE,0FACE,mEAAsE,CACtE,wEAA2E,CAC3E,4EAA+E,CAE/E,oFACF,CAEA,2FACE,uEAA0E,CAC1E,0EAA6E,CAC7E,6EAAgF,CAEhF,qFACF,CAEA,6FACE,uEAA0E,CAC1E,wEAA2E,CAC3E,6EAAgF,CAEhF,qFACF,CAEA,6MAEE,8GAA0E,CAC1E,0CACF,CAEA,oCACE,+GACE,8GAA0E,CAC1E,0CACF,CACF,CAEA,oCACE,gHACE,8GAA0E,CAC1E,0CACF,CACF,CAEA,qCACE,6GACE,8GAA0E,CAC1E,0CACF,CACF,CAEA,2UAKE,yCACF,CAEA,mDACE,YACF,CAGE,oCADF,sDAEI,YAEJ,CADE,CAIA,oCADF,uDAEI,YAEJ,CADE,CAIA,qCADF,oDAEI,YAEJ,CADE,CAIJ,kCAME,kBAAmB,CAHnB,8CAAiD,CACjD,8CAA2C,CAI3C,sBAAuB,CADvB,2CAA4C,CAF5C,qDAAuD,CAHvD,uCASF,CAEA,mEAJE,kBAAmB,CARnB,YAAa,CASb,oCAQF,CALA,iCAGE,kDAEF,CAEA,iCACE,YAAa,CACb,kDACF,CAEA,yCAIE,kBAAmB,CAEnB,WAAY,CACZ,wBAAyB,CAJzB,2DAKF,CAEA,yEATE,YAAa,CACb,kBAAmB,CAGnB,oCAYF,CAPA,gCAME,sBAAuB,CAJvB,oBAAqB,CADrB,yCAMF,CAEA,oCAIE,wBAAyB,CADzB,6CAGF,CAEA,sEAHE,kBAAmB,CAJnB,YAAa,CACb,sCAeF,CATA,kCAGE,8CAAiD,CACjD,8CAA2C,CAG3C,qBAAsB,CADtB,0CAA2C,CAD3C,qDAIF,CAEA,oCAIE,kBAAmB,CAFnB,YAAa,CACb,mDAEF,CAEA,4BAEE,aAAc,CAEd,iBAAkB,CAClB,mBAAoB,CAFpB,0CAGF,CAEA,sDACE,YACF,CAEA,qCAIE,kBAAmB,CAFnB,YAAa,CACb,oDAEF,CAEA,qCAIE,yBAA0B,CAD1B,8CAGF,CAEA,mEAHE,kBAAmB,CAJnB,YAAa,CACb,qCAgBF,CAVA,8BAIE,kBAAmB,CAGnB,oCAA+B,CAD/B,iBAAkB,CADlB,sCAAuC,CAGvC,wBAAyB,CANzB,qBAQF,CAEA,kCASE,kBAAmB,CARnB,YAAa,CAKb,kBAAmB,CAInB,oCAA+B,CAF/B,qBAAsB,CADtB,0CAIF,CAEA,mEAVE,8CAAiD,CACjD,8CAA2C,CAC3C,qDAAuD,CAHvD,oCAmBF,CARA,iCACE,aAAc,CAMd,oBAAqB,CADrB,yCAEF","file":"PageHeader-4e1d8fee.css","sourcesContent":[".PageHeader {\n /* Grid Row Order */\n --grid-row-order-context-area: 1;\n --grid-row-order-leading-action: 2;\n --grid-row-order-breadcrumbs: 2;\n --grid-row-order-title-area: 2;\n --grid-row-order-trailing-action: 2;\n --grid-row-order-actions: 2;\n --grid-row-order-description: 3;\n --grid-row-order-navigation: 4;\n\n /* Title Area Region Order */\n --title-area-region-order-leading-visual: 0;\n --title-area-region-order-title: 1;\n --title-area-region-order-trailing-visual: 2;\n\n /* Context Area Region Order */\n --context-area-region-order-parent-link: 0;\n --context-area-region-order-context-bar: 1;\n --context-area-region-order-context-area-actions: 2;\n\n display: grid;\n\n /* We have max 5 columns. */\n grid-template-columns: auto auto auto auto 1fr;\n grid-template-areas:\n 'context-area context-area context-area context-area context-area'\n 'leading-action breadcrumbs title-area trailing-action actions'\n 'description description description description description'\n 'navigation navigation navigation navigation navigation';\n\n /*\n line-height is calculated with calc(height/font-size) and the below numbers are from @primer/primitives.\n --custom-font-size, --custom-line-height, --custom-font-weight are custom properties that can be used to override the below values.\n We don't want these values to be overridden but still want to allow consumers to override them if needed.\n */\n &:has([data-component='TitleArea'][data-size-variant='large']) {\n font-size: var(--custom-font-size, var(--text-title-size-large, 2rem));\n font-weight: var(--custom-font-weight, var(--base-text-weight-normal, 400));\n line-height: var(--custom-line-height, var(--text-title-lineHeight-large, 1.5)); /* calc(48/32) */\n\n --title-line-height: var(--custom-line-height, var(--text-title-lineHeight-large, 1.5));\n }\n\n &:has([data-component='TitleArea'][data-size-variant='medium']) {\n font-size: var(--custom-font-size, var(--text-title-size-medium, 1.25rem));\n font-weight: var(--custom-font-weight, var(--base-text-weight-semibold, 600));\n line-height: var(--custom-line-height, var(--text-title-lineHeight-medium, 1.6)); /* calc(32/20) */\n\n --title-line-height: var(--custom-line-height, var(--text-title-lineHeight-medium, 1.6));\n }\n\n &:has([data-component='TitleArea'][data-size-variant='subtitle']) {\n font-size: var(--custom-font-size, var(--text-title-size-medium, 1.25rem));\n font-weight: var(--custom-font-weight, var(--base-text-weight-normal, 400));\n line-height: var(--custom-line-height, var(--text-title-lineHeight-medium, 1.6)); /* calc(32/20) */\n\n --title-line-height: var(--custom-line-height, var(--text-title-lineHeight-medium, 1.6));\n }\n\n &[data-has-border='true']:has([data-component='PH_Navigation'][data-hidden-all]),\n &[data-has-border='true']:not(:has([data-component='PH_Navigation'])) {\n border-block-end: var(--borderWidth-thin) solid var(--borderColor-default);\n padding-block-end: var(--base-size-8);\n }\n\n @media screen and (max-width: 768px) {\n &[data-has-border='true']:has([data-component='PH_Navigation'][data-hidden-narrow]) {\n border-block-end: var(--borderWidth-thin) solid var(--borderColor-default);\n padding-block-end: var(--base-size-8);\n }\n }\n\n @media screen and (min-width: 768px) {\n &[data-has-border='true']:has([data-component='PH_Navigation'][data-hidden-regular]) {\n border-block-end: var(--borderWidth-thin) solid var(--borderColor-default);\n padding-block-end: var(--base-size-8);\n }\n }\n\n @media screen and (min-width: 1440px) {\n &[data-has-border='true']:has([data-component='PH_Navigation'][data-hidden-wide]) {\n border-block-end: var(--borderWidth-thin) solid var(--borderColor-default);\n padding-block-end: var(--base-size-8);\n }\n }\n\n & [data-component='PH_LeadingAction'],\n & [data-component='PH_TrailingAction'],\n & [data-component='PH_Actions'],\n & [data-component='PH_LeadingVisual'],\n & [data-component='PH_TrailingVisual'] {\n height: calc(var(--title-line-height) * 1em);\n }\n\n & [data-hidden-all] {\n display: none;\n }\n\n & [data-hidden-narrow] {\n @media screen and (max-width: 768px) {\n display: none;\n }\n }\n\n & [data-hidden-regular] {\n @media screen and (min-width: 768px) {\n display: none;\n }\n }\n\n & [data-hidden-wide] {\n @media screen and (min-width: 1440px) {\n display: none;\n }\n }\n}\n\n.ContextArea {\n display: flex;\n padding-bottom: var(--base-size-8);\n font-size: var(--text-body-size-medium, 0.875rem);\n font-weight: var(--base-text-weight-normal);\n line-height: var(--text-body-lineHeight-medium, 1.4285);\n flex-direction: row;\n grid-row: var(--grid-row-order-context-area);\n grid-area: context-area;\n align-items: center;\n gap: var(--stack-gap-condensed);\n}\n\n.ParentLink {\n display: flex;\n align-items: center;\n order: var(--context-area-region-order-parent-link);\n gap: var(--stack-gap-condensed);\n}\n\n.ContextBar {\n display: flex;\n order: var(--context-area-region-order-context-bar);\n}\n\n.ContextAreaActions {\n display: flex;\n flex-direction: row;\n order: var(--context-area-region-order-context-area-actions);\n align-items: center;\n gap: var(--stack-gap-condensed);\n flex-grow: 1;\n justify-content: flex-end;\n}\n\n.TitleArea {\n grid-row: var(--grid-row-order-title-area);\n grid-area: title-area;\n display: flex;\n gap: var(--stack-gap-condensed);\n flex-direction: row;\n align-items: flex-start;\n}\n\n.LeadingAction {\n display: flex;\n padding-right: var(--base-size-8);\n grid-row: var(--grid-row-order-leading-action);\n grid-area: leading-action;\n align-items: center;\n}\n\n.Breadcrumbs {\n display: flex;\n padding-right: var(--base-size-8);\n font-size: var(--text-body-size-medium, 0.875rem);\n font-weight: var(--base-text-weight-normal);\n line-height: var(--text-body-lineHeight-medium, 1.4285);\n grid-row: var(--grid-row-order-breadcrumbs);\n grid-area: breadcrumbs;\n align-items: center;\n}\n\n.LeadingVisual {\n /* using flex and order to display the leading visual in the title area. */\n display: flex;\n order: var(--title-area-region-order-leading-visual);\n align-items: center;\n}\n\n.Title {\n /* using flex and order to display the title in the title area. */\n display: block;\n order: var(--title-area-region-order-title);\n font-size: inherit;\n font-weight: inherit;\n}\n\n.Title:where([data-hidden='true']) {\n display: none;\n}\n\n.TrailingVisual {\n /* using flex and order to display the trailing visual in the title area. */\n display: flex;\n order: var(--title-area-region-order-trailing-visual);\n align-items: center;\n}\n\n.TrailingAction {\n display: flex;\n padding-left: var(--base-size-8);\n grid-row: var(--grid-row-order-trailing-action);\n grid-area: trailing-action;\n align-items: center;\n}\n\n.Actions {\n display: flex;\n min-width: max-content;\n padding-left: var(--base-size-8);\n flex-direction: row;\n grid-row: var(--grid-row-order-actions);\n grid-area: actions;\n gap: var(--stack-gap-condensed);\n justify-content: flex-end;\n align-items: center;\n}\n\n.Description {\n display: flex;\n padding-top: var(--base-size-8);\n font-size: var(--text-body-size-medium, 0.875rem);\n font-weight: var(--base-text-weight-normal);\n line-height: var(--text-body-lineHeight-medium, 1.4285);\n flex-direction: row;\n grid-row: var(--grid-row-order-description);\n grid-area: description;\n align-items: center;\n gap: var(--stack-gap-condensed);\n}\n\n.Navigation {\n display: block;\n padding-top: var(--base-size-8);\n font-size: var(--text-body-size-medium, 0.875rem);\n font-weight: var(--base-text-weight-normal);\n line-height: var(--text-body-lineHeight-medium, 1.4285);\n grid-row: var(--grid-row-order-navigation);\n grid-area: navigation;\n}\n"]}
|