* fix(blocks):Error occurred when calling renderFromHTML: Can't find a Block to remove.
* fix: resolve "Can't find a Block to remove" error in renderFromHTML
- Make renderFromHTML async and await BlockManager.clear() to prevent race condition
- Change removeBlock order: remove from array before destroy to prevent index invalidation
- Fix clear() method to copy blocks array before iteration to avoid modification during loop
Fixes issue where renderFromHTML would fail with "Can't find a Block to remove" error
due to concurrent block removal operations and array modification during iteration.
Resolves#2518
* Bug Fix For When / Overides external text
* Moved fix to blockEvents
* Moved fix to blockEvents
* Moved fix to blockEvents
* Refactored test to simulate behaviour
* Added fix to change log
* Refactored test to mimick exact behaviour of the bug
---------
Co-authored-by: Omotayo Obafemi <omotayo@testlio.com>
Co-authored-by: Peter <specc.dev@gmail.com>
* pass config to the conversionConfig.import method
- Now `convertStringToBlockData` method passes target tool config the import method
- Fixed types in convesion config file (somehow imprort could return function that returns string, but import should return method that would return ToolData) this caused just type error that never been reached because types were actually ignored
- Added test that checks, that import method actualy gets passed config
* update changelog
* eslint fix
* updated test description
* jsdoc improved
* typos in changelog
* fix: prevent inline toolbar from closing in nested instance of editor
* docs: updated changelog.md with fix description
* fix: fix import to use `type`
---------
Co-authored-by: Peter <specc.dev@gmail.com>
* Update `tunes` data when new `tunes` data is provided
AFAIK, when you update block using `editor.blocks.update` method, only `data` attribute is merged and updated. I believe `tunes` data should be updated if provided.
* commit
* edit parameter type, move test
* restore package-lock and yarn lock
* update in api docs
* make data optional
* edit changelog
---------
Co-authored-by: Thomas <zawlintun@robust.best>
Co-authored-by: Peter Savchenko <specc.dev@gmail.com>
* feat: Fix caret loss after Backspace at the start of block when previous block is not convertible
* fix create shadow caret
* fix: remove unnecessary blank line in blockEvents.ts
* fix: pass event object to slashPressed method in blockEvents.ts
* fix eslint
* 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>
* add custom Chai assertion "be.calledWithBatchedEvents" for testing onchange
* chore(api): blocks.update(id, data) method improved
- `blocks.update(id, data)` now can accept partial data object — it will update only passed properties, others will remain the same.
- `blocks.update(id, data)` now will trigger onChange with only `block-change` event.
- `blocks.update(id, data)` will return a promise with BlockAPI object of changed block.
* fix tests
* Update blocks.cy.ts
* 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