- TypeScript 59%
- JavaScript 30.1%
- Nix 7.9%
- CSS 3%
| Filename | Latest commit message | Latest commit date |
|---|---|---|
|
|
||
| .forgejo/workflows | ||
| docs | ||
| nix | ||
| npins | ||
| src | ||
| .envrc | ||
| .gitignore | ||
| default.nix | ||
| dom-test.nix | ||
| flake.nix | ||
| LICENSE | ||
| package-lock.json | ||
| package.json | ||
| package.nix | ||
| README.md | ||
| shell.nix | ||
| test.nix | ||
| treefmt.nix | ||
| tsconfig.json | ||
| vite.config.ts | ||
nix-module-form
A Vue + JSONForms widget bundle that renders a NixOS-module-derived JSON Schema in a deploy-vs-baseline diff workflow, with per-field change highlighting.
package.nix builds forms-island.{js,css} from src/. An embedder passes its
own entry adapter (a .ts mounting the island against its data source); with
entry = null (the default) the package builds the standalone library bundle.
Extracted from the
fediversity monorepo,
where it was nix-module-form/, so the widget can version and ship
independently. The monorepo consumes it back via an npins pin and hands in a
panel-specific adapter. The shared ndg documentation machinery lives in the
nix-docs-lib pin.
Rendered docs (this repo's flake attributes) are published on push to main at
https://nix-module-form.pages.git.fediversity.eu/.
Development
nix flake show
nix build .#packages.x86_64-linux.default # the library bundle (entry = null)
nix build .#checks.x86_64-linux.treefmt
nix build .#checks.x86_64-linux.panel-forms-island # unit tests
nix build .#checks.x86_64-linux.panel-forms-island-dom # headless-DOM component test
nix build .#checks.x86_64-linux.panel-forms-island-docs # flake-attributes doc site
# (published at nix-module-form.pages.git.fediversity.eu)