@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,37 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Entity Facade React Context
|
|
3
|
+
*
|
|
4
|
+
* Provides EntityFacade to the surface render tree via React
|
|
5
|
+
* context. Pattern mirrors SurfaceRoutingContext / useSurfaceRouting().
|
|
6
|
+
*
|
|
7
|
+
* Injection point: EntityFacadeContext.Provider wraps BehaviorSurfaceProvider
|
|
8
|
+
* inside SurfaceRenderer when entityFacade prop is supplied.
|
|
9
|
+
*
|
|
10
|
+
* @module @pwfabric/runtime/render/entity-facade-context
|
|
11
|
+
*/
|
|
12
|
+
import { createContext, useContext } from 'react';
|
|
13
|
+
/**
|
|
14
|
+
* React context that carries an EntityFacade instance through the render tree.
|
|
15
|
+
* Defaults to null — blocks that require entity access check for null and
|
|
16
|
+
* gracefully handle the absent-facade case.
|
|
17
|
+
*/
|
|
18
|
+
export const EntityFacadeContext = createContext(null);
|
|
19
|
+
/**
|
|
20
|
+
* Returns the EntityFacade from the nearest EntityFacadeContext.Provider.
|
|
21
|
+
* Returns null when no provider is present (entity support not configured).
|
|
22
|
+
*
|
|
23
|
+
* @example
|
|
24
|
+
* ```tsx
|
|
25
|
+
* import { useEntityFacade } from '@pwfabric/runtime/render'
|
|
26
|
+
*
|
|
27
|
+
* function MyBlock() {
|
|
28
|
+
* const facade = useEntityFacade()
|
|
29
|
+
* if (!facade) return null // No entity support configured
|
|
30
|
+
* const result = await facade.store.query('Employee', {})
|
|
31
|
+
* }
|
|
32
|
+
* ```
|
|
33
|
+
*/
|
|
34
|
+
export function useEntityFacade() {
|
|
35
|
+
return useContext(EntityFacadeContext);
|
|
36
|
+
}
|
|
37
|
+
//# sourceMappingURL=entity-facade-context.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"entity-facade-context.js","sourceRoot":"","sources":["../../src/render/entity-facade-context.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAEH,OAAO,EAAE,aAAa,EAAE,UAAU,EAAE,MAAM,OAAO,CAAA;AAGjD;;;;GAIG;AACH,MAAM,CAAC,MAAM,mBAAmB,GAAG,aAAa,CAAsB,IAAI,CAAC,CAAA;AAE3E;;;;;;;;;;;;;;GAcG;AACH,MAAM,UAAU,eAAe;IAC7B,OAAO,UAAU,CAAC,mBAAmB,CAAC,CAAA;AACxC,CAAC"}
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Group-hover scoped CSS generation (Tailwind `group` + `group-hover:`).
|
|
3
|
+
*
|
|
4
|
+
* A parent container marked `groupRoot: true` is a hover SOURCE: hovering it
|
|
5
|
+
* restyles descendants that declare `groupStates.hover`. `block.style` is inline
|
|
6
|
+
* and can express neither the ancestor `:hover` nor the descendant relationship,
|
|
7
|
+
* so the runtime emits a scoped descendant rule keyed by BOTH block ids:
|
|
8
|
+
*
|
|
9
|
+
* `[data-pw-surface] [data-block-id="<rootId>"]:hover [data-block-id="<thisId>"]{ … }`
|
|
10
|
+
*
|
|
11
|
+
* The host element already rendered for every block (`data-block-id`) is
|
|
12
|
+
* sufficient on both ends — no extra attribute is needed. Keys are CSS camelCase
|
|
13
|
+
* property names (converted to kebab-case); declarations are emitted with
|
|
14
|
+
* `!important` because a block COMPONENT often applies the same property inline
|
|
15
|
+
* with its own default and inline beats any plain stylesheet rule. Scoped to the
|
|
16
|
+
* one descendant under the one root.
|
|
17
|
+
*
|
|
18
|
+
* Only the NEAREST ancestor with `groupRoot:true` drives a block's
|
|
19
|
+
* `groupStates`; a block with `groupStates.hover` but no `groupRoot` ancestor
|
|
20
|
+
* emits zero bytes. Surfaces using no `groupStates` emit zero bytes so existing
|
|
21
|
+
* surfaces are byte-identical.
|
|
22
|
+
*
|
|
23
|
+
* @module @pwfabric/runtime/render/group-states-css
|
|
24
|
+
*/
|
|
25
|
+
import type { Block } from '@pwfabric/core';
|
|
26
|
+
/**
|
|
27
|
+
* Emit the scoped group-hover rule for a single descendant block, given the id
|
|
28
|
+
* of the nearest `groupRoot` ancestor. Targets
|
|
29
|
+
* `[data-block-id="<rootId>"]:hover [data-block-id="<thisId>"]` scoped under the
|
|
30
|
+
* surface root. Returns '' when the descendant declares no non-empty
|
|
31
|
+
* `groupStates.hover` record.
|
|
32
|
+
*/
|
|
33
|
+
export declare function blockGroupStatesCss(rootId: string, thisId: string, groupStates: NonNullable<Block['groupStates']>, surfaceId?: string): string;
|
|
34
|
+
/**
|
|
35
|
+
* Walk a surface block tree tracking the nearest ancestor marked
|
|
36
|
+
* `groupRoot: true`; for each block declaring `groupStates.hover` UNDER such an
|
|
37
|
+
* ancestor, concatenate its scoped group-hover CSS. Blocks with `groupStates`
|
|
38
|
+
* but no `groupRoot` ancestor — and surfaces with no `groupStates` at all —
|
|
39
|
+
* emit zero bytes (existing surfaces byte-identical).
|
|
40
|
+
*/
|
|
41
|
+
export declare function collectGroupStatesCss(blocks: readonly Block[], surfaceId?: string): string;
|
|
42
|
+
//# sourceMappingURL=group-states-css.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"group-states-css.d.ts","sourceRoot":"","sources":["../../src/render/group-states-css.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AAEH,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,gBAAgB,CAAA;AAU3C;;;;;;GAMG;AACH,wBAAgB,mBAAmB,CACjC,MAAM,EAAE,MAAM,EACd,MAAM,EAAE,MAAM,EACd,WAAW,EAAE,WAAW,CAAC,KAAK,CAAC,aAAa,CAAC,CAAC,EAC9C,SAAS,CAAC,EAAE,MAAM,GACjB,MAAM,CAOR;AAED;;;;;;GAMG;AACH,wBAAgB,qBAAqB,CAAC,MAAM,EAAE,SAAS,KAAK,EAAE,EAAE,SAAS,CAAC,EAAE,MAAM,GAAG,MAAM,CAe1F"}
|
|
@@ -0,0 +1,73 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Group-hover scoped CSS generation (Tailwind `group` + `group-hover:`).
|
|
3
|
+
*
|
|
4
|
+
* A parent container marked `groupRoot: true` is a hover SOURCE: hovering it
|
|
5
|
+
* restyles descendants that declare `groupStates.hover`. `block.style` is inline
|
|
6
|
+
* and can express neither the ancestor `:hover` nor the descendant relationship,
|
|
7
|
+
* so the runtime emits a scoped descendant rule keyed by BOTH block ids:
|
|
8
|
+
*
|
|
9
|
+
* `[data-pw-surface] [data-block-id="<rootId>"]:hover [data-block-id="<thisId>"]{ … }`
|
|
10
|
+
*
|
|
11
|
+
* The host element already rendered for every block (`data-block-id`) is
|
|
12
|
+
* sufficient on both ends — no extra attribute is needed. Keys are CSS camelCase
|
|
13
|
+
* property names (converted to kebab-case); declarations are emitted with
|
|
14
|
+
* `!important` because a block COMPONENT often applies the same property inline
|
|
15
|
+
* with its own default and inline beats any plain stylesheet rule. Scoped to the
|
|
16
|
+
* one descendant under the one root.
|
|
17
|
+
*
|
|
18
|
+
* Only the NEAREST ancestor with `groupRoot:true` drives a block's
|
|
19
|
+
* `groupStates`; a block with `groupStates.hover` but no `groupRoot` ancestor
|
|
20
|
+
* emits zero bytes. Surfaces using no `groupStates` emit zero bytes so existing
|
|
21
|
+
* surfaces are byte-identical.
|
|
22
|
+
*
|
|
23
|
+
* @module @pwfabric/runtime/render/group-states-css
|
|
24
|
+
*/
|
|
25
|
+
import { blockIdAttr, blockSelector, camelToKebab } from './scoped-css.js';
|
|
26
|
+
/** Serialize a camelCase decl record to `prop:value !important;…` (values pass through). */
|
|
27
|
+
function declsToCss(decls) {
|
|
28
|
+
return Object.entries(decls)
|
|
29
|
+
.map(([prop, value]) => `${camelToKebab(prop)}:${value} !important`)
|
|
30
|
+
.join(';');
|
|
31
|
+
}
|
|
32
|
+
/**
|
|
33
|
+
* Emit the scoped group-hover rule for a single descendant block, given the id
|
|
34
|
+
* of the nearest `groupRoot` ancestor. Targets
|
|
35
|
+
* `[data-block-id="<rootId>"]:hover [data-block-id="<thisId>"]` scoped under the
|
|
36
|
+
* surface root. Returns '' when the descendant declares no non-empty
|
|
37
|
+
* `groupStates.hover` record.
|
|
38
|
+
*/
|
|
39
|
+
export function blockGroupStatesCss(rootId, thisId, groupStates, surfaceId) {
|
|
40
|
+
const decls = groupStates.hover;
|
|
41
|
+
if (!decls || Object.keys(decls).length === 0)
|
|
42
|
+
return '';
|
|
43
|
+
// `blockSelector(rootId)` already includes the `[data-pw-surface]` prefix; the
|
|
44
|
+
// descendant half is just the bare `[data-block-id]` attribute selector (the
|
|
45
|
+
// shared surface scope is carried by the root half).
|
|
46
|
+
return `${blockSelector(rootId, surfaceId)}:hover ${blockIdAttr(thisId)}{${declsToCss(decls)}}`;
|
|
47
|
+
}
|
|
48
|
+
/**
|
|
49
|
+
* Walk a surface block tree tracking the nearest ancestor marked
|
|
50
|
+
* `groupRoot: true`; for each block declaring `groupStates.hover` UNDER such an
|
|
51
|
+
* ancestor, concatenate its scoped group-hover CSS. Blocks with `groupStates`
|
|
52
|
+
* but no `groupRoot` ancestor — and surfaces with no `groupStates` at all —
|
|
53
|
+
* emit zero bytes (existing surfaces byte-identical).
|
|
54
|
+
*/
|
|
55
|
+
export function collectGroupStatesCss(blocks, surfaceId) {
|
|
56
|
+
let css = '';
|
|
57
|
+
const walk = (block, nearestRootId) => {
|
|
58
|
+
if (block.groupStates && nearestRootId !== undefined) {
|
|
59
|
+
css += blockGroupStatesCss(nearestRootId, block.id, block.groupStates, surfaceId);
|
|
60
|
+
}
|
|
61
|
+
// This block becomes the nearest root for its own descendants when it is a
|
|
62
|
+
// group root (innermost groupRoot wins).
|
|
63
|
+
const rootForChildren = block.groupRoot ? block.id : nearestRootId;
|
|
64
|
+
if (block.children) {
|
|
65
|
+
for (const child of block.children)
|
|
66
|
+
walk(child, rootForChildren);
|
|
67
|
+
}
|
|
68
|
+
};
|
|
69
|
+
for (const block of blocks)
|
|
70
|
+
walk(block, undefined);
|
|
71
|
+
return css;
|
|
72
|
+
}
|
|
73
|
+
//# sourceMappingURL=group-states-css.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"group-states-css.js","sourceRoot":"","sources":["../../src/render/group-states-css.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AAGH,OAAO,EAAE,WAAW,EAAE,aAAa,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAA;AAE1E,4FAA4F;AAC5F,SAAS,UAAU,CAAC,KAAuC;IACzD,OAAO,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC;SACzB,GAAG,CAAC,CAAC,CAAC,IAAI,EAAE,KAAK,CAAC,EAAE,EAAE,CAAC,GAAG,YAAY,CAAC,IAAI,CAAC,IAAI,KAAK,aAAa,CAAC;SACnE,IAAI,CAAC,GAAG,CAAC,CAAA;AACd,CAAC;AAED;;;;;;GAMG;AACH,MAAM,UAAU,mBAAmB,CACjC,MAAc,EACd,MAAc,EACd,WAA8C,EAC9C,SAAkB;IAElB,MAAM,KAAK,GAAG,WAAW,CAAC,KAAK,CAAA;IAC/B,IAAI,CAAC,KAAK,IAAI,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,EAAE,CAAA;IACxD,+EAA+E;IAC/E,6EAA6E;IAC7E,qDAAqD;IACrD,OAAO,GAAG,aAAa,CAAC,MAAM,EAAE,SAAS,CAAC,UAAU,WAAW,CAAC,MAAM,CAAC,IAAI,UAAU,CAAC,KAAK,CAAC,GAAG,CAAA;AACjG,CAAC;AAED;;;;;;GAMG;AACH,MAAM,UAAU,qBAAqB,CAAC,MAAwB,EAAE,SAAkB;IAChF,IAAI,GAAG,GAAG,EAAE,CAAA;IACZ,MAAM,IAAI,GAAG,CAAC,KAAY,EAAE,aAAiC,EAAQ,EAAE;QACrE,IAAI,KAAK,CAAC,WAAW,IAAI,aAAa,KAAK,SAAS,EAAE,CAAC;YACrD,GAAG,IAAI,mBAAmB,CAAC,aAAa,EAAE,KAAK,CAAC,EAAE,EAAE,KAAK,CAAC,WAAW,EAAE,SAAS,CAAC,CAAA;QACnF,CAAC;QACD,2EAA2E;QAC3E,yCAAyC;QACzC,MAAM,eAAe,GAAG,KAAK,CAAC,SAAS,CAAC,CAAC,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,CAAC,aAAa,CAAA;QAClE,IAAI,KAAK,CAAC,QAAQ,EAAE,CAAC;YACnB,KAAK,MAAM,KAAK,IAAI,KAAK,CAAC,QAAQ;gBAAE,IAAI,CAAC,KAAK,EAAE,eAAe,CAAC,CAAA;QAClE,CAAC;IACH,CAAC,CAAA;IACD,KAAK,MAAM,KAAK,IAAI,MAAM;QAAE,IAAI,CAAC,KAAK,EAAE,SAAS,CAAC,CAAA;IAClD,OAAO,GAAG,CAAA;AACZ,CAAC"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* useSurfaceEvents hook
|
|
3
|
+
*
|
|
4
|
+
* Re-exports from `@pwfabric/runtime/blocks` (its canonical home).
|
|
5
|
+
*
|
|
6
|
+
* @module @pwfabric/runtime/render/hooks/useSurfaceEvents
|
|
7
|
+
*/
|
|
8
|
+
export { useSurfaceEvents } from '../../blocks/index.js';
|
|
9
|
+
//# sourceMappingURL=useSurfaceEvents.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"useSurfaceEvents.d.ts","sourceRoot":"","sources":["../../../src/render/hooks/useSurfaceEvents.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAA"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* useSurfaceEvents hook
|
|
3
|
+
*
|
|
4
|
+
* Re-exports from `@pwfabric/runtime/blocks` (its canonical home).
|
|
5
|
+
*
|
|
6
|
+
* @module @pwfabric/runtime/render/hooks/useSurfaceEvents
|
|
7
|
+
*/
|
|
8
|
+
export { useSurfaceEvents } from '../../blocks/index.js';
|
|
9
|
+
//# sourceMappingURL=useSurfaceEvents.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"useSurfaceEvents.js","sourceRoot":"","sources":["../../../src/render/hooks/useSurfaceEvents.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAA"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* useSurfaceId hook
|
|
3
|
+
*
|
|
4
|
+
* Re-exports from `@pwfabric/runtime/blocks` (its canonical home).
|
|
5
|
+
*
|
|
6
|
+
* @module @pwfabric/runtime/render/hooks/useSurfaceId
|
|
7
|
+
*/
|
|
8
|
+
export { useSurfaceId } from '../../blocks/index.js';
|
|
9
|
+
//# sourceMappingURL=useSurfaceId.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"useSurfaceId.d.ts","sourceRoot":"","sources":["../../../src/render/hooks/useSurfaceId.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,EAAE,YAAY,EAAE,MAAM,uBAAuB,CAAA"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"useSurfaceId.js","sourceRoot":"","sources":["../../../src/render/hooks/useSurfaceId.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,EAAE,YAAY,EAAE,MAAM,uBAAuB,CAAA"}
|
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Surface Renderer Module
|
|
3
|
+
*
|
|
4
|
+
* Phase 2A.1: Surface-to-React rendering infrastructure
|
|
5
|
+
*
|
|
6
|
+
* @module @pwfabric/runtime/render
|
|
7
|
+
*/
|
|
8
|
+
export type { BlockComponentProps, BlockComponent, BlockComponentRegistry, CapabilityProvider, BlockContext, SurfaceEventType, SurfaceEvent, SurfaceRendererProps, BlockRendererProps, RenderResult, RenderableSurface, CapabilityType, ImageAdapter, ImageAdapterProps, BlockWrapperProps, BlockWrapperRenderArgs, BlockInteractionMode, } from './types.js';
|
|
9
|
+
export { SurfaceRenderer, BlockRenderer, getBlockIds, findBlockById, updateBlockById, } from './renderer.js';
|
|
10
|
+
export { surfaceThemeToCSS } from './theme-utils.js';
|
|
11
|
+
export { deriveDarkTheme } from './derive-dark-theme.js';
|
|
12
|
+
export { resolveResponsiveValue, resolveSpanAtBreakpoint, getColumnsAtBreakpoint, getBreakpointForWidth, resolveBlockLayout, resolveMeasureStyle, resolveSurfaceRootStyle, useViewport, } from './responsive.js';
|
|
13
|
+
export { collectVisibilityCss, blockVisibilityCss, resolveHiddenBreakpoints, } from './visibility-css.js';
|
|
14
|
+
export { collectStatesCss, blockStatesCss } from './states-css.js';
|
|
15
|
+
export { collectConditionalStatesCss, blockConditionalStatesCss, } from './conditional-states-css.js';
|
|
16
|
+
export { buildKeyframesCss } from './keyframes-css.js';
|
|
17
|
+
export { collectResponsiveStyleCss, blockResponsiveStyleCss, } from './responsive-style-css.js';
|
|
18
|
+
export { collectGroupStatesCss, blockGroupStatesCss } from './group-states-css.js';
|
|
19
|
+
export { cssEscapeId, camelToKebab, blockIdAttr, blockSelector, collectScopedCss, } from './scoped-css.js';
|
|
20
|
+
export { buildDarkThemeCss } from './dark-theme-css.js';
|
|
21
|
+
export { resolveAppearanceDarkVars, resolveAppearanceKeyframes } from './appearance-resolver.js';
|
|
22
|
+
export type { SurfaceDataSourceKind, SurfaceDataSourceDefinition, SurfaceActionType, SurfaceAction, BlockActionProp, DataBoundSurface, DataBoundSurfaceRendererProps, } from './data-binding-types.js';
|
|
23
|
+
export { DataBoundSurfaceRenderer, surfaceNeedsDataBinding, blockActionsOf } from './DataBoundSurfaceRenderer.js';
|
|
24
|
+
export { resolveEndpoint, encodeEndpointValue } from './endpoint.js';
|
|
25
|
+
export { dataSourceCacheKey } from './data-cache.js';
|
|
26
|
+
export type { SurfaceDataCache } from './data-cache.js';
|
|
27
|
+
export { resolveBlockExpressions, resolveString } from './resolve-expressions.js';
|
|
28
|
+
export { BlockErrorBoundary } from './BlockErrorBoundary.js';
|
|
29
|
+
export type { EntitlementContextValue, EntitlementProviderProps, GatedBlockPlaceholderProps, } from './capability-gate.js';
|
|
30
|
+
export { EntitlementProvider, useEntitlements, GatedBlockPlaceholder } from './capability-gate.js';
|
|
31
|
+
export { BlockModuleLoader } from './dynamic-block-loader.js';
|
|
32
|
+
export type { DynamicBlockWrapperProps } from './DynamicBlockWrapper.js';
|
|
33
|
+
export { DynamicBlockWrapper } from './DynamicBlockWrapper.js';
|
|
34
|
+
export type { DynamicArtifactContextValue, DynamicArtifactProviderProps, } from './dynamic-artifact-context.js';
|
|
35
|
+
export { DynamicArtifactProvider, preloadDynamicBlocks, useDynamicBlocks, useDynamicStarters, } from './dynamic-artifact-context.js';
|
|
36
|
+
export { createSurfaceEventBus } from './surface-event-bus.js';
|
|
37
|
+
export { SurfaceEventContext } from './surface-event-context.js';
|
|
38
|
+
export { useSurfaceEvents } from './hooks/useSurfaceEvents.js';
|
|
39
|
+
export type { BehaviorSurfaceProviderProps } from './BehaviorSurfaceProvider.js';
|
|
40
|
+
export { BehaviorSurfaceProvider } from './BehaviorSurfaceProvider.js';
|
|
41
|
+
export { SurfaceIdContext } from './surface-id-context.js';
|
|
42
|
+
export { useSurfaceId } from './hooks/useSurfaceId.js';
|
|
43
|
+
export { EntityFacadeContext, useEntityFacade } from './entity-facade-context.js';
|
|
44
|
+
export { SurfaceDataContext, useSurfaceData } from './surface-data-context.js';
|
|
45
|
+
export type { SurfaceData } from './surface-data-context.js';
|
|
46
|
+
export { SurfaceConnectionsContext, useSurfaceConnections } from './connections-context.js';
|
|
47
|
+
export type { ShellSelectionStore, ShellSelectionOptions, ShellSelectionProviderProps } from './shell-selection.js';
|
|
48
|
+
export { ShellSelectionContext, ShellSelectionProvider, createShellSelectionStore, useShellSelection, } from './shell-selection.js';
|
|
49
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/render/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,61 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Surface Renderer Module
|
|
3
|
+
*
|
|
4
|
+
* Phase 2A.1: Surface-to-React rendering infrastructure
|
|
5
|
+
*
|
|
6
|
+
* @module @pwfabric/runtime/render
|
|
7
|
+
*/
|
|
8
|
+
// Components
|
|
9
|
+
export { SurfaceRenderer, BlockRenderer, getBlockIds, findBlockById, updateBlockById, } from './renderer.js';
|
|
10
|
+
// legacy first-party `*Block` component re-exports +
|
|
11
|
+
// `defaultBlockComponents` retired. Components flow through the install
|
|
12
|
+
// pipeline (pwpack publish → CDN bundle → BlockModuleLoader); the static
|
|
13
|
+
// re-exports that lived here are gone.
|
|
14
|
+
// Theme utilities
|
|
15
|
+
export { surfaceThemeToCSS } from './theme-utils.js';
|
|
16
|
+
export { deriveDarkTheme } from './derive-dark-theme.js';
|
|
17
|
+
// Responsive utilities
|
|
18
|
+
export { resolveResponsiveValue, resolveSpanAtBreakpoint, getColumnsAtBreakpoint, getBreakpointForWidth, resolveBlockLayout, resolveMeasureStyle, resolveSurfaceRootStyle, useViewport, } from './responsive.js';
|
|
19
|
+
// Per-breakpoint visibility (hideOn/showOn) CSS generation
|
|
20
|
+
export { collectVisibilityCss, blockVisibilityCss, resolveHiddenBreakpoints, } from './visibility-css.js';
|
|
21
|
+
// Interaction-state (hover/active/focus) CSS generation
|
|
22
|
+
export { collectStatesCss, blockStatesCss } from './states-css.js';
|
|
23
|
+
// Conditional-state (aria/data/disabled/checked/:has) CSS generation
|
|
24
|
+
export { collectConditionalStatesCss, blockConditionalStatesCss, } from './conditional-states-css.js';
|
|
25
|
+
// Surface keyframe registry (appearance.config.keyframes) CSS generation
|
|
26
|
+
export { buildKeyframesCss } from './keyframes-css.js';
|
|
27
|
+
// Per-prop responsive style (block.style breakpoint maps) CSS generation
|
|
28
|
+
export { collectResponsiveStyleCss, blockResponsiveStyleCss, } from './responsive-style-css.js';
|
|
29
|
+
// Group-hover (block.groupRoot + descendant block.groupStates) CSS generation
|
|
30
|
+
export { collectGroupStatesCss, blockGroupStatesCss } from './group-states-css.js';
|
|
31
|
+
// Shared scoped-CSS helpers (used by the per-block collectors above)
|
|
32
|
+
export { cssEscapeId, camelToKebab, blockIdAttr, blockSelector, collectScopedCss, } from './scoped-css.js';
|
|
33
|
+
// Dark theme variant CSS generation + resolver
|
|
34
|
+
export { buildDarkThemeCss } from './dark-theme-css.js';
|
|
35
|
+
export { resolveAppearanceDarkVars, resolveAppearanceKeyframes } from './appearance-resolver.js';
|
|
36
|
+
export { DataBoundSurfaceRenderer, surfaceNeedsDataBinding, blockActionsOf } from './DataBoundSurfaceRenderer.js';
|
|
37
|
+
export { resolveEndpoint, encodeEndpointValue } from './endpoint.js';
|
|
38
|
+
export { dataSourceCacheKey } from './data-cache.js';
|
|
39
|
+
export { resolveBlockExpressions, resolveString } from './resolve-expressions.js';
|
|
40
|
+
// Block Error Boundary (crash isolation)
|
|
41
|
+
export { BlockErrorBoundary } from './BlockErrorBoundary.js';
|
|
42
|
+
export { EntitlementProvider, useEntitlements, GatedBlockPlaceholder } from './capability-gate.js';
|
|
43
|
+
// Dynamic Artifact Loading
|
|
44
|
+
export { BlockModuleLoader } from './dynamic-block-loader.js';
|
|
45
|
+
export { DynamicBlockWrapper } from './DynamicBlockWrapper.js';
|
|
46
|
+
export { DynamicArtifactProvider, preloadDynamicBlocks, useDynamicBlocks, useDynamicStarters, } from './dynamic-artifact-context.js';
|
|
47
|
+
// Surface event protocol
|
|
48
|
+
export { createSurfaceEventBus } from './surface-event-bus.js';
|
|
49
|
+
export { SurfaceEventContext } from './surface-event-context.js';
|
|
50
|
+
export { useSurfaceEvents } from './hooks/useSurfaceEvents.js';
|
|
51
|
+
export { BehaviorSurfaceProvider } from './BehaviorSurfaceProvider.js';
|
|
52
|
+
export { SurfaceIdContext } from './surface-id-context.js';
|
|
53
|
+
export { useSurfaceId } from './hooks/useSurfaceId.js';
|
|
54
|
+
// EntityFacade → Surface Renderer integration
|
|
55
|
+
export { EntityFacadeContext, useEntityFacade } from './entity-facade-context.js';
|
|
56
|
+
// What the data-bound path has currently bound, by source id (form writer reads it)
|
|
57
|
+
export { SurfaceDataContext, useSurfaceData } from './surface-data-context.js';
|
|
58
|
+
// Connections context (world connections + engine registry)
|
|
59
|
+
export { SurfaceConnectionsContext, useSurfaceConnections } from './connections-context.js';
|
|
60
|
+
export { ShellSelectionContext, ShellSelectionProvider, createShellSelectionStore, useShellSelection, } from './shell-selection.js';
|
|
61
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/render/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import type { InteractionRule, InteractionRuleEngine, SurfaceEventTrigger, SurfaceEventDescriptor } from '@pwfabric/contracts';
|
|
2
|
+
export type { InteractionRule, InteractionRuleEngine, SurfaceEventTrigger };
|
|
3
|
+
export declare class DefaultInteractionRuleEngine implements InteractionRuleEngine {
|
|
4
|
+
private readonly rules;
|
|
5
|
+
register(rule: InteractionRule): void;
|
|
6
|
+
unregister(ruleId: string): boolean;
|
|
7
|
+
attach(bus: {
|
|
8
|
+
on(pattern: string, handler: (e: SurfaceEventDescriptor) => void): () => void;
|
|
9
|
+
}): () => void;
|
|
10
|
+
clear(): void;
|
|
11
|
+
}
|
|
12
|
+
export declare function createInteractionRuleEngine(): InteractionRuleEngine;
|
|
13
|
+
//# sourceMappingURL=interaction-rule-engine.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"interaction-rule-engine.d.ts","sourceRoot":"","sources":["../../src/render/interaction-rule-engine.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EACV,eAAe,EACf,qBAAqB,EACrB,mBAAmB,EACnB,sBAAsB,EACvB,MAAM,qBAAqB,CAAA;AAE5B,YAAY,EAAE,eAAe,EAAE,qBAAqB,EAAE,mBAAmB,EAAE,CAAA;AAE3E,qBAAa,4BAA6B,YAAW,qBAAqB;IACxE,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAqC;IAE3D,QAAQ,CAAC,IAAI,EAAE,eAAe,GAAG,IAAI;IAIrC,UAAU,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO;IAInC,MAAM,CAAC,GAAG,EAAE;QACV,EAAE,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,CAAC,CAAC,EAAE,sBAAsB,KAAK,IAAI,GAAG,MAAM,IAAI,CAAA;KAC9E,GAAG,MAAM,IAAI;IA+Bd,KAAK,IAAI,IAAI;CAGd;AAED,wBAAgB,2BAA2B,IAAI,qBAAqB,CAEnE"}
|
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
// packages/runtime/src/render/interaction-rule-engine.ts
|
|
2
|
+
// DefaultInteractionRuleEngine (formerly DefaultSurfaceBehaviorEngine)
|
|
3
|
+
export class DefaultInteractionRuleEngine {
|
|
4
|
+
rules = new Map();
|
|
5
|
+
register(rule) {
|
|
6
|
+
this.rules.set(rule.id, rule);
|
|
7
|
+
}
|
|
8
|
+
unregister(ruleId) {
|
|
9
|
+
return this.rules.delete(ruleId);
|
|
10
|
+
}
|
|
11
|
+
attach(bus) {
|
|
12
|
+
const unsubscribers = [];
|
|
13
|
+
// Group rules by trigger, subscribe once per trigger
|
|
14
|
+
const byTrigger = new Map();
|
|
15
|
+
for (const rule of this.rules.values()) {
|
|
16
|
+
const existing = byTrigger.get(rule.trigger) ?? [];
|
|
17
|
+
existing.push(rule);
|
|
18
|
+
byTrigger.set(rule.trigger, existing);
|
|
19
|
+
}
|
|
20
|
+
for (const [trigger, triggerRules] of byTrigger) {
|
|
21
|
+
const unsub = bus.on(trigger, async (event) => {
|
|
22
|
+
// Sort by priority (higher = first)
|
|
23
|
+
const sorted = [...triggerRules].sort((a, b) => (b.priority ?? 0) - (a.priority ?? 0));
|
|
24
|
+
for (const rule of sorted) {
|
|
25
|
+
try {
|
|
26
|
+
if (rule.guard && !rule.guard(event))
|
|
27
|
+
continue;
|
|
28
|
+
await rule.action(event);
|
|
29
|
+
}
|
|
30
|
+
catch (err) {
|
|
31
|
+
// Fail-safe: log but don't break other rules
|
|
32
|
+
console.warn(`[InteractionRuleEngine] Rule '${rule.id}' failed:`, err);
|
|
33
|
+
}
|
|
34
|
+
}
|
|
35
|
+
});
|
|
36
|
+
unsubscribers.push(unsub);
|
|
37
|
+
}
|
|
38
|
+
return () => unsubscribers.forEach((u) => u());
|
|
39
|
+
}
|
|
40
|
+
clear() {
|
|
41
|
+
this.rules.clear();
|
|
42
|
+
}
|
|
43
|
+
}
|
|
44
|
+
export function createInteractionRuleEngine() {
|
|
45
|
+
return new DefaultInteractionRuleEngine();
|
|
46
|
+
}
|
|
47
|
+
//# sourceMappingURL=interaction-rule-engine.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"interaction-rule-engine.js","sourceRoot":"","sources":["../../src/render/interaction-rule-engine.ts"],"names":[],"mappings":"AAAA,yDAAyD;AACzD,uEAAuE;AAWvE,MAAM,OAAO,4BAA4B;IACtB,KAAK,GAAG,IAAI,GAAG,EAA2B,CAAA;IAE3D,QAAQ,CAAC,IAAqB;QAC5B,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,EAAE,IAAI,CAAC,CAAA;IAC/B,CAAC;IAED,UAAU,CAAC,MAAc;QACvB,OAAO,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,MAAM,CAAC,CAAA;IAClC,CAAC;IAED,MAAM,CAAC,GAEN;QACC,MAAM,aAAa,GAAmB,EAAE,CAAA;QAExC,qDAAqD;QACrD,MAAM,SAAS,GAAG,IAAI,GAAG,EAA6B,CAAA;QACtD,KAAK,MAAM,IAAI,IAAI,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE,EAAE,CAAC;YACvC,MAAM,QAAQ,GAAG,SAAS,CAAC,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,CAAA;YAClD,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;YACnB,SAAS,CAAC,GAAG,CAAC,IAAI,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAA;QACvC,CAAC;QAED,KAAK,MAAM,CAAC,OAAO,EAAE,YAAY,CAAC,IAAI,SAAS,EAAE,CAAC;YAChD,MAAM,KAAK,GAAG,GAAG,CAAC,EAAE,CAAC,OAAO,EAAE,KAAK,EAAE,KAA6B,EAAE,EAAE;gBACpE,oCAAoC;gBACpC,MAAM,MAAM,GAAG,CAAC,GAAG,YAAY,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,QAAQ,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,QAAQ,IAAI,CAAC,CAAC,CAAC,CAAA;gBACtF,KAAK,MAAM,IAAI,IAAI,MAAM,EAAE,CAAC;oBAC1B,IAAI,CAAC;wBACH,IAAI,IAAI,CAAC,KAAK,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC;4BAAE,SAAQ;wBAC9C,MAAM,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,CAAA;oBAC1B,CAAC;oBAAC,OAAO,GAAG,EAAE,CAAC;wBACb,6CAA6C;wBAC7C,OAAO,CAAC,IAAI,CAAC,iCAAiC,IAAI,CAAC,EAAE,WAAW,EAAE,GAAG,CAAC,CAAA;oBACxE,CAAC;gBACH,CAAC;YACH,CAAC,CAAC,CAAA;YACF,aAAa,CAAC,IAAI,CAAC,KAAK,CAAC,CAAA;QAC3B,CAAC;QAED,OAAO,GAAG,EAAE,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE,CAAC,CAAA;IAChD,CAAC;IAED,KAAK;QACH,IAAI,CAAC,KAAK,CAAC,KAAK,EAAE,CAAA;IACpB,CAAC;CACF;AAED,MAAM,UAAU,2BAA2B;IACzC,OAAO,IAAI,4BAA4B,EAAE,CAAA;AAC3C,CAAC"}
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Surface keyframe registry CSS generation (arbitrary `@keyframes`).
|
|
3
|
+
*
|
|
4
|
+
* The runtime ships a fixed set of `pw-*` keyframes in `SURFACE_BASE_CSS`
|
|
5
|
+
* (pulse / fade-in / marquee / slide-up / slide-down / scale-in / spin /
|
|
6
|
+
* bounce / spring-in), so `block.style.animation` could only reference those. A surface can
|
|
7
|
+
* now declare arbitrary named keyframes via `appearance.config.keyframes`
|
|
8
|
+
* (name → keyframe body); this module emits one `@keyframes <name>{<body>}` per
|
|
9
|
+
* entry so a block can drive custom motion offline.
|
|
10
|
+
*
|
|
11
|
+
* Each name is PREFIXED with `pw-kf-` to avoid colliding with host-page or
|
|
12
|
+
* runtime-shipped keyframes — so a surface declaring `{ wiggle: '…' }` makes the
|
|
13
|
+
* animation available as `pw-kf-wiggle`, and a block references it via
|
|
14
|
+
* `block.style.animation: 'pw-kf-wiggle 0.4s ease'`.
|
|
15
|
+
*
|
|
16
|
+
* The keyframe BODY passes through untouched (authors supply standard
|
|
17
|
+
* `@keyframes` selector blocks, e.g. `0%{…}50%{…}100%{…}`). An empty/absent
|
|
18
|
+
* registry emits zero bytes. The existing `prefers-reduced-motion` gate in
|
|
19
|
+
* `SURFACE_BASE_CSS` neutralises these animations for users who opt out (it
|
|
20
|
+
* matches by animation, not by keyframe name), so no extra gating is needed
|
|
21
|
+
* here.
|
|
22
|
+
*
|
|
23
|
+
* @module @pwfabric/runtime/render/keyframes-css
|
|
24
|
+
*/
|
|
25
|
+
/**
|
|
26
|
+
* Build the surface keyframe CSS from the appearance `keyframes` registry
|
|
27
|
+
* (name → keyframe body). Emits `@keyframes pw-kf-<name>{<body>}` for each
|
|
28
|
+
* entry. Entries with an empty name or empty body are skipped. Returns '' when
|
|
29
|
+
* the registry is empty/undefined (zero bytes emitted).
|
|
30
|
+
*/
|
|
31
|
+
export declare function buildKeyframesCss(keyframes: Readonly<Record<string, string>> | undefined): string;
|
|
32
|
+
//# sourceMappingURL=keyframes-css.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"keyframes-css.d.ts","sourceRoot":"","sources":["../../src/render/keyframes-css.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AAKH;;;;;GAKG;AACH,wBAAgB,iBAAiB,CAC/B,SAAS,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,GAAG,SAAS,GACtD,MAAM,CAQR"}
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Surface keyframe registry CSS generation (arbitrary `@keyframes`).
|
|
3
|
+
*
|
|
4
|
+
* The runtime ships a fixed set of `pw-*` keyframes in `SURFACE_BASE_CSS`
|
|
5
|
+
* (pulse / fade-in / marquee / slide-up / slide-down / scale-in / spin /
|
|
6
|
+
* bounce / spring-in), so `block.style.animation` could only reference those. A surface can
|
|
7
|
+
* now declare arbitrary named keyframes via `appearance.config.keyframes`
|
|
8
|
+
* (name → keyframe body); this module emits one `@keyframes <name>{<body>}` per
|
|
9
|
+
* entry so a block can drive custom motion offline.
|
|
10
|
+
*
|
|
11
|
+
* Each name is PREFIXED with `pw-kf-` to avoid colliding with host-page or
|
|
12
|
+
* runtime-shipped keyframes — so a surface declaring `{ wiggle: '…' }` makes the
|
|
13
|
+
* animation available as `pw-kf-wiggle`, and a block references it via
|
|
14
|
+
* `block.style.animation: 'pw-kf-wiggle 0.4s ease'`.
|
|
15
|
+
*
|
|
16
|
+
* The keyframe BODY passes through untouched (authors supply standard
|
|
17
|
+
* `@keyframes` selector blocks, e.g. `0%{…}50%{…}100%{…}`). An empty/absent
|
|
18
|
+
* registry emits zero bytes. The existing `prefers-reduced-motion` gate in
|
|
19
|
+
* `SURFACE_BASE_CSS` neutralises these animations for users who opt out (it
|
|
20
|
+
* matches by animation, not by keyframe name), so no extra gating is needed
|
|
21
|
+
* here.
|
|
22
|
+
*
|
|
23
|
+
* @module @pwfabric/runtime/render/keyframes-css
|
|
24
|
+
*/
|
|
25
|
+
/** Prefix applied to every surface-declared keyframe name (collision guard). */
|
|
26
|
+
const KEYFRAME_PREFIX = 'pw-kf-';
|
|
27
|
+
/**
|
|
28
|
+
* Build the surface keyframe CSS from the appearance `keyframes` registry
|
|
29
|
+
* (name → keyframe body). Emits `@keyframes pw-kf-<name>{<body>}` for each
|
|
30
|
+
* entry. Entries with an empty name or empty body are skipped. Returns '' when
|
|
31
|
+
* the registry is empty/undefined (zero bytes emitted).
|
|
32
|
+
*/
|
|
33
|
+
export function buildKeyframesCss(keyframes) {
|
|
34
|
+
if (!keyframes)
|
|
35
|
+
return '';
|
|
36
|
+
let css = '';
|
|
37
|
+
for (const [name, body] of Object.entries(keyframes)) {
|
|
38
|
+
if (!name || typeof body !== 'string' || body.trim().length === 0)
|
|
39
|
+
continue;
|
|
40
|
+
css += `@keyframes ${KEYFRAME_PREFIX}${name}{${body}}`;
|
|
41
|
+
}
|
|
42
|
+
return css;
|
|
43
|
+
}
|
|
44
|
+
//# sourceMappingURL=keyframes-css.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"keyframes-css.js","sourceRoot":"","sources":["../../src/render/keyframes-css.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AAEH,gFAAgF;AAChF,MAAM,eAAe,GAAG,QAAQ,CAAA;AAEhC;;;;;GAKG;AACH,MAAM,UAAU,iBAAiB,CAC/B,SAAuD;IAEvD,IAAI,CAAC,SAAS;QAAE,OAAO,EAAE,CAAA;IACzB,IAAI,GAAG,GAAG,EAAE,CAAA;IACZ,KAAK,MAAM,CAAC,IAAI,EAAE,IAAI,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,SAAS,CAAC,EAAE,CAAC;QACrD,IAAI,CAAC,IAAI,IAAI,OAAO,IAAI,KAAK,QAAQ,IAAI,IAAI,CAAC,IAAI,EAAE,CAAC,MAAM,KAAK,CAAC;YAAE,SAAQ;QAC3E,GAAG,IAAI,cAAc,eAAe,GAAG,IAAI,IAAI,IAAI,GAAG,CAAA;IACxD,CAAC;IACD,OAAO,GAAG,CAAA;AACZ,CAAC"}
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
export declare function resolveQueryState<T>(query: T, state: Readonly<Record<string, unknown>>): T;
|
|
2
|
+
/** True when any string inside the query carries an expression. */
|
|
3
|
+
export declare function queryHasState(query: unknown): boolean;
|
|
4
|
+
//# sourceMappingURL=query-state.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"query-state.d.ts","sourceRoot":"","sources":["../../src/render/query-state.ts"],"names":[],"mappings":"AAoBA,wBAAgB,iBAAiB,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,KAAK,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,GAAG,CAAC,CAmC1F;AAED,mEAAmE;AACnE,wBAAgB,aAAa,CAAC,KAAK,EAAE,OAAO,GAAG,OAAO,CAKrD"}
|
|
@@ -0,0 +1,70 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* resolveQueryState — substitute `{{state.x}}` (and any expression) inside a
|
|
3
|
+
* data-source `query` object before it reaches the connector.
|
|
4
|
+
*
|
|
5
|
+
* Without it state would be interpolated ONLY in REST `endpoint` strings and
|
|
6
|
+
* connector/entity sources would pass `source.query` to the engine raw, so a
|
|
7
|
+
* pagination block writing `state.page` and a segmented-control writing
|
|
8
|
+
* `state.severity` could never reach `query.pagination.offset` or
|
|
9
|
+
* `query.filter.value`. This walks the query deeply and resolves every string
|
|
10
|
+
* that contains `{{ }}`.
|
|
11
|
+
*
|
|
12
|
+
* A string that is EXACTLY one expression (`"{{state.page}}"`) resolves to
|
|
13
|
+
* the raw value (number stays number, array stays array) so
|
|
14
|
+
* `pagination.limit: "{{state.pageSize}}"` yields a number, not "20".
|
|
15
|
+
* Mixed strings (`"prefix-{{state.x}}"`) resolve to a string.
|
|
16
|
+
*/
|
|
17
|
+
import { createExpressionContext, evaluate, interpolate } from '../surface/expression.js';
|
|
18
|
+
const WHOLE = /^\s*\{\{\s*([^{}]+?)\s*\}\}\s*$/;
|
|
19
|
+
export function resolveQueryState(query, state) {
|
|
20
|
+
const ctx = createExpressionContext({ state });
|
|
21
|
+
const walk = (v) => {
|
|
22
|
+
if (typeof v === 'string') {
|
|
23
|
+
if (!v.includes('{{'))
|
|
24
|
+
return v;
|
|
25
|
+
const whole = WHOLE.exec(v);
|
|
26
|
+
if (whole && whole[1] !== undefined) {
|
|
27
|
+
const r = evaluate(whole[1], ctx);
|
|
28
|
+
if (!r.success)
|
|
29
|
+
return undefined;
|
|
30
|
+
// An "All" segment and an empty search box both write '' (or null) into
|
|
31
|
+
// state. Read literally that is `field eq ''`, which matches no row —
|
|
32
|
+
// the control that was meant to WIDEN the list emptied it. A whole
|
|
33
|
+
// expression resolving to nothing is no constraint, so the key drops.
|
|
34
|
+
// A literal '' written into the query by an author is untouched: only
|
|
35
|
+
// an expression can resolve away.
|
|
36
|
+
if (r.value === '' || r.value === null)
|
|
37
|
+
return undefined;
|
|
38
|
+
return r.value;
|
|
39
|
+
}
|
|
40
|
+
const r = interpolate(v, ctx);
|
|
41
|
+
return r.success ? r.value : v;
|
|
42
|
+
}
|
|
43
|
+
if (Array.isArray(v))
|
|
44
|
+
return v.map(walk);
|
|
45
|
+
if (v && typeof v === 'object') {
|
|
46
|
+
const out = {};
|
|
47
|
+
for (const [k, val] of Object.entries(v)) {
|
|
48
|
+
const w = walk(val);
|
|
49
|
+
// an unresolved whole-expression drops the key so the connector sees
|
|
50
|
+
// "no constraint", not `undefined` as a literal filter value
|
|
51
|
+
if (w !== undefined)
|
|
52
|
+
out[k] = w;
|
|
53
|
+
}
|
|
54
|
+
return out;
|
|
55
|
+
}
|
|
56
|
+
return v;
|
|
57
|
+
};
|
|
58
|
+
return walk(query);
|
|
59
|
+
}
|
|
60
|
+
/** True when any string inside the query carries an expression. */
|
|
61
|
+
export function queryHasState(query) {
|
|
62
|
+
if (typeof query === 'string')
|
|
63
|
+
return query.includes('{{');
|
|
64
|
+
if (Array.isArray(query))
|
|
65
|
+
return query.some(queryHasState);
|
|
66
|
+
if (query && typeof query === 'object')
|
|
67
|
+
return Object.values(query).some(queryHasState);
|
|
68
|
+
return false;
|
|
69
|
+
}
|
|
70
|
+
//# sourceMappingURL=query-state.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"query-state.js","sourceRoot":"","sources":["../../src/render/query-state.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AACH,OAAO,EAAE,uBAAuB,EAAE,QAAQ,EAAE,WAAW,EAAE,MAAM,0BAA0B,CAAA;AAEzF,MAAM,KAAK,GAAG,iCAAiC,CAAA;AAE/C,MAAM,UAAU,iBAAiB,CAAI,KAAQ,EAAE,KAAwC;IACrF,MAAM,GAAG,GAAG,uBAAuB,CAAC,EAAE,KAAK,EAAE,CAAC,CAAA;IAC9C,MAAM,IAAI,GAAG,CAAC,CAAU,EAAW,EAAE;QACnC,IAAI,OAAO,CAAC,KAAK,QAAQ,EAAE,CAAC;YAC1B,IAAI,CAAC,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC;gBAAE,OAAO,CAAC,CAAA;YAC/B,MAAM,KAAK,GAAG,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;YAC3B,IAAI,KAAK,IAAI,KAAK,CAAC,CAAC,CAAC,KAAK,SAAS,EAAE,CAAC;gBACpC,MAAM,CAAC,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,GAAG,CAAC,CAAA;gBACjC,IAAI,CAAC,CAAC,CAAC,OAAO;oBAAE,OAAO,SAAS,CAAA;gBAChC,wEAAwE;gBACxE,sEAAsE;gBACtE,mEAAmE;gBACnE,sEAAsE;gBACtE,sEAAsE;gBACtE,kCAAkC;gBAClC,IAAI,CAAC,CAAC,KAAK,KAAK,EAAE,IAAI,CAAC,CAAC,KAAK,KAAK,IAAI;oBAAE,OAAO,SAAS,CAAA;gBACxD,OAAO,CAAC,CAAC,KAAK,CAAA;YAChB,CAAC;YACD,MAAM,CAAC,GAAG,WAAW,CAAC,CAAC,EAAE,GAAG,CAAC,CAAA;YAC7B,OAAO,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAA;QAChC,CAAC;QACD,IAAI,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC;YAAE,OAAO,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,CAAA;QACxC,IAAI,CAAC,IAAI,OAAO,CAAC,KAAK,QAAQ,EAAE,CAAC;YAC/B,MAAM,GAAG,GAA4B,EAAE,CAAA;YACvC,KAAK,MAAM,CAAC,CAAC,EAAE,GAAG,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,CAA4B,CAAC,EAAE,CAAC;gBACpE,MAAM,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,CAAA;gBACnB,qEAAqE;gBACrE,6DAA6D;gBAC7D,IAAI,CAAC,KAAK,SAAS;oBAAE,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAA;YACjC,CAAC;YACD,OAAO,GAAG,CAAA;QACZ,CAAC;QACD,OAAO,CAAC,CAAA;IACV,CAAC,CAAA;IACD,OAAO,IAAI,CAAC,KAAK,CAAM,CAAA;AACzB,CAAC;AAED,mEAAmE;AACnE,MAAM,UAAU,aAAa,CAAC,KAAc;IAC1C,IAAI,OAAO,KAAK,KAAK,QAAQ;QAAE,OAAO,KAAK,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAA;IAC1D,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC;QAAE,OAAO,KAAK,CAAC,IAAI,CAAC,aAAa,CAAC,CAAA;IAC1D,IAAI,KAAK,IAAI,OAAO,KAAK,KAAK,QAAQ;QAAE,OAAO,MAAM,CAAC,MAAM,CAAC,KAAgC,CAAC,CAAC,IAAI,CAAC,aAAa,CAAC,CAAA;IAClH,OAAO,KAAK,CAAA;AACd,CAAC"}
|