@pwfabric/runtime 0.0.0-stage → 1.0.0-rc.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE +90 -0
- package/README.md +13 -2
- package/dist/__tests__/dom-test-setup.d.ts +21 -0
- package/dist/__tests__/dom-test-setup.d.ts.map +1 -0
- package/dist/__tests__/dom-test-setup.js +36 -0
- package/dist/__tests__/dom-test-setup.js.map +1 -0
- package/dist/a11y/announcer.d.ts +66 -0
- package/dist/a11y/announcer.d.ts.map +1 -0
- package/dist/a11y/announcer.js +140 -0
- package/dist/a11y/announcer.js.map +1 -0
- package/dist/a11y/contrast.d.ts +55 -0
- package/dist/a11y/contrast.d.ts.map +1 -0
- package/dist/a11y/contrast.js +93 -0
- package/dist/a11y/contrast.js.map +1 -0
- package/dist/a11y/focus.d.ts +124 -0
- package/dist/a11y/focus.d.ts.map +1 -0
- package/dist/a11y/focus.js +282 -0
- package/dist/a11y/focus.js.map +1 -0
- package/dist/a11y/index.d.ts +22 -0
- package/dist/a11y/index.d.ts.map +1 -0
- package/dist/a11y/index.js +18 -0
- package/dist/a11y/index.js.map +1 -0
- package/dist/a11y/keyboard.d.ts +145 -0
- package/dist/a11y/keyboard.d.ts.map +1 -0
- package/dist/a11y/keyboard.js +317 -0
- package/dist/a11y/keyboard.js.map +1 -0
- package/dist/adapters/default-image.d.ts +26 -0
- package/dist/adapters/default-image.d.ts.map +1 -0
- package/dist/adapters/default-image.js +37 -0
- package/dist/adapters/default-image.js.map +1 -0
- package/dist/adapters/index.d.ts +28 -0
- package/dist/adapters/index.d.ts.map +1 -0
- package/dist/adapters/index.js +28 -0
- package/dist/adapters/index.js.map +1 -0
- package/dist/adapters/next-image.d.ts +39 -0
- package/dist/adapters/next-image.d.ts.map +1 -0
- package/dist/adapters/next-image.js +124 -0
- package/dist/adapters/next-image.js.map +1 -0
- package/dist/adapters/types.d.ts +62 -0
- package/dist/adapters/types.d.ts.map +1 -0
- package/dist/adapters/types.js +11 -0
- package/dist/adapters/types.js.map +1 -0
- package/dist/analytics/index.d.ts +15 -0
- package/dist/analytics/index.d.ts.map +1 -0
- package/dist/analytics/index.js +15 -0
- package/dist/analytics/index.js.map +1 -0
- package/dist/analytics/tracker.d.ts +66 -0
- package/dist/analytics/tracker.d.ts.map +1 -0
- package/dist/analytics/tracker.js +251 -0
- package/dist/analytics/tracker.js.map +1 -0
- package/dist/analytics/types.d.ts +131 -0
- package/dist/analytics/types.d.ts.map +1 -0
- package/dist/analytics/types.js +11 -0
- package/dist/analytics/types.js.map +1 -0
- package/dist/auth/index.d.ts +16 -0
- package/dist/auth/index.d.ts.map +1 -0
- package/dist/auth/index.js +14 -0
- package/dist/auth/index.js.map +1 -0
- package/dist/auth/provider.d.ts +133 -0
- package/dist/auth/provider.d.ts.map +1 -0
- package/dist/auth/provider.js +473 -0
- package/dist/auth/provider.js.map +1 -0
- package/dist/auth/types.d.ts +118 -0
- package/dist/auth/types.d.ts.map +1 -0
- package/dist/auth/types.js +9 -0
- package/dist/auth/types.js.map +1 -0
- package/dist/binding/collection.d.ts +191 -0
- package/dist/binding/collection.d.ts.map +1 -0
- package/dist/binding/collection.js +358 -0
- package/dist/binding/collection.js.map +1 -0
- package/dist/binding/datasource.d.ts +320 -0
- package/dist/binding/datasource.d.ts.map +1 -0
- package/dist/binding/datasource.js +556 -0
- package/dist/binding/datasource.js.map +1 -0
- package/dist/binding/engine.d.ts +66 -0
- package/dist/binding/engine.d.ts.map +1 -0
- package/dist/binding/engine.js +268 -0
- package/dist/binding/engine.js.map +1 -0
- package/dist/binding/expression.d.ts +151 -0
- package/dist/binding/expression.d.ts.map +1 -0
- package/dist/binding/expression.js +787 -0
- package/dist/binding/expression.js.map +1 -0
- package/dist/binding/index.d.ts +20 -0
- package/dist/binding/index.d.ts.map +1 -0
- package/dist/binding/index.js +14 -0
- package/dist/binding/index.js.map +1 -0
- package/dist/binding/two-way.d.ts +150 -0
- package/dist/binding/two-way.d.ts.map +1 -0
- package/dist/binding/two-way.js +462 -0
- package/dist/binding/two-way.js.map +1 -0
- package/dist/binding/types.d.ts +120 -0
- package/dist/binding/types.d.ts.map +1 -0
- package/dist/binding/types.js +9 -0
- package/dist/binding/types.js.map +1 -0
- package/dist/blocks/__test-fixtures__/block-fixtures.d.ts +40 -0
- package/dist/blocks/__test-fixtures__/block-fixtures.d.ts.map +1 -0
- package/dist/blocks/__test-fixtures__/block-fixtures.js +506 -0
- package/dist/blocks/__test-fixtures__/block-fixtures.js.map +1 -0
- package/dist/blocks/component-types.d.ts +82 -0
- package/dist/blocks/component-types.d.ts.map +1 -0
- package/dist/blocks/component-types.js +11 -0
- package/dist/blocks/component-types.js.map +1 -0
- package/dist/blocks/composition-rules.d.ts +169 -0
- package/dist/blocks/composition-rules.d.ts.map +1 -0
- package/dist/blocks/composition-rules.js +391 -0
- package/dist/blocks/composition-rules.js.map +1 -0
- package/dist/blocks/hooks.d.ts +32 -0
- package/dist/blocks/hooks.d.ts.map +1 -0
- package/dist/blocks/hooks.js +42 -0
- package/dist/blocks/hooks.js.map +1 -0
- package/dist/blocks/index.d.ts +16 -0
- package/dist/blocks/index.d.ts.map +1 -0
- package/dist/blocks/index.js +24 -0
- package/dist/blocks/index.js.map +1 -0
- package/dist/blocks/registry.d.ts +85 -0
- package/dist/blocks/registry.d.ts.map +1 -0
- package/dist/blocks/registry.js +136 -0
- package/dist/blocks/registry.js.map +1 -0
- package/dist/blocks/rule-engine.d.ts +132 -0
- package/dist/blocks/rule-engine.d.ts.map +1 -0
- package/dist/blocks/rule-engine.js +321 -0
- package/dist/blocks/rule-engine.js.map +1 -0
- package/dist/blocks/surface-event-context.d.ts +14 -0
- package/dist/blocks/surface-event-context.d.ts.map +1 -0
- package/dist/blocks/surface-event-context.js +14 -0
- package/dist/blocks/surface-event-context.js.map +1 -0
- package/dist/blocks/surface-id-context.d.ts +14 -0
- package/dist/blocks/surface-id-context.d.ts.map +1 -0
- package/dist/blocks/surface-id-context.js +15 -0
- package/dist/blocks/surface-id-context.js.map +1 -0
- package/dist/bus.d.ts +42 -0
- package/dist/bus.d.ts.map +1 -0
- package/dist/bus.js +158 -0
- package/dist/bus.js.map +1 -0
- package/dist/cache/index.d.ts +10 -0
- package/dist/cache/index.d.ts.map +1 -0
- package/dist/cache/index.js +10 -0
- package/dist/cache/index.js.map +1 -0
- package/dist/cache/memory.d.ts +33 -0
- package/dist/cache/memory.d.ts.map +1 -0
- package/dist/cache/memory.js +138 -0
- package/dist/cache/memory.js.map +1 -0
- package/dist/cache/types.d.ts +63 -0
- package/dist/cache/types.d.ts.map +1 -0
- package/dist/cache/types.js +9 -0
- package/dist/cache/types.js.map +1 -0
- package/dist/capability/index.d.ts +73 -0
- package/dist/capability/index.d.ts.map +1 -0
- package/dist/capability/index.js +87 -0
- package/dist/capability/index.js.map +1 -0
- package/dist/capability/kernel-capabilities.d.ts +32 -0
- package/dist/capability/kernel-capabilities.d.ts.map +1 -0
- package/dist/capability/kernel-capabilities.js +36 -0
- package/dist/capability/kernel-capabilities.js.map +1 -0
- package/dist/capability/platform-capabilities.d.ts +72 -0
- package/dist/capability/platform-capabilities.d.ts.map +1 -0
- package/dist/capability/platform-capabilities.js +267 -0
- package/dist/capability/platform-capabilities.js.map +1 -0
- package/dist/capability/type-mapping.d.ts +71 -0
- package/dist/capability/type-mapping.d.ts.map +1 -0
- package/dist/capability/type-mapping.js +107 -0
- package/dist/capability/type-mapping.js.map +1 -0
- package/dist/capability/validation.d.ts +47 -0
- package/dist/capability/validation.d.ts.map +1 -0
- package/dist/capability/validation.js +54 -0
- package/dist/capability/validation.js.map +1 -0
- package/dist/connectors/declared-connector.d.ts +49 -0
- package/dist/connectors/declared-connector.d.ts.map +1 -0
- package/dist/connectors/declared-connector.js +333 -0
- package/dist/connectors/declared-connector.js.map +1 -0
- package/dist/connectors/engine-registry.d.ts +51 -0
- package/dist/connectors/engine-registry.d.ts.map +1 -0
- package/dist/connectors/engine-registry.js +135 -0
- package/dist/connectors/engine-registry.js.map +1 -0
- package/dist/connectors/index.d.ts +15 -0
- package/dist/connectors/index.d.ts.map +1 -0
- package/dist/connectors/index.js +14 -0
- package/dist/connectors/index.js.map +1 -0
- package/dist/connectors/module-loader.d.ts +71 -0
- package/dist/connectors/module-loader.d.ts.map +1 -0
- package/dist/connectors/module-loader.js +143 -0
- package/dist/connectors/module-loader.js.map +1 -0
- package/dist/connectors/types.d.ts +175 -0
- package/dist/connectors/types.d.ts.map +1 -0
- package/dist/connectors/types.js +23 -0
- package/dist/connectors/types.js.map +1 -0
- package/dist/context.d.ts +28 -0
- package/dist/context.d.ts.map +1 -0
- package/dist/context.js +38 -0
- package/dist/context.js.map +1 -0
- package/dist/data/DataCapabilityProvider.d.ts +40 -0
- package/dist/data/DataCapabilityProvider.d.ts.map +1 -0
- package/dist/data/DataCapabilityProvider.js +58 -0
- package/dist/data/DataCapabilityProvider.js.map +1 -0
- package/dist/data/index.d.ts +18 -0
- package/dist/data/index.d.ts.map +1 -0
- package/dist/data/index.js +18 -0
- package/dist/data/index.js.map +1 -0
- package/dist/data/manager.d.ts +41 -0
- package/dist/data/manager.d.ts.map +1 -0
- package/dist/data/manager.js +442 -0
- package/dist/data/manager.js.map +1 -0
- package/dist/data/types.d.ts +219 -0
- package/dist/data/types.d.ts.map +1 -0
- package/dist/data/types.js +2 -0
- package/dist/data/types.js.map +1 -0
- package/dist/entity/aggregate.d.ts +9 -0
- package/dist/entity/aggregate.d.ts.map +1 -0
- package/dist/entity/aggregate.js +24 -0
- package/dist/entity/aggregate.js.map +1 -0
- package/dist/entity/apply-query.d.ts +59 -0
- package/dist/entity/apply-query.d.ts.map +1 -0
- package/dist/entity/apply-query.js +264 -0
- package/dist/entity/apply-query.js.map +1 -0
- package/dist/entity/behavior.d.ts +95 -0
- package/dist/entity/behavior.d.ts.map +1 -0
- package/dist/entity/behavior.js +78 -0
- package/dist/entity/behavior.js.map +1 -0
- package/dist/entity/connector.d.ts +142 -0
- package/dist/entity/connector.d.ts.map +1 -0
- package/dist/entity/connector.js +89 -0
- package/dist/entity/connector.js.map +1 -0
- package/dist/entity/connectors/index.d.ts +13 -0
- package/dist/entity/connectors/index.d.ts.map +1 -0
- package/dist/entity/connectors/index.js +11 -0
- package/dist/entity/connectors/index.js.map +1 -0
- package/dist/entity/connectors/static.d.ts +52 -0
- package/dist/entity/connectors/static.d.ts.map +1 -0
- package/dist/entity/connectors/static.js +245 -0
- package/dist/entity/connectors/static.js.map +1 -0
- package/dist/entity/entity-datasource.d.ts +51 -0
- package/dist/entity/entity-datasource.d.ts.map +1 -0
- package/dist/entity/entity-datasource.js +33 -0
- package/dist/entity/entity-datasource.js.map +1 -0
- package/dist/entity/facade.d.ts +71 -0
- package/dist/entity/facade.d.ts.map +1 -0
- package/dist/entity/facade.js +70 -0
- package/dist/entity/facade.js.map +1 -0
- package/dist/entity/http-connector.d.ts +124 -0
- package/dist/entity/http-connector.d.ts.map +1 -0
- package/dist/entity/http-connector.js +295 -0
- package/dist/entity/http-connector.js.map +1 -0
- package/dist/entity/index.d.ts +39 -0
- package/dist/entity/index.d.ts.map +1 -0
- package/dist/entity/index.js +31 -0
- package/dist/entity/index.js.map +1 -0
- package/dist/entity/postgres-connector.d.ts +65 -0
- package/dist/entity/postgres-connector.d.ts.map +1 -0
- package/dist/entity/postgres-connector.js +239 -0
- package/dist/entity/postgres-connector.js.map +1 -0
- package/dist/entity/registry.d.ts +60 -0
- package/dist/entity/registry.d.ts.map +1 -0
- package/dist/entity/registry.js +90 -0
- package/dist/entity/registry.js.map +1 -0
- package/dist/entity/store.d.ts +67 -0
- package/dist/entity/store.d.ts.map +1 -0
- package/dist/entity/store.js +349 -0
- package/dist/entity/store.js.map +1 -0
- package/dist/entity/types.d.ts +181 -0
- package/dist/entity/types.d.ts.map +1 -0
- package/dist/entity/types.js +10 -0
- package/dist/entity/types.js.map +1 -0
- package/dist/execution-context.d.ts +89 -0
- package/dist/execution-context.d.ts.map +1 -0
- package/dist/execution-context.js +146 -0
- package/dist/execution-context.js.map +1 -0
- package/dist/executor.d.ts +28 -0
- package/dist/executor.d.ts.map +1 -0
- package/dist/executor.js +33 -0
- package/dist/executor.js.map +1 -0
- package/dist/forms/form-entity-bridge.d.ts +95 -0
- package/dist/forms/form-entity-bridge.d.ts.map +1 -0
- package/dist/forms/form-entity-bridge.js +96 -0
- package/dist/forms/form-entity-bridge.js.map +1 -0
- package/dist/forms/form-write-target.d.ts +35 -0
- package/dist/forms/form-write-target.d.ts.map +1 -0
- package/dist/forms/form-write-target.js +81 -0
- package/dist/forms/form-write-target.js.map +1 -0
- package/dist/forms/index.d.ts +23 -0
- package/dist/forms/index.d.ts.map +1 -0
- package/dist/forms/index.js +25 -0
- package/dist/forms/index.js.map +1 -0
- package/dist/forms/named-control-values.d.ts +28 -0
- package/dist/forms/named-control-values.d.ts.map +1 -0
- package/dist/forms/named-control-values.js +42 -0
- package/dist/forms/named-control-values.js.map +1 -0
- package/dist/forms/processor.d.ts +56 -0
- package/dist/forms/processor.d.ts.map +1 -0
- package/dist/forms/processor.js +154 -0
- package/dist/forms/processor.js.map +1 -0
- package/dist/forms/types.d.ts +175 -0
- package/dist/forms/types.d.ts.map +1 -0
- package/dist/forms/types.js +33 -0
- package/dist/forms/types.js.map +1 -0
- package/dist/forms/validator.d.ts +62 -0
- package/dist/forms/validator.d.ts.map +1 -0
- package/dist/forms/validator.js +218 -0
- package/dist/forms/validator.js.map +1 -0
- package/dist/graph/index.d.ts +11 -0
- package/dist/graph/index.d.ts.map +1 -0
- package/dist/graph/index.js +9 -0
- package/dist/graph/index.js.map +1 -0
- package/dist/graph/resolver.d.ts +67 -0
- package/dist/graph/resolver.d.ts.map +1 -0
- package/dist/graph/resolver.js +243 -0
- package/dist/graph/resolver.js.map +1 -0
- package/dist/graph/types.d.ts +126 -0
- package/dist/graph/types.d.ts.map +1 -0
- package/dist/graph/types.js +9 -0
- package/dist/graph/types.js.map +1 -0
- package/dist/hooks/useInstalledAtoms.d.ts +97 -0
- package/dist/hooks/useInstalledAtoms.d.ts.map +1 -0
- package/dist/hooks/useInstalledAtoms.js +92 -0
- package/dist/hooks/useInstalledAtoms.js.map +1 -0
- package/dist/i18n/index.d.ts +16 -0
- package/dist/i18n/index.d.ts.map +1 -0
- package/dist/i18n/index.js +14 -0
- package/dist/i18n/index.js.map +1 -0
- package/dist/i18n/translator.d.ts +77 -0
- package/dist/i18n/translator.d.ts.map +1 -0
- package/dist/i18n/translator.js +357 -0
- package/dist/i18n/translator.js.map +1 -0
- package/dist/i18n/types.d.ts +94 -0
- package/dist/i18n/types.d.ts.map +1 -0
- package/dist/i18n/types.js +9 -0
- package/dist/i18n/types.js.map +1 -0
- package/dist/index.d.ts +65 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +95 -0
- package/dist/index.js.map +1 -0
- package/dist/kernel.d.ts +48 -0
- package/dist/kernel.d.ts.map +1 -0
- package/dist/kernel.js +258 -0
- package/dist/kernel.js.map +1 -0
- package/dist/perf/budget.d.ts +93 -0
- package/dist/perf/budget.d.ts.map +1 -0
- package/dist/perf/budget.js +122 -0
- package/dist/perf/budget.js.map +1 -0
- package/dist/perf/index.d.ts +17 -0
- package/dist/perf/index.d.ts.map +1 -0
- package/dist/perf/index.js +13 -0
- package/dist/perf/index.js.map +1 -0
- package/dist/perf/render-timer.d.ts +91 -0
- package/dist/perf/render-timer.d.ts.map +1 -0
- package/dist/perf/render-timer.js +136 -0
- package/dist/perf/render-timer.js.map +1 -0
- package/dist/perf/reporter.d.ts +127 -0
- package/dist/perf/reporter.d.ts.map +1 -0
- package/dist/perf/reporter.js +241 -0
- package/dist/perf/reporter.js.map +1 -0
- package/dist/perf/web-vitals.d.ts +112 -0
- package/dist/perf/web-vitals.d.ts.map +1 -0
- package/dist/perf/web-vitals.js +268 -0
- package/dist/perf/web-vitals.js.map +1 -0
- package/dist/registry.d.ts +64 -0
- package/dist/registry.d.ts.map +1 -0
- package/dist/registry.js +126 -0
- package/dist/registry.js.map +1 -0
- package/dist/render/BehaviorSurfaceProvider.d.ts +66 -0
- package/dist/render/BehaviorSurfaceProvider.d.ts.map +1 -0
- package/dist/render/BehaviorSurfaceProvider.js +185 -0
- package/dist/render/BehaviorSurfaceProvider.js.map +1 -0
- package/dist/render/BlockErrorBoundary.d.ts +27 -0
- package/dist/render/BlockErrorBoundary.d.ts.map +1 -0
- package/dist/render/BlockErrorBoundary.js +41 -0
- package/dist/render/BlockErrorBoundary.js.map +1 -0
- package/dist/render/DataBoundSurfaceRenderer.d.ts +79 -0
- package/dist/render/DataBoundSurfaceRenderer.d.ts.map +1 -0
- package/dist/render/DataBoundSurfaceRenderer.js +998 -0
- package/dist/render/DataBoundSurfaceRenderer.js.map +1 -0
- package/dist/render/DynamicBlockWrapper.d.ts +24 -0
- package/dist/render/DynamicBlockWrapper.d.ts.map +1 -0
- package/dist/render/DynamicBlockWrapper.js +117 -0
- package/dist/render/DynamicBlockWrapper.js.map +1 -0
- package/dist/render/appearance-resolver.d.ts +51 -0
- package/dist/render/appearance-resolver.d.ts.map +1 -0
- package/dist/render/appearance-resolver.js +78 -0
- package/dist/render/appearance-resolver.js.map +1 -0
- package/dist/render/capability-gate.d.ts +70 -0
- package/dist/render/capability-gate.d.ts.map +1 -0
- package/dist/render/capability-gate.js +94 -0
- package/dist/render/capability-gate.js.map +1 -0
- package/dist/render/conditional-states-css.d.ts +42 -0
- package/dist/render/conditional-states-css.d.ts.map +1 -0
- package/dist/render/conditional-states-css.js +82 -0
- package/dist/render/conditional-states-css.js.map +1 -0
- package/dist/render/connections-context.d.ts +32 -0
- package/dist/render/connections-context.d.ts.map +1 -0
- package/dist/render/connections-context.js +34 -0
- package/dist/render/connections-context.js.map +1 -0
- package/dist/render/dark-theme-css.d.ts +37 -0
- package/dist/render/dark-theme-css.d.ts.map +1 -0
- package/dist/render/dark-theme-css.js +67 -0
- package/dist/render/dark-theme-css.js.map +1 -0
- package/dist/render/data-binding-types.d.ts +192 -0
- package/dist/render/data-binding-types.d.ts.map +1 -0
- package/dist/render/data-binding-types.js +11 -0
- package/dist/render/data-binding-types.js.map +1 -0
- package/dist/render/data-cache.d.ts +31 -0
- package/dist/render/data-cache.d.ts.map +1 -0
- package/dist/render/data-cache.js +37 -0
- package/dist/render/data-cache.js.map +1 -0
- package/dist/render/derive-dark-theme.d.ts +18 -0
- package/dist/render/derive-dark-theme.d.ts.map +1 -0
- package/dist/render/derive-dark-theme.js +18 -0
- package/dist/render/derive-dark-theme.js.map +1 -0
- package/dist/render/dynamic-artifact-context.d.ts +78 -0
- package/dist/render/dynamic-artifact-context.d.ts.map +1 -0
- package/dist/render/dynamic-artifact-context.js +89 -0
- package/dist/render/dynamic-artifact-context.js.map +1 -0
- package/dist/render/dynamic-block-loader.d.ts +81 -0
- package/dist/render/dynamic-block-loader.d.ts.map +1 -0
- package/dist/render/dynamic-block-loader.js +197 -0
- package/dist/render/dynamic-block-loader.js.map +1 -0
- package/dist/render/endpoint.d.ts +19 -0
- package/dist/render/endpoint.d.ts.map +1 -0
- package/dist/render/endpoint.js +109 -0
- package/dist/render/endpoint.js.map +1 -0
- package/dist/render/entity-facade-context.d.ts +35 -0
- package/dist/render/entity-facade-context.d.ts.map +1 -0
- package/dist/render/entity-facade-context.js +37 -0
- package/dist/render/entity-facade-context.js.map +1 -0
- package/dist/render/group-states-css.d.ts +42 -0
- package/dist/render/group-states-css.d.ts.map +1 -0
- package/dist/render/group-states-css.js +73 -0
- package/dist/render/group-states-css.js.map +1 -0
- package/dist/render/hooks/useSurfaceEvents.d.ts +9 -0
- package/dist/render/hooks/useSurfaceEvents.d.ts.map +1 -0
- package/dist/render/hooks/useSurfaceEvents.js +9 -0
- package/dist/render/hooks/useSurfaceEvents.js.map +1 -0
- package/dist/render/hooks/useSurfaceId.d.ts +9 -0
- package/dist/render/hooks/useSurfaceId.d.ts.map +1 -0
- package/dist/render/hooks/useSurfaceId.js +9 -0
- package/dist/render/hooks/useSurfaceId.js.map +1 -0
- package/dist/render/index.d.ts +49 -0
- package/dist/render/index.d.ts.map +1 -0
- package/dist/render/index.js +61 -0
- package/dist/render/index.js.map +1 -0
- package/dist/render/interaction-rule-engine.d.ts +13 -0
- package/dist/render/interaction-rule-engine.d.ts.map +1 -0
- package/dist/render/interaction-rule-engine.js +47 -0
- package/dist/render/interaction-rule-engine.js.map +1 -0
- package/dist/render/keyframes-css.d.ts +32 -0
- package/dist/render/keyframes-css.d.ts.map +1 -0
- package/dist/render/keyframes-css.js +44 -0
- package/dist/render/keyframes-css.js.map +1 -0
- package/dist/render/query-state.d.ts +4 -0
- package/dist/render/query-state.d.ts.map +1 -0
- package/dist/render/query-state.js +70 -0
- package/dist/render/query-state.js.map +1 -0
- package/dist/render/renderer.d.ts +45 -0
- package/dist/render/renderer.d.ts.map +1 -0
- package/dist/render/renderer.js +937 -0
- package/dist/render/renderer.js.map +1 -0
- package/dist/render/resolve-expressions.d.ts +38 -0
- package/dist/render/resolve-expressions.d.ts.map +1 -0
- package/dist/render/resolve-expressions.js +309 -0
- package/dist/render/resolve-expressions.js.map +1 -0
- package/dist/render/responsive-style-css.d.ts +43 -0
- package/dist/render/responsive-style-css.d.ts.map +1 -0
- package/dist/render/responsive-style-css.js +123 -0
- package/dist/render/responsive-style-css.js.map +1 -0
- package/dist/render/responsive.d.ts +50 -0
- package/dist/render/responsive.d.ts.map +1 -0
- package/dist/render/responsive.js +99 -0
- package/dist/render/responsive.js.map +1 -0
- package/dist/render/scoped-css.d.ts +72 -0
- package/dist/render/scoped-css.d.ts.map +1 -0
- package/dist/render/scoped-css.js +102 -0
- package/dist/render/scoped-css.js.map +1 -0
- package/dist/render/shell-selection.d.ts +70 -0
- package/dist/render/shell-selection.d.ts.map +1 -0
- package/dist/render/shell-selection.js +117 -0
- package/dist/render/shell-selection.js.map +1 -0
- package/dist/render/states-css.d.ts +33 -0
- package/dist/render/states-css.d.ts.map +1 -0
- package/dist/render/states-css.js +63 -0
- package/dist/render/states-css.js.map +1 -0
- package/dist/render/surface-data-context.d.ts +19 -0
- package/dist/render/surface-data-context.d.ts.map +1 -0
- package/dist/render/surface-data-context.js +21 -0
- package/dist/render/surface-data-context.js.map +1 -0
- package/dist/render/surface-event-bus.d.ts +20 -0
- package/dist/render/surface-event-bus.d.ts.map +1 -0
- package/dist/render/surface-event-bus.js +68 -0
- package/dist/render/surface-event-bus.js.map +1 -0
- package/dist/render/surface-event-context.d.ts +12 -0
- package/dist/render/surface-event-context.d.ts.map +1 -0
- package/dist/render/surface-event-context.js +12 -0
- package/dist/render/surface-event-context.js.map +1 -0
- package/dist/render/surface-id-context.d.ts +9 -0
- package/dist/render/surface-id-context.d.ts.map +1 -0
- package/dist/render/surface-id-context.js +9 -0
- package/dist/render/surface-id-context.js.map +1 -0
- package/dist/render/theme-utils.d.ts +15 -0
- package/dist/render/theme-utils.d.ts.map +1 -0
- package/dist/render/theme-utils.js +15 -0
- package/dist/render/theme-utils.js.map +1 -0
- package/dist/render/types.d.ts +283 -0
- package/dist/render/types.d.ts.map +1 -0
- package/dist/render/types.js +9 -0
- package/dist/render/types.js.map +1 -0
- package/dist/render/visibility-css.d.ts +43 -0
- package/dist/render/visibility-css.d.ts.map +1 -0
- package/dist/render/visibility-css.js +119 -0
- package/dist/render/visibility-css.js.map +1 -0
- package/dist/render/width-scope.d.ts +35 -0
- package/dist/render/width-scope.d.ts.map +1 -0
- package/dist/render/width-scope.js +44 -0
- package/dist/render/width-scope.js.map +1 -0
- package/dist/render/write-only-sources.d.ts +34 -0
- package/dist/render/write-only-sources.d.ts.map +1 -0
- package/dist/render/write-only-sources.js +99 -0
- package/dist/render/write-only-sources.js.map +1 -0
- package/dist/routing/index.d.ts +15 -0
- package/dist/routing/index.d.ts.map +1 -0
- package/dist/routing/index.js +15 -0
- package/dist/routing/index.js.map +1 -0
- package/dist/routing/router.d.ts +43 -0
- package/dist/routing/router.d.ts.map +1 -0
- package/dist/routing/router.js +218 -0
- package/dist/routing/router.js.map +1 -0
- package/dist/routing/types.d.ts +125 -0
- package/dist/routing/types.d.ts.map +1 -0
- package/dist/routing/types.js +9 -0
- package/dist/routing/types.js.map +1 -0
- package/dist/seo/generator.d.ts +40 -0
- package/dist/seo/generator.d.ts.map +1 -0
- package/dist/seo/generator.js +236 -0
- package/dist/seo/generator.js.map +1 -0
- package/dist/seo/index.d.ts +15 -0
- package/dist/seo/index.d.ts.map +1 -0
- package/dist/seo/index.js +15 -0
- package/dist/seo/index.js.map +1 -0
- package/dist/seo/types.d.ts +182 -0
- package/dist/seo/types.d.ts.map +1 -0
- package/dist/seo/types.js +9 -0
- package/dist/seo/types.js.map +1 -0
- package/dist/state/index.d.ts +16 -0
- package/dist/state/index.d.ts.map +1 -0
- package/dist/state/index.js +16 -0
- package/dist/state/index.js.map +1 -0
- package/dist/state/manager.d.ts +34 -0
- package/dist/state/manager.d.ts.map +1 -0
- package/dist/state/manager.js +81 -0
- package/dist/state/manager.js.map +1 -0
- package/dist/state/store.d.ts +41 -0
- package/dist/state/store.d.ts.map +1 -0
- package/dist/state/store.js +145 -0
- package/dist/state/store.js.map +1 -0
- package/dist/state/types.d.ts +108 -0
- package/dist/state/types.d.ts.map +1 -0
- package/dist/state/types.js +9 -0
- package/dist/state/types.js.map +1 -0
- package/dist/surface/expression.d.ts +66 -0
- package/dist/surface/expression.d.ts.map +1 -0
- package/dist/surface/expression.js +179 -0
- package/dist/surface/expression.js.map +1 -0
- package/dist/surface/index.d.ts +33 -0
- package/dist/surface/index.d.ts.map +1 -0
- package/dist/surface/index.js +25 -0
- package/dist/surface/index.js.map +1 -0
- package/dist/surface/interpreter.d.ts +97 -0
- package/dist/surface/interpreter.d.ts.map +1 -0
- package/dist/surface/interpreter.js +231 -0
- package/dist/surface/interpreter.js.map +1 -0
- package/dist/surface/layout.d.ts +55 -0
- package/dist/surface/layout.d.ts.map +1 -0
- package/dist/surface/layout.js +288 -0
- package/dist/surface/layout.js.map +1 -0
- package/dist/surface/output.d.ts +91 -0
- package/dist/surface/output.d.ts.map +1 -0
- package/dist/surface/output.js +104 -0
- package/dist/surface/output.js.map +1 -0
- package/dist/surface/primitives.d.ts +181 -0
- package/dist/surface/primitives.d.ts.map +1 -0
- package/dist/surface/primitives.js +339 -0
- package/dist/surface/primitives.js.map +1 -0
- package/dist/surface/renderer.d.ts +97 -0
- package/dist/surface/renderer.d.ts.map +1 -0
- package/dist/surface/renderer.js +190 -0
- package/dist/surface/renderer.js.map +1 -0
- package/dist/surface/schemas.d.ts +182 -0
- package/dist/surface/schemas.d.ts.map +1 -0
- package/dist/surface/schemas.js +142 -0
- package/dist/surface/schemas.js.map +1 -0
- package/dist/surface/transforms.d.ts +145 -0
- package/dist/surface/transforms.d.ts.map +1 -0
- package/dist/surface/transforms.js +120 -0
- package/dist/surface/transforms.js.map +1 -0
- package/dist/surface/types.d.ts +161 -0
- package/dist/surface/types.d.ts.map +1 -0
- package/dist/surface/types.js +51 -0
- package/dist/surface/types.js.map +1 -0
- package/dist/surface/validation.d.ts +124 -0
- package/dist/surface/validation.d.ts.map +1 -0
- package/dist/surface/validation.js +147 -0
- package/dist/surface/validation.js.map +1 -0
- package/dist/validator.d.ts +56 -0
- package/dist/validator.d.ts.map +1 -0
- package/dist/validator.js +100 -0
- package/dist/validator.js.map +1 -0
- package/package.json +105 -3
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
function findBlock(blocks, id) {
|
|
2
|
+
for (const block of blocks ?? []) {
|
|
3
|
+
if (block.id === id)
|
|
4
|
+
return block;
|
|
5
|
+
const inner = findBlock(block.children, id);
|
|
6
|
+
if (inner)
|
|
7
|
+
return inner;
|
|
8
|
+
}
|
|
9
|
+
return undefined;
|
|
10
|
+
}
|
|
11
|
+
function collect(blocks, state, into, seen) {
|
|
12
|
+
for (const block of blocks ?? []) {
|
|
13
|
+
const props = (block.props ?? {});
|
|
14
|
+
const name = props['name'];
|
|
15
|
+
const stateKey = props['stateKey'];
|
|
16
|
+
if (typeof name === 'string' &&
|
|
17
|
+
name &&
|
|
18
|
+
typeof stateKey === 'string' &&
|
|
19
|
+
stateKey &&
|
|
20
|
+
props['disabled'] !== true &&
|
|
21
|
+
!seen.has(name) &&
|
|
22
|
+
state[stateKey] !== undefined) {
|
|
23
|
+
into[name] = state[stateKey];
|
|
24
|
+
seen.add(name);
|
|
25
|
+
}
|
|
26
|
+
collect(block.children, state, into, seen);
|
|
27
|
+
}
|
|
28
|
+
}
|
|
29
|
+
/**
|
|
30
|
+
* The form's submitted values, completed from page state for named controls
|
|
31
|
+
* FormData missed. Returns `values` itself when there is nothing to add.
|
|
32
|
+
*/
|
|
33
|
+
export function completeNamedControlValues(blocks, formId, values, state) {
|
|
34
|
+
const form = findBlock(blocks, formId);
|
|
35
|
+
if (!form)
|
|
36
|
+
return values;
|
|
37
|
+
const seen = new Set(Object.keys(values));
|
|
38
|
+
const added = {};
|
|
39
|
+
collect(form.children, state, added, seen);
|
|
40
|
+
return Object.keys(added).length > 0 ? { ...values, ...added } : values;
|
|
41
|
+
}
|
|
42
|
+
//# sourceMappingURL=named-control-values.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"named-control-values.js","sourceRoot":"","sources":["../../src/forms/named-control-values.ts"],"names":[],"mappings":"AAuBA,SAAS,SAAS,CAAC,MAAoC,EAAE,EAAU;IACjE,KAAK,MAAM,KAAK,IAAI,MAAM,IAAI,EAAE,EAAE,CAAC;QACjC,IAAI,KAAK,CAAC,EAAE,KAAK,EAAE;YAAE,OAAO,KAAK,CAAA;QACjC,MAAM,KAAK,GAAG,SAAS,CAAC,KAAK,CAAC,QAAwC,EAAE,EAAE,CAAC,CAAA;QAC3E,IAAI,KAAK;YAAE,OAAO,KAAK,CAAA;IACzB,CAAC;IACD,OAAO,SAAS,CAAA;AAClB,CAAC;AAED,SAAS,OAAO,CACd,MAAoC,EACpC,KAA8B,EAC9B,IAA6B,EAC7B,IAAiB;IAEjB,KAAK,MAAM,KAAK,IAAI,MAAM,IAAI,EAAE,EAAE,CAAC;QACjC,MAAM,KAAK,GAAG,CAAC,KAAK,CAAC,KAAK,IAAI,EAAE,CAA4B,CAAA;QAC5D,MAAM,IAAI,GAAG,KAAK,CAAC,MAAM,CAAC,CAAA;QAC1B,MAAM,QAAQ,GAAG,KAAK,CAAC,UAAU,CAAC,CAAA;QAClC,IACE,OAAO,IAAI,KAAK,QAAQ;YACxB,IAAI;YACJ,OAAO,QAAQ,KAAK,QAAQ;YAC5B,QAAQ;YACR,KAAK,CAAC,UAAU,CAAC,KAAK,IAAI;YAC1B,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC;YACf,KAAK,CAAC,QAAQ,CAAC,KAAK,SAAS,EAC7B,CAAC;YACD,IAAI,CAAC,IAAI,CAAC,GAAG,KAAK,CAAC,QAAQ,CAAC,CAAA;YAC5B,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,CAAA;QAChB,CAAC;QACD,OAAO,CAAC,KAAK,CAAC,QAAwC,EAAE,KAAK,EAAE,IAAI,EAAE,IAAI,CAAC,CAAA;IAC5E,CAAC;AACH,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,0BAA0B,CACxC,MAAwB,EACxB,MAAc,EACd,MAA+B,EAC/B,KAA8B;IAE9B,MAAM,IAAI,GAAG,SAAS,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;IACtC,IAAI,CAAC,IAAI;QAAE,OAAO,MAAM,CAAA;IACxB,MAAM,IAAI,GAAG,IAAI,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAA;IACzC,MAAM,KAAK,GAA4B,EAAE,CAAA;IACzC,OAAO,CAAC,IAAI,CAAC,QAAwC,EAAE,KAAK,EAAE,KAAK,EAAE,IAAI,CAAC,CAAA;IAC1E,OAAO,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,GAAG,MAAM,EAAE,GAAG,KAAK,EAAE,CAAC,CAAC,CAAC,MAAM,CAAA;AACzE,CAAC"}
|
|
@@ -0,0 +1,56 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Form Processor
|
|
3
|
+
*
|
|
4
|
+
* Form processing implementation
|
|
5
|
+
*
|
|
6
|
+
* @module @pwfabric/runtime/forms/processor
|
|
7
|
+
*/
|
|
8
|
+
import type { ZodType } from 'zod';
|
|
9
|
+
import type { FormProcessor, FormField, FormSubmitHandler, FormResult, FormError, FormValidationResult, FormProcessorConfig } from './types.js';
|
|
10
|
+
/**
|
|
11
|
+
* Default form processor implementation
|
|
12
|
+
*/
|
|
13
|
+
export declare class DefaultFormProcessor implements FormProcessor {
|
|
14
|
+
private readonly validator;
|
|
15
|
+
private readonly config;
|
|
16
|
+
constructor(config?: FormProcessorConfig);
|
|
17
|
+
validate(values: Record<string, unknown>, fields: readonly FormField[]): FormValidationResult;
|
|
18
|
+
validateWithSchema<T>(values: Record<string, unknown>, schema: ZodType<T>): FormValidationResult;
|
|
19
|
+
process<T>(_formId: string, values: Record<string, unknown>, handler: FormSubmitHandler<T>): Promise<FormResult<T>>;
|
|
20
|
+
/**
|
|
21
|
+
* Process form with validation
|
|
22
|
+
*/
|
|
23
|
+
processWithValidation<T>(formId: string, values: Record<string, unknown>, fields: readonly FormField[], handler: FormSubmitHandler<T>): Promise<FormResult<T>>;
|
|
24
|
+
/**
|
|
25
|
+
* Process form with Zod schema validation
|
|
26
|
+
*/
|
|
27
|
+
processWithSchema<T, TOutput>(formId: string, values: Record<string, unknown>, schema: ZodType<TOutput>, handler: FormSubmitHandler<T>): Promise<FormResult<T>>;
|
|
28
|
+
private createFormError;
|
|
29
|
+
}
|
|
30
|
+
/**
|
|
31
|
+
* Create a form processor
|
|
32
|
+
*/
|
|
33
|
+
export declare function createFormProcessor(config?: FormProcessorConfig): FormProcessor;
|
|
34
|
+
/**
|
|
35
|
+
* Check if a form result is successful
|
|
36
|
+
*/
|
|
37
|
+
export declare function isFormSuccess<T>(result: FormResult<T>): result is {
|
|
38
|
+
success: true;
|
|
39
|
+
data: T;
|
|
40
|
+
};
|
|
41
|
+
/**
|
|
42
|
+
* Check if a form result is a failure
|
|
43
|
+
*/
|
|
44
|
+
export declare function isFormFailure<T>(result: FormResult<T>): result is {
|
|
45
|
+
success: false;
|
|
46
|
+
error: FormError;
|
|
47
|
+
};
|
|
48
|
+
/**
|
|
49
|
+
* Format form validation errors into a single message
|
|
50
|
+
*/
|
|
51
|
+
export declare function formatFormErrors(errors: Record<string, string[]>): string;
|
|
52
|
+
/**
|
|
53
|
+
* Get all error messages as a flat array
|
|
54
|
+
*/
|
|
55
|
+
export declare function getErrorMessages(errors: Record<string, string[]>): string[];
|
|
56
|
+
//# sourceMappingURL=processor.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"processor.d.ts","sourceRoot":"","sources":["../../src/forms/processor.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,KAAK,CAAA;AAClC,OAAO,KAAK,EACV,aAAa,EACb,SAAS,EACT,iBAAiB,EACjB,UAAU,EACV,SAAS,EACT,oBAAoB,EACpB,mBAAmB,EACpB,MAAM,YAAY,CAAA;AAOnB;;GAEG;AACH,qBAAa,oBAAqB,YAAW,aAAa;IACxD,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAsB;IAChD,OAAO,CAAC,QAAQ,CAAC,MAAM,CAA+B;gBAE1C,MAAM,GAAE,mBAAwB;IAU5C,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,MAAM,EAAE,SAAS,SAAS,EAAE,GAAG,oBAAoB;IAI7F,kBAAkB,CAAC,CAAC,EAAE,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC,GAAG,oBAAoB;IAI1F,OAAO,CAAC,CAAC,EACb,OAAO,EAAE,MAAM,EACf,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAC/B,OAAO,EAAE,iBAAiB,CAAC,CAAC,CAAC,GAC5B,OAAO,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC;IAezB;;OAEG;IACG,qBAAqB,CAAC,CAAC,EAC3B,MAAM,EAAE,MAAM,EACd,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAC/B,MAAM,EAAE,SAAS,SAAS,EAAE,EAC5B,OAAO,EAAE,iBAAiB,CAAC,CAAC,CAAC,GAC5B,OAAO,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC;IAoBzB;;OAEG;IACG,iBAAiB,CAAC,CAAC,EAAE,OAAO,EAChC,MAAM,EAAE,MAAM,EACd,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAC/B,MAAM,EAAE,OAAO,CAAC,OAAO,CAAC,EACxB,OAAO,EAAE,iBAAiB,CAAC,CAAC,CAAC,GAC5B,OAAO,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC;IAkBzB,OAAO,CAAC,eAAe;CA4BxB;AAED;;GAEG;AACH,wBAAgB,mBAAmB,CAAC,MAAM,CAAC,EAAE,mBAAmB,GAAG,aAAa,CAE/E;AAMD;;GAEG;AACH,wBAAgB,aAAa,CAAC,CAAC,EAAE,MAAM,EAAE,UAAU,CAAC,CAAC,CAAC,GAAG,MAAM,IAAI;IAAE,OAAO,EAAE,IAAI,CAAC;IAAC,IAAI,EAAE,CAAC,CAAA;CAAE,CAE5F;AAED;;GAEG;AACH,wBAAgB,aAAa,CAAC,CAAC,EAC7B,MAAM,EAAE,UAAU,CAAC,CAAC,CAAC,GACpB,MAAM,IAAI;IAAE,OAAO,EAAE,KAAK,CAAC;IAAC,KAAK,EAAE,SAAS,CAAA;CAAE,CAEhD;AAED;;GAEG;AACH,wBAAgB,gBAAgB,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,EAAE,CAAC,GAAG,MAAM,CAUzE;AAED;;GAEG;AACH,wBAAgB,gBAAgB,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,EAAE,CAAC,GAAG,MAAM,EAAE,CAQ3E"}
|
|
@@ -0,0 +1,154 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Form Processor
|
|
3
|
+
*
|
|
4
|
+
* Form processing implementation
|
|
5
|
+
*
|
|
6
|
+
* @module @pwfabric/runtime/forms/processor
|
|
7
|
+
*/
|
|
8
|
+
import { DefaultFormValidator, validateWithZod } from './validator.js';
|
|
9
|
+
// ============================================================
|
|
10
|
+
// DEFAULT FORM PROCESSOR
|
|
11
|
+
// ============================================================
|
|
12
|
+
/**
|
|
13
|
+
* Default form processor implementation
|
|
14
|
+
*/
|
|
15
|
+
export class DefaultFormProcessor {
|
|
16
|
+
validator;
|
|
17
|
+
config;
|
|
18
|
+
constructor(config = {}) {
|
|
19
|
+
this.validator = new DefaultFormValidator(config.messages);
|
|
20
|
+
this.config = {
|
|
21
|
+
validateOnSubmit: config.validateOnSubmit ?? true,
|
|
22
|
+
validateOnBlur: config.validateOnBlur ?? true,
|
|
23
|
+
validateOnChange: config.validateOnChange ?? false,
|
|
24
|
+
messages: config.messages ?? {},
|
|
25
|
+
};
|
|
26
|
+
}
|
|
27
|
+
validate(values, fields) {
|
|
28
|
+
return this.validator.validateAll(values, fields);
|
|
29
|
+
}
|
|
30
|
+
validateWithSchema(values, schema) {
|
|
31
|
+
return validateWithZod(values, schema);
|
|
32
|
+
}
|
|
33
|
+
async process(_formId, values, handler) {
|
|
34
|
+
try {
|
|
35
|
+
const result = await handler(values);
|
|
36
|
+
return {
|
|
37
|
+
success: true,
|
|
38
|
+
data: result,
|
|
39
|
+
};
|
|
40
|
+
}
|
|
41
|
+
catch (error) {
|
|
42
|
+
return {
|
|
43
|
+
success: false,
|
|
44
|
+
error: this.createFormError(error),
|
|
45
|
+
};
|
|
46
|
+
}
|
|
47
|
+
}
|
|
48
|
+
/**
|
|
49
|
+
* Process form with validation
|
|
50
|
+
*/
|
|
51
|
+
async processWithValidation(formId, values, fields, handler) {
|
|
52
|
+
// Validate first if enabled
|
|
53
|
+
if (this.config.validateOnSubmit) {
|
|
54
|
+
const validationResult = this.validate(values, fields);
|
|
55
|
+
if (!validationResult.valid) {
|
|
56
|
+
return {
|
|
57
|
+
success: false,
|
|
58
|
+
error: {
|
|
59
|
+
type: 'validation_failed',
|
|
60
|
+
message: 'Form validation failed',
|
|
61
|
+
validationErrors: validationResult.errors,
|
|
62
|
+
},
|
|
63
|
+
};
|
|
64
|
+
}
|
|
65
|
+
}
|
|
66
|
+
return this.process(formId, values, handler);
|
|
67
|
+
}
|
|
68
|
+
/**
|
|
69
|
+
* Process form with Zod schema validation
|
|
70
|
+
*/
|
|
71
|
+
async processWithSchema(formId, values, schema, handler) {
|
|
72
|
+
// Validate with Zod schema
|
|
73
|
+
const validationResult = this.validateWithSchema(values, schema);
|
|
74
|
+
if (!validationResult.valid) {
|
|
75
|
+
return {
|
|
76
|
+
success: false,
|
|
77
|
+
error: {
|
|
78
|
+
type: 'validation_failed',
|
|
79
|
+
message: 'Form validation failed',
|
|
80
|
+
validationErrors: validationResult.errors,
|
|
81
|
+
},
|
|
82
|
+
};
|
|
83
|
+
}
|
|
84
|
+
return this.process(formId, values, handler);
|
|
85
|
+
}
|
|
86
|
+
createFormError(error) {
|
|
87
|
+
if (error instanceof Error) {
|
|
88
|
+
// Check for network errors
|
|
89
|
+
if (error.name === 'NetworkError' ||
|
|
90
|
+
error.message.includes('network') ||
|
|
91
|
+
error.message.includes('fetch')) {
|
|
92
|
+
return {
|
|
93
|
+
type: 'network_error',
|
|
94
|
+
message: 'A network error occurred. Please try again.',
|
|
95
|
+
cause: error,
|
|
96
|
+
};
|
|
97
|
+
}
|
|
98
|
+
return {
|
|
99
|
+
type: 'processing_failed',
|
|
100
|
+
message: error.message,
|
|
101
|
+
cause: error,
|
|
102
|
+
};
|
|
103
|
+
}
|
|
104
|
+
return {
|
|
105
|
+
type: 'unknown',
|
|
106
|
+
message: 'An unexpected error occurred',
|
|
107
|
+
cause: error,
|
|
108
|
+
};
|
|
109
|
+
}
|
|
110
|
+
}
|
|
111
|
+
/**
|
|
112
|
+
* Create a form processor
|
|
113
|
+
*/
|
|
114
|
+
export function createFormProcessor(config) {
|
|
115
|
+
return new DefaultFormProcessor(config);
|
|
116
|
+
}
|
|
117
|
+
// ============================================================
|
|
118
|
+
// HELPER FUNCTIONS
|
|
119
|
+
// ============================================================
|
|
120
|
+
/**
|
|
121
|
+
* Check if a form result is successful
|
|
122
|
+
*/
|
|
123
|
+
export function isFormSuccess(result) {
|
|
124
|
+
return result.success;
|
|
125
|
+
}
|
|
126
|
+
/**
|
|
127
|
+
* Check if a form result is a failure
|
|
128
|
+
*/
|
|
129
|
+
export function isFormFailure(result) {
|
|
130
|
+
return !result.success;
|
|
131
|
+
}
|
|
132
|
+
/**
|
|
133
|
+
* Format form validation errors into a single message
|
|
134
|
+
*/
|
|
135
|
+
export function formatFormErrors(errors) {
|
|
136
|
+
const messages = [];
|
|
137
|
+
for (const [field, fieldErrors] of Object.entries(errors)) {
|
|
138
|
+
for (const error of fieldErrors) {
|
|
139
|
+
messages.push(`${field}: ${error}`);
|
|
140
|
+
}
|
|
141
|
+
}
|
|
142
|
+
return messages.join('. ');
|
|
143
|
+
}
|
|
144
|
+
/**
|
|
145
|
+
* Get all error messages as a flat array
|
|
146
|
+
*/
|
|
147
|
+
export function getErrorMessages(errors) {
|
|
148
|
+
const messages = [];
|
|
149
|
+
for (const fieldErrors of Object.values(errors)) {
|
|
150
|
+
messages.push(...fieldErrors);
|
|
151
|
+
}
|
|
152
|
+
return messages;
|
|
153
|
+
}
|
|
154
|
+
//# sourceMappingURL=processor.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"processor.js","sourceRoot":"","sources":["../../src/forms/processor.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,175 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Form Processing Types
|
|
3
|
+
*
|
|
4
|
+
* Form processing capability for surfaces
|
|
5
|
+
*
|
|
6
|
+
* @module @pwfabric/runtime/forms/types
|
|
7
|
+
*/
|
|
8
|
+
import type { ZodType } from 'zod';
|
|
9
|
+
/**
|
|
10
|
+
* Form field input type
|
|
11
|
+
*/
|
|
12
|
+
export type FormFieldType = 'text' | 'email' | 'number' | 'select' | 'checkbox' | 'textarea' | 'password' | 'tel' | 'url' | 'date' | 'hidden';
|
|
13
|
+
/**
|
|
14
|
+
* Validation rule type
|
|
15
|
+
*/
|
|
16
|
+
export type ValidationRuleType = 'required' | 'minLength' | 'maxLength' | 'min' | 'max' | 'pattern' | 'email' | 'url' | 'custom';
|
|
17
|
+
/**
|
|
18
|
+
* Validation rule definition
|
|
19
|
+
*/
|
|
20
|
+
export interface ValidationRule {
|
|
21
|
+
readonly type: ValidationRuleType;
|
|
22
|
+
readonly value?: unknown;
|
|
23
|
+
readonly message: string;
|
|
24
|
+
}
|
|
25
|
+
/**
|
|
26
|
+
* Select option for select fields
|
|
27
|
+
*/
|
|
28
|
+
export interface SelectOption {
|
|
29
|
+
readonly value: string | number;
|
|
30
|
+
readonly label: string;
|
|
31
|
+
readonly disabled?: boolean;
|
|
32
|
+
}
|
|
33
|
+
/**
|
|
34
|
+
* Form field definition
|
|
35
|
+
*/
|
|
36
|
+
export interface FormField {
|
|
37
|
+
readonly name: string;
|
|
38
|
+
readonly type: FormFieldType;
|
|
39
|
+
readonly label?: string;
|
|
40
|
+
readonly placeholder?: string;
|
|
41
|
+
readonly required?: boolean;
|
|
42
|
+
readonly disabled?: boolean;
|
|
43
|
+
readonly defaultValue?: unknown;
|
|
44
|
+
readonly validation?: readonly ValidationRule[];
|
|
45
|
+
readonly options?: readonly SelectOption[];
|
|
46
|
+
}
|
|
47
|
+
/**
|
|
48
|
+
* Form state tracking
|
|
49
|
+
*/
|
|
50
|
+
export interface FormState {
|
|
51
|
+
readonly values: Record<string, unknown>;
|
|
52
|
+
readonly errors: Record<string, string[]>;
|
|
53
|
+
readonly touched: Record<string, boolean>;
|
|
54
|
+
readonly isValid: boolean;
|
|
55
|
+
readonly isSubmitting: boolean;
|
|
56
|
+
readonly isDirty: boolean;
|
|
57
|
+
readonly submitCount: number;
|
|
58
|
+
}
|
|
59
|
+
/**
|
|
60
|
+
* Initial form state
|
|
61
|
+
*/
|
|
62
|
+
export declare const INITIAL_FORM_STATE: FormState;
|
|
63
|
+
/**
|
|
64
|
+
* Result of validating form values
|
|
65
|
+
*/
|
|
66
|
+
export interface FormValidationResult {
|
|
67
|
+
readonly valid: boolean;
|
|
68
|
+
readonly errors: Record<string, string[]>;
|
|
69
|
+
}
|
|
70
|
+
/**
|
|
71
|
+
* Successful validation result
|
|
72
|
+
*/
|
|
73
|
+
export interface FormValidationSuccess extends FormValidationResult {
|
|
74
|
+
readonly valid: true;
|
|
75
|
+
readonly errors: Record<string, never>;
|
|
76
|
+
}
|
|
77
|
+
/**
|
|
78
|
+
* Failed validation result
|
|
79
|
+
*/
|
|
80
|
+
export interface FormValidationFailure extends FormValidationResult {
|
|
81
|
+
readonly valid: false;
|
|
82
|
+
readonly errors: Record<string, string[]>;
|
|
83
|
+
}
|
|
84
|
+
/**
|
|
85
|
+
* Result of form processing
|
|
86
|
+
*/
|
|
87
|
+
export type FormResult<T = unknown> = {
|
|
88
|
+
readonly success: true;
|
|
89
|
+
readonly data: T;
|
|
90
|
+
} | {
|
|
91
|
+
readonly success: false;
|
|
92
|
+
readonly error: FormError;
|
|
93
|
+
};
|
|
94
|
+
/**
|
|
95
|
+
* Form processing error
|
|
96
|
+
*/
|
|
97
|
+
export interface FormError {
|
|
98
|
+
readonly type: 'validation_failed' | 'processing_failed' | 'network_error' | 'unknown';
|
|
99
|
+
readonly message: string;
|
|
100
|
+
readonly validationErrors?: Record<string, string[]>;
|
|
101
|
+
readonly cause?: unknown;
|
|
102
|
+
}
|
|
103
|
+
/**
|
|
104
|
+
* Form submission handler function
|
|
105
|
+
*/
|
|
106
|
+
export type FormSubmitHandler<T = unknown> = (values: Record<string, unknown>) => Promise<T> | T;
|
|
107
|
+
/**
|
|
108
|
+
* Form processor interface
|
|
109
|
+
*/
|
|
110
|
+
export interface FormProcessor {
|
|
111
|
+
/**
|
|
112
|
+
* Validate form values against field definitions
|
|
113
|
+
*/
|
|
114
|
+
validate(values: Record<string, unknown>, fields: readonly FormField[]): FormValidationResult;
|
|
115
|
+
/**
|
|
116
|
+
* Validate form values using a Zod schema
|
|
117
|
+
*/
|
|
118
|
+
validateWithSchema<T>(values: Record<string, unknown>, schema: ZodType<T>): FormValidationResult;
|
|
119
|
+
/**
|
|
120
|
+
* Process a form submission
|
|
121
|
+
*/
|
|
122
|
+
process<T>(formId: string, values: Record<string, unknown>, handler: FormSubmitHandler<T>): Promise<FormResult<T>>;
|
|
123
|
+
}
|
|
124
|
+
/**
|
|
125
|
+
* Form validator interface
|
|
126
|
+
*/
|
|
127
|
+
export interface FormValidator {
|
|
128
|
+
/**
|
|
129
|
+
* Validate a single field value
|
|
130
|
+
*/
|
|
131
|
+
validateField(value: unknown, field: FormField): string[];
|
|
132
|
+
/**
|
|
133
|
+
* Validate all fields
|
|
134
|
+
*/
|
|
135
|
+
validateAll(values: Record<string, unknown>, fields: readonly FormField[]): FormValidationResult;
|
|
136
|
+
}
|
|
137
|
+
/**
|
|
138
|
+
* Form processor configuration
|
|
139
|
+
*/
|
|
140
|
+
export interface FormProcessorConfig {
|
|
141
|
+
/**
|
|
142
|
+
* Whether to validate on submit
|
|
143
|
+
*/
|
|
144
|
+
readonly validateOnSubmit?: boolean;
|
|
145
|
+
/**
|
|
146
|
+
* Whether to validate individual fields on blur
|
|
147
|
+
*/
|
|
148
|
+
readonly validateOnBlur?: boolean;
|
|
149
|
+
/**
|
|
150
|
+
* Whether to validate individual fields on change
|
|
151
|
+
*/
|
|
152
|
+
readonly validateOnChange?: boolean;
|
|
153
|
+
/**
|
|
154
|
+
* Custom error messages
|
|
155
|
+
*/
|
|
156
|
+
readonly messages?: Partial<ValidationMessages>;
|
|
157
|
+
}
|
|
158
|
+
/**
|
|
159
|
+
* Default validation error messages
|
|
160
|
+
*/
|
|
161
|
+
export interface ValidationMessages {
|
|
162
|
+
readonly required: string;
|
|
163
|
+
readonly email: string;
|
|
164
|
+
readonly url: string;
|
|
165
|
+
readonly minLength: string;
|
|
166
|
+
readonly maxLength: string;
|
|
167
|
+
readonly min: string;
|
|
168
|
+
readonly max: string;
|
|
169
|
+
readonly pattern: string;
|
|
170
|
+
}
|
|
171
|
+
/**
|
|
172
|
+
* Default validation messages
|
|
173
|
+
*/
|
|
174
|
+
export declare const DEFAULT_VALIDATION_MESSAGES: ValidationMessages;
|
|
175
|
+
//# sourceMappingURL=types.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/forms/types.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Form Processing Types
|
|
3
|
+
*
|
|
4
|
+
* Form processing capability for surfaces
|
|
5
|
+
*
|
|
6
|
+
* @module @pwfabric/runtime/forms/types
|
|
7
|
+
*/
|
|
8
|
+
/**
|
|
9
|
+
* Initial form state
|
|
10
|
+
*/
|
|
11
|
+
export const INITIAL_FORM_STATE = {
|
|
12
|
+
values: {},
|
|
13
|
+
errors: {},
|
|
14
|
+
touched: {},
|
|
15
|
+
isValid: true,
|
|
16
|
+
isSubmitting: false,
|
|
17
|
+
isDirty: false,
|
|
18
|
+
submitCount: 0,
|
|
19
|
+
};
|
|
20
|
+
/**
|
|
21
|
+
* Default validation messages
|
|
22
|
+
*/
|
|
23
|
+
export const DEFAULT_VALIDATION_MESSAGES = {
|
|
24
|
+
required: 'This field is required',
|
|
25
|
+
email: 'Please enter a valid email address',
|
|
26
|
+
url: 'Please enter a valid URL',
|
|
27
|
+
minLength: 'Must be at least {value} characters',
|
|
28
|
+
maxLength: 'Must be no more than {value} characters',
|
|
29
|
+
min: 'Must be at least {value}',
|
|
30
|
+
max: 'Must be no more than {value}',
|
|
31
|
+
pattern: 'Invalid format',
|
|
32
|
+
};
|
|
33
|
+
//# sourceMappingURL=types.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/forms/types.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAwFH;;GAEG;AACH,MAAM,CAAC,MAAM,kBAAkB,GAAc;IAC3C,MAAM,EAAE,EAAE;IACV,MAAM,EAAE,EAAE;IACV,OAAO,EAAE,EAAE;IACX,OAAO,EAAE,IAAI;IACb,YAAY,EAAE,KAAK;IACnB,OAAO,EAAE,KAAK;IACd,WAAW,EAAE,CAAC;CACf,CAAA;AAkJD;;GAEG;AACH,MAAM,CAAC,MAAM,2BAA2B,GAAuB;IAC7D,QAAQ,EAAE,wBAAwB;IAClC,KAAK,EAAE,oCAAoC;IAC3C,GAAG,EAAE,0BAA0B;IAC/B,SAAS,EAAE,qCAAqC;IAChD,SAAS,EAAE,yCAAyC;IACpD,GAAG,EAAE,0BAA0B;IAC/B,GAAG,EAAE,8BAA8B;IACnC,OAAO,EAAE,gBAAgB;CAC1B,CAAA"}
|
|
@@ -0,0 +1,62 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Form Validator
|
|
3
|
+
*
|
|
4
|
+
* Form validation implementation
|
|
5
|
+
*
|
|
6
|
+
* @module @pwfabric/runtime/forms/validator
|
|
7
|
+
*/
|
|
8
|
+
import { z, type ZodType } from 'zod';
|
|
9
|
+
import type { FormValidator, FormField, FormValidationResult, ValidationMessages } from './types.js';
|
|
10
|
+
/**
|
|
11
|
+
* Default form validator implementation
|
|
12
|
+
*/
|
|
13
|
+
export declare class DefaultFormValidator implements FormValidator {
|
|
14
|
+
private readonly messages;
|
|
15
|
+
constructor(customMessages?: Partial<ValidationMessages>);
|
|
16
|
+
validateField(value: unknown, field: FormField): string[];
|
|
17
|
+
validateAll(values: Record<string, unknown>, fields: readonly FormField[]): FormValidationResult;
|
|
18
|
+
private validateRule;
|
|
19
|
+
private isEmpty;
|
|
20
|
+
private validateEmail;
|
|
21
|
+
private validateUrl;
|
|
22
|
+
private validateMinLength;
|
|
23
|
+
private validateMaxLength;
|
|
24
|
+
private validateMin;
|
|
25
|
+
private validateMax;
|
|
26
|
+
private validatePattern;
|
|
27
|
+
private formatMessage;
|
|
28
|
+
}
|
|
29
|
+
/**
|
|
30
|
+
* Validate values using a Zod schema
|
|
31
|
+
*/
|
|
32
|
+
export declare function validateWithZod<T>(values: Record<string, unknown>, schema: ZodType<T>): FormValidationResult;
|
|
33
|
+
/**
|
|
34
|
+
* Common Zod schemas for form validation
|
|
35
|
+
*/
|
|
36
|
+
export declare const FormSchemas: {
|
|
37
|
+
/**
|
|
38
|
+
* Email validation schema
|
|
39
|
+
*/
|
|
40
|
+
email: z.ZodString;
|
|
41
|
+
/**
|
|
42
|
+
* Required string schema
|
|
43
|
+
*/
|
|
44
|
+
requiredString: z.ZodString;
|
|
45
|
+
/**
|
|
46
|
+
* URL validation schema
|
|
47
|
+
*/
|
|
48
|
+
url: z.ZodString;
|
|
49
|
+
/**
|
|
50
|
+
* Phone number schema (basic)
|
|
51
|
+
*/
|
|
52
|
+
phone: z.ZodString;
|
|
53
|
+
/**
|
|
54
|
+
* Password schema (min 8 chars, at least one number and letter)
|
|
55
|
+
*/
|
|
56
|
+
password: z.ZodString;
|
|
57
|
+
};
|
|
58
|
+
/**
|
|
59
|
+
* Create a form validator
|
|
60
|
+
*/
|
|
61
|
+
export declare function createFormValidator(customMessages?: Partial<ValidationMessages>): FormValidator;
|
|
62
|
+
//# sourceMappingURL=validator.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"validator.d.ts","sourceRoot":"","sources":["../../src/forms/validator.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,EAAE,CAAC,EAAE,KAAK,OAAO,EAAiB,MAAM,KAAK,CAAA;AACpD,OAAO,KAAK,EACV,aAAa,EACb,SAAS,EAET,oBAAoB,EACpB,kBAAkB,EACnB,MAAM,YAAY,CAAA;AAOnB;;GAEG;AACH,qBAAa,oBAAqB,YAAW,aAAa;IACxD,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAoB;gBAEjC,cAAc,GAAE,OAAO,CAAC,kBAAkB,CAAM;IAI5D,aAAa,CAAC,KAAK,EAAE,OAAO,EAAE,KAAK,EAAE,SAAS,GAAG,MAAM,EAAE;IA2BzD,WAAW,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,MAAM,EAAE,SAAS,SAAS,EAAE,GAAG,oBAAoB;IAoBhG,OAAO,CAAC,YAAY;IAuCpB,OAAO,CAAC,OAAO;IAOf,OAAO,CAAC,aAAa;IAQrB,OAAO,CAAC,WAAW;IAWnB,OAAO,CAAC,iBAAiB;IAKzB,OAAO,CAAC,iBAAiB;IAKzB,OAAO,CAAC,WAAW;IAMnB,OAAO,CAAC,WAAW;IAMnB,OAAO,CAAC,eAAe;IAWvB,OAAO,CAAC,aAAa;CAGtB;AAMD;;GAEG;AACH,wBAAgB,eAAe,CAAC,CAAC,EAC/B,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAC/B,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC,GACjB,oBAAoB,CActB;AAuBD;;GAEG;AACH,eAAO,MAAM,WAAW;IACtB;;OAEG;;IAGH;;OAEG;;IAGH;;OAEG;;IAGH;;OAEG;;IAGH;;OAEG;;CAMJ,CAAA;AAED;;GAEG;AACH,wBAAgB,mBAAmB,CAAC,cAAc,CAAC,EAAE,OAAO,CAAC,kBAAkB,CAAC,GAAG,aAAa,CAE/F"}
|