@lucidclient/elements
Version:
A lightweight, reactive UI library that bridges HTML and JavaScript through attributes, powered by SolidJS. Adds reactive state and dynamic behaviors to markup while maintaining simplicity.
2 lines • 4.84 kB
JavaScript
;Object.defineProperty(exports, "__esModule", {value: true}); function _nullishCoalesce(lhs, rhsFn) { if (lhs != null) { return lhs; } else { return rhsFn(); } } function _optionalChain(ops) { let lastAccessLHS = undefined; let value = ops[0]; let i = 1; while (i < ops.length) { const op = ops[i]; const fn = ops[i + 1]; i += 2; if ((op === 'optionalAccess' || op === 'optionalCall') && value == null) { return undefined; } if (op === 'access' || op === 'optionalAccess') { lastAccessLHS = value; value = fn(value); } else if (op === 'call' || op === 'optionalCall') { value = fn((...args) => value.call(lastAccessLHS, ...args)); lastAccessLHS = undefined; } } return value; }var M={prefix:"[Elements]",defaults:{debug:!1,attributes:{prefix:"data-",selectors:{store:"store",ref:"ref",state:"state--",bind:"bind--",effect:"effect",handler:"handler--",loop:"loop"},seperators:{scope:":",handler:"."},denote:{action:"@",state:"$",index:":index:",index1:":indexOne:"}},specifier:""}},f= exports.a =M;var w={options:{debug:f.defaults.debug,attributes:f.defaults.attributes},started:!1,handlers:new Map,stores:new Map,storeModules:new Map,syncedElements:new Map},s= exports.b =w;var A=(e,r,t)=>{let n=`${s.options.attributes.prefix}${s.options.attributes.selectors.handler}${e}`,i=r===""?"":`\\.${r.replace(/\./g,"\\.")}`;return`[${n}${i}="${t}"]`},E= exports.c =A;var j=(e,r,t)=>{let n=[],i=u=>r.length===0?!0:r.some(c=>u.name.startsWith(c));function a(u,c){if(c!==!0)for(let p of u.attributes)i(p)&&n.push(p);for(let p of u.children)a(p)}return a(e,t),n},V= exports.d =j;var C=(e,r)=>!e||!r?void 0:r.split(".").reduce((n,i)=>{let a=i.match(/([^\[\]]+)|\[(\d+)\]/g);return a&&n.push(...a.map(u=>u.replace(/[\[\]]/g,""))),n},[]).slice(1).reduce((n,i)=>{if(n!=null&&typeof n=="object")return n[i]},e),d= exports.e =C;var I=e=>typeof e=="string"?"string":e===null?"null":e===void 0?"undefined":typeof e=="object"?Array.isArray(e)?"array":"object":typeof e=="boolean"?"boolean":typeof e=="number"?"number":"unknown",m= exports.f =I;var N=e=>{try{return typeof e=="string"?e:e===null?"null":e===void 0?"undefined":typeof e=="object"?JSON.stringify(e):String(e)}catch (e2){return String(e)}},R= exports.g =N;var O=e=>{if(!e)return null;if(e==="true")return!0;if(e==="false")return!1;if(e==="null")return null;if(e!=="undefined"){if(!Number.isNaN(Number(e)))return Number(e);if(e.trim().match(/^[{\[]/))try{return JSON.parse(e)}catch (e3){return e}return e}},H= exports.h =O;var P=e=>`${s.options.attributes.prefix}${e}`,T= exports.i =P;var B=(e,r)=>`${e}${s.options.attributes.seperators.scope}${r}`,x=B;var K=(e,r)=>r.startsWith(`${e}${s.options.attributes.seperators.scope}`),g=K;var J=e=>_nullishCoalesce(_optionalChain([e, 'access', _ => _.split, 'call', _2 => _2(s.options.attributes.seperators.scope), 'optionalAccess', _3 => _3[1]]), () => (e)),S=J;var W=e=>e.split(s.options.attributes.seperators.scope),h=W;var D=e=>e.includes(s.options.attributes.seperators.scope),k=D;var q={scopeValue:x,valueIsScoped:g,removeScope:S,splitValue:h,valueHasScope:k},$= exports.j =q;var z=e=>{let[r,t]=$.splitValue(e);if(!r||!t)return null;if(t.includes(f.defaults.attributes.denote.action))return{type:"action",scope:r,key:t.replace(f.defaults.attributes.denote.action,"")};if(t.includes(f.defaults.attributes.denote.state)){let n=t.replace(f.defaults.attributes.denote.state,"");return{type:"state",scope:r,key:y(n)}}return{type:"basic",scope:r,key:t}},b= exports.k =z;var F=(e,r)=>{let t=b(e);if(t===null)return null;let n=i=>{if(i[0].key===t.scope){if(t.type==="action"){let a=i[0].actions[t.key];return a===void 0?(l.warn(`Cannot find an action with the key of "${t.key}" on store "${t.scope}".`),null):{type:t.type,member:a,key:e}}if(t.type==="state"){let a=i[0].state[t.key];return a===void 0?(l.warn(`Cannot find state with the key of "${t.key}" on store "${t.scope}".`),null):{type:t.type,member:a,key:e}}}return null};if(r)return n(r);for(let i of s.stores.values()){let a=n(i);if(a!==null)return a}return null},G= exports.l =F;var L=async(e,r)=>{if(e.type==="action"){let i=e.member();return await Promise.resolve(i)}let t=e.member[0]();if(r)return t;let n=m(t);return n==="object"||n==="array"?d(t,e.key):t},Q= exports.m =L;var U=e=>{let r=e.indexOf("."),t=e.indexOf("[");return r===-1&&t===-1?e:t===-1||r!==-1&&r<t?_nullishCoalesce(e.split(".")[0], () => (e)):_nullishCoalesce(e.split("[")[0], () => (e))},y= exports.n =U;var X=(e,r)=>s.options.debug||r?console.debug(`${f.prefix} ${e}`):void 0,Y=e=>console.warn(`${f.prefix} ${e}`),l= exports.o ={debug:X,warn:Y};exports.a = f; exports.b = s; exports.c = E; exports.d = V; exports.e = d; exports.f = m; exports.g = R; exports.h = H; exports.i = T; exports.j = $; exports.k = b; exports.l = G; exports.m = Q; exports.n = y; exports.o = l;
//# sourceMappingURL=chunk-JAV2JQW5.cjs.map