@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,169 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Composition Rules
|
|
3
|
+
*
|
|
4
|
+
* CP7: Rules defining valid block compositions
|
|
5
|
+
*
|
|
6
|
+
* @module @pwfabric/core/blocks/composition-rules
|
|
7
|
+
*/
|
|
8
|
+
import type { CompositionRule } from '@pwfabric/core';
|
|
9
|
+
/**
|
|
10
|
+
* Maximum nesting depth rule
|
|
11
|
+
*
|
|
12
|
+
* Prevents blocks from being nested too deeply.
|
|
13
|
+
*/
|
|
14
|
+
export declare const maxDepthRule: CompositionRule;
|
|
15
|
+
/**
|
|
16
|
+
* Form children rule
|
|
17
|
+
*
|
|
18
|
+
* Forms can contain all form input elements plus structural/content blocks.
|
|
19
|
+
*/
|
|
20
|
+
export declare const formChildrenRule: CompositionRule;
|
|
21
|
+
/**
|
|
22
|
+
* Grid children rule
|
|
23
|
+
*
|
|
24
|
+
* Grids cannot have nested grids as direct children.
|
|
25
|
+
*/
|
|
26
|
+
export declare const gridChildrenRule: CompositionRule;
|
|
27
|
+
/**
|
|
28
|
+
* Button no children rule
|
|
29
|
+
*
|
|
30
|
+
* Buttons cannot have children.
|
|
31
|
+
*/
|
|
32
|
+
export declare const buttonNoChildrenRule: CompositionRule;
|
|
33
|
+
/**
|
|
34
|
+
* Text no children rule
|
|
35
|
+
*
|
|
36
|
+
* Text blocks cannot have children.
|
|
37
|
+
*/
|
|
38
|
+
export declare const textNoChildrenRule: CompositionRule;
|
|
39
|
+
/**
|
|
40
|
+
* Heading no children rule
|
|
41
|
+
*
|
|
42
|
+
* Heading blocks cannot have children.
|
|
43
|
+
*/
|
|
44
|
+
export declare const headingNoChildrenRule: CompositionRule;
|
|
45
|
+
/**
|
|
46
|
+
* Image no children rule
|
|
47
|
+
*
|
|
48
|
+
* Image blocks cannot have children.
|
|
49
|
+
*/
|
|
50
|
+
export declare const imageNoChildrenRule: CompositionRule;
|
|
51
|
+
/**
|
|
52
|
+
* Input no children rule
|
|
53
|
+
*
|
|
54
|
+
* Input blocks cannot have children.
|
|
55
|
+
*/
|
|
56
|
+
export declare const inputNoChildrenRule: CompositionRule;
|
|
57
|
+
/**
|
|
58
|
+
* Input required parent rule
|
|
59
|
+
*
|
|
60
|
+
* Inputs should be inside forms or containers.
|
|
61
|
+
*/
|
|
62
|
+
export declare const inputParentRule: CompositionRule;
|
|
63
|
+
/**
|
|
64
|
+
* Link no children rule
|
|
65
|
+
*
|
|
66
|
+
* Link blocks cannot have children.
|
|
67
|
+
*/
|
|
68
|
+
export declare const linkNoChildrenRule: CompositionRule;
|
|
69
|
+
/**
|
|
70
|
+
* Icon no children rule
|
|
71
|
+
*
|
|
72
|
+
* Icon blocks cannot have children.
|
|
73
|
+
*/
|
|
74
|
+
export declare const iconNoChildrenRule: CompositionRule;
|
|
75
|
+
/**
|
|
76
|
+
* Badge no children rule
|
|
77
|
+
*
|
|
78
|
+
* Badge blocks cannot have children.
|
|
79
|
+
*/
|
|
80
|
+
export declare const badgeNoChildrenRule: CompositionRule;
|
|
81
|
+
/**
|
|
82
|
+
* Code no children rule
|
|
83
|
+
*
|
|
84
|
+
* Code blocks cannot have children.
|
|
85
|
+
*/
|
|
86
|
+
export declare const codeNoChildrenRule: CompositionRule;
|
|
87
|
+
/**
|
|
88
|
+
* Divider no children rule
|
|
89
|
+
*
|
|
90
|
+
* Divider blocks cannot have children.
|
|
91
|
+
*/
|
|
92
|
+
export declare const dividerNoChildrenRule: CompositionRule;
|
|
93
|
+
/**
|
|
94
|
+
* List no children rule
|
|
95
|
+
*
|
|
96
|
+
* List blocks cannot have children.
|
|
97
|
+
*/
|
|
98
|
+
export declare const listNoChildrenRule: CompositionRule;
|
|
99
|
+
/**
|
|
100
|
+
* Table no children rule
|
|
101
|
+
*
|
|
102
|
+
* Table blocks cannot have children.
|
|
103
|
+
*/
|
|
104
|
+
export declare const tableNoChildrenRule: CompositionRule;
|
|
105
|
+
/**
|
|
106
|
+
* Accordion no children rule
|
|
107
|
+
*
|
|
108
|
+
* Accordion items are defined via props, not children.
|
|
109
|
+
*/
|
|
110
|
+
export declare const accordionNoChildrenRule: CompositionRule;
|
|
111
|
+
/**
|
|
112
|
+
* Dropdown no children rule
|
|
113
|
+
*
|
|
114
|
+
* Dropdown items are defined via props, not children.
|
|
115
|
+
*/
|
|
116
|
+
export declare const dropdownNoChildrenRule: CompositionRule;
|
|
117
|
+
/**
|
|
118
|
+
* Avatar no children rule
|
|
119
|
+
*
|
|
120
|
+
* Avatar is a leaf block with no children.
|
|
121
|
+
*/
|
|
122
|
+
export declare const avatarNoChildrenRule: CompositionRule;
|
|
123
|
+
/**
|
|
124
|
+
* Tooltip children rule
|
|
125
|
+
*
|
|
126
|
+
* Tooltip can wrap specific inline/interactive blocks.
|
|
127
|
+
*/
|
|
128
|
+
export declare const tooltipChildrenRule: CompositionRule;
|
|
129
|
+
/**
|
|
130
|
+
* Tabs children rule
|
|
131
|
+
*
|
|
132
|
+
* Tabs can contain containers as tab panels.
|
|
133
|
+
*/
|
|
134
|
+
export declare const tabsChildrenRule: CompositionRule;
|
|
135
|
+
/**
|
|
136
|
+
* Modal children rule
|
|
137
|
+
*
|
|
138
|
+
* Modal can contain layout and content blocks.
|
|
139
|
+
*/
|
|
140
|
+
export declare const modalChildrenRule: CompositionRule;
|
|
141
|
+
/**
|
|
142
|
+
* No self nesting rule
|
|
143
|
+
*
|
|
144
|
+
* Blocks cannot be nested inside themselves.
|
|
145
|
+
*/
|
|
146
|
+
export declare const noSelfNestingRule: CompositionRule;
|
|
147
|
+
/**
|
|
148
|
+
* All composition rules
|
|
149
|
+
*/
|
|
150
|
+
export declare const compositionRules: readonly CompositionRule[];
|
|
151
|
+
/**
|
|
152
|
+
* Get rules that apply to a specific block type
|
|
153
|
+
*
|
|
154
|
+
* @param blockType - Block type to get rules for
|
|
155
|
+
* @returns Array of applicable rules
|
|
156
|
+
*/
|
|
157
|
+
export declare function getRulesForBlockType(blockType: string): readonly CompositionRule[];
|
|
158
|
+
/**
|
|
159
|
+
* Get rules by type
|
|
160
|
+
*
|
|
161
|
+
* @param ruleType - Rule type to filter by
|
|
162
|
+
* @returns Array of matching rules
|
|
163
|
+
*/
|
|
164
|
+
export declare function getRulesByType(ruleType: CompositionRule['type']): readonly CompositionRule[];
|
|
165
|
+
/** Allowed direct children of a tabs block */
|
|
166
|
+
export declare const TABS_ALLOWED_CHILDREN: Set<string>;
|
|
167
|
+
/** Allowed direct children of a form block */
|
|
168
|
+
export declare const FORM_ALLOWED_CHILDREN: Set<string>;
|
|
169
|
+
//# sourceMappingURL=composition-rules.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"composition-rules.d.ts","sourceRoot":"","sources":["../../src/blocks/composition-rules.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,gBAAgB,CAAA;AAOrD;;;;GAIG;AACH,eAAO,MAAM,YAAY,EAAE,eAO1B,CAAA;AAED;;;;GAIG;AACH,eAAO,MAAM,gBAAgB,EAAE,eAuC9B,CAAA;AAED;;;;GAIG;AACH,eAAO,MAAM,gBAAgB,EAAE,eAO9B,CAAA;AAED;;;;GAIG;AACH,eAAO,MAAM,oBAAoB,EAAE,eAKlC,CAAA;AAED;;;;GAIG;AACH,eAAO,MAAM,kBAAkB,EAAE,eAKhC,CAAA;AAED;;;;GAIG;AACH,eAAO,MAAM,qBAAqB,EAAE,eAKnC,CAAA;AAED;;;;GAIG;AACH,eAAO,MAAM,mBAAmB,EAAE,eAKjC,CAAA;AAED;;;;GAIG;AACH,eAAO,MAAM,mBAAmB,EAAE,eAKjC,CAAA;AAED;;;;GAIG;AACH,eAAO,MAAM,eAAe,EAAE,eAQ7B,CAAA;AAED;;;;GAIG;AACH,eAAO,MAAM,kBAAkB,EAAE,eAKhC,CAAA;AAED;;;;GAIG;AACH,eAAO,MAAM,kBAAkB,EAAE,eAKhC,CAAA;AAED;;;;GAIG;AACH,eAAO,MAAM,mBAAmB,EAAE,eAKjC,CAAA;AAED;;;;GAIG;AACH,eAAO,MAAM,kBAAkB,EAAE,eAKhC,CAAA;AAED;;;;GAIG;AACH,eAAO,MAAM,qBAAqB,EAAE,eAKnC,CAAA;AAED;;;;GAIG;AACH,eAAO,MAAM,kBAAkB,EAAE,eAKhC,CAAA;AAED;;;;GAIG;AACH,eAAO,MAAM,mBAAmB,EAAE,eAKjC,CAAA;AAMD;;;;GAIG;AACH,eAAO,MAAM,uBAAuB,EAAE,eAKrC,CAAA;AAED;;;;GAIG;AACH,eAAO,MAAM,sBAAsB,EAAE,eAKpC,CAAA;AAED;;;;GAIG;AACH,eAAO,MAAM,oBAAoB,EAAE,eAKlC,CAAA;AAED;;;;GAIG;AACH,eAAO,MAAM,mBAAmB,EAAE,eAOjC,CAAA;AAED;;;;GAIG;AACH,eAAO,MAAM,gBAAgB,EAAE,eAO9B,CAAA;AAED;;;;GAIG;AACH,eAAO,MAAM,iBAAiB,EAAE,eAqB/B,CAAA;AAED;;;;GAIG;AACH,eAAO,MAAM,iBAAiB,EAAE,eAK/B,CAAA;AAMD;;GAEG;AACH,eAAO,MAAM,gBAAgB,EAAE,SAAS,eAAe,EA8B7C,CAAA;AAEV;;;;;GAKG;AACH,wBAAgB,oBAAoB,CAAC,SAAS,EAAE,MAAM,GAAG,SAAS,eAAe,EAAE,CAElF;AAED;;;;;GAKG;AACH,wBAAgB,cAAc,CAAC,QAAQ,EAAE,eAAe,CAAC,MAAM,CAAC,GAAG,SAAS,eAAe,EAAE,CAE5F;AAOD,8CAA8C;AAC9C,eAAO,MAAM,qBAAqB,aAA+D,CAAA;AAEjG,8CAA8C;AAC9C,eAAO,MAAM,qBAAqB,aAA+D,CAAA"}
|
|
@@ -0,0 +1,391 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Composition Rules
|
|
3
|
+
*
|
|
4
|
+
* CP7: Rules defining valid block compositions
|
|
5
|
+
*
|
|
6
|
+
* @module @pwfabric/core/blocks/composition-rules
|
|
7
|
+
*/
|
|
8
|
+
import { MAX_NESTING_DEPTH } from '@pwfabric/core';
|
|
9
|
+
// ============================================================
|
|
10
|
+
// BUILT-IN RULES
|
|
11
|
+
// ============================================================
|
|
12
|
+
/**
|
|
13
|
+
* Maximum nesting depth rule
|
|
14
|
+
*
|
|
15
|
+
* Prevents blocks from being nested too deeply.
|
|
16
|
+
*/
|
|
17
|
+
export const maxDepthRule = {
|
|
18
|
+
type: 'max_depth',
|
|
19
|
+
description: `Blocks cannot be nested more than ${MAX_NESTING_DEPTH} levels deep`,
|
|
20
|
+
appliesTo: '*',
|
|
21
|
+
config: {
|
|
22
|
+
maxDepth: MAX_NESTING_DEPTH,
|
|
23
|
+
},
|
|
24
|
+
};
|
|
25
|
+
/**
|
|
26
|
+
* Form children rule
|
|
27
|
+
*
|
|
28
|
+
* Forms can contain all form input elements plus structural/content blocks.
|
|
29
|
+
*/
|
|
30
|
+
export const formChildrenRule = {
|
|
31
|
+
type: 'allowed_children',
|
|
32
|
+
description: 'Forms can contain form input elements and structural/content blocks (text, heading, container, divider, button)',
|
|
33
|
+
appliesTo: 'form',
|
|
34
|
+
config: {
|
|
35
|
+
allowedChildren: [
|
|
36
|
+
// Form input elements — the form family of the first-party base pack as
|
|
37
|
+
// shipped, so every field a form pattern uses passes validation.
|
|
38
|
+
'input',
|
|
39
|
+
'textarea',
|
|
40
|
+
'select',
|
|
41
|
+
'checkbox',
|
|
42
|
+
'radio',
|
|
43
|
+
'toggle',
|
|
44
|
+
'slider',
|
|
45
|
+
'combobox',
|
|
46
|
+
'date-input',
|
|
47
|
+
'file-dropzone',
|
|
48
|
+
'number-stepper',
|
|
49
|
+
'otp-input',
|
|
50
|
+
'rich-text-editor',
|
|
51
|
+
'segmented-control',
|
|
52
|
+
'tag-input',
|
|
53
|
+
// legacy names kept so older documents keep validating
|
|
54
|
+
'switch',
|
|
55
|
+
'file-upload',
|
|
56
|
+
// Structural / content blocks valid inside forms
|
|
57
|
+
'button',
|
|
58
|
+
'text',
|
|
59
|
+
'heading',
|
|
60
|
+
'container',
|
|
61
|
+
'divider',
|
|
62
|
+
'badge',
|
|
63
|
+
'icon',
|
|
64
|
+
'link',
|
|
65
|
+
'alert',
|
|
66
|
+
],
|
|
67
|
+
},
|
|
68
|
+
};
|
|
69
|
+
/**
|
|
70
|
+
* Grid children rule
|
|
71
|
+
*
|
|
72
|
+
* Grids cannot have nested grids as direct children.
|
|
73
|
+
*/
|
|
74
|
+
export const gridChildrenRule = {
|
|
75
|
+
type: 'allowed_children',
|
|
76
|
+
description: 'Grids cannot contain other grids as direct children',
|
|
77
|
+
appliesTo: 'grid',
|
|
78
|
+
config: {
|
|
79
|
+
disallowedChildren: ['grid'],
|
|
80
|
+
},
|
|
81
|
+
};
|
|
82
|
+
/**
|
|
83
|
+
* Button no children rule
|
|
84
|
+
*
|
|
85
|
+
* Buttons cannot have children.
|
|
86
|
+
*/
|
|
87
|
+
export const buttonNoChildrenRule = {
|
|
88
|
+
type: 'no_children',
|
|
89
|
+
description: 'Buttons cannot have children',
|
|
90
|
+
appliesTo: 'button',
|
|
91
|
+
config: {},
|
|
92
|
+
};
|
|
93
|
+
/**
|
|
94
|
+
* Text no children rule
|
|
95
|
+
*
|
|
96
|
+
* Text blocks cannot have children.
|
|
97
|
+
*/
|
|
98
|
+
export const textNoChildrenRule = {
|
|
99
|
+
type: 'no_children',
|
|
100
|
+
description: 'Text blocks cannot have children',
|
|
101
|
+
appliesTo: 'text',
|
|
102
|
+
config: {},
|
|
103
|
+
};
|
|
104
|
+
/**
|
|
105
|
+
* Heading no children rule
|
|
106
|
+
*
|
|
107
|
+
* Heading blocks cannot have children.
|
|
108
|
+
*/
|
|
109
|
+
export const headingNoChildrenRule = {
|
|
110
|
+
type: 'no_children',
|
|
111
|
+
description: 'Heading blocks cannot have children',
|
|
112
|
+
appliesTo: 'heading',
|
|
113
|
+
config: {},
|
|
114
|
+
};
|
|
115
|
+
/**
|
|
116
|
+
* Image no children rule
|
|
117
|
+
*
|
|
118
|
+
* Image blocks cannot have children.
|
|
119
|
+
*/
|
|
120
|
+
export const imageNoChildrenRule = {
|
|
121
|
+
type: 'no_children',
|
|
122
|
+
description: 'Image blocks cannot have children',
|
|
123
|
+
appliesTo: 'image',
|
|
124
|
+
config: {},
|
|
125
|
+
};
|
|
126
|
+
/**
|
|
127
|
+
* Input no children rule
|
|
128
|
+
*
|
|
129
|
+
* Input blocks cannot have children.
|
|
130
|
+
*/
|
|
131
|
+
export const inputNoChildrenRule = {
|
|
132
|
+
type: 'no_children',
|
|
133
|
+
description: 'Input blocks cannot have children',
|
|
134
|
+
appliesTo: 'input',
|
|
135
|
+
config: {},
|
|
136
|
+
};
|
|
137
|
+
/**
|
|
138
|
+
* Input required parent rule
|
|
139
|
+
*
|
|
140
|
+
* Inputs should be inside forms or containers.
|
|
141
|
+
*/
|
|
142
|
+
export const inputParentRule = {
|
|
143
|
+
type: 'allowed_parents',
|
|
144
|
+
description: 'Inputs should be placed inside forms or containers',
|
|
145
|
+
appliesTo: 'input',
|
|
146
|
+
config: {
|
|
147
|
+
allowedParents: ['form', 'container'],
|
|
148
|
+
severity: 'warning',
|
|
149
|
+
},
|
|
150
|
+
};
|
|
151
|
+
/**
|
|
152
|
+
* Link no children rule
|
|
153
|
+
*
|
|
154
|
+
* Link blocks cannot have children.
|
|
155
|
+
*/
|
|
156
|
+
export const linkNoChildrenRule = {
|
|
157
|
+
type: 'no_children',
|
|
158
|
+
description: 'Link blocks cannot have children',
|
|
159
|
+
appliesTo: 'link',
|
|
160
|
+
config: {},
|
|
161
|
+
};
|
|
162
|
+
/**
|
|
163
|
+
* Icon no children rule
|
|
164
|
+
*
|
|
165
|
+
* Icon blocks cannot have children.
|
|
166
|
+
*/
|
|
167
|
+
export const iconNoChildrenRule = {
|
|
168
|
+
type: 'no_children',
|
|
169
|
+
description: 'Icon blocks cannot have children',
|
|
170
|
+
appliesTo: 'icon',
|
|
171
|
+
config: {},
|
|
172
|
+
};
|
|
173
|
+
/**
|
|
174
|
+
* Badge no children rule
|
|
175
|
+
*
|
|
176
|
+
* Badge blocks cannot have children.
|
|
177
|
+
*/
|
|
178
|
+
export const badgeNoChildrenRule = {
|
|
179
|
+
type: 'no_children',
|
|
180
|
+
description: 'Badge blocks cannot have children',
|
|
181
|
+
appliesTo: 'badge',
|
|
182
|
+
config: {},
|
|
183
|
+
};
|
|
184
|
+
/**
|
|
185
|
+
* Code no children rule
|
|
186
|
+
*
|
|
187
|
+
* Code blocks cannot have children.
|
|
188
|
+
*/
|
|
189
|
+
export const codeNoChildrenRule = {
|
|
190
|
+
type: 'no_children',
|
|
191
|
+
description: 'Code blocks cannot have children',
|
|
192
|
+
appliesTo: 'code',
|
|
193
|
+
config: {},
|
|
194
|
+
};
|
|
195
|
+
/**
|
|
196
|
+
* Divider no children rule
|
|
197
|
+
*
|
|
198
|
+
* Divider blocks cannot have children.
|
|
199
|
+
*/
|
|
200
|
+
export const dividerNoChildrenRule = {
|
|
201
|
+
type: 'no_children',
|
|
202
|
+
description: 'Divider blocks cannot have children',
|
|
203
|
+
appliesTo: 'divider',
|
|
204
|
+
config: {},
|
|
205
|
+
};
|
|
206
|
+
/**
|
|
207
|
+
* List no children rule
|
|
208
|
+
*
|
|
209
|
+
* List blocks cannot have children.
|
|
210
|
+
*/
|
|
211
|
+
export const listNoChildrenRule = {
|
|
212
|
+
type: 'no_children',
|
|
213
|
+
description: 'List blocks cannot have children',
|
|
214
|
+
appliesTo: 'list',
|
|
215
|
+
config: {},
|
|
216
|
+
};
|
|
217
|
+
/**
|
|
218
|
+
* Table no children rule
|
|
219
|
+
*
|
|
220
|
+
* Table blocks cannot have children.
|
|
221
|
+
*/
|
|
222
|
+
export const tableNoChildrenRule = {
|
|
223
|
+
type: 'no_children',
|
|
224
|
+
description: 'Table blocks cannot have children',
|
|
225
|
+
appliesTo: 'table',
|
|
226
|
+
config: {},
|
|
227
|
+
};
|
|
228
|
+
// ============================================================
|
|
229
|
+
// INTERACTIVE BLOCK RULES
|
|
230
|
+
// ============================================================
|
|
231
|
+
/**
|
|
232
|
+
* Accordion no children rule
|
|
233
|
+
*
|
|
234
|
+
* Accordion items are defined via props, not children.
|
|
235
|
+
*/
|
|
236
|
+
export const accordionNoChildrenRule = {
|
|
237
|
+
type: 'no_children',
|
|
238
|
+
description: 'Accordion items are defined via props, not as children blocks',
|
|
239
|
+
appliesTo: 'accordion',
|
|
240
|
+
config: {},
|
|
241
|
+
};
|
|
242
|
+
/**
|
|
243
|
+
* Dropdown no children rule
|
|
244
|
+
*
|
|
245
|
+
* Dropdown items are defined via props, not children.
|
|
246
|
+
*/
|
|
247
|
+
export const dropdownNoChildrenRule = {
|
|
248
|
+
type: 'no_children',
|
|
249
|
+
description: 'Dropdown items are defined via props, not as children blocks',
|
|
250
|
+
appliesTo: 'dropdown',
|
|
251
|
+
config: {},
|
|
252
|
+
};
|
|
253
|
+
/**
|
|
254
|
+
* Avatar no children rule
|
|
255
|
+
*
|
|
256
|
+
* Avatar is a leaf block with no children.
|
|
257
|
+
*/
|
|
258
|
+
export const avatarNoChildrenRule = {
|
|
259
|
+
type: 'no_children',
|
|
260
|
+
description: 'Avatar blocks cannot have children',
|
|
261
|
+
appliesTo: 'avatar',
|
|
262
|
+
config: {},
|
|
263
|
+
};
|
|
264
|
+
/**
|
|
265
|
+
* Tooltip children rule
|
|
266
|
+
*
|
|
267
|
+
* Tooltip can wrap specific inline/interactive blocks.
|
|
268
|
+
*/
|
|
269
|
+
export const tooltipChildrenRule = {
|
|
270
|
+
type: 'allowed_children',
|
|
271
|
+
description: 'Tooltips can only wrap text, buttons, icons, badges, and links',
|
|
272
|
+
appliesTo: 'tooltip',
|
|
273
|
+
config: {
|
|
274
|
+
allowedChildren: ['text', 'button', 'icon', 'badge', 'link'],
|
|
275
|
+
},
|
|
276
|
+
};
|
|
277
|
+
/**
|
|
278
|
+
* Tabs children rule
|
|
279
|
+
*
|
|
280
|
+
* Tabs can contain containers as tab panels.
|
|
281
|
+
*/
|
|
282
|
+
export const tabsChildrenRule = {
|
|
283
|
+
type: 'allowed_children',
|
|
284
|
+
description: 'Tabs can only contain containers as tab panel content',
|
|
285
|
+
appliesTo: 'tabs',
|
|
286
|
+
config: {
|
|
287
|
+
allowedChildren: ['container'],
|
|
288
|
+
},
|
|
289
|
+
};
|
|
290
|
+
/**
|
|
291
|
+
* Modal children rule
|
|
292
|
+
*
|
|
293
|
+
* Modal can contain layout and content blocks.
|
|
294
|
+
*/
|
|
295
|
+
export const modalChildrenRule = {
|
|
296
|
+
type: 'allowed_children',
|
|
297
|
+
description: 'Modals can contain layout and content blocks',
|
|
298
|
+
appliesTo: 'modal',
|
|
299
|
+
config: {
|
|
300
|
+
allowedChildren: [
|
|
301
|
+
'container',
|
|
302
|
+
'grid',
|
|
303
|
+
'text',
|
|
304
|
+
'heading',
|
|
305
|
+
'button',
|
|
306
|
+
'image',
|
|
307
|
+
'form',
|
|
308
|
+
'input',
|
|
309
|
+
'list',
|
|
310
|
+
'table',
|
|
311
|
+
'divider',
|
|
312
|
+
'icon',
|
|
313
|
+
'badge',
|
|
314
|
+
],
|
|
315
|
+
},
|
|
316
|
+
};
|
|
317
|
+
/**
|
|
318
|
+
* No self nesting rule
|
|
319
|
+
*
|
|
320
|
+
* Blocks cannot be nested inside themselves.
|
|
321
|
+
*/
|
|
322
|
+
export const noSelfNestingRule = {
|
|
323
|
+
type: 'no_self_nesting',
|
|
324
|
+
description: 'Blocks cannot be nested inside themselves',
|
|
325
|
+
appliesTo: '*',
|
|
326
|
+
config: {},
|
|
327
|
+
};
|
|
328
|
+
// ============================================================
|
|
329
|
+
// ALL RULES
|
|
330
|
+
// ============================================================
|
|
331
|
+
/**
|
|
332
|
+
* All composition rules
|
|
333
|
+
*/
|
|
334
|
+
export const compositionRules = [
|
|
335
|
+
maxDepthRule,
|
|
336
|
+
formChildrenRule,
|
|
337
|
+
gridChildrenRule,
|
|
338
|
+
// Content blocks - no children
|
|
339
|
+
buttonNoChildrenRule,
|
|
340
|
+
textNoChildrenRule,
|
|
341
|
+
headingNoChildrenRule,
|
|
342
|
+
linkNoChildrenRule,
|
|
343
|
+
iconNoChildrenRule,
|
|
344
|
+
badgeNoChildrenRule,
|
|
345
|
+
codeNoChildrenRule,
|
|
346
|
+
dividerNoChildrenRule,
|
|
347
|
+
// Layout blocks - no children (leaf)
|
|
348
|
+
listNoChildrenRule,
|
|
349
|
+
tableNoChildrenRule,
|
|
350
|
+
// Media blocks - no children
|
|
351
|
+
imageNoChildrenRule,
|
|
352
|
+
// Form blocks - no children
|
|
353
|
+
inputNoChildrenRule,
|
|
354
|
+
inputParentRule,
|
|
355
|
+
// Interactive blocks
|
|
356
|
+
accordionNoChildrenRule,
|
|
357
|
+
dropdownNoChildrenRule,
|
|
358
|
+
avatarNoChildrenRule,
|
|
359
|
+
tooltipChildrenRule,
|
|
360
|
+
tabsChildrenRule,
|
|
361
|
+
modalChildrenRule,
|
|
362
|
+
// Universal rules
|
|
363
|
+
noSelfNestingRule,
|
|
364
|
+
];
|
|
365
|
+
/**
|
|
366
|
+
* Get rules that apply to a specific block type
|
|
367
|
+
*
|
|
368
|
+
* @param blockType - Block type to get rules for
|
|
369
|
+
* @returns Array of applicable rules
|
|
370
|
+
*/
|
|
371
|
+
export function getRulesForBlockType(blockType) {
|
|
372
|
+
return compositionRules.filter((rule) => rule.appliesTo === '*' || rule.appliesTo === blockType);
|
|
373
|
+
}
|
|
374
|
+
/**
|
|
375
|
+
* Get rules by type
|
|
376
|
+
*
|
|
377
|
+
* @param ruleType - Rule type to filter by
|
|
378
|
+
* @returns Array of matching rules
|
|
379
|
+
*/
|
|
380
|
+
export function getRulesByType(ruleType) {
|
|
381
|
+
return compositionRules.filter((rule) => rule.type === ruleType);
|
|
382
|
+
}
|
|
383
|
+
// ============================================================
|
|
384
|
+
// CANONICAL CHILD SETS (single source of truth)
|
|
385
|
+
// Import these in API validator instead of redeclaring.
|
|
386
|
+
// ============================================================
|
|
387
|
+
/** Allowed direct children of a tabs block */
|
|
388
|
+
export const TABS_ALLOWED_CHILDREN = new Set(tabsChildrenRule.config.allowedChildren);
|
|
389
|
+
/** Allowed direct children of a form block */
|
|
390
|
+
export const FORM_ALLOWED_CHILDREN = new Set(formChildrenRule.config.allowedChildren);
|
|
391
|
+
//# sourceMappingURL=composition-rules.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"composition-rules.js","sourceRoot":"","sources":["../../src/blocks/composition-rules.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Block Component Hooks
|
|
3
|
+
*
|
|
4
|
+
* React hooks used by block components for event emission and surface ID access.
|
|
5
|
+
*
|
|
6
|
+
* @module @pwfabric/runtime/blocks/hooks
|
|
7
|
+
*/
|
|
8
|
+
import type { SurfaceEventDescriptor } from '@pwfabric/contracts';
|
|
9
|
+
/**
|
|
10
|
+
* Hook for block components to emit surface events.
|
|
11
|
+
*
|
|
12
|
+
* When the context is absent (no bus provided by the surface renderer)
|
|
13
|
+
* the hook returns a no-op `emit` so callers need no guard code.
|
|
14
|
+
*
|
|
15
|
+
* @example
|
|
16
|
+
* ```tsx
|
|
17
|
+
* const { emit } = useSurfaceEvents()
|
|
18
|
+
*
|
|
19
|
+
* const handleClick = () => {
|
|
20
|
+
* emit({ type: SURFACE_EVENTS.BLOCK_CLICK, surfaceId, blockId: block.id })
|
|
21
|
+
* }
|
|
22
|
+
* ```
|
|
23
|
+
*/
|
|
24
|
+
export declare function useSurfaceEvents(): {
|
|
25
|
+
emit: (partial: Omit<SurfaceEventDescriptor, 'timestamp'>) => void;
|
|
26
|
+
};
|
|
27
|
+
/**
|
|
28
|
+
* Hook that returns the current surface ID from `SurfaceIdContext`.
|
|
29
|
+
* Returns an empty string when no `BehaviorSurfaceProvider` is in the tree.
|
|
30
|
+
*/
|
|
31
|
+
export declare function useSurfaceId(): string;
|
|
32
|
+
//# sourceMappingURL=hooks.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"hooks.d.ts","sourceRoot":"","sources":["../../src/blocks/hooks.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAGH,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,qBAAqB,CAAA;AAIjE;;;;;;;;;;;;;;GAcG;AACH,wBAAgB,gBAAgB,IAAI;IAClC,IAAI,EAAE,CAAC,OAAO,EAAE,IAAI,CAAC,sBAAsB,EAAE,WAAW,CAAC,KAAK,IAAI,CAAA;CACnE,CASA;AAED;;;GAGG;AACH,wBAAgB,YAAY,IAAI,MAAM,CAErC"}
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Block Component Hooks
|
|
3
|
+
*
|
|
4
|
+
* React hooks used by block components for event emission and surface ID access.
|
|
5
|
+
*
|
|
6
|
+
* @module @pwfabric/runtime/blocks/hooks
|
|
7
|
+
*/
|
|
8
|
+
import { useContext } from 'react';
|
|
9
|
+
import { SurfaceEventContext } from './surface-event-context.js';
|
|
10
|
+
import { SurfaceIdContext } from './surface-id-context.js';
|
|
11
|
+
/**
|
|
12
|
+
* Hook for block components to emit surface events.
|
|
13
|
+
*
|
|
14
|
+
* When the context is absent (no bus provided by the surface renderer)
|
|
15
|
+
* the hook returns a no-op `emit` so callers need no guard code.
|
|
16
|
+
*
|
|
17
|
+
* @example
|
|
18
|
+
* ```tsx
|
|
19
|
+
* const { emit } = useSurfaceEvents()
|
|
20
|
+
*
|
|
21
|
+
* const handleClick = () => {
|
|
22
|
+
* emit({ type: SURFACE_EVENTS.BLOCK_CLICK, surfaceId, blockId: block.id })
|
|
23
|
+
* }
|
|
24
|
+
* ```
|
|
25
|
+
*/
|
|
26
|
+
export function useSurfaceEvents() {
|
|
27
|
+
const bus = useContext(SurfaceEventContext);
|
|
28
|
+
const emit = (partial) => {
|
|
29
|
+
if (!bus)
|
|
30
|
+
return;
|
|
31
|
+
bus.emit({ ...partial, timestamp: Date.now() });
|
|
32
|
+
};
|
|
33
|
+
return { emit };
|
|
34
|
+
}
|
|
35
|
+
/**
|
|
36
|
+
* Hook that returns the current surface ID from `SurfaceIdContext`.
|
|
37
|
+
* Returns an empty string when no `BehaviorSurfaceProvider` is in the tree.
|
|
38
|
+
*/
|
|
39
|
+
export function useSurfaceId() {
|
|
40
|
+
return useContext(SurfaceIdContext);
|
|
41
|
+
}
|
|
42
|
+
//# sourceMappingURL=hooks.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"hooks.js","sourceRoot":"","sources":["../../src/blocks/hooks.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,EAAE,UAAU,EAAE,MAAM,OAAO,CAAA;AAElC,OAAO,EAAE,mBAAmB,EAAE,MAAM,4BAA4B,CAAA;AAChE,OAAO,EAAE,gBAAgB,EAAE,MAAM,yBAAyB,CAAA;AAE1D;;;;;;;;;;;;;;GAcG;AACH,MAAM,UAAU,gBAAgB;IAG9B,MAAM,GAAG,GAAG,UAAU,CAAC,mBAAmB,CAAC,CAAA;IAE3C,MAAM,IAAI,GAAG,CAAC,OAAkD,EAAQ,EAAE;QACxE,IAAI,CAAC,GAAG;YAAE,OAAM;QAChB,GAAG,CAAC,IAAI,CAAC,EAAE,GAAG,OAAO,EAAE,SAAS,EAAE,IAAI,CAAC,GAAG,EAAE,EAAE,CAAC,CAAA;IACjD,CAAC,CAAA;IAED,OAAO,EAAE,IAAI,EAAE,CAAA;AACjB,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,YAAY;IAC1B,OAAO,UAAU,CAAC,gBAAgB,CAAC,CAAA;AACrC,CAAC"}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @pwfabric/runtime/blocks
|
|
3
|
+
*
|
|
4
|
+
* Core UI block schemas, definitions, and React components for the PWFabric platform.
|
|
5
|
+
*
|
|
6
|
+
* @module @pwfabric/runtime/blocks
|
|
7
|
+
*/
|
|
8
|
+
export * from './registry.js';
|
|
9
|
+
export * from './composition-rules.js';
|
|
10
|
+
export * from './rule-engine.js';
|
|
11
|
+
export * from './component-types.js';
|
|
12
|
+
export { SurfaceEventContext } from './surface-event-context.js';
|
|
13
|
+
export { SurfaceIdContext } from './surface-id-context.js';
|
|
14
|
+
export { useSurfaceEvents, useSurfaceId } from './hooks.js';
|
|
15
|
+
export { populateTestBlocks, TEST_BLOCK_DEFINITIONS } from './__test-fixtures__/block-fixtures.js';
|
|
16
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/blocks/index.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAKH,cAAc,eAAe,CAAA;AAC7B,cAAc,wBAAwB,CAAA;AACtC,cAAc,kBAAkB,CAAA;AAChC,cAAc,sBAAsB,CAAA;AACpC,OAAO,EAAE,mBAAmB,EAAE,MAAM,4BAA4B,CAAA;AAChE,OAAO,EAAE,gBAAgB,EAAE,MAAM,yBAAyB,CAAA;AAC1D,OAAO,EAAE,gBAAgB,EAAE,YAAY,EAAE,MAAM,YAAY,CAAA;AAO3D,OAAO,EAAE,kBAAkB,EAAE,sBAAsB,EAAE,MAAM,uCAAuC,CAAA"}
|