@primer/components 0.0.0-2021830164741 → 0.0.0-202183017829
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 +3 -1
- package/dist/browser.esm.js +250 -290
- package/dist/browser.esm.js.map +1 -1
- package/dist/browser.umd.js +318 -358
- package/dist/browser.umd.js.map +1 -1
- package/lib/AnchoredOverlay/AnchoredOverlay.d.ts +1 -2
- package/lib/AnchoredOverlay/AnchoredOverlay.js +3 -11
- package/lib/Dialog/ConfirmationDialog.js +3 -3
- package/lib/Dialog/Dialog.d.ts +5 -0
- package/lib/Dialog/Dialog.js +16 -4
- package/lib/FilteredActionList/FilteredActionList.js +31 -5
- package/lib/Overlay.d.ts +1 -2
- package/lib/Overlay.js +5 -10
- package/lib/SelectMenu/SelectMenu.d.ts +2 -8
- package/lib/TextInput.d.ts +3 -6
- package/lib/TextInput.js +10 -9
- package/lib/hooks/useOverlay.d.ts +1 -2
- package/lib/hooks/useOverlay.js +6 -11
- package/lib/index.d.ts +0 -2
- package/lib/index.js +0 -16
- package/lib/utils/types.d.ts +0 -3
- package/lib-esm/AnchoredOverlay/AnchoredOverlay.d.ts +1 -2
- package/lib-esm/AnchoredOverlay/AnchoredOverlay.js +3 -11
- package/lib-esm/Dialog/ConfirmationDialog.js +3 -3
- package/lib-esm/Dialog/Dialog.d.ts +5 -0
- package/lib-esm/Dialog/Dialog.js +17 -5
- package/lib-esm/FilteredActionList/FilteredActionList.js +31 -3
- package/lib-esm/Overlay.d.ts +1 -2
- package/lib-esm/Overlay.js +5 -8
- package/lib-esm/SelectMenu/SelectMenu.d.ts +2 -8
- package/lib-esm/TextInput.d.ts +3 -6
- package/lib-esm/TextInput.js +9 -8
- package/lib-esm/hooks/useOverlay.d.ts +1 -2
- package/lib-esm/hooks/useOverlay.js +6 -11
- package/lib-esm/index.d.ts +0 -2
- package/lib-esm/index.js +0 -2
- package/lib-esm/utils/types.d.ts +0 -3
- package/package.json +6 -9
- package/lib/Autocomplete/Autocomplete.d.ts +0 -31
- package/lib/Autocomplete/Autocomplete.js +0 -60
- package/lib/Autocomplete/AutocompleteContext.d.ts +0 -14
- package/lib/Autocomplete/AutocompleteContext.js +0 -11
- package/lib/Autocomplete/AutocompleteInput.d.ts +0 -9
- package/lib/Autocomplete/AutocompleteInput.js +0 -148
- package/lib/Autocomplete/AutocompleteMenu.d.ts +0 -78
- package/lib/Autocomplete/AutocompleteMenu.js +0 -257
- package/lib/Autocomplete/index.d.ts +0 -2
- package/lib/Autocomplete/index.js +0 -15
- package/lib/Badge/Badge.d.ts +0 -8
- package/lib/Badge/Badge.js +0 -59
- package/lib/Badge/BadgeState.d.ts +0 -13
- package/lib/Badge/BadgeState.js +0 -51
- package/lib/Badge/_badgeStyleUtils.d.ts +0 -3
- package/lib/Badge/_badgeStyleUtils.js +0 -39
- package/lib/TextInputTokens.d.ts +0 -43
- package/lib/TextInputTokens.js +0 -237
- package/lib/Token/Token.d.ts +0 -14
- package/lib/Token/Token.js +0 -76
- package/lib/Token/TokenBase.d.ts +0 -16
- package/lib/Token/TokenBase.js +0 -90
- package/lib/Token/TokenLabel.d.ts +0 -14
- package/lib/Token/TokenLabel.js +0 -141
- package/lib/Token/TokenProfile.d.ts +0 -7
- package/lib/Token/TokenProfile.js +0 -50
- package/lib/Token/_RemoveTokenButton.d.ts +0 -3
- package/lib/Token/_RemoveTokenButton.js +0 -45
- package/lib/Token/_tokenButtonUtils.d.ts +0 -10
- package/lib/Token/_tokenButtonUtils.js +0 -42
- package/lib/_UnstyledTextInput.d.ts +0 -2
- package/lib/_UnstyledTextInput.js +0 -20
- package/lib/utils/scrollIntoViewingArea.d.ts +0 -1
- package/lib/utils/scrollIntoViewingArea.js +0 -39
- package/lib-esm/Autocomplete/Autocomplete.d.ts +0 -31
- package/lib-esm/Autocomplete/Autocomplete.js +0 -40
- package/lib-esm/Autocomplete/AutocompleteContext.d.ts +0 -14
- package/lib-esm/Autocomplete/AutocompleteContext.js +0 -2
- package/lib-esm/Autocomplete/AutocompleteInput.d.ts +0 -9
- package/lib-esm/Autocomplete/AutocompleteInput.js +0 -129
- package/lib-esm/Autocomplete/AutocompleteMenu.d.ts +0 -78
- package/lib-esm/Autocomplete/AutocompleteMenu.js +0 -231
- package/lib-esm/Autocomplete/index.d.ts +0 -2
- package/lib-esm/Autocomplete/index.js +0 -1
- package/lib-esm/Badge/Badge.d.ts +0 -8
- package/lib-esm/Badge/Badge.js +0 -44
- package/lib-esm/Badge/BadgeState.d.ts +0 -13
- package/lib-esm/Badge/BadgeState.js +0 -40
- package/lib-esm/Badge/_badgeStyleUtils.d.ts +0 -3
- package/lib-esm/Badge/_badgeStyleUtils.js +0 -29
- package/lib-esm/TextInputTokens.d.ts +0 -43
- package/lib-esm/TextInputTokens.js +0 -210
- package/lib-esm/Token/Token.d.ts +0 -14
- package/lib-esm/Token/Token.js +0 -57
- package/lib-esm/Token/TokenBase.d.ts +0 -16
- package/lib-esm/Token/TokenBase.js +0 -70
- package/lib-esm/Token/TokenLabel.d.ts +0 -14
- package/lib-esm/Token/TokenLabel.js +0 -121
- package/lib-esm/Token/TokenProfile.d.ts +0 -7
- package/lib-esm/Token/TokenProfile.js +0 -29
- package/lib-esm/Token/_RemoveTokenButton.d.ts +0 -3
- package/lib-esm/Token/_RemoveTokenButton.js +0 -30
- package/lib-esm/Token/_tokenButtonUtils.d.ts +0 -10
- package/lib-esm/Token/_tokenButtonUtils.js +0 -26
- package/lib-esm/_UnstyledTextInput.d.ts +0 -2
- package/lib-esm/_UnstyledTextInput.js +0 -7
- package/lib-esm/utils/scrollIntoViewingArea.d.ts +0 -1
- package/lib-esm/utils/scrollIntoViewingArea.js +0 -30
@@ -1,78 +0,0 @@
|
|
1
|
-
import React from 'react';
|
2
|
-
import { ItemProps } from '../ActionList';
|
3
|
-
import { OverlayProps } from '../Overlay';
|
4
|
-
import { ComponentProps, MandateProps } from '../utils/types';
|
5
|
-
declare type OnAction<T> = (item: T, event: React.MouseEvent<HTMLDivElement> | React.KeyboardEvent<HTMLDivElement>) => void;
|
6
|
-
declare type AutocompleteItemProps<T = Record<string, any>> = MandateProps<ItemProps, 'id'> & {
|
7
|
-
metadata?: T;
|
8
|
-
};
|
9
|
-
declare type AutocompleteMenuInternalProps<T extends AutocompleteItemProps> = {
|
10
|
-
/**
|
11
|
-
* A menu item that is used to allow users make a selection that is not available in the array passed to the `items` prop.
|
12
|
-
* This menu item gets appended to the end of the list of options.
|
13
|
-
*/
|
14
|
-
addNewItem?: Omit<T, 'onAction' | 'leadingVisual' | 'id'> & {
|
15
|
-
handleAddItem: (item: Omit<T, 'onAction' | 'leadingVisual'>) => void;
|
16
|
-
};
|
17
|
-
/**
|
18
|
-
* The text that appears in the menu when there are no options in the array passed to the `items` prop.
|
19
|
-
*/
|
20
|
-
emptyStateText?: React.ReactNode | false;
|
21
|
-
/**
|
22
|
-
* A custom function used to filter the options in the array passed to the `items` prop.
|
23
|
-
* By default, we filter out items that don't match the value of the autocomplete text input. The default filter is not case-sensitive.
|
24
|
-
*/
|
25
|
-
filterFn?: (item: T, i: number) => boolean;
|
26
|
-
/**
|
27
|
-
* The options for field values that are displayed in the dropdown menu.
|
28
|
-
* One or more may be selected depending on the value of the `selectionVariant` prop.
|
29
|
-
*/
|
30
|
-
items: T[];
|
31
|
-
/**
|
32
|
-
* The function that is called when an item in the list is de-selected
|
33
|
-
*/
|
34
|
-
onItemDeselect?: OnAction<T>;
|
35
|
-
/**
|
36
|
-
* The function that is called when an item in the list is selected
|
37
|
-
*/
|
38
|
-
onItemSelect?: OnAction<T>;
|
39
|
-
/**
|
40
|
-
* Whether the data is loaded for the menu items
|
41
|
-
*/
|
42
|
-
loading?: boolean;
|
43
|
-
/**
|
44
|
-
* The IDs of the selected items
|
45
|
-
*/
|
46
|
-
selectedItemIds: Array<string | number>;
|
47
|
-
/**
|
48
|
-
* The sort function that is applied to the options in the array passed to the `items` prop after the user closes the menu.
|
49
|
-
* By default, selected items are sorted to the top after the user closes the menu.
|
50
|
-
*/
|
51
|
-
sortOnCloseFn?: (itemIdA: string | number, itemIdB: string | number) => number;
|
52
|
-
/**
|
53
|
-
* Whether there can be one item selected from the menu or multiple items selected from the menu
|
54
|
-
*/
|
55
|
-
selectionVariant?: 'single' | 'multiple';
|
56
|
-
/**
|
57
|
-
* The ref of the element that the position of the menu is based on. By default, the menu is positioned based on the text input
|
58
|
-
*/
|
59
|
-
menuAnchorRef?: React.RefObject<Element>;
|
60
|
-
/**
|
61
|
-
* Whether the menu should be displayed in an overlay
|
62
|
-
*/
|
63
|
-
preventOverlay?: boolean;
|
64
|
-
/**
|
65
|
-
* Props to be spread on the internal `Overlay` component.
|
66
|
-
*/
|
67
|
-
overlayProps?: Partial<OverlayProps>;
|
68
|
-
} & Pick<React.AriaAttributes, 'aria-labelledby'>;
|
69
|
-
declare function AutocompleteMenu<T extends AutocompleteItemProps>(props: AutocompleteMenuInternalProps<T>): JSX.Element;
|
70
|
-
declare namespace AutocompleteMenu {
|
71
|
-
var defaultProps: {
|
72
|
-
emptyStateText: string;
|
73
|
-
selectionVariant: string;
|
74
|
-
};
|
75
|
-
var displayName: string;
|
76
|
-
}
|
77
|
-
export declare type AutocompleteMenuProps = ComponentProps<typeof AutocompleteMenu>;
|
78
|
-
export default AutocompleteMenu;
|
@@ -1,257 +0,0 @@
|
|
1
|
-
"use strict";
|
2
|
-
|
3
|
-
Object.defineProperty(exports, "__esModule", {
|
4
|
-
value: true
|
5
|
-
});
|
6
|
-
exports.default = void 0;
|
7
|
-
|
8
|
-
var _react = _interopRequireWildcard(require("react"));
|
9
|
-
|
10
|
-
var _ActionList = require("../ActionList");
|
11
|
-
|
12
|
-
var _hooks = require("../hooks");
|
13
|
-
|
14
|
-
var _useFocusZone = require("../hooks/useFocusZone");
|
15
|
-
|
16
|
-
var _Overlay = _interopRequireDefault(require("../Overlay"));
|
17
|
-
|
18
|
-
var _ = require("../");
|
19
|
-
|
20
|
-
var _Portal = require("../Portal");
|
21
|
-
|
22
|
-
var _AutocompleteContext = require("./AutocompleteContext");
|
23
|
-
|
24
|
-
var _useCombinedRefs = require("../hooks/useCombinedRefs");
|
25
|
-
|
26
|
-
var _octiconsReact = require("@primer/octicons-react");
|
27
|
-
|
28
|
-
var _uniqueId = require("../utils/uniqueId");
|
29
|
-
|
30
|
-
var _scrollIntoViewingArea = require("../utils/scrollIntoViewingArea");
|
31
|
-
|
32
|
-
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
33
|
-
|
34
|
-
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); }
|
35
|
-
|
36
|
-
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; }
|
37
|
-
|
38
|
-
function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }
|
39
|
-
|
40
|
-
const DROPDOWN_PORTAL_CONTAINER_NAME = '__listcontainerportal__';
|
41
|
-
|
42
|
-
const getDefaultSortFn = isItemSelectedFn => (itemIdA, itemIdB) => isItemSelectedFn(itemIdA) === isItemSelectedFn(itemIdB) ? 0 : isItemSelectedFn(itemIdA) ? -1 : 1;
|
43
|
-
|
44
|
-
function getDefaultItemFilter(filterValue) {
|
45
|
-
return function (item, _i) {
|
46
|
-
var _item$text;
|
47
|
-
|
48
|
-
return Boolean((_item$text = item.text) === null || _item$text === void 0 ? void 0 : _item$text.toLowerCase().startsWith(filterValue.toLowerCase()));
|
49
|
-
};
|
50
|
-
}
|
51
|
-
|
52
|
-
// TODO: consider making 'aria-labelledby' required
|
53
|
-
function getDefaultOnItemSelectFn(setInputValueFn) {
|
54
|
-
if (setInputValueFn) {
|
55
|
-
return function ({
|
56
|
-
text = ''
|
57
|
-
}) {
|
58
|
-
setInputValueFn(text);
|
59
|
-
};
|
60
|
-
}
|
61
|
-
|
62
|
-
return ({
|
63
|
-
text
|
64
|
-
}) => {
|
65
|
-
console.error(`getDefaultOnItemSelectFn could not be called with ${text} because a function to set the text input was undefined`);
|
66
|
-
};
|
67
|
-
}
|
68
|
-
|
69
|
-
function AutocompleteMenu(props) {
|
70
|
-
const {
|
71
|
-
activeDescendantRef,
|
72
|
-
id,
|
73
|
-
inputRef,
|
74
|
-
inputValue = '',
|
75
|
-
setAutocompleteSuggestion,
|
76
|
-
setShowMenu,
|
77
|
-
setInputValue,
|
78
|
-
setIsMenuDirectlyActivated,
|
79
|
-
showMenu
|
80
|
-
} = (0, _react.useContext)(_AutocompleteContext.AutocompleteContext);
|
81
|
-
const {
|
82
|
-
items,
|
83
|
-
selectedItemIds,
|
84
|
-
sortOnCloseFn,
|
85
|
-
onItemSelect = getDefaultOnItemSelectFn(setInputValue),
|
86
|
-
onItemDeselect,
|
87
|
-
emptyStateText,
|
88
|
-
addNewItem,
|
89
|
-
loading,
|
90
|
-
selectionVariant,
|
91
|
-
filterFn = getDefaultItemFilter(inputValue),
|
92
|
-
menuAnchorRef,
|
93
|
-
"aria-labelledby": ariaLabelledBy,
|
94
|
-
preventOverlay,
|
95
|
-
overlayProps
|
96
|
-
} = props;
|
97
|
-
const listContainerRef = (0, _react.useRef)(null);
|
98
|
-
const scrollContainerRef = (0, _react.useRef)(null);
|
99
|
-
const [highlightedItem, setHighlightedItem] = (0, _react.useState)();
|
100
|
-
const [sortedItemIds, setSortedItemIds] = (0, _react.useState)(items.map(({
|
101
|
-
id
|
102
|
-
}) => id));
|
103
|
-
const {
|
104
|
-
floatingElementRef,
|
105
|
-
position
|
106
|
-
} = (0, _hooks.useAnchoredPosition)({
|
107
|
-
side: 'outside-bottom',
|
108
|
-
align: 'start',
|
109
|
-
anchorElementRef: menuAnchorRef ? menuAnchorRef : inputRef
|
110
|
-
}, [showMenu, selectedItemIds]);
|
111
|
-
const combinedOverlayRef = (0, _useCombinedRefs.useCombinedRefs)(scrollContainerRef, floatingElementRef);
|
112
|
-
|
113
|
-
const closeOptionList = () => {
|
114
|
-
setShowMenu && setShowMenu(false);
|
115
|
-
};
|
116
|
-
|
117
|
-
const isItemSelected = itemId => selectedItemIds.includes(itemId);
|
118
|
-
|
119
|
-
const selectableItems = items.map(selectableItem => ({ ...selectableItem,
|
120
|
-
role: "option",
|
121
|
-
id: selectableItem.id,
|
122
|
-
selected: selectionVariant === 'multiple' ? isItemSelected(selectableItem.id) : undefined,
|
123
|
-
onAction: (item, e) => {
|
124
|
-
const handleItemSelection = () => {
|
125
|
-
onItemSelect(item, e);
|
126
|
-
|
127
|
-
if (selectionVariant === 'multiple') {
|
128
|
-
setInputValue && setInputValue('');
|
129
|
-
setAutocompleteSuggestion && setAutocompleteSuggestion('');
|
130
|
-
}
|
131
|
-
};
|
132
|
-
|
133
|
-
if (item.selected) {
|
134
|
-
onItemDeselect && onItemDeselect(item, e);
|
135
|
-
} else {
|
136
|
-
handleItemSelection();
|
137
|
-
}
|
138
|
-
|
139
|
-
if (selectionVariant === 'single') {
|
140
|
-
var _inputRef$current;
|
141
|
-
|
142
|
-
setShowMenu && setShowMenu(false);
|
143
|
-
inputRef === null || inputRef === void 0 ? void 0 : (_inputRef$current = inputRef.current) === null || _inputRef$current === void 0 ? void 0 : _inputRef$current.setSelectionRange(inputRef.current.value.length, inputRef.current.value.length);
|
144
|
-
}
|
145
|
-
}
|
146
|
-
}));
|
147
|
-
const itemSortOrderData = sortedItemIds.reduce((acc, curr, i) => {
|
148
|
-
acc[curr] = i;
|
149
|
-
return acc;
|
150
|
-
}, {});
|
151
|
-
const sortedAndFilteredItemsToRender = selectableItems.filter((item, i) => filterFn(item, i)).sort((a, b) => itemSortOrderData[a.id] - itemSortOrderData[b.id]);
|
152
|
-
const allItemsToRender = [// sorted and filtered selectable items
|
153
|
-
...sortedAndFilteredItemsToRender, // menu item used for creating a token from whatever is in the text input
|
154
|
-
...(addNewItem ? [{ ...addNewItem,
|
155
|
-
leadingVisual: () => /*#__PURE__*/_react.default.createElement(_octiconsReact.PlusIcon, null),
|
156
|
-
onAction: (item, e) => {
|
157
|
-
// TODO: make it possible to pass a leadingVisual when using `addNewItem`
|
158
|
-
addNewItem.handleAddItem({ ...item,
|
159
|
-
id: item.id || (0, _uniqueId.uniqueId)(),
|
160
|
-
leadingVisual: undefined
|
161
|
-
});
|
162
|
-
|
163
|
-
if (selectionVariant === 'multiple') {
|
164
|
-
setInputValue && setInputValue('');
|
165
|
-
setAutocompleteSuggestion && setAutocompleteSuggestion('');
|
166
|
-
}
|
167
|
-
}
|
168
|
-
}] : [])];
|
169
|
-
(0, _useFocusZone.useFocusZone)({
|
170
|
-
containerRef: listContainerRef,
|
171
|
-
focusOutBehavior: 'wrap',
|
172
|
-
focusableElementFilter: element => {
|
173
|
-
return !(element instanceof HTMLInputElement);
|
174
|
-
},
|
175
|
-
activeDescendantFocus: inputRef,
|
176
|
-
onActiveDescendantChanged: (current, _previous, directlyActivated) => {
|
177
|
-
if (activeDescendantRef) {
|
178
|
-
activeDescendantRef.current = current || null;
|
179
|
-
}
|
180
|
-
|
181
|
-
if (current) {
|
182
|
-
const selectedItem = selectableItems.find(item => item.id.toString() === (current === null || current === void 0 ? void 0 : current.dataset.id));
|
183
|
-
setHighlightedItem(selectedItem);
|
184
|
-
setIsMenuDirectlyActivated && setIsMenuDirectlyActivated(directlyActivated);
|
185
|
-
}
|
186
|
-
|
187
|
-
if (current && scrollContainerRef.current && directlyActivated) {
|
188
|
-
(0, _scrollIntoViewingArea.scrollIntoViewingArea)(current, scrollContainerRef.current);
|
189
|
-
}
|
190
|
-
}
|
191
|
-
});
|
192
|
-
(0, _react.useEffect)(() => {
|
193
|
-
var _highlightedItem$text;
|
194
|
-
|
195
|
-
if (!setAutocompleteSuggestion) {
|
196
|
-
return;
|
197
|
-
}
|
198
|
-
|
199
|
-
if (highlightedItem !== null && highlightedItem !== void 0 && (_highlightedItem$text = highlightedItem.text) !== null && _highlightedItem$text !== void 0 && _highlightedItem$text.startsWith(inputValue) && !selectedItemIds.includes(highlightedItem.id)) {
|
200
|
-
setAutocompleteSuggestion(highlightedItem.text);
|
201
|
-
} else {
|
202
|
-
setAutocompleteSuggestion('');
|
203
|
-
}
|
204
|
-
}, [highlightedItem, inputValue]);
|
205
|
-
(0, _react.useEffect)(() => {
|
206
|
-
setSortedItemIds([...sortedItemIds].sort(sortOnCloseFn ? sortOnCloseFn : getDefaultSortFn(isItemSelected)));
|
207
|
-
}, [showMenu]);
|
208
|
-
|
209
|
-
if (listContainerRef.current) {
|
210
|
-
(0, _Portal.registerPortalRoot)(listContainerRef.current, DROPDOWN_PORTAL_CONTAINER_NAME);
|
211
|
-
}
|
212
|
-
|
213
|
-
const selectionList = /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, loading ? /*#__PURE__*/_react.default.createElement(_.Box, {
|
214
|
-
p: 3,
|
215
|
-
display: "flex",
|
216
|
-
justifyContent: "center"
|
217
|
-
}, /*#__PURE__*/_react.default.createElement(_.Spinner, null)) : /*#__PURE__*/_react.default.createElement("div", {
|
218
|
-
ref: listContainerRef
|
219
|
-
}, allItemsToRender.length ? /*#__PURE__*/_react.default.createElement(_ActionList.ActionList, {
|
220
|
-
selectionVariant: "multiple" // have to typecast to `ItemProps` because we have an extra property
|
221
|
-
// on `items` for Autocomplete: `metadata`
|
222
|
-
,
|
223
|
-
items: allItemsToRender,
|
224
|
-
role: "listbox",
|
225
|
-
id: `${id}-listbox`,
|
226
|
-
"aria-labelledby": ariaLabelledBy
|
227
|
-
}) : /*#__PURE__*/_react.default.createElement(_.Box, {
|
228
|
-
p: 3
|
229
|
-
}, emptyStateText)));
|
230
|
-
|
231
|
-
if (preventOverlay) {
|
232
|
-
return selectionList;
|
233
|
-
}
|
234
|
-
|
235
|
-
return /*#__PURE__*/_react.default.createElement(_Overlay.default, _extends({
|
236
|
-
returnFocusRef: inputRef,
|
237
|
-
preventFocusOnOpen: true,
|
238
|
-
onClickOutside: closeOptionList,
|
239
|
-
onEscape: closeOptionList,
|
240
|
-
ref: combinedOverlayRef,
|
241
|
-
top: position === null || position === void 0 ? void 0 : position.top,
|
242
|
-
left: position === null || position === void 0 ? void 0 : position.left,
|
243
|
-
visibility: showMenu ? 'visible' : 'hidden'
|
244
|
-
}, overlayProps), /*#__PURE__*/_react.default.createElement(_.Box, {
|
245
|
-
height: "100%",
|
246
|
-
overflow: "auto"
|
247
|
-
}, selectionList));
|
248
|
-
}
|
249
|
-
|
250
|
-
AutocompleteMenu.displayName = "AutocompleteMenu";
|
251
|
-
AutocompleteMenu.defaultProps = {
|
252
|
-
emptyStateText: 'No selectable options',
|
253
|
-
selectionVariant: 'single'
|
254
|
-
};
|
255
|
-
AutocompleteMenu.displayName = 'AutocompleteMenu';
|
256
|
-
var _default = AutocompleteMenu;
|
257
|
-
exports.default = _default;
|
@@ -1,15 +0,0 @@
|
|
1
|
-
"use strict";
|
2
|
-
|
3
|
-
Object.defineProperty(exports, "__esModule", {
|
4
|
-
value: true
|
5
|
-
});
|
6
|
-
Object.defineProperty(exports, "default", {
|
7
|
-
enumerable: true,
|
8
|
-
get: function () {
|
9
|
-
return _Autocomplete.default;
|
10
|
-
}
|
11
|
-
});
|
12
|
-
|
13
|
-
var _Autocomplete = _interopRequireDefault(require("./Autocomplete"));
|
14
|
-
|
15
|
-
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
package/lib/Badge/Badge.d.ts
DELETED
@@ -1,8 +0,0 @@
|
|
1
|
-
import { BadgeSizeKeys } from './_badgeStyleUtils';
|
2
|
-
declare type BadgeColorOptions = 'default' | 'primary' | 'secondary' | 'info' | 'success' | 'warning' | 'danger';
|
3
|
-
interface Props {
|
4
|
-
color?: BadgeColorOptions;
|
5
|
-
variant?: BadgeSizeKeys;
|
6
|
-
}
|
7
|
-
declare const Badge: import("styled-components").StyledComponent<"span", any, Props, never>;
|
8
|
-
export default Badge;
|
package/lib/Badge/Badge.js
DELETED
@@ -1,59 +0,0 @@
|
|
1
|
-
"use strict";
|
2
|
-
|
3
|
-
Object.defineProperty(exports, "__esModule", {
|
4
|
-
value: true
|
5
|
-
});
|
6
|
-
exports.default = void 0;
|
7
|
-
|
8
|
-
var _styledComponents = _interopRequireDefault(require("styled-components"));
|
9
|
-
|
10
|
-
var _constants = require("../constants");
|
11
|
-
|
12
|
-
var _badgeStyleUtils = require("./_badgeStyleUtils");
|
13
|
-
|
14
|
-
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
15
|
-
|
16
|
-
const badgeColorMap = {
|
17
|
-
default: {
|
18
|
-
borderColor: (0, _constants.get)('colors.border.default')
|
19
|
-
},
|
20
|
-
primary: {
|
21
|
-
borderColor: (0, _constants.get)('colors.fg.default')
|
22
|
-
},
|
23
|
-
secondary: {
|
24
|
-
borderColor: (0, _constants.get)('colors.border.muted'),
|
25
|
-
textColor: (0, _constants.get)('colors.fg.muted')
|
26
|
-
},
|
27
|
-
info: {
|
28
|
-
borderColor: (0, _constants.get)('colors.accent.fg'),
|
29
|
-
textColor: (0, _constants.get)('colors.accent.fg')
|
30
|
-
},
|
31
|
-
success: {
|
32
|
-
borderColor: (0, _constants.get)('colors.success.fg'),
|
33
|
-
textColor: (0, _constants.get)('colors.success.emphasis')
|
34
|
-
},
|
35
|
-
warning: {
|
36
|
-
borderColor: (0, _constants.get)('colors.attention.fg'),
|
37
|
-
textColor: (0, _constants.get)('colors.attention.emphasis')
|
38
|
-
},
|
39
|
-
danger: {
|
40
|
-
borderColor: (0, _constants.get)('colors.danger.fg'),
|
41
|
-
textColor: (0, _constants.get)('colors.danger.emphasis')
|
42
|
-
}
|
43
|
-
};
|
44
|
-
|
45
|
-
const Badge = _styledComponents.default.span.withConfig({
|
46
|
-
displayName: "Badge",
|
47
|
-
componentId: "sc-15t9m5z-0"
|
48
|
-
})(["align-items:center;background-color:transparent;border-width:1px;border-radius:999px;border-style:solid;border-color:", ";color:", ";display:inline-flex;font-weight:", ";line-height:1;white-space:nowrap;", ";"], ({
|
49
|
-
color = 'default'
|
50
|
-
}) => badgeColorMap[color].borderColor, ({
|
51
|
-
color = 'default'
|
52
|
-
}) => badgeColorMap[color].textColor, (0, _constants.get)('fontWeights.bold'), _badgeStyleUtils.badgeVariants);
|
53
|
-
|
54
|
-
Badge.defaultProps = {
|
55
|
-
variant: 'sm',
|
56
|
-
color: 'default'
|
57
|
-
};
|
58
|
-
var _default = Badge;
|
59
|
-
exports.default = _default;
|
@@ -1,13 +0,0 @@
|
|
1
|
-
/// <reference types="react" />
|
2
|
-
import { IconProps } from '@primer/octicons-react';
|
3
|
-
import { BadgeSizeKeys } from './_badgeStyleUtils';
|
4
|
-
declare type BadgeStateColorOptions = 'default' | 'open' | 'merged' | 'closed';
|
5
|
-
interface Props {
|
6
|
-
color?: BadgeStateColorOptions;
|
7
|
-
icon?: React.ComponentType<{
|
8
|
-
size?: IconProps['size'];
|
9
|
-
}>;
|
10
|
-
variant?: BadgeSizeKeys;
|
11
|
-
}
|
12
|
-
declare const BadgeState: React.FC<Props>;
|
13
|
-
export default BadgeState;
|
package/lib/Badge/BadgeState.js
DELETED
@@ -1,51 +0,0 @@
|
|
1
|
-
"use strict";
|
2
|
-
|
3
|
-
Object.defineProperty(exports, "__esModule", {
|
4
|
-
value: true
|
5
|
-
});
|
6
|
-
exports.default = void 0;
|
7
|
-
|
8
|
-
var _styledComponents = _interopRequireDefault(require("styled-components"));
|
9
|
-
|
10
|
-
var _constants = require("../constants");
|
11
|
-
|
12
|
-
var _badgeStyleUtils = require("./_badgeStyleUtils");
|
13
|
-
|
14
|
-
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
15
|
-
|
16
|
-
function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }
|
17
|
-
|
18
|
-
const badgeStateColorMap = {
|
19
|
-
default: (0, _constants.get)('colors.neutral.emphasis'),
|
20
|
-
open: (0, _constants.get)('colors.success.emphasis'),
|
21
|
-
merged: (0, _constants.get)('colors.done.emphasis'),
|
22
|
-
closed: (0, _constants.get)('colors.danger.emphasis')
|
23
|
-
}; // const badgeStateIconSizeMap: Record<BadgeSizeKeys, number> = {
|
24
|
-
// 'sm':
|
25
|
-
// };
|
26
|
-
|
27
|
-
const StyledBadgeState = _styledComponents.default.span.withConfig({
|
28
|
-
displayName: "BadgeState__StyledBadgeState",
|
29
|
-
componentId: "sc-5hwzjt-0"
|
30
|
-
})(["align-items:center;background-color:", ";border-radius:999px;color:", ";display:inline-flex;font-weight:", ";gap:", ";line-height:1;white-space:nowrap;", ";"], ({
|
31
|
-
color = 'default'
|
32
|
-
}) => badgeStateColorMap[color], (0, _constants.get)('colors.fg.onEmphasis'), (0, _constants.get)('fontWeights.bold'), (0, _constants.get)('space.1'), _badgeStyleUtils.badgeVariants);
|
33
|
-
|
34
|
-
const BadgeState = ({
|
35
|
-
children,
|
36
|
-
icon: IconComponent,
|
37
|
-
variant,
|
38
|
-
...rest
|
39
|
-
}) => /*#__PURE__*/React.createElement(StyledBadgeState, _extends({
|
40
|
-
variant: variant
|
41
|
-
}, rest), IconComponent ? /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement(IconComponent, {
|
42
|
-
size: variant === 'sm' ? 12 : 'small'
|
43
|
-
}), children) : children);
|
44
|
-
|
45
|
-
BadgeState.displayName = "BadgeState";
|
46
|
-
BadgeState.defaultProps = {
|
47
|
-
variant: 'lg',
|
48
|
-
color: 'default'
|
49
|
-
};
|
50
|
-
var _default = BadgeState;
|
51
|
-
exports.default = _default;
|
@@ -1,39 +0,0 @@
|
|
1
|
-
"use strict";
|
2
|
-
|
3
|
-
Object.defineProperty(exports, "__esModule", {
|
4
|
-
value: true
|
5
|
-
});
|
6
|
-
exports.badgeVariants = exports.badgeSizes = void 0;
|
7
|
-
|
8
|
-
var _styledSystem = require("styled-system");
|
9
|
-
|
10
|
-
// TODO: consider moving to Primitives
|
11
|
-
const badgeSizes = {
|
12
|
-
sm: 20,
|
13
|
-
md: 24,
|
14
|
-
lg: 32
|
15
|
-
};
|
16
|
-
exports.badgeSizes = badgeSizes;
|
17
|
-
const badgeVariants = (0, _styledSystem.variant)({
|
18
|
-
variants: {
|
19
|
-
sm: {
|
20
|
-
fontSize: 0,
|
21
|
-
height: `${badgeSizes.sm}px`,
|
22
|
-
paddingLeft: 2,
|
23
|
-
paddingRight: 2
|
24
|
-
},
|
25
|
-
md: {
|
26
|
-
fontSize: 0,
|
27
|
-
height: `${badgeSizes.md}px`,
|
28
|
-
paddingLeft: 2,
|
29
|
-
paddingRight: 2
|
30
|
-
},
|
31
|
-
lg: {
|
32
|
-
fontSize: 1,
|
33
|
-
height: `${badgeSizes.lg}px`,
|
34
|
-
paddingLeft: 3,
|
35
|
-
paddingRight: 3
|
36
|
-
}
|
37
|
-
}
|
38
|
-
});
|
39
|
-
exports.badgeVariants = badgeVariants;
|
package/lib/TextInputTokens.d.ts
DELETED
@@ -1,43 +0,0 @@
|
|
1
|
-
import React, { ComponentPropsWithoutRef } from 'react';
|
2
|
-
import { ComponentProps, MandateProps } from './utils/types';
|
3
|
-
import Token, { TokenProps } from './Token/Token';
|
4
|
-
import TokenLabel, { TokenLabelProps } from './Token/TokenLabel';
|
5
|
-
import TokenProfile, { TokenProfileProps } from './Token/TokenProfile';
|
6
|
-
import { TokenSizeKeys } from './Token/TokenBase';
|
7
|
-
import { TextInputProps } from './TextInput';
|
8
|
-
declare type AnyTokenProps = Partial<TokenProps & TokenLabelProps & TokenProfileProps>;
|
9
|
-
declare type TokenDatum = MandateProps<AnyTokenProps, 'id' | 'text'>;
|
10
|
-
declare type TextInputWithTokensInternalProps = {
|
11
|
-
/**
|
12
|
-
* The array of tokens to render
|
13
|
-
*/
|
14
|
-
tokens: TokenDatum[];
|
15
|
-
/**
|
16
|
-
* The function that gets called when a token is removed
|
17
|
-
*/
|
18
|
-
onTokenRemove: (tokenId: string | number) => void;
|
19
|
-
/**
|
20
|
-
* The component used to render each token
|
21
|
-
*/
|
22
|
-
tokenComponent?: React.ComponentType<ComponentPropsWithoutRef<typeof Token> | ComponentPropsWithoutRef<typeof TokenLabel> | ComponentPropsWithoutRef<typeof TokenProfile>>;
|
23
|
-
/**
|
24
|
-
* The maximum height of the component. If the content in the input exceeds this height,
|
25
|
-
* it will scroll vertically
|
26
|
-
*/
|
27
|
-
maxHeight?: React.CSSProperties['maxHeight'];
|
28
|
-
/**
|
29
|
-
* Whether tokens should render inline horizontally. By default, tokens wrap to new lines.
|
30
|
-
*/
|
31
|
-
preventTokenWrapping?: boolean;
|
32
|
-
/**
|
33
|
-
* The size of the tokens
|
34
|
-
*/
|
35
|
-
tokenSizeVariant?: TokenSizeKeys;
|
36
|
-
/**
|
37
|
-
* Whether the remove buttons should be rendered in the tokens
|
38
|
-
*/
|
39
|
-
hideTokenRemoveButtons?: boolean;
|
40
|
-
} & TextInputProps;
|
41
|
-
declare const TextInputWithTokens: React.ForwardRefExoticComponent<Pick<TextInputWithTokensInternalProps, string | number | symbol> & React.RefAttributes<HTMLInputElement>>;
|
42
|
-
export declare type TextInputWithTokensProps = ComponentProps<typeof TextInputWithTokens>;
|
43
|
-
export default TextInputWithTokens;
|