* Feat - Allow to bulk toggle all third-party extensions from popup manager
* Fix - Prevent reloading the page if the final state is the same
* Fix - Handle bulk toggle with no extensions installed
* Update - Delete leftover debug logs
* Fix - Simplify extension toggle logic and improve readability
* Update - State that bulk toggle only affects external extensions
* Feat - Allow to restore bulk toggled extensions
* Update - Move bulk toggle to the third-party extensions header
* Uncenter section headers
---------
Co-authored-by: Cohee <18619528+Cohee1207@users.noreply.github.com>
* Add {{hasExtension}} macro and refactor extension lookup logic
- Move findExtension() from extensions-slashcommands.js to extensions.js and export it
- Update findExtension() to return object with name and enabled properties instead of just name string
- Add {{hasExtension}} macro to check if an extension is enabled
- Update /extension-state and /extension-exists commands to use refactored findExtension()
- Remove duplicate findExtension() implementation from extensions-slashcommands.js
* Refactor extension action callbacks to use extension object instead of separate name and enabled properties
* fix eslint
* feat: preset regex
* refactor: unify `saveScriptsByType`
* fix: default branch for `saveScriptsByType`
* refactor: resolve some reviews
* fix: lint
* refactor: getPresetName -> getCurrentPresetName
* refactor: unify regex allow operation
* feat: notify whether to reload current chat when preset is changed
* refacotr: set timeout for reload current chat notification
* fix: _ -> lodash
* i18n
* Refactor API ID access
* refactor: replace UNKNOWN type with a separate constant
* refactor: consolidate CSS rules for scoped and preset script blocks
* Extend toast timeout
* Fix bug with moving, refactor
* Refactor bulk toggle operations
* Use for..of for preset application
* refactor: enhance parameter documentation for scriptType in regex functions
* fix: await loadRegexScripts in event handlers
* fix: correct script type in saveScriptsByType for preset handling
* fix: add null checks for preset manager and API ID in regex functions
* feat: implement expandable regex script options in UI
* Always show edit/delete buttons
* Add title attribute to regex script name
* fix: correct class name for regex script display
* Remove extra paddings from script blocks
* fix: ensure preset scripts are only disallowed if currently allowed during rename
* fix: reload on bulk script toggle
* feat: add PRESET_RENAMED_BEFORE event type and emit it during preset renaming
* fix: always preserve preset extensions on rename
* Handle horde in getPresetManager
---------
Co-authored-by: ZoinkCN <zoinkcn@outlook.com>
Co-authored-by: StageDog <aksanajw845@gmail.com>
* add ability for exts to req other exts
* Get rid of toasts. Collect errors on load, display in manager
* Remove unused variable
* Only show missing modules/dependencies
* Prefer display names in validation messages
* Prefer internal name for console warn
---------
Co-authored-by: Cohee <18619528+Cohee1207@users.noreply.github.com>
* Add gallery folder and sort order controls
Closes#3601
* Refactor sort constants to use Object.freeze for immutability
* Add comment
* Remove excessive null propagation
* Update type hint for gallery.folders
* Use defaultSettings.sort as a fallback
* Throw in groups
* Handle rename/deletion events
* Merge init functions
* Fix multiple gallery file uplods
* Add min-height for gallery element
* Fix gallery endpoint not parsing body
* translatable toasts
* Pass folder path in request body
* Change restore pictogram
* Add title to gallery thumbnail images
* Allow optional folder parameter in image list endpoint and handle deprecated usage warning
* Add validation for folder parameter in image list endpoint
* Add border to gallery sort selection
* Remove override if default folder is set to input
* Use server-side path sanitation
* Sanitize gallery folder input before updating
---------
Co-authored-by: Wolfsblvt <wolfsblvt@gmail.com>
* Optimize visibility checks for burger and wand menus
* Optimize message actions visibility toggle
* Run drawer toggle in animation frame
* Replace jQuery slideToggle with a 3rd-party lib
* Refactor export button functionality to manage popup state with a boolean flag
* Do not close the pinned drawer on unpin
* Revert "Do not close the pinned drawer on unpin"
This reverts commit e3b34e9a586db853dd84809f4187d5b29cb9ac36.
* Refactor slideToggle options
* ease-in-out
* Don't skip frame on drawer toggle