wrec 0.18.3 → 0.18.4

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/wrec.js CHANGED
@@ -21,13 +21,6 @@ function canDisable(element) {
21
21
  element instanceof HTMLTextAreaElement ||
22
22
  element instanceof Wrec);
23
23
  }
24
- function cloneStylesheet(original) {
25
- const clone = new CSSStyleSheet();
26
- for (const rule of Array.from(original.cssRules)) {
27
- clone.insertRule(rule.cssText);
28
- }
29
- return clone;
30
- }
31
24
  export function createElement(name, attributes, innerHTML) {
32
25
  const element = document.createElement(name);
33
26
  if (attributes) {
@@ -178,9 +171,7 @@ export class Wrec extends HTMLElement {
178
171
  // This is a map from properties to expressions that refer to them.
179
172
  // It is the sma for all instances of a component.
180
173
  // This map cannot be private.
181
- //static propToExprsMap: Map<string, string[]> | null = null;
182
174
  static propToExprsMap;
183
- static stylesheet = null;
184
175
  static template = null;
185
176
  #ctor = this.constructor;
186
177
  // This is a map from expressions to references to them
@@ -235,26 +226,21 @@ export class Wrec extends HTMLElement {
235
226
  if (!this.shadowRoot)
236
227
  return;
237
228
  const ctor = this.#ctor;
238
- if (ctor.css) {
239
- let { stylesheet } = ctor;
240
- if (!stylesheet) {
241
- stylesheet = ctor.stylesheet = new CSSStyleSheet();
242
- // Include a CSS rule that respects the "hidden" attribute.
243
- // This is a web.dev custom element best practice.
244
- const css = `:host([hidden]) { display: none; } ${ctor.css}`;
245
- stylesheet.replaceSync(css);
246
- }
247
- this.shadowRoot.adoptedStyleSheets = [cloneStylesheet(stylesheet)];
248
- }
249
- let template = ctor.template;
229
+ let { template } = ctor;
250
230
  if (!template) {
251
231
  template = ctor.template = document.createElement('template');
252
- const html = ctor.html.trim();
232
+ // Include a CSS rule that respects the "hidden" attribute.
233
+ // This is a web.dev custom element best practice.
234
+ let style = `<style>\n :host([hidden]) { display: none; }`;
235
+ if (ctor.css)
236
+ style += ctor.css;
237
+ style += '</style>\n';
238
+ let html = ctor.html.trim();
253
239
  // If the HTML string does not start with <,
254
240
  // assume it is a JavaScript expression.
255
- template.innerHTML = html.startsWith('<')
256
- ? html
257
- : `<span><!--${html}--></span>`;
241
+ if (!html.startsWith('<'))
242
+ html = `<span><!--${html}--></span>`;
243
+ template.innerHTML = style + html;
258
244
  }
259
245
  this.shadowRoot.replaceChildren(template.content.cloneNode(true));
260
246
  }
@@ -272,9 +258,6 @@ export class Wrec extends HTMLElement {
272
258
  if (this.shadowRoot) {
273
259
  this.#wireEvents(this.shadowRoot);
274
260
  this.#makeReactive(this.shadowRoot);
275
- for (const styleSheet of this.shadowRoot.adoptedStyleSheets) {
276
- this.#makeReactiveStyleSheet(styleSheet);
277
- }
278
261
  }
279
262
  this.#computeProps();
280
263
  });
@@ -605,19 +588,6 @@ export class Wrec extends HTMLElement {
605
588
  }
606
589
  */
607
590
  }
608
- #makeReactiveStyleSheet(styleSheet) {
609
- const rules = styleSheet.cssRules;
610
- for (const rule of Array.from(rules)) {
611
- if (rule instanceof CSSStyleRule) {
612
- for (const prop of Array.from(rule.style)) {
613
- if (prop.startsWith('--')) {
614
- const value = rule.style.getPropertyValue(prop);
615
- this.#registerPlaceholders(value, rule, prop);
616
- }
617
- }
618
- }
619
- }
620
- }
621
591
  static get observedAttributes() {
622
592
  const keys = Object.keys(this.properties || {}).map(Wrec.getAttrName);
623
593
  if (!keys.includes('disabled'))
package/dist/wrec.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"wrec.js","sourceRoot":"","sources":["../src/wrec.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"wrec.js","sourceRoot":"","sources":["../src/wrec.ts"],"names":[],"mappings":"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"}
package/dist/wrec.min.js CHANGED
@@ -1 +1 @@
1
- import{getPathValue,setPathValue}from"./paths.js";class WrecError extends Error{}const CSS_PROPERTY_RE=/([a-zA-Z-]+)\s*:\s*([^;}]+)/g,FIRST_CHAR="a-zA-Z_$",OTHER_CHAR="a-zA-Z_$0-9",IDENTIFIER=`[a-zA-Z_$][${OTHER_CHAR}]*`,HTML_COMMENT_TEXT_RE=/<!--\s*(.*?)\s*-->/,HTML_ELEMENT_TEXT_RE=/<(\w+)(?:\s[^>]*)?>((?:[^<]|<(?!\w))*?)<\/\1>/g,REF_RE=new RegExp(`^this\\.${IDENTIFIER}$`),REFS_RE=new RegExp(`this\\.${IDENTIFIER}(\\.${IDENTIFIER})*`,"g"),REFS_TEST_RE=new RegExp(`this\\.${IDENTIFIER}(\\.${IDENTIFIER})*`),RESERVED_ATTRS=new Set(["class","style"]),SKIP=5;function canDisable(t){return t instanceof HTMLButtonElement||t instanceof HTMLFieldSetElement||t instanceof HTMLInputElement||t instanceof HTMLSelectElement||t instanceof HTMLTextAreaElement||t instanceof Wrec}function cloneStylesheet(t){const e=new CSSStyleSheet;for(const s of Array.from(t.cssRules))e.insertRule(s.cssText);return e}export function createElement(t,e,s){const r=document.createElement(t);if(e)for(const[t,s]of Object.entries(e))r.setAttribute(t,s);return s&&(r.innerHTML=s),r}const defaultForType=t=>t===String?"":t===Number?0:t!==Boolean&&(t===Array?[]:t===Object?{}:void 0);function getAllDescendants(t){const e=[];let s=t.firstElementChild;for(;s;)e.push(s),s.shadowRoot&&e.push(...getAllDescendants(s.shadowRoot)),s.firstElementChild&&e.push(...getAllDescendants(s)),s=s.nextElementSibling;return e}const getPropName=t=>t.substring(5).split(".")[0];function interpolate(t,e){let s=t[0];return e.forEach((e,r)=>{s+=e+t[r+1]}),s}function isPrimitive(t){const e=typeof t;return"string"===e||"number"===e||"boolean"===e}function isTextArea(t){return"textarea"===t.localName}function isValueElement(t){const{localName:e}=t;return"input"===e||"select"===e}const removeHtmlComments=t=>t.replace(/<!--[\s\S]*?-->/g,"");function replace(t,e,s,r){return t.slice(0,e)+r+t.slice(e+s)}function stringToNumber(t){const e=Number(t);if(isNaN(e))throw new WrecError(`can't convert "${t}" to a number`);return e}function updateAttribute(t,e,s){const[r,o]=e.split(":");if(isPrimitive(s))if("boolean"==typeof s){s?t.setAttribute(r,r):t.removeAttribute(r);t[Wrec.getPropName(r)]=s}else{const o=t.getAttribute(e),i=String(s);o!==i&&(t.setAttribute(r,i),"value"===r&&isValueElement(t)&&(t.value=i))}else{t[Wrec.getPropName(e)]=s}}function updateValue(t,e,s){const[r,o]=e.split(":");t instanceof CSSStyleRule?t.style.setProperty(r,s):(updateAttribute(t,r,s),"value"===r&&isValueElement(t)&&(t.value=s))}export class Wrec extends HTMLElement{static#t=new Map;static#e=new Map;static css="";static formAssociated=!1;static html="";static properties;static propToComputedMap;static propToExprsMap;static stylesheet=null;static template=null;#s=this.constructor;#r=new Map;#o={};#i;#n={};#a=null;#c=new Map;constructor(){super(),this.attachShadow({mode:"open"});const t=this.#s;t.properties||(t.properties={}),t.propToComputedMap||(t.propToComputedMap=new Map),t.propToExprsMap||(t.propToExprsMap=new Map)}attributeChangedCallback(t,e,s){"disabled"===t&&this.#l();const r=Wrec.getPropName(t);if(this.#p(r)){const t=this.#h(r,String(s));this[r]=t;const o=this.#o[r];o&&this.setFormValue(o,String(t)),this.propertyChangedCallback(r,e,s)}}#u(){if(!this.shadowRoot)return;const t=this.#s;if(t.css){let{stylesheet:e}=t;if(!e){e=t.stylesheet=new CSSStyleSheet;const s=`:host([hidden]) { display: none; } ${t.css}`;e.replaceSync(s)}this.shadowRoot.adoptedStyleSheets=[cloneStylesheet(e)]}let e=t.template;if(!e){e=t.template=document.createElement("template");const s=t.html.trim();e.innerHTML=s.startsWith("<")?s:`<span>\x3c!--${s}--\x3e</span>`}this.shadowRoot.replaceChildren(e.content.cloneNode(!0))}changed(t,e,s){this[e]=s}connectedCallback(){this.#f(),this.#d(),this.#u(),this.hasAttribute("disabled")&&this.#l(),requestAnimationFrame(()=>{if(this.shadowRoot){this.#m(this.shadowRoot),this.#E(this.shadowRoot);for(const t of this.shadowRoot.adoptedStyleSheets)this.#b(t)}this.#y()})}#y(){const t=this.#s,{properties:e}=t;for(const[t,{computed:s}]of Object.entries(e))s&&(this[t]=this.#g(s))}#d(){const t=this.#s,{observedAttributes:e,properties:s}=t;for(const[t,r]of Object.entries(s))this.#R(t,r,e)}#R(t,e,s){const r=Wrec.getAttrName(t),o=this.hasAttribute(r);e.required&&!o&&this.#T(this,t,"is a required attribute");let i=e.value;this.hasOwnProperty(t)&&(i=this[t],delete this[t]);const{type:n}=e,a=n===Boolean?i||o:s.includes(r)&&o?this.#S(t,r):i||defaultForType(n),c="#"+t;this[c]=a,e.computed&&this.#w(t,e),Object.defineProperty(this,t,{enumerable:!0,get(){return this[c]},set(s){n===Number&&"string"==typeof s&&(s=stringToNumber(s));const o=this[c];if(s===o)return;this.#v(t,n,s),this[c]=s;const{state:i,stateProp:a}=this.#s.properties[t];a&&setPathValue(i,a,s),this.#A(t),this.#M(t,n,s,r),this.#P(t),this.#x(t,s);const l=this.#o[t];l&&this.setFormValue(l,String(s)),this.propertyChangedCallback(t,o,s),e.dispatch&&this.dispatch("change",{[t]:s})}})}#l(){const t=this.hasAttribute("disabled"),e=getAllDescendants(this.shadowRoot);for(const s of e)canDisable(s)&&(s.disabled=t)}disconnectedCallback(){this.#r.clear(),this.#n.clear(),this.#c.clear()}dispatch(t,e){this.dispatchEvent(new CustomEvent(t,{bubbles:!0,composed:!0,detail:e}))}displayIfSet(t,e="block"){return`display: ${t?e:"none"}`}static elementName(){return this.name.replace(/([a-z0-9])([A-Z])/g,"$1-$2").toLowerCase()}#C(t){const e=t instanceof Wrec;for(const s of t.getAttributeNames()){const r=t.getAttribute(s),o=this.#N(t,r);if(o){const r=this[o];void 0===r&&this.#$(t,s,o),t[o]=r;let[i,n]=s.split(":");if("value"===i)if(n){if(void 0===t["on"+n]){const e="refers to an unsupported event name";this.#T(t,s,e)}t.setAttribute(i,this[o])}else n="change";e&&t.#c.set(Wrec.getPropName(i),o)}this.#_(r,t,s)}}#g(t){const e=new Function("return "+t).call(this);return Array.isArray(e)?e.join(""):e}#I(t){const{localName:e}=t;if("style"===e){const{sheet:e}=t,s=e?.cssRules??[],r=Array.from(s);for(const t of r)if(t.constructor===CSSStyleRule){const e=Array.from(t.style);for(const s of e)if(s.startsWith("--")){const e=t.style.getPropertyValue(s);this.#_(e,t,s)}}}else{let e="";if(isTextArea(t)){this.#_(t.textContent,t);const s=t.textContent?.match(HTML_COMMENT_TEXT_RE);s&&(e=s[1])}else{const s=Array.from(t.childNodes).find(t=>t.nodeType===Node.COMMENT_NODE);s&&(e=s.textContent?.trim()??"")}if(e){const s=this.#N(t,e);s&&isTextArea(t)?t.textContent=this[s]:this.#_(e,t)}}}formAssociatedCallback(){let t=this.getAttribute("form-assoc");if(!t){const e=this.getAttribute("name");if(!e)return;if(!this.#p("value"))return;t=`value:${e}`}const e={},s=t.split(",");for(const t of s){const[s,r]=t.split(":");e[s.trim()]=r.trim()}this.#o=e,this.#i=new FormData,this.#a=this.attachInternals(),this.#a.setFormValue(this.#i);const r=Object.keys(this.#s.properties),o=this.#n;for(const t of r)o[t]=this[t]}formResetCallback(){const t=this.#n;for(const e of Object.keys(t)){let s=t[e];REF_RE.test(s)&&(s=this.#g(s)),this[e]=s}}static getAttrName(t){let e=Wrec.#e.get(t);return e||(e=t.replace(/([a-z0-9])([A-Z])/g,"$1-$2").toLowerCase(),Wrec.#e.set(t,e)),e}static getPropName(t){let e=Wrec.#t.get(t);return e||(e=t.replace(/-([a-z])/g,(t,e)=>e.toUpperCase()),Wrec.#t.set(t,e)),e}#O(t,e,s){if(1!==s.length)return;const[r]=s;if(!REF_RE.test(r))return;const o=isValueElement(t)||isTextArea(t);let[i,n]=(e??"").split(":");if(!(o&&"value"===i||isTextArea(t)))return;if(n){if(void 0===t["on"+n]){const s="refers to an unsupported event name";this.#T(t,e,s)}}else n="change";const a=getPropName(r);t.addEventListener(n,t=>{const{target:e}=t;if(!e)return;const s=e.value,{type:r}=this.#s.properties[a];this[a]=r===Number?stringToNumber(s):s,this.#P(a)})}#p(t){return Boolean(this.#s.properties[t])}#E(t){const e=Array.from(t.querySelectorAll("*"));for(const t of e)this.#C(t),t.firstElementChild||this.#I(t)}#b(t){const e=t.cssRules;for(const t of Array.from(e))if(t instanceof CSSStyleRule)for(const e of Array.from(t.style))if(e.startsWith("--")){const s=t.style.getPropertyValue(e);this.#_(s,t,e)}}static get observedAttributes(){const t=Object.keys(this.properties||{}).map(Wrec.getAttrName);return t.includes("disabled")||t.push("disabled"),t}propertyChangedCallback(t,e,s){}#N(t,e){if(!e||!REF_RE.test(e))return;const s=getPropName(e);return void 0===this[s]&&this.#$(t,"",s),s}#P(t){const e=this.#s.propToExprsMap.get(t)||[];for(const t of e){let e=this.#g(t);const s=this.#r.get(t)??[];for(const t of s)if(t instanceof HTMLElement)this.#W(t,e);else if(t instanceof CSSStyleRule);else{const{element:s,attrName:r}=t;s instanceof CSSStyleRule?s.style.setProperty(r,e):updateValue(s,r,e)}}}static register(){const t=this.elementName();customElements.get(t)||customElements.define(t,this)}#w(t,e){const{computed:s,uses:r}=e,o=this.#s.propToComputedMap;function i(e,s){let r=o.get(e);r||(r=[],o.set(e,r)),r.push([t,s])}const n=s.match(REFS_RE)||[];for(const e of n){const r=e.substring(5);void 0===this[r]&&this.#$(null,t,r),"function"!=typeof this[r]&&i(r,s)}if(r)for(const t of r.split(","))i(t,s)}#_(t,e,s=void 0){if(!t)return;const r=this.#H(e,s,t);if(!r){const r=t.replaceAll("this..","this.");return void(s?updateValue(e,s,r):"textContent"in e&&(e.textContent=r))}const o=this.#s;r.forEach(e=>{const s=getPropName(e);if("function"==typeof this[s])return;const r=o.propToExprsMap;let i=r.get(s);i||(i=[],r.set(s,i)),i.includes(t)||i.push(t)});for(const[t,e]of this.#r.entries())for(const s of e){const r=s instanceof HTMLElement||s instanceof CSSStyleRule?s:s.element;r instanceof CSSStyleRule||(r.isConnected||this.#r.set(t,e.filter(t=>t!==s)))}let i=this.#r.get(t);i||(i=[],this.#r.set(t,i)),i.push(s?{element:e,attrName:s}:e),e instanceof HTMLElement&&this.#O(e,s,r);const n=this.#g(t);s?updateValue(e,s,n):this.#W(e,n)}setAttributeSafe(t,e){this.hasAttribute(t)||this.setAttribute(t,e)}setFormValue(t,e){this.#i&&isPrimitive(e)&&(this.#i.set(t,e),this.#a?.setFormValue(this.#i))}#T(t,e,s){const r=this.#s,o=t instanceof HTMLElement?t.localName:"CSS rule";throw new WrecError(`component ${r.elementName()}`+(t?`, element "${o}"`:"")+(e?`, attribute "${e}"`:"")+` ${s}`)}#$(t,e,s){this.#T(t,e,`refers to missing property "${s}"`)}#S(t,e){return this.#h(t,this.getAttribute(e))}#h(t,e){if(e?.match(REFS_RE))return e;const s=this.#s,{type:r}=s.properties[t];return r||this.#T(null,t,"does not specify its type"),r===String?e:r===Number?stringToNumber(e):r===Boolean?"true"===e||"false"!==e&&"null"!==e&&(e&&e!==t&&this.#T(null,t,"is a Boolean attribute, so its value must match attribute name or be missing"),e===t):void 0}#M(t,e,s,r){if(isPrimitive(s)&&this.hasAttribute(r)){s!==(e===Boolean?this.hasAttribute(r):this.#S(t,r))&&updateAttribute(this,t,s)}}#A(t){const e=this.#s.propToComputedMap.get(t)||[];for(const[t,s]of e)this[t]=this.#g(s)}#W(t,e){if(void 0===e)return;const s=t instanceof HTMLElement,r=typeof e;"string"!==r&&"number"!==r&&this.#T(t,void 0," computed content is not a string or number"),t instanceof HTMLElement&&isTextArea(t)?t.value=e:s&&"string"===r&&e.trim().startsWith("<")?(t.innerHTML=e,this.#m(t),this.#E(t)):s&&(t.textContent=e)}#x(t,e){const s=this.#c.get(t);if(!s)return;const r=this.getRootNode();if(!(r instanceof ShadowRoot))return;const{host:o}=r;if(!o)return;o[s]=e}useState(t,e){if(!e){e={};for(const s of Object.keys(t))e[s]=s}this.#L(t,e);for(const[s,r]of Object.entries(e))if(this.#p(r)){const e=getPathValue(t,s);void 0!==e&&(this[r]=e);const o=this.#s.properties[r];o.state=t,o.stateProp=s}t.addListener(this,e)}#f(){const t=this.#s,e=new Set(Object.keys(t.properties));for(const t of e)RESERVED_ATTRS.has(t)&&this.#T(null,"",`property "${t}" is not allowed because it is a reserved attribute`);const s=this.#s.name;for(const r of this.getAttributeNames())if("class"!==r&&"id"!==r&&"disabled"!==r&&!r.startsWith("on"))if("form-assoc"!==r){if(!e.has(Wrec.getPropName(r))){if("name"===r){if(t.formAssociated)continue;throw new WrecError(`name attribute requires "static formAssociated = true;" in class ${s}`)}this.#T(null,r,"is not a supported attribute")}}else if(!t.formAssociated)throw new WrecError(`add "static formAssociated = true;" to class ${s}`)}#H(t,e,s){const r=s.match(REFS_RE);if(r)return r.forEach(s=>{const r=getPropName(s);void 0===this[r]&&this.#$(t,e,r)}),r}#L(t,e){for(const[s,r]of Object.entries(e)){let e=getPathValue(t,s);if(void 0===e)throw new WrecError(`invalid state path "${s}"`);e=this[r],this.#p(r)||this.#T(null,r,"refers to missing property in useState map")}}#v(t,e,s){if(s instanceof e)return;let r=typeof s;if("object"===r){const{constructor:o}=s;r=o.name,o!==e&&this.#T(null,t,`was set to a ${r}, but must be a ${e.name}`)}r!==e.name.toLowerCase()&&this.#T(null,t,`was set to a ${r}, but must be a ${e.name}`)}#m(t){const e=Array.from(t.querySelectorAll("*"));for(const t of e){const e=[];for(const s of Array.from(t.attributes)){const r=s.name;if(r.startsWith("on")){let o=r.slice(2);o=o[0].toLowerCase()+o.slice(1).toLowerCase();const i=s.value;let n;this.#H(t,r,i),"function"==typeof this[i]?n=t=>this[i](t):(this.#H(t,r,i),n=()=>this.#g(i)),t.addEventListener(o,n),e.push(r)}}for(const s of e)t.removeAttribute(s)}}}export function css(t,...e){let s=interpolate(t,e);for(;;){const t=CSS_PROPERTY_RE.exec(s);if(!t)break;const e=t[2];if(REFS_TEST_RE.test(e)){const r=t[1];if(!r.startsWith("--")){const o=`--${r}: ${e};\n ${r}: var(--${r})`;s=replace(s,t.index,t[0].length,o)}}}return s}export function html(t,...e){let s=interpolate(t,e);for(;;){const t=HTML_ELEMENT_TEXT_RE.exec(s);if(!t||"style"===t[1])break;const e=removeHtmlComments(t[2]);if(REFS_TEST_RE.test(e)){const r=`\x3c!-- ${e.trim()} --\x3e`;s=replace(s,t.index+t[0].indexOf(">")+1,e.length,r)}}return s}import{createDeepProxy,proxyToPlainObject}from"./proxies.js";const inBrowser="undefined"!=typeof window&&void 0!==window.document;class WrecError extends Error{}export class WrecState{static#V=new Map;static{inBrowser&&window.addEventListener("beforeunload",()=>{for(const[t,e]of this.#V.entries())if(e.#F){const s=proxyToPlainObject(e);sessionStorage.setItem("wrec-state-"+t,JSON.stringify(s))}})}static get(t){return this.#V.get(t)}#D=Symbol("objectId");#j=[];#k;#F;#B;constructor(t,e,s){if(!t)throw new WrecError("name cannot be empty");if(WrecState.#V.has(t))throw new WrecError(`WrecState with name "${t}" already exists`);if(this.#k=t,this.#F=e,this.#B=createDeepProxy({},this.#z.bind(this)),e&&inBrowser){const e=sessionStorage.getItem("wrec-state-"+t),r=e?JSON.parse(e):void 0;r&&(s=r)}if(s)for(const[t,e]of Object.entries(s))this.addProperty(t,e);WrecState.#V.set(t,this)}addListener(t,e={}){const s=this.#j.find(e=>e.listenerRef.deref()===t);if(s){const{propertyMap:t}=s;for(const[s,r]of Object.entries(e))t[s]=r}else this.#j.push({listenerRef:new WeakRef(t),propertyMap:e})}addProperty(t,e){Object.defineProperty(this,t,{enumerable:!0,get(){return this.#B[t]},set(e){this.#B[t]=e}}),this.#B[t]=e}get id(){return this.#D}log(){console.log("WrecState:",this.#k);for(const[t,e]of Object.entries(this.#B))console.log(` ${t} = ${JSON.stringify(e)}`)}#z(t,e,s){const r=new Set;for(const o of this.#j){const i=o.listenerRef.deref();if(i)if(inBrowser&&i instanceof HTMLElement&&!i.isConnected)r.add(o);else{const{propertyMap:r}=o,n=Object.keys(r);(0===n.length||n.includes(t))&&i.changed(t,r[t],s,e,this)}else r.add(o)}this.#j=this.#j.filter(t=>!r.has(t))}removeListener(t){this.#j=this.#j.filter(e=>e.listenerRef.deref()!==t)}}if(inBrowser){"development"===process.env.NODE_ENV&&(window.WrecState=WrecState)}
1
+ import{getPathValue,setPathValue}from"./paths.js";class WrecError extends Error{}const CSS_PROPERTY_RE=/([a-zA-Z-]+)\s*:\s*([^;}]+)/g,FIRST_CHAR="a-zA-Z_$",OTHER_CHAR="a-zA-Z_$0-9",IDENTIFIER=`[a-zA-Z_$][${OTHER_CHAR}]*`,HTML_COMMENT_TEXT_RE=/<!--\s*(.*?)\s*-->/,HTML_ELEMENT_TEXT_RE=/<(\w+)(?:\s[^>]*)?>((?:[^<]|<(?!\w))*?)<\/\1>/g,REF_RE=new RegExp(`^this\\.${IDENTIFIER}$`),REFS_RE=new RegExp(`this\\.${IDENTIFIER}(\\.${IDENTIFIER})*`,"g"),REFS_TEST_RE=new RegExp(`this\\.${IDENTIFIER}(\\.${IDENTIFIER})*`),RESERVED_ATTRS=new Set(["class","style"]),SKIP=5;function canDisable(t){return t instanceof HTMLButtonElement||t instanceof HTMLFieldSetElement||t instanceof HTMLInputElement||t instanceof HTMLSelectElement||t instanceof HTMLTextAreaElement||t instanceof Wrec}export function createElement(t,e,s){const r=document.createElement(t);if(e)for(const[t,s]of Object.entries(e))r.setAttribute(t,s);return s&&(r.innerHTML=s),r}const defaultForType=t=>t===String?"":t===Number?0:t!==Boolean&&(t===Array?[]:t===Object?{}:void 0);function getAllDescendants(t){const e=[];let s=t.firstElementChild;for(;s;)e.push(s),s.shadowRoot&&e.push(...getAllDescendants(s.shadowRoot)),s.firstElementChild&&e.push(...getAllDescendants(s)),s=s.nextElementSibling;return e}const getPropName=t=>t.substring(5).split(".")[0];function interpolate(t,e){let s=t[0];return e.forEach((e,r)=>{s+=e+t[r+1]}),s}function isPrimitive(t){const e=typeof t;return"string"===e||"number"===e||"boolean"===e}function isTextArea(t){return"textarea"===t.localName}function isValueElement(t){const{localName:e}=t;return"input"===e||"select"===e}const removeHtmlComments=t=>t.replace(/<!--[\s\S]*?-->/g,"");function replace(t,e,s,r){return t.slice(0,e)+r+t.slice(e+s)}function stringToNumber(t){const e=Number(t);if(isNaN(e))throw new WrecError(`can't convert "${t}" to a number`);return e}function updateAttribute(t,e,s){const[r,o]=e.split(":");if(isPrimitive(s))if("boolean"==typeof s){s?t.setAttribute(r,r):t.removeAttribute(r);t[Wrec.getPropName(r)]=s}else{const o=t.getAttribute(e),i=String(s);o!==i&&(t.setAttribute(r,i),"value"===r&&isValueElement(t)&&(t.value=i))}else{t[Wrec.getPropName(e)]=s}}function updateValue(t,e,s){const[r,o]=e.split(":");t instanceof CSSStyleRule?t.style.setProperty(r,s):(updateAttribute(t,r,s),"value"===r&&isValueElement(t)&&(t.value=s))}export class Wrec extends HTMLElement{static#t=new Map;static#e=new Map;static css="";static formAssociated=!1;static html="";static properties;static propToComputedMap;static propToExprsMap;static template=null;#s=this.constructor;#r=new Map;#o={};#i;#n={};#a=null;#c=new Map;constructor(){super(),this.attachShadow({mode:"open"});const t=this.#s;t.properties||(t.properties={}),t.propToComputedMap||(t.propToComputedMap=new Map),t.propToExprsMap||(t.propToExprsMap=new Map)}attributeChangedCallback(t,e,s){"disabled"===t&&this.#l();const r=Wrec.getPropName(t);if(this.#p(r)){const t=this.#h(r,String(s));this[r]=t;const o=this.#o[r];o&&this.setFormValue(o,String(t)),this.propertyChangedCallback(r,e,s)}}#u(){if(!this.shadowRoot)return;const t=this.#s;let{template:e}=t;if(!e){e=t.template=document.createElement("template");let s="<style>\n :host([hidden]) { display: none; }";t.css&&(s+=t.css),s+="</style>\n";let r=t.html.trim();r.startsWith("<")||(r=`<span>\x3c!--${r}--\x3e</span>`),e.innerHTML=s+r}this.shadowRoot.replaceChildren(e.content.cloneNode(!0))}changed(t,e,s){this[e]=s}connectedCallback(){this.#f(),this.#d(),this.#u(),this.hasAttribute("disabled")&&this.#l(),requestAnimationFrame(()=>{this.shadowRoot&&(this.#m(this.shadowRoot),this.#E(this.shadowRoot)),this.#b()})}#b(){const t=this.#s,{properties:e}=t;for(const[t,{computed:s}]of Object.entries(e))s&&(this[t]=this.#g(s))}#d(){const t=this.#s,{observedAttributes:e,properties:s}=t;for(const[t,r]of Object.entries(s))this.#y(t,r,e)}#y(t,e,s){const r=Wrec.getAttrName(t),o=this.hasAttribute(r);e.required&&!o&&this.#T(this,t,"is a required attribute");let i=e.value;this.hasOwnProperty(t)&&(i=this[t],delete this[t]);const{type:n}=e,a=n===Boolean?i||o:s.includes(r)&&o?this.#R(t,r):i||defaultForType(n),c="#"+t;this[c]=a,e.computed&&this.#w(t,e),Object.defineProperty(this,t,{enumerable:!0,get(){return this[c]},set(s){n===Number&&"string"==typeof s&&(s=stringToNumber(s));const o=this[c];if(s===o)return;this.#v(t,n,s),this[c]=s;const{state:i,stateProp:a}=this.#s.properties[t];a&&setPathValue(i,a,s),this.#A(t),this.#M(t,n,s,r),this.#S(t),this.#P(t,s);const l=this.#o[t];l&&this.setFormValue(l,String(s)),this.propertyChangedCallback(t,o,s),e.dispatch&&this.dispatch("change",{[t]:s})}})}#l(){const t=this.hasAttribute("disabled"),e=getAllDescendants(this.shadowRoot);for(const s of e)canDisable(s)&&(s.disabled=t)}disconnectedCallback(){this.#r.clear(),this.#n.clear(),this.#c.clear()}dispatch(t,e){this.dispatchEvent(new CustomEvent(t,{bubbles:!0,composed:!0,detail:e}))}displayIfSet(t,e="block"){return`display: ${t?e:"none"}`}static elementName(){return this.name.replace(/([a-z0-9])([A-Z])/g,"$1-$2").toLowerCase()}#x(t){const e=t instanceof Wrec;for(const s of t.getAttributeNames()){const r=t.getAttribute(s),o=this.#C(t,r);if(o){const r=this[o];void 0===r&&this.#N(t,s,o),t[o]=r;let[i,n]=s.split(":");if("value"===i)if(n){if(void 0===t["on"+n]){const e="refers to an unsupported event name";this.#T(t,s,e)}t.setAttribute(i,this[o])}else n="change";e&&t.#c.set(Wrec.getPropName(i),o)}this.#_(r,t,s)}}#g(t){const e=new Function("return "+t).call(this);return Array.isArray(e)?e.join(""):e}#$(t){const{localName:e}=t;if("style"===e){const{sheet:e}=t,s=e?.cssRules??[],r=Array.from(s);for(const t of r)if(t.constructor===CSSStyleRule){const e=Array.from(t.style);for(const s of e)if(s.startsWith("--")){const e=t.style.getPropertyValue(s);this.#_(e,t,s)}}}else{let e="";if(isTextArea(t)){this.#_(t.textContent,t);const s=t.textContent?.match(HTML_COMMENT_TEXT_RE);s&&(e=s[1])}else{const s=Array.from(t.childNodes).find(t=>t.nodeType===Node.COMMENT_NODE);s&&(e=s.textContent?.trim()??"")}if(e){const s=this.#C(t,e);s&&isTextArea(t)?t.textContent=this[s]:this.#_(e,t)}}}formAssociatedCallback(){let t=this.getAttribute("form-assoc");if(!t){const e=this.getAttribute("name");if(!e)return;if(!this.#p("value"))return;t=`value:${e}`}const e={},s=t.split(",");for(const t of s){const[s,r]=t.split(":");e[s.trim()]=r.trim()}this.#o=e,this.#i=new FormData,this.#a=this.attachInternals(),this.#a.setFormValue(this.#i);const r=Object.keys(this.#s.properties),o=this.#n;for(const t of r)o[t]=this[t]}formResetCallback(){const t=this.#n;for(const e of Object.keys(t)){let s=t[e];REF_RE.test(s)&&(s=this.#g(s)),this[e]=s}}static getAttrName(t){let e=Wrec.#e.get(t);return e||(e=t.replace(/([a-z0-9])([A-Z])/g,"$1-$2").toLowerCase(),Wrec.#e.set(t,e)),e}static getPropName(t){let e=Wrec.#t.get(t);return e||(e=t.replace(/-([a-z])/g,(t,e)=>e.toUpperCase()),Wrec.#t.set(t,e)),e}#I(t,e,s){if(1!==s.length)return;const[r]=s;if(!REF_RE.test(r))return;const o=isValueElement(t)||isTextArea(t);let[i,n]=(e??"").split(":");if(!(o&&"value"===i||isTextArea(t)))return;if(n){if(void 0===t["on"+n]){const s="refers to an unsupported event name";this.#T(t,e,s)}}else n="change";const a=getPropName(r);t.addEventListener(n,t=>{const{target:e}=t;if(!e)return;const s=e.value,{type:r}=this.#s.properties[a];this[a]=r===Number?stringToNumber(s):s,this.#S(a)})}#p(t){return Boolean(this.#s.properties[t])}#E(t){const e=Array.from(t.querySelectorAll("*"));for(const t of e)this.#x(t),t.firstElementChild||this.#$(t)}static get observedAttributes(){const t=Object.keys(this.properties||{}).map(Wrec.getAttrName);return t.includes("disabled")||t.push("disabled"),t}propertyChangedCallback(t,e,s){}#C(t,e){if(!e||!REF_RE.test(e))return;const s=getPropName(e);return void 0===this[s]&&this.#N(t,"",s),s}#S(t){const e=this.#s.propToExprsMap.get(t)||[];for(const t of e){let e=this.#g(t);const s=this.#r.get(t)??[];for(const t of s)if(t instanceof HTMLElement)this.#O(t,e);else if(t instanceof CSSStyleRule);else{const{element:s,attrName:r}=t;s instanceof CSSStyleRule?s.style.setProperty(r,e):updateValue(s,r,e)}}}static register(){const t=this.elementName();customElements.get(t)||customElements.define(t,this)}#w(t,e){const{computed:s,uses:r}=e,o=this.#s.propToComputedMap;function i(e,s){let r=o.get(e);r||(r=[],o.set(e,r)),r.push([t,s])}const n=s.match(REFS_RE)||[];for(const e of n){const r=e.substring(5);void 0===this[r]&&this.#N(null,t,r),"function"!=typeof this[r]&&i(r,s)}if(r)for(const t of r.split(","))i(t,s)}#_(t,e,s=void 0){if(!t)return;const r=this.#W(e,s,t);if(!r){const r=t.replaceAll("this..","this.");return void(s?updateValue(e,s,r):"textContent"in e&&(e.textContent=r))}const o=this.#s;r.forEach(e=>{const s=getPropName(e);if("function"==typeof this[s])return;const r=o.propToExprsMap;let i=r.get(s);i||(i=[],r.set(s,i)),i.includes(t)||i.push(t)});for(const[t,e]of this.#r.entries())for(const s of e){const r=s instanceof HTMLElement||s instanceof CSSStyleRule?s:s.element;r instanceof CSSStyleRule||(r.isConnected||this.#r.set(t,e.filter(t=>t!==s)))}let i=this.#r.get(t);i||(i=[],this.#r.set(t,i)),i.push(s?{element:e,attrName:s}:e),e instanceof HTMLElement&&this.#I(e,s,r);const n=this.#g(t);s?updateValue(e,s,n):this.#O(e,n)}setAttributeSafe(t,e){this.hasAttribute(t)||this.setAttribute(t,e)}setFormValue(t,e){this.#i&&isPrimitive(e)&&(this.#i.set(t,e),this.#a?.setFormValue(this.#i))}#T(t,e,s){const r=this.#s,o=t instanceof HTMLElement?t.localName:"CSS rule";throw new WrecError(`component ${r.elementName()}`+(t?`, element "${o}"`:"")+(e?`, attribute "${e}"`:"")+` ${s}`)}#N(t,e,s){this.#T(t,e,`refers to missing property "${s}"`)}#R(t,e){return this.#h(t,this.getAttribute(e))}#h(t,e){if(e?.match(REFS_RE))return e;const s=this.#s,{type:r}=s.properties[t];return r||this.#T(null,t,"does not specify its type"),r===String?e:r===Number?stringToNumber(e):r===Boolean?"true"===e||"false"!==e&&"null"!==e&&(e&&e!==t&&this.#T(null,t,"is a Boolean attribute, so its value must match attribute name or be missing"),e===t):void 0}#M(t,e,s,r){if(isPrimitive(s)&&this.hasAttribute(r)){s!==(e===Boolean?this.hasAttribute(r):this.#R(t,r))&&updateAttribute(this,t,s)}}#A(t){const e=this.#s.propToComputedMap.get(t)||[];for(const[t,s]of e)this[t]=this.#g(s)}#O(t,e){if(void 0===e)return;const s=t instanceof HTMLElement,r=typeof e;"string"!==r&&"number"!==r&&this.#T(t,void 0," computed content is not a string or number"),t instanceof HTMLElement&&isTextArea(t)?t.value=e:s&&"string"===r&&e.trim().startsWith("<")?(t.innerHTML=e,this.#m(t),this.#E(t)):s&&(t.textContent=e)}#P(t,e){const s=this.#c.get(t);if(!s)return;const r=this.getRootNode();if(!(r instanceof ShadowRoot))return;const{host:o}=r;if(!o)return;o[s]=e}useState(t,e){if(!e){e={};for(const s of Object.keys(t))e[s]=s}this.#H(t,e);for(const[s,r]of Object.entries(e))if(this.#p(r)){const e=getPathValue(t,s);void 0!==e&&(this[r]=e);const o=this.#s.properties[r];o.state=t,o.stateProp=s}t.addListener(this,e)}#f(){const t=this.#s,e=new Set(Object.keys(t.properties));for(const t of e)RESERVED_ATTRS.has(t)&&this.#T(null,"",`property "${t}" is not allowed because it is a reserved attribute`);const s=this.#s.name;for(const r of this.getAttributeNames())if("class"!==r&&"id"!==r&&"disabled"!==r&&!r.startsWith("on"))if("form-assoc"!==r){if(!e.has(Wrec.getPropName(r))){if("name"===r){if(t.formAssociated)continue;throw new WrecError(`name attribute requires "static formAssociated = true;" in class ${s}`)}this.#T(null,r,"is not a supported attribute")}}else if(!t.formAssociated)throw new WrecError(`add "static formAssociated = true;" to class ${s}`)}#W(t,e,s){const r=s.match(REFS_RE);if(r)return r.forEach(s=>{const r=getPropName(s);void 0===this[r]&&this.#N(t,e,r)}),r}#H(t,e){for(const[s,r]of Object.entries(e)){let e=getPathValue(t,s);if(void 0===e)throw new WrecError(`invalid state path "${s}"`);e=this[r],this.#p(r)||this.#T(null,r,"refers to missing property in useState map")}}#v(t,e,s){if(s instanceof e)return;let r=typeof s;if("object"===r){const{constructor:o}=s;r=o.name,o!==e&&this.#T(null,t,`was set to a ${r}, but must be a ${e.name}`)}r!==e.name.toLowerCase()&&this.#T(null,t,`was set to a ${r}, but must be a ${e.name}`)}#m(t){const e=Array.from(t.querySelectorAll("*"));for(const t of e){const e=[];for(const s of Array.from(t.attributes)){const r=s.name;if(r.startsWith("on")){let o=r.slice(2);o=o[0].toLowerCase()+o.slice(1).toLowerCase();const i=s.value;let n;this.#W(t,r,i),"function"==typeof this[i]?n=t=>this[i](t):(this.#W(t,r,i),n=()=>this.#g(i)),t.addEventListener(o,n),e.push(r)}}for(const s of e)t.removeAttribute(s)}}}export function css(t,...e){let s=interpolate(t,e);for(;;){const t=CSS_PROPERTY_RE.exec(s);if(!t)break;const e=t[2];if(REFS_TEST_RE.test(e)){const r=t[1];if(!r.startsWith("--")){const o=`--${r}: ${e};\n ${r}: var(--${r})`;s=replace(s,t.index,t[0].length,o)}}}return s}export function html(t,...e){let s=interpolate(t,e);for(;;){const t=HTML_ELEMENT_TEXT_RE.exec(s);if(!t||"style"===t[1])break;const e=removeHtmlComments(t[2]);if(REFS_TEST_RE.test(e)){const r=`\x3c!-- ${e.trim()} --\x3e`;s=replace(s,t.index+t[0].indexOf(">")+1,e.length,r)}}return s}import{createDeepProxy,proxyToPlainObject}from"./proxies.js";const inBrowser="undefined"!=typeof window&&void 0!==window.document;class WrecError extends Error{}export class WrecState{static#L=new Map;static{inBrowser&&window.addEventListener("beforeunload",()=>{for(const[t,e]of this.#L.entries())if(e.#F){const s=proxyToPlainObject(e);sessionStorage.setItem("wrec-state-"+t,JSON.stringify(s))}})}static get(t){return this.#L.get(t)}#V=Symbol("objectId");#D=[];#j;#F;#k;constructor(t,e,s){if(!t)throw new WrecError("name cannot be empty");if(WrecState.#L.has(t))throw new WrecError(`WrecState with name "${t}" already exists`);if(this.#j=t,this.#F=e,this.#k=createDeepProxy({},this.#B.bind(this)),e&&inBrowser){const e=sessionStorage.getItem("wrec-state-"+t),r=e?JSON.parse(e):void 0;r&&(s=r)}if(s)for(const[t,e]of Object.entries(s))this.addProperty(t,e);WrecState.#L.set(t,this)}addListener(t,e={}){const s=this.#D.find(e=>e.listenerRef.deref()===t);if(s){const{propertyMap:t}=s;for(const[s,r]of Object.entries(e))t[s]=r}else this.#D.push({listenerRef:new WeakRef(t),propertyMap:e})}addProperty(t,e){Object.defineProperty(this,t,{enumerable:!0,get(){return this.#k[t]},set(e){this.#k[t]=e}}),this.#k[t]=e}get id(){return this.#V}log(){console.log("WrecState:",this.#j);for(const[t,e]of Object.entries(this.#k))console.log(` ${t} = ${JSON.stringify(e)}`)}#B(t,e,s){const r=new Set;for(const o of this.#D){const i=o.listenerRef.deref();if(i)if(inBrowser&&i instanceof HTMLElement&&!i.isConnected)r.add(o);else{const{propertyMap:r}=o,n=Object.keys(r);(0===n.length||n.includes(t))&&i.changed(t,r[t],s,e,this)}else r.add(o)}this.#D=this.#D.filter(t=>!r.has(t))}removeListener(t){this.#D=this.#D.filter(e=>e.listenerRef.deref()!==t)}}if(inBrowser){"development"===process.env.NODE_ENV&&(window.WrecState=WrecState)}
package/dist/wrec.umd.js CHANGED
@@ -1,2 +1,4 @@
1
- (function(p,d){typeof exports=="object"&&typeof module<"u"?d(exports):typeof define=="function"&&define.amd?define(["exports"],d):(p=typeof globalThis<"u"?globalThis:p||self,d(p.wrec={}))})(this,(function(p){"use strict";function d(n,t){let e=n;for(const s of t.split("."))e=e[s];return e}function H(n,t,e){const s=t.split("."),o=s.length-1;let i=n;s.forEach((r,h)=>{h===o?i[r]=e:i=i[r]})}class b extends Error{}const j=/([a-zA-Z-]+)\s*:\s*([^;}]+)/g,P="a-zA-Z_$",F=P+"0-9",y=`[${P}][${F}]*`,V=/<!--\s*(.*?)\s*-->/,_=/<(\w+)(?:\s[^>]*)?>((?:[^<]|<(?!\w))*?)<\/\1>/g,E=new RegExp(`^this\\.${y}$`),C=new RegExp(`this\\.${y}(\\.${y})*`,"g"),$=new RegExp(`this\\.${y}(\\.${y})*`),I=new Set(["class","style"]),N=5;function D(n){return n instanceof HTMLButtonElement||n instanceof HTMLFieldSetElement||n instanceof HTMLInputElement||n instanceof HTMLSelectElement||n instanceof HTMLTextAreaElement||n instanceof l}function B(n){const t=new CSSStyleSheet;for(const e of Array.from(n.cssRules))t.insertRule(e.cssText);return t}function q(n,t,e){const s=document.createElement(n);if(t)for(const[o,i]of Object.entries(t))s.setAttribute(o,i);return e&&(s.innerHTML=e),s}const z=n=>n===String?"":n===Number?0:n===Boolean?!1:n===Array?[]:n===Object?{}:void 0;function T(n){const t=[];let e=n.firstElementChild;for(;e;)t.push(e),e.shadowRoot&&t.push(...T(e.shadowRoot)),e.firstElementChild&&t.push(...T(e)),e=e.nextElementSibling;return t}const S=n=>n.substring(N).split(".")[0];function x(n,t){let e=n[0];return t.forEach((s,o)=>{e+=s+n[o+1]}),e}function w(n){const t=typeof n;return t==="string"||t==="number"||t==="boolean"}function g(n){return n.localName==="textarea"}function R(n){const{localName:t}=n;return t==="input"||t==="select"}const Z=n=>n.replace(/<!--[\s\S]*?-->/g,"");function L(n,t,e,s){return n.slice(0,t)+s+n.slice(t+e)}function v(n){const t=Number(n);if(isNaN(t))throw new b(`can't convert "${n}" to a number`);return t}function O(n,t,e){const[s,o]=t.split(":");if(w(e))if(typeof e=="boolean"){e?n.setAttribute(s,s):n.removeAttribute(s);const i=l.getPropName(s);n[i]=e}else{const i=n.getAttribute(t),r=String(e);i!==r&&(n.setAttribute(s,r),s==="value"&&R(n)&&(n.value=r))}else{const i=l.getPropName(t);n[i]=e}}function M(n,t,e){const[s,o]=t.split(":");n instanceof CSSStyleRule?n.style.setProperty(s,e):(O(n,s,e),s==="value"&&R(n)&&(n.value=e))}class l extends HTMLElement{static#p=new Map;static#d=new Map;static css="";static formAssociated=!1;static html="";static properties;static propToComputedMap;static propToExprsMap;static stylesheet=null;static template=null;#t=this.constructor;#s=new Map;#a={};#i;#f={};#h=null;#l=new Map;constructor(){super(),this.attachShadow({mode:"open"});const t=this.#t;t.properties||(t.properties={}),t.propToComputedMap||(t.propToComputedMap=new Map),t.propToExprsMap||(t.propToExprsMap=new Map)}attributeChangedCallback(t,e,s){t==="disabled"&&this.#m();const o=l.getPropName(t);if(this.#r(o)){const i=this.#A(o,String(s));this[o]=i;const r=this.#a[o];r&&this.setFormValue(r,String(i)),this.propertyChangedCallback(o,e,s)}}#T(){if(!this.shadowRoot)return;const t=this.#t;if(t.css){let{stylesheet:s}=t;if(!s){s=t.stylesheet=new CSSStyleSheet;const o=`:host([hidden]) { display: none; } ${t.css}`;s.replaceSync(o)}this.shadowRoot.adoptedStyleSheets=[B(s)]}let e=t.template;if(!e){e=t.template=document.createElement("template");const s=t.html.trim();e.innerHTML=s.startsWith("<")?s:`<span><!--${s}--></span>`}this.shadowRoot.replaceChildren(e.content.cloneNode(!0))}changed(t,e,s){this[e]=s}connectedCallback(){this.#H(),this.#R(),this.#T(),this.hasAttribute("disabled")&&this.#m(),requestAnimationFrame(()=>{if(this.shadowRoot){this.#C(this.shadowRoot),this.#b(this.shadowRoot);for(const t of this.shadowRoot.adoptedStyleSheets)this.#N(t)}this.#w()})}#w(){const t=this.#t,{properties:e}=t;for(const[s,{computed:o}]of Object.entries(e))o&&(this[s]=this.#o(o))}#R(){const t=this.#t,{observedAttributes:e,properties:s}=t;for(const[o,i]of Object.entries(s))this.#v(o,i,e)}#v(t,e,s){const o=l.getAttrName(t),i=this.hasAttribute(o);e.required&&!i&&this.#e(this,t,"is a required attribute");let r=e.value;this.hasOwnProperty(t)&&(r=this[t],delete this[t]);const{type:h}=e,c=h===Boolean?r||i:s.includes(o)&&i?this.#S(t,o):r||z(h),f="#"+t;this[f]=c,e.computed&&this.#x(t,e),Object.defineProperty(this,t,{enumerable:!0,get(){return this[f]},set(a){h===Number&&typeof a=="string"&&(a=v(a));const u=this[f];if(a===u)return;this.#F(t,h,a),this[f]=a;const{state:m,stateProp:A}=this.#t.properties[t];A&&H(m,A,a),this.#O(t),this.#L(t,h,a,o),this.#g(t),this.#k(t,a);const k=this.#a[t];k&&this.setFormValue(k,String(a)),this.propertyChangedCallback(t,u,a),e.dispatch&&this.dispatch("change",{[t]:a})}})}#m(){const t=this.hasAttribute("disabled"),e=T(this.shadowRoot);for(const s of e)D(s)&&(s.disabled=t)}disconnectedCallback(){this.#s.clear(),this.#f.clear(),this.#l.clear()}dispatch(t,e){this.dispatchEvent(new CustomEvent(t,{bubbles:!0,composed:!0,detail:e}))}displayIfSet(t,e="block"){return`display: ${t?e:"none"}`}static elementName(){return this.name.replace(/([a-z0-9])([A-Z])/g,"$1-$2").toLowerCase()}#M(t){const e=t instanceof l;for(const s of t.getAttributeNames()){const o=t.getAttribute(s),i=this.#y(t,o);if(i){const r=this[i];r===void 0&&this.#c(t,s,i),t[i]=r;let[h,c]=s.split(":");h==="value"&&(c?(t["on"+c]===void 0&&this.#e(t,s,"refers to an unsupported event name"),t.setAttribute(h,this[i])):c="change"),e&&t.#l.set(l.getPropName(h),i)}this.#n(o,t,s)}}#o(t){const e=new Function("return "+t).call(this);return Array.isArray(e)?e.join(""):e}#P(t){const{localName:e}=t;if(e==="style"){const{sheet:s}=t,o=s?.cssRules??[],i=Array.from(o);for(const r of i)if(r.constructor===CSSStyleRule){const h=Array.from(r.style);for(const c of h)if(c.startsWith("--")){const f=r.style.getPropertyValue(c);this.#n(f,r,c)}}}else{let s="";if(g(t)){this.#n(t.textContent,t);const o=t.textContent?.match(V);o&&(s=o[1])}else{const o=Array.from(t.childNodes).find(i=>i.nodeType===Node.COMMENT_NODE);o&&(s=o.textContent?.trim()??"")}if(s){const o=this.#y(t,s);o&&g(t)?t.textContent=this[o]:this.#n(s,t)}}}formAssociatedCallback(){let t=this.getAttribute("form-assoc");if(!t){const r=this.getAttribute("name");if(r)if(this.#r("value"))t=`value:${r}`;else return;else return}const e={},s=t.split(",");for(const r of s){const[h,c]=r.split(":");e[h.trim()]=c.trim()}this.#a=e,this.#i=new FormData,this.#h=this.attachInternals(),this.#h.setFormValue(this.#i);const o=Object.keys(this.#t.properties),i=this.#f;for(const r of o)i[r]=this[r]}formResetCallback(){const t=this.#f;for(const e of Object.keys(t)){let s=t[e];E.test(s)&&(s=this.#o(s)),this[e]=s}}static getAttrName(t){let e=l.#d.get(t);return e||(e=t.replace(/([a-z0-9])([A-Z])/g,"$1-$2").toLowerCase(),l.#d.set(t,e)),e}static getPropName(t){let e=l.#p.get(t);return e||(e=t.replace(/-([a-z])/g,(s,o)=>o.toUpperCase()),l.#p.set(t,e)),e}#$(t,e,s){if(s.length!==1)return;const[o]=s;if(!E.test(o))return;const i=R(t)||g(t);let[r,h]=(e??"").split(":");if(!(i&&r==="value"||g(t)))return;h?t["on"+h]===void 0&&this.#e(t,e,"refers to an unsupported event name"):h="change";const f=S(o);t.addEventListener(h,a=>{const{target:u}=a;if(!u)return;const m=u.value,{type:A}=this.#t.properties[f];this[f]=A===Number?v(m):m,this.#g(f)})}#r(t){return!!this.#t.properties[t]}#b(t){const e=Array.from(t.querySelectorAll("*"));for(const s of e)this.#M(s),s.firstElementChild||this.#P(s)}#N(t){const e=t.cssRules;for(const s of Array.from(e))if(s instanceof CSSStyleRule){for(const o of Array.from(s.style))if(o.startsWith("--")){const i=s.style.getPropertyValue(o);this.#n(i,s,o)}}}static get observedAttributes(){const t=Object.keys(this.properties||{}).map(l.getAttrName);return t.includes("disabled")||t.push("disabled"),t}propertyChangedCallback(t,e,s){}#y(t,e){if(!e||!E.test(e))return;const s=S(e);return this[s]===void 0&&this.#c(t,"",s),s}#g(t){const o=this.#t.propToExprsMap.get(t)||[];for(const i of o){let r=this.#o(i);const h=this.#s.get(i)??[];for(const c of h)if(c instanceof HTMLElement)this.#E(c,r);else if(!(c instanceof CSSStyleRule)){const{element:f,attrName:a}=c;f instanceof CSSStyleRule?f.style.setProperty(a,r):M(f,a,r)}}}static register(){const t=this.elementName();customElements.get(t)||customElements.define(t,this)}#x(t,e){const{computed:s,uses:o}=e,i=this.#t.propToComputedMap;function r(c,f){let a=i.get(c);a||(a=[],i.set(c,a)),a.push([t,f])}const h=s.match(C)||[];for(const c of h){const f=c.substring(N);this[f]===void 0&&this.#c(null,t,f),typeof this[f]!="function"&&r(f,s)}if(o)for(const c of o.split(","))r(c,s)}#n(t,e,s=void 0){if(!t)return;const o=this.#u(e,s,t);if(!o){const c=t.replaceAll("this..","this.");s?M(e,s,c):"textContent"in e&&(e.textContent=c);return}const i=this.#t;o.forEach(c=>{const f=S(c);if(typeof this[f]=="function")return;const a=i.propToExprsMap;let u=a.get(f);u||(u=[],a.set(f,u)),u.includes(t)||u.push(t)});for(const[c,f]of this.#s.entries())for(const a of f){const u=a instanceof HTMLElement||a instanceof CSSStyleRule?a:a.element;u instanceof CSSStyleRule||u.isConnected||this.#s.set(c,f.filter(m=>m!==a))}let r=this.#s.get(t);r||(r=[],this.#s.set(t,r)),r.push(s?{element:e,attrName:s}:e),e instanceof HTMLElement&&this.#$(e,s,o);const h=this.#o(t);s?M(e,s,h):this.#E(e,h)}setAttributeSafe(t,e){this.hasAttribute(t)||this.setAttribute(t,e)}setFormValue(t,e){!this.#i||!w(e)||(this.#i.set(t,e),this.#h?.setFormValue(this.#i))}#e(t,e,s){const o=this.#t,i=t instanceof HTMLElement?t.localName:"CSS rule";throw new b(`component ${o.elementName()}`+(t?`, element "${i}"`:"")+(e?`, attribute "${e}"`:"")+` ${s}`)}#c(t,e,s){this.#e(t,e,`refers to missing property "${s}"`)}#S(t,e){return this.#A(t,this.getAttribute(e))}#A(t,e){if(e?.match(C))return e;const s=this.#t,{type:o}=s.properties[t];if(o||this.#e(null,t,"does not specify its type"),o===String)return e;if(o===Number)return v(e);if(o===Boolean)return e==="true"?!0:e==="false"||e==="null"?!1:(e&&e!==t&&this.#e(null,t,"is a Boolean attribute, so its value must match attribute name or be missing"),e===t)}#L(t,e,s,o){if(w(s)&&this.hasAttribute(o)){const i=e===Boolean?this.hasAttribute(o):this.#S(t,o);s!==i&&O(this,t,s)}}#O(t){const s=this.#t.propToComputedMap.get(t)||[];for(const[o,i]of s)this[o]=this.#o(i)}#E(t,e){if(e===void 0)return;const s=t instanceof HTMLElement,o=typeof e;o!=="string"&&o!=="number"&&this.#e(t,void 0," computed content is not a string or number"),t instanceof HTMLElement&&g(t)?t.value=e:s&&o==="string"&&e.trim().startsWith("<")?(t.innerHTML=e,this.#C(t),this.#b(t)):s&&(t.textContent=e)}#k(t,e){const s=this.#l.get(t);if(!s)return;const o=this.getRootNode();if(!(o instanceof ShadowRoot))return;const{host:i}=o;if(!i)return;const r=i;r[s]=e}useState(t,e){if(!e){e={};for(const s of Object.keys(t))e[s]=s}this.#j(t,e);for(const[s,o]of Object.entries(e))if(this.#r(o)){const i=d(t,s);i!==void 0&&(this[o]=i);const r=this.#t.properties[o];r.state=t,r.stateProp=s}t.addListener(this,e)}#H(){const t=this.#t,e=new Set(Object.keys(t.properties));for(const o of e)I.has(o)&&this.#e(null,"",`property "${o}" is not allowed because it is a reserved attribute`);const s=this.#t.name;for(const o of this.getAttributeNames())if(o!=="class"&&o!=="id"&&o!=="disabled"&&!o.startsWith("on")){if(o==="form-assoc"){if(!t.formAssociated)throw new b(`add "static formAssociated = true;" to class ${s}`);continue}if(!e.has(l.getPropName(o))){if(o==="name"){if(t.formAssociated)continue;throw new b(`name attribute requires "static formAssociated = true;" in class ${s}`)}this.#e(null,o,"is not a supported attribute")}}}#u(t,e,s){const o=s.match(C);if(o)return o.forEach(i=>{const r=S(i);this[r]===void 0&&this.#c(t,e,r)}),o}#j(t,e){for(const[s,o]of Object.entries(e)){let i=d(t,s);if(i===void 0)throw new b(`invalid state path "${s}"`);i=this[o],this.#r(o)||this.#e(null,o,"refers to missing property in useState map")}}#F(t,e,s){if(s instanceof e)return;let o=typeof s;if(o==="object"){const{constructor:i}=s;o=i.name,i!==e&&this.#e(null,t,`was set to a ${o}, but must be a ${e.name}`)}o!==e.name.toLowerCase()&&this.#e(null,t,`was set to a ${o}, but must be a ${e.name}`)}#C(t){const e=Array.from(t.querySelectorAll("*"));for(const s of e){const o=[];for(const i of Array.from(s.attributes)){const r=i.name;if(r.startsWith("on")){let h=r.slice(2);h=h[0].toLowerCase()+h.slice(1).toLowerCase();const c=i.value;this.#u(s,r,c);let f;typeof this[c]=="function"?f=a=>this[c](a):(this.#u(s,r,c),f=()=>this.#o(c)),s.addEventListener(h,f),o.push(r)}}for(const i of o)s.removeAttribute(i)}}}function K(n,...t){let e=x(n,t);for(;;){const s=j.exec(e);if(!s)break;const o=s[2];if($.test(o)){const i=s[1];if(!i.startsWith("--")){const r=`--${i}: ${o};
2
- ${i}: var(--${i})`;e=L(e,s.index,s[0].length,r)}}}return e}function X(n,...t){let e=x(n,t);for(;;){const s=_.exec(e);if(!s||s[1]==="style")break;const o=Z(s[2]);if($.test(o)){const i=`<!-- ${o.trim()} -->`,r=s.index+s[0].indexOf(">")+1;e=L(e,r,o.length,i)}}return e}p.Wrec=l,p.createElement=q,p.css=K,p.html=X,Object.defineProperty(p,Symbol.toStringTag,{value:"Module"})}));
1
+ (function(p,d){typeof exports=="object"&&typeof module<"u"?d(exports):typeof define=="function"&&define.amd?define(["exports"],d):(p=typeof globalThis<"u"?globalThis:p||self,d(p.wrec={}))})(this,(function(p){"use strict";function d(r,t){let e=r;for(const s of t.split("."))e=e[s];return e}function k(r,t,e){const s=t.split("."),i=s.length-1;let o=r;s.forEach((n,h)=>{h===i?o[n]=e:o=o[n]})}class b extends Error{}const j=/([a-zA-Z-]+)\s*:\s*([^;}]+)/g,P="a-zA-Z_$",F=P+"0-9",g=`[${P}][${F}]*`,_=/<!--\s*(.*?)\s*-->/,V=/<(\w+)(?:\s[^>]*)?>((?:[^<]|<(?!\w))*?)<\/\1>/g,T=new RegExp(`^this\\.${g}$`),C=new RegExp(`this\\.${g}(\\.${g})*`,"g"),N=new RegExp(`this\\.${g}(\\.${g})*`),I=new Set(["class","style"]),$=5;function D(r){return r instanceof HTMLButtonElement||r instanceof HTMLFieldSetElement||r instanceof HTMLInputElement||r instanceof HTMLSelectElement||r instanceof HTMLTextAreaElement||r instanceof u}function B(r,t,e){const s=document.createElement(r);if(t)for(const[i,o]of Object.entries(t))s.setAttribute(i,o);return e&&(s.innerHTML=e),s}const q=r=>r===String?"":r===Number?0:r===Boolean?!1:r===Array?[]:r===Object?{}:void 0;function w(r){const t=[];let e=r.firstElementChild;for(;e;)t.push(e),e.shadowRoot&&t.push(...w(e.shadowRoot)),e.firstElementChild&&t.push(...w(e)),e=e.nextElementSibling;return t}const y=r=>r.substring($).split(".")[0];function x(r,t){let e=r[0];return t.forEach((s,i)=>{e+=s+r[i+1]}),e}function S(r){const t=typeof r;return t==="string"||t==="number"||t==="boolean"}function E(r){return r.localName==="textarea"}function v(r){const{localName:t}=r;return t==="input"||t==="select"}const z=r=>r.replace(/<!--[\s\S]*?-->/g,"");function L(r,t,e,s){return r.slice(0,t)+s+r.slice(t+e)}function M(r){const t=Number(r);if(isNaN(t))throw new b(`can't convert "${r}" to a number`);return t}function O(r,t,e){const[s,i]=t.split(":");if(S(e))if(typeof e=="boolean"){e?r.setAttribute(s,s):r.removeAttribute(s);const o=u.getPropName(s);r[o]=e}else{const o=r.getAttribute(t),n=String(e);o!==n&&(r.setAttribute(s,n),s==="value"&&v(r)&&(r.value=n))}else{const o=u.getPropName(t);r[o]=e}}function R(r,t,e){const[s,i]=t.split(":");r instanceof CSSStyleRule?r.style.setProperty(s,e):(O(r,s,e),s==="value"&&v(r)&&(r.value=e))}class u extends HTMLElement{static#p=new Map;static#d=new Map;static css="";static formAssociated=!1;static html="";static properties;static propToComputedMap;static propToExprsMap;static template=null;#t=this.constructor;#s=new Map;#a={};#o;#f={};#h=null;#u=new Map;constructor(){super(),this.attachShadow({mode:"open"});const t=this.#t;t.properties||(t.properties={}),t.propToComputedMap||(t.propToComputedMap=new Map),t.propToExprsMap||(t.propToExprsMap=new Map)}attributeChangedCallback(t,e,s){t==="disabled"&&this.#m();const i=u.getPropName(t);if(this.#n(i)){const o=this.#A(i,String(s));this[i]=o;const n=this.#a[i];n&&this.setFormValue(n,String(o)),this.propertyChangedCallback(i,e,s)}}#w(){if(!this.shadowRoot)return;const t=this.#t;let{template:e}=t;if(!e){e=t.template=document.createElement("template");let s=`<style>
2
+ :host([hidden]) { display: none; }`;t.css&&(s+=t.css),s+=`</style>
3
+ `;let i=t.html.trim();i.startsWith("<")||(i=`<span><!--${i}--></span>`),e.innerHTML=s+i}this.shadowRoot.replaceChildren(e.content.cloneNode(!0))}changed(t,e,s){this[e]=s}connectedCallback(){this.#H(),this.#v(),this.#w(),this.hasAttribute("disabled")&&this.#m(),requestAnimationFrame(()=>{this.shadowRoot&&(this.#C(this.shadowRoot),this.#b(this.shadowRoot)),this.#S()})}#S(){const t=this.#t,{properties:e}=t;for(const[s,{computed:i}]of Object.entries(e))i&&(this[s]=this.#i(i))}#v(){const t=this.#t,{observedAttributes:e,properties:s}=t;for(const[i,o]of Object.entries(s))this.#M(i,o,e)}#M(t,e,s){const i=u.getAttrName(t),o=this.hasAttribute(i);e.required&&!o&&this.#e(this,t,"is a required attribute");let n=e.value;this.hasOwnProperty(t)&&(n=this[t],delete this[t]);const{type:h}=e,c=h===Boolean?n||o:s.includes(i)&&o?this.#y(t,i):n||q(h),f="#"+t;this[f]=c,e.computed&&this.#$(t,e),Object.defineProperty(this,t,{enumerable:!0,get(){return this[f]},set(a){h===Number&&typeof a=="string"&&(a=M(a));const l=this[f];if(a===l)return;this.#j(t,h,a),this[f]=a;const{state:m,stateProp:A}=this.#t.properties[t];A&&k(m,A,a),this.#L(t),this.#x(t,h,a,i),this.#E(t),this.#O(t,a);const H=this.#a[t];H&&this.setFormValue(H,String(a)),this.propertyChangedCallback(t,l,a),e.dispatch&&this.dispatch("change",{[t]:a})}})}#m(){const t=this.hasAttribute("disabled"),e=w(this.shadowRoot);for(const s of e)D(s)&&(s.disabled=t)}disconnectedCallback(){this.#s.clear(),this.#f.clear(),this.#u.clear()}dispatch(t,e){this.dispatchEvent(new CustomEvent(t,{bubbles:!0,composed:!0,detail:e}))}displayIfSet(t,e="block"){return`display: ${t?e:"none"}`}static elementName(){return this.name.replace(/([a-z0-9])([A-Z])/g,"$1-$2").toLowerCase()}#R(t){const e=t instanceof u;for(const s of t.getAttributeNames()){const i=t.getAttribute(s),o=this.#g(t,i);if(o){const n=this[o];n===void 0&&this.#c(t,s,o),t[o]=n;let[h,c]=s.split(":");h==="value"&&(c?(t["on"+c]===void 0&&this.#e(t,s,"refers to an unsupported event name"),t.setAttribute(h,this[o])):c="change"),e&&t.#u.set(u.getPropName(h),o)}this.#r(i,t,s)}}#i(t){const e=new Function("return "+t).call(this);return Array.isArray(e)?e.join(""):e}#P(t){const{localName:e}=t;if(e==="style"){const{sheet:s}=t,i=s?.cssRules??[],o=Array.from(i);for(const n of o)if(n.constructor===CSSStyleRule){const h=Array.from(n.style);for(const c of h)if(c.startsWith("--")){const f=n.style.getPropertyValue(c);this.#r(f,n,c)}}}else{let s="";if(E(t)){this.#r(t.textContent,t);const i=t.textContent?.match(_);i&&(s=i[1])}else{const i=Array.from(t.childNodes).find(o=>o.nodeType===Node.COMMENT_NODE);i&&(s=i.textContent?.trim()??"")}if(s){const i=this.#g(t,s);i&&E(t)?t.textContent=this[i]:this.#r(s,t)}}}formAssociatedCallback(){let t=this.getAttribute("form-assoc");if(!t){const n=this.getAttribute("name");if(n)if(this.#n("value"))t=`value:${n}`;else return;else return}const e={},s=t.split(",");for(const n of s){const[h,c]=n.split(":");e[h.trim()]=c.trim()}this.#a=e,this.#o=new FormData,this.#h=this.attachInternals(),this.#h.setFormValue(this.#o);const i=Object.keys(this.#t.properties),o=this.#f;for(const n of i)o[n]=this[n]}formResetCallback(){const t=this.#f;for(const e of Object.keys(t)){let s=t[e];T.test(s)&&(s=this.#i(s)),this[e]=s}}static getAttrName(t){let e=u.#d.get(t);return e||(e=t.replace(/([a-z0-9])([A-Z])/g,"$1-$2").toLowerCase(),u.#d.set(t,e)),e}static getPropName(t){let e=u.#p.get(t);return e||(e=t.replace(/-([a-z])/g,(s,i)=>i.toUpperCase()),u.#p.set(t,e)),e}#N(t,e,s){if(s.length!==1)return;const[i]=s;if(!T.test(i))return;const o=v(t)||E(t);let[n,h]=(e??"").split(":");if(!(o&&n==="value"||E(t)))return;h?t["on"+h]===void 0&&this.#e(t,e,"refers to an unsupported event name"):h="change";const f=y(i);t.addEventListener(h,a=>{const{target:l}=a;if(!l)return;const m=l.value,{type:A}=this.#t.properties[f];this[f]=A===Number?M(m):m,this.#E(f)})}#n(t){return!!this.#t.properties[t]}#b(t){const e=Array.from(t.querySelectorAll("*"));for(const s of e)this.#R(s),s.firstElementChild||this.#P(s)}static get observedAttributes(){const t=Object.keys(this.properties||{}).map(u.getAttrName);return t.includes("disabled")||t.push("disabled"),t}propertyChangedCallback(t,e,s){}#g(t,e){if(!e||!T.test(e))return;const s=y(e);return this[s]===void 0&&this.#c(t,"",s),s}#E(t){const i=this.#t.propToExprsMap.get(t)||[];for(const o of i){let n=this.#i(o);const h=this.#s.get(o)??[];for(const c of h)if(c instanceof HTMLElement)this.#T(c,n);else if(!(c instanceof CSSStyleRule)){const{element:f,attrName:a}=c;f instanceof CSSStyleRule?f.style.setProperty(a,n):R(f,a,n)}}}static register(){const t=this.elementName();customElements.get(t)||customElements.define(t,this)}#$(t,e){const{computed:s,uses:i}=e,o=this.#t.propToComputedMap;function n(c,f){let a=o.get(c);a||(a=[],o.set(c,a)),a.push([t,f])}const h=s.match(C)||[];for(const c of h){const f=c.substring($);this[f]===void 0&&this.#c(null,t,f),typeof this[f]!="function"&&n(f,s)}if(i)for(const c of i.split(","))n(c,s)}#r(t,e,s=void 0){if(!t)return;const i=this.#l(e,s,t);if(!i){const c=t.replaceAll("this..","this.");s?R(e,s,c):"textContent"in e&&(e.textContent=c);return}const o=this.#t;i.forEach(c=>{const f=y(c);if(typeof this[f]=="function")return;const a=o.propToExprsMap;let l=a.get(f);l||(l=[],a.set(f,l)),l.includes(t)||l.push(t)});for(const[c,f]of this.#s.entries())for(const a of f){const l=a instanceof HTMLElement||a instanceof CSSStyleRule?a:a.element;l instanceof CSSStyleRule||l.isConnected||this.#s.set(c,f.filter(m=>m!==a))}let n=this.#s.get(t);n||(n=[],this.#s.set(t,n)),n.push(s?{element:e,attrName:s}:e),e instanceof HTMLElement&&this.#N(e,s,i);const h=this.#i(t);s?R(e,s,h):this.#T(e,h)}setAttributeSafe(t,e){this.hasAttribute(t)||this.setAttribute(t,e)}setFormValue(t,e){!this.#o||!S(e)||(this.#o.set(t,e),this.#h?.setFormValue(this.#o))}#e(t,e,s){const i=this.#t,o=t instanceof HTMLElement?t.localName:"CSS rule";throw new b(`component ${i.elementName()}`+(t?`, element "${o}"`:"")+(e?`, attribute "${e}"`:"")+` ${s}`)}#c(t,e,s){this.#e(t,e,`refers to missing property "${s}"`)}#y(t,e){return this.#A(t,this.getAttribute(e))}#A(t,e){if(e?.match(C))return e;const s=this.#t,{type:i}=s.properties[t];if(i||this.#e(null,t,"does not specify its type"),i===String)return e;if(i===Number)return M(e);if(i===Boolean)return e==="true"?!0:e==="false"||e==="null"?!1:(e&&e!==t&&this.#e(null,t,"is a Boolean attribute, so its value must match attribute name or be missing"),e===t)}#x(t,e,s,i){if(S(s)&&this.hasAttribute(i)){const o=e===Boolean?this.hasAttribute(i):this.#y(t,i);s!==o&&O(this,t,s)}}#L(t){const s=this.#t.propToComputedMap.get(t)||[];for(const[i,o]of s)this[i]=this.#i(o)}#T(t,e){if(e===void 0)return;const s=t instanceof HTMLElement,i=typeof e;i!=="string"&&i!=="number"&&this.#e(t,void 0," computed content is not a string or number"),t instanceof HTMLElement&&E(t)?t.value=e:s&&i==="string"&&e.trim().startsWith("<")?(t.innerHTML=e,this.#C(t),this.#b(t)):s&&(t.textContent=e)}#O(t,e){const s=this.#u.get(t);if(!s)return;const i=this.getRootNode();if(!(i instanceof ShadowRoot))return;const{host:o}=i;if(!o)return;const n=o;n[s]=e}useState(t,e){if(!e){e={};for(const s of Object.keys(t))e[s]=s}this.#k(t,e);for(const[s,i]of Object.entries(e))if(this.#n(i)){const o=d(t,s);o!==void 0&&(this[i]=o);const n=this.#t.properties[i];n.state=t,n.stateProp=s}t.addListener(this,e)}#H(){const t=this.#t,e=new Set(Object.keys(t.properties));for(const i of e)I.has(i)&&this.#e(null,"",`property "${i}" is not allowed because it is a reserved attribute`);const s=this.#t.name;for(const i of this.getAttributeNames())if(i!=="class"&&i!=="id"&&i!=="disabled"&&!i.startsWith("on")){if(i==="form-assoc"){if(!t.formAssociated)throw new b(`add "static formAssociated = true;" to class ${s}`);continue}if(!e.has(u.getPropName(i))){if(i==="name"){if(t.formAssociated)continue;throw new b(`name attribute requires "static formAssociated = true;" in class ${s}`)}this.#e(null,i,"is not a supported attribute")}}}#l(t,e,s){const i=s.match(C);if(i)return i.forEach(o=>{const n=y(o);this[n]===void 0&&this.#c(t,e,n)}),i}#k(t,e){for(const[s,i]of Object.entries(e)){let o=d(t,s);if(o===void 0)throw new b(`invalid state path "${s}"`);o=this[i],this.#n(i)||this.#e(null,i,"refers to missing property in useState map")}}#j(t,e,s){if(s instanceof e)return;let i=typeof s;if(i==="object"){const{constructor:o}=s;i=o.name,o!==e&&this.#e(null,t,`was set to a ${i}, but must be a ${e.name}`)}i!==e.name.toLowerCase()&&this.#e(null,t,`was set to a ${i}, but must be a ${e.name}`)}#C(t){const e=Array.from(t.querySelectorAll("*"));for(const s of e){const i=[];for(const o of Array.from(s.attributes)){const n=o.name;if(n.startsWith("on")){let h=n.slice(2);h=h[0].toLowerCase()+h.slice(1).toLowerCase();const c=o.value;this.#l(s,n,c);let f;typeof this[c]=="function"?f=a=>this[c](a):(this.#l(s,n,c),f=()=>this.#i(c)),s.addEventListener(h,f),i.push(n)}}for(const o of i)s.removeAttribute(o)}}}function Z(r,...t){let e=x(r,t);for(;;){const s=j.exec(e);if(!s)break;const i=s[2];if(N.test(i)){const o=s[1];if(!o.startsWith("--")){const n=`--${o}: ${i};
4
+ ${o}: var(--${o})`;e=L(e,s.index,s[0].length,n)}}}return e}function K(r,...t){let e=x(r,t);for(;;){const s=V.exec(e);if(!s||s[1]==="style")break;const i=z(s[2]);if(N.test(i)){const o=`<!-- ${i.trim()} -->`,n=s.index+s[0].indexOf(">")+1;e=L(e,n,i.length,o)}}return e}p.Wrec=u,p.createElement=B,p.css=Z,p.html=K,Object.defineProperty(p,Symbol.toStringTag,{value:"Module"})}));
package/package.json CHANGED
@@ -2,7 +2,7 @@
2
2
  "name": "wrec",
3
3
  "description": "a small library that greatly simplifies building web components",
4
4
  "author": "R. Mark Volkmann",
5
- "version": "0.18.3",
5
+ "version": "0.18.4",
6
6
  "license": "MIT",
7
7
  "repository": {
8
8
  "type": "git",