@sproutsocial/seeds-react-menu 0.5.0 → 1.0.0

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 (104) hide show
  1. package/.turbo/turbo-build.log +10 -10
  2. package/CHANGELOG.md +72 -0
  3. package/dist/esm/index.js +1529 -440
  4. package/dist/esm/index.js.map +1 -1
  5. package/dist/index.d.mts +275 -92
  6. package/dist/index.d.ts +275 -92
  7. package/dist/index.js +1558 -444
  8. package/dist/index.js.map +1 -1
  9. package/package.json +15 -12
  10. package/src/ActionMenu/ActionMenu.stories.tsx +422 -0
  11. package/src/ActionMenu/ActionMenu.tsx +24 -27
  12. package/src/ActionMenu/ActionMenuTypes.ts +8 -7
  13. package/src/ActionMenu/__tests__/ActionMenu.test.tsx +17 -8
  14. package/src/ActionMenu/__tests__/ActionMenu.typetest.tsx +8 -8
  15. package/src/Autocomplete/Autocomplete.stories.tsx +38 -3
  16. package/src/Autocomplete/Autocomplete.tsx +15 -80
  17. package/src/Autocomplete/AutocompleteInput.tsx +18 -27
  18. package/src/Autocomplete/AutocompleteTokenInput.tsx +50 -0
  19. package/src/Autocomplete/AutocompleteTypes.ts +25 -12
  20. package/src/Autocomplete/MultiAutocomplete.tsx +188 -0
  21. package/src/Autocomplete/SingleAutocomplete.tsx +74 -0
  22. package/src/Autocomplete/__tests__/Autocomplete.test.tsx +207 -3
  23. package/src/Autocomplete/__tests__/Autocomplete.typetest.tsx +90 -8
  24. package/src/MenuContent/MenuContent.stories.tsx +164 -0
  25. package/src/MenuContent/MenuContent.tsx +28 -12
  26. package/src/MenuContent/MenuContentTypes.ts +6 -4
  27. package/src/MenuContent/__tests__/MenuContent.typetest.tsx +8 -8
  28. package/src/MenuContext.tsx +192 -37
  29. package/src/MenuFooter/MenuFooter.stories.tsx +202 -0
  30. package/src/MenuFooter/__tests__/MenuFooter.test.tsx +16 -11
  31. package/src/MenuFooter/styles.tsx +1 -1
  32. package/src/MenuGroup/MenuGroup.feature +16 -16
  33. package/src/MenuGroup/MenuGroup.stories.tsx +248 -0
  34. package/src/MenuGroup/MenuGroup.tsx +12 -7
  35. package/src/MenuGroup/MenuGroupTypes.ts +6 -2
  36. package/src/MenuGroup/__tests__/MenuGroup.test.tsx +6 -6
  37. package/src/MenuGroup/__tests__/MenuGroup.typetest.tsx +7 -7
  38. package/src/MenuGroup/styles.tsx +4 -2
  39. package/src/MenuHeader/MenuHeader.stories.tsx +276 -0
  40. package/src/MenuHeader/MenuHeader.tsx +12 -7
  41. package/src/MenuHeader/__tests__/MenuHeader.test.tsx +23 -13
  42. package/src/MenuHeader/styles.tsx +22 -14
  43. package/src/MenuItem/MenuItem.stories.tsx +507 -0
  44. package/src/MenuItem/MenuItem.tsx +23 -9
  45. package/src/MenuItem/MenuItemTypes.ts +9 -4
  46. package/src/MenuItem/__tests__/MenuItem.test.tsx +6 -6
  47. package/src/MenuItem/styles.tsx +23 -5
  48. package/src/MenuItem/useOptionProps.tsx +11 -9
  49. package/src/MenuLabel.tsx +2 -2
  50. package/src/MenuRoot/MenuRoot.tsx +52 -24
  51. package/src/MenuRoot/__tests__/MenuRoot.test.tsx +59 -32
  52. package/src/MenuSearchInput/MenuSearchInput.tsx +85 -0
  53. package/src/MenuSearchInput/__tests__/MenuSearchInput.test.tsx +157 -0
  54. package/src/MenuSearchInput/__tests__/MenuSearchInput.typetest.tsx +31 -0
  55. package/src/MenuSearchInput/index.ts +1 -0
  56. package/src/MenuSearchTokenInput/MenuSearchTokenInput.tsx +108 -0
  57. package/src/MenuSearchTokenInput/__tests__/MenuSearchTokenInput.test.tsx +247 -0
  58. package/src/MenuSearchTokenInput/__tests__/MenuSearchTokenInput.typetest.tsx +33 -0
  59. package/src/MenuSearchTokenInput/index.ts +1 -0
  60. package/src/MenuToggleButton/MenuToggleButton.stories.tsx +72 -0
  61. package/src/{MenuToggleButton.tsx → MenuToggleButton/MenuToggleButton.tsx} +6 -5
  62. package/src/MenuToggleButton/index.ts +1 -0
  63. package/src/MenuTokenInput.tsx +104 -0
  64. package/src/MultiSelectMenu/MultiSelectMenu.stories.tsx +222 -0
  65. package/src/MultiSelectMenu/MultiSelectMenu.tsx +38 -68
  66. package/src/MultiSelectMenu/MultiSelectMenuTypes.ts +8 -6
  67. package/src/MultiSelectMenu/__tests__/MultiSelectMenu.test.tsx +46 -17
  68. package/src/MultiSelectMenu/__tests__/MultiSelectMenu.typetest.tsx +6 -6
  69. package/src/NestedMenu/NestedMenu.feature +109 -0
  70. package/src/NestedMenu/NestedMenu.stories.tsx +157 -0
  71. package/src/NestedMenu/NestedMenu.tsx +102 -0
  72. package/src/NestedMenu/NestedMenuContent.tsx +75 -0
  73. package/src/NestedMenu/NestedMenuContext.tsx +56 -0
  74. package/src/NestedMenu/NestedMenuHeader.tsx +25 -0
  75. package/src/NestedMenu/NestedMenuItem.tsx +41 -0
  76. package/src/NestedMenu/NestedMenuTypes.ts +47 -0
  77. package/src/NestedMenu/__tests__/NestedMenu.test.tsx +31 -0
  78. package/src/NestedMenu/__tests__/NestedMenu.typetest.tsx +134 -0
  79. package/src/NestedMenu/index.ts +5 -0
  80. package/src/SingleSelectMenu/SingleSelectMenu.stories.tsx +233 -0
  81. package/src/SingleSelectMenu/SingleSelectMenu.tsx +23 -26
  82. package/src/SingleSelectMenu/SingleSelectMenuTypes.ts +7 -5
  83. package/src/SingleSelectMenu/__tests__/SingleSelectMenu.typetest.tsx +6 -6
  84. package/src/SubmenuItem/SubmenuItem.feature +82 -0
  85. package/src/SubmenuItem/SubmenuItem.stories.tsx +163 -0
  86. package/src/SubmenuItem/SubmenuItem.tsx +258 -0
  87. package/src/SubmenuItem/SubmenuItemTypes.ts +24 -0
  88. package/src/SubmenuItem/__tests__/SubmenuItem.test.tsx +3 -0
  89. package/src/SubmenuItem/__tests__/SubmenuItem.typetest.tsx +112 -0
  90. package/src/SubmenuItem/index.ts +2 -0
  91. package/src/hooks/useDownshiftDefaults.tsx +117 -0
  92. package/src/hooks/useItemFiltering.tsx +68 -0
  93. package/src/hooks/useMenuChildren.tsx +205 -131
  94. package/src/index.ts +6 -0
  95. package/src/menuTestingUtils.tsx +21 -10
  96. package/src/reducers/nestedMenuStateReducer.tsx +23 -0
  97. package/src/reducers/useComboboxStateReducer.tsx +26 -8
  98. package/src/reducers/useSelectStateReducer.tsx +24 -6
  99. package/src/storybookUtilities/menu-storybook-components.tsx +5 -3
  100. package/src/types.ts +38 -30
  101. package/src/utils/downshiftDefaults.ts +9 -0
  102. package/src/utils/getMultiSelectOverrides.ts +21 -0
  103. package/src/utils/reduceReducers.ts +19 -0
  104. package/src/utils/itemToString.ts +0 -5
