diff --git a/starter/assets/20c79a1e73ae.js b/starter/assets/1762233d590c.js
similarity index 85%
rename from starter/assets/20c79a1e73ae.js
rename to starter/assets/1762233d590c.js
index bc9fc3623..857b9f405 100644
--- a/starter/assets/20c79a1e73ae.js
+++ b/starter/assets/1762233d590c.js
@@ -1 +1 @@
-import{v as a,j as r,w as o}from"./ed1045c62907.js";import{_ as i}from"./41c905a75d98.js";import{u as p,a as c}from"./820e0ae9dfd0.js";import{C as m,H as l,T as s}from"./ad369b8c8384.js";class u{greet(){return"Hello from Greeter"}}const d={empty:{name:"empty",services:{},ui:{references:[{name:"sample-package.Greeter",qualifier:void 0,all:!1}]},properties:{}},"@open-pioneer/chakra-integration":{name:"@open-pioneer/chakra-integration",services:{},ui:{references:[]},properties:{}},"@open-pioneer/runtime":{name:"@open-pioneer/runtime",services:{},ui:{references:[]},properties:{}},"@open-pioneer/core":{name:"@open-pioneer/core",services:{},ui:{references:[]},properties:{}},"sample-package":{name:"sample-package",services:{GreeterImpl:{name:"GreeterImpl",clazz:u,provides:[{name:"sample-package.Greeter",qualifier:void 0}],references:{}}},ui:{references:[]},properties:{}},"@open-pioneer/runtime-react-support":{name:"@open-pioneer/runtime-react-support",services:{},ui:{references:[]},properties:{}}},f="",g=["en"];function v(e){switch(e){case"en":return i(()=>import("./cd18741b67a7.js"),[],import.meta.url).then(t=>t.default)}throw new Error(`Unsupported locale: '${e}'`)}const h=a(f),_=Object.freeze(Object.defineProperty({__proto__:null,loadMessages:v,locales:g,packages:d,styles:h},Symbol.toStringTag,{value:"Module"})),n="empty",k=p.bind(void 0,n),x=c.bind(void 0,n);function E(){const e=x(),t=k("sample-package.Greeter");return r.jsxs(m,{children:[r.jsx(l,{as:"h1",size:"lg",children:e.formatMessage({id:"heading"})}),r.jsx(s,{pt:5,children:e.formatMessage({id:"text"})}),r.jsxs(s,{pt:5,children:["This messages comes from the sample package","'","s greeter service: ",t.greet()]})]})}const I=o({component:E,appMetadata:_});customElements.define("empty-app",I);
+import{v as a,j as r,w as o}from"./ed1045c62907.js";import{_ as i}from"./41c905a75d98.js";import{u as p,a as c}from"./820e0ae9dfd0.js";import{C as m,H as l,T as s}from"./ad369b8c8384.js";class u{greet(){return"Hello from Greeter"}}const d={empty:{name:"empty",services:{},ui:{references:[{name:"sample-package.Greeter",qualifier:void 0,all:!1}]},properties:{}},"@open-pioneer/runtime":{name:"@open-pioneer/runtime",services:{},ui:{references:[]},properties:{}},"@open-pioneer/chakra-integration":{name:"@open-pioneer/chakra-integration",services:{},ui:{references:[]},properties:{}},"@open-pioneer/core":{name:"@open-pioneer/core",services:{},ui:{references:[]},properties:{}},"sample-package":{name:"sample-package",services:{GreeterImpl:{name:"GreeterImpl",clazz:u,provides:[{name:"sample-package.Greeter",qualifier:void 0}],references:{}}},ui:{references:[]},properties:{}},"@open-pioneer/runtime-react-support":{name:"@open-pioneer/runtime-react-support",services:{},ui:{references:[]},properties:{}}},f="",g=["en"];function v(e){switch(e){case"en":return i(()=>import("./cd18741b67a7.js"),[],import.meta.url).then(t=>t.default)}throw new Error(`Unsupported locale: '${e}'`)}const h=a(f),_=Object.freeze(Object.defineProperty({__proto__:null,loadMessages:v,locales:g,packages:d,styles:h},Symbol.toStringTag,{value:"Module"})),n="empty",k=p.bind(void 0,n),x=c.bind(void 0,n);function E(){const e=x(),t=k("sample-package.Greeter");return r.jsxs(m,{children:[r.jsx(l,{as:"h1",size:"lg",children:e.formatMessage({id:"heading"})}),r.jsx(s,{pt:5,children:e.formatMessage({id:"text"})}),r.jsxs(s,{pt:5,children:["This messages comes from the sample package","'","s greeter service: ",t.greet()]})]})}const I=o({component:E,appMetadata:_});customElements.define("empty-app",I);
diff --git a/starter/assets/7bf7ae15df47.js b/starter/assets/2653c2b2c0df.js
similarity index 74%
rename from starter/assets/7bf7ae15df47.js
rename to starter/assets/2653c2b2c0df.js
index e17fa60c6..67cd3918a 100644
--- a/starter/assets/7bf7ae15df47.js
+++ b/starter/assets/2653c2b2c0df.js
@@ -1 +1 @@
-import{x as m,v as x,r as o,j as i,w as v}from"./ed1045c62907.js";import{E as u}from"./960f2965a833.js";import{E as d}from"./4eca66f82c38.js";import{u as f}from"./820e0ae9dfd0.js";import{V as E}from"./448a495d30b4.js";import{C as h,H as s,T as g}from"./ad369b8c8384.js";import{B as S}from"./49916b87ef64.js";import"./446cd47ccb2f.js";class T{textService;logger;constructor(e){this.textService=e.references.textService,this.logger=m("api-app:TextApiExtension")}async getApiMethods(){return{changeText:e=>{this.logger.info("Changing text to",JSON.stringify(e)),this.textService.setText(e)}}}}class A extends u{text="not yet set";setText(e){const n=this.text;this.text=e,this.emit("text-changed",{newText:this.text,oldText:n})}getText(){return this.text}}class j{async getApiMethods(){return{justAnotherApiMethod:()=>{console.log("justAnotherApiMethod")}}}}class z{async fetch(e,n){return await globalThis.fetch(e,n)}}const y={"api-app":{name:"api-app",services:{TextApiExtension:{name:"TextApiExtension",clazz:T,provides:[{name:"integration.ApiExtension",qualifier:void 0}],references:{textService:{name:"api-app.TextService",qualifier:void 0,all:!1}}},TextService:{name:"TextService",clazz:A,provides:[{name:"api-app.TextService",qualifier:void 0}],references:{}},SecondApiExtension:{name:"SecondApiExtension",clazz:j,provides:[{name:"integration.ApiExtension",qualifier:void 0}],references:{}}},ui:{references:[{name:"api-app.TextService",qualifier:void 0,all:!1},{name:"integration.ExternalEventService",qualifier:void 0,all:!1}]},properties:{}},"@open-pioneer/chakra-integration":{name:"@open-pioneer/chakra-integration",services:{},ui:{references:[]},properties:{}},"@open-pioneer/core":{name:"@open-pioneer/core",services:{},ui:{references:[]},properties:{}},"@open-pioneer/http":{name:"@open-pioneer/http",services:{HttpServiceImpl:{name:"HttpServiceImpl",clazz:z,provides:[{name:"http.HttpService",qualifier:"http.HttpService"}],references:{}}},ui:{references:[]},properties:{}},"@open-pioneer/integration":{name:"@open-pioneer/integration",services:{ExternalEventServiceImpl:{name:"ExternalEventServiceImpl",clazz:d,provides:[{name:"integration.ExternalEventService",qualifier:"integration.ExternalEventService"}],references:{ctx:{name:"runtime.ApplicationContext",qualifier:void 0,all:!1}}}},ui:{references:[]},properties:{}},"@open-pioneer/runtime":{name:"@open-pioneer/runtime",services:{},ui:{references:[]},properties:{}},"@open-pioneer/runtime-react-support":{name:"@open-pioneer/runtime-react-support",services:{},ui:{references:[]},properties:{}}},q="",C=[];function I(t){throw new Error(`Unsupported locale: '${t}'`)}const M=x(q),b=Object.freeze(Object.defineProperty({__proto__:null,loadMessages:I,locales:C,packages:y,styles:M},Symbol.toStringTag,{value:"Module"})),w="api-app",a=f.bind(void 0,w);function H(){const t=a("integration.ExternalEventService"),e=()=>{t.emitEvent("my-custom-event",{data:"my-event-data"})},n=a("api-app.TextService"),[p,r]=o.useState("");return o.useEffect(()=>{r(n.getText());const c=n.on("text-changed",l=>{r(l.newText)});return()=>c.destroy()},[n]),i.jsx(h,{children:i.jsxs(E,{children:[i.jsx(s,{size:"md",children:"Emitting Events"}),i.jsx(g,{children:"Click this button to emit a browser event:"}),i.jsx(S,{onClick:e,children:"Emit Event"}),i.jsx(s,{size:"md",pt:20,children:"Reacting to API calls from the host site"}),i.jsxs("div",{children:["Current text: ",p]})]})})}const k=v({component:H,appMetadata:b});customElements.define("api-app",k);
+import{x as m,v as x,r as o,j as i,w as v}from"./ed1045c62907.js";import{E as u}from"./960f2965a833.js";import{E as d}from"./4eca66f82c38.js";import{u as f}from"./820e0ae9dfd0.js";import{V as E}from"./448a495d30b4.js";import{C as h,H as s,T as g}from"./ad369b8c8384.js";import{B as S}from"./49916b87ef64.js";import"./446cd47ccb2f.js";class T{textService;logger;constructor(e){this.textService=e.references.textService,this.logger=m("api-app:TextApiExtension")}async getApiMethods(){return{changeText:e=>{this.logger.info("Changing text to",JSON.stringify(e)),this.textService.setText(e)}}}}class A extends u{text="not yet set";setText(e){const n=this.text;this.text=e,this.emit("text-changed",{newText:this.text,oldText:n})}getText(){return this.text}}class j{async getApiMethods(){return{justAnotherApiMethod:()=>{console.log("justAnotherApiMethod")}}}}class z{async fetch(e,n){return await globalThis.fetch(e,n)}}const y={"api-app":{name:"api-app",services:{TextApiExtension:{name:"TextApiExtension",clazz:T,provides:[{name:"integration.ApiExtension",qualifier:void 0}],references:{textService:{name:"api-app.TextService",qualifier:void 0,all:!1}}},TextService:{name:"TextService",clazz:A,provides:[{name:"api-app.TextService",qualifier:void 0}],references:{}},SecondApiExtension:{name:"SecondApiExtension",clazz:j,provides:[{name:"integration.ApiExtension",qualifier:void 0}],references:{}}},ui:{references:[{name:"api-app.TextService",qualifier:void 0,all:!1},{name:"integration.ExternalEventService",qualifier:void 0,all:!1}]},properties:{}},"@open-pioneer/runtime":{name:"@open-pioneer/runtime",services:{},ui:{references:[]},properties:{}},"@open-pioneer/core":{name:"@open-pioneer/core",services:{},ui:{references:[]},properties:{}},"@open-pioneer/chakra-integration":{name:"@open-pioneer/chakra-integration",services:{},ui:{references:[]},properties:{}},"@open-pioneer/http":{name:"@open-pioneer/http",services:{HttpServiceImpl:{name:"HttpServiceImpl",clazz:z,provides:[{name:"http.HttpService",qualifier:"http.HttpService"}],references:{}}},ui:{references:[]},properties:{}},"@open-pioneer/integration":{name:"@open-pioneer/integration",services:{ExternalEventServiceImpl:{name:"ExternalEventServiceImpl",clazz:d,provides:[{name:"integration.ExternalEventService",qualifier:"integration.ExternalEventService"}],references:{ctx:{name:"runtime.ApplicationContext",qualifier:void 0,all:!1}}}},ui:{references:[]},properties:{}},"@open-pioneer/runtime-react-support":{name:"@open-pioneer/runtime-react-support",services:{},ui:{references:[]},properties:{}}},q="",C=[];function I(t){throw new Error(`Unsupported locale: '${t}'`)}const M=x(q),b=Object.freeze(Object.defineProperty({__proto__:null,loadMessages:I,locales:C,packages:y,styles:M},Symbol.toStringTag,{value:"Module"})),w="api-app",a=f.bind(void 0,w);function H(){const t=a("integration.ExternalEventService"),e=()=>{t.emitEvent("my-custom-event",{data:"my-event-data"})},n=a("api-app.TextService"),[p,r]=o.useState("");return o.useEffect(()=>{r(n.getText());const c=n.on("text-changed",l=>{r(l.newText)});return()=>c.destroy()},[n]),i.jsx(h,{children:i.jsxs(E,{children:[i.jsx(s,{size:"md",children:"Emitting Events"}),i.jsx(g,{children:"Click this button to emit a browser event:"}),i.jsx(S,{onClick:e,children:"Emit Event"}),i.jsx(s,{size:"md",pt:20,children:"Reacting to API calls from the host site"}),i.jsxs("div",{children:["Current text: ",p]})]})})}const k=v({component:H,appMetadata:b});customElements.define("api-app",k);
diff --git a/starter/assets/0ed789483325.js b/starter/assets/399800742e51.js
similarity index 95%
rename from starter/assets/0ed789483325.js
rename to starter/assets/399800742e51.js
index 830599213..bb3d17e90 100644
--- a/starter/assets/0ed789483325.js
+++ b/starter/assets/399800742e51.js
@@ -1 +1 @@
-var v=(i,n,e)=>{if(!n.has(i))throw TypeError("Cannot "+e)};var c=(i,n,e)=>(v(i,n,"read from private field"),e?e.call(i):n.get(i)),d=(i,n,e)=>{if(n.has(i))throw TypeError("Cannot add the same private member more than once");n instanceof WeakSet?n.add(i):n.set(i,e)};import{v as u,j as r,w as f}from"./ed1045c62907.js";import{u as g}from"./820e0ae9dfd0.js";import{B as x}from"./49916b87ef64.js";import{C as h,H as p,T as a}from"./ad369b8c8384.js";import{V as A}from"./448a495d30b4.js";import"./446cd47ccb2f.js";var o;class w{constructor(n){d(this,o,new Map);const e=c(this,o),t=n.references.providers;for(const l of t){const m=l.createActions();for(const s of m){if(e.has(s.id))throw new Error(`Action '${s.id}' was defined twice.`);e.set(s.id,s)}}}getActionInfo(){const n=Array.from(c(this,o).values()).map(e=>({id:e.id,text:e.text}));return n.sort((e,t)=>e.text.localeCompare(t.text)),n}triggerAction(n){const e=c(this,o).get(n);if(!e)throw new Error(`Action '${n}' was not defined.`);e.trigger()}}o=new WeakMap;class P{createActions(){return[{id:"logging-action",text:"Log a message",trigger(){console.info("Logging a message!")}}]}}class j{createActions(){return[{id:"clear-browser-action",text:"Clear browser",trigger(){document.body.innerHTML=""}},{id:"refresh-browser-action",text:"Refresh browser",trigger(){window.location.reload()}}]}}class b{createActions(){return[{id:"open-window-action",text:"Open window",trigger(){window.open("https://www.conterra.de")}}]}}const S={"extension-app":{name:"extension-app",services:{ActionServiceImpl:{name:"ActionServiceImpl",clazz:w,provides:[{name:"extension-app.ActionService",qualifier:void 0}],references:{providers:{name:"extension-app.ActionProvider",qualifier:void 0,all:!0}}},LoggingActionProvider:{name:"LoggingActionProvider",clazz:P,provides:[{name:"extension-app.ActionProvider",qualifier:void 0}],references:{}},MultiActionProvider:{name:"MultiActionProvider",clazz:j,provides:[{name:"extension-app.ActionProvider",qualifier:void 0}],references:{}},OpenWindowActionProvider:{name:"OpenWindowActionProvider",clazz:b,provides:[{name:"extension-app.ActionProvider",qualifier:void 0}],references:{}}},ui:{references:[{name:"extension-app.ActionService",qualifier:void 0,all:!1}]},properties:{}},"@open-pioneer/chakra-integration":{name:"@open-pioneer/chakra-integration",services:{},ui:{references:[]},properties:{}},"@open-pioneer/runtime":{name:"@open-pioneer/runtime",services:{},ui:{references:[]},properties:{}},"@open-pioneer/core":{name:"@open-pioneer/core",services:{},ui:{references:[]},properties:{}},"@open-pioneer/runtime-react-support":{name:"@open-pioneer/runtime-react-support",services:{},ui:{references:[]},properties:{}}},y="",I=[];function z(i){throw new Error(`Unsupported locale: '${i}'`)}const E=u(y),M=Object.freeze(Object.defineProperty({__proto__:null,loadMessages:z,locales:I,packages:S,styles:E},Symbol.toStringTag,{value:"Module"})),T="extension-app",k=g.bind(void 0,T);function C(){const i=k("extension-app.ActionService"),n=i.getActionInfo().map(({id:e,text:t})=>r.jsx(x,{onClick:()=>i.triggerAction(e),children:t},e));return r.jsxs(h,{maxW:"3xl",py:2,children:[r.jsx(p,{as:"h1",size:"4xl",mb:4,children:"Extension Example"}),r.jsx(a,{my:2,children:"This example demonstrates how to provide an extensible API with services and 1-to-N dependencies."}),r.jsxs(a,{my:2,children:["Individual ",r.jsx("code",{children:"ActionProvider"})," instances can provide a number of actions, which are then gathered and indexed by the ",r.jsx("code",{children:"ActionService"}),", which depends on all ActionProviders. The UI references the ",r.jsx("code",{children:"ActionService"})," and renders the provided actions as buttons. When a button is clicked, the appropriate action will be triggered."]}),r.jsxs(a,{my:2,children:["To add a new action, simply add new implementation of"," ",r.jsx("code",{children:'"extension-app.ActionProvider"'}),". The"," ",r.jsx("code",{children:"ActionService"})," will pick it up automatically."]}),r.jsxs(p,{as:"h4",size:"xl",children:["Buttons from ",r.jsx("code",{children:"ActionService"}),":"]}),r.jsx(A,{align:"start",children:n})]})}const q=f({component:C,appMetadata:M});customElements.define("extension-app",q);
+var v=(i,n,e)=>{if(!n.has(i))throw TypeError("Cannot "+e)};var c=(i,n,e)=>(v(i,n,"read from private field"),e?e.call(i):n.get(i)),d=(i,n,e)=>{if(n.has(i))throw TypeError("Cannot add the same private member more than once");n instanceof WeakSet?n.add(i):n.set(i,e)};import{v as u,j as r,w as f}from"./ed1045c62907.js";import{u as g}from"./820e0ae9dfd0.js";import{B as x}from"./49916b87ef64.js";import{C as h,H as p,T as a}from"./ad369b8c8384.js";import{V as A}from"./448a495d30b4.js";import"./446cd47ccb2f.js";var o;class w{constructor(n){d(this,o,new Map);const e=c(this,o),t=n.references.providers;for(const l of t){const m=l.createActions();for(const s of m){if(e.has(s.id))throw new Error(`Action '${s.id}' was defined twice.`);e.set(s.id,s)}}}getActionInfo(){const n=Array.from(c(this,o).values()).map(e=>({id:e.id,text:e.text}));return n.sort((e,t)=>e.text.localeCompare(t.text)),n}triggerAction(n){const e=c(this,o).get(n);if(!e)throw new Error(`Action '${n}' was not defined.`);e.trigger()}}o=new WeakMap;class P{createActions(){return[{id:"logging-action",text:"Log a message",trigger(){console.info("Logging a message!")}}]}}class j{createActions(){return[{id:"clear-browser-action",text:"Clear browser",trigger(){document.body.innerHTML=""}},{id:"refresh-browser-action",text:"Refresh browser",trigger(){window.location.reload()}}]}}class b{createActions(){return[{id:"open-window-action",text:"Open window",trigger(){window.open("https://www.conterra.de")}}]}}const S={"extension-app":{name:"extension-app",services:{ActionServiceImpl:{name:"ActionServiceImpl",clazz:w,provides:[{name:"extension-app.ActionService",qualifier:void 0}],references:{providers:{name:"extension-app.ActionProvider",qualifier:void 0,all:!0}}},LoggingActionProvider:{name:"LoggingActionProvider",clazz:P,provides:[{name:"extension-app.ActionProvider",qualifier:void 0}],references:{}},MultiActionProvider:{name:"MultiActionProvider",clazz:j,provides:[{name:"extension-app.ActionProvider",qualifier:void 0}],references:{}},OpenWindowActionProvider:{name:"OpenWindowActionProvider",clazz:b,provides:[{name:"extension-app.ActionProvider",qualifier:void 0}],references:{}}},ui:{references:[{name:"extension-app.ActionService",qualifier:void 0,all:!1}]},properties:{}},"@open-pioneer/runtime":{name:"@open-pioneer/runtime",services:{},ui:{references:[]},properties:{}},"@open-pioneer/chakra-integration":{name:"@open-pioneer/chakra-integration",services:{},ui:{references:[]},properties:{}},"@open-pioneer/core":{name:"@open-pioneer/core",services:{},ui:{references:[]},properties:{}},"@open-pioneer/runtime-react-support":{name:"@open-pioneer/runtime-react-support",services:{},ui:{references:[]},properties:{}}},y="",I=[];function z(i){throw new Error(`Unsupported locale: '${i}'`)}const E=u(y),M=Object.freeze(Object.defineProperty({__proto__:null,loadMessages:z,locales:I,packages:S,styles:E},Symbol.toStringTag,{value:"Module"})),T="extension-app",k=g.bind(void 0,T);function C(){const i=k("extension-app.ActionService"),n=i.getActionInfo().map(({id:e,text:t})=>r.jsx(x,{onClick:()=>i.triggerAction(e),children:t},e));return r.jsxs(h,{maxW:"3xl",py:2,children:[r.jsx(p,{as:"h1",size:"4xl",mb:4,children:"Extension Example"}),r.jsx(a,{my:2,children:"This example demonstrates how to provide an extensible API with services and 1-to-N dependencies."}),r.jsxs(a,{my:2,children:["Individual ",r.jsx("code",{children:"ActionProvider"})," instances can provide a number of actions, which are then gathered and indexed by the ",r.jsx("code",{children:"ActionService"}),", which depends on all ActionProviders. The UI references the ",r.jsx("code",{children:"ActionService"})," and renders the provided actions as buttons. When a button is clicked, the appropriate action will be triggered."]}),r.jsxs(a,{my:2,children:["To add a new action, simply add new implementation of"," ",r.jsx("code",{children:'"extension-app.ActionProvider"'}),". The"," ",r.jsx("code",{children:"ActionService"})," will pick it up automatically."]}),r.jsxs(p,{as:"h4",size:"xl",children:["Buttons from ",r.jsx("code",{children:"ActionService"}),":"]}),r.jsx(A,{align:"start",children:n})]})}const q=f({component:C,appMetadata:M});customElements.define("extension-app",q);
diff --git a/starter/assets/08fcc396a8b3.js b/starter/assets/6f587b432b22.js
similarity index 84%
rename from starter/assets/08fcc396a8b3.js
rename to starter/assets/6f587b432b22.js
index 482e2f4bc..6e62b9786 100644
--- a/starter/assets/08fcc396a8b3.js
+++ b/starter/assets/6f587b432b22.js
@@ -1,4 +1,4 @@
-import{j as e,v as r,w as o}from"./ed1045c62907.js";function t(){return e.jsxs("div",{className:"sample-component-with-css",children:["The text in this div should be ",e.jsx("strong",{children:"RED"})," because it is styled using external css."]})}const i={"styling-app":{name:"styling-app",services:{},ui:{references:[]},properties:{}},"@open-pioneer/runtime":{name:"@open-pioneer/runtime",services:{},ui:{references:[]},properties:{}},"@open-pioneer/chakra-integration":{name:"@open-pioneer/chakra-integration",services:{},ui:{references:[]},properties:{}},"@open-pioneer/core":{name:"@open-pioneer/core",services:{},ui:{references:[]},properties:{}},"styling-sample-components":{name:"styling-sample-components",services:{},ui:{references:[]},properties:{}},"@open-pioneer/runtime-react-support":{name:"@open-pioneer/runtime-react-support",services:{},ui:{references:[]},properties:{}}},p=`.sample-component-with-css{color:red;font-size:1.25em}
+import{j as e,v as r,w as o}from"./ed1045c62907.js";function t(){return e.jsxs("div",{className:"sample-component-with-css",children:["The text in this div should be ",e.jsx("strong",{children:"RED"})," because it is styled using external css."]})}const i={"styling-app":{name:"styling-app",services:{},ui:{references:[]},properties:{}},"@open-pioneer/runtime":{name:"@open-pioneer/runtime",services:{},ui:{references:[]},properties:{}},"@open-pioneer/chakra-integration":{name:"@open-pioneer/chakra-integration",services:{},ui:{references:[]},properties:{}},"@open-pioneer/core":{name:"@open-pioneer/core",services:{},ui:{references:[]},properties:{}},"@open-pioneer/runtime-react-support":{name:"@open-pioneer/runtime-react-support",services:{},ui:{references:[]},properties:{}},"styling-sample-components":{name:"styling-sample-components",services:{},ui:{references:[]},properties:{}}},p=`.sample-component-with-css{color:red;font-size:1.25em}
`,c=[];function a(s){throw new Error(`Unsupported locale: '${s}'`)}const n=r(p),l=Object.freeze(Object.defineProperty({__proto__:null,loadMessages:a,locales:c,packages:i,styles:n},Symbol.toStringTag,{value:"Module"})),m=o({component:t,appMetadata:l});console.log(`CSS:
${n.value}`);customElements.define("styling-app",m);
diff --git a/starter/assets/9f72be2bcd20.js b/starter/assets/71487f4e2ff1.js
similarity index 98%
rename from starter/assets/9f72be2bcd20.js
rename to starter/assets/71487f4e2ff1.js
index 9316979a1..c325f7f13 100644
--- a/starter/assets/9f72be2bcd20.js
+++ b/starter/assets/71487f4e2ff1.js
@@ -1 +1 @@
-import{r as l,j as e,C as Ae,D as Q,d as j,F as J,T as Re,G as pe,H as mo,B as ye,f as v,l as fo,o as Z,e as m,z as De,A as vo,J as xo,K as jo,L as yo,M as go,N as L,O as A,Q as _o,R as bo,U as Be,k as S,g as ge,V as Po,W as So,X as ie,m as z,b as _e,Y as wo,Z as Co,q as ko,h as No,s as To,v as Eo,_ as Ie,$ as Fo,a0 as Ro,a1 as Oo,a2 as Mo,a3 as Ao,a4 as Do,a5 as Bo,a6 as Io,a7 as Ho,a8 as zo,w as Lo}from"./ed1045c62907.js";import{C as $o,H as He,T as Vo}from"./ad369b8c8384.js";import{S as Go,R as Uo,a as le}from"./3175a3fb44a2.js";import{S as ze}from"./446cd47ccb2f.js";import{B as w}from"./fde0f3c41d58.js";import{u as Wo}from"./b7d20d8aaf96.js";import{u as be}from"./19fd289afc0b.js";import{u as Ko}from"./f9623fa81503.js";import{B as b}from"./49916b87ef64.js";var qo={enter:({transition:o,transitionEnd:t,delay:s}={})=>{var n;return{opacity:1,transition:(n=o?.enter)!=null?n:J.enter(Re.enter,s),transitionEnd:t?.enter}},exit:({transition:o,transitionEnd:t,delay:s}={})=>{var n;return{opacity:0,transition:(n=o?.exit)!=null?n:J.exit(Re.exit,s),transitionEnd:t?.exit}}},Le={initial:"exit",animate:"enter",exit:"exit",variants:qo},Xo=l.forwardRef(function(t,s){const{unmountOnExit:n,in:a,className:r,transition:i,transitionEnd:c,delay:u,...d}=t,h=a||n?"enter":"exit",f=n?a&&n:!0,_={transition:i,transitionEnd:c,delay:u};return e.jsx(Ae,{custom:_,children:f&&e.jsx(Q.div,{ref:s,className:j("chakra-fade",r),custom:_,...Le,animate:h,...d})})});Xo.displayName="Fade";var Oe={exit:{duration:.15,ease:mo.easeInOut},enter:{type:"spring",damping:25,stiffness:180}},Yo={exit:({direction:o,transition:t,transitionEnd:s,delay:n})=>{var a;const{exit:r}=pe({direction:o});return{...r,transition:(a=t?.exit)!=null?a:J.exit(Oe.exit,n),transitionEnd:s?.exit}},enter:({direction:o,transitionEnd:t,transition:s,delay:n})=>{var a;const{enter:r}=pe({direction:o});return{...r,transition:(a=s?.enter)!=null?a:J.enter(Oe.enter,n),transitionEnd:t?.enter}}},$e=l.forwardRef(function(t,s){const{direction:n="right",style:a,unmountOnExit:r,in:i,className:c,transition:u,transitionEnd:d,delay:h,motionProps:f,..._}=t,C=pe({direction:n}),T=Object.assign({position:"fixed"},C.position,a),E=r?i&&r:!0,x=i||r?"enter":"exit",g={transitionEnd:d,transition:u,direction:n,delay:h};return e.jsx(Ae,{custom:g,children:E&&e.jsx(Q.div,{..._,ref:s,initial:"exit",className:j("chakra-slide",c),animate:x,exit:"exit",custom:g,variants:Yo,style:T,...f})})});$e.displayName="Slide";function Jo(o){return"current"in o}var Ve=()=>typeof window<"u";function Qo(){var o;const t=navigator.userAgentData;return(o=t?.platform)!=null?o:navigator.platform}var Zo=o=>Ve()&&o.test(navigator.vendor),et=o=>Ve()&&o.test(Qo()),ot=()=>et(/mac|iphone|ipad|ipod/i),tt=()=>ot()&&Zo(/apple/i);function st(o){const{ref:t,elements:s,enabled:n}=o,a=()=>{var r,i;return(i=(r=t.current)==null?void 0:r.ownerDocument)!=null?i:document};ye(a,"pointerdown",r=>{if(!tt()||!n)return;const i=r.target,u=(s??[t]).some(d=>{const h=Jo(d)?d.current:d;return h?.contains(i)||h===i});a().activeElement!==i&&u&&(r.preventDefault(),i.focus())})}var Ge=v(function(t,s){const n=fo("Link",t),{className:a,isExternal:r,...i}=Z(t);return e.jsx(m.a,{target:r?"_blank":void 0,rel:r?"noopener":void 0,ref:s,className:j("chakra-link",a),...i,__css:n})});Ge.displayName="Link";function nt(o){const t=o.current;if(!t)return!1;const s=jo(t);return!s||t.contains(s)?!1:!!yo(s)}function rt(o,t){const{shouldFocus:s,visible:n,focusRef:a}=t,r=s&&!n;De(()=>{if(!r||nt(o))return;const i=a?.current||o.current;let c;if(i)return c=requestAnimationFrame(()=>{i.focus({preventScroll:!0})}),()=>{cancelAnimationFrame(c)}},[r,o,a])}var at={preventScroll:!0,shouldFocus:!1};function it(o,t=at){const{focusRef:s,preventScroll:n,shouldFocus:a,visible:r}=t,i=lt(o)?o.current:o,c=a&&r,u=l.useRef(c),d=l.useRef(r);vo(()=>{!d.current&&r&&(u.current=c),d.current=r},[r,c]);const h=l.useCallback(()=>{if(!(!r||!i||!u.current)&&(u.current=!1,!i.contains(document.activeElement)))if(s?.current)requestAnimationFrame(()=>{var f;(f=s.current)==null||f.focus({preventScroll:n})});else{const f=xo(i);f.length>0&&requestAnimationFrame(()=>{f[0].focus({preventScroll:n})})}},[r,n,i,s]);De(()=>{h()},[h]),ye(i,"transitionend",h)}function lt(o){return"current"in o}function ct(o){const{isOpen:t,ref:s}=o,[n,a]=l.useState(t),[r,i]=l.useState(!1);return l.useEffect(()=>{r||(a(t),i(!0))},[t,r,n]),ye(()=>s.current,"animationend",()=>{a(t)}),{present:!(t?!1:!n),onComplete(){var u;const d=go(s.current),h=new d.CustomEvent("animationend",{bubbles:!0});(u=s.current)==null||u.dispatchEvent(h)}}}function dt(o){const{wasSelected:t,enabled:s,isSelected:n,mode:a="unmount"}=o;return!!(!s||n||a==="keepMounted"&&t)}var ut=m($e),Ue=v((o,t)=>{const{className:s,children:n,motionProps:a,containerProps:r,...i}=o,{getDialogProps:c,getDialogContainerProps:u,isOpen:d}=L(),h=c(i,t),f=u(r),_=j("chakra-modal__content",s),C=A(),T={display:"flex",flexDirection:"column",position:"relative",width:"100%",outline:0,...C.dialog},E={display:"flex",width:"100vw",height:"$100vh",position:"fixed",left:0,top:0,...C.dialogContainer},{placement:x}=_o();return e.jsx(bo,{children:e.jsx(m.div,{...f,className:"chakra-modal__content-container",__css:E,children:e.jsx(ut,{motionProps:a,direction:x,in:d,className:_,...h,__css:T,children:n})})})});Ue.displayName="DrawerContent";var ee=v((o,t)=>{const{className:s,...n}=o,a=j("chakra-modal__footer",s),i={display:"flex",alignItems:"center",justifyContent:"flex-end",...A().footer};return e.jsx(m.footer,{ref:t,...n,__css:i,className:a})});ee.displayName="ModalFooter";var oe=v((o,t)=>{const{className:s,...n}=o,{headerId:a,setHeaderMounted:r}=L();l.useEffect(()=>(r(!0),()=>r(!1)),[r]);const i=j("chakra-modal__header",s),u={flex:0,...A().header};return e.jsx(m.header,{ref:t,className:i,id:a,...n,__css:u})});oe.displayName="ModalHeader";var pt=m(Q.div),te=v((o,t)=>{const{className:s,transition:n,motionProps:a,...r}=o,i=j("chakra-modal__overlay",s),u={pos:"fixed",left:"0",top:"0",w:"100vw",h:"100vh",...A().overlay},{motionPreset:d}=L(),f=a||(d==="none"?{}:Le);return e.jsx(pt,{...f,__css:u,ref:t,className:i,...r})});te.displayName="ModalOverlay";var se=v((o,t)=>{const{className:s,...n}=o,{bodyId:a,setBodyMounted:r}=L();l.useEffect(()=>(r(!0),()=>r(!1)),[r]);const i=j("chakra-modal__body",s),c=A();return e.jsx(m.div,{ref:t,className:i,id:a,...n,__css:c.body})});se.displayName="ModalBody";var Pe=v((o,t)=>{const{onClick:s,className:n,...a}=o,{onClose:r}=L(),i=j("chakra-modal__close-btn",n),c=A();return e.jsx(Be,{ref:t,__css:c.closeButton,className:i,onClick:S(s,u=>{u.stopPropagation(),r()}),...a})});Pe.displayName="ModalCloseButton";var[ht,R]=ge({name:"PopoverContext",errorMessage:"usePopoverContext: `context` is undefined. Seems you forgot to wrap all popover components within `
0&&_>p)){c=h,u=d;continue}s[o++]=c,s[o++]=u,a=c,l=u,c=h,u=d}return s[o++]=c,s[o++]=u,o}function Hc(n,e,t,i,r,s,o,a){for(let l=0,c=t.length;l0;)s=this.dequeue()[0],o=s.getKey(),r=s.getState(),r===T.IDLE&&!(o in this.tilesLoadingKeys_)&&(this.tilesLoadingKeys_[o]=!0,++this.tilesLoading_,++i,s.load())}}const wu=Tu;function Su(n,e,t,i,r){if(!n||!(t in n.wantedTiles)||!n.wantedTiles[t][e.getKey()])return jn;const s=n.viewState.center,o=i[0]-s[0],a=i[1]-s[1];return 65536*Math.log(r)+Math.sqrt(o*o+a*a)/r}class Iu extends Kn{constructor(e){e=e||{},super({element:document.createElement("div"),render:e.render,target:e.target});const t=e.className!==void 0?e.className:"ol-rotate",i=e.label!==void 0?e.label:"⇧",r=e.compassClassName!==void 0?e.compassClassName:"ol-compass";this.label_=null,typeof i=="string"?(this.label_=document.createElement("span"),this.label_.className=r,this.label_.textContent=i):(this.label_=i,this.label_.classList.add(r));const s=e.tipLabel?e.tipLabel:"Reset rotation",o=document.createElement("button");o.className=t+"-reset",o.setAttribute("type","button"),o.title=s,o.appendChild(this.label_),o.addEventListener(O.CLICK,this.handleClick_.bind(this),!1);const a=t+" "+nn+" "+qi,l=this.element;l.className=a,l.appendChild(o),this.callResetNorth_=e.resetNorth?e.resetNorth:void 0,this.duration_=e.duration!==void 0?e.duration:250,this.autoHide_=e.autoHide!==void 0?e.autoHide:!0,this.rotation_=void 0,this.autoHide_&&this.element.classList.add(mn)}handleClick_(e){e.preventDefault(),this.callResetNorth_!==void 0?this.callResetNorth_():this.resetNorth_()}resetNorth_(){const t=this.getMap().getView();if(!t)return;const i=t.getRotation();i!==void 0&&(this.duration_>0&&i%(2*Math.PI)!==0?t.animate({rotation:0,duration:this.duration_,easing:Nt}):t.setRotation(0))}render(e){const t=e.frameState;if(!t)return;const i=t.viewState.rotation;if(i!=this.rotation_){const r="rotate("+i+"rad)";if(this.autoHide_){const s=this.element.classList.contains(mn);!s&&i===0?this.element.classList.add(mn):s&&i!==0&&this.element.classList.remove(mn)}this.label_.style.transform=r}this.rotation_=i}}const Pu=Iu;class ku extends Kn{constructor(e){e=e||{},super({element:document.createElement("div"),target:e.target});const t=e.className!==void 0?e.className:"ol-zoom",i=e.delta!==void 0?e.delta:1,r=e.zoomInClassName!==void 0?e.zoomInClassName:t+"-in",s=e.zoomOutClassName!==void 0?e.zoomOutClassName:t+"-out",o=e.zoomInLabel!==void 0?e.zoomInLabel:"+",a=e.zoomOutLabel!==void 0?e.zoomOutLabel:"–",l=e.zoomInTipLabel!==void 0?e.zoomInTipLabel:"Zoom in",c=e.zoomOutTipLabel!==void 0?e.zoomOutTipLabel:"Zoom out",u=document.createElement("button");u.className=r,u.setAttribute("type","button"),u.title=l,u.appendChild(typeof o=="string"?document.createTextNode(o):o),u.addEventListener(O.CLICK,this.handleClick_.bind(this,i),!1);const h=document.createElement("button");h.className=s,h.setAttribute("type","button"),h.title=c,h.appendChild(typeof a=="string"?document.createTextNode(a):a),h.addEventListener(O.CLICK,this.handleClick_.bind(this,-i),!1);const d=t+" "+nn+" "+qi,f=this.element;f.className=d,f.appendChild(u),f.appendChild(h),this.duration_=e.duration!==void 0?e.duration:250}handleClick_(e,t){t.preventDefault(),this.zoomByDelta_(e)}zoomByDelta_(e){const i=this.getMap().getView();if(!i)return;const r=i.getZoom();if(r!==void 0){const s=i.getConstrainedZoom(r+e);this.duration_>0?(i.getAnimating()&&i.cancelAnimations(),i.animate({zoom:s,duration:this.duration_,easing:Nt})):i.setZoom(s)}}}const Mu=ku;function Lu(n){n=n||{};const e=new Ze;return(n.zoom!==void 0?n.zoom:!0)&&e.push(new Mu(n.zoomOptions)),(n.rotate!==void 0?n.rotate:!0)&&e.push(new Pu(n.rotateOptions)),(n.attribution!==void 0?n.attribution:!0)&&e.push(new Vs(n.attributionOptions)),e}const ts={ACTIVE:"active"};class Au extends We{constructor(e){super(),this.on,this.once,this.un,e&&e.handleEvent&&(this.handleEvent=e.handleEvent),this.map_=null,this.setActive(!0)}getActive(){return this.get(ts.ACTIVE)}getMap(){return this.map_}handleEvent(e){return!0}setActive(e){this.set(ts.ACTIVE,e)}setMap(e){this.map_=e}}function Ou(n,e,t){const i=n.getCenterInternal();if(i){const r=[i[0]+e[0],i[1]+e[1]];n.animateInternal({duration:t!==void 0?t:250,easing:Fc,center:n.getConstrainedCenter(r)})}}function gr(n,e,t,i){const r=n.getZoom();if(r===void 0)return;const s=n.getConstrainedZoom(r+e),o=n.getResolutionForZoom(s);n.getAnimating()&&n.cancelAnimations(),n.animate({resolution:o,anchor:t,duration:i!==void 0?i:250,easing:Nt})}const on=Au;class Fu extends on{constructor(e){super(),e=e||{},this.delta_=e.delta?e.delta:1,this.duration_=e.duration!==void 0?e.duration:250}handleEvent(e){let t=!1;if(e.type==W.DBLCLICK){const i=e.originalEvent,r=e.map,s=e.coordinate,o=i.shiftKey?-this.delta_:this.delta_,a=r.getView();gr(a,o,s,this.duration_),i.preventDefault(),t=!0}return!t}}const Du=Fu;class Nu extends on{constructor(e){e=e||{},super(e),e.handleDownEvent&&(this.handleDownEvent=e.handleDownEvent),e.handleDragEvent&&(this.handleDragEvent=e.handleDragEvent),e.handleMoveEvent&&(this.handleMoveEvent=e.handleMoveEvent),e.handleUpEvent&&(this.handleUpEvent=e.handleUpEvent),e.stopDown&&(this.stopDown=e.stopDown),this.handlingDownUpSequence=!1,this.targetPointers=[]}getPointerCount(){return this.targetPointers.length}handleDownEvent(e){return!1}handleDragEvent(e){}handleEvent(e){if(!e.originalEvent)return!0;let t=!1;if(this.updateTrackedPointers_(e),this.handlingDownUpSequence){if(e.type==W.POINTERDRAG)this.handleDragEvent(e),e.originalEvent.preventDefault();else if(e.type==W.POINTERUP){const i=this.handleUpEvent(e);this.handlingDownUpSequence=i&&this.targetPointers.length>0}}else if(e.type==W.POINTERDOWN){const i=this.handleDownEvent(e);this.handlingDownUpSequence=i,t=this.stopDown(i)}else e.type==W.POINTERMOVE&&this.handleMoveEvent(e);return!t}handleMoveEvent(e){}handleUpEvent(e){return!1}stopDown(e){return e}updateTrackedPointers_(e){e.activePointers&&(this.targetPointers=e.activePointers)}}function fr(n){const e=n.length;let t=0,i=0;for(let r=0;r=this.minZoom;){if(this.zoomFactor_===2?(o=Math.floor(o/2),a=Math.floor(a/2),s=bt(o,o,a,a,i)):s=this.getTileRangeForExtentAndZ(l,c,i),t(c,s))return!0;--c}return!1}getExtent(){return this.extent_}getMaxZoom(){return this.maxZoom}getMinZoom(){return this.minZoom}getOrigin(e){return this.origin_?this.origin_:this.origins_[e]}getResolution(e){return this.resolutions_[e]}getResolutions(){return this.resolutions_}getTileCoordChildTileRange(e,t,i){if(e[0]Hierarchy
+
@@ -46,7 +46,7 @@
greetReturns string