Skip to content

Releases: GrapesJS/grapesjs

v0.21.6

17 Sep 11:44
Compare
Choose a tag to compare

Added

  • Added unminified module file to the package (dist/grapes.mjs)
  • Support for @container CSS at-rule #5372

Fixed

Full Changelog: v0.21.5...v0.21.6

v0.21.5

30 Aug 16:46
Compare
Choose a tag to compare

Added

Fixed

  • Fixed undo/redo when using component.setClass #5319
  • Prevent default event with undo/redo shortcuts #5325
  • Hide badge if component.badgable is false #5340
  • Fixed canvas scroll on component select from layers #5342

Full Changelog: v0.21.4...v0.21.5

v0.21.4

07 Aug 12:41
Compare
Choose a tag to compare

Added

  • Added config.canvas.allowExternalDrop option #5242
  • Support multiple style values for the same property #4434

Fixed

  • Prevent exporting textnodes with null #5229
  • Ignore current state and device for component related styles #5213
  • Fix video component import #2357
  • Up panels config TS #5269
  • Clean inline styles from comments #1577
  • Fixes bug with broken autoplay from video component (issue #5268); by @SLain123 in #5270

Full Changelog: v0.21.3...v0.21.4

v0.21.3

04 Jul 12:52
Compare
Choose a tag to compare

Docs

Added

  • Added addStyles option to editor.Css.setRule #5173

Changed

Fixed

  • Fixed usePlugin is not a function #5167
  • Fixed PropertyStack in bundled dts file #5154
  • Handle properly Component model defaults as functions #5199
  • Fixed broken link in README.md by @pfaffmann in #5188

Full Changelog: v0.21.2...v0.21.3

v0.21.2

31 May 12:18
Compare
Choose a tag to compare

Docs

Added

  • Added experimental disableTextInnerChilds option to Components module configuration.
    With this option, you're able to decide which inner component inside text should be disabled (eg. no select, no hover, no layer visibility) once edited.
    grapesjs.init({
      // ...
      domComponents: {
        // disable all inner childs
        disableTextInnerChilds: true,
        // disable all except link components
        disableTextInnerChilds: (child) => !child.is('link'),
      }
    })
  • Added usePlugin for a better TS support with plugins
  • Added Component.forEachChild method.
  • Added more TS exports and fixed Editor#setZoom type by @PaulRill00 in #5106

Changed

  • Improve TS for Components.addType
  • Updated German locale by @c9a2334 in #5114
  • Trigger component:styleUpdate on component style changes #4897

Fixed

  • Fixed addStyle(string, string) #5105
  • Take into account scroll data on drop in absolute mode
  • Fixed element jumping when resizing on zoomed frame #5103
  • Fixed TS autocomplete for editor events
  • Fix StyleManager.addProperty TS #5135

Removed

  • Removed unused fonts folder

New Contributors

Full Changelog: v0.21.1...v0.21.2

v0.21.1

03 Apr 11:00
Compare
Choose a tag to compare

⚠️ POSSIBLY BREAKING CHANGE

What's Changed

The biggest change we introduce with this release is the complete rewrite of modules to Typescript. This deprecates the old ./index.d.ts (manually updated) in favor of ./dist/index.d.ts (generated from the source).
So there are no real changes to the core API itself if not the new TS declaration file which includes type/interfaces changes in order to bring more naming consistency with the code.
This is how you might have used the import of types in the previous version:

import type grapesjs from 'grapesjs';

// plugin
const plugin: grapesjs.Plugin = function (editor: grapesjs.Editor, opt: ...) {...};

Now you can get types directly without specifying the grapesjs namespace (which is the most common way to import types):

import type { Editor, Plugin } from 'grapesjs';

// plugin
const plugin: Plugin = function (editor: Editor, opt: ...) {...};

Added

  • Added new noCustom option to Component.getName() in order to skip custom name assigned to the component.
  • Added rename method to SelectorManager
  • Added fetchOptions to AssetManager configs
  • Added options to ExportTemplate command

Fixed

Other

New Contributors

Full Changelog: v0.20.4...v0.21.1

v0.20.4

02 Feb 12:37
Compare
Choose a tag to compare

What's Changed

New Contributors

Full Changelog: v0.20.3...v0.20.4

v0.20.3

02 Jan 14:27
Compare
Choose a tag to compare

Fixed

  • Fix D&D in Dragger class #4792
  • Fix block events inconsistency #4791
  • Fix trait init value #4803

Full Changelog: v0.20.2...v0.20.3

v0.20.2

16 Dec 08:48
Compare
Choose a tag to compare

Changed

  • Update ComponentTextNode escape (don't escape ", ', ``` in node content)
  • Remove _undoexc from the Component JSON #4763
  • Migrate Asset Manager to TS #4604
  • Update Blocks TS #4685
  • Typings: Added editor parameter to onStore by @JamieStivala in #4605
  • Update TS: ButtonOptions by @stljeff1 in #4615
  • Some typescript updates by @froodian in #4678
  • Add plugin "Ui Suggest Classes" in the readme by @lexoyo in #4746
  • Minor typo by @agreif #4767

Fixed

  • Update icons box-sizing in Layers #4608
  • Fix color picker update on component change #4691
  • Update transform style property for i18n labels #4698
  • Fix CSS rule creation with at-rule different from media #4727
  • Avoid children selection of already selected components #4607
  • Fix style manager with rules containing !important #4719
  • Fix editable text cursor on touch devices #4422
  • Fix for stylePrefix config by @JonathanRiche #4753
  • Fix trait update with defined classes in attributes #4759
  • Add missing ccid in component TS definition by @Singwai #4696
  • Fixed page.select/remove function signature in Type Definitions by @stljeff1 #4628

Full Changelog: v0.20.1...v0.20.2

v0.20.1

15 Sep 09:35
Compare
Choose a tag to compare

⚠️ POSSIBLY BREAKING CHANGE

If for any reason you're still using the legacy API for registering your custom components you have to switch to the documented one.
Legacy API (which uses extended components via typeModelOrView.extend):

Components.addType('component-id', {
 model: defaultModel.extend({
   defaults: {
        ...defaultModel.prototype.defaults,
       someProp: '...',
       // ...
   }
 }),
// same for the view
});

Current API:

Components.addType('component-id', {
 model: {
   defaults: {
       someProp: '...',
       // ...
   }
 },
// same for the view
});

Added

Changed

  • Update iframe size on device update
  • Use mousePosFetcher also on start in Resizer #4580

Fixed

  • Support textable for extended Text components #4440
  • Fixed headless mode with images and videos #4473 #4474
  • Fixed iframe component view #4480
  • Avoid inserting default line breaks in RTE with insertOrderedList/insertUnorderedList commands #4449
  • Update the iframe size on page select #4489
  • Ensure to always update the layer name #4544
  • Correct type traits to support a list of string and object #4536
  • Honor the config.optsHtml option in HTMLGenerator
  • Update Components.resetFromString to avoid removing cloned elements during RTE editing (CLOSE #4559)
  • Fixed "TypeError: this.parseStyle is not a function" when setStyles is called internally @collins-lagat #4520
  • Fixed mobile first sort on CSS rules view @iagormoraes #4521
  • Fixed broken link in Selector Manager Config @zerexei #4504

Full Changelog: v0.19.5...v0.20.1