# `Noizu.Tessera.Package`
[🔗](https://github.com/the-robot-lives/tessera/blob/v0.2.0/lib/noizu/tessera/package.ex#L1)

`use Noizu.Tessera.Package, components: [MyApp.PersonaCard, ...]`

Marks a library as a tessera component package:

  * `components/0` — the component module list, verbatim;
  * `manifest/0` — every component's `__tessera_manifest__/0` entry, in
    list order;
  * `cem/0` — the package's Custom Elements Manifest
    (`Noizu.Tessera.Codegen.cem/1` over the components' specs);
  * `__tessera_package__/0` — discovery marker used by the mix tasks.

Gallery support is included by default: every package exposes `cem/0`,
and `mix tessera.gen.gallery` scaffolds the built-in interactive gallery
(live demos + typed attr/prop editors + slot editing + event log) from it
— no opt-in flag. `mix tessera.cem` writes the package's
`custom-elements.json` standalone.

`mix tessera.manifest` aggregates across all loaded apps that use this
macro, and `mix tessera.install` adds `file:` npm entries for component
packages that ship a `priv/js` runtime.

---

*Consult [api-reference.md](api-reference.md) for complete listing*
