@primer/components 0.0.0-202111321290 → 0.0.0-202111613539
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/browser.esm.js +2 -2
- package/dist/browser.esm.js.map +1 -1
- package/dist/browser.umd.js +2 -2
- package/dist/browser.umd.js.map +1 -1
- package/lib/ActionList2/{MenuContext.d.ts → ActionListContainerContext.d.ts} +3 -3
- package/lib/ActionList2/{MenuContext.js → ActionListContainerContext.js} +3 -3
- package/lib/ActionList2/Item.js +4 -6
- package/lib/ActionList2/List.js +2 -2
- package/lib/ActionList2/Selection.js +4 -4
- package/lib/ActionMenu2.d.ts +13 -9
- package/lib/ActionMenu2.js +63 -29
- package/lib/Autocomplete/AutocompleteMenu.js +13 -6
- package/lib/Checkbox.d.ts +1 -1
- package/lib/hooks/index.d.ts +1 -0
- package/lib/hooks/index.js +9 -1
- package/lib/index.d.ts +0 -3
- package/lib/index.js +0 -24
- package/lib-esm/ActionList2/{MenuContext.d.ts → ActionListContainerContext.d.ts} +3 -3
- package/lib-esm/ActionList2/{MenuContext.js → ActionListContainerContext.js} +1 -1
- package/lib-esm/ActionList2/Item.js +4 -6
- package/lib-esm/ActionList2/List.js +2 -2
- package/lib-esm/ActionList2/Selection.js +4 -4
- package/lib-esm/ActionMenu2.d.ts +13 -9
- package/lib-esm/ActionMenu2.js +60 -27
- package/lib-esm/Autocomplete/AutocompleteMenu.js +13 -3
- package/lib-esm/Checkbox.d.ts +1 -1
- package/lib-esm/hooks/index.d.ts +1 -0
- package/lib-esm/hooks/index.js +2 -1
- package/lib-esm/index.d.ts +0 -3
- package/lib-esm/index.js +0 -3
- package/package.json +2 -2
- package/lib/CheckboxInputField.d.ts +0 -10
- package/lib/CheckboxInputField.js +0 -73
- package/lib/RadioInputField.d.ts +0 -8
- package/lib/RadioInputField.js +0 -82
- package/lib/TextInputField.d.ts +0 -583
- package/lib/TextInputField.js +0 -66
- package/lib/_InputCaption.d.ts +0 -13
- package/lib/_InputCaption.js +0 -26
- package/lib/_InputField/InputField.d.ts +0 -39
- package/lib/_InputField/InputField.js +0 -90
- package/lib/_InputField/InputFieldCaption.d.ts +0 -3
- package/lib/_InputField/InputFieldCaption.js +0 -30
- package/lib/_InputField/InputFieldLabel.d.ts +0 -9
- package/lib/_InputField/InputFieldLabel.js +0 -34
- package/lib/_InputField/InputFieldValidation.d.ts +0 -6
- package/lib/_InputField/InputFieldValidation.js +0 -17
- package/lib/_InputField/ToggleInputField.d.ts +0 -13
- package/lib/_InputField/ToggleInputField.js +0 -71
- package/lib/_InputField/ToggleInputLeadingVisual.d.ts +0 -3
- package/lib/_InputField/ToggleInputLeadingVisual.js +0 -22
- package/lib/_InputField/ValidationAnimationContainer.d.ts +0 -6
- package/lib/_InputField/ValidationAnimationContainer.js +0 -48
- package/lib/_InputField/index.d.ts +0 -1
- package/lib/_InputField/index.js +0 -15
- package/lib/_InputField/slots.d.ts +0 -13
- package/lib/_InputField/slots.js +0 -17
- package/lib/_InputLabel.d.ts +0 -8
- package/lib/_InputLabel.js +0 -44
- package/lib/_InputValidation.d.ts +0 -8
- package/lib/_InputValidation.js +0 -56
- package/lib/_VisuallyHidden.d.ts +0 -6
- package/lib/_VisuallyHidden.js +0 -39
- package/lib/utils/types/FormValidationStatus.d.ts +0 -1
- package/lib/utils/types/FormValidationStatus.js +0 -1
- package/lib-esm/CheckboxInputField.d.ts +0 -10
- package/lib-esm/CheckboxInputField.js +0 -56
- package/lib-esm/RadioInputField.d.ts +0 -8
- package/lib-esm/RadioInputField.js +0 -65
- package/lib-esm/TextInputField.d.ts +0 -583
- package/lib-esm/TextInputField.js +0 -50
- package/lib-esm/_InputCaption.d.ts +0 -13
- package/lib-esm/_InputCaption.js +0 -15
- package/lib-esm/_InputField/InputField.d.ts +0 -39
- package/lib-esm/_InputField/InputField.js +0 -70
- package/lib-esm/_InputField/InputFieldCaption.d.ts +0 -3
- package/lib-esm/_InputField/InputFieldCaption.js +0 -18
- package/lib-esm/_InputField/InputFieldLabel.d.ts +0 -9
- package/lib-esm/_InputField/InputFieldLabel.js +0 -22
- package/lib-esm/_InputField/InputFieldValidation.d.ts +0 -6
- package/lib-esm/_InputField/InputFieldValidation.js +0 -7
- package/lib-esm/_InputField/ToggleInputField.d.ts +0 -13
- package/lib-esm/_InputField/ToggleInputField.js +0 -54
- package/lib-esm/_InputField/ToggleInputLeadingVisual.d.ts +0 -3
- package/lib-esm/_InputField/ToggleInputLeadingVisual.js +0 -11
- package/lib-esm/_InputField/ValidationAnimationContainer.d.ts +0 -6
- package/lib-esm/_InputField/ValidationAnimationContainer.js +0 -33
- package/lib-esm/_InputField/index.d.ts +0 -1
- package/lib-esm/_InputField/index.js +0 -1
- package/lib-esm/_InputField/slots.d.ts +0 -13
- package/lib-esm/_InputField/slots.js +0 -5
- package/lib-esm/_InputLabel.d.ts +0 -8
- package/lib-esm/_InputLabel.js +0 -32
- package/lib-esm/_InputValidation.d.ts +0 -8
- package/lib-esm/_InputValidation.js +0 -43
- package/lib-esm/_VisuallyHidden.d.ts +0 -6
- package/lib-esm/_VisuallyHidden.js +0 -26
- package/lib-esm/utils/types/FormValidationStatus.d.ts +0 -1
- package/lib-esm/utils/types/FormValidationStatus.js +0 -1
@@ -1,10 +1,10 @@
|
|
1
1
|
/** This context can be used by components that compose ActionList inside a Menu */
|
2
2
|
import React from 'react';
|
3
3
|
declare type ContextProps = {
|
4
|
-
|
4
|
+
container?: string;
|
5
5
|
listRole?: string;
|
6
6
|
itemRole?: string;
|
7
|
-
afterSelect?:
|
7
|
+
afterSelect?: Function;
|
8
8
|
};
|
9
|
-
export declare const
|
9
|
+
export declare const ActionListContainerContext: React.Context<ContextProps>;
|
10
10
|
export {};
|
@@ -3,13 +3,13 @@
|
|
3
3
|
Object.defineProperty(exports, "__esModule", {
|
4
4
|
value: true
|
5
5
|
});
|
6
|
-
exports.
|
6
|
+
exports.ActionListContainerContext = void 0;
|
7
7
|
|
8
8
|
var _react = _interopRequireDefault(require("react"));
|
9
9
|
|
10
10
|
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
11
11
|
|
12
12
|
/** This context can be used by components that compose ActionList inside a Menu */
|
13
|
-
const
|
13
|
+
const ActionListContainerContext = /*#__PURE__*/_react.default.createContext({});
|
14
14
|
|
15
|
-
exports.
|
15
|
+
exports.ActionListContainerContext = ActionListContainerContext;
|
package/lib/ActionList2/Item.js
CHANGED
@@ -21,7 +21,7 @@ var _createSlots = _interopRequireDefault(require("../utils/create-slots"));
|
|
21
21
|
|
22
22
|
var _List = require("./List");
|
23
23
|
|
24
|
-
var
|
24
|
+
var _ActionListContainerContext = require("./ActionListContainerContext");
|
25
25
|
|
26
26
|
var _Selection = require("./Selection");
|
27
27
|
|
@@ -96,7 +96,7 @@ const Item = /*#__PURE__*/_react.default.forwardRef(({
|
|
96
96
|
const {
|
97
97
|
itemRole,
|
98
98
|
afterSelect
|
99
|
-
} = _react.default.useContext(
|
99
|
+
} = _react.default.useContext(_ActionListContainerContext.ActionListContainerContext);
|
100
100
|
|
101
101
|
const {
|
102
102
|
theme
|
@@ -171,22 +171,20 @@ const Item = /*#__PURE__*/_react.default.forwardRef(({
|
|
171
171
|
};
|
172
172
|
|
173
173
|
const clickHandler = _react.default.useCallback(event => {
|
174
|
-
if (typeof onSelect !== 'function') return;
|
175
174
|
if (disabled) return;
|
176
175
|
|
177
176
|
if (!event.defaultPrevented) {
|
178
|
-
onSelect(event); // if this Item is inside a Menu, close the Menu
|
177
|
+
if (typeof onSelect === 'function') onSelect(event); // if this Item is inside a Menu, close the Menu
|
179
178
|
|
180
179
|
if (typeof afterSelect === 'function') afterSelect();
|
181
180
|
}
|
182
181
|
}, [onSelect, disabled, afterSelect]);
|
183
182
|
|
184
183
|
const keyPressHandler = _react.default.useCallback(event => {
|
185
|
-
if (typeof onSelect !== 'function') return;
|
186
184
|
if (disabled) return;
|
187
185
|
|
188
186
|
if (!event.defaultPrevented && [' ', 'Enter'].includes(event.key)) {
|
189
|
-
onSelect(event); // if this Item is inside a Menu, close the Menu
|
187
|
+
if (typeof onSelect === 'function') onSelect(event); // if this Item is inside a Menu, close the Menu
|
190
188
|
|
191
189
|
if (typeof afterSelect === 'function') afterSelect();
|
192
190
|
}
|
package/lib/ActionList2/List.js
CHANGED
@@ -11,7 +11,7 @@ var _styledComponents = _interopRequireDefault(require("styled-components"));
|
|
11
11
|
|
12
12
|
var _sx = _interopRequireWildcard(require("../sx"));
|
13
13
|
|
14
|
-
var
|
14
|
+
var _ActionListContainerContext = require("./ActionListContainerContext");
|
15
15
|
|
16
16
|
function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function (nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
|
17
17
|
|
@@ -48,7 +48,7 @@ const List = /*#__PURE__*/_react.default.forwardRef(({
|
|
48
48
|
|
49
49
|
const {
|
50
50
|
listRole
|
51
|
-
} = _react.default.useContext(
|
51
|
+
} = _react.default.useContext(_ActionListContainerContext.ActionListContainerContext);
|
52
52
|
|
53
53
|
return /*#__PURE__*/_react.default.createElement(ListBox, _extends({
|
54
54
|
sx: (0, _sx.merge)(styles, sxProp),
|
@@ -13,7 +13,7 @@ var _List = require("./List");
|
|
13
13
|
|
14
14
|
var _Group = require("./Group");
|
15
15
|
|
16
|
-
var
|
16
|
+
var _ActionListContainerContext = require("./ActionListContainerContext");
|
17
17
|
|
18
18
|
var _Visuals = require("./Visuals");
|
19
19
|
|
@@ -31,8 +31,8 @@ const Selection = ({
|
|
31
31
|
} = _react.default.useContext(_Group.GroupContext);
|
32
32
|
|
33
33
|
const {
|
34
|
-
|
35
|
-
} = _react.default.useContext(
|
34
|
+
container
|
35
|
+
} = _react.default.useContext(_ActionListContainerContext.ActionListContainerContext);
|
36
36
|
/** selectionVariant in Group can override the selectionVariant in List root */
|
37
37
|
|
38
38
|
|
@@ -44,7 +44,7 @@ const Selection = ({
|
|
44
44
|
return null;
|
45
45
|
}
|
46
46
|
|
47
|
-
if (
|
47
|
+
if (container === 'ActionMenu') {
|
48
48
|
throw new Error('ActionList cannot have a selectionVariant inside ActionMenu, please use DropdownMenu or SelectPanel instead. More information: https://primer.style/design/components/action-list#application');
|
49
49
|
return null;
|
50
50
|
}
|
package/lib/ActionMenu2.d.ts
CHANGED
@@ -1,10 +1,12 @@
|
|
1
1
|
import { ButtonProps } from './Button';
|
2
2
|
import React from 'react';
|
3
|
+
import { AnchoredOverlayProps } from './AnchoredOverlay';
|
3
4
|
import { OverlayProps } from './Overlay';
|
4
|
-
|
5
|
-
declare
|
5
|
+
declare type MenuContextProps = Pick<AnchoredOverlayProps, 'anchorRef' | 'renderAnchor' | 'open' | 'onOpen' | 'onClose'>;
|
6
|
+
export declare const MenuContext: React.Context<MenuContextProps>;
|
7
|
+
export declare type ActionMenuProps = {
|
6
8
|
/**
|
7
|
-
* Recommended: `ActionMenu.Button` or `ActionMenu.Anchor` with
|
9
|
+
* Recommended: `ActionMenu.Button` or `ActionMenu.Anchor` with `ActionMenu.Overlay`
|
8
10
|
*/
|
9
11
|
children: React.ReactElement[] | React.ReactElement;
|
10
12
|
/**
|
@@ -15,17 +17,18 @@ declare type ActionMenuBaseProps = {
|
|
15
17
|
* If defined, will control the open/closed state of the overlay. Must be used in conjuction with `open`.
|
16
18
|
*/
|
17
19
|
onOpenChange?: (s: boolean) => void;
|
18
|
-
|
19
|
-
* Props to be spread on the internal `Overlay` component.
|
20
|
-
*/
|
21
|
-
overlayProps?: Partial<OverlayProps>;
|
22
|
-
};
|
23
|
-
export declare type ActionMenuProps = ActionMenuBaseProps & AnchoredOverlayWrapperAnchorProps;
|
20
|
+
} & Pick<AnchoredOverlayProps, 'anchorRef'>;
|
24
21
|
export declare type MenuAnchorProps = {
|
25
22
|
children: React.ReactElement;
|
26
23
|
};
|
27
24
|
/** this component is syntactical sugar 🍭 */
|
28
25
|
export declare type MenuButtonProps = ButtonProps;
|
26
|
+
declare type MenuOverlayProps = Partial<OverlayProps> & {
|
27
|
+
/**
|
28
|
+
* Recommended: `ActionList`
|
29
|
+
*/
|
30
|
+
children: React.ReactElement[] | React.ReactElement;
|
31
|
+
};
|
29
32
|
export declare const ActionMenu: React.FC<ActionMenuProps> & {
|
30
33
|
Button: React.ForwardRefExoticComponent<Pick<{
|
31
34
|
color?: string | undefined;
|
@@ -308,6 +311,7 @@ export declare const ActionMenu: React.FC<ActionMenuProps> & {
|
|
308
311
|
variant?: "small" | "medium" | "large" | undefined;
|
309
312
|
}> & React.RefAttributes<React.RefObject<HTMLElement> | undefined>>;
|
310
313
|
Anchor: React.ForwardRefExoticComponent<MenuAnchorProps & React.RefAttributes<React.RefObject<HTMLElement> | undefined>>;
|
314
|
+
Overlay: React.FC<MenuOverlayProps>;
|
311
315
|
Divider: React.FC<import("./sx").SxProp>;
|
312
316
|
};
|
313
317
|
export {};
|
package/lib/ActionMenu2.js
CHANGED
@@ -3,7 +3,7 @@
|
|
3
3
|
Object.defineProperty(exports, "__esModule", {
|
4
4
|
value: true
|
5
5
|
});
|
6
|
-
exports.ActionMenu = void 0;
|
6
|
+
exports.ActionMenu = exports.MenuContext = void 0;
|
7
7
|
|
8
8
|
var _Button = _interopRequireDefault(require("./Button"));
|
9
9
|
|
@@ -11,59 +11,60 @@ var _react = _interopRequireDefault(require("react"));
|
|
11
11
|
|
12
12
|
var _AnchoredOverlay = require("./AnchoredOverlay");
|
13
13
|
|
14
|
-
var _useProvidedStateOrCreate = require("./hooks/useProvidedStateOrCreate");
|
15
|
-
|
16
14
|
var _hooks = require("./hooks");
|
17
15
|
|
18
16
|
var _Divider = require("./ActionList2/Divider");
|
19
17
|
|
20
|
-
var
|
18
|
+
var _ActionListContainerContext = require("./ActionList2/ActionListContainerContext");
|
21
19
|
|
22
20
|
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
23
21
|
|
24
|
-
const
|
22
|
+
const MenuContext = /*#__PURE__*/_react.default.createContext({
|
23
|
+
renderAnchor: null,
|
24
|
+
open: false
|
25
|
+
});
|
26
|
+
|
27
|
+
exports.MenuContext = MenuContext;
|
28
|
+
|
29
|
+
const Menu = ({
|
25
30
|
anchorRef: externalAnchorRef,
|
26
31
|
open,
|
27
32
|
onOpenChange,
|
28
|
-
overlayProps,
|
29
33
|
children
|
30
34
|
}) => {
|
31
|
-
const [combinedOpenState, setCombinedOpenState] = (0,
|
32
|
-
const anchorRef = (0, _hooks.useProvidedRefOrCreate)(externalAnchorRef);
|
35
|
+
const [combinedOpenState, setCombinedOpenState] = (0, _hooks.useProvidedStateOrCreate)(open, onOpenChange, false);
|
33
36
|
|
34
37
|
const onOpen = _react.default.useCallback(() => setCombinedOpenState(true), [setCombinedOpenState]);
|
35
38
|
|
36
39
|
const onClose = _react.default.useCallback(() => setCombinedOpenState(false), [setCombinedOpenState]);
|
37
40
|
|
38
|
-
|
39
|
-
|
41
|
+
const anchorRef = (0, _hooks.useProvidedRefOrCreate)(externalAnchorRef);
|
42
|
+
let renderAnchor = null; // 🚨 Hack for good API!
|
43
|
+
// we strip out Anchor from children and pass it to AnchoredOverlay to render
|
44
|
+
// with additional props for accessibility
|
40
45
|
|
41
|
-
_react.default.Children.map(children, child => {
|
46
|
+
const contents = _react.default.Children.map(children, child => {
|
42
47
|
if (child.type === MenuButton || child.type === Anchor) {
|
43
48
|
renderAnchor = anchorProps => /*#__PURE__*/_react.default.cloneElement(child, anchorProps);
|
44
|
-
|
45
|
-
|
49
|
+
|
50
|
+
return null;
|
46
51
|
}
|
52
|
+
|
53
|
+
return child;
|
47
54
|
});
|
48
55
|
|
49
|
-
return /*#__PURE__*/_react.default.createElement(
|
50
|
-
renderAnchor: renderAnchor,
|
51
|
-
anchorRef: anchorRef,
|
52
|
-
open: combinedOpenState,
|
53
|
-
onOpen: onOpen,
|
54
|
-
onClose: onClose,
|
55
|
-
overlayProps: overlayProps
|
56
|
-
}, /*#__PURE__*/_react.default.createElement(_MenuContext.MenuContext.Provider, {
|
56
|
+
return /*#__PURE__*/_react.default.createElement(MenuContext.Provider, {
|
57
57
|
value: {
|
58
|
-
|
59
|
-
|
60
|
-
|
61
|
-
|
58
|
+
anchorRef,
|
59
|
+
renderAnchor,
|
60
|
+
open: combinedOpenState,
|
61
|
+
onOpen,
|
62
|
+
onClose
|
62
63
|
}
|
63
|
-
}, contents)
|
64
|
+
}, contents);
|
64
65
|
};
|
65
66
|
|
66
|
-
|
67
|
+
Menu.displayName = "Menu";
|
67
68
|
|
68
69
|
const Anchor = /*#__PURE__*/_react.default.forwardRef(({
|
69
70
|
children,
|
@@ -82,10 +83,43 @@ const MenuButton = /*#__PURE__*/_react.default.forwardRef((props, anchorRef) =>
|
|
82
83
|
}, /*#__PURE__*/_react.default.createElement(_Button.default, props));
|
83
84
|
});
|
84
85
|
|
85
|
-
|
86
|
-
|
86
|
+
const Overlay = ({
|
87
|
+
children,
|
88
|
+
...overlayProps
|
89
|
+
}) => {
|
90
|
+
// we typecast anchorRef as required instead of optional
|
91
|
+
// because we know that we're setting it in context in Menu
|
92
|
+
const {
|
93
|
+
anchorRef,
|
94
|
+
renderAnchor,
|
95
|
+
open,
|
96
|
+
onOpen,
|
97
|
+
onClose
|
98
|
+
} = _react.default.useContext(MenuContext);
|
99
|
+
|
100
|
+
return /*#__PURE__*/_react.default.createElement(_AnchoredOverlay.AnchoredOverlay, {
|
101
|
+
anchorRef: anchorRef,
|
102
|
+
renderAnchor: renderAnchor,
|
103
|
+
open: open,
|
104
|
+
onOpen: onOpen,
|
105
|
+
onClose: onClose,
|
106
|
+
overlayProps: overlayProps
|
107
|
+
}, /*#__PURE__*/_react.default.createElement(_ActionListContainerContext.ActionListContainerContext.Provider, {
|
108
|
+
value: {
|
109
|
+
container: 'ActionMenu',
|
110
|
+
listRole: 'menu',
|
111
|
+
itemRole: 'menuitem',
|
112
|
+
afterSelect: onClose
|
113
|
+
}
|
114
|
+
}, children));
|
115
|
+
};
|
116
|
+
|
117
|
+
Overlay.displayName = "Overlay";
|
118
|
+
Menu.displayName = 'ActionMenu';
|
119
|
+
const ActionMenu = Object.assign(Menu, {
|
87
120
|
Button: MenuButton,
|
88
121
|
Anchor,
|
122
|
+
Overlay,
|
89
123
|
Divider: _Divider.Divider
|
90
124
|
});
|
91
125
|
exports.ActionMenu = ActionMenu;
|
@@ -21,10 +21,6 @@ var _uniqueId = require("../utils/uniqueId");
|
|
21
21
|
|
22
22
|
var _scrollIntoViewingArea = require("../behaviors/scrollIntoViewingArea");
|
23
23
|
|
24
|
-
var _VisuallyHidden = _interopRequireDefault(require("../_VisuallyHidden"));
|
25
|
-
|
26
|
-
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
27
|
-
|
28
24
|
function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function (nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
|
29
25
|
|
30
26
|
function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || typeof obj !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
|
@@ -186,8 +182,19 @@ function AutocompleteMenu(props) {
|
|
186
182
|
setSelectedItemLength(selectedItemIds.length);
|
187
183
|
}
|
188
184
|
}, [selectedItemIds, setSelectedItemLength]);
|
189
|
-
return /*#__PURE__*/_react.default.createElement(
|
190
|
-
|
185
|
+
return /*#__PURE__*/_react.default.createElement(_.Box, {
|
186
|
+
sx: !showMenu ? {
|
187
|
+
// visually hides this label for sighted users
|
188
|
+
position: 'absolute',
|
189
|
+
width: '1px',
|
190
|
+
height: '1px',
|
191
|
+
padding: '0',
|
192
|
+
margin: '-1px',
|
193
|
+
overflow: 'hidden',
|
194
|
+
clip: 'rect(0, 0, 0, 0)',
|
195
|
+
whiteSpace: 'nowrap',
|
196
|
+
borderWidth: '0'
|
197
|
+
} : {}
|
191
198
|
}, loading ? /*#__PURE__*/_react.default.createElement(_.Box, {
|
192
199
|
p: 3,
|
193
200
|
display: "flex",
|
package/lib/Checkbox.d.ts
CHANGED
@@ -25,5 +25,5 @@ export declare type CheckboxProps = {
|
|
25
25
|
/**
|
26
26
|
* An accessible, native checkbox component
|
27
27
|
*/
|
28
|
-
declare const Checkbox: React.ForwardRefExoticComponent<Pick<CheckboxProps, "sx" | keyof React.InputHTMLAttributes<HTMLInputElement> | "
|
28
|
+
declare const Checkbox: React.ForwardRefExoticComponent<Pick<CheckboxProps, "sx" | keyof React.InputHTMLAttributes<HTMLInputElement> | "indeterminate" | "validationStatus"> & React.RefAttributes<HTMLInputElement>>;
|
29
29
|
export default Checkbox;
|
package/lib/hooks/index.d.ts
CHANGED
@@ -9,3 +9,4 @@ export { useAnchoredPosition } from './useAnchoredPosition';
|
|
9
9
|
export { useOverlay } from './useOverlay';
|
10
10
|
export type { UseOverlaySettings } from './useOverlay';
|
11
11
|
export { useRenderForcingRef } from './useRenderForcingRef';
|
12
|
+
export { useProvidedStateOrCreate } from './useProvidedStateOrCreate';
|
package/lib/hooks/index.js
CHANGED
@@ -45,6 +45,12 @@ Object.defineProperty(exports, "useRenderForcingRef", {
|
|
45
45
|
return _useRenderForcingRef.useRenderForcingRef;
|
46
46
|
}
|
47
47
|
});
|
48
|
+
Object.defineProperty(exports, "useProvidedStateOrCreate", {
|
49
|
+
enumerable: true,
|
50
|
+
get: function () {
|
51
|
+
return _useProvidedStateOrCreate.useProvidedStateOrCreate;
|
52
|
+
}
|
53
|
+
});
|
48
54
|
|
49
55
|
var _useOnOutsideClick = require("./useOnOutsideClick");
|
50
56
|
|
@@ -58,4 +64,6 @@ var _useAnchoredPosition = require("./useAnchoredPosition");
|
|
58
64
|
|
59
65
|
var _useOverlay = require("./useOverlay");
|
60
66
|
|
61
|
-
var _useRenderForcingRef = require("./useRenderForcingRef");
|
67
|
+
var _useRenderForcingRef = require("./useRenderForcingRef");
|
68
|
+
|
69
|
+
var _useProvidedStateOrCreate = require("./useProvidedStateOrCreate");
|
package/lib/index.d.ts
CHANGED
@@ -46,7 +46,6 @@ export { default as CircleBadge } from './CircleBadge';
|
|
46
46
|
export type { CircleBadgeProps, CircleBadgeIconProps } from './CircleBadge';
|
47
47
|
export { default as CircleOcticon } from './CircleOcticon';
|
48
48
|
export type { CircleOcticonProps } from './CircleOcticon';
|
49
|
-
export { default as CheckboxInputField } from './CheckboxInputField';
|
50
49
|
export { default as CounterLabel } from './CounterLabel';
|
51
50
|
export type { CounterLabelProps } from './CounterLabel';
|
52
51
|
export { default as Details } from './Details';
|
@@ -87,7 +86,6 @@ export { default as Popover } from './Popover';
|
|
87
86
|
export type { PopoverProps, PopoverContentProps } from './Popover';
|
88
87
|
export { default as ProgressBar } from './ProgressBar';
|
89
88
|
export type { ProgressBarProps } from './ProgressBar';
|
90
|
-
export { default as RadioInputField } from './RadioInputField';
|
91
89
|
export { default as SelectMenu } from './SelectMenu';
|
92
90
|
export type { SelectMenuProps, SelectMenuDividerProps, SelectMenuFilterProps, SelectMenuFooterProps, SelectMenuItemProps, SelectMenuListProps, SelectMenuModalProps, SelectMenuTabsProps, SelectMenuHeaderProps, SelectMenuTabProps, SelectMenuTabPanelProps, SelectMenuLoadingAnimationProps } from './SelectMenu';
|
93
91
|
export { default as SideNav } from './SideNav';
|
@@ -104,7 +102,6 @@ export { default as TabNav } from './TabNav';
|
|
104
102
|
export type { TabNavProps, TabNavLinkProps } from './TabNav';
|
105
103
|
export { default as TextInput } from './TextInput';
|
106
104
|
export type { TextInputProps } from './TextInput';
|
107
|
-
export { default as TextInputField } from './TextInputField';
|
108
105
|
export { default as TextInputWithTokens } from './TextInputWithTokens';
|
109
106
|
export type { TextInputWithTokensProps } from './TextInputWithTokens';
|
110
107
|
export { default as Text } from './Text';
|
package/lib/index.js
CHANGED
@@ -267,12 +267,6 @@ Object.defineProperty(exports, "CircleOcticon", {
|
|
267
267
|
return _CircleOcticon.default;
|
268
268
|
}
|
269
269
|
});
|
270
|
-
Object.defineProperty(exports, "CheckboxInputField", {
|
271
|
-
enumerable: true,
|
272
|
-
get: function () {
|
273
|
-
return _CheckboxInputField.default;
|
274
|
-
}
|
275
|
-
});
|
276
270
|
Object.defineProperty(exports, "CounterLabel", {
|
277
271
|
enumerable: true,
|
278
272
|
get: function () {
|
@@ -399,12 +393,6 @@ Object.defineProperty(exports, "ProgressBar", {
|
|
399
393
|
return _ProgressBar.default;
|
400
394
|
}
|
401
395
|
});
|
402
|
-
Object.defineProperty(exports, "RadioInputField", {
|
403
|
-
enumerable: true,
|
404
|
-
get: function () {
|
405
|
-
return _RadioInputField.default;
|
406
|
-
}
|
407
|
-
});
|
408
396
|
Object.defineProperty(exports, "SelectMenu", {
|
409
397
|
enumerable: true,
|
410
398
|
get: function () {
|
@@ -453,12 +441,6 @@ Object.defineProperty(exports, "TextInput", {
|
|
453
441
|
return _TextInput.default;
|
454
442
|
}
|
455
443
|
});
|
456
|
-
Object.defineProperty(exports, "TextInputField", {
|
457
|
-
enumerable: true,
|
458
|
-
get: function () {
|
459
|
-
return _TextInputField.default;
|
460
|
-
}
|
461
|
-
});
|
462
444
|
Object.defineProperty(exports, "TextInputWithTokens", {
|
463
445
|
enumerable: true,
|
464
446
|
get: function () {
|
@@ -590,8 +572,6 @@ var _CircleBadge = _interopRequireDefault(require("./CircleBadge"));
|
|
590
572
|
|
591
573
|
var _CircleOcticon = _interopRequireDefault(require("./CircleOcticon"));
|
592
574
|
|
593
|
-
var _CheckboxInputField = _interopRequireDefault(require("./CheckboxInputField"));
|
594
|
-
|
595
575
|
var _CounterLabel = _interopRequireDefault(require("./CounterLabel"));
|
596
576
|
|
597
577
|
var _Details = _interopRequireDefault(require("./Details"));
|
@@ -632,8 +612,6 @@ var _Popover = _interopRequireDefault(require("./Popover"));
|
|
632
612
|
|
633
613
|
var _ProgressBar = _interopRequireDefault(require("./ProgressBar"));
|
634
614
|
|
635
|
-
var _RadioInputField = _interopRequireDefault(require("./RadioInputField"));
|
636
|
-
|
637
615
|
var _SelectMenu = _interopRequireDefault(require("./SelectMenu"));
|
638
616
|
|
639
617
|
var _SideNav = _interopRequireDefault(require("./SideNav"));
|
@@ -650,8 +628,6 @@ var _TabNav = _interopRequireDefault(require("./TabNav"));
|
|
650
628
|
|
651
629
|
var _TextInput = _interopRequireDefault(require("./TextInput"));
|
652
630
|
|
653
|
-
var _TextInputField = _interopRequireDefault(require("./TextInputField"));
|
654
|
-
|
655
631
|
var _TextInputWithTokens = _interopRequireDefault(require("./TextInputWithTokens"));
|
656
632
|
|
657
633
|
var _Text = _interopRequireDefault(require("./Text"));
|
@@ -1,10 +1,10 @@
|
|
1
1
|
/** This context can be used by components that compose ActionList inside a Menu */
|
2
2
|
import React from 'react';
|
3
3
|
declare type ContextProps = {
|
4
|
-
|
4
|
+
container?: string;
|
5
5
|
listRole?: string;
|
6
6
|
itemRole?: string;
|
7
|
-
afterSelect?:
|
7
|
+
afterSelect?: Function;
|
8
8
|
};
|
9
|
-
export declare const
|
9
|
+
export declare const ActionListContainerContext: React.Context<ContextProps>;
|
10
10
|
export {};
|
@@ -8,7 +8,7 @@ import Box from '../Box';
|
|
8
8
|
import sx, { merge } from '../sx';
|
9
9
|
import createSlots from '../utils/create-slots';
|
10
10
|
import { ListContext } from './List';
|
11
|
-
import {
|
11
|
+
import { ActionListContainerContext } from './ActionListContainerContext';
|
12
12
|
import { Selection } from './Selection';
|
13
13
|
export const getVariantStyles = (variant, disabled) => {
|
14
14
|
if (disabled) {
|
@@ -66,7 +66,7 @@ export const Item = /*#__PURE__*/React.forwardRef(({
|
|
66
66
|
const {
|
67
67
|
itemRole,
|
68
68
|
afterSelect
|
69
|
-
} = React.useContext(
|
69
|
+
} = React.useContext(ActionListContainerContext);
|
70
70
|
const {
|
71
71
|
theme
|
72
72
|
} = useTheme();
|
@@ -139,21 +139,19 @@ export const Item = /*#__PURE__*/React.forwardRef(({
|
|
139
139
|
}
|
140
140
|
};
|
141
141
|
const clickHandler = React.useCallback(event => {
|
142
|
-
if (typeof onSelect !== 'function') return;
|
143
142
|
if (disabled) return;
|
144
143
|
|
145
144
|
if (!event.defaultPrevented) {
|
146
|
-
onSelect(event); // if this Item is inside a Menu, close the Menu
|
145
|
+
if (typeof onSelect === 'function') onSelect(event); // if this Item is inside a Menu, close the Menu
|
147
146
|
|
148
147
|
if (typeof afterSelect === 'function') afterSelect();
|
149
148
|
}
|
150
149
|
}, [onSelect, disabled, afterSelect]);
|
151
150
|
const keyPressHandler = React.useCallback(event => {
|
152
|
-
if (typeof onSelect !== 'function') return;
|
153
151
|
if (disabled) return;
|
154
152
|
|
155
153
|
if (!event.defaultPrevented && [' ', 'Enter'].includes(event.key)) {
|
156
|
-
onSelect(event); // if this Item is inside a Menu, close the Menu
|
154
|
+
if (typeof onSelect === 'function') onSelect(event); // if this Item is inside a Menu, close the Menu
|
157
155
|
|
158
156
|
if (typeof afterSelect === 'function') afterSelect();
|
159
157
|
}
|
@@ -3,7 +3,7 @@ function _extends() { _extends = Object.assign || function (target) { for (var i
|
|
3
3
|
import React from 'react';
|
4
4
|
import styled from 'styled-components';
|
5
5
|
import sx, { merge } from '../sx';
|
6
|
-
import {
|
6
|
+
import { ActionListContainerContext } from './ActionListContainerContext';
|
7
7
|
export const ListContext = /*#__PURE__*/React.createContext({});
|
8
8
|
const ListBox = styled.ul.withConfig({
|
9
9
|
displayName: "List__ListBox",
|
@@ -27,7 +27,7 @@ export const List = /*#__PURE__*/React.forwardRef(({
|
|
27
27
|
|
28
28
|
const {
|
29
29
|
listRole
|
30
|
-
} = React.useContext(
|
30
|
+
} = React.useContext(ActionListContainerContext);
|
31
31
|
return /*#__PURE__*/React.createElement(ListBox, _extends({
|
32
32
|
sx: merge(styles, sxProp),
|
33
33
|
role: role || listRole
|
@@ -2,7 +2,7 @@ import React from 'react';
|
|
2
2
|
import { CheckIcon } from '@primer/octicons-react';
|
3
3
|
import { ListContext } from './List';
|
4
4
|
import { GroupContext } from './Group';
|
5
|
-
import {
|
5
|
+
import { ActionListContainerContext } from './ActionListContainerContext';
|
6
6
|
import { LeadingVisualContainer } from './Visuals';
|
7
7
|
export const Selection = ({
|
8
8
|
selected
|
@@ -14,8 +14,8 @@ export const Selection = ({
|
|
14
14
|
selectionVariant: groupSelectionVariant
|
15
15
|
} = React.useContext(GroupContext);
|
16
16
|
const {
|
17
|
-
|
18
|
-
} = React.useContext(
|
17
|
+
container
|
18
|
+
} = React.useContext(ActionListContainerContext);
|
19
19
|
/** selectionVariant in Group can override the selectionVariant in List root */
|
20
20
|
|
21
21
|
const selectionVariant = typeof groupSelectionVariant !== 'undefined' ? groupSelectionVariant : listSelectionVariant; // if selectionVariant is not set on List, don't show selection
|
@@ -26,7 +26,7 @@ export const Selection = ({
|
|
26
26
|
return null;
|
27
27
|
}
|
28
28
|
|
29
|
-
if (
|
29
|
+
if (container === 'ActionMenu') {
|
30
30
|
throw new Error('ActionList cannot have a selectionVariant inside ActionMenu, please use DropdownMenu or SelectPanel instead. More information: https://primer.style/design/components/action-list#application');
|
31
31
|
return null;
|
32
32
|
}
|
package/lib-esm/ActionMenu2.d.ts
CHANGED
@@ -1,10 +1,12 @@
|
|
1
1
|
import { ButtonProps } from './Button';
|
2
2
|
import React from 'react';
|
3
|
+
import { AnchoredOverlayProps } from './AnchoredOverlay';
|
3
4
|
import { OverlayProps } from './Overlay';
|
4
|
-
|
5
|
-
declare
|
5
|
+
declare type MenuContextProps = Pick<AnchoredOverlayProps, 'anchorRef' | 'renderAnchor' | 'open' | 'onOpen' | 'onClose'>;
|
6
|
+
export declare const MenuContext: React.Context<MenuContextProps>;
|
7
|
+
export declare type ActionMenuProps = {
|
6
8
|
/**
|
7
|
-
* Recommended: `ActionMenu.Button` or `ActionMenu.Anchor` with
|
9
|
+
* Recommended: `ActionMenu.Button` or `ActionMenu.Anchor` with `ActionMenu.Overlay`
|
8
10
|
*/
|
9
11
|
children: React.ReactElement[] | React.ReactElement;
|
10
12
|
/**
|
@@ -15,17 +17,18 @@ declare type ActionMenuBaseProps = {
|
|
15
17
|
* If defined, will control the open/closed state of the overlay. Must be used in conjuction with `open`.
|
16
18
|
*/
|
17
19
|
onOpenChange?: (s: boolean) => void;
|
18
|
-
|
19
|
-
* Props to be spread on the internal `Overlay` component.
|
20
|
-
*/
|
21
|
-
overlayProps?: Partial<OverlayProps>;
|
22
|
-
};
|
23
|
-
export declare type ActionMenuProps = ActionMenuBaseProps & AnchoredOverlayWrapperAnchorProps;
|
20
|
+
} & Pick<AnchoredOverlayProps, 'anchorRef'>;
|
24
21
|
export declare type MenuAnchorProps = {
|
25
22
|
children: React.ReactElement;
|
26
23
|
};
|
27
24
|
/** this component is syntactical sugar 🍭 */
|
28
25
|
export declare type MenuButtonProps = ButtonProps;
|
26
|
+
declare type MenuOverlayProps = Partial<OverlayProps> & {
|
27
|
+
/**
|
28
|
+
* Recommended: `ActionList`
|
29
|
+
*/
|
30
|
+
children: React.ReactElement[] | React.ReactElement;
|
31
|
+
};
|
29
32
|
export declare const ActionMenu: React.FC<ActionMenuProps> & {
|
30
33
|
Button: React.ForwardRefExoticComponent<Pick<{
|
31
34
|
color?: string | undefined;
|
@@ -308,6 +311,7 @@ export declare const ActionMenu: React.FC<ActionMenuProps> & {
|
|
308
311
|
variant?: "small" | "medium" | "large" | undefined;
|
309
312
|
}> & React.RefAttributes<React.RefObject<HTMLElement> | undefined>>;
|
310
313
|
Anchor: React.ForwardRefExoticComponent<MenuAnchorProps & React.RefAttributes<React.RefObject<HTMLElement> | undefined>>;
|
314
|
+
Overlay: React.FC<MenuOverlayProps>;
|
311
315
|
Divider: React.FC<import("./sx").SxProp>;
|
312
316
|
};
|
313
317
|
export {};
|