open-index/open-npm huggingface dataset:
npm package: @noxigui/noxi.js
Description: `@noxigui/noxi.js` bundles the NoxiGUI runtime with the PIXI renderer so applications can parse markup, bind view models, and render interfaces with a single dependency. The package is published as native ESM and exposes both `module` and `default` entry 
Author: Andrei Sharshov
Latest version: 0.2.1

# @noxigui/noxi.js

`@noxigui/noxi.js` bundles the NoxiGUI runtime with the PIXI renderer so applications can parse markup, bind view models, and render interfaces with a single dependency. The package is published as native ESM and exposes both `module` and `default` entry points so bundlers can resolve it via `import` statements.

## Installation

```bash
pnpm add @noxigui/noxi.js
# or
npm install @noxigui/noxi.js
yarn add @noxigui/noxi.js
```

## Usage

```ts
import Noxi, { createGui, createPixiRenderer, ObservableProperty } from '@noxigui/noxi.js'

const xml = `<TextBlock Text="{Binding Greeting}"/>`
const viewModel = { Greeting: new ObservableProperty('Hello!') }

// Default export exposes the PIXI renderer through Noxi.gui.create.
const gui = Noxi.gui.create(xml)

// You can pass an explicit renderer instance when needed.
const pixiRenderer = createPixiRenderer({ background: 0x000000 })
const customGui = createGui(xml, pixiRenderer)

customGui.bind(viewModel)
```

The package re-exports the runtime API (`ObservableProperty`, `ObservableCollection`, layout primitives, and more) so existing guides in [`docs/`](../../docs) apply without additional imports.

## Local development

Rebuild the distribution before publishing changes:

```bash
pnpm install
pnpm -F @noxigui/noxi.js build
```

After compiling `dist/`, use the repository-level script to release updated packages in dependency order:

```bash
pnpm run publish-packages
```

The publish script expects package versions to be bumped and the artifacts in `dist/` to be current. It keeps running even when
one publish fails and prints a table summarizing which package versions published successfully along with any error messages.
npm package: @noxigui/parser
Description: Parses NoxiGUI XML markup into runtime UI elements and a renderer display tree.
Author: Andrei Sharshov
Latest version: 0.2.1

# @noxigui/parser

Parses NoxiGUI XML markup into runtime UI elements and a renderer display tree.

## Installation

```bash
pnpm add @noxigui/parser pixi.js
```

## Usage

```ts
import { Parser } from '@noxigui/parser';
import { TemplateStore } from '@noxigui/shared';

// supply a renderer, a template store and optionally an XML parser implementation
const parser = new Parser(renderer, new TemplateStore(), new DOMParser());
const { root, container } = parser.parse('<Grid></Grid>');
```

## Extending

Element handling is delegated to pluggable element parser classes.  To add
support for a custom element, implement the `ElementParser` interface and pass
it to the `Parser` constructor:

```ts
import type { ElementParser } from '@noxigui/parser';
import { Parser } from '@noxigui/parser';
import { TemplateStore } from '@noxigui/shared';

class MyParser implements ElementParser {
  test(node: Element) { return node.tagName === 'MyElement'; }
  parse(node: Element, p: Parser) { /* ... */ return null; }
}

const parser = new Parser(renderer, new TemplateStore(), new DOMParser(), [new MyParser()]);
```

### Node.js

In Node environments, provide an XML parser such as `@xmldom/xmldom`:

```ts
import { DOMParser } from '@xmldom/xmldom';
import { Parser } from '@noxigui/parser';
import { TemplateStore } from '@noxigui/shared';

const parser = new Parser(renderer, new TemplateStore(), new DOMParser());
```

Custom parsers can also participate in assembling the PIXI display tree by
implementing the optional `collect` hook.