@sproutsocial/seeds-react-menu 1.7.1 → 1.7.5
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/.turbo/turbo-build.log +19 -11
- package/BUNDLE_OPTIMIZATION.md +307 -0
- package/CHANGELOG.md +51 -0
- package/dist/esm/chunk-ROQATIB7.js +357 -0
- package/dist/esm/chunk-ROQATIB7.js.map +1 -0
- package/dist/esm/index.js +261 -2271
- package/dist/esm/index.js.map +1 -1
- package/dist/esm/v2/index.js +2000 -0
- package/dist/esm/v2/index.js.map +1 -0
- package/dist/index.d.mts +1 -0
- package/dist/index.d.ts +1 -0
- package/dist/index.js +297 -1989
- package/dist/index.js.map +1 -1
- package/dist/v2/index.d.mts +96 -0
- package/dist/v2/index.d.ts +96 -0
- package/dist/v2/index.js +2191 -0
- package/dist/v2/index.js.map +1 -0
- package/package.json +30 -14
- package/src/MenuItem/styles.tsx +7 -0
- package/src/v2/Autocomplete/Autocomplete.stories.tsx +609 -0
- package/src/v2/Autocomplete/MultiAutocomplete.tsx +453 -0
- package/src/v2/Autocomplete/SingleAutocomplete.tsx +362 -0
- package/src/v2/Autocomplete/index.ts +2 -0
- package/src/v2/Common-V2/ComboboxContent.tsx +448 -0
- package/src/v2/Common-V2/MenuGroup.tsx +60 -0
- package/src/v2/Common-V2/MenuGroupTypes.ts +30 -0
- package/src/v2/Common-V2/MenuHeading.tsx +83 -0
- package/src/v2/Common-V2/MenuItem.tsx +138 -0
- package/src/v2/Common-V2/Popout.tsx +102 -0
- package/src/v2/Common-V2/PopoutTypes.tsx +92 -0
- package/src/v2/Common-V2/SelectToggleButton.tsx +99 -0
- package/src/v2/Common-V2/index.ts +11 -0
- package/src/v2/Common-V2/props.ts +74 -0
- package/src/v2/Common-V2/styles.tsx +41 -0
- package/src/v2/Common-V2/types.ts +16 -0
- package/src/v2/Common-V2/useHighlightedIndex.ts +62 -0
- package/src/v2/Common-V2/utils.ts +238 -0
- package/src/v2/SearchableSelect/AutocompleteContent.tsx +325 -0
- package/src/v2/SearchableSelect/SearchableMultiSelect.tsx +521 -0
- package/src/v2/SearchableSelect/SearchableSelect.tsx +389 -0
- package/src/v2/SearchableSelect/index.ts +12 -0
- package/src/v2/Select/MultiSelect.tsx +404 -0
- package/src/v2/Select/Select.stories.tsx +593 -0
- package/src/v2/Select/SingleSelect.tsx +272 -0
- package/src/v2/Select/index.ts +2 -0
- package/src/v2/index.ts +2 -0
- package/tsup.config.ts +14 -5
|
@@ -0,0 +1,96 @@
|
|
|
1
|
+
import * as react_jsx_runtime from 'react/jsx-runtime';
|
|
2
|
+
import { ReactNode } from 'react';
|
|
3
|
+
|
|
4
|
+
interface DataWithId {
|
|
5
|
+
id: string | number;
|
|
6
|
+
}
|
|
7
|
+
interface ToggleItem {
|
|
8
|
+
id: "select-all" | "clear-selection";
|
|
9
|
+
label: string;
|
|
10
|
+
}
|
|
11
|
+
|
|
12
|
+
/**
|
|
13
|
+
* Base props common to all select/autocomplete components
|
|
14
|
+
*/
|
|
15
|
+
interface BaseSelectProps<T extends DataWithId> {
|
|
16
|
+
id: string;
|
|
17
|
+
data: T[];
|
|
18
|
+
isOpen?: boolean;
|
|
19
|
+
itemToKey?: (item: T) => string | number;
|
|
20
|
+
itemToString: (item: T | null) => string;
|
|
21
|
+
renderItem: (item: T) => ReactNode;
|
|
22
|
+
groupBy?: (item: T) => string;
|
|
23
|
+
renderGroupHeading?: (label: string) => string;
|
|
24
|
+
isVirtualized?: boolean;
|
|
25
|
+
placeholder: string;
|
|
26
|
+
onIsOpenChange?: (isOpen: boolean) => void;
|
|
27
|
+
stateReducer?: any;
|
|
28
|
+
menuProps?: React.HTMLAttributes<HTMLDivElement>;
|
|
29
|
+
}
|
|
30
|
+
/**
|
|
31
|
+
* Props common to all single-select components
|
|
32
|
+
*/
|
|
33
|
+
interface BaseSingleSelectProps<T extends DataWithId> extends BaseSelectProps<T> {
|
|
34
|
+
selectedItemId?: T["id"] | null;
|
|
35
|
+
onSelectedItemIdChange?: (itemId: T["id"] | null) => void;
|
|
36
|
+
placeholderItem?: ToggleItem;
|
|
37
|
+
inputType?: "radio" | "icon";
|
|
38
|
+
removePlaceholderItem?: boolean;
|
|
39
|
+
}
|
|
40
|
+
/**
|
|
41
|
+
* Props common to all multi-select components
|
|
42
|
+
*/
|
|
43
|
+
interface BaseMultiSelectProps<T extends DataWithId> extends BaseSelectProps<T> {
|
|
44
|
+
selectedItemIds?: T["id"][];
|
|
45
|
+
onSelectedItemIdsChange?: (itemIds: T["id"][]) => void;
|
|
46
|
+
showSelectedItems?: boolean;
|
|
47
|
+
selectHeadings?: boolean;
|
|
48
|
+
selectAllItem?: ToggleItem;
|
|
49
|
+
inputType?: "checkbox" | "icon";
|
|
50
|
+
}
|
|
51
|
+
/**
|
|
52
|
+
* Props common to all autocomplete/searchable components
|
|
53
|
+
*/
|
|
54
|
+
interface BaseAutocompleteProps<T extends DataWithId> extends BaseSelectProps<T> {
|
|
55
|
+
EmptyState: ReactNode;
|
|
56
|
+
inputValue?: string;
|
|
57
|
+
itemToSearchString?: (item: T) => string;
|
|
58
|
+
onInputValueChange?: (value: string) => void;
|
|
59
|
+
}
|
|
60
|
+
/**
|
|
61
|
+
* Props for single-select autocomplete/searchable components
|
|
62
|
+
*/
|
|
63
|
+
interface BaseSingleAutocompleteProps<T extends DataWithId> extends BaseSingleSelectProps<T>, BaseAutocompleteProps<T> {
|
|
64
|
+
inputType?: "radio" | "icon";
|
|
65
|
+
}
|
|
66
|
+
/**
|
|
67
|
+
* Props for multi-select autocomplete/searchable components
|
|
68
|
+
*/
|
|
69
|
+
interface BaseMultiAutocompleteProps<T extends DataWithId> extends BaseMultiSelectProps<T>, BaseAutocompleteProps<T> {
|
|
70
|
+
inputType?: "checkbox" | "icon";
|
|
71
|
+
}
|
|
72
|
+
|
|
73
|
+
interface SingleSelectProps<T extends DataWithId> extends BaseSingleSelectProps<T> {
|
|
74
|
+
itemToSelection?: (item: T) => ReactNode;
|
|
75
|
+
renderSelection?: (item: T | null) => ReactNode;
|
|
76
|
+
triggerButtonProps?: any;
|
|
77
|
+
}
|
|
78
|
+
declare function SingleSelect<T extends DataWithId>({ id, data, selectedItemId: controlledSelectedItemId, isOpen: controlledIsOpen, itemToKey, itemToString, itemToSelection, renderSelection, renderItem, groupBy, renderGroupHeading, isVirtualized, placeholder, onSelectedItemIdChange, onIsOpenChange, stateReducer, triggerButtonProps, menuProps, inputType, removePlaceholderItem, }: SingleSelectProps<T>): react_jsx_runtime.JSX.Element;
|
|
79
|
+
|
|
80
|
+
interface MultiSelectProps<T extends DataWithId> extends BaseMultiSelectProps<T> {
|
|
81
|
+
renderSelections?: (items: T[]) => ReactNode;
|
|
82
|
+
triggerButtonProps?: any;
|
|
83
|
+
shouldOverflow?: boolean;
|
|
84
|
+
}
|
|
85
|
+
declare function MultiSelect<T extends DataWithId>({ id, data, selectedItemIds: controlledSelectedItemIds, isOpen: controlledIsOpen, itemToKey, itemToString, renderSelections, renderItem, groupBy, renderGroupHeading, isVirtualized, showSelectedItems, selectHeadings, selectAllItem, placeholder, onSelectedItemIdsChange, onIsOpenChange, stateReducer, triggerButtonProps, menuProps, inputType, shouldOverflow, }: MultiSelectProps<T>): react_jsx_runtime.JSX.Element;
|
|
86
|
+
|
|
87
|
+
interface SingleAutocompleteProps<T extends DataWithId> extends BaseSingleAutocompleteProps<T> {
|
|
88
|
+
includePlaceholderItem?: boolean;
|
|
89
|
+
}
|
|
90
|
+
declare function SingleAutocomplete<T extends DataWithId>({ id, data, selectedItemId: controlledSelectedItemId, inputValue: controlledInputValue, isOpen: controlledIsOpen, itemToKey, itemToString, itemToSearchString, renderItem, groupBy, renderGroupHeading, isVirtualized, EmptyState, placeholder, onSelectedItemIdChange, onInputValueChange, onIsOpenChange, stateReducer, menuProps, inputType, includePlaceholderItem, }: SingleAutocompleteProps<T>): react_jsx_runtime.JSX.Element;
|
|
91
|
+
|
|
92
|
+
interface MultiAutocompleteProps<T extends DataWithId> extends BaseMultiAutocompleteProps<T> {
|
|
93
|
+
}
|
|
94
|
+
declare function MultiAutocomplete<T extends DataWithId>({ id, data, selectedItemIds: controlledSelectedItemIds, inputValue: controlledInputValue, isOpen: controlledIsOpen, itemToKey, itemToString, itemToSearchString, renderItem, groupBy, renderGroupHeading, isVirtualized, showSelectedItems, selectHeadings, selectAllItem, EmptyState, placeholder, onSelectedItemIdsChange, onInputValueChange, onIsOpenChange, stateReducer, menuProps, inputType, }: MultiAutocompleteProps<T>): react_jsx_runtime.JSX.Element;
|
|
95
|
+
|
|
96
|
+
export { MultiAutocomplete, type MultiAutocompleteProps, MultiSelect, type MultiSelectProps, SingleAutocomplete, type SingleAutocompleteProps, SingleSelect, type SingleSelectProps };
|
|
@@ -0,0 +1,96 @@
|
|
|
1
|
+
import * as react_jsx_runtime from 'react/jsx-runtime';
|
|
2
|
+
import { ReactNode } from 'react';
|
|
3
|
+
|
|
4
|
+
interface DataWithId {
|
|
5
|
+
id: string | number;
|
|
6
|
+
}
|
|
7
|
+
interface ToggleItem {
|
|
8
|
+
id: "select-all" | "clear-selection";
|
|
9
|
+
label: string;
|
|
10
|
+
}
|
|
11
|
+
|
|
12
|
+
/**
|
|
13
|
+
* Base props common to all select/autocomplete components
|
|
14
|
+
*/
|
|
15
|
+
interface BaseSelectProps<T extends DataWithId> {
|
|
16
|
+
id: string;
|
|
17
|
+
data: T[];
|
|
18
|
+
isOpen?: boolean;
|
|
19
|
+
itemToKey?: (item: T) => string | number;
|
|
20
|
+
itemToString: (item: T | null) => string;
|
|
21
|
+
renderItem: (item: T) => ReactNode;
|
|
22
|
+
groupBy?: (item: T) => string;
|
|
23
|
+
renderGroupHeading?: (label: string) => string;
|
|
24
|
+
isVirtualized?: boolean;
|
|
25
|
+
placeholder: string;
|
|
26
|
+
onIsOpenChange?: (isOpen: boolean) => void;
|
|
27
|
+
stateReducer?: any;
|
|
28
|
+
menuProps?: React.HTMLAttributes<HTMLDivElement>;
|
|
29
|
+
}
|
|
30
|
+
/**
|
|
31
|
+
* Props common to all single-select components
|
|
32
|
+
*/
|
|
33
|
+
interface BaseSingleSelectProps<T extends DataWithId> extends BaseSelectProps<T> {
|
|
34
|
+
selectedItemId?: T["id"] | null;
|
|
35
|
+
onSelectedItemIdChange?: (itemId: T["id"] | null) => void;
|
|
36
|
+
placeholderItem?: ToggleItem;
|
|
37
|
+
inputType?: "radio" | "icon";
|
|
38
|
+
removePlaceholderItem?: boolean;
|
|
39
|
+
}
|
|
40
|
+
/**
|
|
41
|
+
* Props common to all multi-select components
|
|
42
|
+
*/
|
|
43
|
+
interface BaseMultiSelectProps<T extends DataWithId> extends BaseSelectProps<T> {
|
|
44
|
+
selectedItemIds?: T["id"][];
|
|
45
|
+
onSelectedItemIdsChange?: (itemIds: T["id"][]) => void;
|
|
46
|
+
showSelectedItems?: boolean;
|
|
47
|
+
selectHeadings?: boolean;
|
|
48
|
+
selectAllItem?: ToggleItem;
|
|
49
|
+
inputType?: "checkbox" | "icon";
|
|
50
|
+
}
|
|
51
|
+
/**
|
|
52
|
+
* Props common to all autocomplete/searchable components
|
|
53
|
+
*/
|
|
54
|
+
interface BaseAutocompleteProps<T extends DataWithId> extends BaseSelectProps<T> {
|
|
55
|
+
EmptyState: ReactNode;
|
|
56
|
+
inputValue?: string;
|
|
57
|
+
itemToSearchString?: (item: T) => string;
|
|
58
|
+
onInputValueChange?: (value: string) => void;
|
|
59
|
+
}
|
|
60
|
+
/**
|
|
61
|
+
* Props for single-select autocomplete/searchable components
|
|
62
|
+
*/
|
|
63
|
+
interface BaseSingleAutocompleteProps<T extends DataWithId> extends BaseSingleSelectProps<T>, BaseAutocompleteProps<T> {
|
|
64
|
+
inputType?: "radio" | "icon";
|
|
65
|
+
}
|
|
66
|
+
/**
|
|
67
|
+
* Props for multi-select autocomplete/searchable components
|
|
68
|
+
*/
|
|
69
|
+
interface BaseMultiAutocompleteProps<T extends DataWithId> extends BaseMultiSelectProps<T>, BaseAutocompleteProps<T> {
|
|
70
|
+
inputType?: "checkbox" | "icon";
|
|
71
|
+
}
|
|
72
|
+
|
|
73
|
+
interface SingleSelectProps<T extends DataWithId> extends BaseSingleSelectProps<T> {
|
|
74
|
+
itemToSelection?: (item: T) => ReactNode;
|
|
75
|
+
renderSelection?: (item: T | null) => ReactNode;
|
|
76
|
+
triggerButtonProps?: any;
|
|
77
|
+
}
|
|
78
|
+
declare function SingleSelect<T extends DataWithId>({ id, data, selectedItemId: controlledSelectedItemId, isOpen: controlledIsOpen, itemToKey, itemToString, itemToSelection, renderSelection, renderItem, groupBy, renderGroupHeading, isVirtualized, placeholder, onSelectedItemIdChange, onIsOpenChange, stateReducer, triggerButtonProps, menuProps, inputType, removePlaceholderItem, }: SingleSelectProps<T>): react_jsx_runtime.JSX.Element;
|
|
79
|
+
|
|
80
|
+
interface MultiSelectProps<T extends DataWithId> extends BaseMultiSelectProps<T> {
|
|
81
|
+
renderSelections?: (items: T[]) => ReactNode;
|
|
82
|
+
triggerButtonProps?: any;
|
|
83
|
+
shouldOverflow?: boolean;
|
|
84
|
+
}
|
|
85
|
+
declare function MultiSelect<T extends DataWithId>({ id, data, selectedItemIds: controlledSelectedItemIds, isOpen: controlledIsOpen, itemToKey, itemToString, renderSelections, renderItem, groupBy, renderGroupHeading, isVirtualized, showSelectedItems, selectHeadings, selectAllItem, placeholder, onSelectedItemIdsChange, onIsOpenChange, stateReducer, triggerButtonProps, menuProps, inputType, shouldOverflow, }: MultiSelectProps<T>): react_jsx_runtime.JSX.Element;
|
|
86
|
+
|
|
87
|
+
interface SingleAutocompleteProps<T extends DataWithId> extends BaseSingleAutocompleteProps<T> {
|
|
88
|
+
includePlaceholderItem?: boolean;
|
|
89
|
+
}
|
|
90
|
+
declare function SingleAutocomplete<T extends DataWithId>({ id, data, selectedItemId: controlledSelectedItemId, inputValue: controlledInputValue, isOpen: controlledIsOpen, itemToKey, itemToString, itemToSearchString, renderItem, groupBy, renderGroupHeading, isVirtualized, EmptyState, placeholder, onSelectedItemIdChange, onInputValueChange, onIsOpenChange, stateReducer, menuProps, inputType, includePlaceholderItem, }: SingleAutocompleteProps<T>): react_jsx_runtime.JSX.Element;
|
|
91
|
+
|
|
92
|
+
interface MultiAutocompleteProps<T extends DataWithId> extends BaseMultiAutocompleteProps<T> {
|
|
93
|
+
}
|
|
94
|
+
declare function MultiAutocomplete<T extends DataWithId>({ id, data, selectedItemIds: controlledSelectedItemIds, inputValue: controlledInputValue, isOpen: controlledIsOpen, itemToKey, itemToString, itemToSearchString, renderItem, groupBy, renderGroupHeading, isVirtualized, showSelectedItems, selectHeadings, selectAllItem, EmptyState, placeholder, onSelectedItemIdsChange, onInputValueChange, onIsOpenChange, stateReducer, menuProps, inputType, }: MultiAutocompleteProps<T>): react_jsx_runtime.JSX.Element;
|
|
95
|
+
|
|
96
|
+
export { MultiAutocomplete, type MultiAutocompleteProps, MultiSelect, type MultiSelectProps, SingleAutocomplete, type SingleAutocompleteProps, SingleSelect, type SingleSelectProps };
|