- fixed #198: connected/disconnected events for nested components
- more rigid / explicit RegExp to avoid glitches with self-closing tags
- improved
VOID_ELEMENTS
regular expression (aligned with the viperHTML one)
- fixed
no.js
patch when wrong count of args is passed
- added
no.js
file for environments without the ability to use modern JS or based on other languages such Dart.
- build runs on macOS too
- added umd.js file
- fixed weird SVG case (see #172)
- improved self-closing reliability recycling and sharing attributes RegExp
- updated
domdiff
library to the latest version - implemented self-closing tags (and after various tests)
- ensure attributes values are updated when different from previous one
- avoid the usage of the word
global
in the whole code
- fix scripts with actual content too.
- fix a bug with scripts that don't trigger network requests in both Firefox and Safari (see bug #152)
- created a
Wire
class to handle viadomdiff
multiple wired nodes. - brought back multi nodes per wire, a feature lost since v2.0
- simplified
Component
handling too, making it compatible again with multi wired content. - fixed some check to make IE9+ tests green again
- dropped the
engine
already. Too complex, no real benefits, refactored the whole internal logic to use domdiff instead. Deprecated hyperhtml-majinbuu and solved diffing "forever".
- the whole
hyperHTML.engine
has been refactored to use dom-splicer as an effort to make engine development easier
- the MutationObserver is installed only once and only if there are components that have on(dis)?connect handlers.
- using a new folders convention with
esm/index.js
as main module andcjs/index.js
as transformed artifact. This plays very well with bundlers when youimport {hyper} from 'hyperhtml/esm'
orconst {hyper} = require('hyperhtml/cjs');
- fast changes where prepending or appending same lists; now dropping upfront or removing at the end are part of the fast path too.
- created a simple default merge engine focused on performance
- remove majinbuu as core dependency, created hyperhtml-majinbuu project to swap it back via
hyperHTML.engine = require('hyperhtml-majinbuu')
or as ESM - reduced final bundle size down to 4.1K via brotli
Refactoring following ticket #140