{"_id":"@blue-hood/velement","_rev":"4-2d43ee44f6b922288cb5712cabd7c83a","name":"@blue-hood/velement","dist-tags":{"latest":"0.1.1"},"versions":{"0.0.0":{"name":"@blue-hood/velement","version":"0.0.0","description":"A minimal DOM renderer. ","keywords":["dom","virtual","renderer","minimal"],"main":"dist/index.js","types":"dist/index.d.ts","scripts":{"build":"tsc","test":"lint-staged && tsc --noEmit && jest"},"repository":{"type":"git","url":"git+https://github.com/blue-hood/velement.git"},"author":{"name":"Hood"},"license":"MIT","bugs":{"url":"https://github.com/blue-hood/velement/issues"},"homepage":"https://github.com/blue-hood/velement#readme","devDependencies":{"@testing-library/dom":"^6.2.0","@testing-library/jest-dom":"^4.1.0","@types/jest":"^24.0.18","@typescript-eslint/eslint-plugin":"^1.12.0","@typescript-eslint/parser":"^1.12.0","eslint":"^5.0.0","eslint-config-prettier":"^6.0.0","eslint-plugin-jest":"^22.17.0","eslint-plugin-prettier":"^3.1.0","husky":"^3.0.0","jest":"^24.9.0","lint-staged":"^9.2.0","prettier":"^1.18.2","ts-jest":"^24.0.2","typescript":"^3.5.3"},"gitHead":"d8a60c4b8795f54e991f6288732a3e6cf1b3d5b9","_id":"@blue-hood/velement@0.0.0","_nodeVersion":"10.16.0","_npmVersion":"6.11.2","dist":{"integrity":"sha512-LS4vrWvimeDx+NgOubS1xwiBMZgE6peJw1JRV0nteSMlqw7B1WLC8TWDot22ZonSsvgY2FRqR9BeZ11Oo31TXg==","shasum":"7b79c230ed8f30cc0e3d0143ceecf948d6c47fd9","tarball":"https://registry.npmjs.org/@blue-hood/velement/-/velement-0.0.0.tgz","fileCount":20,"unpackedSize":25961,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJdgmReCRA9TVsSAnZWagAA3I0P/0DK80KEi4WHxSebiDBp\nD38AkMW7o71gq88x4CsdqFuPnirv6Wp8uxi0D50+aGJt4ZZO2/mJW0OI2GEp\n1cOSwv/y79RY6O9fWCLG/8AduF0I5zlL3XO+mcrT2yikXGJAVe1uSr99KXpv\ngxfsWqh5MJkYRyHpuswf9BDNBG01N98xDNmdhME1GkZEjs1BAnPUrbXevPYN\nIosSeoPDqcqLFTeknFIVWwlNGXHHPxwZ/HT2uGrlpWxwkKJxqZncmGgTTDYa\n6V30vBkOqQAVkfmOJwFtlQ0QdFvYAr8FIxD+2HDEMKBCJEUkcIp92fbIsAhK\nMQl+c3eqvMvHL2wXGuxO33Mp+rp6Mczil/wkgBsF/QJVz6+GKxvNrd+d7uSD\n2NULJkkmkaIgPF9hzh2VJ7kxxX3liBTcVFIF0/wwn7Yx/S1lGTRInJYLIn2o\n+ix/8+2ffZlTFE2ZcJOKLLpSnJQJKEqtMP+2HwVEZsUSAtFwTdek9kvmjYYT\neRIKCALo8GaReKo+QRugSdXVc8TfdJ7ndOCoMLauitnEktugPWPa+ZUDnITx\nLHW10Gdg6AYCN/PApslfbEvYmHSal62ELCqRQk44tvqcV43/5m5vlLxhJWeY\n75sBwyThG3lbgsgYtzSm431nSfOuVGxgcNHCfkUKhEL2FqbtPDomXgRfU26M\n8VRU\r\n=SEvV\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIERVK2KPPvrA75hImTEiBlEmjB6jE2gGRzuU2sapuwUvAiANsWsT2hKmYREsKB6T2kT36y0F0XZgit4V9qatobjeQw=="}]},"maintainers":[{"name":"hata6502","email":"hato6502@gmail.com"}],"_npmUser":{"name":"hata6502","email":"hato6502@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/velement_0.0.0_1568826462059_0.22799088059734096"},"_hasShrinkwrap":false},"0.0.1":{"name":"@blue-hood/velement","version":"0.0.1","description":"A minimal DOM renderer. ","keywords":["dom","virtual","renderer","minimal"],"main":"dist/index.js","types":"dist/index.d.ts","scripts":{"build":"tsc","test":"lint-staged && tsc --noEmit && jest"},"repository":{"type":"git","url":"git+https://github.com/blue-hood/velement.git"},"author":{"name":"Hood"},"license":"MIT","bugs":{"url":"https://github.com/blue-hood/velement/issues"},"homepage":"https://github.com/blue-hood/velement#readme","devDependencies":{"@testing-library/dom":"^6.2.0","@testing-library/jest-dom":"^4.1.0","@types/jest":"^24.0.18","@typescript-eslint/eslint-plugin":"^1.12.0","@typescript-eslint/parser":"^1.12.0","eslint":"^5.0.0","eslint-config-prettier":"^6.0.0","eslint-plugin-jest":"^22.17.0","eslint-plugin-prettier":"^3.1.0","husky":"^3.0.0","jest":"^24.9.0","lint-staged":"^9.2.0","prettier":"^1.18.2","ts-jest":"^24.0.2","typescript":"^3.5.3"},"gitHead":"958d7e4de23f45eb0c4c88366d3ff3dde5438dbf","_id":"@blue-hood/velement@0.0.1","_nodeVersion":"10.16.0","_npmVersion":"6.11.2","dist":{"integrity":"sha512-LtmrZb4/9lE4Zll5wao0X+9qdidtJ/H3U5cn+OZV0Sk1C1WLXSPEd2kp5VcyMFe5laNSmc5DHUiSLoBgimk1YA==","shasum":"92a3558efd48ee0cc44f0c8fa561b04854d56b21","tarball":"https://registry.npmjs.org/@blue-hood/velement/-/velement-0.0.1.tgz","fileCount":20,"unpackedSize":26641,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJdg4jaCRA9TVsSAnZWagAAJDsP+wQRDt+ZolfCTeBohSJv\nT20PNC+apz0O+z9fNIuIXeRlnBo857UeLStEelpDOLm9QWNSfo4ppZ+cWAxC\nWl5d3UvwozTY9vcUjnFDhfZoROSJeVGUxMQ6gtt7MyG6Z/4L3zxFPHgT7BhF\nhQvOtGaEWxqjWCrIuQPBPcdZbFogXnIxKF5gQP9arkFZtF9FwAPrmpGX5FPH\n0wnZq/ila6sb7801P/k3MBR8Zl0bmtBgatm2mp+B5jJtuq+6u9oODitKP1IA\n9/Wl7DhIzGNzvt9uefoNLLkr8gpxvYDlCYUVKy1OHlUCBOOHSovTzTwiIG4S\nZp8YU9bbzMnrNSGDAdtNX5FTalQvkbG/mCzrQpZecbSQ16XWiSn95KlHrjBv\nw0WCfvAvrGzsugN+7CEZW93KtP2/F7Q49gEkAxNwigH4VCbGu8Et7r0bMO2q\nox6Bz+km9ADd9h4VvuVUrtsuHCH26KJJeOQrKSBIcEsSo5YQyTuTFfVec5O0\nGnR9O+3lrKVoZ05Jbj6B6mRwu4UMF3ryhATTVBu4j2O10i+lztL8ptX8c4ps\nGwTQKn49aE3gbtMNtWb0BerSEJDEfkWrU+TPt1AApnZkJPSIavAJRxX626KM\n0Zn9gJLfZQ0DqBgCvhC1ZdI0dgV4CwehLCzJczr2B+/M2CHfZXWDt2a1HOvf\nU0me\r\n=h46h\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIANhMWOlK0loM9aqIQux1JG3q0502eNFLjHeezXfmsVDAiEAj83ckKVkJ1+FiBFlNEwr0uFwj67glDd5XEsUyAX4Xyc="}]},"maintainers":[{"name":"hata6502","email":"hato6502@gmail.com"}],"_npmUser":{"name":"hata6502","email":"hato6502@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/velement_0.0.1_1568901337555_0.2611144937503769"},"_hasShrinkwrap":false},"0.1.0":{"name":"@blue-hood/velement","version":"0.1.0","description":"A minimal DOM renderer for legacy browsers. ","keywords":["dom","virtual","renderer","minimal"],"main":"dist/index.js","types":"dist/index.d.ts","scripts":{"build":"tsc","test":"lint-staged && tsc --noEmit && jest"},"repository":{"type":"git","url":"git+https://github.com/blue-hood/velement.git"},"author":{"name":"Hood"},"license":"MIT","bugs":{"url":"https://github.com/blue-hood/velement/issues"},"homepage":"https://github.com/blue-hood/velement#readme","devDependencies":{"@testing-library/dom":"^6.3.0","@testing-library/jest-dom":"^4.1.0","@types/jest":"^24.0.18","@typescript-eslint/eslint-plugin":"^1.12.0","@typescript-eslint/parser":"^1.12.0","eslint":"^5.0.0","eslint-config-prettier":"^6.0.0","eslint-plugin-jest":"^22.17.0","eslint-plugin-prettier":"^3.1.0","husky":"^3.0.0","jest":"^24.9.0","lint-staged":"^9.2.0","prettier":"^1.18.2","ts-jest":"^24.0.2","typescript":"^3.5.3"},"gitHead":"3744cdac0d69f9160406eb94b9a684740a6a952a","_id":"@blue-hood/velement@0.1.0","_nodeVersion":"10.16.0","_npmVersion":"6.11.2","dist":{"integrity":"sha512-AKPPCWXlTEyciKBsFuVHsTJK2qUS9MkYjYVZeMbUkxiu6vzKsSYaLxTWfLeMtOpujiSy3pJeVCpdq1YaS+H5Ug==","shasum":"1bbca440528b879c5c2005397e09492158494da2","tarball":"https://registry.npmjs.org/@blue-hood/velement/-/velement-0.1.0.tgz","fileCount":20,"unpackedSize":27760,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJdiDMQCRA9TVsSAnZWagAA2ZwP/jKyTyEutuhW4pZtJDVc\n8M7wVEymbsCcF/auYMgi/MTDUh495Cl77Nk2iaaqQ1PXrzrk/ZlfRCUu9XgC\n812lYdTjY9ayU2k3sr6qs9hs9M7IvSILSFqGBn8RX4+HnNBYK6Q/Qaj8coW+\ng/X5Lz+vsdmruEgisBDlZ3rs0zMRmAzT92uE8tA2RA06Gn8TjjUDCBLcvIfs\n4x5zG28H0SV8grpE+RApgqzVGS4gk43J7eJZSBhrAlmoIzhIOOJ4bWuEF6sB\nlDPO/Vde4noLrPt3NI2o6POFuFc7IFISaXfQm4Ot2KT9WqJtjMke13/8qZSb\noCBa2cTdPlP0v3wwsAch2jDj5BcwlMv0jLbTsrY4Bc5wUDOwxIIEeB/FxqRW\nTr4x3m9WmzQUaDEcBVEbppkkzIfALDcpGFwBkX47VOGrbczGzKEZtB4Fo9uj\noEcGyHPT9j+/5Mm8c+G1zwb6XGdfpq6MPHOvrQXRcbCyZZWHlQoWkm+Yhb4J\ncKGwfNU4vIeeEEf1zGdN5YncEeSuQRZ9gnqGIiL59wN8dNDTU/4hQkhov/7F\n+EER9ooFqQuyTku2iZWZEImqweuUyMfJn4ygCpDxf2z1AYCyKUBsIDEl/HIq\n3jZUt1JGljmUbt/MsK76eIZthvDuAv7+0gYpjWSAi3RGkC76wZIvhCj4aw5t\n0Ud9\r\n=xd4Y\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIFy6V7TLZQyuX4ufrzoLs2Y2OvKAStT+kOHqfbRIY0/nAiBoJDuCdrmZ9AuckuVJNa0yFkIGde9tCcni195QFd1avA=="}]},"maintainers":[{"name":"hata6502","email":"hato6502@gmail.com"}],"_npmUser":{"name":"hata6502","email":"hato6502@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/velement_0.1.0_1569207056006_0.9578537032264858"},"_hasShrinkwrap":false},"0.1.1":{"name":"@blue-hood/velement","version":"0.1.1","description":"A minimal DOM renderer for legacy browsers. ","keywords":["dom","virtual","renderer","minimal"],"main":"dist/index.js","types":"dist/index.d.ts","scripts":{"build":"tsc","test":"lint-staged && tsc --noEmit && jest"},"repository":{"type":"git","url":"git+https://github.com/blue-hood/velement.git"},"author":{"name":"Hood"},"license":"MIT","bugs":{"url":"https://github.com/blue-hood/velement/issues"},"homepage":"https://github.com/blue-hood/velement#readme","devDependencies":{"@testing-library/dom":"^6.3.0","@testing-library/jest-dom":"^4.1.0","@types/jest":"^24.0.18","@typescript-eslint/eslint-plugin":"^1.12.0","@typescript-eslint/parser":"^1.12.0","eslint":"^5.0.0","eslint-config-prettier":"^6.0.0","eslint-plugin-jest":"^22.17.0","eslint-plugin-prettier":"^3.1.0","husky":"^3.0.0","jest":"^24.9.0","lint-staged":"^9.2.0","prettier":"^1.18.2","ts-jest":"^24.0.2","typescript":"^3.5.3"},"gitHead":"f02857514a47db5c27b080ceeaae113cc22ec446","_id":"@blue-hood/velement@0.1.1","_nodeVersion":"10.16.0","_npmVersion":"6.11.2","dist":{"integrity":"sha512-d05FsdKiFM/3tKnH7NUXN1gb1FcmWeOlyLoijgxRf4hJjvomvekman4LBfdHqagXbXKW6Psi2TklcUfv2E/UbQ==","shasum":"03de20793ad57bad0bb2a93c975aecd0961435c7","tarball":"https://registry.npmjs.org/@blue-hood/velement/-/velement-0.1.1.tgz","fileCount":20,"unpackedSize":27782,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJdi4SBCRA9TVsSAnZWagAAcJcP/2Fh3prgP8feNkmZ58Zb\nezmzNlHdIdhtqNHEI/4n20yjGKPCvPX15RjJddgoa6atLJT//zv6Zbxbwf+F\n6CAjpaIgQIW62PYZDqMaobNwucD5tKhgOziR891yuYmECUFQYFLoNggX7yhm\nOThlGvwqezn4ZP4en0pXqUTWe8b12prP7IyEK/EwkWMNheFh7u7krjRgH8eP\nOOldDSEJGXmLJszNqarKUz0RMi2bGfQkHbYH/fvVqaRsmoQFHqTAe8giNl14\nDaanBt9kKwh2svDC0B9ET4G5T2MROCQF6sxOaJFzlcGY9L7fZ05dga0BVCBS\nVQjkK2jRnL+oQ2e/k1AiwIVAATS/FVOYryN5GtL7Xe+18M2LXy+cZxdYy2By\nTFt3I5PBX7CG7DNUQ/DqrGSmMqDXKTjS44BTq6xyS4sO/n/rC/M5r8MmAJP8\ndgcFc7WNcOfmtqaiZiCnkh4UZ7m5xsZeGt7ZXBBg1DUXSKGReIDFAybf/sA+\nBfN7r958pHWfdHPfP8SvdPBnVR1vvsa9dtJ1RKJvsuNwy64PWQsTPus9DYxe\nQ4NX83CseyFn5qcJEK7RimVagAiiifwVebN+4zK8eWUAjyGpRAbwdjw2Xx2z\nP8myfwq7e0Ibh2qQcexBKZkF9vpls+ivJPZ+qxSDeRTYm8HBHab8io5uV9wG\nx4AF\r\n=lZLm\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQCR9FuXR9suIQY9uHNnRoK3R9k9N9kDU/HocJw3Ugt8iwIgPvBsCi8wx+2ms5l6Qgt4rvq2HeePiJyRI3sHsAP5cro="}]},"maintainers":[{"name":"hata6502","email":"hato6502@gmail.com"}],"_npmUser":{"name":"hata6502","email":"hato6502@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/velement_0.1.1_1569424512737_0.8236594413528635"},"_hasShrinkwrap":false}},"time":{"created":"2019-09-18T17:07:41.822Z","0.0.0":"2019-09-18T17:07:42.181Z","modified":"2022-04-04T19:43:47.771Z","0.0.1":"2019-09-19T13:55:37.647Z","0.1.0":"2019-09-23T02:50:56.151Z","0.1.1":"2019-09-25T15:15:12.885Z"},"maintainers":[{"name":"hata6502","email":"hato6502@gmail.com"}],"description":"A minimal DOM renderer for legacy browsers. ","homepage":"https://github.com/blue-hood/velement#readme","keywords":["dom","virtual","renderer","minimal"],"repository":{"type":"git","url":"git+https://github.com/blue-hood/velement.git"},"author":{"name":"Hood"},"bugs":{"url":"https://github.com/blue-hood/velement/issues"},"license":"MIT","readme":"[![CircleCI](https://circleci.com/gh/blue-hood/velement.svg?style=svg)](https://circleci.com/gh/blue-hood/velement)\n[![Maintainability](https://api.codeclimate.com/v1/badges/60e3d09a3df359d52606/maintainability)](https://codeclimate.com/github/blue-hood/velement/maintainability)\n[![Release](https://img.shields.io/github/release/blue-hood/velement.svg)](https://github.com/blue-hood/velement/releases/latest)\n\n# velement\n\nA minimal DOM renderer for legacy browsers\n\n## Usage\n\nWith JavaScript:\n\n```js\nimport VirtualElement, { appendChildren, createElement } from 'velement';\n\nclass JSDiv extends VirtualElement {\n  constructor(element) {\n    super(element || 'div');\n    this.element.innerHTML = 'VirtualDivElement';\n  }\n}\n\nconst container = document.createElement('div');\n\nconst htmlElement = createElement('div', null);\nhtmlElement.innerHTML = `HTMLDivElement`;\nconst virtualElement = createElement(JSDiv, {});\n\nappendChildren(container, 'TextNode', htmlElement, virtualElement);\n```\n\nThen with TypeScript:\n\n```ts\nimport VirtualElement, { appendChildren, createElement } from 'velement';\n\nclass TSDiv extends VirtualElement<HTMLDivElement> {\n  public constructor(element: HTMLDivElement | null) {\n    super(element || 'div');\n    this.element.innerHTML = 'VirtualDivElement';\n  }\n}\n\ndeclare module 'velement' {\n  function createElement(type: typeof TSDiv, props: {}, ...children: Child[]): TSDiv;\n}\n\nconst container = document.createElement('div');\n\nconst htmlElement = createElement('div', null);\nhtmlElement.innerHTML = `HTMLDivElement`;\nconst virtualElement = createElement(TSDiv, {});\n\nappendChildren(container, 'TextNode', htmlElement, virtualElement);\n```\n\nContainer element will be rendered like:\n\n```\n<div>\n  TextNode\n  <div>\n    HTMLDivElement\n  </div>\n  <div>\n    VirtualDivElement\n  </div>\n</div>\n```\n\n## Install\n\nJust run `npm install @blue-hood/velement` or `yarn add @blue-hood/velement`.\n\n## Source\n\n[src/index.ts](https://github.com/blue-hood/velement/blob/master/src/index.ts)\n\nThe transpiled code for ES3 target ES2015 Modules is located at [dist/](https://github.com/blue-hood/velement/tree/master/dist).\n\n## VirtualElement class\n\nVirtualElements are wrapper elements of HTML elements.\nTypically, a minimum VirtualElement with HTMLDivElement is defined as:\n\n```ts\nimport VirtualElement from 'velement';\n\nclass TSDiv extends VirtualElement<HTMLDivElement> {\n  public constructor(element: HTMLDivElement | null) {\n    super(element || 'div');\n    this.element.innerHTML = 'VirtualDivElement';\n  }\n}\n\nnew TSDiv(null);\n```\n\nThen, the constructor can have properties.\nThe inner HTML element can be accessed through `this.element`.\n\n```ts\nimport VirtualElement from 'velement';\n\ninterface TextDivProps {\n  text: string;\n}\n\nclass TextDiv extends VirtualElement<HTMLDivElement> {\n  public constructor(element: HTMLDivElement | null, props: TextDivProps) {\n    super(element || 'div');\n\n    this.element.innerHTML = props.text;\n  }\n}\n\nnew TextDiv(null, {\n  text: 'VirtualDivElement. '\n});\n```\n\nVirtualElement also can be rendered to existing element.\n\n```ts\nconst div = document.createElement('div');\nnew TextDiv(div, {\n  text: 'VirtualDivElement. '\n});\n```\n\n## Utility methods\n\n### createElement\n\n```ts\ninterface Attributes {\n  [name: string]: any;\n}\ntype Child = HTMLElement | VirtualElement | string;\n\nexport function createElement<HElement extends HTMLElement>(\n  type: keyof HTMLElementTagNameMap,\n  props: Attributes | null,\n  ...children: Child[]\n): HElement;\n\nexport function createElement<VElement extends VirtualElement, Props>(\n  type: { new (element: null, props: Props): VElement },\n  props: Props,\n  ...children: Child[]\n): VElement;\n```\n\nCreate HTML element or VirtualElement with properties.\nAnd render children to the inner element, this is equal to `appendChildren` function.\n\nex. HTMLDivElement\n\n```ts\nimport { createElement } from 'velement';\n\ncreateElement(\n  'div',\n  {\n    style: `\n    color: red;\n  `\n  },\n  'HTMLDivElement. '\n);\n```\n\nex. VirtualElement\n\n```ts\nimport VirtualElement, { createElement } from 'velement';\n\ninterface ColorDivProps {\n  color: string;\n}\n\nclass ColorDiv extends VirtualElement<HTMLDivElement> {\n  public constructor(element: HTMLDivElement | null, props: ColorDivProps) {\n    super(element || 'div');\n\n    this.element.style.color = props.color;\n  }\n}\n\ndeclare module 'velement' {\n  function createElement(type: typeof ColorDiv, props: ColorDivProps, ...children: Child[]): ColorDiv;\n}\n\ncreateElement(\n  ColorDiv,\n  {\n    color: 'red'\n  },\n  'VirtualDivElement. '\n);\n```\n\n### appendChildren\n\n```ts\ntype Child = HTMLElement | VirtualElement | string;\n\nfunction appendChildren(element: HTMLElement, ...children: Child[]): void;\n```\n\nAppend children - HTML element, VirtualElement, text - to HTML element.\n\nex.\n\n```ts\nimport VirtualElement, { appendChildren, createElement } from 'velement';\n\nclass TSDiv extends VirtualElement<HTMLDivElement> {\n  public constructor(element: HTMLDivElement | null) {\n    super(element || 'div');\n    this.element.innerHTML = 'VirtualDivElement';\n  }\n}\n\ndeclare module 'velement' {\n  function createElement(type: typeof TSDiv, props: {}, ...children: Child[]): TSDiv;\n}\n\nconst container = document.createElement('div');\n\nconst htmlElement = createElement('div', null);\nhtmlElement.innerHTML = `HTMLDivElement`;\n\nappendChildren(container, createElement(TSDiv, {}), htmlElement, 'TextNode. ');\n```\n","readmeFilename":"README.md"}