@@ -8,14 +8,14 @@ CLI Target: es2022
8
8
  CLI Cleaning output folder
9
9
  CJS Build start
10
10
  ESM Build start
11
- CJS dist/index.js 93.30 KB
12
- CJS dist/index.js.map 271.01 KB
13
- CJS ⚡️ Build success in 795ms
14
- ESM dist/esm/index.js 88.24 KB
15
- ESM dist/esm/index.js.map 270.17 KB
16
- ESM ⚡️ Build success in 802ms
11
+ CJS dist/index.js 127.24 KB
12
+ CJS dist/index.js.map 338.99 KB
13
+ CJS ⚡️ Build success in 552ms
14
+ ESM dist/esm/index.js 119.14 KB
15
+ ESM dist/esm/index.js.map 337.77 KB
16
+ ESM ⚡️ Build success in 565ms
17
17
  DTS Build start
18
- DTS ⚡️ Build success in 27251ms
19
- DTS dist/index.d.ts 19.56 KB
20
- DTS dist/index.d.mts 19.56 KB
21
- Done in 34.03s.
18
+ DTS ⚡️ Build success in 11080ms
19
+ DTS dist/index.d.ts 30.02 KB
20
+ DTS dist/index.d.mts 30.02 KB
21
+ Done in 14.90s.
package/CHANGELOG.md CHANGED
@@ -1,5 +1,77 @@
1
1
  # @sproutsocial/seeds-react-menu
