diff --git a/README.md b/README.md index 44ad6abe..4164f2c2 100644 --- a/README.md +++ b/README.md @@ -1,11 +1,13 @@ -# Dark +# Dark 🌒 Dark is lightweight (10 Kb gzipped) component-and-hook-based UI rendering engine for javascript apps without dependencies and written in Typescript 💫 +![Dark](./assets/cover.jpg) + ## Notice This project was written in my free time as a hobby. I challenged myself: can I write something similar to React without third-party dependencies and alone. It took me about 4 years to bring it to an acceptable quality (but this is not accurate). It would probably take you much less time to do it. I rewrote it many times from scratch because I didn't like a lot of it. In the end, I decided to bring it to release, since the "ideal" is still unattainable. In addition, it is necessary to bring the work started to the end. I didn't get to do a lot of what I wanted to do. That is life. You can use the code at your own risk. -The biggest discovery for me: writing a rendering library is not difficult, it is difficult to write one that is fast and consumes little memory. And this is a really difficult task. +The biggest discovery for me: writing a rendering library is not difficult, it is difficult to write one that is fast and consumes little memory. And this is a really hard task. ## Installation npm: @@ -16,6 +18,12 @@ yarn: ``` yarn add @dark-engine/core @dark-engine/platform-browser ``` +CDN: +```html + + +``` + ## API overview The public API is partially similar to the React API and includes 2 packages - core and browser support. @@ -227,7 +235,7 @@ const Component = createComponent(({ isOpen }) => { return (
Hello
- {isOpen ? : } + {isOpen ? : }
world
); diff --git a/assets/cover.jpg b/assets/cover.jpg new file mode 100644 index 00000000..d308e39a Binary files /dev/null and b/assets/cover.jpg differ diff --git a/examples/old-school/index.html b/examples/old-school/index.html index d4dfeaea..a536af24 100644 --- a/examples/old-school/index.html +++ b/examples/old-school/index.html @@ -10,14 +10,11 @@ box-sizing: border-box; } html, body { - position: relative; width: 100%; - min-height: 100vh; margin: 0; padding: 0; } body { - color: black; background-color: #222; color: white; } @@ -25,53 +22,38 @@
-
- - + + diff --git a/examples/old-school/js/browser.prod.umd.min.js b/examples/old-school/js/browser.prod.umd.min.js deleted file mode 100644 index d296b161..00000000 --- a/examples/old-school/js/browser.prod.umd.min.js +++ /dev/null @@ -1 +0,0 @@ -!function(e,t){"object"==typeof exports&&"object"==typeof module?module.exports=t(require("@dark-engine/core")):"function"==typeof define&&define.amd?define("DarkPlatformBrowser",["@dark-engine/core"],t):"object"==typeof exports?exports.DarkPlatformBrowser=t(require("@dark-engine/core")):e.DarkPlatformBrowser=t(e.DarkCore)}(self,(e=>(()=>{"use strict";var t={317:t=>{t.exports=e}},n={};function r(e){var a=n[e];if(void 0!==a)return a.exports;var o=n[e]={exports:{}};return t[e](o,o.exports,r),o.exports}r.d=(e,t)=>{for(var n in t)r.o(t,n)&&!r.o(e,n)&&Object.defineProperty(e,n,{enumerable:!0,get:t[n]})},r.o=(e,t)=>Object.prototype.hasOwnProperty.call(e,t),r.r=e=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})};var a={};return(()=>{r.r(a),r.d(a,{createPortal:()=>n,render:()=>M});var e=r(317),t=Symbol("portal");function n(e,n){var r;return n instanceof Element?o(((r={})[t]=n,r.slot=e,r)):null}var o=(0,e.createComponent)((function(n){var r=n.slot,a=function(e,t){var n={};for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&t.indexOf(r)<0&&(n[r]=e[r]);if(null!=e&&"function"==typeof Object.getOwnPropertySymbols){var a=0;for(r=Object.getOwnPropertySymbols(e);a=e.length&&(e=void 0),{value:e&&e[r++],done:!e}}};throw new TypeError(t?"Object is not iterable.":"Symbol.iterator is not defined.")},d=function(e,t){var n="function"==typeof Symbol&&e[Symbol.iterator];if(!n)return e;var r,a,o=n.call(e),i=[];try{for(;(void 0===t||t-- >0)&&!(r=o.next()).done;)i.push(r.value)}catch(e){a={error:e}}finally{try{r&&!r.done&&(n=o.return)&&n.call(o)}finally{if(a)throw a.error}}return i},v=function(e,t,n){if(n||2===arguments.length)for(var r,a=0,o=t.length;a0&&(x.shift().callback(),t=e.workLoop,w=t,S||(S=!0,H.postMessage(null)))}var O=null,H=null;O=new MessageChannel,H=O.port2,O.port1.onmessage=function(){if(w){N=(0,e.getTime)()+5;try{w()?H.postMessage(null):(S=!1,w=null,k())}catch(e){throw H.postMessage(null),e}}else S=!1},e.platform.raf=window.requestAnimationFrame.bind(void 0),e.platform.scheduleCallback=function(e,t){void 0===t&&(t=y.NORMAL);var n=new I({priority:t,callback:e});x.push(n),k()},e.platform.shouldYeildToHost=function(){return(0,e.getTime)()>=N},e.platform.createNativeElement=function(t){if(!(0,e.detectIsVirtualNode)(t.instance))throw new Error("createDomElement receives only Element into fiber!");return n=t.instance,(r={})[e.NodeType.TAG]=function(e){var t,n=e;return t=n.name,Boolean({svg:!0,circle:!0,ellipse:!0,g:!0,text:!0,tspan:!0,textPath:!0,path:!0,polygon:!0,polyline:!0,line:!0,rect:!0,use:!0,image:!0,symbol:!0,defs:!0,linearGradient:!0,radialGradient:!0,stop:!0,clipPath:!0,pattern:!0,mask:!0,marker:!0}[t])?document.createElementNS("http://www.w3.org/2000/svg",n.name):document.createElement(n.name)},r[e.NodeType.TEXT]=function(e){var t=e;return document.createTextNode(t.value)},r[e.NodeType.COMMENT]=function(t){var n=t;return n.value===e.EMPTY_NODE?null:document.createComment(n.value)},r[n.type](n);var n,r},e.platform.applyCommits=function(t){var n,r,a,o=e.fromHookUpdateHelper.get(),c=function(e){var t=e.parent;if(i(e.instance))return e;for(;t&&!t.nativeElement;)i(t.instance)?t.nativeElement=l(t.instance):t=t.parent;return t}(t),y=c.nativeElement;if(null!==t.nativeElement&&t.effectTag===e.EffectTag.PLACEMENT){var x=h.get(y),w=c.alternate?!(0,e.detectIsUndefined)(x)&&function(t,n){for(var r=t;r;){if(r.alternate){var a=r.alternate;return(0,e.detectIsCommentVirtualNode)(a.instance)&&a.instance.value===e.EMPTY_NODE}if((r=r.parent)===n)return!1}return!1}(t,c)?x:null===x?null:T(t,y):o?T(t,y):null;if(h.set(y,w),w)y.insertBefore(t.nativeElement,w),t.mountedToHost=!0,function(t,n){var r=t;do{if(!r)return!1;if((r=r.nextSibling||r.parent.nextSibling)&&r.parent===n)break}while(!r);return r.effectTag===e.EffectTag.UPDATE}(t,c)&&h.delete(y);else{var N=b.get(y);(0,e.detectIsUndefined)(N)&&(N=document.createDocumentFragment(),b.set(y,N)),N.appendChild(t.nativeElement),t.mountedToHost=!0,function(e,t){var n=e;if(n.nextSibling&&i(n.nextSibling.instance))return!1;for(;!n.nextSibling;)if((n=n.parent)===t||n.nativeElement)return!1;return!0}(t,c)||(y.appendChild(N),b.delete(y),h.delete(y))}!function(t,n){var r,a;if((0,e.detectIsTagVirtualNode)(n)){var o=Object.keys(n.attrs);try{for(var i=p(o),l=i.next();!l.done;l=i.next()){var c=l.value,d=(0,e.getAttribute)(n,c);c!==e.ATTR_REF?(0,e.detectIsFunction)(d)?f(c)&&u({target:t,handler:d,eventName:s(c)}):(0,e.detectIsUndefined)(d)||m.includes(c)||(E({tagName:n.name,value:d,attrName:c,element:t}),t.setAttribute(c,d)):g(d,t)}}catch(e){r={error:e}}finally{try{l&&!l.done&&(a=i.return)&&a.call(i)}finally{if(r)throw r.error}}}}(t.nativeElement,t.instance)}else if(null!==t.nativeElement&&t.effectTag===e.EffectTag.UPDATE){if(!(0,e.detectIsVirtualNode)(t.alternate.instance)||!(0,e.detectIsVirtualNode)(t.instance))return;var S=t.alternate.instance,I=t.instance;n=t.nativeElement,r=S,a=I,(0,e.detectIsTextVirtualNode)(r)&&(0,e.detectIsTextVirtualNode)(a)&&r.value!==a.value?n.textContent=a.value:(0,e.detectIsTagVirtualNode)(r)&&(0,e.detectIsTagVirtualNode)(a)&&function(t,n,r){var a,o,i=new Set(v(v([],d(Object.keys(n.attrs)),!1),d(Object.keys(r.attrs)),!1));try{for(var l=p(i),c=l.next();!c.done;c=l.next()){var y=c.value,b=(0,e.getAttribute)(n,y),h=(0,e.getAttribute)(r,y);y!==e.ATTR_REF?(0,e.detectIsUndefined)(h)?t.removeAttribute(y):(0,e.detectIsFunction)(b)?f(y)&&b!==h&&u({target:t,handler:h,eventName:s(y)}):(0,e.detectIsUndefined)(h)||b===h||m.includes(y)||(E({tagName:r.name,value:h,attrName:y,element:t}),t.setAttribute(y,h)):g(b,t)}}catch(e){a={error:e}}finally{try{c&&!c.done&&(o=l.return)&&o.call(l)}finally{if(a)throw a.error}}}(n,r,a)}else t.effectTag===e.EffectTag.DELETION&&function(t,n){var r=t,a=!0,o=!1;if(!(0,e.detectIsCommentVirtualNode)(r.instance)||r.nativeElement)for(;r;)if(o||(r.nativeElement&&(!i(r.instance)&&n.removeChild(r.nativeElement),a=!1),!t.transposition&&(0,e.detectIsComponentFactory)(r.instance)&&(0,e.runEffectCleanup)(r.hook)),r.child&&a)r=r.child,o=!1;else if(r.nextSibling&&r.nextSibling!==t.nextSibling){if(r.nextSibling.effectTag===e.EffectTag.DELETION)return;a=!0,o=!1,r=r.nextSibling}else r.parent&&r!==t&&r.parent!==t&&r.parent!==t.parent?(a=!1,o=!0,r=r.parent):r=null}(t,y)},e.platform.detectIsPortal=i,e.platform.unmountPortal=function(e){for(var t=e,n=!0,r=!1;t;)!r&&i(t.instance)&&(l(t.instance).innerHTML=""),t.portalHost||(n=!1),t.child&&n?(t=t.child,r=!1):t.nextSibling&&t.nextSibling!==e.nextSibling?(n=!0,r=!1,t=t.nextSibling):t.parent&&t!==e&&t.parent!==e&&t.parent!==e.parent?(n=!1,r=!0,t=t.parent):t=null};var P=new Map;function M(t,n){if(!(n instanceof Element))throw new Error("render expects to receive container as Element!");var r=!(0,e.detectIsUndefined)(P.get(n));if(r){var a=P.get(n);e.effectStoreHelper.set(a)}else{var o=P.size;P.set(n,o),e.effectStoreHelper.set(o),n.innerHTML=""}var i=(0,e.getRootId)();e.platform.scheduleCallback((function(){e.effectStoreHelper.set(i),h=new Map;var a=e.currentRootHelper.get(),o=new e.Fiber({nativeElement:n,instance:new e.TagVirtualNode({name:e.ROOT,children:(0,e.flatten)([t])}),alternate:a,effectTag:r?e.EffectTag.UPDATE:e.EffectTag.PLACEMENT});a&&(a.alternate=null),e.fiberMountHelper.reset(),e.wipRootHelper.set(o),e.nextUnitOfWorkHelper.set(o),e.deletionsHelper.get().forEach((function(t){return t.effectTag=e.EffectTag.UPDATE})),e.deletionsHelper.set([])}),y.HIGH)}})(),a})())); \ No newline at end of file diff --git a/examples/old-school/js/core.prod.umd.min.js b/examples/old-school/js/core.prod.umd.min.js deleted file mode 100644 index 80503208..00000000 --- a/examples/old-school/js/core.prod.umd.min.js +++ /dev/null @@ -1 +0,0 @@ -!function(e,n){"object"==typeof exports&&"object"==typeof module?module.exports=n():"function"==typeof define&&define.amd?define("DarkCore",[],n):"object"==typeof exports?exports.DarkCore=n():e.DarkCore=n()}(self,(()=>(()=>{"use strict";var e={d:(n,t)=>{for(var r in t)e.o(t,r)&&!e.o(n,r)&&Object.defineProperty(n,r,{enumerable:!0,get:t[r]})},o:(e,n)=>Object.prototype.hasOwnProperty.call(e,n),r:e=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})}},n={};e.r(n),e.d(n,{$$memo:()=>ye,ATTR_KEY:()=>o,ATTR_REF:()=>i,Comment:()=>fe,CommentVirtualNode:()=>ee,ComponentFactory:()=>S,EMPTY_NODE:()=>r,EffectTag:()=>ke,Fiber:()=>Fe,Fragment:()=>on,NodeType:()=>K,ROOT:()=>t,Suspense:()=>fn,SuspenseContext:()=>cn,TagVirtualNode:()=>Q,Text:()=>ce,TextVirtualNode:()=>Z,View:()=>se,VirtualNode:()=>J,cloneTagMap:()=>Ie,componentFiberHelper:()=>V,createComponent:()=>T,createContext:()=>Qe,createEmptyVirtualNode:()=>de,createHook:()=>Xe,createUpdateCallback:()=>$e,currentRootHelper:()=>M,deletionsHelper:()=>L,detectIsArray:()=>d,detectIsBoolean:()=>s,detectIsCommentVirtualNode:()=>re,detectIsComponentFactory:()=>E,detectIsDepsDifferent:()=>_,detectIsEmpty:()=>v,detectIsEmptyVirtualNode:()=>ie,detectIsFragment:()=>an,detectIsFunction:()=>a,detectIsLazy:()=>pn,detectIsMemo:()=>ge,detectIsNull:()=>p,detectIsNumber:()=>u,detectIsObject:()=>f,detectIsRef:()=>he,detectIsString:()=>c,detectIsTagVirtualNode:()=>te,detectIsTextVirtualNode:()=>oe,detectIsUndefined:()=>l,detectIsVirtualNode:()=>ne,detectIsVirtualNodeFactory:()=>pe,effectStoreHelper:()=>N,effectsHelper:()=>W,error:()=>h,eventsHelper:()=>U,fiberMountHelper:()=>R,flatten:()=>y,forwardRef:()=>ve,fromHookUpdateHelper:()=>D,getAttribute:()=>le,getComponentFactoryKey:()=>k,getRootId:()=>C,getTime:()=>b,getVirtualNodeKey:()=>ae,h:()=>tn,hasChildrenProp:()=>Ge,keyBy:()=>g,lazy:()=>dn,memo:()=>me,nextUnitOfWorkHelper:()=>A,platform:()=>Oe,runEffectCleanup:()=>z,setAttribute:()=>ue,takeListFromEnd:()=>m,useCallback:()=>ln,useContext:()=>Je,useEffect:()=>Y,useError:()=>vn,useImperativeHandle:()=>hn,useMemo:()=>Te,useReducer:()=>yn,useRef:()=>bn,useState:()=>un,useUpdate:()=>qe,wipRootHelper:()=>H,workLoop:()=>He});var t="root",r="dark:matter",o="key",i="ref",a=function(e){return"function"==typeof e},l=function(e){return void 0===e},u=function(e){return"number"==typeof e},c=function(e){return"string"==typeof e},f=function(e){return"object"==typeof e},s=function(e){return"boolean"==typeof e},d=function(e){return Array.isArray(e)},p=function(e){return null===e},v=function(e){return p(e)||l(e)};function h(e){"undefined"!=typeof console&&console.error(e)}function y(e){var n=[],t={0:{idx:0,source:e}},r=0;do{var o=t[r],i=o.source,a=o.idx,l=i[a];a>=i.length?t[--r].idx++:d(l)?t[++r]={idx:0,source:l}:(n.push(l),t[r].idx++)}while(!(0===r&&t[r].idx>=t[r].source.length));return n}function b(){return performance.now()}function g(e,n,t){return void 0===t&&(t=!1),e.reduce((function(e,r){return e[n(r)]=!t||r,e}),{})}function m(e,n){for(var t=[],r=0;r<=n;r++){var o=e.length-r-1;t.push(e[o])}return t}var x=function(){return x=Object.assign||function(e){for(var n,t=1,r=arguments.length;t0&&n.length>0)for(var t=0;t=e.length&&(e=void 0),{value:e&&e[r++],done:!e}}};throw new TypeError(n?"Object is not iterable.":"Symbol.iterator is not defined.")}(r),i=o.next();!i.done;i=o.next()){var l=i.value;if(l.token===B){var u=l.value;a(u)&&u()}}}catch(e){n={error:e}}finally{try{i&&!i.done&&(t=o.return)&&t.call(o)}finally{if(n)throw n.error}}}!function(e){e.TAG="TAG",e.TEXT="TEXT",e.COMMENT="COMMENT"}(K||(K={}));var G,X=(G=function(e,n){return G=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,n){e.__proto__=n}||function(e,n){for(var t in n)Object.prototype.hasOwnProperty.call(n,t)&&(e[t]=n[t])},G(e,n)},function(e,n){if("function"!=typeof n&&null!==n)throw new TypeError("Class extends value "+String(n)+" is not a constructor or null");function t(){this.constructor=e}G(e,n),e.prototype=null===n?Object.create(n):(t.prototype=n.prototype,new t)}),$=function(){return $=Object.assign||function(e){for(var n,t=1,r=arguments.length;t=e.length&&(e=void 0),{value:e&&e[r++],done:!e}}};throw new TypeError(n?"Object is not iterable.":"Symbol.iterator is not defined.")}(o),a=i.next();!a.done;a=i.next()){var l=a.value;if("slot"!==l&&n[l]!==e[l])return!0}}catch(e){t={error:e}}finally{try{a&&!a.done&&(r=i.return)&&r.call(i)}finally{if(t)throw t.error}}return!1},ge=function(e){return E(e)&&e.token===ye};function me(e,n){return void 0===n&&(n=be),ve(T((function(n,t){return t&&(n.ref=t),e(n)}),{token:ye,shouldUpdate:n}))}var xe=T((function(e){return e.slot}),{token:ye});function we(e,n){if(te(e)||E(e)){var t=xe({slot:e});return t.shouldUpdate=function(){return n},t}return e}function Se(e,n){void 0===n&&(n=!1);var t=e();return d(t)?t.map((function(e){return we(e,n)})):we(t,n)}function Te(e,n){var t=V.get().hook,r=t.idx,o=t.values;if(l(o[r])){var i=Se(e);return o[r]={deps:n,value:i},t.idx++,i}var a=o[r],u=_(n,a.deps),c=u?e:function(){return a.value};return a.deps=n,a.value=Se(c,u),t.idx++,a.value}var Ee,ke,Oe={raf:function(){throw new Error("raf not installed by renderer")},scheduleCallback:function(){throw new Error("scheduleCallback not installed by renderer")},shouldYeildToHost:function(){throw new Error("shouldYeildToHost not installed by renderer")},createNativeElement:function(){throw new Error("createNativeElement not installed by renderer")},applyCommits:function(){throw new Error("applyCommits not installed by renderer")},detectIsPortal:function(){throw new Error("detectIsPortal not installed by renderer")},unmountPortal:function(){throw new Error("unmountPortal not installed by renderer")}};!function(e){e.PLACEMENT="PLACEMENT",e.UPDATE="UPDATE",e.DELETION="DELETION",e.SKIP="SKIP"}(ke||(ke={}));var Ie=((Ee={})[ke.PLACEMENT]=!0,Ee[ke.SKIP]=!0,Ee),Pe=function(){return Pe=Object.assign||function(e){for(var n,t=1,r=arguments.length;t=e.length&&(e=void 0),{value:e&&e[r++],done:!e}}};throw new TypeError(n?"Object is not iterable.":"Symbol.iterator is not defined.")},Ce=function(e,n){var t="function"==typeof Symbol&&e[Symbol.iterator];if(!t)return e;var r,o,i=t.call(e),a=[];try{for(;(void 0===n||n-- >0)&&!(r=i.next()).done;)a.push(r.value)}catch(e){o={error:e}}finally{try{r&&!r.done&&(t=i.return)&&t.call(i)}finally{if(o)throw o.error}}return a},je=function(e,n,t){if(t||2===arguments.length)for(var r,o=0,i=n.length;o0){var i=Ae({nextFiber:t,shadow:r,instance:o}),a=i.performedFiber;if(t=i.performedNextFiber,r=i.performedShadow,o=i.performedInstance,a)return a}else{var l=Ve({nextFiber:t,shadow:r,instance:o});if(a=l.performedFiber,t=l.performedNextFiber,r=l.performedShadow,o=l.performedInstance,a)return a}else{var u=Ve({nextFiber:t,shadow:r,instance:o});if(a=u.performedFiber,t=u.performedNextFiber,r=u.performedShadow,o=u.performedInstance,a)return a}if(null===t.parent)return null}}function Ae(e){R.jumpToChild();var n=e.nextFiber,t=e.shadow,r=e.instance,o=n.alternate?function(e){var n,t,r=e.instance,o=e.alternate,i=Ge(r)?r.children:[];if(o.childrenCount===i.length&&i.length>1){var a=C(),l=function(e,n){for(var t=e,r=0;t||r0;c||u.length,!function(){var e,o,i,a,f,s=Be(l,u);if(s.length>0){var d=function(e){for(var n=e,t={};n;){var r=Ke(n.instance);v(r)||(t[r]=n),n=n.nextSibling}return t}(t.child);try{for(var p=Ne(s),h=p.next();!h.done;h=p.next())(w=d[h.value]||null)&&(w.effectTag=ke.DELETION,L.get().push(w),w.portalHost&&n.markPortalHost())}catch(n){e={error:n}}finally{try{h&&!h.done&&(o=p.return)&&o.call(p)}finally{if(e)throw e.error}}}else if(!c){var y=t.childrenCount-r.children.length,b=m(function(e){for(var n=[],t=e;t;)n.push(t),t=t.nextSibling;return n}(t.child),y);try{for(var g=Ne(b),x=g.next();!x.done;x=g.next()){var w;(w=x.value).effectTag=ke.DELETION,w.portalHost&&n.markPortalHost()}}catch(e){i={error:e}}finally{try{x&&!x.done&&(a=g.return)&&a.call(g)}finally{if(i)throw i.error}}(f=L.get()).push.apply(f,je([],Ce(b),!1))}}(),function(){var e,n,r=Be(u,l);if(r.length>0){var o=g(r,(function(e){return e})),i=_e(t.child),a={},c=0;try{for(var f=Ne(u),s=f.next();!s.done;s=f.next()){var d=s.value;if(a[d]=!0,d!==l[c]&&o[d]){var p=new Fe({instance:de(),parent:t,effectTag:ke.PLACEMENT});if(0===c)p.nextSibling=t.child,t.child=p;else{var v=i[c]||null;v&&(p.nextSibling=v)}}c++}}catch(n){e={error:n}}finally{try{s&&!s.done&&(n=f.return)&&n.call(f)}finally{if(e)throw e.error}}}}()}}else for(var f=t;f;)f.effectTag=ke.DELETION,L.get().push(f),f=re(f.instance)?null:f.nextSibling}function Ue(e){var n=e.fiber,t=e.alternate,r=e.instance;if(ge(n.instance)){var o=null,i=r,a=t.instance;if(i.type!==a.type)return n;var l=a.props,u=i.props;if(!i.shouldUpdate(l,u)){var c=null;for(R.deepWalking.set(!1),o=new Fe(Pe(Pe({},t),{alternate:t,effectTag:ke.SKIP,nextSibling:t.nextSibling?t.nextSibling.effectTag===ke.DELETION?null:t.nextSibling:null})),t.alternate=null,c=o.child;c;)c.parent=o,c=c.nextSibling;return o}}return n}function Le(e){var n,t=e.instance,r=e.idx,o=e.fiber,i=e.alternate,a=null,l=null;if(Ge(t)){var u=d(t.children[r])?y([t.children[r]]):[t.children[r]];(n=t.children).splice.apply(n,je([r,1],Ce(u),!1)),a=t.children[r],l=i?function(e){var n=e.instance,t=e.fiber,r=e.alternate,o=Ke(r.instance),i=Ke(n),a=null;return o!==i&&(a=function(e,n){if(v(e))return null;for(var t=n;t;){if(e===Ke(t.instance))return t;t=t.nextSibling}return null}(i,r.parent.child),a&&(t.hook=a.hook,t.provider=a.provider,r.transposition=!0)),a}({instance:a,fiber:o,alternate:i}):l,a=Re(o,a)}return E(a)&&Oe.detectIsPortal(a)&&o.markPortalHost(),{performedInstance:a,performedShadow:l}}function Re(e,n){var t=E(n),r=n;if(t)try{var o=r.type(r.props,r.ref);r.children=d(o)?y([o]):[o]}catch(n){r.children=[],e.setError(n),h(n)}else pe(n)&&(n=n());if(Ge(n)){for(var i=0;i=e.length&&(e=void 0),{value:e&&e[r++],done:!e}}};throw new TypeError(n?"Object is not iterable.":"Symbol.iterator is not defined.")}(l.subscribers),r=t.next();!r.done;r=t.next())(0,r.value)(o)}catch(n){e={error:n}}finally{try{r&&!r.done&&(n=t.return)&&n.call(t)}finally{if(e)throw e.error}}}),[o]),l.value=o,i}),{displayName:"".concat(t,".Provider")})}(e,n,t),e.Consumer=function(e,n){return T((function(n){var t=n.slot,r=Je(e);return a(t)?t(r):null}),{displayName:"".concat(n,".Consumer")})}(e,t)}var en=function(){return en=Object.assign||function(e){for(var n,t=1,r=arguments.length;t0)&&!(r=i.next()).done;)a.push(r.value)}catch(e){o={error:e}}finally{try{r&&!r.done&&(t=i.return)&&t.call(i)}finally{if(o)throw o.error}}return a}(e),!1):[e]:[]}function tn(e,n){for(var t=[],r=2;r0)&&!(r=i.next()).done;)a.push(r.value)}catch(e){o={error:e}}finally{try{r&&!r.done&&(t=i.return)&&t.call(i)}finally{if(o)throw o.error}}return a}(un(!1),2),i=o[0],a=o[1],l=ln((function(){return a(!0)}),[]),u=Te((function(){return{fallback:n,isLoaded:i,trigger:l}}),[n,i]);return cn.Provider({value:u,slot:r?t:null})})),sn=Symbol("lazy");function dn(e){return ve(T((function(n,t){var r=Je(cn),o=r.fallback,i=r.trigger,a=function(e,n){var t="function"==typeof Symbol&&e[Symbol.iterator];if(!t)return e;var r,o,i=t.call(e),a=[];try{for(;(void 0===n||n-- >0)&&!(r=i.next()).done;)a.push(r.value)}catch(e){o={error:e}}finally{try{r&&!r.done&&(t=i.return)&&t.call(i)}finally{if(o)throw o.error}}return a}(un({component:null}),2),l=a[0],u=a[1];return Y((function(){(function(e){return new Promise((function(n){e().then((function(e){if(!e.default)throw new Error("lazy loaded component should be exported as default!");n(e.default)}))}))})(e).then((function(e){u({component:e})}))}),[]),Y((function(){l.component&&i()}),[l.component]),l.component?l.component(n,t):o}),{token:sn}))}var pn=function(e){return E(e)&&e.token===sn};function vn(){var e=V.get(),n=qe(),t=Te((function(){return{error:null}}),[]);return e.catchException=function(e){t.error=e,n()},Y((function(){t.error=null}),[t.error]),t.error}function hn(e,n,t){var r=Te((function(){return n()}),t);e.current=r}function yn(e,n,t){var r=function(e,n){var t="function"==typeof Symbol&&e[Symbol.iterator];if(!t)return e;var r,o,i=t.call(e),a=[];try{for(;(void 0===n||n-- >0)&&!(r=i.next()).done;)a.push(r.value)}catch(e){o={error:e}}finally{try{r&&!r.done&&(t=i.return)&&t.call(i)}finally{if(o)throw o.error}}return a}(un(Te((function(){return a(t)?t(n):n}),[])),2),o=r[0],i=r[1],l=ln((function(n){return i((function(t){return e(t,n)}))}),[]);return[o,l]}function bn(e){return void 0===e&&(e=null),Te((function(){return{current:e}}),[])}return n})())); \ No newline at end of file diff --git a/packages/core/README.md b/packages/core/README.md index 9711dfb1..8a6a411d 100644 --- a/packages/core/README.md +++ b/packages/core/README.md @@ -1 +1,5 @@ -# Dark \ No newline at end of file +# Dark 🌒 + +Dark is lightweight (10 Kb gzipped) component-and-hook-based UI rendering engine for javascript apps without dependencies and written in Typescript 💫 + +[README](https://github.com/atellmer/dark) diff --git a/packages/core/package.json b/packages/core/package.json index 618ae27f..25811b20 100644 --- a/packages/core/package.json +++ b/packages/core/package.json @@ -1,6 +1,6 @@ { "name": "@dark-engine/core", - "version": "0.1.0", + "version": "0.1.1", "description": "Dark is lightweight (10 Kb gzipped) component-and-hook-based UI rendering engine for javascript apps without dependencies and written in Typescript 💫", "author": "AlexPlex", "license": "MIT", diff --git a/packages/platform-browser/README.md b/packages/platform-browser/README.md index 9711dfb1..8a6a411d 100644 --- a/packages/platform-browser/README.md +++ b/packages/platform-browser/README.md @@ -1 +1,5 @@ -# Dark \ No newline at end of file +# Dark 🌒 + +Dark is lightweight (10 Kb gzipped) component-and-hook-based UI rendering engine for javascript apps without dependencies and written in Typescript 💫 + +[README](https://github.com/atellmer/dark) diff --git a/packages/platform-browser/package.json b/packages/platform-browser/package.json index 2bada344..7bf7e5ef 100644 --- a/packages/platform-browser/package.json +++ b/packages/platform-browser/package.json @@ -1,6 +1,6 @@ { "name": "@dark-engine/platform-browser", - "version": "0.1.0", + "version": "0.1.1", "description": "Dark is lightweight (10 Kb gzipped) component-and-hook-based UI rendering engine for javascript apps without dependencies and written in Typescript 💫", "author": "AlexPlex", "license": "MIT",