<details>
<summary>Click to display changelog</summary>
Library Change
* With the discontinuation of discord.py, this library is now dependent on [pycord](https://github.com/Pycord-Development/pycord)
Breaking Changes
* *changed* `ReactionMenu.STATIC` and `ReactionMenu.DYNAMIC` have been renamed
* Old: `ReactionMenu.STATIC`
* New: `ReactionMenu.TypeEmbed`
* Old: `ReactionMenu.DYNAMIC`
* New: `ReactionMenu.TypeEmbedDynamic`
* *changed/removed* The parameters of `ReactionMenu` have been changed
* Old: `ReactionMenu(ctx, back_button='⬅️', next_button='➡️', config=ReactionMenu.STATIC)`
* New: `ReactionMenu(ctx, menu_type=ReactionMenu.TypeEmbed)`
* *changed/removed* `ReactionMenu` and `TextMenu` are no longer separate classes. `TextMenu` has been merged into `ReactionMenu`. You can use a text menu by doing the following
* `ReactionMenu(..., menu_type=ReactionMenu.TypeText)`
* *changed* The `Button` class has been renamed to `ReactionButton` to avoid compatibility issues with pycord 2.0
* *changed* `ButtonType` has been moved and setting the `linked_to` of a button is now set through the button itself
* Old: `Button(..., linked_to=ButtonType.NEXT_PAGE)`
* New: `ReactionButton(..., linked_to=ReactionButton.Type.NEXT_PAGE)`
* *changed* Method `ButtonType.caller_details()` has been renamed and moved to `ReactionButton`
* Old: `Button(..., details=ButtonType.caller_details())`
* New: `ReactionButton(..., details=ReactionButton.set_caller_details())`
* *removed* `ReactionMenu` parameters `back_button` and `next_button` have been removed. Use `ReactionMenu.add_button()` instead
* *removed* `ReactionMenu` parameter `config` has been removed/replaced with parameter `menu_type`
* *removed* Attribute `ReactionMenu.run_time`
* *removed* Attribute `ReactionMenu.default_next_button`
* *removed* Attribute `ReactionMenu.default_back_button`
* *removed* Attribute `ReactionMenu.all_buttons`. Use `ReactionMenu.buttons` instead
* *removed* Attribute `ReactionMenu.next_buttons`
* *removed* Attribute `ReactionMenu.back_buttons`
* *removed* Attribute `ReactionMenu.first_page_buttons`
* *removed* Attribute `ReactionMenu.last_page_buttons`
* *removed* Attribute `ReactionMenu.caller_buttons`
* *removed* Attribute `ReactionMenu.end_session_buttons`
* *removed* Attribute `ReactionMenu.go_to_page_buttons`
* *removed* `ReactionMenu.help_appear_order()`
* *removed* `ReactionMenu.change_appear_order()`
* *removed* Exception `SingleUseOnly`
* *changed* `ReactionMenu.clear_all_buttons()` to `ReactionMenu.remove_all_buttons()`
* *changed* `ReactionMenu.all_can_react` is now `ReactionMenu.all_can_click`
* *changed* Parameter `turn_every` in methods `ReactionMenu.set_as_auto_paginator()` and `ReactionMenu.update_turn_every()` are now keyword only arguments
* *changed* A lot of `ReactionMenu` attributes are no longer property getters/setters. They are now normal attributes with type hints
* *changed* The parameter for method `.get_menu_from_message()` is now positional only
* *changed* The following items now return only a `list` instead of `list` or `None` (if no sessions/buttons were found). If no sessions/buttons were found, an empty list is returned
* `.get_all_dm_sessions()`
* `.get_all_sessions()`
* `.get_session()`
* `.buttons_most_clicked`
* `.buttons`
Discords Buttons feature has been implemented using pycord. Two classes have been renamed/removed to support `discord.ui.View`
* *removed* `ButtonsMenu` class
* This has been replaced with `ViewMenu`
* *changed* The `ViewMenu.update()` method arguments are now keyword only
* *removed* `ComponentsButton` class
* This has been replaced with `ViewButton`
* *changed* All `ComponentsButton` factory methods. They've been renamed and are now apart of the `ViewButton` class
* Old
* `ComponentsButton.basic_back()`
* `ComponentsButton.basic_next()`
* New
* `ViewButton.back()`
* `ViewButton.next()`
* *changed* The emojis attached to each menu have been moved to their own class
* Old
* `ReactionMenu.EMOJI_BACK_BUTTON`
* `ReactionMenu.EMOJI_NEXT_BUTTON`
* New
* `ReactionMenu.Emojis.BACK_BUTTON`
* `ReactionMenu.Emojis.NEXT_BUTTON`
* *changed* `ReactionButton` names are now case sensitive if you were to `get` a button
* *changed* Getting a button with `ReactionMenu` has been replaced by a new method
* Old: `ReactionMenu.get_button_by_name(name: str)`
* New: `ReactionMenu.get_button(identity: Union[str, int], *, search_by='name')`. This method now returns only a `list` of buttons instead of either a single button or multiple buttons
* *changed* Setting the `ID_CALLER` information is different now. See the documentation for proper implementation
New Features
ReactionMenu & ViewMenu
* Added the ability to paginate through multiple pages in a single button press
* `ReactionButton(..., skip=ReactionButton.Skip(...))`
* Added the ability for relay functions to relay only the buttons of your choice instead of relaying all buttons
* `ReactionMenu.set_relay(..., only: List[ReactionButton]=None)`
* Added the ability to remove the call to a timeout method if you have one set
* `ReactionMenu.remove_on_timeout()`
* Added the ability to add multiple pages/buttons to the menu at once
* `ReactionMenu.add_pages(pages: Sequence[Union[discord.Embed, str]])`
* `ReactionMenu.add_buttons(buttons: Sequence[ReactionButton])`
* Added parameter `reply` to the `start` method. Enables the menu message to reply to the message that triggered it
* `ReactionMenu.start(..., reply: bool=False)`
* Added property `ReactionMenu.last_viewed`. Returns the last page that was seen by the user in the pagination process
* Added the ability to use a message ID/message object to add the specified message's content into a menu
* `ReactionMenu.add_from_ids(messageable: discord.abc.Messageable, message_ids: Sequence[int])`
* `ReactionMenu.add_from_messages(messages: Sequence[discord.Message])`
* Added the ability to separate embeds and strings
* `Reactionmenu.separate(values: Sequence[Any])`
* Added the ability to test whether all items in a sequence are of type `discord.Embed` or `str`
* `ReactionMenu.all_embeds(values: Sequence[Any])`
* `ReactionMenu.all_strings(values: Sequence[Any])`
* Added the ability to filter all active `ReactionMenu`'s and `ViewMenu`'s into two separate lists
* `ReactionMenu.split_sessions()`
* Added the ability to stop all `ReactionMenu`'s or `ViewMenu`'s
* `ReactionMenu.stop_only(session_type: str)`
* Added a method that allows you to set the page director style from a set of pre-defined styles
* `ReactionMenu.set_page_director_style(style_id: int)`
ReactionMenu Only
* Added factory methods for `ReactionButton`
* `ReactionButton.back()`
* `ReactionButton.next()`
* `ReactionButton.go_to_first_page()`
* `ReactionButton.go_to_last_page()`
* `ReactionButton.go_to_page()`
* `ReactionButton.end_session()`
* `ReactionButton.all()`
* `ReactionButton.skip(emoji: str, action: str, amount: int)`
* Added attribute `ReactionMenu.remove_extra_emojis`
ViewMenu Only
* Added factory methods for `ViewButton`
* `ViewButton.link(label: str, url: str)`
* `ViewButton.skip(label: str, action: str, amount: int)`
* Added methods to set all button styles
* `ViewMenu.randomize_button_styles()`
* `ViewMenu.set_button_styles(style: discord.ButtonStyle)`
* `ViewButton` now has a `name` attribute
* Added the ability for method `ViewMenu.get_button()` to get buttons by name
* `ViewMenu.get_button(..., search_by='name')`
Miscellaneous
* `ReactionButton` & `ViewButton` attribute `last_clicked` now supports an aware `datetime.datetime`
* The `send_to` parameter in method `.start()` now supports threads
* Method `.set_on_timeout()` now raises `IncorrectType` instead of `MenuException` if the parameter given was not callable
* Method `ReactionMenu.add_button()` now also raises `MenuSettingsMismatch`
* Method `ReactionMenu.refresh_auto_pagination_data()` now raises an error if no data was given in it's parameter
* Added new exceptions. `ViewMenuException` and `MenuException`. All library exceptions can be caught using `MenuException`
* Added function `reactionmenu.version_info()`. Used if submitting a GitHub issue
* Added dunder methods for the library itself and a class
* `__all__` for `reactionmenu` (`from reactionmenu import *`)
* `__repr__` for `ViewButton.Followup`
</details>
Note
For `v1.0.9 - v2.0.4`, the following displays what each acronym represents
* `BM` = `ButtonsMenu`
* `RM` = `ReactionMenu`
* `TM` = `TextMenu`