smoothly 1.0.0 → 1.0.1-alpha.1
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/cjs/{Data-50d47740.js → Submit-02056bd9.js} +26 -1
- package/dist/cjs/Submit-02056bd9.js.map +1 -0
- package/dist/cjs/index.cjs.js +9 -8
- package/dist/cjs/index.cjs.js.map +1 -1
- package/dist/cjs/loader.cjs.js +1 -1
- package/dist/cjs/{smoothly-app_80.cjs.entry.js → smoothly-app_81.cjs.entry.js} +168 -140
- package/dist/cjs/smoothly-app_81.cjs.entry.js.map +1 -0
- package/dist/cjs/smoothly-trigger-sink.cjs.entry.js +3 -3
- package/dist/cjs/smoothly-trigger-sink.cjs.entry.js.map +1 -1
- package/dist/cjs/smoothly-trigger-source.cjs.entry.js +3 -3
- package/dist/cjs/smoothly-trigger-source.cjs.entry.js.map +1 -1
- package/dist/cjs/smoothly.cjs.js +1 -1
- package/dist/collection/collection-manifest.json +1 -0
- package/dist/collection/components/button/index.js +1 -1
- package/dist/collection/components/button/index.js.map +1 -1
- package/dist/collection/components/form/index.js +86 -77
- package/dist/collection/components/form/index.js.map +1 -1
- package/dist/collection/components/input/demo/controlled-form/index.js +50 -0
- package/dist/collection/components/input/demo/controlled-form/index.js.map +1 -0
- package/dist/collection/components/input/demo/controlled-form/style.css +7 -0
- package/dist/collection/components/input/demo/index.js +2 -2
- package/dist/collection/components/input/demo/index.js.map +1 -1
- package/dist/collection/components/input/submit/index.js +3 -12
- package/dist/collection/components/input/submit/index.js.map +1 -1
- package/dist/collection/model/Submit.js +14 -0
- package/dist/collection/model/Submit.js.map +1 -0
- package/dist/collection/model/index.js +1 -0
- package/dist/collection/model/index.js.map +1 -1
- package/dist/collection/smoothly.js +1 -1
- package/dist/collection/smoothly.js.map +1 -1
- package/dist/custom-elements/index.d.ts +6 -0
- package/dist/custom-elements/index.js +168 -113
- package/dist/custom-elements/index.js.map +1 -1
- package/dist/esm/{Data-c8093b5a.js → Submit-959d713d.js} +26 -2
- package/dist/esm/Submit-959d713d.js.map +1 -0
- package/dist/esm/index.js +2 -1
- package/dist/esm/index.js.map +1 -1
- package/dist/esm/loader.js +1 -1
- package/dist/esm/{smoothly-app_80.entry.js → smoothly-app_81.entry.js} +137 -110
- package/dist/esm/smoothly-app_81.entry.js.map +1 -0
- package/dist/esm/smoothly-trigger-sink.entry.js +1 -1
- package/dist/esm/smoothly-trigger-source.entry.js +1 -1
- package/dist/esm/smoothly.js +1 -1
- package/dist/smoothly/index.esm.js +1 -1
- package/dist/smoothly/index.esm.js.map +1 -1
- package/dist/smoothly/p-051d2b23.js +2 -0
- package/dist/smoothly/p-051d2b23.js.map +1 -0
- package/dist/smoothly/p-34b080fb.entry.js +2 -0
- package/dist/smoothly/p-34b080fb.entry.js.map +1 -0
- package/dist/smoothly/{p-635c813e.entry.js → p-ed11e814.entry.js} +2 -2
- package/dist/smoothly/{p-7a69b43f.entry.js → p-f0720fed.entry.js} +2 -2
- package/dist/smoothly/smoothly.esm.js +1 -1
- package/dist/smoothly/smoothly.esm.js.map +1 -1
- package/dist/types/components/form/index.d.ts +9 -8
- package/dist/types/components/input/demo/controlled-form/index.d.ts +12 -0
- package/dist/types/components.d.ts +16 -5
- package/dist/types/model/Submit.d.ts +13 -0
- package/dist/types/model/index.d.ts +1 -0
- package/dist/types/smoothly.d.ts +1 -1
- package/package.json +1 -1
- package/dist/cjs/Data-50d47740.js.map +0 -1
- package/dist/cjs/smoothly-app_80.cjs.entry.js.map +0 -1
- package/dist/esm/Data-c8093b5a.js.map +0 -1
- package/dist/esm/smoothly-app_80.entry.js.map +0 -1
- package/dist/smoothly/p-2e986022.js +0 -2
- package/dist/smoothly/p-2e986022.js.map +0 -1
- package/dist/smoothly/p-303520d1.entry.js +0 -2
- package/dist/smoothly/p-303520d1.entry.js.map +0 -1
- /package/dist/smoothly/{p-635c813e.entry.js.map → p-ed11e814.entry.js.map} +0 -0
- /package/dist/smoothly/{p-7a69b43f.entry.js.map → p-f0720fed.entry.js.map} +0 -0
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
class t{get name(){return typeof this._name=="function"?this._name():this._name}get condition(){return typeof this._condition=="function"?this._condition():this._condition}optional(){return new e(this)}readonly(){return new n(this)}array(...t){return s(this,...t)}constructor(t,e){this._name=t;this._condition=e;this.get=t=>this.is(t)?this.getValue(t):undefined;this.flaw=t=>this.is(t)?{type:this.name,...this.condition?{condition:this.condition}:undefined,isFlaw:false,message:"This type is correct."}:{...this.condition?{condition:this.condition}:undefined,...this.createFlaw(t),type:this.name}}getValue(t){return t}createFlaw(t){return{}}createFlawFromType(t,e){return"createFlaw"in t&&typeof t.createFlaw=="function"?t.createFlaw(e):t.flaw(e)}}class e extends t{constructor(t){super((()=>t.name+" | undefined"),t.condition);this.backend=t;this.is=t=>t==undefined||this.backend.is(t)}createFlaw(t){return this.createFlawFromType(this.backend,t)}}class n extends t{constructor(t){super((()=>`Readonly<${t.name}>`),t.condition);this.backend=t;this.is=t=>t==undefined||this.backend.is(t)}createFlaw(t){return this.createFlawFromType(this.backend,t)}}function s(t,...e){return new r(t,e)}const i={length:{is:(t,e)=>t.length==e,condition:t=>`length == ${t}`},minLength:{is:(t,e)=>t.length>=e,condition:t=>`minLength == ${t}`},maxLength:{is:(t,e)=>t.length<=e,condition:t=>`maxLength == ${t}`}};class r extends t{constructor(t,e){super((()=>this.baseName()+"[]"),e.length>0?e.map((t=>i[t.criteria].condition(t.value))).join(" & "):undefined);this.itemType=t;this.options=e;this.is=t=>globalThis.Array.isArray(t)&&this.options.every((e=>i[e.criteria].is(t,e.value)))&&t.every((t=>this.itemType.is(t)))}baseName(){return this.itemType.name.includes(" ")?`(${this.itemType.name})`:this.itemType.name}itemName(t){return`${this.baseName()}[${t}]`}createFlaw(t){const e=globalThis.Array.isArray(t)&&t.flatMap(((t,e)=>{const n=this.itemType.flaw(t);return n.isFlaw??true?[{...n,type:this.itemName(e)}]:[]}))||[];return{...e.length>0?{flaws:e}:undefined}}getValue(t){return t.map((t=>this.itemType.get(t)))}}class o extends t{constructor(t){super(t==undefined?"boolean":t?"true":"false");this.booleanValue=t;this.is=t=>typeof t=="boolean"&&(this.booleanValue==undefined||t==this.booleanValue)}}function u(t){return new o(t)}class c extends t{constructor(t,e){super(e??(()=>(this.backend??=t()).name),(()=>(this.backend??=t()).condition));this.factory=t;this.is=t=>(this.backend??=this.factory()).is(t);this.get=t=>this.backend.get(t)}createFlaw(t){return this.createFlawFromType(this.backend??=this.factory(),t)}}function a(t,e){return new c(t,e)}class h extends t{constructor(t,e,n){super((()=>n??(this.baseType?`${this.baseType.name} & `:"")+`{${globalThis.Object.entries(this.properties).map((([t,e])=>`${t}: ${e.name}`)).join(", ")}}`));this.baseType=t;this.properties=e;this.is=t=>!!(t&&(this.baseType==undefined||this.baseType.is(t))&&typeof t=="object"&&!globalThis.Array.isArray(t)&&globalThis.Object.entries(this.properties).every((([e,n])=>n.is(t[e]))))}extend(t,e){return new h(this,t,e)}omit(t,e){return new h(this.baseType?.omit(t),globalThis.Object.fromEntries(globalThis.Object.entries(this.properties).filter((([e])=>!t.includes(e)))),e??`Omit<${this.name}, ${t.map((t=>`"${String(t)}"`)).join(" | ")}>`)}pick(t,e){return new h(this.baseType?.pick(t),globalThis.Object.fromEntries(globalThis.Object.entries(this.properties).filter((([e])=>t.includes(e)))),e??`Pick<${this.name}, ${t.map((t=>`"${String(t)}"`)).join(" | ")}>`)}createFlaw(t){return{flaws:[this.baseType?this.baseType.flaw(t)?.flaws??[]:[],globalThis.Object.entries(this.properties).map((([e,n])=>[e,n.flaw(t?.[e])])).map((([t,e])=>(e?.isFlaw??true)&&{property:t,...e})).filter((t=>t))].flat().filter((t=>t?.isFlaw??true))}}getValue(t){const e=this.baseType?this.baseType.getValue(t):{};if(e)for(const[n,s]of globalThis.Object.entries(this.properties))if(n in t)e[n]=s.get(t[n]);return e}}function l(t,e){return new h(undefined,t??{},e)}class f extends t{constructor(t){super(typeof t=="string"?`"${t}"`:"string",(()=>{const t=this.getConditionObject();return t instanceof RegExp?`/${t.source}/${t.flags}`:globalThis.Object.keys(t).map((t=>`"${t}"`)).join(" | ")}));this.stringCondition=t;this.is=t=>{const e=this.getConditionObject();return typeof t=="string"&&(e instanceof RegExp?e.test(t):typeof e=="object"?t in e:e)}}getConditionObject(){return this.conditionObject??=Array.isArray(this.stringCondition)?this.stringCondition.reduce(((t,e)=>{t[e]=true;return t}),globalThis.Object.create(null)):typeof this.stringCondition=="string"?{[this.stringCondition]:true}:typeof this.stringCondition=="object"?this.stringCondition:true}}function d(t){return new f(t)}var g;(function(t){t.type=l({message:d().optional(),isFlaw:u().optional(),property:d().optional(),type:d(),flaws:s(a((()=>t.type))).optional(),condition:d().optional()},"Flaw");t.is=t.type.is;t.flaw=t.type.flaw})(g||(g={}));class p extends t{constructor(t,e){super(t);this.isFunction=e;this.is=t=>this.isFunction(t)}}function b(t,e){return new p(t,e)}const w={positive:{is:t=>t>0,condition:"> 0"},negative:{is:t=>t<0,condition:"< 0"},integer:{is:t=>Number.isInteger(t),condition:"Number.isInteger"}};function y(t){return typeof t=="number"?[e=>e==t," == "+t.toString()]:(t=>Array.isArray(t)&&t.every((t=>typeof t=="number")))(t)?[e=>t.map(y).some((t=>t[0](e))),t.join(" | ")]:(t=>Array.isArray(t)&&t.every((t=>typeof t=="string"&&t in w)))(t)?[e=>t.map(y).every((t=>t[0](e))),t.map(y).map((t=>t[1])).join(" & ")]:typeof t==="function"?[t,"custom"]:t in w?[w[t].is,w[t].condition]:[()=>false,"Unknown criteria"]}class m extends t{constructor(t,e){super("number",e);this.isFunction=t;this.is=t=>typeof t=="number"&&!Number.isNaN(t-t)&&(!this.isFunction||this.isFunction(t))}}function v(t){const[e,n]=t==undefined?[undefined,undefined]:y(t);return new m(e,n)}class $ extends t{constructor(t,e){super((()=>`Record<${t.name}, ${e.name}>`));this.keyType=t;this.valueType=e;this.is=t=>!!(t&&typeof t=="object"&&!globalThis.Array.isArray(t)&&globalThis.Object.entries(t).every((([t,e])=>this.keyType.is(this.keyType.name=="number"&&`${+t}`==t?+t:t)&&this.valueType.is(e))))}createFlaw(t){return{flaws:t&&typeof t=="object"&&!globalThis.Array.isArray(t)&&globalThis.Object.entries(t).flatMap((([t,e])=>[this.keyType.flaw(this.keyType.name=="number"&&`${+t}`==t?+t:t),this.valueType.flaw(e)].map(((e,n)=>(e.isFlaw??true)&&{property:t+` (${["key","value"][n]})`,...e})).filter(Boolean)))}}getValue(t){return globalThis.Object.fromEntries(globalThis.Object.entries(t).map((([t,e])=>[t,this.valueType.get(e)])))}}function T(t,e){return new $(t,e)}class j extends t{constructor(...t){super((()=>t.map((t=>t.name)).join(" | ")));this.is=t=>this.types.some((e=>e.is(t)));this.types=t}createFlaw(t){return{flaws:this.types.map((e=>e.flaw(t))).filter((t=>t))}}getValue(t){return this.types.find((e=>e.is(t)))?.get(t)}}function x(...t){return new j(...t)}class F extends t{constructor(){super(...arguments);this.is=t=>t===undefined}}function O(t){return new F(t??"undefined")}var k;(function(t){t.types=["default","primary","secondary","tertiary","success","warning","danger","light","medium","dark"];t.type=d(t.types);t.is=t.type.is})(k||(k={}));var L;(function(t){const e={"*":"https://ionicons.pages.dev/svg/${name}.svg"};const n={};async function s(t){const e=await globalThis.fetch(t);return e.ok?e.text():undefined}async function i(t){var i,r;const o=((i=e[t])!==null&&i!==void 0?i:e["*"]).replace("${name}",t);return(r=n[o])!==null&&r!==void 0?r:n[o]=s(o)}t.load=i;function r(t,...n){for(const s of n)e[s]=t}t.add=r})(L||(L={}));class N{static is(t){return typeof t=="object"&&typeof t.destination=="string"&&t.content!=undefined}static send(t,e,n){if(N.is(t)&&n==undefined){n=e;if(!n)n=window;const s=t.destination.split("#",2);t={destination:s[1],content:t.content};n.postMessage(t,s[0])}else if(typeof n!="string"){if(!n)n=window;if(typeof t=="string")N.send({destination:t,content:e},n)}}static listen(t,e,n){const s=t.split("#",2);let i="";if(s.length==2){t=s[0];i=s[1]}(n||window).addEventListener("message",(n=>{const s=n.data;if(N.is(s)&&(t=="*"||n.origin==t)&&(i==""||s.destination==i))e(s.destination,s.content)}))}}class V{static is(t){return typeof t=="object"&&typeof t.name=="string"}}var B=undefined&&undefined.__classPrivateFieldGet||function(t,e,n,s){if(n==="a"&&!s)throw new TypeError("Private accessor was defined without a getter");if(typeof e==="function"?t!==e||!s:!e.has(t))throw new TypeError("Cannot read private member from an object whose class did not declare it");return n==="m"?s:n==="a"?s.call(t):s?s.value:e.get(t)};var E;class R{constructor(){E.set(this,{})}listen(t,e,n){var s,i;(i=(s=B(this,E,"f")[t])===null||s===void 0?void 0:s.push(e))!==null&&i!==void 0?i:B(this,E,"f")[t]=[e];if(!(n===null||n===void 0?void 0:n.lazy))e(this[t])}unlisten(t,e){var n,s;const i=(n=B(this,E,"f")[t])===null||n===void 0?void 0:n.indexOf(e);i!=undefined&&i>=0&&((s=B(this,E,"f")[t])===null||s===void 0?void 0:s.splice(i,1))}batchListen(t,e){for(const n in t){const s=t[n];s&&this.listen(n,s,e)}}batchUnlisten(t){for(const e in t){const n=t[e];n&&this.unlisten(e,n)}}static load(t){const e=t.listenable;return Object.defineProperties(e,n(t));function n(t){return Object.fromEntries(Object.entries(Object.assign(Object.assign({},Object.getOwnPropertyDescriptors(t)),Object.getOwnPropertyDescriptors(Object.getPrototypeOf(t)))).map((([n,s])=>[n,typeof s.value=="function"?{get(){return t[n].bind(t)}}:s.writable||s.set?{get(){return t[n]},set(s){var i;t[n]=s;(i=B(e,E,"f")[n])===null||i===void 0?void 0:i.forEach((e=>e(t[n])))}}:{get(){return t[n]}}])))}}}E=new WeakMap;var A;(function(t){t.valueType=x(d(),v(),u(),b("Blob",(t=>t instanceof Blob)),O());t.type=T(d(),x(a((()=>t.type),"Data"),t.valueType));function e(t,[n,...s],i){const r=t[n!==null&&n!==void 0?n:""];return Object.assign(Object.assign({},t),{[n!==null&&n!==void 0?n:""]:!s.length?i:e(typeof r=="object"&&!(r instanceof Blob)?r:{},s,i)})}t.set=e;function n(t){return s({},t)}t.deepen=n;function s(t,n){return Object.entries(n).reduce(((t,[n,s])=>e(t,n.split("."),s)),t)}t.merge=s})(A||(A={}));export{k as C,A as D,L as I,R as L,N as M,V as T,t as a,u as b,l as o,T as r,d as s,x as u};
|
|
2
|
-
//# sourceMappingURL=p-2e986022.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"names":["Type","name","this","_name","condition","_condition","optional","IslyOptional","readonly","IslyReadonly","array","options","constructor","get","value","is","getValue","undefined","flaw","type","isFlaw","message","createFlaw","createFlawFromType","backend","super","itemType","IslyArray","criteriaFunctions","length","optionValue","minLength","maxLength","baseName","map","c","criteria","join","globalThis","Array","isArray","every","option","item","includes","itemName","index","flaws","flatMap","subFlaw","IslyBoolean","booleanValue","boolean","IslyLazy","factory","lazy","IslyObject","baseType","properties","Object","entries","property","extend","omit","omits","fromEntries","filter","key","String","pick","picks","flat","result","object","IslyString","stringCondition","conditionObject","getConditionObject","RegExp","source","flags","keys","test","reduce","current","create","string","Flaw","IslyFromIs","isFunction","fromIs","positive","negative","integer","Number","isInteger","fromCriteria","toString","some","IslyNumber","isNaN","number","IslyRecord","keyType","valueType","propertyValue","Boolean","record","IslyUnion","types","find","union","IslyUndefined","arguments","islyUndefined","Color","isly.string","Icon","names","cache","async","fetch","url","response","ok","text","load","_a","replace","_b","add","n","Message","static","destination","content","context","window","split","postMessage","send","origin","handle","splitted","addEventListener","e","data","Trigger","Listenable","_Listenable_listeners","set","listen","listener","__classPrivateFieldGet","push","unlisten","indexOf","splice","batchListen","listeners","batchUnlisten","listenable","defineProperties","getProperties","assign","getOwnPropertyDescriptors","getPrototypeOf","descriptor","bind","writable","forEach","Data","isly.union","isly.number","isly.boolean","isly.fromIs","Blob","isly.undefined","isly.record","isly.lazy","head","tail","deepen","merge","changes","r"],"sources":["./node_modules/isly/dist/mjs/Type.js","./node_modules/isly/dist/mjs/boolean.js","./node_modules/isly/dist/mjs/lazy.js","./node_modules/isly/dist/mjs/object.js","./node_modules/isly/dist/mjs/string.js","./node_modules/isly/dist/mjs/Flaw.js","./node_modules/isly/dist/mjs/fromIs.js","./node_modules/isly/dist/mjs/number.js","./node_modules/isly/dist/mjs/record.js","./node_modules/isly/dist/mjs/union.js","./node_modules/isly/dist/mjs/undefined.js","./src/model/Color.ts","./src/model/Icon.ts","./src/model/Message.ts","./src/model/Trigger.ts","./src/model/Listenable.ts","./src/model/Data.ts"],"sourcesContent":["export class Type {\n get name() {\n return typeof this._name == \"function\" ? this._name() : this._name;\n }\n get condition() {\n return typeof this._condition == \"function\" ? this._condition() : this._condition;\n }\n optional() {\n return new IslyOptional(this);\n }\n readonly() {\n return new IslyReadonly(this);\n }\n array(...options) {\n return array(this, ...options);\n }\n constructor(_name, _condition) {\n this._name = _name;\n this._condition = _condition;\n /**\n * Return the value if the value is valid for the type, otherwise undefined.\n * For objects, unknown properties are filtered.\n *\n * Eg: isly.number().value(NaN) returns undefined\n */\n this.get = value => (this.is(value) ? this.getValue(value) : undefined);\n /**\n * Return a flaw object, describing the flaws of the value compared to expected type.\n *\n * If it is a correct value, according to the type, it returns a Flaw with the message `{message:\"This type is correct.\", isFlaw: false, ... }`\n *\n * Implemented as a closure.\n */\n this.flaw = value => {\n return this.is(value)\n ? {\n type: this.name,\n ...(this.condition ? { condition: this.condition } : undefined),\n isFlaw: false,\n message: \"This type is correct.\",\n }\n : {\n ...(this.condition ? { condition: this.condition } : undefined),\n ...this.createFlaw(value),\n type: this.name,\n };\n };\n }\n getValue(value) {\n return value;\n }\n /**\n * Override this to create custom Flaws.\n * Not necessary for simple types.\n */\n createFlaw(value) {\n return {};\n }\n /**\n * Used by types that use a backend type.\n */\n createFlawFromType(backend, value) {\n return \"createFlaw\" in backend && typeof backend.createFlaw == \"function\"\n ? backend.createFlaw(value)\n : backend.flaw(value);\n }\n}\nclass IslyOptional extends Type {\n constructor(backend) {\n super(() => backend.name + \" | undefined\", backend.condition);\n this.backend = backend;\n this.is = (value => value == undefined || this.backend.is(value));\n }\n createFlaw(value) {\n return this.createFlawFromType(this.backend, value);\n }\n}\nclass IslyReadonly extends Type {\n constructor(backend) {\n super(() => `Readonly<${backend.name}>`, backend.condition);\n this.backend = backend;\n this.is = (value => value == undefined || this.backend.is(value));\n }\n createFlaw(value) {\n return this.createFlawFromType(this.backend, value);\n }\n}\nexport function array(itemType, ...options) {\n return new IslyArray(itemType, options);\n}\nconst criteriaFunctions = {\n length: {\n is: (value, optionValue) => value.length == optionValue,\n condition: optionValue => `length == ${optionValue}`,\n },\n minLength: {\n is: (value, optionValue) => value.length >= optionValue,\n condition: optionValue => `minLength == ${optionValue}`,\n },\n maxLength: {\n is: (value, optionValue) => value.length <= optionValue,\n condition: optionValue => `maxLength == ${optionValue}`,\n },\n};\nexport class IslyArray extends Type {\n constructor(itemType, options) {\n super(() => this.baseName() + \"[]\", options.length > 0 ? options.map(c => criteriaFunctions[c.criteria].condition(c.value)).join(\" & \") : undefined);\n this.itemType = itemType;\n this.options = options;\n this.is = (value => globalThis.Array.isArray(value) &&\n this.options.every(option => criteriaFunctions[option.criteria].is(value, option.value)) &&\n value.every(item => this.itemType.is(item)));\n }\n baseName() {\n return this.itemType.name.includes(\" \") ? `(${this.itemType.name})` : this.itemType.name;\n }\n itemName(index) {\n return `${this.baseName()}[${index}]`;\n }\n createFlaw(value) {\n const flaws = (globalThis.Array.isArray(value) &&\n value.flatMap((item, index) => {\n const subFlaw = this.itemType.flaw(item);\n return subFlaw.isFlaw ?? true ? [{ ...subFlaw, type: this.itemName(index) }] : [];\n })) ||\n [];\n return {\n ...(flaws.length > 0 ? { flaws } : undefined),\n };\n }\n getValue(value) {\n return value.map(item => this.itemType.get(item));\n }\n}\n//# sourceMappingURL=Type.js.map","import { Type } from \"./Type\";\nclass IslyBoolean extends Type {\n constructor(booleanValue) {\n super(booleanValue == undefined ? \"boolean\" : booleanValue ? \"true\" : \"false\");\n this.booleanValue = booleanValue;\n this.is = (value => typeof value == \"boolean\" && (this.booleanValue == undefined || value == this.booleanValue));\n }\n}\nexport function boolean(booleanValue) {\n return new IslyBoolean(booleanValue);\n}\n//# sourceMappingURL=boolean.js.map","import { Type } from \"./Type\";\nclass IslyLazy extends Type {\n constructor(factory, name) {\n super(name ?? (() => (this.backend ??= factory()).name), () => (this.backend ??= factory()).condition);\n this.factory = factory;\n this.is = (value => (this.backend ??= this.factory()).is(value));\n this.get = value => this.backend.get(value);\n }\n createFlaw(value) {\n return this.createFlawFromType((this.backend ??= this.factory()), value);\n }\n}\n/**\n * Late evaluation of a type\n * Can be used for for recursive types.\n *\n * @param factory\n * @param name Provide a name, to avoid infinite loop if the type i recursive\n * @returns\n */\nexport function lazy(factory, name) {\n return new IslyLazy(factory, name);\n}\n//# sourceMappingURL=lazy.js.map","import { Type } from \"./Type\";\nclass IslyObject extends Type {\n constructor(baseType, properties, name) {\n super(() => name ??\n (this.baseType ? `${this.baseType.name} & ` : \"\") +\n `{${globalThis.Object.entries(this.properties)\n .map(([property, type]) => `${property}: ${type.name}`)\n .join(\", \")}}`);\n this.baseType = baseType;\n this.properties = properties;\n this.is = (value => !!(value &&\n (this.baseType == undefined || this.baseType.is(value)) &&\n typeof value == \"object\" &&\n !globalThis.Array.isArray(value) &&\n globalThis.Object.entries(this.properties).every(([property, type]) => type.is(value[property]))));\n }\n extend(properties, name) {\n return new IslyObject(this, properties, name);\n }\n omit(omits, name) {\n return new IslyObject(this.baseType?.omit(omits), globalThis.Object.fromEntries(globalThis.Object.entries(this.properties).filter(([key]) => !omits.includes(key))), name ?? `Omit<${this.name}, ${omits.map(key => `\"${String(key)}\"`).join(\" | \")}>`);\n }\n pick(picks, name) {\n return new IslyObject(this.baseType?.pick(picks), globalThis.Object.fromEntries(globalThis.Object.entries(this.properties).filter(([key]) => picks.includes(key))), name ?? `Pick<${this.name}, ${picks.map(key => `\"${String(key)}\"`).join(\" | \")}>`);\n }\n createFlaw(value) {\n return {\n flaws: [\n this.baseType ? this.baseType.flaw(value)?.flaws ?? [] : [],\n globalThis.Object.entries(this.properties)\n .map(([property, type]) => [property, type.flaw(value?.[property])])\n .map(([property, flaw]) => (flaw?.isFlaw ?? true) && { property, ...flaw })\n .filter(flaw => flaw),\n ]\n .flat()\n .filter(flaw => flaw?.isFlaw ?? true),\n };\n }\n /**\n * get-function on a object returns a object with only specified properties\n */\n getValue(value) {\n const result = this.baseType ? this.baseType.getValue(value) : {};\n if (result)\n for (const [key, type] of globalThis.Object.entries(this.properties))\n if (key in value)\n result[key] = type.get(value[key]);\n return result;\n }\n}\nexport function object(properties, name) {\n return new IslyObject(undefined, properties ?? {}, name);\n}\n//# sourceMappingURL=object.js.map","import { Type } from \"./Type\";\nclass IslyString extends Type {\n constructor(stringCondition) {\n super(typeof stringCondition == \"string\" ? `\"${stringCondition}\"` : \"string\", () => {\n const conditionObject = this.getConditionObject();\n return conditionObject instanceof RegExp\n ? `/${conditionObject.source}/${conditionObject.flags}`\n : globalThis.Object.keys(conditionObject)\n .map(key => `\"${key}\"`)\n .join(\" | \");\n });\n this.stringCondition = stringCondition;\n this.is = (value => {\n const conditionObject = this.getConditionObject();\n return (typeof value == \"string\" &&\n (conditionObject instanceof RegExp\n ? conditionObject.test(value)\n : typeof conditionObject == \"object\"\n ? value in conditionObject //TODO, avoid \"hasOwnProperty toString etc.\"\n : conditionObject));\n });\n }\n getConditionObject() {\n return (this.conditionObject ??= Array.isArray(this.stringCondition)\n ? this.stringCondition.reduce((result, current) => {\n result[current] = true;\n return result;\n }, globalThis.Object.create(null))\n : typeof this.stringCondition == \"string\"\n ? { [this.stringCondition]: true }\n : typeof this.stringCondition == \"object\" // Record or RegExp!\n ? this.stringCondition\n : true);\n }\n}\nexport function string(condition) {\n return new IslyString(condition);\n}\n//# sourceMappingURL=string.js.map","import { boolean } from \"./boolean\";\nimport { lazy } from \"./lazy\";\nimport { object } from \"./object\";\nimport { string } from \"./string\";\nimport { array } from \"./Type\";\nexport var Flaw;\n(function (Flaw) {\n Flaw.type = object({\n message: string().optional(),\n isFlaw: boolean().optional(),\n property: string().optional(),\n type: string(),\n flaws: array(lazy(() => Flaw.type)).optional(),\n condition: string().optional(),\n }, \"Flaw\");\n Flaw.is = Flaw.type.is;\n Flaw.flaw = Flaw.type.flaw;\n})(Flaw || (Flaw = {}));\n//# sourceMappingURL=Flaw.js.map","import { Type } from \"./Type\";\nclass IslyFromIs extends Type {\n constructor(name, isFunction) {\n super(name);\n this.isFunction = isFunction;\n this.is = (value => this.isFunction(value));\n }\n}\nexport function fromIs(name, is) {\n return new IslyFromIs(name, is);\n}\n//# sourceMappingURL=fromIs.js.map","import { Type } from \"./Type\";\nconst criteriaFunctions = {\n positive: {\n is: (value) => value > 0,\n condition: \"> 0\",\n },\n negative: {\n is: (value) => value < 0,\n condition: \"< 0\",\n },\n integer: {\n is: (value) => Number.isInteger(value),\n condition: \"Number.isInteger\",\n },\n};\nfunction fromCriteria(criteria) {\n return /* Eg: criteria == 42 */ typeof criteria == \"number\"\n ? [value => value == criteria, \" == \" + criteria.toString()]\n : // Eg: criteria == [0,1,2]\n ((c) => Array.isArray(c) && c.every(c => typeof c == \"number\"))(criteria)\n ? [value => criteria.map(fromCriteria).some(c => c[0](value)), criteria.join(\" | \")]\n : // Eg: criteria == [\"positive\", \"negative\"]\n ((c) => Array.isArray(c) && c.every(c => typeof c == \"string\" && c in criteriaFunctions))(criteria)\n ? [\n value => criteria.map(fromCriteria).every(c => c[0](value)),\n criteria\n .map(fromCriteria)\n .map(c => c[1])\n .join(\" & \"),\n ]\n : // Eg: criteria == () => true\n typeof criteria === \"function\"\n ? [criteria, \"custom\"]\n : // Eg: criteria == \"positive\"\n criteria in criteriaFunctions\n ? [criteriaFunctions[criteria].is, criteriaFunctions[criteria].condition]\n : // Eg: criteria is unknown\n [() => false, \"Unknown criteria\"];\n}\nclass IslyNumber extends Type {\n constructor(isFunction, condition) {\n super(\"number\", condition);\n this.isFunction = isFunction;\n this.is = (value => typeof value == \"number\" &&\n !Number.isNaN(value - value) && // NaN-NaN==NaN && Infinity-Infinity==NaN && (-Infinity)-(-Infinity)==NaN\n (!this.isFunction || this.isFunction(value)));\n }\n}\n/**\n * NaN, Infinite and -Infinite is not considered to be numbers by this type,\n * since that it is hardly ever desirable when validating input data.\n *\n * @param criteria\n * @returns\n */\nexport function number(criteria) {\n const [isFunction, condition] = criteria == undefined ? [undefined, undefined] : fromCriteria(criteria);\n return new IslyNumber(isFunction, condition);\n}\n//# sourceMappingURL=number.js.map","import { Type } from \"./Type\";\nclass IslyRecord extends Type {\n constructor(keyType, valueType) {\n super(() => `Record<${keyType.name}, ${valueType.name}>`);\n this.keyType = keyType;\n this.valueType = valueType;\n this.is = (value => !!(value &&\n typeof value == \"object\" &&\n !globalThis.Array.isArray(value) &&\n globalThis.Object.entries(value).every(([key, value]) => this.keyType.is(this.keyType.name == \"number\" && `${+key}` == key ? +key : key) && this.valueType.is(value))));\n }\n createFlaw(value) {\n return {\n flaws: value &&\n typeof value == \"object\" &&\n !globalThis.Array.isArray(value) &&\n globalThis.Object.entries(value).flatMap(([key, propertyValue]) => [\n this.keyType.flaw(this.keyType.name == \"number\" && `${+key}` == key ? +key : key),\n this.valueType.flaw(propertyValue),\n ]\n .map((flaw, index) => (flaw.isFlaw ?? true) && { property: key + ` (${[\"key\", \"value\"][index]})`, ...flaw })\n .filter(Boolean)),\n };\n }\n getValue(value) {\n return globalThis.Object.fromEntries(globalThis.Object.entries(value).map(([key, value]) => [key, this.valueType.get(value)]));\n }\n}\nexport function record(keyType, valueType) {\n return new IslyRecord(keyType, valueType);\n}\n//# sourceMappingURL=record.js.map","import { Type } from \"./Type\";\nclass IslyUnion extends Type {\n constructor(...types) {\n super(() => types.map(type => type.name).join(\" | \"));\n this.is = (value => this.types.some(type => type.is(value)));\n this.types = types;\n }\n createFlaw(value) {\n return {\n flaws: this.types.map(type => type.flaw(value)).filter(flaw => flaw),\n };\n }\n getValue(value) {\n return this.types.find(type => type.is(value))?.get(value);\n }\n}\nexport function union(...types) {\n return new IslyUnion(...types);\n}\n//# sourceMappingURL=union.js.map","import { Type } from \"./Type\";\nclass IslyUndefined extends Type {\n constructor() {\n super(...arguments);\n this.is = (value => value === undefined);\n }\n}\nexport function islyUndefined(name) {\n return new IslyUndefined(name ?? \"undefined\");\n}\n//# sourceMappingURL=undefined.js.map","import { isly } from \"isly\"\n\nexport type Color = typeof Color.types[number]\n\nexport namespace Color {\n\texport const types = [\n\t\t\"default\",\n\t\t\"primary\",\n\t\t\"secondary\",\n\t\t\"tertiary\",\n\t\t\"success\",\n\t\t\"warning\",\n\t\t\"danger\",\n\t\t\"light\",\n\t\t\"medium\",\n\t\t\"dark\",\n\t] as const\n\texport const type = isly.string(types)\n\texport const is = type.is\n}\n","type Name =\n\t| \"accessibility\"\n\t| \"add-circle\"\n\t| \"add\"\n\t| \"airplane\"\n\t| \"alarm\"\n\t| \"albums\"\n\t| \"alert-circle\"\n\t| \"alert\"\n\t| \"american-football\"\n\t| \"analytics\"\n\t| \"aperture\"\n\t| \"apps\"\n\t| \"archive\"\n\t| \"arrow-back-circle\"\n\t| \"arrow-back\"\n\t| \"arrow-down-circle\"\n\t| \"arrow-down\"\n\t| \"arrow-forward-circle\"\n\t| \"arrow-forward\"\n\t| \"arrow-redo-circle\"\n\t| \"arrow-redo\"\n\t| \"arrow-undo-circle\"\n\t| \"arrow-undo\"\n\t| \"arrow-up-circle\"\n\t| \"arrow-up\"\n\t| \"at-circle\"\n\t| \"at\"\n\t| \"attach\"\n\t| \"backspace\"\n\t| \"bag\"\n\t| \"bag-add\"\n\t| \"bag-check\"\n\t| \"bag-handle\"\n\t| \"balloon\"\n\t| \"ban\"\n\t| \"bandage\"\n\t| \"barbell\"\n\t| \"bar-chart\"\n\t| \"barcode\"\n\t| \"baseball\"\n\t| \"basketball\"\n\t| \"basket\"\n\t| \"battery-charging\"\n\t| \"battery-dead\"\n\t| \"battery-full\"\n\t| \"battery-half\"\n\t| \"beaker\"\n\t| \"bed\"\n\t| \"beer\"\n\t| \"bicycle\"\n\t| \"bluetooth\"\n\t| \"boat\"\n\t| \"body\"\n\t| \"bonfire\"\n\t| \"bowling-ball\"\n\t| \"bookmarks\"\n\t| \"bookmark\"\n\t| \"book\"\n\t| \"briefcase\"\n\t| \"browsers\"\n\t| \"brush\"\n\t| \"bug\"\n\t| \"build\"\n\t| \"bulb\"\n\t| \"business\"\n\t| \"bus\"\n\t| \"cafe\"\n\t| \"calculator\"\n\t| \"calendar\"\n\t| \"calendar-clear\"\n\t| \"calendar-number\"\n\t| \"call\"\n\t| \"camera-reverse\"\n\t| \"camera\"\n\t| \"card\"\n\t| \"caret-back-circle\"\n\t| \"caret-back\"\n\t| \"caret-down-circle\"\n\t| \"caret-down\"\n\t| \"caret-forward-circle\"\n\t| \"caret-forward\"\n\t| \"caret-up-circle\"\n\t| \"caret-up\"\n\t| \"car-sport\"\n\t| \"car\"\n\t| \"cart\"\n\t| \"cash\"\n\t| \"cellular\"\n\t| \"chatbox-ellipses\"\n\t| \"chatbox\"\n\t| \"chatbubble-ellipses\"\n\t| \"chatbubbles\"\n\t| \"chatbubble\"\n\t| \"checkbox\"\n\t| \"checkmark-circle\"\n\t| \"checkmark-done-circle\"\n\t| \"checkmark-done\"\n\t| \"checkmark\"\n\t| \"chevron-back-circle\"\n\t| \"chevron-back\"\n\t| \"chevron-down-circle\"\n\t| \"chevron-down\"\n\t| \"chevron-forward-circle\"\n\t| \"chevron-forward\"\n\t| \"chevron-up-circle\"\n\t| \"chevron-up\"\n\t| \"clipboard\"\n\t| \"close-circle\"\n\t| \"close\"\n\t| \"cloud-circle\"\n\t| \"cloud-done\"\n\t| \"cloud-download\"\n\t| \"cloud-offline\"\n\t| \"cloud\"\n\t| \"cloud-upload\"\n\t| \"cloudy-night\"\n\t| \"cloudy\"\n\t| \"code-download\"\n\t| \"code-slash\"\n\t| \"code\"\n\t| \"code-working\"\n\t| \"cog\"\n\t| \"color-fill\"\n\t| \"color-filter\"\n\t| \"color-palette\"\n\t| \"color-wand\"\n\t| \"compass\"\n\t| \"construct\"\n\t| \"contract\"\n\t| \"contrast\"\n\t| \"copy\"\n\t| \"create\"\n\t| \"crop\"\n\t| \"cube\"\n\t| \"cut\"\n\t| \"desktop\"\n\t| \"diamond\"\n\t| \"dice\"\n\t| \"disc\"\n\t| \"document-attach\"\n\t| \"document-lock\"\n\t| \"documents\"\n\t| \"document\"\n\t| \"document-text\"\n\t| \"download\"\n\t| \"duplicate\"\n\t| \"ear\"\n\t| \"earth\"\n\t| \"easel\"\n\t| \"egg\"\n\t| \"ellipse\"\n\t| \"ellipsis-horizontal-circle\"\n\t| \"ellipsis-horizontal\"\n\t| \"ellipsis-vertical-circle\"\n\t| \"ellipsis-vertical\"\n\t| \"enter\"\n\t| \"exit\"\n\t| \"expand\"\n\t| \"eyedrop\"\n\t| \"eye-off\"\n\t| \"eye\"\n\t| \"fast-food\"\n\t| \"female\"\n\t| \"file-tray-full\"\n\t| \"file-tray-stacked\"\n\t| \"file-tray\"\n\t| \"film\"\n\t| \"filter\"\n\t| \"filter-circle\"\n\t| \"finger-print\"\n\t| \"fish\"\n\t| \"fitness\"\n\t| \"flag\"\n\t| \"flame\"\n\t| \"flashlight\"\n\t| \"flash-off\"\n\t| \"flash\"\n\t| \"flask\"\n\t| \"flower\"\n\t| \"folder-open\"\n\t| \"folder\"\n\t| \"football\"\n\t| \"footsteps\"\n\t| \"funnel\"\n\t| \"game-controller\"\n\t| \"gift\"\n\t| \"git-branch\"\n\t| \"git-commit\"\n\t| \"git-compare\"\n\t| \"git-merge\"\n\t| \"git-network\"\n\t| \"git-pull-request\"\n\t| \"glasses\"\n\t| \"globe\"\n\t| \"golf\"\n\t| \"grid\"\n\t| \"hammer\"\n\t| \"hand-left\"\n\t| \"hand-right\"\n\t| \"happy\"\n\t| \"hardware-chip\"\n\t| \"headset\"\n\t| \"heart-circle\"\n\t| \"heart-dislike-circle\"\n\t| \"heart-dislike\"\n\t| \"heart-half\"\n\t| \"heart\"\n\t| \"help-buoy\"\n\t| \"help-circle\"\n\t| \"help\"\n\t| \"home\"\n\t| \"hourglass\"\n\t| \"ice-cream\"\n\t| \"id-card\"\n\t| \"images\"\n\t| \"image\"\n\t| \"infinite\"\n\t| \"information-circle\"\n\t| \"information\"\n\t| \"journal\"\n\t| \"invert-mode\"\n\t| \"keypad\"\n\t| \"key\"\n\t| \"language\"\n\t| \"laptop\"\n\t| \"layers\"\n\t| \"leaf\"\n\t| \"library\"\n\t| \"link\"\n\t| \"list-circle\"\n\t| \"list\"\n\t| \"locate\"\n\t| \"location\"\n\t| \"lock-closed\"\n\t| \"lock-open\"\n\t| \"log-in\"\n\t| \"logo-alipay\"\n\t| \"logo-amazon\"\n\t| \"logo-amplify\"\n\t| \"logo-android\"\n\t| \"logo-angular\"\n\t| \"logo-apple-appstore\"\n\t| \"logo-apple\"\n\t| \"logo-apple-ar\"\n\t| \"logo-behance\"\n\t| \"logo-bitbucket\"\n\t| \"logo-bitcoin\"\n\t| \"logo-buffer\"\n\t| \"logo-capacitor\"\n\t| \"logo-chrome\"\n\t| \"logo-closed-captioning\"\n\t| \"logo-codepen\"\n\t| \"logo-css3\"\n\t| \"logo-designernews\"\n\t| \"logo-deviantart\"\n\t| \"logo-discord\"\n\t| \"logo-docker\"\n\t| \"logo-dribbble\"\n\t| \"logo-dropbox\"\n\t| \"logo-edge\"\n\t| \"logo-electron\"\n\t| \"logo-euro\"\n\t| \"logo-facebook\"\n\t| \"logo-firebase\"\n\t| \"logo-firefox\"\n\t| \"logo-flickr\"\n\t| \"logo-foursquare\"\n\t| \"logo-github\"\n\t| \"logo-gitlab\"\n\t| \"logo-google-playstore\"\n\t| \"logo-google\"\n\t| \"logo-hackernews\"\n\t| \"logo-html5\"\n\t| \"logo-instagram\"\n\t| \"logo-ionic\"\n\t| \"logo-ionitron\"\n\t| \"logo-javascript\"\n\t| \"logo-laravel\"\n\t| \"logo-linkedin\"\n\t| \"logo-markdown\"\n\t| \"logo-mastodon\"\n\t| \"logo-medium\"\n\t| \"logo-microsoft\"\n\t| \"logo-nodejs\"\n\t| \"logo-no-smoking\"\n\t| \"logo-npm\"\n\t| \"logo-octocat\"\n\t| \"logo-paypal\"\n\t| \"logo-pinterest\"\n\t| \"logo-playstation\"\n\t| \"logo-pwa\"\n\t| \"logo-python\"\n\t| \"logo-react\"\n\t| \"logo-reddit\"\n\t| \"logo-rss\"\n\t| \"logo-sass\"\n\t| \"logo-skype\"\n\t| \"logo-slack\"\n\t| \"logo-snapchat\"\n\t| \"logo-soundcloud\"\n\t| \"logo-stackoverflow\"\n\t| \"logo-steam\"\n\t| \"logo-stencil\"\n\t| \"logo-tableau\"\n\t| \"logo-tiktok\"\n\t| \"logo-tumblr\"\n\t| \"logo-tux\"\n\t| \"logo-twitch\"\n\t| \"logo-twitter\"\n\t| \"logo-usd\"\n\t| \"log-out\"\n\t| \"logo-web-component\"\n\t| \"logo-venmo\"\n\t| \"logo-whatsapp\"\n\t| \"logo-vercel\"\n\t| \"logo-vimeo\"\n\t| \"logo-windows\"\n\t| \"logo-vk\"\n\t| \"logo-wordpress\"\n\t| \"logo-vue\"\n\t| \"logo-xbox\"\n\t| \"logo-xing\"\n\t| \"logo-yahoo\"\n\t| \"logo-yen\"\n\t| \"logo-youtube\"\n\t| \"magnet\"\n\t| \"mail-open\"\n\t| \"mail\"\n\t| \"mail-unread\"\n\t| \"male-female\"\n\t| \"male\"\n\t| \"man\"\n\t| \"map\"\n\t| \"medal\"\n\t| \"medical\"\n\t| \"medkit\"\n\t| \"megaphone\"\n\t| \"menu\"\n\t| \"mic-circle\"\n\t| \"mic-off-circle\"\n\t| \"mic-off\"\n\t| \"mic\"\n\t| \"moon\"\n\t| \"move\"\n\t| \"musical-notes\"\n\t| \"musical-note\"\n\t| \"navigate-circle\"\n\t| \"navigate\"\n\t| \"newspaper\"\n\t| \"notifications-circle\"\n\t| \"notifications-off-circle\"\n\t| \"notifications-off\"\n\t| \"notifications\"\n\t| \"nuclear\"\n\t| \"nutrition\"\n\t| \"open\"\n\t| \"options\"\n\t| \"paper-plane\"\n\t| \"partly-sunny\"\n\t| \"pause-circle\"\n\t| \"pause\"\n\t| \"paw\"\n\t| \"pencil\"\n\t| \"people-circle\"\n\t| \"people\"\n\t| \"person-add\"\n\t| \"person-circle\"\n\t| \"person-remove\"\n\t| \"person\"\n\t| \"phone-landscape\"\n\t| \"phone-portrait\"\n\t| \"pie-chart\"\n\t| \"pin\"\n\t| \"pint\"\n\t| \"pizza\"\n\t| \"planet\"\n\t| \"play-back-circle\"\n\t| \"play-back\"\n\t| \"play-circle\"\n\t| \"play-forward-circle\"\n\t| \"play-forward\"\n\t| \"play-skip-back-circle\"\n\t| \"play-skip-back\"\n\t| \"play-skip-forward-circle\"\n\t| \"play-skip-forward\"\n\t| \"play\"\n\t| \"podium\"\n\t| \"power\"\n\t| \"pricetags\"\n\t| \"prism\"\n\t| \"pricetag\"\n\t| \"print\"\n\t| \"pulse\"\n\t| \"push\"\n\t| \"qr-code\"\n\t| \"radio-button-off\"\n\t| \"radio-button-on\"\n\t| \"radio\"\n\t| \"rainy\"\n\t| \"reader\"\n\t| \"receipt\"\n\t| \"recording\"\n\t| \"refresh-circle\"\n\t| \"refresh\"\n\t| \"reload-circle\"\n\t| \"reload\"\n\t| \"remove-circle\"\n\t| \"remove\"\n\t| \"reorder-four\"\n\t| \"reorder-three\"\n\t| \"reorder-two\"\n\t| \"repeat\"\n\t| \"resize\"\n\t| \"restaurant\"\n\t| \"return-down-back\"\n\t| \"return-down-forward\"\n\t| \"return-up-back\"\n\t| \"return-up-forward\"\n\t| \"ribbon\"\n\t| \"rocket\"\n\t| \"rose\"\n\t| \"sad\"\n\t| \"save\"\n\t| \"scan-circle\"\n\t| \"scale\"\n\t| \"scan\"\n\t| \"school\"\n\t| \"search-circle\"\n\t| \"search\"\n\t| \"send\"\n\t| \"server\"\n\t| \"settings\"\n\t| \"shapes\"\n\t| \"share-social\"\n\t| \"share\"\n\t| \"shield-checkmark\"\n\t| \"shield-half\"\n\t| \"shield\"\n\t| \"shirt\"\n\t| \"shuffle\"\n\t| \"skull\"\n\t| \"snow\"\n\t| \"sparkles\"\n\t| \"speedometer\"\n\t| \"square\"\n\t| \"star-half\"\n\t| \"star\"\n\t| \"stats-chart\"\n\t| \"stop-circle\"\n\t| \"stop\"\n\t| \"stopwatch\"\n\t| \"storefront\"\n\t| \"subway\"\n\t| \"sunny\"\n\t| \"swap-horizontal\"\n\t| \"swap-vertical\"\n\t| \"sync-circle\"\n\t| \"sync\"\n\t| \"tablet-landscape\"\n\t| \"tablet-portrait\"\n\t| \"telescope\"\n\t| \"tennisball\"\n\t| \"terminal\"\n\t| \"text\"\n\t| \"thermometer\"\n\t| \"thumbs-down\"\n\t| \"thumbs-up\"\n\t| \"thunderstorm\"\n\t| \"ticket\"\n\t| \"timer\"\n\t| \"time\"\n\t| \"today\"\n\t| \"toggle\"\n\t| \"trail-sign\"\n\t| \"train\"\n\t| \"transgender\"\n\t| \"trash-bin\"\n\t| \"trash\"\n\t| \"trending-down\"\n\t| \"trending-up\"\n\t| \"triangle\"\n\t| \"trophy\"\n\t| \"tv\"\n\t| \"umbrella\"\n\t| \"unlink\"\n\t| \"videocam-off\"\n\t| \"walk\"\n\t| \"wallet\"\n\t| \"warning\"\n\t| \"watch\"\n\t| \"water\"\n\t| \"videocam\"\n\t| \"wifi\"\n\t| \"wine\"\n\t| \"volume-high\"\n\t| \"volume-low\"\n\t| \"volume-medium\"\n\t| \"volume-mute\"\n\t| \"volume-off\"\n\t| \"woman\"\n\ntype Variants = \"outline\" | \"sharp\"\nexport type Icon = Name | `${Name}-${Variants}`\n\nexport namespace Icon {\n\tconst names: Record<string, string | undefined> & { \"*\": string } = {\n\t\t\"*\": \"https://ionicons.pages.dev/svg/${name}.svg\",\n\t}\n\tconst cache: { [url: string]: Promise<string | undefined> | undefined } = {}\n\tasync function fetch(url: string): Promise<string | undefined> {\n\t\tconst response = await globalThis.fetch(url)\n\t\treturn response.ok ? response.text() : undefined\n\t}\n\texport async function load(name: string): Promise<string | undefined> {\n\t\tconst url = (names[name] ?? names[\"*\"]).replace(\"${name}\", name)\n\t\treturn cache[url] ?? (cache[url] = fetch(url))\n\t}\n\texport function add(url: string, ...name: string[]): void {\n\t\tfor (const n of name)\n\t\t\tnames[n] = url\n\t}\n}\n","export interface Message<T> {\n\tdestination: string\n\tcontent: T\n}\n\n// eslint-disable-next-line @typescript-eslint/no-unused-vars\nexport class Message<T> {\n\tstatic is(value: Message<any> | any): value is Message<any> {\n\t\treturn typeof value == \"object\" && typeof value.destination == \"string\" && value.content != undefined\n\t}\n\tstatic send(message: Message<any>, context?: Window): void\n\tstatic send(destination: string, content: any, context?: Window): void\n\tstatic send(message: string | Message<any>, content?: any | Window, context?: Window): void {\n\t\tif (Message.is(message) && context == undefined) {\n\t\t\tcontext = content as Window\n\t\t\tif (!context)\n\t\t\t\tcontext = window\n\t\t\tconst destination = message.destination.split(\"#\", 2)\n\t\t\tmessage = { destination: destination[1], content: message.content }\n\t\t\tcontext.postMessage(message, destination[0])\n\t\t} else if (typeof context != \"string\") {\n\t\t\tif (!context)\n\t\t\t\tcontext = window\n\t\t\tif (typeof message == \"string\")\n\t\t\t\tMessage.send({ destination: message, content }, context)\n\t\t}\n\t}\n\tstatic listen(origin: string, handle: (destination: string, content: any) => void, context?: Window): void {\n\t\tconst splitted = origin.split(\"#\", 2)\n\t\tlet destination = \"\"\n\t\tif (splitted.length == 2) {\n\t\t\torigin = splitted[0]\n\t\t\tdestination = splitted[1]\n\t\t}\n\t\t;(context || window).addEventListener(\"message\", (e: MessageEvent) => {\n\t\t\tconst message = e.data\n\t\t\tif (\n\t\t\t\tMessage.is(message) &&\n\t\t\t\t(origin == \"*\" || e.origin == origin) &&\n\t\t\t\t(destination == \"\" || message.destination == destination)\n\t\t\t)\n\t\t\t\thandle(message.destination, message.content)\n\t\t})\n\t}\n}\n","export interface Trigger {\n\tname: string\n\tvalue?: any\n}\nexport class Trigger {\n\tstatic is(value: Trigger | any): value is Trigger {\n\t\treturn typeof value == \"object\" && typeof value.name == \"string\"\n\t}\n}\n","export type WithListenable<T extends Record<string, any>> = T & Listenable<T>\n\nexport type CanBeListenable = Record<string, any>\n\nexport interface HasListenable<T extends CanBeListenable> {\n\treadonly listenable: WithListenable<T>\n}\n\nexport class Listenable<T extends CanBeListenable> {\n\t#listeners: Listeners<ListenableProperties<T>> = {}\n\tlisten<K extends keyof ListenableProperties<T>>(\n\t\tthis: T & Listenable<T>,\n\t\tproperty: K,\n\t\tlistener: Listener<T[K]>,\n\t\toptions?: { lazy?: boolean }\n\t): void {\n\t\tthis.#listeners[property]?.push(listener) ?? (this.#listeners[property] = [listener])\n\t\tif (!options?.lazy)\n\t\t\tlistener(this[property])\n\t}\n\tunlisten<K extends keyof ListenableProperties<T>>(property: K, listener: Listener<T[K]>): void {\n\t\tconst index = this.#listeners[property]?.indexOf(listener)\n\t\tindex != undefined && index >= 0 && this.#listeners[property]?.splice(index, 1)\n\t}\n\tbatchListen(this: T & Listenable<T>, listeners: ListenerBatch<T>, options?: { lazy?: boolean }) {\n\t\tfor (const key in listeners) {\n\t\t\tconst listener = listeners[key]\n\t\t\tlistener && this.listen(key, listener, options)\n\t\t}\n\t}\n\tbatchUnlisten(listeners: ListenerBatch<T>) {\n\t\tfor (const key in listeners) {\n\t\t\tconst listener = listeners[key]\n\t\t\tlistener && this.unlisten(key, listener)\n\t\t}\n\t}\n\n\tstatic load<T extends HasListenable<CanBeListenable>>(backend: T): WithListenable<T> {\n\t\tconst result = backend.listenable\n\n\t\treturn Object.defineProperties(result, getProperties(backend)) as WithListenable<T>\n\n\t\tfunction getProperties(backend: any) {\n\t\t\treturn Object.fromEntries(\n\t\t\t\t(\n\t\t\t\t\tObject.entries({\n\t\t\t\t\t\t...Object.getOwnPropertyDescriptors(backend),\n\t\t\t\t\t\t...Object.getOwnPropertyDescriptors(Object.getPrototypeOf(backend)),\n\t\t\t\t\t}) as [keyof T, PropertyDescriptor][]\n\t\t\t\t).map(([name, descriptor]) => [\n\t\t\t\t\tname,\n\t\t\t\t\ttypeof descriptor.value == \"function\"\n\t\t\t\t\t\t? {\n\t\t\t\t\t\t\t\tget() {\n\t\t\t\t\t\t\t\t\treturn backend[name].bind(backend)\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t }\n\t\t\t\t\t\t: descriptor.writable || descriptor.set\n\t\t\t\t\t\t? {\n\t\t\t\t\t\t\t\tget() {\n\t\t\t\t\t\t\t\t\treturn backend[name]\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\tset(value: any) {\n\t\t\t\t\t\t\t\t\tbackend[name] = value\n\t\t\t\t\t\t\t\t\tresult.#listeners[name]?.forEach(listener => listener(backend[name]))\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t }\n\t\t\t\t\t\t: {\n\t\t\t\t\t\t\t\tget() {\n\t\t\t\t\t\t\t\t\treturn backend[name]\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t },\n\t\t\t\t])\n\t\t\t)\n\t\t}\n\t}\n}\ntype ListenableProperties<T> = {\n\t// eslint-disable-next-line @typescript-eslint/ban-types\n\t[P in keyof T as T[P] extends Function ? never : P]: T[P]\n}\n\nexport type Listener<V> = (value: V) => void\nexport type Listeners<T> = {\n\t[K in keyof T]?: Listener<T[K]>[]\n}\n\nexport type ListenerBatch<T> = { [K in keyof ListenableProperties<T>]?: Listener<T[K]> }\n","import { isly } from \"isly\"\n\ntype Value = string | number | boolean | Blob | undefined\nexport type Data = { [name: string]: Data | Value }\n\nexport namespace Data {\n\texport const valueType = isly.union<Value, string, number, boolean, Blob, undefined>(\n\t\tisly.string(),\n\t\tisly.number(),\n\t\tisly.boolean(),\n\t\tisly.fromIs(\"Blob\", value => value instanceof Blob),\n\t\tisly.undefined()\n\t)\n\texport const type: isly.Type<Data> = isly.record<Data>(\n\t\tisly.string(),\n\t\tisly.union(\n\t\t\tisly.lazy(() => type, \"Data\"),\n\t\t\tvalueType\n\t\t)\n\t)\n\n\texport function set(data: Data, [head, ...tail]: string[], value: Value): Data {\n\t\tconst current = data[head ?? \"\"]\n\t\treturn {\n\t\t\t...data,\n\t\t\t[head ?? \"\"]: !tail.length\n\t\t\t\t? value\n\t\t\t\t: set(typeof current == \"object\" && !(current instanceof Blob) ? current : {}, tail, value),\n\t\t}\n\t}\n\texport function deepen(data: Record<string, Value>): Data {\n\t\treturn merge({}, data)\n\t}\n\texport function merge(data: Data, changes: Record<string, any>): Data {\n\t\treturn Object.entries(changes).reduce((r, [name, value]) => set(r, name.split(\".\"), value), data)\n\t}\n}\n"],"mappings":"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"}
|