Skip to content

Releases: 11ty/is-land

is-land v5.0.0-beta.5

24 Mar 20:05
Compare
Choose a tag to compare
is-land v5.0.0-beta.5 Pre-release
Pre-release
  • Fixes bug with node restoration order when renaming (should be inner -> outer for renames, outer -> inner for original names) causing multiple connectedCallbacks fired on custom elements.
  • Breaking: changes Island.addFallback callback function parameters (note: most folks aren’t using this). Now: (node, prefix) and returns a function to be executed when the island is ready.

is-land v5.0.0-beta.4

18 Feb 21:52
Compare
Choose a tag to compare
is-land v5.0.0-beta.4 Pre-release
Pre-release
  • Better patterns for static Island.define() and customElements.define for using a different tag name (rather than <is-land>). Island.define(tagName) API is removed. #32

Full Changelog: v5.0.0-beta.1...v5.0.0-beta.4

is-land v5.0.0-beta.3

14 Feb 21:51
Compare
Choose a tag to compare
is-land v5.0.0-beta.3 Pre-release
Pre-release

v5.0.0 Milestone: https://github.com/11ty/is-land/milestone/2?closed=1
Full Changelog: v5.0.0-beta.2...v5.0.0-beta.3

is-land v4.0.1

14 Feb 21:59
Compare
Choose a tag to compare
  • This release has no production code change impact — it only corrects extra unnecessary build artifacts that were included with the published package (1.28 MB -> 20 KB)
  • Adds npm package publishing provenance

Full Changelog: v4.0.0...v4.0.1

is-land v5.0.0-beta.2

13 Feb 21:06
Compare
Choose a tag to compare
is-land v5.0.0-beta.2 Pre-release
Pre-release
  • Brotli compressed file size stats: v4.0.0 at 1.61 kB to v5.0.0 at 1.79 kB
  • Very large performance gains when using on:idle, on:media, or on:load conditions.
  • Fixes bugs with complex Nested is-lands
  • Use passive event listeners with on:interaction to improve scrolling performance (fixes Lighthouse warning) #20
  • Breaking Change affects <is-land autoinit>: Removes autoinit attribute and the is-land-autoinit.js file. Switch to use framework initialization types (via Island.addInitType()) instead.
  • Adds import attribute support to core plugin (was previously in is-land-autoinit.js)
  • Register your own framework initialization types using Island.addInitType() and islands must match the appropriate name in the <is-land type> attribute — examples provided for alpine, petite-vue (see below), vue, vue-ssr, preact, preact-ssr, svelte, or svelte-ssr (Web Components and lit are supported out of the box).
    • Notably when using type and import (e.g. <is-land type import>) import attribute targets are not loaded automatically for you:
      • <is-land import="">: import() is performed for you
      • <is-land import="" type="">: you’re responsible for import() in your initialization function.
  • Adds Island.addFallback API to improve control of fallback content. Example provided for Alpine.js islands (Demo) (without separate <template> markup) for easier-to-control progressively-enhanced fallback content.
  • Support renaming on: attribute prefix #16
  • Adds dist/is-land.min.js minimized JS to published code.
  • Clarify framework support instructions by @dave-kennedy in #28
  • Adding SolidJS web component examples #3 by @jake-danton in #24
  • Swaps to use Import Maps on Lit, Svelte, and Solid demos to skip bundling on libraries that use bare specifiers on imports.
  • Adds GitHub to npm release provenance

Sample Island.addInitType usage for petite-vue:

// This code only needs to be added once globally
Island.addInitType("petite-vue", async (node) => {
	// Load the library, mount the target node
	const { createApp } = await import("https://unpkg.com/petite-vue@0.4.1/dist/petite-vue.es.js");
	createApp().mount(node);
});

New Contributors:

Milestone: https://github.com/11ty/is-land/milestone/2?closed=1
Full Changelog: v4.0.0...v5.0.0-beta.2

is-land v5.0.0-beta.1

14 Feb 23:01
Compare
Choose a tag to compare
is-land v5.0.0-beta.1 Pre-release
Pre-release

Skip this one! Both v5.0.0-beta.2 and v5.0.0-beta.3 are now available.

is-land v4.0.0

07 Mar 19:58
Compare
Choose a tag to compare
  • Reduces compressed file size by 7% by moving the server framework autoinit code into a separate file to streamline the core file for Web Components use.
    • Breaking change: If you use the petite-vue, vue, svelte, svelte-ssr, or preact examples, make sure to include or import is-land-autoinit.js in addition to the core is-land.js file.
  • Fixes el.wait is not a function bug with nested islands and fallback web components.

Full Changelog: v3.0.2...v4.0.0

is-land v3.0.2

01 Mar 20:17
Compare
Choose a tag to compare
  • Support new shadowrootmode="open" attribute for Declarative Shadow DOM moving forward. Previous method shadowroot="open" will continue to work moving forward. Demo of Declarative Shadow DOM with <is-land>
  • Adds new WebC component. Use <is-land webc:import="npm:@11ty/is-land"> to import the component from npm. Read more about webc:import.
  • Same Brotli compressed file size as the previous release: 1.73 kB

Full Changelog: v3.0.1...v3.0.2

is-land v3.0.1

27 Jan 21:25
Compare
Choose a tag to compare
  • Adds more descriptive export for imports using JavaScript API
    • Without bundler: import { Island } from "./is-land.js";
    • With bunder: import { Island } from "@11ty/is-land";
  • Previous method still works fine:
    • Without bundler: import "./is-land.js";
    • With bunder: import "@11ty/is-land";

Full Changelog: v3.0.0...v3.0.1

is-land v3.0.0

14 Nov 17:37
Compare
Choose a tag to compare
  • Adds support for Declarative Shadow DOM <template shadowroot="open"> #13 Thank you @e111077!

    • Example demo
    • Learn more at web.dev: Declarative Shadow DOM
    • Notably, this does include a tiny (4 lines of code) polyfill for browsers that do not support Declarative Shadow DOM (Firefox and Safari at time of writing).
  • Support community standard defer-hydration attribute on custom elements to skip custom element rename step #14 Thank you @dgp1130!

    • defer-hydration signals to component code that they should skip initialization. They must implement a attributeChangedCallback to trigger initialization when defer-hydration is removed by is-land (when the island hydrates). You can see a component sample using defer-hydration.
  • <is-land> without loading conditions (on: attributes) skip custom element rename step #15

  • Full milestone: https://github.com/11ty/is-land/milestone/1?closed=1

  • Full changelog: v2.0.3...v3.0.0