@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.
Files changed (47) hide show
  1. package/.turbo/turbo-build.log +19 -11
  2. package/BUNDLE_OPTIMIZATION.md +307 -0
  3. package/CHANGELOG.md +51 -0
  4. package/dist/esm/chunk-ROQATIB7.js +357 -0
  5. package/dist/esm/chunk-ROQATIB7.js.map +1 -0
  6. package/dist/esm/index.js +261 -2271
  7. package/dist/esm/index.js.map +1 -1
  8. package/dist/esm/v2/index.js +2000 -0
  9. package/dist/esm/v2/index.js.map +1 -0
  10. package/dist/index.d.mts +1 -0
  11. package/dist/index.d.ts +1 -0
  12. package/dist/index.js +297 -1989
  13. package/dist/index.js.map +1 -1
  14. package/dist/v2/index.d.mts +96 -0
  15. package/dist/v2/index.d.ts +96 -0
  16. package/dist/v2/index.js +2191 -0
  17. package/dist/v2/index.js.map +1 -0
  18. package/package.json +30 -14
  19. package/src/MenuItem/styles.tsx +7 -0
  20. package/src/v2/Autocomplete/Autocomplete.stories.tsx +609 -0
  21. package/src/v2/Autocomplete/MultiAutocomplete.tsx +453 -0
  22. package/src/v2/Autocomplete/SingleAutocomplete.tsx +362 -0
  23. package/src/v2/Autocomplete/index.ts +2 -0
  24. package/src/v2/Common-V2/ComboboxContent.tsx +448 -0
  25. package/src/v2/Common-V2/MenuGroup.tsx +60 -0
  26. package/src/v2/Common-V2/MenuGroupTypes.ts +30 -0
  27. package/src/v2/Common-V2/MenuHeading.tsx +83 -0
  28. package/src/v2/Common-V2/MenuItem.tsx +138 -0
  29. package/src/v2/Common-V2/Popout.tsx +102 -0
  30. package/src/v2/Common-V2/PopoutTypes.tsx +92 -0
  31. package/src/v2/Common-V2/SelectToggleButton.tsx +99 -0
  32. package/src/v2/Common-V2/index.ts +11 -0
  33. package/src/v2/Common-V2/props.ts +74 -0
  34. package/src/v2/Common-V2/styles.tsx +41 -0
  35. package/src/v2/Common-V2/types.ts +16 -0
  36. package/src/v2/Common-V2/useHighlightedIndex.ts +62 -0
  37. package/src/v2/Common-V2/utils.ts +238 -0
  38. package/src/v2/SearchableSelect/AutocompleteContent.tsx +325 -0
  39. package/src/v2/SearchableSelect/SearchableMultiSelect.tsx +521 -0
  40. package/src/v2/SearchableSelect/SearchableSelect.tsx +389 -0
  41. package/src/v2/SearchableSelect/index.ts +12 -0
  42. package/src/v2/Select/MultiSelect.tsx +404 -0
  43. package/src/v2/Select/Select.stories.tsx +593 -0
  44. package/src/v2/Select/SingleSelect.tsx +272 -0
  45. package/src/v2/Select/index.ts +2 -0
  46. package/src/v2/index.ts +2 -0
  47. 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 };