* Add custom item
* Remove customcontent parameter from popover
* Tests
* Cleanup
* Cleanup
* Lint
* Cleanup
* Rename custom to html, add enum with item types
* Fix tests
* Support hint
* Rename hint content to hint
* Align hint left
* Move types and exports
* Update changelog
* Cleanup
* Add todos
* Change the way hint is disabled for mobile
* Get rid of buildItems override
* Update comment
* fix caret loosing after caret
* Refactor convert method to return Promise in Blocks API
* changelog upd
* Fix missing semicolon in blocks.cy.ts and BlockTunes.cy.ts
* add test for inline toolbar conversion
* Fix missing semicolon in InlineToolbar.cy.ts
* add test for toolbox shortcut
* api caret.setToBlock now can accept block api or index or id
* eslint fix
* Refactor test descriptions in caret.cy.ts
* rm tsconfig change
* lint
* lint
* Update CHANGELOG.md
* Move popover types to separate file
* tmp
* open top
* Fix bug with keyboard navigation
* Fix bug with scroll
* Fix mobile
* Add popover header class
* Display nested items on mobile
* Refactor history
* Fix positioning on desktop
* Fix tests
* Fix child popover indent left
* Fix ts errors in popover files
* Move files
* Rename cn to bem
* Clarify comments and rename method
* Refactor popover css classes
* Rename cls to css
* Split popover desktop and mobile classes
* Add ability to open popover to the left if not enough space to open to the right
* Add nested popover test
* Add popover test for mobile screens
* Fix tests
* Add union type for both popovers
* Add global window resize event
* Multiple fixes
* Move nodes initialization to constructor
* Rename handleShowingNestedItems to showNestedItems
* Replace WindowResize with EditorMobileLayoutToggled
* New doze of fixes
* Review fixes
* Fixes
* Fixes
* Make each nested popover decide itself if it should open top
* Update changelog
* Update changelog
* Update changelog
* feature: possibilities to merge blocks of different types
* fix: remove scope change
* feat: use convert config instead of defined property
* chore:: use built-in function for type check
* fix: remove console.log
* chore: remove styling added by mistakes
* test: add testing for different blocks types merging
* fix: remove unused import
* fix: remove type argument
* fix: use existing functions for data export
* chore: update changelog
* fix: re put await
* fix: remove unnecessary check
* fix: typo in test name
* fix: re-add condition for merge
* test: add caret position test
* fix caret issues, add sanitize
* make if-else statement more clear
* upgrade cypress
* Update cypress.yml
* upd cypress to 13
* make sanitize test simpler
* patch rc version
---------
Co-authored-by: GuillaumeOnepilot <guillaume@onepilot.co>
Co-authored-by: Guillaume Leon <97881811+GuillaumeOnepilot@users.noreply.github.com>
* fix isMutationBelongsToElement function: make it return true if the whole text node is deleted inside of some descendant of the passed element
* isMutationBelongsToElement function shouldn't return true if some of the ancestors of the passed element were added or deleted, only if the element itself
* add test case verifying that 'onChange' is fired when the whole text inside some nested descendant of the block is removed
* replace introduced dependency with ToolMock
* add comment explaining isMutationBelongsToElement behaviour in case of adding/removing the passed element itself
* fix formatting
* added some more explanation
* added record to the changelog
---------
Co-authored-by: Peter Savchenko <specc.dev@gmail.com>
* feat(conversion): allow to convert block using shortcut
* display shortcuts in conversion toolbar
* tests for the blocks.convert
* tests for the toolbox shortcuts
* Update CHANGELOG.md
* Update toolbox.cy.ts
* rm unused imports
* firefox test fixed
* test errors via to.throw
* Make label an alias for title in tunes item
* Cleanup
* Update version and changelog
* Update changelog
* Move resolveAlias to utils
* Add fallback for popover item title
* Lint
* Lint
* Add fallback icon and title to popover
* Update version
* Lint
* Fix changelog
* Fallback to empty string
This reverts commit ae9d643557.
* Fix changelog again
* Cleanup
* Add deprecated
* Add toggle group support
* Update version and changelog
* Fix
* Simplify
* Update test/cypress/tests/utils/popover.spec.ts
Co-authored-by: Peter Savchenko <specc.dev@gmail.com>
Co-authored-by: Peter Savchenko <specc.dev@gmail.com>
* chore(icons): migrating to the coded icon pack
* conversion toolbar
* inline toolbar, part 1
* inline-link tool has the new icons
* added a test for creating a link by Enter keydown in link input
* rm last icons, svg sprite, loaders
* rollback .ce-settings styles
* Update CHANGELOG.md
* Update settings.json
* Default tunes to popover
* Add the rest of default tunes
* Add popover
* Cleanup
* Rename custom content
* Cleanup
* Add ability to open block settings upwards
* Fix tests
* Cleanup default tunes
* Rename and cleanup
* Add ability to display rendered custom tunes
* cleanup
* Rename
* Add flag to close tunes popover
* Cleanup
* i18n
* Cleanup
* Fix build and tests
* Fix for iframe
* Add comments
* Display active item, move closeOnActivate to popover
* Add confirmation support to popover
* Handle boolean value in confirmation param
* Clarify flippable logic in popover
* Comments
* Pass editor element as a param of popover constructor
* Fix readability
* Tests
* Fix flipper for confirmation element
* Update confirmation config structure
* Rename onClick to onActivate
* Fix tests and build
* Make confirmation props optional
* Simplify processing tunes
* Renamings
* Fix text block tunes
* Docs
* Update event type
* Move enabling confirmation state to separate method
* move popover types
* Unhardcode color
* Support toggling
* Add support of disabled items
* Fix tab in empty block leading to selecting second item in popover
* Remove margins for styles api settings button class
* Fix arrow navigation between blocks after opening block tunes
* Cleaup in default tunes code
* Fix chaining confirmations
* Colors
* Types
* Change the way flippable elements of popover custom area are set
* Remove borders around popover icons
* Fix untabbable inline toolbar
* Fix locked scroll after closing tunes popover on mobile
* Cleanup
* Set max popover width
* Make popover icon's border outside
* Fix tab issue
* Fix focus/hover issue
* Reformat
* Cleanup
* Fix opening block tunes via keyboard
* Add disableSpecialHoverAndFocusBehavior
* Add deprecated comment
* Cleanup
* Fix popover active state
* Fix checklist deletion with confirmation
* Fix checklist deletion 2
* Fix popover focus
* Fix popover items being impossible to flip after searching
* Fix popover item highlighting issue
* Update flipper.spec.ts
* Fixes after review
* Add Tunes Api tests
* Fix multiple popover entries configured by one tune
* Add tool's renderSettings() tests
* Add popover confirmation state test
* Fix popover width on mobile
* Add popover tests
* Add changelog and update version
* Update changelog
* Fix block tunes being unable to open after tune activation
Co-authored-by: Peter Savchenko <specc.dev@gmail.com>
* Fix scrolling issue on mobile when locking scroll on body
* Simplify
* Fix typo
* Add popup example
* Update changelog
* update popup example page
* Use hard scroll lock only for ios
* Update version in changelog
* Remove unused css class name
Co-authored-by: Peter Savchenko <specc.dev@gmail.com>
* the popover component, vertical toolbox
* toolbox position improved
* popover width improved
* always show the plus button
* search field added
* search input in popover
* trying to create mobile toolbox
* feat(toolbox): popover adapted for mobile devices (#2004)
* FIx mobile popover fixed positioning
* Add mobile popover overlay
* Hide mobile popover on scroll
* Alter toolbox buttons hover
* Fix closing popover on overlay click
* Tests fix
* Fix onchange test
* restore focus after toolbox closing by ESC
* don't move toolbar by block-hover on mobile
Resolves#1972
* popover mobile styles improved
* Cleanup
* Remove scroll event listener
* Lock scroll on mobile
* don't show shortcuts in mobile popover
* Change data attr name
* Remove unused styles
* Remove unused listeners
* disable hover on mobile popover
* Scroll fix
* Lint
* Revert "Scroll fix"
This reverts commit 82deae543e.
* Return back background color for active state of toolbox buttons
Co-authored-by: Peter Savchenko <specc.dev@gmail.com>
* Vertical toolbox fixes (#2017)
* Replace visibility property with display for hiding popover
* Disable arrow right and left keys for popover
* Revert "Replace visibility property with display for hiding popover"
This reverts commit af521cf6f2.
* Hide popover via setting max-height to 0 to fix animation in safari
* Remove redundant condition
* Extend element interface to avoid ts errors
* Do not subscribe to block hovered if mobile
* Add unsubscribing from overlay click event
* Rename isMobile to isMobileScreen
* Cleanup
* fix: popover opening direction (#2022)
* Change popover opening direction based on available space below it
* Update check
* Use cacheable decorator
* Update src/components/flipper.ts
Co-authored-by: George Berezhnoy <gohabereg@users.noreply.github.com>
* Fixes
* Fix test
* Clear search on popover hide
* Fix popover width
* Fix for tests
* Update todos
* Linter fixes
* rm todo about beforeInsert
because I have no idea what does it mean
* i18n for search labels done
* rm methods for hiding/showing of +
* some code style update
* Update CHANGELOG.md
* make the list items a little bit compact
* fix z-index issue caused by block-appearing animation
also, improve popover padding for two reasons:
- make the popover more consistent with the Table tool popover (in future, it can be done with the same api method)
- make popover looks better
Co-authored-by: Tanya Fomina <fomina.tatianaaa@yandex.ru>
Co-authored-by: George Berezhnoy <gohabereg@users.noreply.github.com>
* chore(block-tune-toggler): toggler moved to the left (draft)
* toolbox ui updated
* fixd caret jumpling, improved some styles
* toolbar moving by block-hover
- UI module triggers 'block-hovered' event
- Toolbar uses 'block-hovered' for appearing
- `currentBlock` setter added to the BlockManager
- (reactangle-selection): the throttling added to the mousemove and scroll handlers
- `getBlockIndex` method added to the Api
- (api-blocks): toolbar moving logic removed from `blocks.move()` and `blocks.swap()` methods. Instead, MoveUp and MoveDown tunes uses Toolbar API
* the dark-theme to the example-dev.html
* positioning improved
* fix(rectangle-selection): first click after RS does not clears selection state
* toolbox position fixed
* the toolbox module became a standalone class
- Toolbox became a standalone class from the editor module. It can be accessed only via the owner (the Toolbar module)
- (api.blocks) the insert() method now has the `replace` param. Also, it returns inserted Block API now.
* new(api.listeners): `on()` now returns the listener id. The new `offById()` method added
* fix bug with Tab pressing on hovered but not focused block
* mobile version improved
* upd example dev
* small updaets
* add nested-list
* linting
* (api.toolbar): `toggleBlockSettings` now fires toggling event with the same state
* EventDispatcher used instead of callbacks for the Toolbox
* UIApi added
* fix ci
* git submodules removed from the ci flow
* add paragraph submodule to the ci flow
* Update CHANGELOG.md
* Update package.json
* use ubuntu-latest for chrome ci
* refactoring(modules): sanitizer module is util now
* Remove Sanitizer from Editor modules signature
* Bind context to config composition method
* Make sanitizer singletone
* Make sanitizer a module instead of class
* Fix
* Add test cases for default values
* Fix inline tools default value
* Move inline tools and block tunes to BlockTool instance
* Fixes after review & some test cases for sanitisation
* Upgrade test case
Co-authored-by: Peter Savchenko <specc.dev@gmail.com>