├── .gitattributes ├── .github ├── FUNDING.yml └── workflows │ └── ci.yml ├── .gitignore ├── .vscode └── settings.json ├── LICENSE ├── README.md ├── common ├── changes │ └── @isotope │ │ ├── prototope-server │ │ └── master_2020-05-26-08-03.json │ │ └── server │ │ └── master_2020-05-26-08-03.json ├── config │ └── rush │ │ ├── .npmrc │ │ ├── command-line.json │ │ ├── common-versions.json │ │ ├── experiments.json │ │ ├── pnpm-lock.yaml │ │ └── version-policies.json └── scripts │ ├── install-run-rush.js │ ├── install-run-rushx.js │ └── install-run.js ├── packages ├── core │ ├── .eslintignore │ ├── .eslintrc.js │ ├── .prettierrc │ ├── CHANGELOG.json │ ├── CHANGELOG.md │ ├── README.md │ ├── dist │ │ └── isotope.js │ ├── docs │ │ ├── attribs.md │ │ ├── classes.md │ │ ├── compatibility.md │ │ ├── components.md │ │ ├── conditional-rendering.md │ │ ├── configurators.md │ │ ├── directives.md │ │ ├── events.md │ │ ├── installation.md │ │ ├── list-rendering.md │ │ ├── node-packs.md │ │ ├── nodes.md │ │ ├── reactivity.md │ │ ├── ssr.md │ │ ├── styles.md │ │ ├── support.md │ │ ├── svg.md │ │ ├── text-rendering.md │ │ ├── typescript.md │ │ └── views.md │ ├── jest.config.js │ ├── lib │ │ ├── configurators │ │ │ ├── attribs.d.ts │ │ │ ├── attribs.js │ │ │ ├── attribs.js.map │ │ │ ├── classes.d.ts │ │ │ ├── classes.js │ │ │ ├── classes.js.map │ │ │ ├── index.d.ts │ │ │ ├── index.js │ │ │ ├── index.js.map │ │ │ ├── styles.d.ts │ │ │ ├── styles.js │ │ │ └── styles.js.map │ │ ├── declarations.d.ts │ │ ├── declarations.js │ │ ├── declarations.js.map │ │ ├── index.d.ts │ │ ├── index.js │ │ ├── index.js.map │ │ ├── node.d.ts │ │ ├── node.js │ │ ├── node.js.map │ │ ├── nodes │ │ │ ├── conditional.d.ts │ │ │ ├── conditional.js │ │ │ ├── conditional.js.map │ │ │ ├── html │ │ │ │ ├── content.d.ts │ │ │ │ ├── content.js │ │ │ │ ├── content.js.map │ │ │ │ ├── embed.d.ts │ │ │ │ ├── embed.js │ │ │ │ ├── embed.js.map │ │ │ │ ├── form.d.ts │ │ │ │ ├── form.js │ │ │ │ ├── form.js.map │ │ │ │ ├── index.d.ts │ │ │ │ ├── index.js │ │ │ │ ├── index.js.map │ │ │ │ ├── interactive.d.ts │ │ │ │ ├── interactive.js │ │ │ │ ├── interactive.js.map │ │ │ │ ├── media.d.ts │ │ │ │ ├── media.js │ │ │ │ ├── media.js.map │ │ │ │ ├── register.d.ts │ │ │ │ ├── register.js │ │ │ │ ├── register.js.map │ │ │ │ ├── section.d.ts │ │ │ │ ├── section.js │ │ │ │ ├── section.js.map │ │ │ │ ├── table.d.ts │ │ │ │ ├── table.js │ │ │ │ ├── table.js.map │ │ │ │ ├── text.d.ts │ │ │ │ ├── text.js │ │ │ │ └── text.js.map │ │ │ ├── index.d.ts │ │ │ ├── index.js │ │ │ ├── index.js.map │ │ │ ├── map.d.ts │ │ │ ├── map.js │ │ │ ├── map.js.map │ │ │ ├── text.d.ts │ │ │ ├── text.js │ │ │ └── text.js.map │ │ ├── tsconfig.tsbuildinfo │ │ ├── utils.d.ts │ │ ├── utils.js │ │ ├── utils.js.map │ │ ├── view.d.ts │ │ ├── view.js │ │ └── view.js.map │ ├── logo.png │ ├── package.json │ ├── rollup.config.js │ ├── src │ │ ├── configurators │ │ │ ├── attribs.ts │ │ │ ├── classes.ts │ │ │ ├── index.ts │ │ │ └── styles.ts │ │ ├── declarations.ts │ │ ├── index.ts │ │ ├── node.ts │ │ ├── nodes │ │ │ ├── conditional.ts │ │ │ ├── html │ │ │ │ ├── content.ts │ │ │ │ ├── embed.ts │ │ │ │ ├── form.ts │ │ │ │ ├── index.ts │ │ │ │ ├── interactive.ts │ │ │ │ ├── media.ts │ │ │ │ ├── register.ts │ │ │ │ ├── section.ts │ │ │ │ ├── table.ts │ │ │ │ └── text.ts │ │ │ ├── index.ts │ │ │ ├── map.ts │ │ │ └── text.ts │ │ ├── utils.ts │ │ └── view.ts │ ├── tests │ │ ├── attribs.test.ts │ │ ├── classes.test.ts │ │ ├── conditional.test.ts │ │ ├── context.test.ts │ │ ├── directive.test.ts │ │ ├── dom.test.ts │ │ ├── events.test.ts │ │ ├── html.test.ts │ │ ├── map.test.ts │ │ ├── styles.test.ts │ │ ├── text.test.ts │ │ ├── tsconfig.json │ │ └── utils.ts │ ├── tsconfig.json │ └── yarn.lock ├── docking │ ├── .eslintignore │ ├── .eslintrc.js │ ├── .prettierrc │ ├── CHANGELOG.json │ ├── CHANGELOG.md │ ├── README.md │ ├── docs │ │ ├── assets.md │ │ ├── components.md │ │ ├── configuration.md │ │ ├── content.md │ │ ├── installation.md │ │ ├── setup.md │ │ └── support.md │ ├── lib │ │ ├── config.d.ts │ │ ├── config.js │ │ ├── config.js.map │ │ ├── declarations.d.ts │ │ ├── declarations.js │ │ ├── declarations.js.map │ │ ├── index.d.ts │ │ ├── index.js │ │ ├── index.js.map │ │ ├── library.d.ts │ │ ├── library.js │ │ ├── library.js.map │ │ ├── logger.d.ts │ │ ├── logger.js │ │ ├── logger.js.map │ │ ├── parser │ │ │ ├── index.d.ts │ │ │ ├── index.js │ │ │ ├── index.js.map │ │ │ ├── markdown.d.ts │ │ │ ├── markdown.js │ │ │ ├── markdown.js.map │ │ │ ├── references.d.ts │ │ │ ├── references.js │ │ │ ├── references.js.map │ │ │ ├── scripts.d.ts │ │ │ ├── scripts.js │ │ │ ├── scripts.js.map │ │ │ ├── template.d.ts │ │ │ ├── template.js │ │ │ └── template.js.map │ │ ├── resources │ │ │ ├── asset.d.ts │ │ │ ├── asset.js │ │ │ ├── asset.js.map │ │ │ ├── component.d.ts │ │ │ ├── component.js │ │ │ ├── component.js.map │ │ │ ├── content.d.ts │ │ │ ├── content.js │ │ │ ├── content.js.map │ │ │ ├── index.d.ts │ │ │ ├── index.js │ │ │ ├── index.js.map │ │ │ ├── resource.d.ts │ │ │ ├── resource.js │ │ │ └── resource.js.map │ │ ├── storage.d.ts │ │ ├── storage.js │ │ ├── storage.js.map │ │ ├── tasks │ │ │ ├── build │ │ │ │ ├── assets.d.ts │ │ │ │ ├── assets.js │ │ │ │ ├── assets.js.map │ │ │ │ ├── components.d.ts │ │ │ │ ├── components.js │ │ │ │ ├── components.js.map │ │ │ │ ├── content.d.ts │ │ │ │ ├── content.js │ │ │ │ ├── content.js.map │ │ │ │ ├── index.d.ts │ │ │ │ ├── index.js │ │ │ │ └── index.js.map │ │ │ ├── index.d.ts │ │ │ ├── index.js │ │ │ ├── index.js.map │ │ │ └── watch │ │ │ │ ├── assets.d.ts │ │ │ │ ├── assets.js │ │ │ │ ├── assets.js.map │ │ │ │ ├── components.d.ts │ │ │ │ ├── components.js │ │ │ │ ├── components.js.map │ │ │ │ ├── content.d.ts │ │ │ │ ├── content.js │ │ │ │ ├── content.js.map │ │ │ │ ├── index.d.ts │ │ │ │ ├── index.js │ │ │ │ └── index.js.map │ │ ├── tsconfig.tsbuildinfo │ │ └── utils │ │ │ ├── fs.d.ts │ │ │ ├── fs.js │ │ │ ├── fs.js.map │ │ │ ├── index.d.ts │ │ │ ├── index.js │ │ │ ├── index.js.map │ │ │ ├── misc.d.ts │ │ │ ├── misc.js │ │ │ ├── misc.js.map │ │ │ ├── path.d.ts │ │ │ ├── path.js │ │ │ └── path.js.map │ ├── logo.png │ ├── package.json │ ├── src │ │ ├── config.ts │ │ ├── declarations.ts │ │ ├── docking.d.ts │ │ ├── index.ts │ │ ├── library.ts │ │ ├── logger.ts │ │ ├── parser │ │ │ ├── index.ts │ │ │ ├── markdown.ts │ │ │ ├── references.ts │ │ │ ├── scripts.ts │ │ │ └── template.ts │ │ ├── resources │ │ │ ├── asset.ts │ │ │ ├── component.ts │ │ │ ├── content.ts │ │ │ ├── index.ts │ │ │ └── resource.ts │ │ ├── storage.ts │ │ ├── tasks │ │ │ ├── build │ │ │ │ ├── assets.ts │ │ │ │ ├── components.ts │ │ │ │ ├── content.ts │ │ │ │ └── index.ts │ │ │ ├── index.ts │ │ │ └── watch │ │ │ │ ├── assets.ts │ │ │ │ ├── components.ts │ │ │ │ ├── content.ts │ │ │ │ └── index.ts │ │ └── utils │ │ │ ├── fs.ts │ │ │ ├── index.ts │ │ │ ├── misc.ts │ │ │ └── path.ts │ └── tsconfig.json ├── prototope-server │ ├── .eslintignore │ ├── .eslintrc.js │ ├── .prettierrc │ ├── CHANGELOG.json │ ├── CHANGELOG.md │ ├── README.md │ ├── dist │ │ └── prototope-server.js │ ├── jest.config.js │ ├── lib │ │ ├── index.d.ts │ │ ├── index.js │ │ ├── index.js.map │ │ ├── prototope.d.ts │ │ ├── prototope.js │ │ ├── prototope.js.map │ │ ├── registry.d.ts │ │ ├── registry.js │ │ ├── registry.js.map │ │ └── tsconfig.tsbuildinfo │ ├── package.json │ ├── rollup.config.js │ ├── src │ │ ├── index.ts │ │ ├── prototope.ts │ │ └── registry.ts │ ├── tests │ │ ├── prototope.test.ts │ │ ├── test-cases.json │ │ ├── tsconfig.json │ │ └── utils.ts │ └── tsconfig.json ├── prototope │ ├── .eslintignore │ ├── .eslintrc.js │ ├── .prettierrc │ ├── CHANGELOG.json │ ├── CHANGELOG.md │ ├── README.md │ ├── dist │ │ └── prototope.js │ ├── docs │ │ ├── breakpoints.md │ │ ├── compatibility.md │ │ ├── customization.md │ │ ├── installation.md │ │ ├── setup.md │ │ ├── ssr.md │ │ ├── sub-selectors.md │ │ ├── support.md │ │ ├── typescript.md │ │ ├── utils.md │ │ └── why.md │ ├── jest.config.js │ ├── lib │ │ ├── breakpoints.d.ts │ │ ├── breakpoints.js │ │ ├── breakpoints.js.map │ │ ├── config.d.ts │ │ ├── config.js │ │ ├── config.js.map │ │ ├── declarations.d.ts │ │ ├── declarations.js │ │ ├── declarations.js.map │ │ ├── index.d.ts │ │ ├── index.js │ │ ├── index.js.map │ │ ├── prototope.d.ts │ │ ├── prototope.js │ │ ├── prototope.js.map │ │ ├── registry │ │ │ ├── dom.d.ts │ │ │ ├── dom.js │ │ │ ├── dom.js.map │ │ │ ├── index.d.ts │ │ │ ├── index.js │ │ │ ├── index.js.map │ │ │ ├── registry.d.ts │ │ │ ├── registry.js │ │ │ └── registry.js.map │ │ ├── sub-selectors.d.ts │ │ ├── sub-selectors.js │ │ ├── sub-selectors.js.map │ │ ├── tsconfig.tsbuildinfo │ │ └── utils │ │ │ ├── accessibility │ │ │ ├── index.d.ts │ │ │ ├── index.js │ │ │ ├── index.js.map │ │ │ ├── screen-readers.d.ts │ │ │ ├── screen-readers.js │ │ │ └── screen-readers.js.map │ │ │ ├── background │ │ │ ├── background-attachment.d.ts │ │ │ ├── background-attachment.js │ │ │ ├── background-attachment.js.map │ │ │ ├── background-color.d.ts │ │ │ ├── background-color.js │ │ │ ├── background-color.js.map │ │ │ ├── background-image.d.ts │ │ │ ├── background-image.js │ │ │ ├── background-image.js.map │ │ │ ├── background-position.d.ts │ │ │ ├── background-position.js │ │ │ ├── background-position.js.map │ │ │ ├── background-repeat.d.ts │ │ │ ├── background-repeat.js │ │ │ ├── background-repeat.js.map │ │ │ ├── background-size.d.ts │ │ │ ├── background-size.js │ │ │ ├── background-size.js.map │ │ │ ├── index.d.ts │ │ │ ├── index.js │ │ │ └── index.js.map │ │ │ ├── borders │ │ │ ├── border-color.d.ts │ │ │ ├── border-color.js │ │ │ ├── border-color.js.map │ │ │ ├── border-radius.d.ts │ │ │ ├── border-radius.js │ │ │ ├── border-radius.js.map │ │ │ ├── border-style.d.ts │ │ │ ├── border-style.js │ │ │ ├── border-style.js.map │ │ │ ├── border-width.d.ts │ │ │ ├── border-width.js │ │ │ ├── border-width.js.map │ │ │ ├── index.d.ts │ │ │ ├── index.js │ │ │ └── index.js.map │ │ │ ├── effects │ │ │ ├── box-shadow.d.ts │ │ │ ├── box-shadow.js │ │ │ ├── box-shadow.js.map │ │ │ ├── index.d.ts │ │ │ ├── index.js │ │ │ ├── index.js.map │ │ │ ├── opacity.d.ts │ │ │ ├── opacity.js │ │ │ └── opacity.js.map │ │ │ ├── flexbox │ │ │ ├── align-content.d.ts │ │ │ ├── align-content.js │ │ │ ├── align-content.js.map │ │ │ ├── align-items.d.ts │ │ │ ├── align-items.js │ │ │ ├── align-items.js.map │ │ │ ├── align-self.d.ts │ │ │ ├── align-self.js │ │ │ ├── align-self.js.map │ │ │ ├── direction.d.ts │ │ │ ├── direction.js │ │ │ ├── direction.js.map │ │ │ ├── flex-grow.d.ts │ │ │ ├── flex-grow.js │ │ │ ├── flex-grow.js.map │ │ │ ├── flex-shrink.d.ts │ │ │ ├── flex-shrink.js │ │ │ ├── flex-shrink.js.map │ │ │ ├── flex.d.ts │ │ │ ├── flex.js │ │ │ ├── flex.js.map │ │ │ ├── index.d.ts │ │ │ ├── index.js │ │ │ ├── index.js.map │ │ │ ├── justify-content.d.ts │ │ │ ├── justify-content.js │ │ │ ├── justify-content.js.map │ │ │ ├── order.d.ts │ │ │ ├── order.js │ │ │ ├── order.js.map │ │ │ ├── wrap.d.ts │ │ │ ├── wrap.js │ │ │ └── wrap.js.map │ │ │ ├── grid │ │ │ ├── gap.d.ts │ │ │ ├── gap.js │ │ │ ├── gap.js.map │ │ │ ├── grid-auto-flow.d.ts │ │ │ ├── grid-auto-flow.js │ │ │ ├── grid-auto-flow.js.map │ │ │ ├── grid-column.d.ts │ │ │ ├── grid-column.js │ │ │ ├── grid-column.js.map │ │ │ ├── grid-row.d.ts │ │ │ ├── grid-row.js │ │ │ ├── grid-row.js.map │ │ │ ├── grid-template-columns.d.ts │ │ │ ├── grid-template-columns.js │ │ │ ├── grid-template-columns.js.map │ │ │ ├── grid-template-rows.d.ts │ │ │ ├── grid-template-rows.js │ │ │ ├── grid-template-rows.js.map │ │ │ ├── index.d.ts │ │ │ ├── index.js │ │ │ └── index.js.map │ │ │ ├── index.d.ts │ │ │ ├── index.js │ │ │ ├── index.js.map │ │ │ ├── interactivity │ │ │ ├── appearance.d.ts │ │ │ ├── appearance.js │ │ │ ├── appearance.js.map │ │ │ ├── cursor.d.ts │ │ │ ├── cursor.js │ │ │ ├── cursor.js.map │ │ │ ├── index.d.ts │ │ │ ├── index.js │ │ │ ├── index.js.map │ │ │ ├── outline.d.ts │ │ │ ├── outline.js │ │ │ ├── outline.js.map │ │ │ ├── pointer-events.d.ts │ │ │ ├── pointer-events.js │ │ │ ├── pointer-events.js.map │ │ │ ├── resize.d.ts │ │ │ ├── resize.js │ │ │ ├── resize.js.map │ │ │ ├── user-select.d.ts │ │ │ ├── user-select.js │ │ │ └── user-select.js.map │ │ │ ├── layout │ │ │ ├── box-sizing.d.ts │ │ │ ├── box-sizing.js │ │ │ ├── box-sizing.js.map │ │ │ ├── clear.d.ts │ │ │ ├── clear.js │ │ │ ├── clear.js.map │ │ │ ├── container.d.ts │ │ │ ├── container.js │ │ │ ├── container.js.map │ │ │ ├── display.d.ts │ │ │ ├── display.js │ │ │ ├── display.js.map │ │ │ ├── float.d.ts │ │ │ ├── float.js │ │ │ ├── float.js.map │ │ │ ├── index.d.ts │ │ │ ├── index.js │ │ │ ├── index.js.map │ │ │ ├── object-fit.d.ts │ │ │ ├── object-fit.js │ │ │ ├── object-fit.js.map │ │ │ ├── object-position.d.ts │ │ │ ├── object-position.js │ │ │ ├── object-position.js.map │ │ │ ├── overflow.d.ts │ │ │ ├── overflow.js │ │ │ ├── overflow.js.map │ │ │ ├── placement.d.ts │ │ │ ├── placement.js │ │ │ ├── placement.js.map │ │ │ ├── position.d.ts │ │ │ ├── position.js │ │ │ ├── position.js.map │ │ │ ├── visibility.d.ts │ │ │ ├── visibility.js │ │ │ ├── visibility.js.map │ │ │ ├── z-index.d.ts │ │ │ ├── z-index.js │ │ │ └── z-index.js.map │ │ │ ├── sizing │ │ │ ├── height.d.ts │ │ │ ├── height.js │ │ │ ├── height.js.map │ │ │ ├── index.d.ts │ │ │ ├── index.js │ │ │ ├── index.js.map │ │ │ ├── max-height.d.ts │ │ │ ├── max-height.js │ │ │ ├── max-height.js.map │ │ │ ├── max-width.d.ts │ │ │ ├── max-width.js │ │ │ ├── max-width.js.map │ │ │ ├── min-height.d.ts │ │ │ ├── min-height.js │ │ │ ├── min-height.js.map │ │ │ ├── min-width.d.ts │ │ │ ├── min-width.js │ │ │ ├── min-width.js.map │ │ │ ├── width.d.ts │ │ │ ├── width.js │ │ │ └── width.js.map │ │ │ ├── spacing │ │ │ ├── index.d.ts │ │ │ ├── index.js │ │ │ ├── index.js.map │ │ │ ├── margin.d.ts │ │ │ ├── margin.js │ │ │ ├── margin.js.map │ │ │ ├── padding.d.ts │ │ │ ├── padding.js │ │ │ └── padding.js.map │ │ │ ├── svg │ │ │ ├── fill.d.ts │ │ │ ├── fill.js │ │ │ ├── fill.js.map │ │ │ ├── index.d.ts │ │ │ ├── index.js │ │ │ ├── index.js.map │ │ │ ├── stroke-width.d.ts │ │ │ ├── stroke-width.js │ │ │ ├── stroke-width.js.map │ │ │ ├── stroke.d.ts │ │ │ ├── stroke.js │ │ │ └── stroke.js.map │ │ │ ├── tables │ │ │ ├── border-collapse.d.ts │ │ │ ├── border-collapse.js │ │ │ ├── border-collapse.js.map │ │ │ ├── index.d.ts │ │ │ ├── index.js │ │ │ ├── index.js.map │ │ │ ├── table-layout.d.ts │ │ │ ├── table-layout.js │ │ │ └── table-layout.js.map │ │ │ ├── transforms │ │ │ ├── index.d.ts │ │ │ ├── index.js │ │ │ ├── index.js.map │ │ │ ├── rotate.d.ts │ │ │ ├── rotate.js │ │ │ ├── rotate.js.map │ │ │ ├── scale.d.ts │ │ │ ├── scale.js │ │ │ ├── scale.js.map │ │ │ ├── skew.d.ts │ │ │ ├── skew.js │ │ │ ├── skew.js.map │ │ │ ├── transform-origin.d.ts │ │ │ ├── transform-origin.js │ │ │ ├── transform-origin.js.map │ │ │ ├── transform-util.d.ts │ │ │ ├── transform-util.js │ │ │ ├── transform-util.js.map │ │ │ ├── translate.d.ts │ │ │ ├── translate.js │ │ │ └── translate.js.map │ │ │ ├── transitions │ │ │ ├── index.d.ts │ │ │ ├── index.js │ │ │ ├── index.js.map │ │ │ ├── transition-duration.d.ts │ │ │ ├── transition-duration.js │ │ │ ├── transition-duration.js.map │ │ │ ├── transition-property.d.ts │ │ │ ├── transition-property.js │ │ │ ├── transition-property.js.map │ │ │ ├── transition-timing-function.d.ts │ │ │ ├── transition-timing-function.js │ │ │ └── transition-timing-function.js.map │ │ │ ├── typography │ │ │ ├── font-size.d.ts │ │ │ ├── font-size.js │ │ │ ├── font-size.js.map │ │ │ ├── font-smoothing.d.ts │ │ │ ├── font-smoothing.js │ │ │ ├── font-smoothing.js.map │ │ │ ├── font-style.d.ts │ │ │ ├── font-style.js │ │ │ ├── font-style.js.map │ │ │ ├── font-weight.d.ts │ │ │ ├── font-weight.js │ │ │ ├── font-weight.js.map │ │ │ ├── index.d.ts │ │ │ ├── index.js │ │ │ ├── index.js.map │ │ │ ├── letter-spacing.d.ts │ │ │ ├── letter-spacing.js │ │ │ ├── letter-spacing.js.map │ │ │ ├── line-height.d.ts │ │ │ ├── line-height.js │ │ │ ├── line-height.js.map │ │ │ ├── list-style-position.d.ts │ │ │ ├── list-style-position.js │ │ │ ├── list-style-position.js.map │ │ │ ├── list-style-type.d.ts │ │ │ ├── list-style-type.js │ │ │ ├── list-style-type.js.map │ │ │ ├── placeholder-color.d.ts │ │ │ ├── placeholder-color.js │ │ │ ├── placeholder-color.js.map │ │ │ ├── text-align.d.ts │ │ │ ├── text-align.js │ │ │ ├── text-align.js.map │ │ │ ├── text-color.d.ts │ │ │ ├── text-color.js │ │ │ ├── text-color.js.map │ │ │ ├── text-decoration.d.ts │ │ │ ├── text-decoration.js │ │ │ ├── text-decoration.js.map │ │ │ ├── text-transform.d.ts │ │ │ ├── text-transform.js │ │ │ ├── text-transform.js.map │ │ │ ├── vertical-align.d.ts │ │ │ ├── vertical-align.js │ │ │ ├── vertical-align.js.map │ │ │ ├── whitespace.d.ts │ │ │ ├── whitespace.js │ │ │ ├── whitespace.js.map │ │ │ ├── word-break.d.ts │ │ │ ├── word-break.js │ │ │ └── word-break.js.map │ │ │ ├── util.d.ts │ │ │ ├── util.js │ │ │ └── util.js.map │ ├── logo.png │ ├── package.json │ ├── rollup.config.js │ ├── src │ │ ├── breakpoints.ts │ │ ├── config.ts │ │ ├── declarations.ts │ │ ├── index.ts │ │ ├── prototope.ts │ │ ├── registry │ │ │ ├── dom.ts │ │ │ ├── index.ts │ │ │ └── registry.ts │ │ ├── sub-selectors.ts │ │ └── utils │ │ │ ├── accessibility │ │ │ ├── index.ts │ │ │ └── screen-readers.ts │ │ │ ├── background │ │ │ ├── background-attachment.ts │ │ │ ├── background-color.ts │ │ │ ├── background-image.ts │ │ │ ├── background-position.ts │ │ │ ├── background-repeat.ts │ │ │ ├── background-size.ts │ │ │ └── index.ts │ │ │ ├── borders │ │ │ ├── border-color.ts │ │ │ ├── border-radius.ts │ │ │ ├── border-style.ts │ │ │ ├── border-width.ts │ │ │ └── index.ts │ │ │ ├── effects │ │ │ ├── box-shadow.ts │ │ │ ├── index.ts │ │ │ └── opacity.ts │ │ │ ├── flexbox │ │ │ ├── align-content.ts │ │ │ ├── align-items.ts │ │ │ ├── align-self.ts │ │ │ ├── direction.ts │ │ │ ├── flex-grow.ts │ │ │ ├── flex-shrink.ts │ │ │ ├── flex.ts │ │ │ ├── index.ts │ │ │ ├── justify-content.ts │ │ │ ├── order.ts │ │ │ └── wrap.ts │ │ │ ├── grid │ │ │ ├── gap.ts │ │ │ ├── grid-auto-flow.ts │ │ │ ├── grid-column.ts │ │ │ ├── grid-row.ts │ │ │ ├── grid-template-columns.ts │ │ │ ├── grid-template-rows.ts │ │ │ └── index.ts │ │ │ ├── index.ts │ │ │ ├── interactivity │ │ │ ├── appearance.ts │ │ │ ├── cursor.ts │ │ │ ├── index.ts │ │ │ ├── outline.ts │ │ │ ├── pointer-events.ts │ │ │ ├── resize.ts │ │ │ └── user-select.ts │ │ │ ├── layout │ │ │ ├── box-sizing.ts │ │ │ ├── clear.ts │ │ │ ├── container.ts │ │ │ ├── display.ts │ │ │ ├── float.ts │ │ │ ├── index.ts │ │ │ ├── object-fit.ts │ │ │ ├── object-position.ts │ │ │ ├── overflow.ts │ │ │ ├── placement.ts │ │ │ ├── position.ts │ │ │ ├── visibility.ts │ │ │ └── z-index.ts │ │ │ ├── sizing │ │ │ ├── height.ts │ │ │ ├── index.ts │ │ │ ├── max-height.ts │ │ │ ├── max-width.ts │ │ │ ├── min-height.ts │ │ │ ├── min-width.ts │ │ │ └── width.ts │ │ │ ├── spacing │ │ │ ├── index.ts │ │ │ ├── margin.ts │ │ │ └── padding.ts │ │ │ ├── svg │ │ │ ├── fill.ts │ │ │ ├── index.ts │ │ │ ├── stroke-width.ts │ │ │ └── stroke.ts │ │ │ ├── tables │ │ │ ├── border-collapse.ts │ │ │ ├── index.ts │ │ │ └── table-layout.ts │ │ │ ├── transforms │ │ │ ├── index.ts │ │ │ ├── rotate.ts │ │ │ ├── scale.ts │ │ │ ├── skew.ts │ │ │ ├── transform-origin.ts │ │ │ ├── transform-util.ts │ │ │ └── translate.ts │ │ │ ├── transitions │ │ │ ├── index.ts │ │ │ ├── transition-duration.ts │ │ │ ├── transition-property.ts │ │ │ └── transition-timing-function.ts │ │ │ ├── typography │ │ │ ├── font-size.ts │ │ │ ├── font-smoothing.ts │ │ │ ├── font-style.ts │ │ │ ├── font-weight.ts │ │ │ ├── index.ts │ │ │ ├── letter-spacing.ts │ │ │ ├── line-height.ts │ │ │ ├── list-style-position.ts │ │ │ ├── list-style-type.ts │ │ │ ├── placeholder-color.ts │ │ │ ├── text-align.ts │ │ │ ├── text-color.ts │ │ │ ├── text-decoration.ts │ │ │ ├── text-transform.ts │ │ │ ├── vertical-align.ts │ │ │ ├── whitespace.ts │ │ │ └── word-break.ts │ │ │ └── util.ts │ ├── tests │ │ ├── prototope.test.ts │ │ ├── test-cases.json │ │ ├── tsconfig.json │ │ └── utils.ts │ └── tsconfig.json └── server │ ├── .eslintignore │ ├── .eslintrc.js │ ├── .prettierrc │ ├── CHANGELOG.json │ ├── CHANGELOG.md │ ├── README.md │ ├── dist │ └── isotope-server.js │ ├── jest.config.js │ ├── lib │ ├── element.d.ts │ ├── element.js │ ├── element.js.map │ ├── index.d.ts │ ├── index.js │ ├── index.js.map │ ├── string.d.ts │ ├── string.js │ ├── string.js.map │ └── tsconfig.tsbuildinfo │ ├── package.json │ ├── rollup.config.js │ ├── src │ ├── element.ts │ ├── index.ts │ └── string.ts │ ├── tests │ ├── element.test.ts │ ├── string.test.ts │ └── tsconfig.json │ └── tsconfig.json └── rush.json /.github/FUNDING.yml: -------------------------------------------------------------------------------- 1 | # These are supported funding model platforms 2 | 3 | custom: https://www.buymeacoffee.com/areknawo 4 | -------------------------------------------------------------------------------- /.vscode/settings.json: -------------------------------------------------------------------------------- 1 | { 2 | "eslint.enable": true 3 | } -------------------------------------------------------------------------------- /common/changes/@isotope/prototope-server/master_2020-05-26-08-03.json: -------------------------------------------------------------------------------- 1 | { 2 | "changes": [ 3 | { 4 | "packageName": "@isotope/prototope-server", 5 | "comment": "", 6 | "type": "none" 7 | } 8 | ], 9 | "packageName": "@isotope/prototope-server", 10 | "email": "areknawo@areknawo.com" 11 | } -------------------------------------------------------------------------------- /common/changes/@isotope/server/master_2020-05-26-08-03.json: -------------------------------------------------------------------------------- 1 | { 2 | "changes": [ 3 | { 4 | "packageName": "@isotope/server", 5 | "comment": "", 6 | "type": "none" 7 | } 8 | ], 9 | "packageName": "@isotope/server", 10 | "email": "areknawo@areknawo.com" 11 | } -------------------------------------------------------------------------------- /common/config/rush/.npmrc: -------------------------------------------------------------------------------- 1 | # Rush uses this file to configure the package registry, regardless of whether the 2 | # package manager is PNPM, NPM, or Yarn. Prior to invoking the package manager, 3 | # Rush will always copy this file to the folder where installation is performed. 4 | # When NPM is the package manager, Rush works around NPM's processing of 5 | # undefined environment variables by deleting any lines that reference undefined 6 | # environment variables. 7 | # 8 | # DO NOT SPECIFY AUTHENTICATION CREDENTIALS IN THIS FILE. It should only be used 9 | # to configure registry sources. 10 | 11 | registry=https://registry.npmjs.org/ 12 | always-auth=false 13 | -------------------------------------------------------------------------------- /common/config/rush/common-versions.json: -------------------------------------------------------------------------------- 1 | { 2 | "$schema": "https://developer.microsoft.com/json-schemas/rush/v5/common-versions.schema.json", 3 | "preferredVersions": {}, 4 | "allowedAlternativeVersions": {} 5 | } 6 | -------------------------------------------------------------------------------- /common/config/rush/experiments.json: -------------------------------------------------------------------------------- 1 | { 2 | "$schema": "https://developer.microsoft.com/json-schemas/rush/v5/experiments.schema.json" 3 | } 4 | -------------------------------------------------------------------------------- /common/config/rush/version-policies.json: -------------------------------------------------------------------------------- 1 | [] 2 | -------------------------------------------------------------------------------- /packages/core/.eslintignore: -------------------------------------------------------------------------------- 1 | node_modules 2 | **/lib/**/* 3 | *.config.* 4 | *.js -------------------------------------------------------------------------------- /packages/core/.eslintrc.js: -------------------------------------------------------------------------------- 1 | require("eslint-config-xtrict/patch-eslint6"); 2 | 3 | module.exports = { 4 | parserOptions: { 5 | tsconfigRootDir: __dirname 6 | }, 7 | env: { browser: true, es6: true, jest: true }, 8 | root: true, 9 | extends: ["xtrict"], 10 | rules: { 11 | "unicorn/prefer-node-append": "off", 12 | "max-params": [2, 4], 13 | "@typescript-eslint/generic-type-naming": [2, "^[A-Z][0-9]?$"] 14 | } 15 | }; 16 | -------------------------------------------------------------------------------- /packages/core/.prettierrc: -------------------------------------------------------------------------------- 1 | { 2 | "printWidth": 90, 3 | "useTabs": true, 4 | "arrowParens": "always", 5 | "quoteProps": "consistent", 6 | "endOfLine": "lf", 7 | "trailingComma": "none" 8 | } 9 | -------------------------------------------------------------------------------- /packages/core/CHANGELOG.md: -------------------------------------------------------------------------------- 1 | # Change Log - @isotope/core 2 | 3 | This log was last generated on Tue, 26 May 2020 08:04:10 GMT and should not be manually modified. 4 | 5 | ## 0.2.5 6 | Tue, 26 May 2020 08:04:10 GMT 7 | 8 | ### Patches 9 | 10 | - Improve typings 11 | 12 | ## 0.2.4 13 | Mon, 11 May 2020 13:01:10 GMT 14 | 15 | ### Patches 16 | 17 | - Version bump 18 | 19 | -------------------------------------------------------------------------------- /packages/core/jest.config.js: -------------------------------------------------------------------------------- 1 | module.exports = { 2 | preset: "ts-jest", 3 | testEnvironment: "jsdom", 4 | globals: { 5 | "ts-jest": { 6 | diagnostics: false, 7 | packageJson: "package.json" 8 | } 9 | }, 10 | collectCoverage: true, 11 | collectCoverageFrom: ["src/**/*.ts"], 12 | coverageThreshold: { 13 | global: { 14 | branches: 70, 15 | functions: 70, 16 | lines: 70, 17 | statements: 70 18 | } 19 | } 20 | }; 21 | -------------------------------------------------------------------------------- /packages/core/lib/configurators/index.d.ts: -------------------------------------------------------------------------------- 1 | import "./attribs"; 2 | import "./classes"; 3 | import "./styles"; 4 | -------------------------------------------------------------------------------- /packages/core/lib/configurators/index.js: -------------------------------------------------------------------------------- 1 | import "./attribs"; 2 | import "./classes"; 3 | import "./styles"; 4 | //# sourceMappingURL=index.js.map -------------------------------------------------------------------------------- /packages/core/lib/configurators/index.js.map: -------------------------------------------------------------------------------- 1 | {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/configurators/index.ts"],"names":[],"mappings":"AAAA,OAAO,WAAW,CAAC;AACnB,OAAO,WAAW,CAAC;AACnB,OAAO,UAAU,CAAC"} -------------------------------------------------------------------------------- /packages/core/lib/declarations.js: -------------------------------------------------------------------------------- 1 | //# sourceMappingURL=declarations.js.map -------------------------------------------------------------------------------- /packages/core/lib/declarations.js.map: -------------------------------------------------------------------------------- 1 | {"version":3,"file":"declarations.js","sourceRoot":"","sources":["../src/declarations.ts"],"names":[],"mappings":""} -------------------------------------------------------------------------------- /packages/core/lib/index.d.ts: -------------------------------------------------------------------------------- 1 | import { IsotopeNode } from "./node"; 2 | import { createDOMView } from "./view"; 3 | import "./configurators"; 4 | import "./nodes"; 5 | export { IsotopeNode, createDOMView }; 6 | -------------------------------------------------------------------------------- /packages/core/lib/index.js: -------------------------------------------------------------------------------- 1 | import { IsotopeNode } from "./node"; 2 | import { createDOMView } from "./view"; 3 | import "./configurators"; 4 | import "./nodes"; 5 | export { IsotopeNode, createDOMView }; 6 | //# sourceMappingURL=index.js.map -------------------------------------------------------------------------------- /packages/core/lib/index.js.map: -------------------------------------------------------------------------------- 1 | {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,QAAQ,CAAC;AACrC,OAAO,EAAE,aAAa,EAAE,MAAM,QAAQ,CAAC;AACvC,OAAO,iBAAiB,CAAC;AACzB,OAAO,SAAS,CAAC;AAEjB,OAAO,EAAE,WAAW,EAAE,aAAa,EAAE,CAAC"} -------------------------------------------------------------------------------- /packages/core/lib/nodes/html/content.d.ts: -------------------------------------------------------------------------------- 1 | import { Child } from "./register"; 2 | declare module "../../node" { 3 | interface IsotopeNode { 4 | blockquote: Child; 5 | dd: Child; 6 | div: Child; 7 | dl: Child; 8 | dt: Child; 9 | figcaption: Child; 10 | figure: Child; 11 | hr: Child; 12 | li: Child; 13 | main: Child; 14 | ol: Child; 15 | p: Child; 16 | pre: Child; 17 | ul: Child; 18 | } 19 | } 20 | -------------------------------------------------------------------------------- /packages/core/lib/nodes/html/content.js: -------------------------------------------------------------------------------- 1 | import { registerChild } from "./register"; 2 | const nodes = [ 3 | "blockquote", 4 | "dd", 5 | "div", 6 | "dl", 7 | "dt", 8 | "figcaption", 9 | "figure", 10 | "hr", 11 | "li", 12 | "main", 13 | "ol", 14 | "p", 15 | "pre", 16 | "ul" 17 | ]; 18 | nodes.forEach((name) => { 19 | registerChild(name); 20 | }); 21 | //# sourceMappingURL=content.js.map -------------------------------------------------------------------------------- /packages/core/lib/nodes/html/content.js.map: -------------------------------------------------------------------------------- 1 | {"version":3,"file":"content.js","sourceRoot":"","sources":["../../../src/nodes/html/content.ts"],"names":[],"mappings":"AAAA,OAAO,EAAS,aAAa,EAAE,MAAM,YAAY,CAAC;AAqBlD,MAAM,KAAK,GAAG;IACb,YAAY;IACZ,IAAI;IACJ,KAAK;IACL,IAAI;IACJ,IAAI;IACJ,YAAY;IACZ,QAAQ;IACR,IAAI;IACJ,IAAI;IACJ,MAAM;IACN,IAAI;IACJ,GAAG;IACH,KAAK;IACL,IAAI;CACJ,CAAC;AAEF,KAAK,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,EAAE;IACtB,aAAa,CAAC,IAAI,CAAC,CAAC;AACrB,CAAC,CAAC,CAAC"} -------------------------------------------------------------------------------- /packages/core/lib/nodes/html/embed.d.ts: -------------------------------------------------------------------------------- 1 | import { Child } from "./register"; 2 | declare module "../../node" { 3 | interface IsotopeNode { 4 | embed: Child; 5 | iframe: Child; 6 | object: Child; 7 | param: Child; 8 | picture: Child; 9 | source: Child; 10 | } 11 | } 12 | -------------------------------------------------------------------------------- /packages/core/lib/nodes/html/embed.js: -------------------------------------------------------------------------------- 1 | import { registerChild } from "./register"; 2 | const nodes = ["embed", "iframe", "object", "param", "picture", "source"]; 3 | nodes.forEach((name) => { 4 | registerChild(name); 5 | }); 6 | //# sourceMappingURL=embed.js.map -------------------------------------------------------------------------------- /packages/core/lib/nodes/html/embed.js.map: -------------------------------------------------------------------------------- 1 | {"version":3,"file":"embed.js","sourceRoot":"","sources":["../../../src/nodes/html/embed.ts"],"names":[],"mappings":"AAAA,OAAO,EAAS,aAAa,EAAE,MAAM,YAAY,CAAC;AAalD,MAAM,KAAK,GAAG,CAAC,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,OAAO,EAAE,SAAS,EAAE,QAAQ,CAAC,CAAC;AAE1E,KAAK,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,EAAE;IACtB,aAAa,CAAC,IAAI,CAAC,CAAC;AACrB,CAAC,CAAC,CAAC"} -------------------------------------------------------------------------------- /packages/core/lib/nodes/html/form.d.ts: -------------------------------------------------------------------------------- 1 | import { Child } from "./register"; 2 | declare module "../../node" { 3 | interface IsotopeNode { 4 | button: Child; 5 | datalist: Child; 6 | fieldset: Child; 7 | form: Child; 8 | input: Child; 9 | label: Child; 10 | legend: Child; 11 | meter: Child; 12 | optgroup: Child; 13 | option: Child; 14 | output: Child; 15 | progress: Child; 16 | select: Child; 17 | textarea: Child; 18 | } 19 | } 20 | -------------------------------------------------------------------------------- /packages/core/lib/nodes/html/form.js: -------------------------------------------------------------------------------- 1 | import { registerChild } from "./register"; 2 | const nodes = [ 3 | "button", 4 | "datalist", 5 | "fieldset", 6 | "form", 7 | "input", 8 | "label", 9 | "legend", 10 | "meter", 11 | "optgroup", 12 | "option", 13 | "output", 14 | "progress", 15 | "select", 16 | "textarea" 17 | ]; 18 | nodes.forEach((name) => { 19 | registerChild(name); 20 | }); 21 | //# sourceMappingURL=form.js.map -------------------------------------------------------------------------------- /packages/core/lib/nodes/html/form.js.map: -------------------------------------------------------------------------------- 1 | {"version":3,"file":"form.js","sourceRoot":"","sources":["../../../src/nodes/html/form.ts"],"names":[],"mappings":"AAAA,OAAO,EAAS,aAAa,EAAE,MAAM,YAAY,CAAC;AAqBlD,MAAM,KAAK,GAAG;IACb,QAAQ;IACR,UAAU;IACV,UAAU;IACV,MAAM;IACN,OAAO;IACP,OAAO;IACP,QAAQ;IACR,OAAO;IACP,UAAU;IACV,QAAQ;IACR,QAAQ;IACR,UAAU;IACV,QAAQ;IACR,UAAU;CACV,CAAC;AAEF,KAAK,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,EAAE;IACtB,aAAa,CAAC,IAAI,CAAC,CAAC;AACrB,CAAC,CAAC,CAAC"} -------------------------------------------------------------------------------- /packages/core/lib/nodes/html/index.d.ts: -------------------------------------------------------------------------------- 1 | import "./content"; 2 | import "./embed"; 3 | import "./form"; 4 | import "./interactive"; 5 | import "./media"; 6 | import "./section"; 7 | import "./table"; 8 | import "./text"; 9 | -------------------------------------------------------------------------------- /packages/core/lib/nodes/html/index.js: -------------------------------------------------------------------------------- 1 | import "./content"; 2 | import "./embed"; 3 | import "./form"; 4 | import "./interactive"; 5 | import "./media"; 6 | import "./section"; 7 | import "./table"; 8 | import "./text"; 9 | //# sourceMappingURL=index.js.map -------------------------------------------------------------------------------- /packages/core/lib/nodes/html/index.js.map: -------------------------------------------------------------------------------- 1 | {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/nodes/html/index.ts"],"names":[],"mappings":"AAAA,OAAO,WAAW,CAAC;AACnB,OAAO,SAAS,CAAC;AACjB,OAAO,QAAQ,CAAC;AAChB,OAAO,eAAe,CAAC;AACvB,OAAO,SAAS,CAAC;AACjB,OAAO,WAAW,CAAC;AACnB,OAAO,SAAS,CAAC;AACjB,OAAO,QAAQ,CAAC"} -------------------------------------------------------------------------------- /packages/core/lib/nodes/html/interactive.d.ts: -------------------------------------------------------------------------------- 1 | import { Child } from "./register"; 2 | declare module "../../node" { 3 | interface IsotopeNode { 4 | details: Child; 5 | dialog: Child; 6 | menu: Child; 7 | summary: Child; 8 | canvas: Child; 9 | script: Child; 10 | noscript: Child; 11 | slot: Child; 12 | template: Child; 13 | } 14 | } 15 | -------------------------------------------------------------------------------- /packages/core/lib/nodes/html/interactive.js: -------------------------------------------------------------------------------- 1 | import { registerChild } from "./register"; 2 | const nodes = [ 3 | "details", 4 | "dialog", 5 | "menu", 6 | "summary", 7 | "canvas", 8 | "script", 9 | "noscript", 10 | "slot", 11 | "template" 12 | ]; 13 | nodes.forEach((name) => { 14 | registerChild(name); 15 | }); 16 | //# sourceMappingURL=interactive.js.map -------------------------------------------------------------------------------- /packages/core/lib/nodes/html/interactive.js.map: -------------------------------------------------------------------------------- 1 | {"version":3,"file":"interactive.js","sourceRoot":"","sources":["../../../src/nodes/html/interactive.ts"],"names":[],"mappings":"AAAA,OAAO,EAAS,aAAa,EAAE,MAAM,YAAY,CAAC;AAgBlD,MAAM,KAAK,GAAG;IACb,SAAS;IACT,QAAQ;IACR,MAAM;IACN,SAAS;IACT,QAAQ;IACR,QAAQ;IACR,UAAU;IACV,MAAM;IACN,UAAU;CACV,CAAC;AAEF,KAAK,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,EAAE;IACtB,aAAa,CAAC,IAAI,CAAC,CAAC;AACrB,CAAC,CAAC,CAAC"} -------------------------------------------------------------------------------- /packages/core/lib/nodes/html/media.d.ts: -------------------------------------------------------------------------------- 1 | import { Child } from "./register"; 2 | declare module "../../node" { 3 | interface IsotopeNode { 4 | area: Child; 5 | audio: Child; 6 | img: Child; 7 | track: Child; 8 | video: Child; 9 | } 10 | } 11 | -------------------------------------------------------------------------------- /packages/core/lib/nodes/html/media.js: -------------------------------------------------------------------------------- 1 | import { registerChild } from "./register"; 2 | const nodes = ["area", "audio", "img", "track", "video"]; 3 | nodes.forEach((name) => { 4 | registerChild(name); 5 | }); 6 | //# sourceMappingURL=media.js.map -------------------------------------------------------------------------------- /packages/core/lib/nodes/html/media.js.map: -------------------------------------------------------------------------------- 1 | {"version":3,"file":"media.js","sourceRoot":"","sources":["../../../src/nodes/html/media.ts"],"names":[],"mappings":"AAAA,OAAO,EAAS,aAAa,EAAE,MAAM,YAAY,CAAC;AAYlD,MAAM,KAAK,GAAG,CAAC,MAAM,EAAE,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC;AAEzD,KAAK,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,EAAE;IACtB,aAAa,CAAC,IAAI,CAAC,CAAC;AACrB,CAAC,CAAC,CAAC"} -------------------------------------------------------------------------------- /packages/core/lib/nodes/html/register.d.ts: -------------------------------------------------------------------------------- 1 | import { Directive, IsotopeNode, IsotopeNodeConfig } from "../../node"; 2 | import { Indexable } from "../../declarations"; 3 | declare type Child = (config?: IsotopeNodeConfig | string | Directive | Array>) => IsotopeNode; 4 | /** 5 | * Registers new Node child function. 6 | * 7 | * @param name - Name for the child. 8 | */ 9 | declare const registerChild: (name: string) => void; 10 | export { Child, registerChild }; 11 | -------------------------------------------------------------------------------- /packages/core/lib/nodes/html/register.js: -------------------------------------------------------------------------------- 1 | import { IsotopeNode } from "../../node"; 2 | /** 3 | * Registers new Node child function. 4 | * 5 | * @param name - Name for the child. 6 | */ 7 | const registerChild = (name) => { 8 | /** @private */ 9 | if (!IsotopeNode.prototype[name]) { 10 | IsotopeNode.prototype[name] = function (config) { 11 | return this.child(name, config); 12 | }; 13 | } 14 | }; 15 | export { registerChild }; 16 | //# sourceMappingURL=register.js.map -------------------------------------------------------------------------------- /packages/core/lib/nodes/html/register.js.map: -------------------------------------------------------------------------------- 1 | {"version":3,"file":"register.js","sourceRoot":"","sources":["../../../src/nodes/html/register.ts"],"names":[],"mappings":"AAAA,OAAO,EAAa,WAAW,EAAqB,MAAM,YAAY,CAAC;AAWvE;;;;GAIG;AACH,MAAM,aAAa,GAAG,CAAC,IAAY,EAAQ,EAAE;IAC5C,eAAe;IACf,IAAI,CAAC,WAAW,CAAC,SAAS,CAAC,IAA0C,CAAC,EAAE;QACvE,WAAW,CAAC,SAAS,CAAC,IAA0C,CAAC,GAAG,UAEnE,MAA6C;YAE7C,OAAO,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;QACjC,CAAC,CAAC;KACF;AACF,CAAC,CAAC;AAEF,OAAO,EAAS,aAAa,EAAE,CAAC"} -------------------------------------------------------------------------------- /packages/core/lib/nodes/html/section.d.ts: -------------------------------------------------------------------------------- 1 | import { Child } from "./register"; 2 | declare module "../../node" { 3 | interface IsotopeNode { 4 | address: Child; 5 | article: Child; 6 | aside: Child; 7 | footer: Child; 8 | header: Child; 9 | h1: Child; 10 | h2: Child; 11 | h3: Child; 12 | h4: Child; 13 | h5: Child; 14 | h6: Child; 15 | hgroup: Child; 16 | main: Child; 17 | nav: Child; 18 | section: Child; 19 | } 20 | } 21 | -------------------------------------------------------------------------------- /packages/core/lib/nodes/html/section.js: -------------------------------------------------------------------------------- 1 | import { registerChild } from "./register"; 2 | const nodes = [ 3 | "address", 4 | "article", 5 | "aside", 6 | "footer", 7 | "header", 8 | "h1", 9 | "h2", 10 | "h3", 11 | "h4", 12 | "h5", 13 | "h6", 14 | "hgroup", 15 | "main", 16 | "nav", 17 | "section" 18 | ]; 19 | nodes.forEach((name) => { 20 | registerChild(name); 21 | }); 22 | //# sourceMappingURL=section.js.map -------------------------------------------------------------------------------- /packages/core/lib/nodes/html/section.js.map: -------------------------------------------------------------------------------- 1 | {"version":3,"file":"section.js","sourceRoot":"","sources":["../../../src/nodes/html/section.ts"],"names":[],"mappings":"AAAA,OAAO,EAAS,aAAa,EAAE,MAAM,YAAY,CAAC;AAsBlD,MAAM,KAAK,GAAG;IACb,SAAS;IACT,SAAS;IACT,OAAO;IACP,QAAQ;IACR,QAAQ;IACR,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,QAAQ;IACR,MAAM;IACN,KAAK;IACL,SAAS;CACT,CAAC;AAEF,KAAK,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,EAAE;IACtB,aAAa,CAAC,IAAI,CAAC,CAAC;AACrB,CAAC,CAAC,CAAC"} -------------------------------------------------------------------------------- /packages/core/lib/nodes/html/table.d.ts: -------------------------------------------------------------------------------- 1 | import { Child } from "./register"; 2 | declare module "../../node" { 3 | interface IsotopeNode { 4 | caption: Child; 5 | col: Child; 6 | colgroup: Child; 7 | table: Child; 8 | tbody: Child; 9 | td: Child; 10 | tfoot: Child; 11 | th: Child; 12 | thead: Child; 13 | tr: Child; 14 | } 15 | } 16 | -------------------------------------------------------------------------------- /packages/core/lib/nodes/html/table.js: -------------------------------------------------------------------------------- 1 | import { registerChild } from "./register"; 2 | const nodes = [ 3 | "caption", 4 | "col", 5 | "colgroup", 6 | "table", 7 | "tbody", 8 | "td", 9 | "tfoot", 10 | "th", 11 | "thead", 12 | "tr" 13 | ]; 14 | nodes.forEach((name) => { 15 | registerChild(name); 16 | }); 17 | //# sourceMappingURL=table.js.map -------------------------------------------------------------------------------- /packages/core/lib/nodes/html/table.js.map: -------------------------------------------------------------------------------- 1 | {"version":3,"file":"table.js","sourceRoot":"","sources":["../../../src/nodes/html/table.ts"],"names":[],"mappings":"AAAA,OAAO,EAAS,aAAa,EAAE,MAAM,YAAY,CAAC;AAiBlD,MAAM,KAAK,GAAG;IACb,SAAS;IACT,KAAK;IACL,UAAU;IACV,OAAO;IACP,OAAO;IACP,IAAI;IACJ,OAAO;IACP,IAAI;IACJ,OAAO;IACP,IAAI;CACJ,CAAC;AAEF,KAAK,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,EAAE;IACtB,aAAa,CAAC,IAAI,CAAC,CAAC;AACrB,CAAC,CAAC,CAAC"} -------------------------------------------------------------------------------- /packages/core/lib/nodes/html/text.js.map: -------------------------------------------------------------------------------- 1 | {"version":3,"file":"text.js","sourceRoot":"","sources":["../../../src/nodes/html/text.ts"],"names":[],"mappings":"AAAA,OAAO,EAAS,aAAa,EAAE,MAAM,YAAY,CAAC;AAwClD,MAAM,KAAK,GAAG;IACb,KAAK;IACL,KAAK;IACL,GAAG;IACH,MAAM;IACN,GAAG;IACH,KAAK;IACL,KAAK;IACL,IAAI;IACJ,MAAM;IACN,MAAM;IACN,MAAM;IACN,KAAK;IACL,IAAI;IACJ,GAAG;IACH,KAAK;IACL,MAAM;IACN,GAAG;IACH,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,KAAK;IACL,MAAM;IACN,GAAG;IACH,MAAM;IACN,OAAO;IACP,MAAM;IACN,QAAQ;IACR,KAAK;IACL,KAAK;IACL,MAAM;IACN,GAAG;IACH,KAAK;IACL,KAAK;CACL,CAAC;AAEF,KAAK,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,EAAE;IACtB,aAAa,CAAC,IAAI,CAAC,CAAC;AACrB,CAAC,CAAC,CAAC"} -------------------------------------------------------------------------------- /packages/core/lib/nodes/index.d.ts: -------------------------------------------------------------------------------- 1 | import "./conditional"; 2 | import "./map"; 3 | import "./text"; 4 | import "./html"; 5 | -------------------------------------------------------------------------------- /packages/core/lib/nodes/index.js: -------------------------------------------------------------------------------- 1 | import "./conditional"; 2 | import "./map"; 3 | import "./text"; 4 | import "./html"; 5 | //# sourceMappingURL=index.js.map -------------------------------------------------------------------------------- /packages/core/lib/nodes/index.js.map: -------------------------------------------------------------------------------- 1 | {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/nodes/index.ts"],"names":[],"mappings":"AAAA,OAAO,eAAe,CAAC;AACvB,OAAO,OAAO,CAAC;AACf,OAAO,QAAQ,CAAC;AAChB,OAAO,QAAQ,CAAC"} -------------------------------------------------------------------------------- /packages/core/lib/nodes/text.d.ts: -------------------------------------------------------------------------------- 1 | import { Indexable } from "../declarations"; 2 | import { IsotopeNode } from "../node"; 3 | declare type TextData = (node: IsotopeNode) => string; 4 | declare module "../node" { 5 | interface IsotopeNode { 6 | textData?: TextData | null; 7 | /** 8 | * Sets the Node's element text. 9 | * 10 | * @param text - Text to be set. 11 | * @returns - The Node. 12 | */ 13 | text(text: TextData | string): this; 14 | } 15 | } 16 | export {}; 17 | -------------------------------------------------------------------------------- /packages/core/lib/utils.d.ts: -------------------------------------------------------------------------------- 1 | interface Change { 2 | id: SimpleItem; 3 | item?: Item; 4 | position?: number; 5 | type: "add" | "remove" | "move"; 6 | } 7 | declare type SimpleItem = string | number; 8 | declare type Item = string | number | { 9 | id: string | number; 10 | }; 11 | /** 12 | * Detects changes made between 2 Item arrays. 13 | * 14 | * @param sourceInput - Original, source Item array. 15 | * @param targetInput - Target Item array. 16 | * @returns - Changes that differ the second array from the first one. 17 | */ 18 | declare const detectChanges: (sourceInput: Item[], targetInput: Item[]) => Change[]; 19 | export { detectChanges }; 20 | -------------------------------------------------------------------------------- /packages/core/lib/view.d.ts: -------------------------------------------------------------------------------- 1 | import { IsotopeNode } from "./node"; 2 | interface IsotopeViewConfig { 3 | attach?: boolean; 4 | clean?: boolean; 5 | } 6 | /** 7 | * Creates a DOM View. 8 | * 9 | * @param element - Element to append to. 10 | * @param config - DOM View config. 11 | * @returns - The created top-level Node. 12 | */ 13 | declare const createDOMView: (element: Element, config?: IsotopeViewConfig | undefined) => IsotopeNode; 14 | export { createDOMView }; 15 | -------------------------------------------------------------------------------- /packages/core/lib/view.js: -------------------------------------------------------------------------------- 1 | import { IsotopeNode } from "./node"; 2 | /** 3 | * Creates a DOM View. 4 | * 5 | * @param element - Element to append to. 6 | * @param config - DOM View config. 7 | * @returns - The created top-level Node. 8 | */ 9 | const createDOMView = (element, config) => { 10 | if (IsotopeNode.prototype.customDOM) { 11 | IsotopeNode.prototype.customDOM = null; 12 | } 13 | if (!config || (config && config.clean && !config.attach)) { 14 | element.textContent = ""; 15 | } 16 | return new IsotopeNode(element, config); 17 | }; 18 | export { createDOMView }; 19 | //# sourceMappingURL=view.js.map -------------------------------------------------------------------------------- /packages/core/lib/view.js.map: -------------------------------------------------------------------------------- 1 | {"version":3,"file":"view.js","sourceRoot":"","sources":["../src/view.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,QAAQ,CAAC;AAOrC;;;;;;GAMG;AACH,MAAM,aAAa,GAAG,CAAC,OAAgB,EAAE,MAA0B,EAAe,EAAE;IACnF,IAAI,WAAW,CAAC,SAAS,CAAC,SAAS,EAAE;QACpC,WAAW,CAAC,SAAS,CAAC,SAAS,GAAG,IAAI,CAAC;KACvC;IAED,IAAI,CAAC,MAAM,IAAI,CAAC,MAAM,IAAI,MAAM,CAAC,KAAK,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE;QAC1D,OAAO,CAAC,WAAW,GAAG,EAAE,CAAC;KACzB;IAED,OAAO,IAAI,WAAW,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;AACzC,CAAC,CAAC;AAEF,OAAO,EAAE,aAAa,EAAE,CAAC"} -------------------------------------------------------------------------------- /packages/core/logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Isotopejs/isotope/365d12862dbaf04b2369d505956968aba3a08b37/packages/core/logo.png -------------------------------------------------------------------------------- /packages/core/src/configurators/index.ts: -------------------------------------------------------------------------------- 1 | import "./attribs"; 2 | import "./classes"; 3 | import "./styles"; 4 | -------------------------------------------------------------------------------- /packages/core/src/index.ts: -------------------------------------------------------------------------------- 1 | import { IsotopeNode } from "./node"; 2 | import { createDOMView } from "./view"; 3 | import "./configurators"; 4 | import "./nodes"; 5 | 6 | export { IsotopeNode, createDOMView }; 7 | -------------------------------------------------------------------------------- /packages/core/src/nodes/html/embed.ts: -------------------------------------------------------------------------------- 1 | import { Child, registerChild } from "./register"; 2 | 3 | declare module "../../node" { 4 | interface IsotopeNode { 5 | embed: Child; 6 | iframe: Child; 7 | object: Child; 8 | param: Child; 9 | picture: Child; 10 | source: Child; 11 | } 12 | } 13 | 14 | const nodes = ["embed", "iframe", "object", "param", "picture", "source"]; 15 | 16 | nodes.forEach((name) => { 17 | registerChild(name); 18 | }); 19 | -------------------------------------------------------------------------------- /packages/core/src/nodes/html/index.ts: -------------------------------------------------------------------------------- 1 | import "./content"; 2 | import "./embed"; 3 | import "./form"; 4 | import "./interactive"; 5 | import "./media"; 6 | import "./section"; 7 | import "./table"; 8 | import "./text"; 9 | -------------------------------------------------------------------------------- /packages/core/src/nodes/html/interactive.ts: -------------------------------------------------------------------------------- 1 | import { Child, registerChild } from "./register"; 2 | 3 | declare module "../../node" { 4 | interface IsotopeNode { 5 | details: Child; 6 | dialog: Child; 7 | menu: Child; 8 | summary: Child; 9 | canvas: Child; 10 | script: Child; 11 | noscript: Child; 12 | slot: Child; 13 | template: Child; 14 | } 15 | } 16 | 17 | const nodes = [ 18 | "details", 19 | "dialog", 20 | "menu", 21 | "summary", 22 | "canvas", 23 | "script", 24 | "noscript", 25 | "slot", 26 | "template" 27 | ]; 28 | 29 | nodes.forEach((name) => { 30 | registerChild(name); 31 | }); 32 | -------------------------------------------------------------------------------- /packages/core/src/nodes/html/media.ts: -------------------------------------------------------------------------------- 1 | import { Child, registerChild } from "./register"; 2 | 3 | declare module "../../node" { 4 | interface IsotopeNode { 5 | area: Child; 6 | audio: Child; 7 | img: Child; 8 | track: Child; 9 | video: Child; 10 | } 11 | } 12 | 13 | const nodes = ["area", "audio", "img", "track", "video"]; 14 | 15 | nodes.forEach((name) => { 16 | registerChild(name); 17 | }); 18 | -------------------------------------------------------------------------------- /packages/core/src/nodes/html/table.ts: -------------------------------------------------------------------------------- 1 | import { Child, registerChild } from "./register"; 2 | 3 | declare module "../../node" { 4 | interface IsotopeNode { 5 | caption: Child; 6 | col: Child; 7 | colgroup: Child; 8 | table: Child; 9 | tbody: Child; 10 | td: Child; 11 | tfoot: Child; 12 | th: Child; 13 | thead: Child; 14 | tr: Child; 15 | } 16 | } 17 | 18 | const nodes = [ 19 | "caption", 20 | "col", 21 | "colgroup", 22 | "table", 23 | "tbody", 24 | "td", 25 | "tfoot", 26 | "th", 27 | "thead", 28 | "tr" 29 | ]; 30 | 31 | nodes.forEach((name) => { 32 | registerChild(name); 33 | }); 34 | -------------------------------------------------------------------------------- /packages/core/src/nodes/index.ts: -------------------------------------------------------------------------------- 1 | import "./conditional"; 2 | import "./map"; 3 | import "./text"; 4 | import "./html"; 5 | -------------------------------------------------------------------------------- /packages/core/tests/tsconfig.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": "../node_modules/eslint-config-xtrict/tsconfig.json", 3 | "include": ["./*.ts"], 4 | "compilerOptions": { 5 | "lib": ["esnext", "dom"], 6 | "target": "ES6", 7 | "declaration": false 8 | } 9 | } 10 | -------------------------------------------------------------------------------- /packages/core/tests/utils.ts: -------------------------------------------------------------------------------- 1 | import { IsotopeNode, IsotopeNodeConfig } from "../src/node"; 2 | import { Indexable } from "../src/declarations"; 3 | 4 | /** @private */ 5 | const createIsotopeNode = ( 6 | config?: IsotopeNodeConfig 7 | ): IsotopeNode => { 8 | return new IsotopeNode("div", config); 9 | }; 10 | 11 | export { createIsotopeNode }; 12 | -------------------------------------------------------------------------------- /packages/core/tsconfig.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": "./node_modules/eslint-config-xtrict/tsconfig.json", 3 | "exclude": ["node_modules"], 4 | "include": ["src/**/*"], 5 | "compilerOptions": { 6 | "lib": ["esnext", "dom"], 7 | "target": "ES6", 8 | "outDir": "lib", 9 | "declaration": true 10 | } 11 | } 12 | -------------------------------------------------------------------------------- /packages/docking/.eslintignore: -------------------------------------------------------------------------------- 1 | node_modules 2 | **/lib/**/* 3 | *.config.* 4 | *.js 5 | *.d.ts -------------------------------------------------------------------------------- /packages/docking/.eslintrc.js: -------------------------------------------------------------------------------- 1 | require("eslint-config-xtrict/patch-eslint6"); 2 | 3 | module.exports = { 4 | parserOptions: { 5 | tsconfigRootDir: __dirname 6 | }, 7 | env: { browser: true, es6: true }, 8 | root: true, 9 | extends: ["xtrict"], 10 | rules: { 11 | "max-params": [2, 4], 12 | "newline-per-chained-call": ["error", { ignoreChainWithDepth: 3 }] 13 | } 14 | }; 15 | -------------------------------------------------------------------------------- /packages/docking/.prettierrc: -------------------------------------------------------------------------------- 1 | { 2 | "printWidth": 90, 3 | "useTabs": true, 4 | "arrowParens": "always", 5 | "quoteProps": "consistent", 6 | "endOfLine": "lf", 7 | "trailingComma": "none" 8 | } 9 | -------------------------------------------------------------------------------- /packages/docking/CHANGELOG.md: -------------------------------------------------------------------------------- 1 | # Change Log - @isotope/docking 2 | 3 | This log was last generated on Tue, 09 Jun 2020 09:26:04 GMT and should not be manually modified. 4 | 5 | ## 0.2.1 6 | Tue, 09 Jun 2020 09:26:04 GMT 7 | 8 | ### Patches 9 | 10 | - Add @babel/core dependency 11 | 12 | ## 0.2.0 13 | Mon, 11 May 2020 13:01:10 GMT 14 | 15 | ### Minor changes 16 | 17 | - Add documentation, improve README file and fix asset parsing issues 18 | 19 | ### Patches 20 | 21 | - Version bump 22 | 23 | -------------------------------------------------------------------------------- /packages/docking/lib/config.d.ts: -------------------------------------------------------------------------------- 1 | interface Config { 2 | [property: string]: any; 3 | } 4 | /** 5 | * Loads the config file. 6 | * 7 | * @returns - Config object. 8 | */ 9 | declare const loadConfig: () => Promise; 10 | export { Config, loadConfig }; 11 | -------------------------------------------------------------------------------- /packages/docking/lib/declarations.d.ts: -------------------------------------------------------------------------------- 1 | import { IsotopeNode } from "@isotope/core"; 2 | declare type ComponentFunction = (page: string, content?: string, parse?: (content: string) => (node: IsotopeNode) => void) => (parent: IsotopeNode) => IsotopeNode; 3 | export { ComponentFunction }; 4 | -------------------------------------------------------------------------------- /packages/docking/lib/declarations.js: -------------------------------------------------------------------------------- 1 | "use strict"; 2 | Object.defineProperty(exports, "__esModule", { value: true }); 3 | //# sourceMappingURL=declarations.js.map -------------------------------------------------------------------------------- /packages/docking/lib/declarations.js.map: -------------------------------------------------------------------------------- 1 | {"version":3,"file":"declarations.js","sourceRoot":"","sources":["../src/declarations.ts"],"names":[],"mappings":""} -------------------------------------------------------------------------------- /packages/docking/lib/index.d.ts: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env node 2 | export {}; 3 | -------------------------------------------------------------------------------- /packages/docking/lib/library.d.ts: -------------------------------------------------------------------------------- 1 | import { Storage } from "./storage"; 2 | /** 3 | * Loads required libraries. 4 | * 5 | * @param storage - Docking storage. 6 | * @returns - HTML string with required