2
2
 
3
+ ## 1.0.0
4
+
5
+ ### Major Changes
6
+
7
+ - 686f09d: Here's the initial stable version of the new Menu package!
8
+ The documentation for these new components is still a work in progress, but you can checkout examples of its usage in [our latest storybook instance](https://seeds-storybook-vite.netlify.app).
9
+
10
+ ## Ready for use
11
+
12
+ These components have been tested and their APIs stable and ready for initial use.
13
+
14
+ - Primitives
15
+ - `MenuHeader` - a stylized region for the header of the menu
16
+ - `MenuContent` - the element used to wrap the list of options in the menu
17
+ - `MenuGroup` - a group element to wrap a list of items inside the content with an optional title
18
+ - `MenuItem` - to be used to compose each menu item in the list
19
+ - `MenuFooter` - a stylized region for the footer of the menu
20
+ - `MenuSearchInput` - a text search input for filtering the menu items
21
+ - `MenuSearchTokenInput` - a token input for searching and selecting items in a multiple select menu
22
+ - `MenuToggleButton` - an accessible button to handle opening and closing the menu
23
+ - `MenuLabel` - an accessible label to go along with a toggle button or autocomplete input
24
+ - Menus
25
+ - `ActionMenu` - perform an action using a dropdown with no selection state
26
+ - `SingleSelectMenu` - use a selection menu where only one item can be selected
27
+ - `MultiSelectMenu` - use a selection menu where multiple items may be selected
28
+ - `Autocomplete` - use a dropdown to perform autocomplete on an input
29
+ - `AutocompleteInput` - a custom toggle element for text inputs with autocomplete
30
+ - `AutcompleteTokenInput` - a custom toggle element for multiple selection with autocomplete
31
+
32
+ ## Still Experimental
33
+
34
+ These components and utilities are stable enough to support the ready for use components, but may not be fully stable enough for individual use. Use with caution!
35
+ Future updates will stabilize these components for wider use.
36
+
37
+ - Primitives
38
+ - `MenuRoot` - the root of most of the menus which handles the Popout logic and initializing the menu's context data
39
+ - This currently includes the Popout but could go through API changes depending on if we keep the Popout embedded here
40
+ - The type for this may change, but should not affect the API of the Menus consuming it
41
+ - `useMenu`/`MenuContext` - used to drive and share data between the menu primitives
42
+ - This shared logic has the potential to change in order to resolve bugs, data inconsistency or performance concerns
43
+ - `SubmenuItem` - a menu item that can be used to open another menu, allowing for the use of submenus
44
+ - There are still a couple of outstanding bugs for this component
45
+ - This should be stable enough to start using, with bug fixes coming soon
46
+ - Menus
47
+ - `NestedMenu` - a nested menu with sliding panels similar to what currently exists in the web app
48
+ - We are still massaging the animation added to this component, but it will be ready soon
49
+
50
+ ## Up Next
51
+
52
+ Here's what's coming soon but wasn't urgent for v1!
53
+
54
+ - Comprehensive seeds documentation as well as descriptive tsdocs for inline documentation
55
+ - Finishing off stable versions of the `SubmenuItem` and `NestedMenu`
56
+ - A `NestedFilterMenu` that can search all the items in a `NestedMenu`
57
+ - An `AutocompleteSelect` toggle element that can be used to create a searchable `Select` input
58
+ - Additional accessibility improvements and bug fixes
59
+
60
+ ## 0.6.0
61
+
62
+ ### Minor Changes
63
+
64
+ - bb01698: Add NestedMenu component
65
+
66
+ ### Patch Changes
67
+
68
+ - Updated dependencies [bb01698]
69
+ - Updated dependencies [bb01698]
70
+ - Updated dependencies [bb01698]
71
+ - @sproutsocial/seeds-react-input@1.4.1
72
+ - @sproutsocial/seeds-react-radio@1.3.0
73
+ - @sproutsocial/seeds-react-utilities@4.2.0
74
+
3
75
  ## 0.5.0
4
76
 
5
77
  ### Minor Changes