Metadata-Version: 2.4
Name: govoplan-forms
Version: 0.1.23
Summary: Immutable reusable form definitions for GovOPlaN.
Author: GovOPlaN
Requires-Python: >=3.12
Description-Content-Type: text/markdown
Requires-Dist: govoplan-core>=0.1.35
Requires-Dist: govoplan-access>=0.1.18

# GovOPlaN Forms

<!-- govoplan-repository-type:start -->
**Repository type:** module (domain).
<!-- govoplan-repository-type:end -->

`govoplan-forms` owns reusable, immutable form definitions, validation rules,
and form package fragments. Submission runtime behavior remains in
`govoplan-forms-runtime`.

The module persists exact tenant-bound revisions, exposes bounded catalogue,
history, and write APIs, and provides `forms.definitions` for consumers. A
published revision can be used by Forms Runtime without importing Forms tables;
existing submissions keep their exact revision when a new schema is published.

The `/forms` designer uses shared application controls to create, revise,
publish, retire, search, and inspect definitions. It edits field order, types,
choices, validation constraints, draft behavior, attachment and signature
requirements, policy references, and permitted handoff kinds. Saving always
creates an exact immutable revision; it never mutates a published schema in
place.

The designer also supports multi-page/section layout, bounded conditional
visibility expressions, localized labels/help/options/page titles, fallback
locale, and accessibility metadata. Server validation rejects unknown fields,
incompatible operators, placement errors, and condition cycles. Verified
configuration-package fragments can be assessed and imported as a new local
draft with source provenance rather than silently becoming active.

Definition writes use optimistic concurrency. Replaying the same object and
revision is safe only when the payload is identical. Published definitions may
be retired but not silently returned to draft.

Focused verification:

```bash
PYTHONPATH=src:/mnt/DATA/git/govoplan-core/src \
  /mnt/DATA/git/govoplan/.venv/bin/python -m unittest discover -s tests
```

See [docs/FORMS_BOUNDARY.md](docs/FORMS_BOUNDARY.md) for the boundary decision.

## Git-source WebUI package

The repository root exposes `@govoplan/forms-webui` for Git-tagged release
dependencies. It mirrors the owning `webui/package.json` version, public
TypeScript/CSS exports and peer requirements, with entry paths under
`webui/src`. Consumers provide the shared Core/React peers; the facade runs no
development or install scripts. The source archive contains `webui/src`, this
README and any repository license file. Run module development checks from `webui/`; Python
installation remains governed by `pyproject.toml`.

Das Repository stellt `@govoplan/forms-webui` am Wurzelpfad für versionierte
Git-Abhängigkeiten bereit. Version, öffentliche TypeScript-/CSS-Exporte und
Peer-Anforderungen entsprechen `webui/package.json`; die Einstiegspfade liegen
unter `webui/src`. Gemeinsame Core-/React-Peers stellt die einbindende Anwendung
bereit. Die Fassade führt keine Entwicklungs- oder Installationsskripte aus.
Entwicklungsprüfungen bleiben in `webui/`, die Python-Installation weiterhin in
`pyproject.toml` definiert.
