Releases: 11ty/is-land
Releases · 11ty/is-land
Release list
is-land v5.0.1
No component code changes, this release is strictly npm publish hardening using OIDC/Trusted Publishers.
Full Changelog: v5.0.0...v5.0.1
is-land v5.0.0
- Breaking Change affects
<is-land autoinit>: Removesautoinitattribute and theis-land-autoinit.jsfile. Switch to use framework initialization types (viaIsland.addInitType()) instead (see sample code below). - Broadens browser support (thank you @vanarok in #21) and adds (cut the mustard-style) feature test:
- v5.0.0 supports Chrome 71, Firefox 65, Safari 12.1
- v4.0.0 supports Chrome 88, Firefox 78, Safari 14
- Brotli compressed file size stats: v4.0.0 at
1.61 kBto v5.0.0 at1.83 kB - Very large performance gains when using
on:idle,on:media, oron:loadconditions. - 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. Complex Nested is-lands demo
- Use passive event listeners with
on:interactionto improve scrolling performance (fixes Lighthouse warning) #20 - Adds
importattribute support to core plugin (was previously inis-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 foralpine,petite-vue(see below),vue,vue-ssr,preact,preact-ssr,svelte, orsvelte-ssr(Web Components andlitare supported out of the box).- Notably when using
typeandimport(e.g.<is-land type import>)importattribute targets are not loaded automatically for you:<is-land import="">:import()is performed for you<is-land import="" type="">: you’re responsible forimport()in your initialization function.
- Notably when using
- Adds
Island.addFallbackAPI 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 - Fixes #1 allowing folks to rename the custom element tag name. Demo
- Changes manual definition use case to use
?nodefinequery param per https://www.zachleat.com/web/nodefine/ - Adds
dist/is-land.min.jsminimized 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
- Fix README link to Markdown demo by @funwhilelost in #33
- Better patterns for static
Island.define()andcustomElements.definefor using a different tag name (rather than<is-land>).Island.define(tagName)API is removed. #32
New Island.addInitType API
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);
});More examples available.
New Contributors:
Milestone: https://github.com/11ty/is-land/milestone/2?closed=1
Full Changelog: v4.0.1...v5.0.0
is-land v5.0.0-beta.5
- 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.addFallbackcallback 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
- Better patterns for static
Island.define()andcustomElements.definefor 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
- Broadens browser support (thank you @vanarok in #21) and adds (cut the mustard-style) feature test:
- v5.0.0 supports Chrome 71, Firefox 65, Safari 12.1 (slightly modified from v5.0.0-beta.2)
- v4.0.0 supports Chrome 88, Firefox 78, Safari 14
- Fixes #1 allowing folks to rename the custom element tag name.
- Changes manual definition use case to use
?nodefinequery param per https://www.zachleat.com/web/nodefine/ - Simplified demo at https://github.com/11ty/is-land/blob/v5.0.0-beta.3/demo/demo-rename.html
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
- 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
- Brotli compressed file size stats: v4.0.0 at
1.61 kBto v5.0.0 at1.79 kB - Very large performance gains when using
on:idle,on:media, oron:loadconditions. - Fixes bugs with complex Nested is-lands
- Use passive event listeners with
on:interactionto improve scrolling performance (fixes Lighthouse warning) #20 - Breaking Change affects
<is-land autoinit>: Removesautoinitattribute and theis-land-autoinit.jsfile. Switch to use framework initialization types (viaIsland.addInitType()) instead. - Adds
importattribute support to core plugin (was previously inis-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 foralpine,petite-vue(see below),vue,vue-ssr,preact,preact-ssr,svelte, orsvelte-ssr(Web Components andlitare supported out of the box).- Notably when using
typeandimport(e.g.<is-land type import>)importattribute targets are not loaded automatically for you:<is-land import="">:import()is performed for you<is-land import="" type="">: you’re responsible forimport()in your initialization function.
- Notably when using
- Adds
Island.addFallbackAPI 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.jsminimized 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
is-land v4.0.0
- Reduces compressed file size by 7% by moving the server framework
autoinitcode 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, orpreactexamples, make sure to include or importis-land-autoinit.jsin addition to the coreis-land.jsfile.
- Breaking change: If you use the
- Fixes
el.wait is not a functionbug with nested islands and fallback web components.
Full Changelog: v3.0.2...v4.0.0
is-land v3.0.2
- Support new
shadowrootmode="open"attribute for Declarative Shadow DOM moving forward. Previous methodshadowroot="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 aboutwebc:import. - Same Brotli compressed file size as the previous release: 1.73 kB
Full Changelog: v3.0.1...v3.0.2