mirror of
https://github.com/zonemaster/zonemaster-gui.git
synced 2026-01-19 20:44:13 +01:00
54 lines
1.5 KiB
Markdown
54 lines
1.5 KiB
Markdown
# Zonemaster UI
|
||
|
||
Zonemaster UI (Zonemaster-GUI) is a static website built with [Astro], using
|
||
[Svelte] for interactive components and [Paraglide] for internationalization
|
||
(i18n) or translation.
|
||
|
||
## Standalone Components
|
||
|
||
Zonemaster UI also provides a set of standalone web components that can be
|
||
reused in other projects. Currently, there are two available:
|
||
|
||
- `<zm-domain-test>` – for initiating domain tests
|
||
- `<zm-program-versions>` – displays the current versions of Zonemaster
|
||
components
|
||
|
||
These components are framework-agnostic and can be embedded in other websites or
|
||
apps as needed.
|
||
|
||
```html
|
||
<zm-domain-test></zm-domain-test>
|
||
<zm-program-versions></zm-program-versions>
|
||
|
||
<script type="module">
|
||
import '@zonemaster/ui';
|
||
</script>
|
||
```
|
||
|
||
## Headless Mode
|
||
|
||
Zonemaster UI can also be used in **headless mode**, where it acts as a
|
||
JavaScript API layer between the Zonemaster backend and your own frontend.
|
||
|
||
This is useful if you want to:
|
||
|
||
- Build your own custom UI
|
||
- Integrate Zonemaster functionality into another application or CLI tool
|
||
|
||
In headless mode, the UI logic is decoupled from the visual components, allowing
|
||
you to access core functionality programmatically through JavaScript.
|
||
|
||
```ts
|
||
import { TestAgent } from '@zonemaster/ui';
|
||
|
||
TestAgent.subscribe((state, context) => {
|
||
console.log(state, context);
|
||
});
|
||
|
||
TestAgent.transition('START', { domain: 'example.com' });
|
||
```
|
||
|
||
|
||
[Astro]: https://astro.build/
|
||
[Svelte]: https://svelte.dev/
|
||
[Paraglide]: https://paraglide.io/
|