@aglyn/aglyn 1.0.0-beta.143
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 +201 -0
- package/README.md +11 -0
- package/package.json +66 -0
- package/src/index.d.ts +25 -0
- package/src/index.js +26 -0
- package/src/index.js.map +1 -0
- package/src/lib/aglyn.d.ts +31 -0
- package/src/lib/aglyn.js +114 -0
- package/src/lib/aglyn.js.map +1 -0
- package/src/lib/app-utils/abuse-report.d.ts +193 -0
- package/src/lib/app-utils/abuse-report.js +321 -0
- package/src/lib/app-utils/abuse-report.js.map +1 -0
- package/src/lib/app-utils/accept-negotiation.d.ts +129 -0
- package/src/lib/app-utils/accept-negotiation.js +266 -0
- package/src/lib/app-utils/accept-negotiation.js.map +1 -0
- package/src/lib/app-utils/account-emails.d.ts +263 -0
- package/src/lib/app-utils/account-emails.js +264 -0
- package/src/lib/app-utils/account-emails.js.map +1 -0
- package/src/lib/app-utils/actions.d.ts +717 -0
- package/src/lib/app-utils/actions.js +1031 -0
- package/src/lib/app-utils/actions.js.map +1 -0
- package/src/lib/app-utils/activity-presenter.d.ts +152 -0
- package/src/lib/app-utils/activity-presenter.js +326 -0
- package/src/lib/app-utils/activity-presenter.js.map +1 -0
- package/src/lib/app-utils/advertising-tag-mounts.d.ts +133 -0
- package/src/lib/app-utils/advertising-tag-mounts.js +118 -0
- package/src/lib/app-utils/advertising-tag-mounts.js.map +1 -0
- package/src/lib/app-utils/advertising-tags.d.ts +307 -0
- package/src/lib/app-utils/advertising-tags.js +525 -0
- package/src/lib/app-utils/advertising-tags.js.map +1 -0
- package/src/lib/app-utils/agent-api-catalog.d.ts +94 -0
- package/src/lib/app-utils/agent-api-catalog.js +106 -0
- package/src/lib/app-utils/agent-api-catalog.js.map +1 -0
- package/src/lib/app-utils/agent-openapi.d.ts +103 -0
- package/src/lib/app-utils/agent-openapi.js +1128 -0
- package/src/lib/app-utils/agent-openapi.js.map +1 -0
- package/src/lib/app-utils/analytics-beacon.d.ts +154 -0
- package/src/lib/app-utils/analytics-beacon.js +152 -0
- package/src/lib/app-utils/analytics-beacon.js.map +1 -0
- package/src/lib/app-utils/analytics-environment.d.ts +133 -0
- package/src/lib/app-utils/analytics-environment.js +152 -0
- package/src/lib/app-utils/analytics-environment.js.map +1 -0
- package/src/lib/app-utils/analytics-events.d.ts +744 -0
- package/src/lib/app-utils/analytics-events.js +650 -0
- package/src/lib/app-utils/analytics-events.js.map +1 -0
- package/src/lib/app-utils/analytics-link-clicks.d.ts +102 -0
- package/src/lib/app-utils/analytics-link-clicks.js +267 -0
- package/src/lib/app-utils/analytics-link-clicks.js.map +1 -0
- package/src/lib/app-utils/analytics-path-key.d.ts +46 -0
- package/src/lib/app-utils/analytics-path-key.js +46 -0
- package/src/lib/app-utils/analytics-path-key.js.map +1 -0
- package/src/lib/app-utils/api-adapter.d.ts +47 -0
- package/src/lib/app-utils/api-adapter.js +367 -0
- package/src/lib/app-utils/api-adapter.js.map +1 -0
- package/src/lib/app-utils/api-idempotency.d.ts +169 -0
- package/src/lib/app-utils/api-idempotency.js +213 -0
- package/src/lib/app-utils/api-idempotency.js.map +1 -0
- package/src/lib/app-utils/api-plugins.d.ts +210 -0
- package/src/lib/app-utils/api-plugins.js +221 -0
- package/src/lib/app-utils/api-plugins.js.map +1 -0
- package/src/lib/app-utils/assist-credits.d.ts +482 -0
- package/src/lib/app-utils/assist-credits.js +509 -0
- package/src/lib/app-utils/assist-credits.js.map +1 -0
- package/src/lib/app-utils/attribution-attribute.d.ts +34 -0
- package/src/lib/app-utils/attribution-attribute.js +34 -0
- package/src/lib/app-utils/attribution-attribute.js.map +1 -0
- package/src/lib/app-utils/attribution-guard.d.ts +130 -0
- package/src/lib/app-utils/attribution-guard.js +410 -0
- package/src/lib/app-utils/attribution-guard.js.map +1 -0
- package/src/lib/app-utils/author-css.d.ts +123 -0
- package/src/lib/app-utils/author-css.js +275 -0
- package/src/lib/app-utils/author-css.js.map +1 -0
- package/src/lib/app-utils/author-html-markdown.d.ts +31 -0
- package/src/lib/app-utils/author-html-markdown.js +497 -0
- package/src/lib/app-utils/author-html-markdown.js.map +1 -0
- package/src/lib/app-utils/author-html.d.ts +135 -0
- package/src/lib/app-utils/author-html.js +1037 -0
- package/src/lib/app-utils/author-html.js.map +1 -0
- package/src/lib/app-utils/automation-placeholders.d.ts +72 -0
- package/src/lib/app-utils/automation-placeholders.js +207 -0
- package/src/lib/app-utils/automation-placeholders.js.map +1 -0
- package/src/lib/app-utils/bandwidth-cap.d.ts +183 -0
- package/src/lib/app-utils/bandwidth-cap.js +193 -0
- package/src/lib/app-utils/bandwidth-cap.js.map +1 -0
- package/src/lib/app-utils/binding-token-catalog.d.ts +82 -0
- package/src/lib/app-utils/binding-token-catalog.js +293 -0
- package/src/lib/app-utils/binding-token-catalog.js.map +1 -0
- package/src/lib/app-utils/binding-tokens.d.ts +157 -0
- package/src/lib/app-utils/binding-tokens.js +251 -0
- package/src/lib/app-utils/binding-tokens.js.map +1 -0
- package/src/lib/app-utils/breadcrumb-json-ld.d.ts +57 -0
- package/src/lib/app-utils/breadcrumb-json-ld.js +67 -0
- package/src/lib/app-utils/breadcrumb-json-ld.js.map +1 -0
- package/src/lib/app-utils/campaign-attribution.d.ts +117 -0
- package/src/lib/app-utils/campaign-attribution.js +162 -0
- package/src/lib/app-utils/campaign-attribution.js.map +1 -0
- package/src/lib/app-utils/campaign-forwarding.d.ts +220 -0
- package/src/lib/app-utils/campaign-forwarding.js +332 -0
- package/src/lib/app-utils/campaign-forwarding.js.map +1 -0
- package/src/lib/app-utils/campaign-membership.d.ts +109 -0
- package/src/lib/app-utils/campaign-membership.js +176 -0
- package/src/lib/app-utils/campaign-membership.js.map +1 -0
- package/src/lib/app-utils/campaign-touch.d.ts +206 -0
- package/src/lib/app-utils/campaign-touch.js +326 -0
- package/src/lib/app-utils/campaign-touch.js.map +1 -0
- package/src/lib/app-utils/child-contract-compose.d.ts +28 -0
- package/src/lib/app-utils/child-contract-compose.js +140 -0
- package/src/lib/app-utils/child-contract-compose.js.map +1 -0
- package/src/lib/app-utils/child-contract.d.ts +129 -0
- package/src/lib/app-utils/child-contract.js +153 -0
- package/src/lib/app-utils/child-contract.js.map +1 -0
- package/src/lib/app-utils/collection-delete.d.ts +113 -0
- package/src/lib/app-utils/collection-delete.js +120 -0
- package/src/lib/app-utils/collection-delete.js.map +1 -0
- package/src/lib/app-utils/collection-entries.d.ts +833 -0
- package/src/lib/app-utils/collection-entries.js +1285 -0
- package/src/lib/app-utils/collection-entries.js.map +1 -0
- package/src/lib/app-utils/collection-entry-date.d.ts +129 -0
- package/src/lib/app-utils/collection-entry-date.js +183 -0
- package/src/lib/app-utils/collection-entry-date.js.map +1 -0
- package/src/lib/app-utils/collection-kind.d.ts +55 -0
- package/src/lib/app-utils/collection-kind.js +69 -0
- package/src/lib/app-utils/collection-kind.js.map +1 -0
- package/src/lib/app-utils/collection-slug.d.ts +79 -0
- package/src/lib/app-utils/collection-slug.js +70 -0
- package/src/lib/app-utils/collection-slug.js.map +1 -0
- package/src/lib/app-utils/compose-layout-nodes.d.ts +147 -0
- package/src/lib/app-utils/compose-layout-nodes.js +261 -0
- package/src/lib/app-utils/compose-layout-nodes.js.map +1 -0
- package/src/lib/app-utils/compose-layout-props.d.ts +71 -0
- package/src/lib/app-utils/compose-layout-props.js +61 -0
- package/src/lib/app-utils/compose-layout-props.js.map +1 -0
- package/src/lib/app-utils/compose-reusable-components.d.ts +504 -0
- package/src/lib/app-utils/compose-reusable-components.js +1366 -0
- package/src/lib/app-utils/compose-reusable-components.js.map +1 -0
- package/src/lib/app-utils/compress.d.ts +35 -0
- package/src/lib/app-utils/compress.js +38 -0
- package/src/lib/app-utils/compress.js.map +1 -0
- package/src/lib/app-utils/consent-banner-ui.d.ts +226 -0
- package/src/lib/app-utils/consent-banner-ui.js +583 -0
- package/src/lib/app-utils/consent-banner-ui.js.map +1 -0
- package/src/lib/app-utils/consent-groups.d.ts +189 -0
- package/src/lib/app-utils/consent-groups.js +219 -0
- package/src/lib/app-utils/consent-groups.js.map +1 -0
- package/src/lib/app-utils/consent-preferences-dialog.d.ts +58 -0
- package/src/lib/app-utils/consent-preferences-dialog.js +106 -0
- package/src/lib/app-utils/consent-preferences-dialog.js.map +1 -0
- package/src/lib/app-utils/console-record-links.d.ts +163 -0
- package/src/lib/app-utils/console-record-links.js +178 -0
- package/src/lib/app-utils/console-record-links.js.map +1 -0
- package/src/lib/app-utils/console-routes.d.ts +658 -0
- package/src/lib/app-utils/console-routes.js +489 -0
- package/src/lib/app-utils/console-routes.js.map +1 -0
- package/src/lib/app-utils/console-widget-slot-context.d.ts +46 -0
- package/src/lib/app-utils/console-widget-slot-context.js +23 -0
- package/src/lib/app-utils/console-widget-slot-context.js.map +1 -0
- package/src/lib/app-utils/contact-custom-fields.d.ts +191 -0
- package/src/lib/app-utils/contact-custom-fields.js +349 -0
- package/src/lib/app-utils/contact-custom-fields.js.map +1 -0
- package/src/lib/app-utils/contact-holder.d.ts +52 -0
- package/src/lib/app-utils/contact-holder.js +98 -0
- package/src/lib/app-utils/contact-holder.js.map +1 -0
- package/src/lib/app-utils/contact-merge.d.ts +136 -0
- package/src/lib/app-utils/contact-merge.js +379 -0
- package/src/lib/app-utils/contact-merge.js.map +1 -0
- package/src/lib/app-utils/contacts.d.ts +554 -0
- package/src/lib/app-utils/contacts.js +401 -0
- package/src/lib/app-utils/contacts.js.map +1 -0
- package/src/lib/app-utils/content-author-profile.d.ts +68 -0
- package/src/lib/app-utils/content-author-profile.js +118 -0
- package/src/lib/app-utils/content-author-profile.js.map +1 -0
- package/src/lib/app-utils/content-authors.d.ts +662 -0
- package/src/lib/app-utils/content-authors.js +771 -0
- package/src/lib/app-utils/content-authors.js.map +1 -0
- package/src/lib/app-utils/content-schema-type.d.ts +81 -0
- package/src/lib/app-utils/content-schema-type.js +87 -0
- package/src/lib/app-utils/content-schema-type.js.map +1 -0
- package/src/lib/app-utils/contexts.d.ts +35 -0
- package/src/lib/app-utils/contexts.js +35 -0
- package/src/lib/app-utils/contexts.js.map +1 -0
- package/src/lib/app-utils/create-resource-uid.d.ts +18 -0
- package/src/lib/app-utils/create-resource-uid.js +23 -0
- package/src/lib/app-utils/create-resource-uid.js.map +1 -0
- package/src/lib/app-utils/crm-booking.d.ts +75 -0
- package/src/lib/app-utils/crm-booking.js +133 -0
- package/src/lib/app-utils/crm-booking.js.map +1 -0
- package/src/lib/app-utils/crm-csv.d.ts +232 -0
- package/src/lib/app-utils/crm-csv.js +432 -0
- package/src/lib/app-utils/crm-csv.js.map +1 -0
- package/src/lib/app-utils/crm-digest.d.ts +179 -0
- package/src/lib/app-utils/crm-digest.js +271 -0
- package/src/lib/app-utils/crm-digest.js.map +1 -0
- package/src/lib/app-utils/crm-email-templates.d.ts +172 -0
- package/src/lib/app-utils/crm-email-templates.js +382 -0
- package/src/lib/app-utils/crm-email-templates.js.map +1 -0
- package/src/lib/app-utils/crm-inbound.d.ts +245 -0
- package/src/lib/app-utils/crm-inbound.js +407 -0
- package/src/lib/app-utils/crm-inbound.js.map +1 -0
- package/src/lib/app-utils/crm-kinds.d.ts +73 -0
- package/src/lib/app-utils/crm-kinds.js +92 -0
- package/src/lib/app-utils/crm-kinds.js.map +1 -0
- package/src/lib/app-utils/crm-next-activity.d.ts +107 -0
- package/src/lib/app-utils/crm-next-activity.js +140 -0
- package/src/lib/app-utils/crm-next-activity.js.map +1 -0
- package/src/lib/app-utils/crm-reports.d.ts +479 -0
- package/src/lib/app-utils/crm-reports.js +680 -0
- package/src/lib/app-utils/crm-reports.js.map +1 -0
- package/src/lib/app-utils/crm-task-reminders.d.ts +129 -0
- package/src/lib/app-utils/crm-task-reminders.js +139 -0
- package/src/lib/app-utils/crm-task-reminders.js.map +1 -0
- package/src/lib/app-utils/crm.d.ts +1546 -0
- package/src/lib/app-utils/crm.js +1814 -0
- package/src/lib/app-utils/crm.js.map +1 -0
- package/src/lib/app-utils/csp-report.d.ts +84 -0
- package/src/lib/app-utils/csp-report.js +177 -0
- package/src/lib/app-utils/csp-report.js.map +1 -0
- package/src/lib/app-utils/csv-import.d.ts +192 -0
- package/src/lib/app-utils/csv-import.js +279 -0
- package/src/lib/app-utils/csv-import.js.map +1 -0
- package/src/lib/app-utils/dataset-csv.d.ts +109 -0
- package/src/lib/app-utils/dataset-csv.js +235 -0
- package/src/lib/app-utils/dataset-csv.js.map +1 -0
- package/src/lib/app-utils/dataset-models.d.ts +194 -0
- package/src/lib/app-utils/dataset-models.js +409 -0
- package/src/lib/app-utils/dataset-models.js.map +1 -0
- package/src/lib/app-utils/dataset-query.d.ts +57 -0
- package/src/lib/app-utils/dataset-query.js +126 -0
- package/src/lib/app-utils/dataset-query.js.map +1 -0
- package/src/lib/app-utils/datasets.d.ts +136 -0
- package/src/lib/app-utils/datasets.js +177 -0
- package/src/lib/app-utils/datasets.js.map +1 -0
- package/src/lib/app-utils/decompress.d.ts +36 -0
- package/src/lib/app-utils/decompress.js +32 -0
- package/src/lib/app-utils/decompress.js.map +1 -0
- package/src/lib/app-utils/dedicated-sending-domain.d.ts +47 -0
- package/src/lib/app-utils/dedicated-sending-domain.js +114 -0
- package/src/lib/app-utils/dedicated-sending-domain.js.map +1 -0
- package/src/lib/app-utils/deferred-image.d.ts +86 -0
- package/src/lib/app-utils/deferred-image.js +83 -0
- package/src/lib/app-utils/deferred-image.js.map +1 -0
- package/src/lib/app-utils/definition-canvas-tree.d.ts +61 -0
- package/src/lib/app-utils/definition-canvas-tree.js +126 -0
- package/src/lib/app-utils/definition-canvas-tree.js.map +1 -0
- package/src/lib/app-utils/deployment-shape.d.ts +167 -0
- package/src/lib/app-utils/deployment-shape.js +238 -0
- package/src/lib/app-utils/deployment-shape.js.map +1 -0
- package/src/lib/app-utils/detect-template-placeholders.d.ts +30 -0
- package/src/lib/app-utils/detect-template-placeholders.js +53 -0
- package/src/lib/app-utils/detect-template-placeholders.js.map +1 -0
- package/src/lib/app-utils/dmca-counter-notice.d.ts +185 -0
- package/src/lib/app-utils/dmca-counter-notice.js +277 -0
- package/src/lib/app-utils/dmca-counter-notice.js.map +1 -0
- package/src/lib/app-utils/docs-deflection.d.ts +156 -0
- package/src/lib/app-utils/docs-deflection.js +547 -0
- package/src/lib/app-utils/docs-deflection.js.map +1 -0
- package/src/lib/app-utils/docs-help.d.ts +57 -0
- package/src/lib/app-utils/docs-help.generated.d.ts +303 -0
- package/src/lib/app-utils/docs-help.generated.js +867 -0
- package/src/lib/app-utils/docs-help.generated.js.map +1 -0
- package/src/lib/app-utils/docs-help.js +46 -0
- package/src/lib/app-utils/docs-help.js.map +1 -0
- package/src/lib/app-utils/docs-index.generated.d.ts +29 -0
- package/src/lib/app-utils/docs-index.generated.js +8388 -0
- package/src/lib/app-utils/docs-index.generated.js.map +1 -0
- package/src/lib/app-utils/docs-retrieval.d.ts +67 -0
- package/src/lib/app-utils/docs-retrieval.js +188 -0
- package/src/lib/app-utils/docs-retrieval.js.map +1 -0
- package/src/lib/app-utils/document-landmark.d.ts +50 -0
- package/src/lib/app-utils/document-landmark.js +100 -0
- package/src/lib/app-utils/document-landmark.js.map +1 -0
- package/src/lib/app-utils/duplicate-resource.d.ts +101 -0
- package/src/lib/app-utils/duplicate-resource.js +206 -0
- package/src/lib/app-utils/duplicate-resource.js.map +1 -0
- package/src/lib/app-utils/dynamic-list-rule.d.ts +471 -0
- package/src/lib/app-utils/dynamic-list-rule.js +914 -0
- package/src/lib/app-utils/dynamic-list-rule.js.map +1 -0
- package/src/lib/app-utils/element-animation.d.ts +200 -0
- package/src/lib/app-utils/element-animation.js +233 -0
- package/src/lib/app-utils/element-animation.js.map +1 -0
- package/src/lib/app-utils/element-hidden-style.d.ts +46 -0
- package/src/lib/app-utils/element-hidden-style.js +48 -0
- package/src/lib/app-utils/element-hidden-style.js.map +1 -0
- package/src/lib/app-utils/element-ui.d.ts +243 -0
- package/src/lib/app-utils/element-ui.js +459 -0
- package/src/lib/app-utils/element-ui.js.map +1 -0
- package/src/lib/app-utils/email-starter-policy.d.ts +160 -0
- package/src/lib/app-utils/email-starter-policy.js +327 -0
- package/src/lib/app-utils/email-starter-policy.js.map +1 -0
- package/src/lib/app-utils/email-topics.d.ts +310 -0
- package/src/lib/app-utils/email-topics.js +336 -0
- package/src/lib/app-utils/email-topics.js.map +1 -0
- package/src/lib/app-utils/enabled-plugins-context.d.ts +100 -0
- package/src/lib/app-utils/enabled-plugins-context.js +113 -0
- package/src/lib/app-utils/enabled-plugins-context.js.map +1 -0
- package/src/lib/app-utils/ensure-canvas-root.d.ts +38 -0
- package/src/lib/app-utils/ensure-canvas-root.js +61 -0
- package/src/lib/app-utils/ensure-canvas-root.js.map +1 -0
- package/src/lib/app-utils/entity-picker-context.d.ts +199 -0
- package/src/lib/app-utils/entity-picker-context.js +93 -0
- package/src/lib/app-utils/entity-picker-context.js.map +1 -0
- package/src/lib/app-utils/error-beacon.d.ts +107 -0
- package/src/lib/app-utils/error-beacon.js +296 -0
- package/src/lib/app-utils/error-beacon.js.map +1 -0
- package/src/lib/app-utils/expand-repeatables.d.ts +172 -0
- package/src/lib/app-utils/expand-repeatables.js +299 -0
- package/src/lib/app-utils/expand-repeatables.js.map +1 -0
- package/src/lib/app-utils/foreign-script.d.ts +82 -0
- package/src/lib/app-utils/foreign-script.js +102 -0
- package/src/lib/app-utils/foreign-script.js.map +1 -0
- package/src/lib/app-utils/form-abuse-ceiling.d.ts +146 -0
- package/src/lib/app-utils/form-abuse-ceiling.js +158 -0
- package/src/lib/app-utils/form-abuse-ceiling.js.map +1 -0
- package/src/lib/app-utils/form-contract.d.ts +198 -0
- package/src/lib/app-utils/form-contract.js +282 -0
- package/src/lib/app-utils/form-contract.js.map +1 -0
- package/src/lib/app-utils/form-dataset-binding.d.ts +50 -0
- package/src/lib/app-utils/form-dataset-binding.js +74 -0
- package/src/lib/app-utils/form-dataset-binding.js.map +1 -0
- package/src/lib/app-utils/forms.d.ts +727 -0
- package/src/lib/app-utils/forms.js +777 -0
- package/src/lib/app-utils/forms.js.map +1 -0
- package/src/lib/app-utils/functions.d.ts +188 -0
- package/src/lib/app-utils/functions.js +529 -0
- package/src/lib/app-utils/functions.js.map +1 -0
- package/src/lib/app-utils/guarded-version-save.d.ts +91 -0
- package/src/lib/app-utils/guarded-version-save.js +131 -0
- package/src/lib/app-utils/guarded-version-save.js.map +1 -0
- package/src/lib/app-utils/health-report.d.ts +1766 -0
- package/src/lib/app-utils/health-report.js +2072 -0
- package/src/lib/app-utils/health-report.js.map +1 -0
- package/src/lib/app-utils/host-naming.d.ts +135 -0
- package/src/lib/app-utils/host-naming.js +188 -0
- package/src/lib/app-utils/host-naming.js.map +1 -0
- package/src/lib/app-utils/host-permissions.d.ts +76 -0
- package/src/lib/app-utils/host-permissions.js +119 -0
- package/src/lib/app-utils/host-permissions.js.map +1 -0
- package/src/lib/app-utils/host-tokens.d.ts +228 -0
- package/src/lib/app-utils/host-tokens.js +304 -0
- package/src/lib/app-utils/host-tokens.js.map +1 -0
- package/src/lib/app-utils/idp-profile.d.ts +83 -0
- package/src/lib/app-utils/idp-profile.js +268 -0
- package/src/lib/app-utils/idp-profile.js.map +1 -0
- package/src/lib/app-utils/image-upload-types.d.ts +49 -0
- package/src/lib/app-utils/image-upload-types.js +86 -0
- package/src/lib/app-utils/image-upload-types.js.map +1 -0
- package/src/lib/app-utils/index.d.ts +18 -0
- package/src/lib/app-utils/index.js +23 -0
- package/src/lib/app-utils/index.js.map +1 -0
- package/src/lib/app-utils/internal-traffic.d.ts +197 -0
- package/src/lib/app-utils/internal-traffic.js +288 -0
- package/src/lib/app-utils/internal-traffic.js.map +1 -0
- package/src/lib/app-utils/lineal-order.d.ts +62 -0
- package/src/lib/app-utils/lineal-order.js +65 -0
- package/src/lib/app-utils/lineal-order.js.map +1 -0
- package/src/lib/app-utils/link-references.d.ts +36 -0
- package/src/lib/app-utils/link-references.js +89 -0
- package/src/lib/app-utils/link-references.js.map +1 -0
- package/src/lib/app-utils/link-target-search-context.d.ts +123 -0
- package/src/lib/app-utils/link-target-search-context.js +221 -0
- package/src/lib/app-utils/link-target-search-context.js.map +1 -0
- package/src/lib/app-utils/list-assignment-policy.d.ts +169 -0
- package/src/lib/app-utils/list-assignment-policy.js +170 -0
- package/src/lib/app-utils/list-assignment-policy.js.map +1 -0
- package/src/lib/app-utils/list-import.d.ts +158 -0
- package/src/lib/app-utils/list-import.js +332 -0
- package/src/lib/app-utils/list-import.js.map +1 -0
- package/src/lib/app-utils/llms-txt.d.ts +104 -0
- package/src/lib/app-utils/llms-txt.js +144 -0
- package/src/lib/app-utils/llms-txt.js.map +1 -0
- package/src/lib/app-utils/local-storage-budget.d.ts +75 -0
- package/src/lib/app-utils/local-storage-budget.js +153 -0
- package/src/lib/app-utils/local-storage-budget.js.map +1 -0
- package/src/lib/app-utils/lockdown.d.ts +698 -0
- package/src/lib/app-utils/lockdown.js +929 -0
- package/src/lib/app-utils/lockdown.js.map +1 -0
- package/src/lib/app-utils/margin-utilization.d.ts +267 -0
- package/src/lib/app-utils/margin-utilization.js +351 -0
- package/src/lib/app-utils/margin-utilization.js.map +1 -0
- package/src/lib/app-utils/markdown-lite.d.ts +297 -0
- package/src/lib/app-utils/markdown-lite.js +705 -0
- package/src/lib/app-utils/markdown-lite.js.map +1 -0
- package/src/lib/app-utils/marketing-consent.d.ts +704 -0
- package/src/lib/app-utils/marketing-consent.js +783 -0
- package/src/lib/app-utils/marketing-consent.js.map +1 -0
- package/src/lib/app-utils/marketplace-listing-visibility.d.ts +120 -0
- package/src/lib/app-utils/marketplace-listing-visibility.js +139 -0
- package/src/lib/app-utils/marketplace-listing-visibility.js.map +1 -0
- package/src/lib/app-utils/marketplace-overrides.d.ts +271 -0
- package/src/lib/app-utils/marketplace-overrides.js +462 -0
- package/src/lib/app-utils/marketplace-overrides.js.map +1 -0
- package/src/lib/app-utils/marketplace-provenance.d.ts +150 -0
- package/src/lib/app-utils/marketplace-provenance.js +136 -0
- package/src/lib/app-utils/marketplace-provenance.js.map +1 -0
- package/src/lib/app-utils/marketplace-theme.d.ts +237 -0
- package/src/lib/app-utils/marketplace-theme.js +525 -0
- package/src/lib/app-utils/marketplace-theme.js.map +1 -0
- package/src/lib/app-utils/marketplace-update-state.d.ts +119 -0
- package/src/lib/app-utils/marketplace-update-state.js +132 -0
- package/src/lib/app-utils/marketplace-update-state.js.map +1 -0
- package/src/lib/app-utils/marketplace-verification.d.ts +95 -0
- package/src/lib/app-utils/marketplace-verification.js +81 -0
- package/src/lib/app-utils/marketplace-verification.js.map +1 -0
- package/src/lib/app-utils/measure-node-map.d.ts +76 -0
- package/src/lib/app-utils/measure-node-map.js +111 -0
- package/src/lib/app-utils/measure-node-map.js.map +1 -0
- package/src/lib/app-utils/media-alt.d.ts +55 -0
- package/src/lib/app-utils/media-alt.js +58 -0
- package/src/lib/app-utils/media-alt.js.map +1 -0
- package/src/lib/app-utils/media-asset-facts.d.ts +125 -0
- package/src/lib/app-utils/media-asset-facts.js +467 -0
- package/src/lib/app-utils/media-asset-facts.js.map +1 -0
- package/src/lib/app-utils/media-cdn-scope.d.ts +65 -0
- package/src/lib/app-utils/media-cdn-scope.js +75 -0
- package/src/lib/app-utils/media-cdn-scope.js.map +1 -0
- package/src/lib/app-utils/media-folders.d.ts +161 -0
- package/src/lib/app-utils/media-folders.js +230 -0
- package/src/lib/app-utils/media-folders.js.map +1 -0
- package/src/lib/app-utils/media-metadata.d.ts +277 -0
- package/src/lib/app-utils/media-metadata.js +388 -0
- package/src/lib/app-utils/media-metadata.js.map +1 -0
- package/src/lib/app-utils/media-picker-context.d.ts +93 -0
- package/src/lib/app-utils/media-picker-context.js +26 -0
- package/src/lib/app-utils/media-picker-context.js.map +1 -0
- package/src/lib/app-utils/media-quarantine.d.ts +247 -0
- package/src/lib/app-utils/media-quarantine.js +323 -0
- package/src/lib/app-utils/media-quarantine.js.map +1 -0
- package/src/lib/app-utils/media-ref.d.ts +661 -0
- package/src/lib/app-utils/media-ref.js +1055 -0
- package/src/lib/app-utils/media-ref.js.map +1 -0
- package/src/lib/app-utils/media-takedown-reach.d.ts +126 -0
- package/src/lib/app-utils/media-takedown-reach.js +143 -0
- package/src/lib/app-utils/media-takedown-reach.js.map +1 -0
- package/src/lib/app-utils/member-email-aliases.d.ts +180 -0
- package/src/lib/app-utils/member-email-aliases.js +217 -0
- package/src/lib/app-utils/member-email-aliases.js.map +1 -0
- package/src/lib/app-utils/merge-node-sx.d.ts +47 -0
- package/src/lib/app-utils/merge-node-sx.js +123 -0
- package/src/lib/app-utils/merge-node-sx.js.map +1 -0
- package/src/lib/app-utils/name-match.d.ts +155 -0
- package/src/lib/app-utils/name-match.js +175 -0
- package/src/lib/app-utils/name-match.js.map +1 -0
- package/src/lib/app-utils/name-search.d.ts +117 -0
- package/src/lib/app-utils/name-search.js +145 -0
- package/src/lib/app-utils/name-search.js.map +1 -0
- package/src/lib/app-utils/node-capabilities.d.ts +85 -0
- package/src/lib/app-utils/node-capabilities.js +88 -0
- package/src/lib/app-utils/node-capabilities.js.map +1 -0
- package/src/lib/app-utils/node-definition-sanitizer.d.ts +164 -0
- package/src/lib/app-utils/node-definition-sanitizer.js +402 -0
- package/src/lib/app-utils/node-definition-sanitizer.js.map +1 -0
- package/src/lib/app-utils/node-identity.d.ts +47 -0
- package/src/lib/app-utils/node-identity.js +50 -0
- package/src/lib/app-utils/node-identity.js.map +1 -0
- package/src/lib/app-utils/node-interactions.d.ts +102 -0
- package/src/lib/app-utils/node-interactions.js +192 -0
- package/src/lib/app-utils/node-interactions.js.map +1 -0
- package/src/lib/app-utils/node-url-policy.d.ts +54 -0
- package/src/lib/app-utils/node-url-policy.js +72 -0
- package/src/lib/app-utils/node-url-policy.js.map +1 -0
- package/src/lib/app-utils/notifications.d.ts +71 -0
- package/src/lib/app-utils/notifications.js +101 -0
- package/src/lib/app-utils/notifications.js.map +1 -0
- package/src/lib/app-utils/onboarding-deep-link.d.ts +120 -0
- package/src/lib/app-utils/onboarding-deep-link.js +142 -0
- package/src/lib/app-utils/onboarding-deep-link.js.map +1 -0
- package/src/lib/app-utils/operator-identity.d.ts +207 -0
- package/src/lib/app-utils/operator-identity.js +186 -0
- package/src/lib/app-utils/operator-identity.js.map +1 -0
- package/src/lib/app-utils/org-billing-doc.d.ts +231 -0
- package/src/lib/app-utils/org-billing-doc.js +238 -0
- package/src/lib/app-utils/org-billing-doc.js.map +1 -0
- package/src/lib/app-utils/org-override-reason.d.ts +100 -0
- package/src/lib/app-utils/org-override-reason.js +116 -0
- package/src/lib/app-utils/org-override-reason.js.map +1 -0
- package/src/lib/app-utils/org-permissions.d.ts +194 -0
- package/src/lib/app-utils/org-permissions.js +357 -0
- package/src/lib/app-utils/org-permissions.js.map +1 -0
- package/src/lib/app-utils/org-roles.d.ts +72 -0
- package/src/lib/app-utils/org-roles.js +131 -0
- package/src/lib/app-utils/org-roles.js.map +1 -0
- package/src/lib/app-utils/organizations.d.ts +407 -0
- package/src/lib/app-utils/organizations.js +511 -0
- package/src/lib/app-utils/organizations.js.map +1 -0
- package/src/lib/app-utils/page-header-actions-context.d.ts +83 -0
- package/src/lib/app-utils/page-header-actions-context.js +58 -0
- package/src/lib/app-utils/page-header-actions-context.js.map +1 -0
- package/src/lib/app-utils/page-header-record-context.d.ts +80 -0
- package/src/lib/app-utils/page-header-record-context.js +64 -0
- package/src/lib/app-utils/page-header-record-context.js.map +1 -0
- package/src/lib/app-utils/page-markdown.d.ts +103 -0
- package/src/lib/app-utils/page-markdown.js +385 -0
- package/src/lib/app-utils/page-markdown.js.map +1 -0
- package/src/lib/app-utils/paid-media-source.d.ts +90 -0
- package/src/lib/app-utils/paid-media-source.js +184 -0
- package/src/lib/app-utils/paid-media-source.js.map +1 -0
- package/src/lib/app-utils/palette-sx.d.ts +34 -0
- package/src/lib/app-utils/palette-sx.js +150 -0
- package/src/lib/app-utils/palette-sx.js.map +1 -0
- package/src/lib/app-utils/password-policy.d.ts +47 -0
- package/src/lib/app-utils/password-policy.js +46 -0
- package/src/lib/app-utils/password-policy.js.map +1 -0
- package/src/lib/app-utils/payments-configured.d.ts +84 -0
- package/src/lib/app-utils/payments-configured.js +88 -0
- package/src/lib/app-utils/payments-configured.js.map +1 -0
- package/src/lib/app-utils/person-erasure.d.ts +126 -0
- package/src/lib/app-utils/person-erasure.js +121 -0
- package/src/lib/app-utils/person-erasure.js.map +1 -0
- package/src/lib/app-utils/person-key.d.ts +32 -0
- package/src/lib/app-utils/person-key.js +62 -0
- package/src/lib/app-utils/person-key.js.map +1 -0
- package/src/lib/app-utils/plan-entitlements.d.ts +2756 -0
- package/src/lib/app-utils/plan-entitlements.js +4085 -0
- package/src/lib/app-utils/plan-entitlements.js.map +1 -0
- package/src/lib/app-utils/platform-ad-conversions.d.ts +122 -0
- package/src/lib/app-utils/platform-ad-conversions.js +174 -0
- package/src/lib/app-utils/platform-ad-conversions.js.map +1 -0
- package/src/lib/app-utils/platform-advertising-tags.d.ts +139 -0
- package/src/lib/app-utils/platform-advertising-tags.js +203 -0
- package/src/lib/app-utils/platform-advertising-tags.js.map +1 -0
- package/src/lib/app-utils/platform-brand.d.ts +151 -0
- package/src/lib/app-utils/platform-brand.js +175 -0
- package/src/lib/app-utils/platform-brand.js.map +1 -0
- package/src/lib/app-utils/platform-consent-default.d.ts +142 -0
- package/src/lib/app-utils/platform-consent-default.js +295 -0
- package/src/lib/app-utils/platform-consent-default.js.map +1 -0
- package/src/lib/app-utils/platform-marketing-consent.d.ts +151 -0
- package/src/lib/app-utils/platform-marketing-consent.js +182 -0
- package/src/lib/app-utils/platform-marketing-consent.js.map +1 -0
- package/src/lib/app-utils/platform-marketing-host.d.ts +33 -0
- package/src/lib/app-utils/platform-marketing-host.js +97 -0
- package/src/lib/app-utils/platform-marketing-host.js.map +1 -0
- package/src/lib/app-utils/platform-visitor-consent.d.ts +252 -0
- package/src/lib/app-utils/platform-visitor-consent.js +533 -0
- package/src/lib/app-utils/platform-visitor-consent.js.map +1 -0
- package/src/lib/app-utils/plugin-api-cross-origin.d.ts +61 -0
- package/src/lib/app-utils/plugin-api-cross-origin.js +202 -0
- package/src/lib/app-utils/plugin-api-cross-origin.js.map +1 -0
- package/src/lib/app-utils/plugin-api-rate-limit.d.ts +192 -0
- package/src/lib/app-utils/plugin-api-rate-limit.js +270 -0
- package/src/lib/app-utils/plugin-api-rate-limit.js.map +1 -0
- package/src/lib/app-utils/plugin-artifact-path.d.ts +32 -0
- package/src/lib/app-utils/plugin-artifact-path.js +33 -0
- package/src/lib/app-utils/plugin-artifact-path.js.map +1 -0
- package/src/lib/app-utils/plugin-bundle-checks.d.ts +148 -0
- package/src/lib/app-utils/plugin-bundle-checks.js +989 -0
- package/src/lib/app-utils/plugin-bundle-checks.js.map +1 -0
- package/src/lib/app-utils/plugin-manifest.d.ts +516 -0
- package/src/lib/app-utils/plugin-manifest.js +687 -0
- package/src/lib/app-utils/plugin-manifest.js.map +1 -0
- package/src/lib/app-utils/published-legal-pages.d.ts +71 -0
- package/src/lib/app-utils/published-legal-pages.js +90 -0
- package/src/lib/app-utils/published-legal-pages.js.map +1 -0
- package/src/lib/app-utils/publisher-agreement.d.ts +254 -0
- package/src/lib/app-utils/publisher-agreement.js +274 -0
- package/src/lib/app-utils/publisher-agreement.js.map +1 -0
- package/src/lib/app-utils/publisher-attestation.d.ts +99 -0
- package/src/lib/app-utils/publisher-attestation.js +158 -0
- package/src/lib/app-utils/publisher-attestation.js.map +1 -0
- package/src/lib/app-utils/recipient-email-render.d.ts +216 -0
- package/src/lib/app-utils/recipient-email-render.js +221 -0
- package/src/lib/app-utils/recipient-email-render.js.map +1 -0
- package/src/lib/app-utils/redispatch-caught-error.d.ts +38 -0
- package/src/lib/app-utils/redispatch-caught-error.js +46 -0
- package/src/lib/app-utils/redispatch-caught-error.js.map +1 -0
- package/src/lib/app-utils/registering-plugin.d.ts +19 -0
- package/src/lib/app-utils/registering-plugin.js +38 -0
- package/src/lib/app-utils/registering-plugin.js.map +1 -0
- package/src/lib/app-utils/release-flags.d.ts +283 -0
- package/src/lib/app-utils/release-flags.js +518 -0
- package/src/lib/app-utils/release-flags.js.map +1 -0
- package/src/lib/app-utils/repair-canvas-nodes.d.ts +130 -0
- package/src/lib/app-utils/repair-canvas-nodes.js +298 -0
- package/src/lib/app-utils/repair-canvas-nodes.js.map +1 -0
- package/src/lib/app-utils/repeat-infringer.d.ts +166 -0
- package/src/lib/app-utils/repeat-infringer.js +188 -0
- package/src/lib/app-utils/repeat-infringer.js.map +1 -0
- package/src/lib/app-utils/repeat-sources.d.ts +115 -0
- package/src/lib/app-utils/repeat-sources.js +86 -0
- package/src/lib/app-utils/repeat-sources.js.map +1 -0
- package/src/lib/app-utils/request-geo.d.ts +114 -0
- package/src/lib/app-utils/request-geo.js +247 -0
- package/src/lib/app-utils/request-geo.js.map +1 -0
- package/src/lib/app-utils/request-ip.d.ts +213 -0
- package/src/lib/app-utils/request-ip.js +344 -0
- package/src/lib/app-utils/request-ip.js.map +1 -0
- package/src/lib/app-utils/resolve-named-tokens.d.ts +26 -0
- package/src/lib/app-utils/resolve-named-tokens.js +59 -0
- package/src/lib/app-utils/resolve-named-tokens.js.map +1 -0
- package/src/lib/app-utils/responsive-typography-sx.d.ts +77 -0
- package/src/lib/app-utils/responsive-typography-sx.js +122 -0
- package/src/lib/app-utils/responsive-typography-sx.js.map +1 -0
- package/src/lib/app-utils/reusable-component-keys.d.ts +135 -0
- package/src/lib/app-utils/reusable-component-keys.js +140 -0
- package/src/lib/app-utils/reusable-component-keys.js.map +1 -0
- package/src/lib/app-utils/reusable-prop-values.d.ts +199 -0
- package/src/lib/app-utils/reusable-prop-values.js +494 -0
- package/src/lib/app-utils/reusable-prop-values.js.map +1 -0
- package/src/lib/app-utils/safe-json-ld.d.ts +29 -0
- package/src/lib/app-utils/safe-json-ld.js +37 -0
- package/src/lib/app-utils/safe-json-ld.js.map +1 -0
- package/src/lib/app-utils/sanitize-svg.d.ts +55 -0
- package/src/lib/app-utils/sanitize-svg.js +460 -0
- package/src/lib/app-utils/sanitize-svg.js.map +1 -0
- package/src/lib/app-utils/scheme-sx.d.ts +84 -0
- package/src/lib/app-utils/scheme-sx.js +148 -0
- package/src/lib/app-utils/scheme-sx.js.map +1 -0
- package/src/lib/app-utils/scope-tokens.d.ts +249 -0
- package/src/lib/app-utils/scope-tokens.js +331 -0
- package/src/lib/app-utils/scope-tokens.js.map +1 -0
- package/src/lib/app-utils/screen-link-context-value.d.ts +57 -0
- package/src/lib/app-utils/screen-link-context-value.js +43 -0
- package/src/lib/app-utils/screen-link-context-value.js.map +1 -0
- package/src/lib/app-utils/screen-link-context.d.ts +185 -0
- package/src/lib/app-utils/screen-link-context.js +304 -0
- package/src/lib/app-utils/screen-link-context.js.map +1 -0
- package/src/lib/app-utils/screen-link-value.d.ts +269 -0
- package/src/lib/app-utils/screen-link-value.js +384 -0
- package/src/lib/app-utils/screen-link-value.js.map +1 -0
- package/src/lib/app-utils/screen-route.d.ts +669 -0
- package/src/lib/app-utils/screen-route.js +751 -0
- package/src/lib/app-utils/screen-route.js.map +1 -0
- package/src/lib/app-utils/screen-seo-fields.d.ts +37 -0
- package/src/lib/app-utils/screen-seo-fields.js +42 -0
- package/src/lib/app-utils/screen-seo-fields.js.map +1 -0
- package/src/lib/app-utils/search-indexing.d.ts +162 -0
- package/src/lib/app-utils/search-indexing.js +207 -0
- package/src/lib/app-utils/search-indexing.js.map +1 -0
- package/src/lib/app-utils/seo-listing-fields.d.ts +70 -0
- package/src/lib/app-utils/seo-listing-fields.js +75 -0
- package/src/lib/app-utils/seo-listing-fields.js.map +1 -0
- package/src/lib/app-utils/seo-locale.d.ts +119 -0
- package/src/lib/app-utils/seo-locale.js +133 -0
- package/src/lib/app-utils/seo-locale.js.map +1 -0
- package/src/lib/app-utils/seo-title-variables.d.ts +149 -0
- package/src/lib/app-utils/seo-title-variables.js +190 -0
- package/src/lib/app-utils/seo-title-variables.js.map +1 -0
- package/src/lib/app-utils/seo-title.d.ts +70 -0
- package/src/lib/app-utils/seo-title.js +117 -0
- package/src/lib/app-utils/seo-title.js.map +1 -0
- package/src/lib/app-utils/server.d.ts +174 -0
- package/src/lib/app-utils/server.js +314 -0
- package/src/lib/app-utils/server.js.map +1 -0
- package/src/lib/app-utils/site-context.d.ts +106 -0
- package/src/lib/app-utils/site-context.js +100 -0
- package/src/lib/app-utils/site-context.js.map +1 -0
- package/src/lib/app-utils/sitemap.d.ts +117 -0
- package/src/lib/app-utils/sitemap.js +183 -0
- package/src/lib/app-utils/sitemap.js.map +1 -0
- package/src/lib/app-utils/social-image.d.ts +112 -0
- package/src/lib/app-utils/social-image.js +191 -0
- package/src/lib/app-utils/social-image.js.map +1 -0
- package/src/lib/app-utils/starter-templates.d.ts +99 -0
- package/src/lib/app-utils/starter-templates.js +579 -0
- package/src/lib/app-utils/starter-templates.js.map +1 -0
- package/src/lib/app-utils/stored-nodes.d.ts +120 -0
- package/src/lib/app-utils/stored-nodes.js +174 -0
- package/src/lib/app-utils/stored-nodes.js.map +1 -0
- package/src/lib/app-utils/strip-undefined.d.ts +59 -0
- package/src/lib/app-utils/strip-undefined.js +95 -0
- package/src/lib/app-utils/strip-undefined.js.map +1 -0
- package/src/lib/app-utils/stripe-deployment-mode.d.ts +47 -0
- package/src/lib/app-utils/stripe-deployment-mode.js +70 -0
- package/src/lib/app-utils/stripe-deployment-mode.js.map +1 -0
- package/src/lib/app-utils/support-tiers.d.ts +108 -0
- package/src/lib/app-utils/support-tiers.js +201 -0
- package/src/lib/app-utils/support-tiers.js.map +1 -0
- package/src/lib/app-utils/timezone-geo-hint.d.ts +36 -0
- package/src/lib/app-utils/timezone-geo-hint.js +180 -0
- package/src/lib/app-utils/timezone-geo-hint.js.map +1 -0
- package/src/lib/app-utils/upload-cors.d.ts +155 -0
- package/src/lib/app-utils/upload-cors.js +254 -0
- package/src/lib/app-utils/upload-cors.js.map +1 -0
- package/src/lib/app-utils/upload-inspection.d.ts +159 -0
- package/src/lib/app-utils/upload-inspection.js +539 -0
- package/src/lib/app-utils/upload-inspection.js.map +1 -0
- package/src/lib/app-utils/url-slug.d.ts +40 -0
- package/src/lib/app-utils/url-slug.js +42 -0
- package/src/lib/app-utils/url-slug.js.map +1 -0
- package/src/lib/app-utils/usage-budget.d.ts +429 -0
- package/src/lib/app-utils/usage-budget.js +421 -0
- package/src/lib/app-utils/usage-budget.js.map +1 -0
- package/src/lib/app-utils/variables.d.ts +96 -0
- package/src/lib/app-utils/variables.js +233 -0
- package/src/lib/app-utils/variables.js.map +1 -0
- package/src/lib/app-utils/video-asset-facts.d.ts +61 -0
- package/src/lib/app-utils/video-asset-facts.js +70 -0
- package/src/lib/app-utils/video-asset-facts.js.map +1 -0
- package/src/lib/app-utils/video-object.d.ts +89 -0
- package/src/lib/app-utils/video-object.js +245 -0
- package/src/lib/app-utils/video-object.js.map +1 -0
- package/src/lib/app-utils/visitor-consent.d.ts +757 -0
- package/src/lib/app-utils/visitor-consent.js +981 -0
- package/src/lib/app-utils/visitor-consent.js.map +1 -0
- package/src/lib/app-utils/visitor-record-ceiling.d.ts +223 -0
- package/src/lib/app-utils/visitor-record-ceiling.js +215 -0
- package/src/lib/app-utils/visitor-record-ceiling.js.map +1 -0
- package/src/lib/app-utils/web-vitals-rum.d.ts +53 -0
- package/src/lib/app-utils/web-vitals-rum.js +278 -0
- package/src/lib/app-utils/web-vitals-rum.js.map +1 -0
- package/src/lib/app-utils/webhook-delivery.d.ts +324 -0
- package/src/lib/app-utils/webhook-delivery.js +413 -0
- package/src/lib/app-utils/webhook-delivery.js.map +1 -0
- package/src/lib/app-utils/where-used.d.ts +57 -0
- package/src/lib/app-utils/where-used.js +59 -0
- package/src/lib/app-utils/where-used.js.map +1 -0
- package/src/lib/app-utils/wistia-embed.d.ts +86 -0
- package/src/lib/app-utils/wistia-embed.js +119 -0
- package/src/lib/app-utils/wistia-embed.js.map +1 -0
- package/src/lib/app-utils/workflows.d.ts +136 -0
- package/src/lib/app-utils/workflows.js +346 -0
- package/src/lib/app-utils/workflows.js.map +1 -0
- package/src/lib/canvas-manager/canvas-manager-tree.d.ts +109 -0
- package/src/lib/canvas-manager/canvas-manager-tree.js +139 -0
- package/src/lib/canvas-manager/canvas-manager-tree.js.map +1 -0
- package/src/lib/canvas-manager/canvas-manager.d.ts +549 -0
- package/src/lib/canvas-manager/canvas-manager.js +1311 -0
- package/src/lib/canvas-manager/canvas-manager.js.map +1 -0
- package/src/lib/canvas-manager/index.d.ts +20 -0
- package/src/lib/canvas-manager/index.js +21 -0
- package/src/lib/canvas-manager/index.js.map +1 -0
- package/src/lib/canvas-manager/stores/index.d.ts +17 -0
- package/src/lib/canvas-manager/stores/index.js +18 -0
- package/src/lib/canvas-manager/stores/index.js.map +1 -0
- package/src/lib/canvas-manager/stores/node.store.d.ts +30 -0
- package/src/lib/canvas-manager/stores/node.store.js +45 -0
- package/src/lib/canvas-manager/stores/node.store.js.map +1 -0
- package/src/lib/components-manager/components-manager.d.ts +56 -0
- package/src/lib/components-manager/components-manager.js +191 -0
- package/src/lib/components-manager/components-manager.js.map +1 -0
- package/src/lib/components-manager/index.d.ts +18 -0
- package/src/lib/components-manager/index.js +19 -0
- package/src/lib/components-manager/index.js.map +1 -0
- package/src/lib/emit-manager/emit-manager.d.ts +56 -0
- package/src/lib/emit-manager/emit-manager.js +60 -0
- package/src/lib/emit-manager/emit-manager.js.map +1 -0
- package/src/lib/emit-manager/index.d.ts +18 -0
- package/src/lib/emit-manager/index.js +19 -0
- package/src/lib/emit-manager/index.js.map +1 -0
- package/src/lib/foundation/constants/_internal.d.ts +18 -0
- package/src/lib/foundation/constants/_internal.js +62 -0
- package/src/lib/foundation/constants/_internal.js.map +1 -0
- package/src/lib/foundation/constants/app.d.ts +23 -0
- package/src/lib/foundation/constants/app.js +25 -0
- package/src/lib/foundation/constants/app.js.map +1 -0
- package/src/lib/foundation/constants/canvas.d.ts +18 -0
- package/src/lib/foundation/constants/canvas.js +18 -0
- package/src/lib/foundation/constants/canvas.js.map +1 -0
- package/src/lib/foundation/constants/components.d.ts +54 -0
- package/src/lib/foundation/constants/components.js +61 -0
- package/src/lib/foundation/constants/components.js.map +1 -0
- package/src/lib/foundation/constants/shared.d.ts +50 -0
- package/src/lib/foundation/constants/shared.js +49 -0
- package/src/lib/foundation/constants/shared.js.map +1 -0
- package/src/lib/foundation/constants/symbol.d.ts +63 -0
- package/src/lib/foundation/constants/symbol.js +75 -0
- package/src/lib/foundation/constants/symbol.js.map +1 -0
- package/src/lib/foundation/definitions/components.types.d.ts +372 -0
- package/src/lib/foundation/definitions/components.types.js +180 -0
- package/src/lib/foundation/definitions/components.types.js.map +1 -0
- package/src/lib/foundation/definitions/contact.types.d.ts +73 -0
- package/src/lib/foundation/definitions/contact.types.js +107 -0
- package/src/lib/foundation/definitions/contact.types.js.map +1 -0
- package/src/lib/foundation/definitions/host-content-collections.d.ts +137 -0
- package/src/lib/foundation/definitions/host-content-collections.js +219 -0
- package/src/lib/foundation/definitions/host-content-collections.js.map +1 -0
- package/src/lib/foundation/definitions/org-billing.types.d.ts +1361 -0
- package/src/lib/foundation/definitions/org-billing.types.js +77 -0
- package/src/lib/foundation/definitions/org-billing.types.js.map +1 -0
- package/src/lib/foundation/definitions/organization.types.d.ts +307 -0
- package/src/lib/foundation/definitions/organization.types.js +42 -0
- package/src/lib/foundation/definitions/organization.types.js.map +1 -0
- package/src/lib/foundation/definitions/platform.types.d.ts +1326 -0
- package/src/lib/foundation/definitions/platform.types.js +124 -0
- package/src/lib/foundation/definitions/platform.types.js.map +1 -0
- package/src/lib/foundation/definitions/property-kinds.d.ts +189 -0
- package/src/lib/foundation/definitions/property-kinds.js +565 -0
- package/src/lib/foundation/definitions/property-kinds.js.map +1 -0
- package/src/lib/foundation/definitions/shared.d.ts +23 -0
- package/src/lib/foundation/definitions/shared.js +18 -0
- package/src/lib/foundation/definitions/shared.js.map +1 -0
- package/src/lib/foundation/definitions/write-deny-coverage.util.d.ts +249 -0
- package/src/lib/foundation/definitions/write-deny-coverage.util.js +499 -0
- package/src/lib/foundation/definitions/write-deny-coverage.util.js.map +1 -0
- package/src/lib/foundation/index.d.ts +32 -0
- package/src/lib/foundation/index.js +67 -0
- package/src/lib/foundation/index.js.map +1 -0
- package/src/lib/lifecycle.d.ts +24 -0
- package/src/lib/lifecycle.js +39 -0
- package/src/lib/lifecycle.js.map +1 -0
- package/src/lib/mst/common.d.ts +17 -0
- package/src/lib/mst/common.js +23 -0
- package/src/lib/mst/common.js.map +1 -0
- package/src/lib/mst/index.d.ts +19 -0
- package/src/lib/mst/index.js +20 -0
- package/src/lib/mst/index.js.map +1 -0
- package/src/lib/mst/json.d.ts +22 -0
- package/src/lib/mst/json.js +23 -0
- package/src/lib/mst/json.js.map +1 -0
- package/src/lib/mst/types.d.ts +20 -0
- package/src/lib/mst/types.js +18 -0
- package/src/lib/mst/types.js.map +1 -0
- package/src/lib/plugin-manager/billing-webhook-hooks.d.ts +77 -0
- package/src/lib/plugin-manager/billing-webhook-hooks.js +55 -0
- package/src/lib/plugin-manager/billing-webhook-hooks.js.map +1 -0
- package/src/lib/plugin-manager/commerce-zone-props.d.ts +172 -0
- package/src/lib/plugin-manager/commerce-zone-props.js +31 -0
- package/src/lib/plugin-manager/commerce-zone-props.js.map +1 -0
- package/src/lib/plugin-manager/custom-fields.d.ts +60 -0
- package/src/lib/plugin-manager/custom-fields.js +39 -0
- package/src/lib/plugin-manager/custom-fields.js.map +1 -0
- package/src/lib/plugin-manager/editor-sessions.d.ts +109 -0
- package/src/lib/plugin-manager/editor-sessions.js +137 -0
- package/src/lib/plugin-manager/editor-sessions.js.map +1 -0
- package/src/lib/plugin-manager/enabled-plugins.d.ts +438 -0
- package/src/lib/plugin-manager/enabled-plugins.js +403 -0
- package/src/lib/plugin-manager/enabled-plugins.js.map +1 -0
- package/src/lib/plugin-manager/feature-plugins.d.ts +1314 -0
- package/src/lib/plugin-manager/feature-plugins.js +609 -0
- package/src/lib/plugin-manager/feature-plugins.js.map +1 -0
- package/src/lib/plugin-manager/first-party-plugins.generated.d.ts +11 -0
- package/src/lib/plugin-manager/first-party-plugins.generated.js +149 -0
- package/src/lib/plugin-manager/first-party-plugins.generated.js.map +1 -0
- package/src/lib/plugin-manager/index.d.ts +42 -0
- package/src/lib/plugin-manager/index.js +46 -0
- package/src/lib/plugin-manager/index.js.map +1 -0
- package/src/lib/plugin-manager/install-presets.d.ts +93 -0
- package/src/lib/plugin-manager/install-presets.js +86 -0
- package/src/lib/plugin-manager/install-presets.js.map +1 -0
- package/src/lib/plugin-manager/media-delivery-provider.d.ts +124 -0
- package/src/lib/plugin-manager/media-delivery-provider.js +53 -0
- package/src/lib/plugin-manager/media-delivery-provider.js.map +1 -0
- package/src/lib/plugin-manager/order-fulfilment.d.ts +142 -0
- package/src/lib/plugin-manager/order-fulfilment.js +104 -0
- package/src/lib/plugin-manager/order-fulfilment.js.map +1 -0
- package/src/lib/plugin-manager/plugin-activity-actions.d.ts +122 -0
- package/src/lib/plugin-manager/plugin-activity-actions.js +140 -0
- package/src/lib/plugin-manager/plugin-activity-actions.js.map +1 -0
- package/src/lib/plugin-manager/plugin-bridge.d.ts +98 -0
- package/src/lib/plugin-manager/plugin-bridge.js +154 -0
- package/src/lib/plugin-manager/plugin-bridge.js.map +1 -0
- package/src/lib/plugin-manager/plugin-config.d.ts +148 -0
- package/src/lib/plugin-manager/plugin-config.js +228 -0
- package/src/lib/plugin-manager/plugin-config.js.map +1 -0
- package/src/lib/plugin-manager/plugin-console-crons.d.ts +139 -0
- package/src/lib/plugin-manager/plugin-console-crons.js +177 -0
- package/src/lib/plugin-manager/plugin-console-crons.js.map +1 -0
- package/src/lib/plugin-manager/plugin-contact-capture.d.ts +220 -0
- package/src/lib/plugin-manager/plugin-contact-capture.js +89 -0
- package/src/lib/plugin-manager/plugin-contact-capture.js.map +1 -0
- package/src/lib/plugin-manager/plugin-contributions.d.ts +244 -0
- package/src/lib/plugin-manager/plugin-contributions.js +283 -0
- package/src/lib/plugin-manager/plugin-contributions.js.map +1 -0
- package/src/lib/plugin-manager/plugin-entitlement-keys.d.ts +169 -0
- package/src/lib/plugin-manager/plugin-entitlement-keys.js +84 -0
- package/src/lib/plugin-manager/plugin-entitlement-keys.js.map +1 -0
- package/src/lib/plugin-manager/plugin-entitlements.d.ts +181 -0
- package/src/lib/plugin-manager/plugin-entitlements.js +188 -0
- package/src/lib/plugin-manager/plugin-entitlements.js.map +1 -0
- package/src/lib/plugin-manager/plugin-events.d.ts +145 -0
- package/src/lib/plugin-manager/plugin-events.js +79 -0
- package/src/lib/plugin-manager/plugin-events.js.map +1 -0
- package/src/lib/plugin-manager/plugin-figures.d.ts +251 -0
- package/src/lib/plugin-manager/plugin-figures.js +252 -0
- package/src/lib/plugin-manager/plugin-figures.js.map +1 -0
- package/src/lib/plugin-manager/plugin-host-collections.d.ts +146 -0
- package/src/lib/plugin-manager/plugin-host-collections.js +116 -0
- package/src/lib/plugin-manager/plugin-host-collections.js.map +1 -0
- package/src/lib/plugin-manager/plugin-jobs.d.ts +130 -0
- package/src/lib/plugin-manager/plugin-jobs.js +182 -0
- package/src/lib/plugin-manager/plugin-jobs.js.map +1 -0
- package/src/lib/plugin-manager/plugin-loader.d.ts +86 -0
- package/src/lib/plugin-manager/plugin-loader.js +223 -0
- package/src/lib/plugin-manager/plugin-loader.js.map +1 -0
- package/src/lib/plugin-manager/plugin-manager.d.ts +95 -0
- package/src/lib/plugin-manager/plugin-manager.js +343 -0
- package/src/lib/plugin-manager/plugin-manager.js.map +1 -0
- package/src/lib/plugin-manager/plugin-metered-lines.d.ts +97 -0
- package/src/lib/plugin-manager/plugin-metered-lines.js +123 -0
- package/src/lib/plugin-manager/plugin-metered-lines.js.map +1 -0
- package/src/lib/plugin-manager/plugin-org-erasure.d.ts +52 -0
- package/src/lib/plugin-manager/plugin-org-erasure.js +100 -0
- package/src/lib/plugin-manager/plugin-org-erasure.js.map +1 -0
- package/src/lib/plugin-manager/plugin-permissions.d.ts +69 -0
- package/src/lib/plugin-manager/plugin-permissions.js +77 -0
- package/src/lib/plugin-manager/plugin-permissions.js.map +1 -0
- package/src/lib/plugin-manager/plugin-person-erasure.d.ts +58 -0
- package/src/lib/plugin-manager/plugin-person-erasure.js +109 -0
- package/src/lib/plugin-manager/plugin-person-erasure.js.map +1 -0
- package/src/lib/plugin-manager/plugin-record-cards.d.ts +99 -0
- package/src/lib/plugin-manager/plugin-record-cards.js +59 -0
- package/src/lib/plugin-manager/plugin-record-cards.js.map +1 -0
- package/src/lib/plugin-manager/plugin-record-facts.d.ts +111 -0
- package/src/lib/plugin-manager/plugin-record-facts.js +51 -0
- package/src/lib/plugin-manager/plugin-record-facts.js.map +1 -0
- package/src/lib/plugin-manager/plugin-record-routes.d.ts +129 -0
- package/src/lib/plugin-manager/plugin-record-routes.js +93 -0
- package/src/lib/plugin-manager/plugin-record-routes.js.map +1 -0
- package/src/lib/plugin-manager/plugin-record-timeline.d.ts +147 -0
- package/src/lib/plugin-manager/plugin-record-timeline.js +39 -0
- package/src/lib/plugin-manager/plugin-record-timeline.js.map +1 -0
- package/src/lib/plugin-manager/plugin-resource-drafts.d.ts +137 -0
- package/src/lib/plugin-manager/plugin-resource-drafts.js +51 -0
- package/src/lib/plugin-manager/plugin-resource-drafts.js.map +1 -0
- package/src/lib/plugin-manager/plugin-services.d.ts +94 -0
- package/src/lib/plugin-manager/plugin-services.js +153 -0
- package/src/lib/plugin-manager/plugin-services.js.map +1 -0
- package/src/lib/plugin-manager/plugin-styles-ui.d.ts +71 -0
- package/src/lib/plugin-manager/plugin-styles-ui.js +80 -0
- package/src/lib/plugin-manager/plugin-styles-ui.js.map +1 -0
- package/src/lib/plugin-manager/plugin-styles.d.ts +176 -0
- package/src/lib/plugin-manager/plugin-styles.js +186 -0
- package/src/lib/plugin-manager/plugin-styles.js.map +1 -0
- package/src/lib/plugin-manager/plugin-subprocessors.d.ts +135 -0
- package/src/lib/plugin-manager/plugin-subprocessors.js +129 -0
- package/src/lib/plugin-manager/plugin-subprocessors.js.map +1 -0
- package/src/lib/plugin-manager/plugin-tax-profile.d.ts +84 -0
- package/src/lib/plugin-manager/plugin-tax-profile.js +39 -0
- package/src/lib/plugin-manager/plugin-tax-profile.js.map +1 -0
- package/src/lib/plugin-manager/plugin-user-erasure.d.ts +53 -0
- package/src/lib/plugin-manager/plugin-user-erasure.js +84 -0
- package/src/lib/plugin-manager/plugin-user-erasure.js.map +1 -0
- package/src/lib/plugin-manager/plugin-zones.d.ts +121 -0
- package/src/lib/plugin-manager/plugin-zones.js +74 -0
- package/src/lib/plugin-manager/plugin-zones.js.map +1 -0
- package/src/lib/plugin-manager/realm-plugins.d.ts +112 -0
- package/src/lib/plugin-manager/realm-plugins.js +196 -0
- package/src/lib/plugin-manager/realm-plugins.js.map +1 -0
- package/src/lib/plugin-manager/realm-server.d.ts +54 -0
- package/src/lib/plugin-manager/realm-server.js +88 -0
- package/src/lib/plugin-manager/realm-server.js.map +1 -0
- package/src/lib/plugin-manager/record-zone-props.d.ts +126 -0
- package/src/lib/plugin-manager/record-zone-props.js +31 -0
- package/src/lib/plugin-manager/record-zone-props.js.map +1 -0
- package/src/lib/plugin-manager/site-page-hooks.d.ts +102 -0
- package/src/lib/plugin-manager/site-page-hooks.js +114 -0
- package/src/lib/plugin-manager/site-page-hooks.js.map +1 -0
- package/src/lib/plugin-manager/site-runtime.d.ts +57 -0
- package/src/lib/plugin-manager/site-runtime.js +25 -0
- package/src/lib/plugin-manager/site-runtime.js.map +1 -0
- package/src/lib/plugin-manager/usage-alert-contributors.d.ts +115 -0
- package/src/lib/plugin-manager/usage-alert-contributors.js +106 -0
- package/src/lib/plugin-manager/usage-alert-contributors.js.map +1 -0
- package/src/lib/types/ast.d.ts +199 -0
- package/src/lib/types/ast.js +20 -0
- package/src/lib/types/ast.js.map +1 -0
- package/src/lib/types/index.d.ts +20 -0
- package/src/lib/types/index.js +21 -0
- package/src/lib/types/index.js.map +1 -0
- package/src/lib/types/nodes.d.ts +608 -0
- package/src/lib/types/nodes.js +28 -0
- package/src/lib/types/nodes.js.map +1 -0
- package/src/lib/types/routing.d.ts +17 -0
- package/src/lib/types/routing.js +18 -0
- package/src/lib/types/routing.js.map +1 -0
- package/src/lib/types/screen.d.ts +23 -0
- package/src/lib/types/screen.js +18 -0
- package/src/lib/types/screen.js.map +1 -0
- package/src/lib/utils.d.ts +25 -0
- package/src/lib/utils.js +42 -0
- package/src/lib/utils.js.map +1 -0
- package/src/server.d.ts +37 -0
- package/src/server.js +55 -0
- package/src/server.js.map +1 -0
|
@@ -0,0 +1,261 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @license
|
|
3
|
+
* Copyright 2026 Aglyn LLC
|
|
4
|
+
*
|
|
5
|
+
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
6
|
+
* you may not use this file except in compliance with the License.
|
|
7
|
+
* You may obtain a copy of the License at
|
|
8
|
+
*
|
|
9
|
+
* http://www.apache.org/licenses/LICENSE-2.0
|
|
10
|
+
*
|
|
11
|
+
* Unless required by applicable law or agreed to in writing, software
|
|
12
|
+
* distributed under the License is distributed on an "AS IS" BASIS,
|
|
13
|
+
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
14
|
+
* See the License for the specific language governing permissions and
|
|
15
|
+
* limitations under the License.
|
|
16
|
+
*/ import { _ as _extends } from "@swc/helpers/_/_extends";
|
|
17
|
+
import { NODE_ROOT_ID } from "../canvas-manager/canvas-manager.js";
|
|
18
|
+
import { COMPONENT_NODE_ID_PREFIX } from "./reusable-component-keys.js";
|
|
19
|
+
import { mergeNodeSx } from "./merge-node-sx.js";
|
|
20
|
+
/** Persisted component id of the layout content outlet (plugins-mui). */ export const LAYOUT_SLOT_COMPONENT_ID = 'layoutSlot';
|
|
21
|
+
/**
|
|
22
|
+
* Prefix applied to layout node ids during composition so they can never
|
|
23
|
+
* collide with screen node ids (layout ids repeat across every bound
|
|
24
|
+
* screen).
|
|
25
|
+
*/ export const LAYOUT_NODE_ID_PREFIX = 'layout__';
|
|
26
|
+
/**
|
|
27
|
+
* How many layouts deep a chain may nest (AGL-703).
|
|
28
|
+
*
|
|
29
|
+
* A layout can render inside another layout, so the chain is walked rather
|
|
30
|
+
* than read once. This bounds it: a cycle is already refused at both write
|
|
31
|
+
* time and resolution time, and this is the belt to that pair of braces —
|
|
32
|
+
* a hand-edited document must not be able to hang a render.
|
|
33
|
+
*/ export const MAX_LAYOUT_CHAIN_DEPTH = 5;
|
|
34
|
+
/**
|
|
35
|
+
* Namespace for one level of the layout chain (AGL-703).
|
|
36
|
+
*
|
|
37
|
+
* Depth 1 — the layout a screen names directly — keeps the original
|
|
38
|
+
* `layout__` exactly. Every interaction authored before nesting existed
|
|
39
|
+
* stores raw canvas ids that {@link normalizeLeafId} matches against this
|
|
40
|
+
* prefix, so changing it would silently break them. Outer levels take
|
|
41
|
+
* `layout2__`, `layout3__`, … which is what keeps a grandparent layout's
|
|
42
|
+
* node ids from colliding with its child's: without a per-level namespace,
|
|
43
|
+
* two layouts in one chain sharing a node id would collapse into one node.
|
|
44
|
+
*/ export function layoutNodeIdPrefix(depth = 1) {
|
|
45
|
+
return depth <= 1 ? LAYOUT_NODE_ID_PREFIX : `layout${depth}__`;
|
|
46
|
+
}
|
|
47
|
+
/** Every namespace a composed tree can carry, outermost depth first. */ export const LAYOUT_NODE_ID_PREFIXES = Array.from({
|
|
48
|
+
length: MAX_LAYOUT_CHAIN_DEPTH
|
|
49
|
+
}, (_unused, index)=>layoutNodeIdPrefix(index + 1));
|
|
50
|
+
/**
|
|
51
|
+
* Whether a composed node id came from the LAYOUT chain rather than from the
|
|
52
|
+
* screen (AGL-1871).
|
|
53
|
+
*
|
|
54
|
+
* Composition namespaces ids by origin and nothing else does: a layout node
|
|
55
|
+
* is `layout__{id}` (`layout2__` … `layout5__` further up the chain, see
|
|
56
|
+
* {@link layoutNodeIdPrefix}) while a screen node keeps its raw canvas id. A
|
|
57
|
+
* reusable component grafted onto either one wears its host's id inside its
|
|
58
|
+
* own namespace — the marketing nav really ships as
|
|
59
|
+
* `cmp__layout__52Ef-3t6yd___R91yATrXH` — so the graft prefixes are peeled
|
|
60
|
+
* before the origin is read, and a graft nested in a graft peels the same way.
|
|
61
|
+
*
|
|
62
|
+
* A raw canvas id cannot collide with this: nanoid emits a single token with
|
|
63
|
+
* no `__` boundary in it, so `layout__` can only be a prefix that composition
|
|
64
|
+
* put there.
|
|
65
|
+
*/ export function isLayoutComposedNodeId(id) {
|
|
66
|
+
let value = String(id != null ? id : '');
|
|
67
|
+
while(value.startsWith(COMPONENT_NODE_ID_PREFIX)){
|
|
68
|
+
value = value.slice(COMPONENT_NODE_ID_PREFIX.length);
|
|
69
|
+
}
|
|
70
|
+
return LAYOUT_NODE_ID_PREFIXES.some((prefix)=>value.startsWith(prefix));
|
|
71
|
+
}
|
|
72
|
+
/**
|
|
73
|
+
* Whether a composed tree contains anything the SCREEN put there (AGL-1871).
|
|
74
|
+
*
|
|
75
|
+
* `composeLayoutAndScreenNodes` always answers with a populated map when the
|
|
76
|
+
* host has a layout, because the layout chrome is in it whether or not the
|
|
77
|
+
* screen contributed a single node. So "compose returned nodes" is not the
|
|
78
|
+
* same question as "this screen has a page on it", and code that treats the
|
|
79
|
+
* two as one renders a header and a footer around nothing.
|
|
80
|
+
*
|
|
81
|
+
* That is not hypothetical. Measured on `aglyn.com` 2026-08-23, the published
|
|
82
|
+
* *"Not found (404)"* screen composed to **297 nodes, every one of them layout
|
|
83
|
+
* chrome**, with the `layoutSlot` holding an empty child list — the screen was
|
|
84
|
+
* routed, published and completely empty. The 404 boundary read the 297 as
|
|
85
|
+
* "the site has a designed 404", declined its own fallback, and every unmatched
|
|
86
|
+
* URL on the site served branding wrapped around a blank page.
|
|
87
|
+
*
|
|
88
|
+
* The root node is not evidence — composition synthesizes one for an empty
|
|
89
|
+
* screen — so it is excluded.
|
|
90
|
+
*/ export function hasScreenAuthoredNodes(nodes) {
|
|
91
|
+
if (!nodes) return false;
|
|
92
|
+
for (const id of Object.keys(nodes)){
|
|
93
|
+
if (id === NODE_ROOT_ID) continue;
|
|
94
|
+
if (!isLayoutComposedNodeId(id)) return true;
|
|
95
|
+
}
|
|
96
|
+
return false;
|
|
97
|
+
}
|
|
98
|
+
function prefixLayoutId(id, prefix) {
|
|
99
|
+
return id === NODE_ROOT_ID ? id : `${prefix}${id}`;
|
|
100
|
+
}
|
|
101
|
+
function prefixChildIds(nodes, prefix) {
|
|
102
|
+
if (!Array.isArray(nodes)) return nodes;
|
|
103
|
+
return nodes.map((id)=>typeof id === 'string' ? prefixLayoutId(id, prefix) : id);
|
|
104
|
+
}
|
|
105
|
+
/**
|
|
106
|
+
* Grafts a screen's nodes into its layout's LayoutSlot, producing one
|
|
107
|
+
* normalized node map rooted at the layout root.
|
|
108
|
+
*
|
|
109
|
+
* - Layout node ids are namespaced with {@link LAYOUT_NODE_ID_PREFIX} (the
|
|
110
|
+
* root id excepted) to avoid collisions with screen ids.
|
|
111
|
+
* - The screen root's children are appended to the slot's own children and
|
|
112
|
+
* repointed at the slot. Slot children shouldn't normally exist, but
|
|
113
|
+
* designers do land chrome inside the slot — rendering it above the
|
|
114
|
+
* screen content preserves their intent instead of silently dropping it.
|
|
115
|
+
* - Inputs are never mutated. Without layout nodes — or when the layout has
|
|
116
|
+
* no slot — the screen nodes are returned unchanged so a stale or broken
|
|
117
|
+
* layout can't take a published screen down.
|
|
118
|
+
*/ export function composeLayoutAndScreenNodes(layoutNodes, screenNodes, /** Position in the layout chain; 1 = the layout the screen names. */ depth = 1) {
|
|
119
|
+
var _composed_slotId, _composed_slotId1;
|
|
120
|
+
if (!layoutNodes || !layoutNodes[NODE_ROOT_ID]) return screenNodes;
|
|
121
|
+
const slotEntry = Object.entries(layoutNodes).find(([, node])=>(node == null ? void 0 : node.componentId) === LAYOUT_SLOT_COMPONENT_ID);
|
|
122
|
+
if (!slotEntry) return screenNodes;
|
|
123
|
+
const prefix = layoutNodeIdPrefix(depth);
|
|
124
|
+
const composed = {};
|
|
125
|
+
for (const [id, node] of Object.entries(layoutNodes)){
|
|
126
|
+
var _node_$id;
|
|
127
|
+
const nextId = prefixLayoutId(id, prefix);
|
|
128
|
+
composed[nextId] = _extends({}, node, {
|
|
129
|
+
// Early seeds stored roots without $id or componentId, letting the
|
|
130
|
+
// canvas assign fallbacks — trust the map key so root identity stays
|
|
131
|
+
// canonical, and pin the root to a plain container so production
|
|
132
|
+
// renderers (which have no canvas defaults) can resolve it.
|
|
133
|
+
$id: id === NODE_ROOT_ID ? NODE_ROOT_ID : prefixLayoutId((_node_$id = node.$id) != null ? _node_$id : id, prefix)
|
|
134
|
+
}, id === NODE_ROOT_ID && !node.componentId && {
|
|
135
|
+
componentId: 'div'
|
|
136
|
+
}, node.parentId != null && {
|
|
137
|
+
parentId: prefixLayoutId(node.parentId, prefix)
|
|
138
|
+
}, node.nodes != null && {
|
|
139
|
+
nodes: prefixChildIds(node.nodes, prefix)
|
|
140
|
+
});
|
|
141
|
+
}
|
|
142
|
+
const slotId = prefixLayoutId(slotEntry[0], prefix);
|
|
143
|
+
const screenRoot = screenNodes[NODE_ROOT_ID];
|
|
144
|
+
const screenRootChildIds = Array.isArray(screenRoot == null ? void 0 : screenRoot.nodes) ? [
|
|
145
|
+
...screenRoot.nodes
|
|
146
|
+
] : [];
|
|
147
|
+
const slotChildIds = Array.isArray((_composed_slotId = composed[slotId]) == null ? void 0 : _composed_slotId.nodes) ? composed[slotId].nodes : [];
|
|
148
|
+
// The screen root is DROPPED — its children reparent to the slot — so
|
|
149
|
+
// whatever was styled on it has to land somewhere or it is simply lost.
|
|
150
|
+
// It was: a background painted on the `Document` layer showed in the
|
|
151
|
+
// besigner (which renders the screen alone, root included) and never on the
|
|
152
|
+
// published page, where the layout root is the only root and the screen's
|
|
153
|
+
// was gone. The slot is where those children now live, so it is where the
|
|
154
|
+
// screen root's own styling belongs — the same node, one composition later.
|
|
155
|
+
//
|
|
156
|
+
// Slot first, screen root after: a screen may override the layout's own
|
|
157
|
+
// styling of the region it fills, which is the direction of intent
|
|
158
|
+
// everywhere else composition merges (a component instance over its
|
|
159
|
+
// definition, AGL-1306).
|
|
160
|
+
const mergedSlotSx = mergeNodeSx((_composed_slotId1 = composed[slotId]) == null ? void 0 : _composed_slotId1.sx, screenRoot == null ? void 0 : screenRoot.sx);
|
|
161
|
+
// `className` is on the canvas node, not on the structural type this
|
|
162
|
+
// function is generic over, so it is read through a narrow cast rather than
|
|
163
|
+
// by widening the signature.
|
|
164
|
+
const classNameOf = (node)=>node == null ? void 0 : node.className;
|
|
165
|
+
const mergedSlotClassName = [
|
|
166
|
+
classNameOf(composed[slotId]),
|
|
167
|
+
classNameOf(screenRoot)
|
|
168
|
+
].filter(Boolean).join(' ') || undefined;
|
|
169
|
+
composed[slotId] = _extends({}, composed[slotId], {
|
|
170
|
+
nodes: [
|
|
171
|
+
...slotChildIds,
|
|
172
|
+
...screenRootChildIds
|
|
173
|
+
]
|
|
174
|
+
}, mergedSlotSx == null ? {} : {
|
|
175
|
+
sx: mergedSlotSx
|
|
176
|
+
}, mergedSlotClassName ? {
|
|
177
|
+
className: mergedSlotClassName
|
|
178
|
+
} : {});
|
|
179
|
+
for (const [id, node] of Object.entries(screenNodes)){
|
|
180
|
+
if (id === NODE_ROOT_ID) continue;
|
|
181
|
+
const isTopLevel = (node == null ? void 0 : node.parentId) === NODE_ROOT_ID;
|
|
182
|
+
composed[id] = isTopLevel ? _extends({}, node, {
|
|
183
|
+
parentId: slotId
|
|
184
|
+
}) : node;
|
|
185
|
+
}
|
|
186
|
+
// Top-level screen nodes may rely on child arrays alone (no parentId).
|
|
187
|
+
for (const childId of screenRootChildIds){
|
|
188
|
+
const node = composed[childId];
|
|
189
|
+
if (node && node.parentId !== slotId) {
|
|
190
|
+
composed[childId] = _extends({}, node, {
|
|
191
|
+
parentId: slotId
|
|
192
|
+
});
|
|
193
|
+
}
|
|
194
|
+
}
|
|
195
|
+
return composed;
|
|
196
|
+
}
|
|
197
|
+
/**
|
|
198
|
+
* Grafts a screen through a CHAIN of layouts, innermost first (AGL-703).
|
|
199
|
+
*
|
|
200
|
+
* `layoutNodesChain[0]` is the layout the screen names, `[1]` is that
|
|
201
|
+
* layout's own layout, and so on outward. Each step drops the previous
|
|
202
|
+
* result into the next layout's slot, so the outermost layout ends up as
|
|
203
|
+
* the root — the same relationship a screen has always had with its layout,
|
|
204
|
+
* applied one more time.
|
|
205
|
+
*
|
|
206
|
+
* A layout with no slot is skipped rather than fatal, and skipping it does
|
|
207
|
+
* not strand the layouts outside it: the accumulated tree simply passes
|
|
208
|
+
* through. That matches the single-layout behaviour, where a broken layout
|
|
209
|
+
* degrades to the bare screen instead of taking a published page down.
|
|
210
|
+
*
|
|
211
|
+
* Cycles are refused before this point (see `resolveLayoutChainIds`), and
|
|
212
|
+
* the chain is capped at {@link MAX_LAYOUT_CHAIN_DEPTH} regardless.
|
|
213
|
+
*/ export function composeLayoutChainAndScreenNodes(layoutNodesChain, screenNodes) {
|
|
214
|
+
let composed = screenNodes;
|
|
215
|
+
const chain = layoutNodesChain.slice(0, MAX_LAYOUT_CHAIN_DEPTH);
|
|
216
|
+
for (const [index, layoutNodes] of chain.entries()){
|
|
217
|
+
composed = composeLayoutAndScreenNodes(layoutNodes, composed, index + 1);
|
|
218
|
+
}
|
|
219
|
+
return composed;
|
|
220
|
+
}
|
|
221
|
+
/**
|
|
222
|
+
* Walks a layout's ancestry into a flat chain, innermost first (AGL-703).
|
|
223
|
+
*
|
|
224
|
+
* `parentOf` returns the layout a given layout renders inside, or undefined
|
|
225
|
+
* at the top. The walk stops on:
|
|
226
|
+
*
|
|
227
|
+
* - **self-reference** — a layout naming itself, which is the case worth
|
|
228
|
+
* naming out loud because it is the easy mistake to make;
|
|
229
|
+
* - **any repeat** — A → B → A would otherwise recurse forever, and a
|
|
230
|
+
* guard that only catches self-reference would miss it;
|
|
231
|
+
* - **depth** — {@link MAX_LAYOUT_CHAIN_DEPTH}.
|
|
232
|
+
*
|
|
233
|
+
* Stopping (rather than throwing) is deliberate: a cycle in stored data
|
|
234
|
+
* should render the layouts up to the repeat, not blank the site.
|
|
235
|
+
*/ export function resolveLayoutChainIds(layoutId, parentOf) {
|
|
236
|
+
const chain = [];
|
|
237
|
+
const seen = new Set();
|
|
238
|
+
let current = layoutId ? String(layoutId) : undefined;
|
|
239
|
+
while(current && !seen.has(current) && chain.length < MAX_LAYOUT_CHAIN_DEPTH){
|
|
240
|
+
chain.push(current);
|
|
241
|
+
seen.add(current);
|
|
242
|
+
const parent = parentOf(current);
|
|
243
|
+
current = parent ? String(parent) : undefined;
|
|
244
|
+
}
|
|
245
|
+
return chain;
|
|
246
|
+
}
|
|
247
|
+
/**
|
|
248
|
+
* Whether `candidateParentId` may be set as `layoutId`'s parent layout.
|
|
249
|
+
*
|
|
250
|
+
* Refuses self-reference and any candidate that already has this layout
|
|
251
|
+
* somewhere above it — picking one would close a loop. This is the
|
|
252
|
+
* write-time half; `resolveLayoutChainIds` stays defensive anyway, because
|
|
253
|
+
* a document can be edited by something that never called this.
|
|
254
|
+
*/ export function canNestLayout(layoutId, candidateParentId, parentOf) {
|
|
255
|
+
if (!layoutId || !candidateParentId) return false;
|
|
256
|
+
if (layoutId === candidateParentId) return false;
|
|
257
|
+
return !resolveLayoutChainIds(candidateParentId, parentOf).includes(layoutId);
|
|
258
|
+
}
|
|
259
|
+
export default composeLayoutAndScreenNodes;
|
|
260
|
+
|
|
261
|
+
//# sourceMappingURL=compose-layout-nodes.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../../../../../libs/aglyn/src/lib/app-utils/compose-layout-nodes.ts"],"sourcesContent":["/**\n * @license\n * Copyright 2026 Aglyn LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport type { AglynNodeSchema, NodeId } from '../foundation'\nimport { NODE_ROOT_ID } from '../canvas-manager/canvas-manager'\nimport { COMPONENT_NODE_ID_PREFIX } from './reusable-component-keys'\nimport { mergeNodeSx } from './merge-node-sx'\n\n/** Persisted component id of the layout content outlet (plugins-mui). */\nexport const LAYOUT_SLOT_COMPONENT_ID = 'layoutSlot'\n\n/**\n * Prefix applied to layout node ids during composition so they can never\n * collide with screen node ids (layout ids repeat across every bound\n * screen).\n */\nexport const LAYOUT_NODE_ID_PREFIX = 'layout__'\n\n/**\n * How many layouts deep a chain may nest (AGL-703).\n *\n * A layout can render inside another layout, so the chain is walked rather\n * than read once. This bounds it: a cycle is already refused at both write\n * time and resolution time, and this is the belt to that pair of braces —\n * a hand-edited document must not be able to hang a render.\n */\nexport const MAX_LAYOUT_CHAIN_DEPTH = 5\n\n/**\n * Namespace for one level of the layout chain (AGL-703).\n *\n * Depth 1 — the layout a screen names directly — keeps the original\n * `layout__` exactly. Every interaction authored before nesting existed\n * stores raw canvas ids that {@link normalizeLeafId} matches against this\n * prefix, so changing it would silently break them. Outer levels take\n * `layout2__`, `layout3__`, … which is what keeps a grandparent layout's\n * node ids from colliding with its child's: without a per-level namespace,\n * two layouts in one chain sharing a node id would collapse into one node.\n */\nexport function layoutNodeIdPrefix(depth = 1): string {\n return depth <= 1 ? LAYOUT_NODE_ID_PREFIX : `layout${depth}__`\n}\n\n/** Every namespace a composed tree can carry, outermost depth first. */\nexport const LAYOUT_NODE_ID_PREFIXES = Array.from(\n { length: MAX_LAYOUT_CHAIN_DEPTH },\n (_unused, index) => layoutNodeIdPrefix(index + 1),\n)\n\n/**\n * Whether a composed node id came from the LAYOUT chain rather than from the\n * screen (AGL-1871).\n *\n * Composition namespaces ids by origin and nothing else does: a layout node\n * is `layout__{id}` (`layout2__` … `layout5__` further up the chain, see\n * {@link layoutNodeIdPrefix}) while a screen node keeps its raw canvas id. A\n * reusable component grafted onto either one wears its host's id inside its\n * own namespace — the marketing nav really ships as\n * `cmp__layout__52Ef-3t6yd___R91yATrXH` — so the graft prefixes are peeled\n * before the origin is read, and a graft nested in a graft peels the same way.\n *\n * A raw canvas id cannot collide with this: nanoid emits a single token with\n * no `__` boundary in it, so `layout__` can only be a prefix that composition\n * put there.\n */\nexport function isLayoutComposedNodeId(id: string | undefined | null): boolean {\n let value = String(id ?? '')\n while (value.startsWith(COMPONENT_NODE_ID_PREFIX)) {\n value = value.slice(COMPONENT_NODE_ID_PREFIX.length)\n }\n return LAYOUT_NODE_ID_PREFIXES.some((prefix) => value.startsWith(prefix))\n}\n\n/**\n * Whether a composed tree contains anything the SCREEN put there (AGL-1871).\n *\n * `composeLayoutAndScreenNodes` always answers with a populated map when the\n * host has a layout, because the layout chrome is in it whether or not the\n * screen contributed a single node. So \"compose returned nodes\" is not the\n * same question as \"this screen has a page on it\", and code that treats the\n * two as one renders a header and a footer around nothing.\n *\n * That is not hypothetical. Measured on `aglyn.com` 2026-08-23, the published\n * *\"Not found (404)\"* screen composed to **297 nodes, every one of them layout\n * chrome**, with the `layoutSlot` holding an empty child list — the screen was\n * routed, published and completely empty. The 404 boundary read the 297 as\n * \"the site has a designed 404\", declined its own fallback, and every unmatched\n * URL on the site served branding wrapped around a blank page.\n *\n * The root node is not evidence — composition synthesizes one for an empty\n * screen — so it is excluded.\n */\nexport function hasScreenAuthoredNodes(\n nodes: Record<string, unknown> | null | undefined,\n): boolean {\n if (!nodes) return false\n for (const id of Object.keys(nodes)) {\n if (id === NODE_ROOT_ID) continue\n if (!isLayoutComposedNodeId(id)) return true\n }\n return false\n}\n\ntype NormalizedNodes<N extends AglynNodeSchema> = Record<NodeId, N>\n\nfunction prefixLayoutId(id: NodeId, prefix: string): NodeId {\n return id === NODE_ROOT_ID ? id : `${prefix}${id}`\n}\n\nfunction prefixChildIds(nodes: AglynNodeSchema['nodes'], prefix: string) {\n if (!Array.isArray(nodes)) return nodes\n return (nodes as NodeId[]).map((id) =>\n typeof id === 'string' ? prefixLayoutId(id, prefix) : id,\n )\n}\n\n/**\n * Grafts a screen's nodes into its layout's LayoutSlot, producing one\n * normalized node map rooted at the layout root.\n *\n * - Layout node ids are namespaced with {@link LAYOUT_NODE_ID_PREFIX} (the\n * root id excepted) to avoid collisions with screen ids.\n * - The screen root's children are appended to the slot's own children and\n * repointed at the slot. Slot children shouldn't normally exist, but\n * designers do land chrome inside the slot — rendering it above the\n * screen content preserves their intent instead of silently dropping it.\n * - Inputs are never mutated. Without layout nodes — or when the layout has\n * no slot — the screen nodes are returned unchanged so a stale or broken\n * layout can't take a published screen down.\n */\nexport function composeLayoutAndScreenNodes<\n N extends AglynNodeSchema = AglynNodeSchema,\n>(\n layoutNodes: NormalizedNodes<N> | undefined,\n screenNodes: NormalizedNodes<N>,\n /** Position in the layout chain; 1 = the layout the screen names. */\n depth = 1,\n): NormalizedNodes<N> {\n if (!layoutNodes || !layoutNodes[NODE_ROOT_ID]) return screenNodes\n\n const slotEntry = Object.entries(layoutNodes).find(\n ([, node]) => node?.componentId === LAYOUT_SLOT_COMPONENT_ID,\n )\n if (!slotEntry) return screenNodes\n\n const prefix = layoutNodeIdPrefix(depth)\n const composed: NormalizedNodes<N> = {}\n\n for (const [id, node] of Object.entries(layoutNodes)) {\n const nextId = prefixLayoutId(id, prefix)\n composed[nextId] = {\n ...node,\n // Early seeds stored roots without $id or componentId, letting the\n // canvas assign fallbacks — trust the map key so root identity stays\n // canonical, and pin the root to a plain container so production\n // renderers (which have no canvas defaults) can resolve it.\n $id:\n id === NODE_ROOT_ID\n ? NODE_ROOT_ID\n : prefixLayoutId(node.$id ?? id, prefix),\n ...(id === NODE_ROOT_ID &&\n !node.componentId && { componentId: 'div' as N['componentId'] }),\n ...(node.parentId != null && {\n parentId: prefixLayoutId(node.parentId, prefix),\n }),\n ...(node.nodes != null && { nodes: prefixChildIds(node.nodes, prefix) }),\n }\n }\n\n const slotId = prefixLayoutId(slotEntry[0], prefix)\n const screenRoot = screenNodes[NODE_ROOT_ID]\n const screenRootChildIds = Array.isArray(screenRoot?.nodes)\n ? ([...screenRoot.nodes] as NodeId[])\n : []\n const slotChildIds = Array.isArray(composed[slotId]?.nodes)\n ? (composed[slotId].nodes as NodeId[])\n : []\n\n // The screen root is DROPPED — its children reparent to the slot — so\n // whatever was styled on it has to land somewhere or it is simply lost.\n // It was: a background painted on the `Document` layer showed in the\n // besigner (which renders the screen alone, root included) and never on the\n // published page, where the layout root is the only root and the screen's\n // was gone. The slot is where those children now live, so it is where the\n // screen root's own styling belongs — the same node, one composition later.\n //\n // Slot first, screen root after: a screen may override the layout's own\n // styling of the region it fills, which is the direction of intent\n // everywhere else composition merges (a component instance over its\n // definition, AGL-1306).\n const mergedSlotSx = mergeNodeSx(composed[slotId]?.sx, screenRoot?.sx)\n // `className` is on the canvas node, not on the structural type this\n // function is generic over, so it is read through a narrow cast rather than\n // by widening the signature.\n const classNameOf = (node: N | undefined): string | undefined =>\n (node as { className?: string } | undefined)?.className\n const mergedSlotClassName =\n [classNameOf(composed[slotId]), classNameOf(screenRoot)]\n .filter(Boolean)\n .join(' ') || undefined\n composed[slotId] = {\n ...composed[slotId],\n nodes: [...slotChildIds, ...screenRootChildIds],\n ...(mergedSlotSx == null ? {} : { sx: mergedSlotSx as N['sx'] }),\n ...(mergedSlotClassName ? { className: mergedSlotClassName } : {}),\n }\n\n for (const [id, node] of Object.entries(screenNodes)) {\n if (id === NODE_ROOT_ID) continue\n const isTopLevel = node?.parentId === NODE_ROOT_ID\n composed[id] = isTopLevel ? { ...node, parentId: slotId } : node\n }\n // Top-level screen nodes may rely on child arrays alone (no parentId).\n for (const childId of screenRootChildIds) {\n const node = composed[childId]\n if (node && node.parentId !== slotId) {\n composed[childId] = { ...node, parentId: slotId }\n }\n }\n\n return composed\n}\n\n/**\n * Grafts a screen through a CHAIN of layouts, innermost first (AGL-703).\n *\n * `layoutNodesChain[0]` is the layout the screen names, `[1]` is that\n * layout's own layout, and so on outward. Each step drops the previous\n * result into the next layout's slot, so the outermost layout ends up as\n * the root — the same relationship a screen has always had with its layout,\n * applied one more time.\n *\n * A layout with no slot is skipped rather than fatal, and skipping it does\n * not strand the layouts outside it: the accumulated tree simply passes\n * through. That matches the single-layout behaviour, where a broken layout\n * degrades to the bare screen instead of taking a published page down.\n *\n * Cycles are refused before this point (see `resolveLayoutChainIds`), and\n * the chain is capped at {@link MAX_LAYOUT_CHAIN_DEPTH} regardless.\n */\nexport function composeLayoutChainAndScreenNodes<\n N extends AglynNodeSchema = AglynNodeSchema,\n>(\n layoutNodesChain: Array<NormalizedNodes<N> | undefined>,\n screenNodes: NormalizedNodes<N>,\n): NormalizedNodes<N> {\n let composed = screenNodes\n const chain = layoutNodesChain.slice(0, MAX_LAYOUT_CHAIN_DEPTH)\n for (const [index, layoutNodes] of chain.entries()) {\n composed = composeLayoutAndScreenNodes(layoutNodes, composed, index + 1)\n }\n return composed\n}\n\n/**\n * Walks a layout's ancestry into a flat chain, innermost first (AGL-703).\n *\n * `parentOf` returns the layout a given layout renders inside, or undefined\n * at the top. The walk stops on:\n *\n * - **self-reference** — a layout naming itself, which is the case worth\n * naming out loud because it is the easy mistake to make;\n * - **any repeat** — A → B → A would otherwise recurse forever, and a\n * guard that only catches self-reference would miss it;\n * - **depth** — {@link MAX_LAYOUT_CHAIN_DEPTH}.\n *\n * Stopping (rather than throwing) is deliberate: a cycle in stored data\n * should render the layouts up to the repeat, not blank the site.\n */\nexport function resolveLayoutChainIds(\n layoutId: string | undefined | null,\n parentOf: (layoutId: string) => string | undefined | null,\n): string[] {\n const chain: string[] = []\n const seen = new Set<string>()\n let current = layoutId ? String(layoutId) : undefined\n while (current && !seen.has(current) && chain.length < MAX_LAYOUT_CHAIN_DEPTH) {\n chain.push(current)\n seen.add(current)\n const parent = parentOf(current)\n current = parent ? String(parent) : undefined\n }\n return chain\n}\n\n/**\n * Whether `candidateParentId` may be set as `layoutId`'s parent layout.\n *\n * Refuses self-reference and any candidate that already has this layout\n * somewhere above it — picking one would close a loop. This is the\n * write-time half; `resolveLayoutChainIds` stays defensive anyway, because\n * a document can be edited by something that never called this.\n */\nexport function canNestLayout(\n layoutId: string,\n candidateParentId: string,\n parentOf: (layoutId: string) => string | undefined | null,\n): boolean {\n if (!layoutId || !candidateParentId) return false\n if (layoutId === candidateParentId) return false\n return !resolveLayoutChainIds(candidateParentId, parentOf).includes(layoutId)\n}\n\nexport default composeLayoutAndScreenNodes\n"],"names":["NODE_ROOT_ID","COMPONENT_NODE_ID_PREFIX","mergeNodeSx","LAYOUT_SLOT_COMPONENT_ID","LAYOUT_NODE_ID_PREFIX","MAX_LAYOUT_CHAIN_DEPTH","layoutNodeIdPrefix","depth","LAYOUT_NODE_ID_PREFIXES","Array","from","length","_unused","index","isLayoutComposedNodeId","id","value","String","startsWith","slice","some","prefix","hasScreenAuthoredNodes","nodes","Object","keys","prefixLayoutId","prefixChildIds","isArray","map","composeLayoutAndScreenNodes","layoutNodes","screenNodes","composed","slotEntry","entries","find","node","componentId","nextId","$id","parentId","slotId","screenRoot","screenRootChildIds","slotChildIds","mergedSlotSx","sx","classNameOf","className","mergedSlotClassName","filter","Boolean","join","undefined","isTopLevel","childId","composeLayoutChainAndScreenNodes","layoutNodesChain","chain","resolveLayoutChainIds","layoutId","parentOf","seen","Set","current","has","push","add","parent","canNestLayout","candidateParentId","includes"],"mappings":"AAAA;;;;;;;;;;;;;;;CAeC;AAGD,SAASA,YAAY,QAAQ,sCAAkC;AAC/D,SAASC,wBAAwB,QAAQ,+BAA2B;AACpE,SAASC,WAAW,QAAQ,qBAAiB;AAE7C,uEAAuE,GACvE,OAAO,MAAMC,2BAA2B,aAAY;AAEpD;;;;CAIC,GACD,OAAO,MAAMC,wBAAwB,WAAU;AAE/C;;;;;;;CAOC,GACD,OAAO,MAAMC,yBAAyB,EAAC;AAEvC;;;;;;;;;;CAUC,GACD,OAAO,SAASC,mBAAmBC,QAAQ,CAAC;IAC1C,OAAOA,SAAS,IAAIH,wBAAwB,CAAC,MAAM,EAAEG,MAAM,EAAE,CAAC;AAChE;AAEA,sEAAsE,GACtE,OAAO,MAAMC,0BAA0BC,MAAMC,IAAI,CAC/C;IAAEC,QAAQN;AAAuB,GACjC,CAACO,SAASC,QAAUP,mBAAmBO,QAAQ,IAChD;AAED;;;;;;;;;;;;;;;CAeC,GACD,OAAO,SAASC,uBAAuBC,EAA6B;IAClE,IAAIC,QAAQC,OAAOF,aAAAA,KAAM;IACzB,MAAOC,MAAME,UAAU,CAACjB,0BAA2B;QACjDe,QAAQA,MAAMG,KAAK,CAAClB,yBAAyBU,MAAM;IACrD;IACA,OAAOH,wBAAwBY,IAAI,CAAC,CAACC,SAAWL,MAAME,UAAU,CAACG;AACnE;AAEA;;;;;;;;;;;;;;;;;;CAkBC,GACD,OAAO,SAASC,uBACdC,KAAiD;IAEjD,IAAI,CAACA,OAAO,OAAO;IACnB,KAAK,MAAMR,MAAMS,OAAOC,IAAI,CAACF,OAAQ;QACnC,IAAIR,OAAOf,cAAc;QACzB,IAAI,CAACc,uBAAuBC,KAAK,OAAO;IAC1C;IACA,OAAO;AACT;AAIA,SAASW,eAAeX,EAAU,EAAEM,MAAc;IAChD,OAAON,OAAOf,eAAee,KAAK,GAAGM,SAASN,IAAI;AACpD;AAEA,SAASY,eAAeJ,KAA+B,EAAEF,MAAc;IACrE,IAAI,CAACZ,MAAMmB,OAAO,CAACL,QAAQ,OAAOA;IAClC,OAAO,AAACA,MAAmBM,GAAG,CAAC,CAACd,KAC9B,OAAOA,OAAO,WAAWW,eAAeX,IAAIM,UAAUN;AAE1D;AAEA;;;;;;;;;;;;;CAaC,GACD,OAAO,SAASe,4BAGdC,WAA2C,EAC3CC,WAA+B,EAC/B,mEAAmE,GACnEzB,QAAQ,CAAC;QAsC0B0B,kBAgBFA;IApDjC,IAAI,CAACF,eAAe,CAACA,WAAW,CAAC/B,aAAa,EAAE,OAAOgC;IAEvD,MAAME,YAAYV,OAAOW,OAAO,CAACJ,aAAaK,IAAI,CAChD,CAAC,GAAGC,KAAK,GAAKA,CAAAA,wBAAAA,KAAMC,WAAW,MAAKnC;IAEtC,IAAI,CAAC+B,WAAW,OAAOF;IAEvB,MAAMX,SAASf,mBAAmBC;IAClC,MAAM0B,WAA+B,CAAC;IAEtC,KAAK,MAAM,CAAClB,IAAIsB,KAAK,IAAIb,OAAOW,OAAO,CAACJ,aAAc;YAW7BM;QAVvB,MAAME,SAASb,eAAeX,IAAIM;QAClCY,QAAQ,CAACM,OAAO,GAAG,aACdF;YACH,mEAAmE;YACnE,qEAAqE;YACrE,iEAAiE;YACjE,4DAA4D;YAC5DG,KACEzB,OAAOf,eACHA,eACA0B,gBAAeW,YAAAA,KAAKG,GAAG,YAARH,YAAYtB,IAAIM;WACjCN,OAAOf,gBACT,CAACqC,KAAKC,WAAW,IAAI;YAAEA,aAAa;QAA0B,GAC5DD,KAAKI,QAAQ,IAAI,QAAQ;YAC3BA,UAAUf,eAAeW,KAAKI,QAAQ,EAAEpB;QAC1C,GACIgB,KAAKd,KAAK,IAAI,QAAQ;YAAEA,OAAOI,eAAeU,KAAKd,KAAK,EAAEF;QAAQ;IAE1E;IAEA,MAAMqB,SAAShB,eAAeQ,SAAS,CAAC,EAAE,EAAEb;IAC5C,MAAMsB,aAAaX,WAAW,CAAChC,aAAa;IAC5C,MAAM4C,qBAAqBnC,MAAMmB,OAAO,CAACe,8BAAAA,WAAYpB,KAAK,IACrD;WAAIoB,WAAWpB,KAAK;KAAC,GACtB,EAAE;IACN,MAAMsB,eAAepC,MAAMmB,OAAO,EAACK,mBAAAA,QAAQ,CAACS,OAAO,qBAAhBT,iBAAkBV,KAAK,IACrDU,QAAQ,CAACS,OAAO,CAACnB,KAAK,GACvB,EAAE;IAEN,sEAAsE;IACtE,wEAAwE;IACxE,qEAAqE;IACrE,4EAA4E;IAC5E,0EAA0E;IAC1E,0EAA0E;IAC1E,4EAA4E;IAC5E,EAAE;IACF,wEAAwE;IACxE,mEAAmE;IACnE,oEAAoE;IACpE,yBAAyB;IACzB,MAAMuB,eAAe5C,aAAY+B,oBAAAA,QAAQ,CAACS,OAAO,qBAAhBT,kBAAkBc,EAAE,EAAEJ,8BAAAA,WAAYI,EAAE;IACrE,qEAAqE;IACrE,4EAA4E;IAC5E,6BAA6B;IAC7B,MAAMC,cAAc,CAACX,OAClBA,wBAAD,AAACA,KAA6CY,SAAS;IACzD,MAAMC,sBACJ;QAACF,YAAYf,QAAQ,CAACS,OAAO;QAAGM,YAAYL;KAAY,CACrDQ,MAAM,CAACC,SACPC,IAAI,CAAC,QAAQC;IAClBrB,QAAQ,CAACS,OAAO,GAAG,aACdT,QAAQ,CAACS,OAAO;QACnBnB,OAAO;eAAIsB;eAAiBD;SAAmB;OAC3CE,gBAAgB,OAAO,CAAC,IAAI;QAAEC,IAAID;IAAwB,GAC1DI,sBAAsB;QAAED,WAAWC;IAAoB,IAAI,CAAC;IAGlE,KAAK,MAAM,CAACnC,IAAIsB,KAAK,IAAIb,OAAOW,OAAO,CAACH,aAAc;QACpD,IAAIjB,OAAOf,cAAc;QACzB,MAAMuD,aAAalB,CAAAA,wBAAAA,KAAMI,QAAQ,MAAKzC;QACtCiC,QAAQ,CAAClB,GAAG,GAAGwC,aAAa,aAAKlB;YAAMI,UAAUC;aAAWL;IAC9D;IACA,uEAAuE;IACvE,KAAK,MAAMmB,WAAWZ,mBAAoB;QACxC,MAAMP,OAAOJ,QAAQ,CAACuB,QAAQ;QAC9B,IAAInB,QAAQA,KAAKI,QAAQ,KAAKC,QAAQ;YACpCT,QAAQ,CAACuB,QAAQ,GAAG,aAAKnB;gBAAMI,UAAUC;;QAC3C;IACF;IAEA,OAAOT;AACT;AAEA;;;;;;;;;;;;;;;;CAgBC,GACD,OAAO,SAASwB,iCAGdC,gBAAuD,EACvD1B,WAA+B;IAE/B,IAAIC,WAAWD;IACf,MAAM2B,QAAQD,iBAAiBvC,KAAK,CAAC,GAAGd;IACxC,KAAK,MAAM,CAACQ,OAAOkB,YAAY,IAAI4B,MAAMxB,OAAO,GAAI;QAClDF,WAAWH,4BAA4BC,aAAaE,UAAUpB,QAAQ;IACxE;IACA,OAAOoB;AACT;AAEA;;;;;;;;;;;;;;CAcC,GACD,OAAO,SAAS2B,sBACdC,QAAmC,EACnCC,QAAyD;IAEzD,MAAMH,QAAkB,EAAE;IAC1B,MAAMI,OAAO,IAAIC;IACjB,IAAIC,UAAUJ,WAAW5C,OAAO4C,YAAYP;IAC5C,MAAOW,WAAW,CAACF,KAAKG,GAAG,CAACD,YAAYN,MAAMhD,MAAM,GAAGN,uBAAwB;QAC7EsD,MAAMQ,IAAI,CAACF;QACXF,KAAKK,GAAG,CAACH;QACT,MAAMI,SAASP,SAASG;QACxBA,UAAUI,SAASpD,OAAOoD,UAAUf;IACtC;IACA,OAAOK;AACT;AAEA;;;;;;;CAOC,GACD,OAAO,SAASW,cACdT,QAAgB,EAChBU,iBAAyB,EACzBT,QAAyD;IAEzD,IAAI,CAACD,YAAY,CAACU,mBAAmB,OAAO;IAC5C,IAAIV,aAAaU,mBAAmB,OAAO;IAC3C,OAAO,CAACX,sBAAsBW,mBAAmBT,UAAUU,QAAQ,CAACX;AACtE;AAEA,eAAe/B,4BAA2B"}
|
|
@@ -0,0 +1,71 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @license
|
|
3
|
+
* Copyright 2026 Aglyn LLC
|
|
4
|
+
*
|
|
5
|
+
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
6
|
+
* you may not use this file except in compliance with the License.
|
|
7
|
+
* You may obtain a copy of the License at
|
|
8
|
+
*
|
|
9
|
+
* http://www.apache.org/licenses/LICENSE-2.0
|
|
10
|
+
*
|
|
11
|
+
* Unless required by applicable law or agreed to in writing, software
|
|
12
|
+
* distributed under the License is distributed on an "AS IS" BASIS,
|
|
13
|
+
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
14
|
+
* See the License for the specific language governing permissions and
|
|
15
|
+
* limitations under the License.
|
|
16
|
+
*/
|
|
17
|
+
import type { AglynNodeSchema, NodeId, ReusableComponentProp } from '../foundation';
|
|
18
|
+
/**
|
|
19
|
+
* Layout properties (AGL-2893): a shared layout declares properties exactly as
|
|
20
|
+
* a reusable component does, binds its own nodes to them with `{{prop.*}}`,
|
|
21
|
+
* and each screen rendering inside it sets the values.
|
|
22
|
+
*
|
|
23
|
+
* The values are applied to each layout's OWN nodes before the screen is
|
|
24
|
+
* grafted into its slot, so a `{{prop.*}}` the screen's own copy happens to
|
|
25
|
+
* contain is never touched, and a component the layout places receives the
|
|
26
|
+
* values it is handed before it is grafted.
|
|
27
|
+
*/
|
|
28
|
+
type NormalizedNodes<N extends AglynNodeSchema> = Record<NodeId, N>;
|
|
29
|
+
/**
|
|
30
|
+
* Screen-version key holding the screen's values for the layouts it renders
|
|
31
|
+
* inside, beside the `layoutId` binding. Persisted in screen version documents
|
|
32
|
+
* — never rename.
|
|
33
|
+
*/
|
|
34
|
+
export declare const SCREEN_LAYOUT_PROP_VALUES_KEY = "layoutPropValues";
|
|
35
|
+
/** One layout of a screen's chain, as composition reads it. */
|
|
36
|
+
export interface LayoutChainEntry<N extends AglynNodeSchema = AglynNodeSchema> {
|
|
37
|
+
/** The layout document's id, which a screen's values are keyed by. */
|
|
38
|
+
layoutId?: string | null;
|
|
39
|
+
/** The published version's nodes. */
|
|
40
|
+
nodes?: NormalizedNodes<N> | null;
|
|
41
|
+
/** The published version's declared properties. */
|
|
42
|
+
props?: ReusableComponentProp[] | null;
|
|
43
|
+
}
|
|
44
|
+
/**
|
|
45
|
+
* A screen's values for one layout of its chain, or `undefined` where it set
|
|
46
|
+
* none. Anything that is not a map of values is read as none.
|
|
47
|
+
*/
|
|
48
|
+
export declare function layoutPropValuesFor(layoutPropValues: unknown, layoutId: string | null | undefined): Record<string, unknown> | undefined;
|
|
49
|
+
/**
|
|
50
|
+
* A layout's nodes with its declared properties applied for one screen: each
|
|
51
|
+
* `{{prop.*}}` takes the screen's value or the property's default, a field
|
|
52
|
+
* bound to one property receives the value its kind holds, and the parts the
|
|
53
|
+
* screen hides (`hideIf` / `hideUnless`) are pruned — the sequence a reusable
|
|
54
|
+
* component's graft runs, over the layout's root.
|
|
55
|
+
*
|
|
56
|
+
* A layout with no root is returned as it is, for the reason
|
|
57
|
+
* `composeLayoutAndScreenNodes` gives: a broken layout degrades to the bare
|
|
58
|
+
* screen rather than taking a page down.
|
|
59
|
+
*/
|
|
60
|
+
export declare function applyLayoutProps<N extends AglynNodeSchema = AglynNodeSchema>(nodes: NormalizedNodes<N> | null | undefined, props: ReusableComponentProp[] | null | undefined, values: Readonly<Record<string, unknown>> | null | undefined): NormalizedNodes<N> | undefined;
|
|
61
|
+
/**
|
|
62
|
+
* A screen grafted through its whole layout chain, innermost first, with each
|
|
63
|
+
* layout's properties applied from the screen's values for that layout
|
|
64
|
+
* (`layoutPropValues`, keyed by layout id).
|
|
65
|
+
*
|
|
66
|
+
* The one composition the published page, the besigner's Preview and its
|
|
67
|
+
* layout chrome all run, so none of them can disagree about which value a
|
|
68
|
+
* layout renders with.
|
|
69
|
+
*/
|
|
70
|
+
export declare function composeLayoutChainWithProps<N extends AglynNodeSchema = AglynNodeSchema>(chain: ReadonlyArray<LayoutChainEntry<N> | null | undefined>, screenNodes: NormalizedNodes<N>, layoutPropValues?: unknown): NormalizedNodes<N>;
|
|
71
|
+
export default composeLayoutChainWithProps;
|
|
@@ -0,0 +1,61 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @license
|
|
3
|
+
* Copyright 2026 Aglyn LLC
|
|
4
|
+
*
|
|
5
|
+
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
6
|
+
* you may not use this file except in compliance with the License.
|
|
7
|
+
* You may obtain a copy of the License at
|
|
8
|
+
*
|
|
9
|
+
* http://www.apache.org/licenses/LICENSE-2.0
|
|
10
|
+
*
|
|
11
|
+
* Unless required by applicable law or agreed to in writing, software
|
|
12
|
+
* distributed under the License is distributed on an "AS IS" BASIS,
|
|
13
|
+
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
14
|
+
* See the License for the specific language governing permissions and
|
|
15
|
+
* limitations under the License.
|
|
16
|
+
*/ import { NODE_ROOT_ID } from "../canvas-manager/canvas-manager.js";
|
|
17
|
+
import { composeLayoutChainAndScreenNodes } from "./compose-layout-nodes.js";
|
|
18
|
+
import { applyDeclaredProps } from "./compose-reusable-components.js";
|
|
19
|
+
/**
|
|
20
|
+
* Screen-version key holding the screen's values for the layouts it renders
|
|
21
|
+
* inside, beside the `layoutId` binding. Persisted in screen version documents
|
|
22
|
+
* — never rename.
|
|
23
|
+
*/ export const SCREEN_LAYOUT_PROP_VALUES_KEY = 'layoutPropValues';
|
|
24
|
+
/**
|
|
25
|
+
* A screen's values for one layout of its chain, or `undefined` where it set
|
|
26
|
+
* none. Anything that is not a map of values is read as none.
|
|
27
|
+
*/ export function layoutPropValuesFor(layoutPropValues, layoutId) {
|
|
28
|
+
if (!layoutId || !layoutPropValues || typeof layoutPropValues !== 'object') {
|
|
29
|
+
return undefined;
|
|
30
|
+
}
|
|
31
|
+
const values = layoutPropValues[layoutId];
|
|
32
|
+
return values && typeof values === 'object' && !Array.isArray(values) ? values : undefined;
|
|
33
|
+
}
|
|
34
|
+
/**
|
|
35
|
+
* A layout's nodes with its declared properties applied for one screen: each
|
|
36
|
+
* `{{prop.*}}` takes the screen's value or the property's default, a field
|
|
37
|
+
* bound to one property receives the value its kind holds, and the parts the
|
|
38
|
+
* screen hides (`hideIf` / `hideUnless`) are pruned — the sequence a reusable
|
|
39
|
+
* component's graft runs, over the layout's root.
|
|
40
|
+
*
|
|
41
|
+
* A layout with no root is returned as it is, for the reason
|
|
42
|
+
* `composeLayoutAndScreenNodes` gives: a broken layout degrades to the bare
|
|
43
|
+
* screen rather than taking a page down.
|
|
44
|
+
*/ export function applyLayoutProps(nodes, props, values) {
|
|
45
|
+
if (!nodes || !nodes[NODE_ROOT_ID]) return nodes != null ? nodes : undefined;
|
|
46
|
+
return applyDeclaredProps(nodes, props, values, NODE_ROOT_ID);
|
|
47
|
+
}
|
|
48
|
+
/**
|
|
49
|
+
* A screen grafted through its whole layout chain, innermost first, with each
|
|
50
|
+
* layout's properties applied from the screen's values for that layout
|
|
51
|
+
* (`layoutPropValues`, keyed by layout id).
|
|
52
|
+
*
|
|
53
|
+
* The one composition the published page, the besigner's Preview and its
|
|
54
|
+
* layout chrome all run, so none of them can disagree about which value a
|
|
55
|
+
* layout renders with.
|
|
56
|
+
*/ export function composeLayoutChainWithProps(chain, screenNodes, layoutPropValues) {
|
|
57
|
+
return composeLayoutChainAndScreenNodes(chain.map((entry)=>applyLayoutProps(entry == null ? void 0 : entry.nodes, entry == null ? void 0 : entry.props, layoutPropValuesFor(layoutPropValues, entry == null ? void 0 : entry.layoutId))), screenNodes);
|
|
58
|
+
}
|
|
59
|
+
export default composeLayoutChainWithProps;
|
|
60
|
+
|
|
61
|
+
//# sourceMappingURL=compose-layout-props.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../../../../../libs/aglyn/src/lib/app-utils/compose-layout-props.ts"],"sourcesContent":["/**\n * @license\n * Copyright 2026 Aglyn LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport type {\n AglynNodeSchema,\n NodeId,\n ReusableComponentProp,\n} from '../foundation'\nimport { NODE_ROOT_ID } from '../canvas-manager/canvas-manager'\nimport { composeLayoutChainAndScreenNodes } from './compose-layout-nodes'\nimport { applyDeclaredProps } from './compose-reusable-components'\n\n/**\n * Layout properties (AGL-2893): a shared layout declares properties exactly as\n * a reusable component does, binds its own nodes to them with `{{prop.*}}`,\n * and each screen rendering inside it sets the values.\n *\n * The values are applied to each layout's OWN nodes before the screen is\n * grafted into its slot, so a `{{prop.*}}` the screen's own copy happens to\n * contain is never touched, and a component the layout places receives the\n * values it is handed before it is grafted.\n */\n\ntype NormalizedNodes<N extends AglynNodeSchema> = Record<NodeId, N>\n\n/**\n * Screen-version key holding the screen's values for the layouts it renders\n * inside, beside the `layoutId` binding. Persisted in screen version documents\n * — never rename.\n */\nexport const SCREEN_LAYOUT_PROP_VALUES_KEY = 'layoutPropValues'\n\n/** One layout of a screen's chain, as composition reads it. */\nexport interface LayoutChainEntry<N extends AglynNodeSchema = AglynNodeSchema> {\n /** The layout document's id, which a screen's values are keyed by. */\n layoutId?: string | null\n /** The published version's nodes. */\n nodes?: NormalizedNodes<N> | null\n /** The published version's declared properties. */\n props?: ReusableComponentProp[] | null\n}\n\n/**\n * A screen's values for one layout of its chain, or `undefined` where it set\n * none. Anything that is not a map of values is read as none.\n */\nexport function layoutPropValuesFor(\n layoutPropValues: unknown,\n layoutId: string | null | undefined,\n): Record<string, unknown> | undefined {\n if (!layoutId || !layoutPropValues || typeof layoutPropValues !== 'object') {\n return undefined\n }\n const values = (layoutPropValues as Record<string, unknown>)[layoutId]\n return values && typeof values === 'object' && !Array.isArray(values)\n ? (values as Record<string, unknown>)\n : undefined\n}\n\n/**\n * A layout's nodes with its declared properties applied for one screen: each\n * `{{prop.*}}` takes the screen's value or the property's default, a field\n * bound to one property receives the value its kind holds, and the parts the\n * screen hides (`hideIf` / `hideUnless`) are pruned — the sequence a reusable\n * component's graft runs, over the layout's root.\n *\n * A layout with no root is returned as it is, for the reason\n * `composeLayoutAndScreenNodes` gives: a broken layout degrades to the bare\n * screen rather than taking a page down.\n */\nexport function applyLayoutProps<N extends AglynNodeSchema = AglynNodeSchema>(\n nodes: NormalizedNodes<N> | null | undefined,\n props: ReusableComponentProp[] | null | undefined,\n values: Readonly<Record<string, unknown>> | null | undefined,\n): NormalizedNodes<N> | undefined {\n if (!nodes || !nodes[NODE_ROOT_ID]) return nodes ?? undefined\n return applyDeclaredProps(nodes, props, values, NODE_ROOT_ID)\n}\n\n/**\n * A screen grafted through its whole layout chain, innermost first, with each\n * layout's properties applied from the screen's values for that layout\n * (`layoutPropValues`, keyed by layout id).\n *\n * The one composition the published page, the besigner's Preview and its\n * layout chrome all run, so none of them can disagree about which value a\n * layout renders with.\n */\nexport function composeLayoutChainWithProps<\n N extends AglynNodeSchema = AglynNodeSchema,\n>(\n chain: ReadonlyArray<LayoutChainEntry<N> | null | undefined>,\n screenNodes: NormalizedNodes<N>,\n layoutPropValues?: unknown,\n): NormalizedNodes<N> {\n return composeLayoutChainAndScreenNodes(\n chain.map((entry) =>\n applyLayoutProps(\n entry?.nodes,\n entry?.props,\n layoutPropValuesFor(layoutPropValues, entry?.layoutId),\n ),\n ),\n screenNodes,\n )\n}\n\nexport default composeLayoutChainWithProps\n"],"names":["NODE_ROOT_ID","composeLayoutChainAndScreenNodes","applyDeclaredProps","SCREEN_LAYOUT_PROP_VALUES_KEY","layoutPropValuesFor","layoutPropValues","layoutId","undefined","values","Array","isArray","applyLayoutProps","nodes","props","composeLayoutChainWithProps","chain","screenNodes","map","entry"],"mappings":"AAAA;;;;;;;;;;;;;;;CAeC,GAOD,SAASA,YAAY,QAAQ,sCAAkC;AAC/D,SAASC,gCAAgC,QAAQ,4BAAwB;AACzE,SAASC,kBAAkB,QAAQ,mCAA+B;AAelE;;;;CAIC,GACD,OAAO,MAAMC,gCAAgC,mBAAkB;AAY/D;;;CAGC,GACD,OAAO,SAASC,oBACdC,gBAAyB,EACzBC,QAAmC;IAEnC,IAAI,CAACA,YAAY,CAACD,oBAAoB,OAAOA,qBAAqB,UAAU;QAC1E,OAAOE;IACT;IACA,MAAMC,SAAS,AAACH,gBAA4C,CAACC,SAAS;IACtE,OAAOE,UAAU,OAAOA,WAAW,YAAY,CAACC,MAAMC,OAAO,CAACF,UACzDA,SACDD;AACN;AAEA;;;;;;;;;;CAUC,GACD,OAAO,SAASI,iBACdC,KAA4C,EAC5CC,KAAiD,EACjDL,MAA4D;IAE5D,IAAI,CAACI,SAAS,CAACA,KAAK,CAACZ,aAAa,EAAE,OAAOY,gBAAAA,QAASL;IACpD,OAAOL,mBAAmBU,OAAOC,OAAOL,QAAQR;AAClD;AAEA;;;;;;;;CAQC,GACD,OAAO,SAASc,4BAGdC,KAA4D,EAC5DC,WAA+B,EAC/BX,gBAA0B;IAE1B,OAAOJ,iCACLc,MAAME,GAAG,CAAC,CAACC,QACTP,iBACEO,yBAAAA,MAAON,KAAK,EACZM,yBAAAA,MAAOL,KAAK,EACZT,oBAAoBC,kBAAkBa,yBAAAA,MAAOZ,QAAQ,KAGzDU;AAEJ;AAEA,eAAeF,4BAA2B"}
|