Vue + JSONForms widget bundle rendering a NixOS-module-derived JSON Schema in a deploy-vs-baseline diff workflow
  • TypeScript 59%
  • JavaScript 30.1%
  • Nix 7.9%
  • CSS 3%
Find a file
Repository files (latest commit first)
Filename Latest commit message Latest commit date
2026-07-17 15:48:54 +02:00
.forgejo/workflows ci: publish docs to nix-module-form.pages.git.fediversity.eu 2026-07-17 15:40:57 +02:00
docs Initial import: nix-module-form widget (Vue + JSONForms diff bundle) 2026-07-12 15:22:47 +02:00
nix deps: consume nix-docs-lib with only pkgs, drop redundant ndg pin 2026-07-12 18:59:05 +02:00
npins deps: consume nix-docs-lib with only pkgs, drop redundant ndg pin 2026-07-12 18:59:05 +02:00
src Initial import: nix-module-form widget (Vue + JSONForms diff bundle) 2026-07-12 15:22:47 +02:00
.envrc Initial import: nix-module-form widget (Vue + JSONForms diff bundle) 2026-07-12 15:22:47 +02:00
.gitignore Initial import: nix-module-form widget (Vue + JSONForms diff bundle) 2026-07-12 15:22:47 +02:00
default.nix Wrap entrypoint param re-exports into args so flake show stops printing unknown 2026-07-13 11:04:10 +02:00
dom-test.nix Initial import: nix-module-form widget (Vue + JSONForms diff bundle) 2026-07-12 15:22:47 +02:00
flake.nix Wrap entrypoint param re-exports into args so flake show stops printing unknown 2026-07-13 11:04:10 +02:00
LICENSE Add LICENSE (EUPL-1.2) to match the fediversity monorepo 2026-07-13 10:07:37 +02:00
package-lock.json Initial import: nix-module-form widget (Vue + JSONForms diff bundle) 2026-07-12 15:22:47 +02:00
package.json Add LICENSE (EUPL-1.2) to match the fediversity monorepo 2026-07-13 10:07:37 +02:00
package.nix Initial import: nix-module-form widget (Vue + JSONForms diff bundle) 2026-07-12 15:22:47 +02:00
README.md ci: publish docs to nix-module-form.pages.git.fediversity.eu 2026-07-17 15:40:57 +02:00
shell.nix Initial import: nix-module-form widget (Vue + JSONForms diff bundle) 2026-07-12 15:22:47 +02:00
test.nix Initial import: nix-module-form widget (Vue + JSONForms diff bundle) 2026-07-12 15:22:47 +02:00
treefmt.nix Initial import: nix-module-form widget (Vue + JSONForms diff bundle) 2026-07-12 15:22:47 +02:00
tsconfig.json Initial import: nix-module-form widget (Vue + JSONForms diff bundle) 2026-07-12 15:22:47 +02:00
vite.config.ts Initial import: nix-module-form widget (Vue + JSONForms diff bundle) 2026-07-12 15:22:47 +02:00

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)