@elytracms/core 0.0.8 → 0.0.9
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/dist/clipboard/build.js.map +1 -1
- package/dist/clipboard/clipboard.js.map +1 -1
- package/dist/clipboard/fragment.js.map +1 -1
- package/dist/clipboard/html.js.map +1 -1
- package/dist/clipboard/index.js.map +1 -1
- package/dist/clipboard/references.js.map +1 -1
- package/dist/clipboard/serialize.js.map +1 -1
- package/dist/cms-core/collection-shape.d.ts +43 -0
- package/dist/cms-core/collection-shape.js +129 -0
- package/dist/cms-core/collection-shape.js.map +1 -0
- package/dist/cms-core/collections.d.ts +5 -6
- package/dist/cms-core/collections.js +26 -13
- package/dist/cms-core/collections.js.map +1 -1
- package/dist/cms-core/documents.d.ts +1 -0
- package/dist/cms-core/documents.js +10 -0
- package/dist/cms-core/documents.js.map +1 -1
- package/dist/cms-core/envelopes.js.map +1 -1
- package/dist/cms-core/fields.js.map +1 -1
- package/dist/cms-core/fixtures.js.map +1 -1
- package/dist/cms-core/hierarchy.js.map +1 -1
- package/dist/cms-core/index.d.ts +1 -0
- package/dist/cms-core/index.js +1 -0
- package/dist/cms-core/index.js.map +1 -1
- package/dist/cms-core/infer.js.map +1 -1
- package/dist/cms-core/issues.d.ts +8 -0
- package/dist/cms-core/issues.js +10 -0
- package/dist/cms-core/issues.js.map +1 -1
- package/dist/cms-core/json-schema.js.map +1 -1
- package/dist/cms-core/localization.js.map +1 -1
- package/dist/cms-core/nesting-depth.js.map +1 -1
- package/dist/cms-core/routes.js.map +1 -1
- package/dist/cms-core/self-type.js.map +1 -1
- package/dist/cms-core/url-for-document.js.map +1 -1
- package/dist/cms-core/validate-document.js.map +1 -1
- package/dist/cms-core/versions.d.ts +1 -0
- package/dist/cms-core/versions.js.map +1 -1
- package/dist/collaboration/approval.js.map +1 -1
- package/dist/collaboration/collaboration.js.map +1 -1
- package/dist/collaboration/comments.js.map +1 -1
- package/dist/collaboration/core.js.map +1 -1
- package/dist/collaboration/index.js.map +1 -1
- package/dist/collaboration/presence.js.map +1 -1
- package/dist/collaboration/publishing.js.map +1 -1
- package/dist/collaboration/versions.js.map +1 -1
- package/dist/component-registry/index.js.map +1 -1
- package/dist/component-registry/issues.js.map +1 -1
- package/dist/component-registry/manifest.js.map +1 -1
- package/dist/component-registry/registry.js.map +1 -1
- package/dist/content/__fixtures__/filterable-collections.js.map +1 -1
- package/dist/content/__fixtures__/sample-accessor-types.js.map +1 -1
- package/dist/content/__fixtures__/sample-delivery-types.js.map +1 -1
- package/dist/content/assets.js.map +1 -1
- package/dist/content/binding-sources.js.map +1 -1
- package/dist/content/client.js.map +1 -1
- package/dist/content/codegen.js.map +1 -1
- package/dist/content/context.js.map +1 -1
- package/dist/content/cursor.js.map +1 -1
- package/dist/content/index.js.map +1 -1
- package/dist/content/locale.js.map +1 -1
- package/dist/content/perspective.js.map +1 -1
- package/dist/content/populate.js.map +1 -1
- package/dist/content/query.js.map +1 -1
- package/dist/content/raw.js.map +1 -1
- package/dist/content/resolve.js.map +1 -1
- package/dist/content/serialize.js.map +1 -1
- package/dist/content/tags.js.map +1 -1
- package/dist/data-binding/fixtures.js.map +1 -1
- package/dist/data-binding/index.js.map +1 -1
- package/dist/data-binding/issues.js.map +1 -1
- package/dist/data-binding/resolve.js.map +1 -1
- package/dist/data-binding/sample.js.map +1 -1
- package/dist/data-binding/sources.js.map +1 -1
- package/dist/data-binding/tokens.js.map +1 -1
- package/dist/design-tokens/css.js.map +1 -1
- package/dist/design-tokens/index.js.map +1 -1
- package/dist/design-tokens/style-guide.js.map +1 -1
- package/dist/design-tokens/tokens.js.map +1 -1
- package/dist/export-sync/builder-source.d.ts +1 -0
- package/dist/export-sync/builder-source.js.map +1 -1
- package/dist/export-sync/check.js.map +1 -1
- package/dist/export-sync/cli.js.map +1 -1
- package/dist/export-sync/core.js.map +1 -1
- package/dist/export-sync/eject.js.map +1 -1
- package/dist/export-sync/fixtures.js.map +1 -1
- package/dist/export-sync/generate.js.map +1 -1
- package/dist/export-sync/index.js.map +1 -1
- package/dist/export-sync/init.js.map +1 -1
- package/dist/export-sync/manifest-host.js.map +1 -1
- package/dist/export-sync/node.js.map +1 -1
- package/dist/export-sync/push.js.map +1 -1
- package/dist/export-sync/registry-sync-client.js.map +1 -1
- package/dist/export-sync/sync.js.map +1 -1
- package/dist/export-sync/typegen.js.map +1 -1
- package/dist/export-sync/validate.js.map +1 -1
- package/dist/export-sync/watch.js.map +1 -1
- package/dist/operations/assets.js.map +1 -1
- package/dist/operations/authorization.js.map +1 -1
- package/dist/operations/changesets.js.map +1 -1
- package/dist/operations/client.js.map +1 -1
- package/dist/operations/core.js.map +1 -1
- package/dist/operations/documents.d.ts +21 -0
- package/dist/operations/documents.js.map +1 -1
- package/dist/operations/graph.js.map +1 -1
- package/dist/operations/index.js.map +1 -1
- package/dist/operations/members.js.map +1 -1
- package/dist/operations/publishing.js.map +1 -1
- package/dist/operations/references.js.map +1 -1
- package/dist/operations/schema.d.ts +18 -0
- package/dist/operations/schema.js.map +1 -1
- package/dist/operations/tokens.js.map +1 -1
- package/dist/persistence/adapter.js.map +1 -1
- package/dist/persistence/assets.js.map +1 -1
- package/dist/persistence/backend-validation.js.map +1 -1
- package/dist/persistence/cli-tokens.js.map +1 -1
- package/dist/persistence/cms.d.ts +3 -0
- package/dist/persistence/cms.js.map +1 -1
- package/dist/persistence/contract-scenarios.js.map +1 -1
- package/dist/persistence/core.js.map +1 -1
- package/dist/persistence/graph.js.map +1 -1
- package/dist/persistence/index.js.map +1 -1
- package/dist/persistence/members.js.map +1 -1
- package/dist/persistence/publishing.js.map +1 -1
- package/dist/persistence/reference-extraction.js.map +1 -1
- package/dist/persistence/reference-indexing.js.map +1 -1
- package/dist/persistence/references.js.map +1 -1
- package/dist/persistence/seed.js.map +1 -1
- package/dist/persistence/self-maintaining-adapter.js.map +1 -1
- package/dist/plugins/asset-storage.js.map +1 -1
- package/dist/plugins/component-package.js.map +1 -1
- package/dist/plugins/data-sources.js.map +1 -1
- package/dist/plugins/examples.js.map +1 -1
- package/dist/plugins/export-targets.js.map +1 -1
- package/dist/plugins/field-types.js.map +1 -1
- package/dist/plugins/hooks.js.map +1 -1
- package/dist/plugins/index.js.map +1 -1
- package/dist/plugins/marketplace.js.map +1 -1
- package/dist/plugins/plugin.js.map +1 -1
- package/dist/plugins/templates.js.map +1 -1
- package/dist/project-graph/binding.js.map +1 -1
- package/dist/project-graph/container.js.map +1 -1
- package/dist/project-graph/edit.js.map +1 -1
- package/dist/project-graph/fixtures.js.map +1 -1
- package/dist/project-graph/ids.js.map +1 -1
- package/dist/project-graph/index.js.map +1 -1
- package/dist/project-graph/issues.js.map +1 -1
- package/dist/project-graph/json.js.map +1 -1
- package/dist/project-graph/node.js.map +1 -1
- package/dist/project-graph/normalize.js.map +1 -1
- package/dist/project-graph/serialize.js.map +1 -1
- package/dist/project-graph/structure.js.map +1 -1
- package/dist/project-graph/validate.js.map +1 -1
- package/dist/rich-text/adapter.js.map +1 -1
- package/dist/rich-text/dom-editor.js.map +1 -1
- package/dist/rich-text/embed.js.map +1 -1
- package/dist/rich-text/fixtures.js.map +1 -1
- package/dist/rich-text/html.js.map +1 -1
- package/dist/rich-text/index.js.map +1 -1
- package/dist/rich-text/markdown.js.map +1 -1
- package/dist/rich-text/portable-text.js.map +1 -1
- package/dist/rich-text/registry.js.map +1 -1
- package/dist/rich-text/render.js.map +1 -1
- package/dist/rich-text/schema.js.map +1 -1
- package/dist/rich-text/test-support.js.map +1 -1
- package/dist/runtime-renderer/client.js.map +1 -1
- package/dist/runtime-renderer/condition.js.map +1 -1
- package/dist/runtime-renderer/content-client.js.map +1 -1
- package/dist/runtime-renderer/context.js.map +1 -1
- package/dist/runtime-renderer/fallback.js.map +1 -1
- package/dist/runtime-renderer/index.js.map +1 -1
- package/dist/runtime-renderer/primitives.js.map +1 -1
- package/dist/runtime-renderer/render.js.map +1 -1
- package/dist/runtime-renderer/rich-text.js.map +1 -1
- package/dist/starter-kits/index.js.map +1 -1
- package/dist/starter-kits/instantiate.js.map +1 -1
- package/dist/starter-kits/kit.js.map +1 -1
- package/dist/starter-kits/kits.js.map +1 -1
- package/dist/starter-kits/manifests.js.map +1 -1
- package/dist/starter-kits/upgrade.js.map +1 -1
- package/dist/starter-kits/validate.js.map +1 -1
- package/dist/studio-core/context.js.map +1 -1
- package/dist/studio-core/errors.js.map +1 -1
- package/dist/studio-core/fixtures.js.map +1 -1
- package/dist/studio-core/ids.js.map +1 -1
- package/dist/studio-core/index.js.map +1 -1
- package/dist/studio-core/issues.js.map +1 -1
- package/dist/studio-core/metadata.js.map +1 -1
- package/dist/studio-core/repository.js.map +1 -1
- package/dist/studio-core/sections.d.ts +1 -1
- package/dist/studio-core/sections.js.map +1 -1
- package/dist/studio-core/validate.js.map +1 -1
- package/dist/studio-core/workspace-config.d.ts +4 -0
- package/dist/studio-core/workspace-config.js.map +1 -1
- package/package.json +1 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"markdown.js","sourceRoot":"","sources":["../../src/rich-text/markdown.ts"],"names":[],"mappings":"AAGA;;;;;;;;GAQG;AAEH,SAAS,OAAO,CAAC,IAAkB,EAAE,IAAY;IAC/C,MAAM,CAAC,GAA0B,IAAI,CAAC,KAAK,EAAE,CAAC,IAAI,CAAC,CAAA;IACnD,OAAO,OAAO,CAAC,KAAK,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAA;AAC9C,CAAC;AAED,8EAA8E;AAC9E,kCAAkC;AAClC,8EAA8E;AAE9E,SAAS,OAAO,CAAC,IAAkB,EAAE,IAAY;IAC/C,OAAO,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,IAAI,CAAC,CAAA;AACjD,CAAC;AAED,SAAS,UAAU,CAAC,KAA0C;IAC5D,OAAO,CAAC,KAAK,IAAI,EAAE,CAAC;SACjB,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE;QACZ,IAAI,IAAI,CAAC,IAAI,KAAK,WAAW;YAAE,OAAO,IAAI,CAAA;QAC1C,IAAI,IAAI,CAAC,IAAI,KAAK,MAAM;YAAE,OAAO,UAAU,CAAC,IAAI,CAAC,OAAO,CAAC,CAAA;QACzD,IAAI,IAAI,GAAG,IAAI,CAAC,IAAI,IAAI,EAAE,CAAA;QAC1B,IAAI,OAAO,CAAC,IAAI,EAAE,MAAM,CAAC;YAAE,IAAI,GAAG,KAAK,IAAI,IAAI,CAAA;QAC/C,IAAI,OAAO,CAAC,IAAI,EAAE,MAAM,CAAC;YAAE,IAAI,GAAG,KAAK,IAAI,IAAI,CAAA;QAC/C,IAAI,OAAO,CAAC,IAAI,EAAE,QAAQ,CAAC;YAAE,IAAI,GAAG,IAAI,IAAI,GAAG,CAAA;QAC/C,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,EAAE,MAAM,CAAC,CAAA;QAClC,IAAI,IAAI,EAAE,CAAC;YACT,MAAM,IAAI,GAAG,OAAO,IAAI,CAAC,KAAK,EAAE,IAAI,KAAK,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAA;YACxE,IAAI,GAAG,IAAI,IAAI,KAAK,IAAI,GAAG,CAAA;QAC7B,CAAC;QACD,OAAO,IAAI,CAAA;IACb,CAAC,CAAC;SACD,IAAI,CAAC,EAAE,CAAC,CAAA;AACb,CAAC;AAED,SAAS,QAAQ,CAAC,IAAkB,EAAE,OAAgB;IACpD,OAAO,CAAC,IAAI,CAAC,OAAO,IAAI,EAAE,CAAC;SACxB,GAAG,CAAC,CAAC,IAAI,EAAE,CAAC,EAAE,EAAE;QACf,MAAM,MAAM,GAAG,OAAO,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAA;QAC1C,MAAM,IAAI,GAAG,CAAC,IAAI,CAAC,OAAO,IAAI,EAAE,CAAC;aAC9B,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC,KAAK,CAAC,IAAI,KAAK,WAAW,CAAC,CAAC,CAAC,UAAU,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC;aAC1F,IAAI,CAAC,GAAG,CAAC,CAAA;QACZ,OAAO,GAAG,MAAM,IAAI,IAAI,EAAE,CAAA;IAC5B,CAAC,CAAC;SACD,IAAI,CAAC,IAAI,CAAC,CAAA;AACf,CAAC;AAED,SAAS,QAAQ,CAAC,IAAkB;IAClC,QAAQ,IAAI,CAAC,IAAI,EAAE,CAAC;QAClB,KAAK,WAAW;YACd,OAAO,UAAU,CAAC,IAAI,CAAC,OAAO,CAAC,CAAA;QACjC,KAAK,SAAS,CAAC,CAAC,CAAC;YACf,MAAM,KAAK,GAAG,OAAO,IAAI,CAAC,KAAK,EAAE,KAAK,KAAK,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAA;YAC1E,MAAM,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,CAAA;YACzC,OAAO,GAAG,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,UAAU,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,CAAA;QACvD,CAAC;QACD,KAAK,YAAY;YACf,OAAO,QAAQ,CAAC,IAAI,EAAE,KAAK,CAAC,CAAA;QAC9B,KAAK,aAAa;YAChB,OAAO,QAAQ,CAAC,IAAI,EAAE,IAAI,CAAC,CAAA;QAC7B,KAAK,YAAY;YACf,OAAO,CAAC,IAAI,CAAC,OAAO,IAAI,EAAE,CAAC;iBACxB,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;iBAC/B,IAAI,CAAC,IAAI,CAAC;iBACV,KAAK,CAAC,IAAI,CAAC;iBACX,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,KAAK,IAAI,EAAE,CAAC;iBAC1B,IAAI,CAAC,IAAI,CAAC,CAAA;QACf,KAAK,WAAW,CAAC,CAAC,CAAC;YACjB,MAAM,QAAQ,GAAG,OAAO,CAAC,IAAI,EAAE,UAAU,CAAC,IAAI,EAAE,CAAA;YAChD,MAAM,IAAI,GAAG,CAAC,IAAI,CAAC,OAAO,IAAI,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAA;YACnE,OAAO,SAAS,QAAQ,KAAK,IAAI,UAAU,CAAA;QAC7C,CAAC;QACD,KAAK,gBAAgB;YACnB,OAAO,KAAK,CAAA;QACd,KAAK,OAAO,CAAC,CAAC,CAAC;YACb,MAAM,GAAG,GAAG,OAAO,CAAC,IAAI,EAAE,KAAK,CAAC,IAAI,EAAE,CAAA;YACtC,MAAM,GAAG,GAAG,OAAO,CAAC,IAAI,EAAE,KAAK,CAAC,IAAI,EAAE,CAAA;YACtC,OAAO,KAAK,GAAG,KAAK,GAAG,GAAG,CAAA;QAC5B,CAAC;QACD;YACE,kEAAkE;YAClE,OAAO,EAAE,CAAA;IACb,CAAC;AACH,CAAC;AAED,uDAAuD;AACvD,MAAM,UAAU,kBAAkB,CAAC,GAAgB;IACjD,OAAO,GAAG,CAAC,OAAO;SACf,GAAG,CAAC,QAAQ,CAAC;SACb,MAAM,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC;SACnC,IAAI,CAAC,MAAM,CAAC,CAAA;AACjB,CAAC;AAED,8EAA8E;AAC9E,kCAAkC;AAClC,8EAA8E;AAE9E,4EAA4E;AAC5E,MAAM,UAAU,mBAAmB,CAAC,IAAY;IAC9C,MAAM,KAAK,GAAmB,EAAE,CAAA;IAChC,oEAAoE;IACpE,MAAM,EAAE,GAAG,8DAA8D,CAAA;IACzE,IAAI,IAAI,GAAG,CAAC,CAAA;IACZ,IAAI,CAAyB,CAAA;IAC7B,MAAM,QAAQ,GAAG,CAAC,GAAW,EAAE,KAAqB,EAAQ,EAAE;QAC5D,IAAI,GAAG,CAAC,MAAM,KAAK,CAAC;YAAE,OAAM;QAC5B,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,GAAG,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,GAAG,EAAE,CAAC,CAAA;IACjG,CAAC,CAAA;IACD,OAAO,CAAC,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,KAAK,IAAI,EAAE,CAAC;QACpC,IAAI,CAAC,CAAC,KAAK,GAAG,IAAI;YAAE,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC,CAAC,KAAK,CAAC,EAAE,EAAE,CAAC,CAAA;QAC3D,IAAI,GAAG,EAAE,CAAC,SAAS,CAAA;QACnB,MAAM,KAAK,GAAG,CAAC,CAAC,CAAC,CAAC,CAAA;QAClB,IAAI,KAAK,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC;YAC1B,QAAQ,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC,CAAC,CAAA;QAClD,CAAC;aAAM,IAAI,KAAK,CAAC,UAAU,CAAC,IAAI,CAAC,EAAE,CAAC;YAClC,QAAQ,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC,CAAC,CAAA;QAClD,CAAC;aAAM,IAAI,KAAK,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC;YACjC,QAAQ,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,CAAC,CAAC,CAAA;QACpD,CAAC;aAAM,IAAI,KAAK,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC;YACjC,MAAM,SAAS,GAAG,2BAA2B,CAAC,IAAI,CAAC,KAAK,CAAC,CAAA;YACzD,IAAI,SAAS,EAAE,CAAC;gBACd,MAAM,KAAK,GAAG,SAAS,CAAC,CAAC,CAAC,IAAI,EAAE,CAAA;gBAChC,MAAM,IAAI,GAAG,SAAS,CAAC,CAAC,CAAC,IAAI,EAAE,CAAA;gBAC/B,QAAQ,CAAC,KAAK,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,EAAE,IAAI,EAAE,EAAE,CAAC,CAAC,CAAA;YACtD,CAAC;QACH,CAAC;IACH,CAAC;IACD,IAAI,IAAI,GAAG,IAAI,CAAC,MAAM;QAAE,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,EAAE,CAAC,CAAA;IACtD,OAAO,KAAK,CAAA;AACd,CAAC;AAED,SAAS,aAAa,CAAC,IAAY;IACjC,OAAO,cAAc,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;AAClC,CAAC;AAED,SAAS,YAAY,CAAC,IAAY;IAChC,OAAO,cAAc,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;AAClC,CAAC;AAED,0DAA0D;AAC1D,MAAM,UAAU,kBAAkB,CAAC,QAAgB;IACjD,MAAM,KAAK,GAAG,QAAQ,CAAC,OAAO,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,CAAA;IACzD,MAAM,OAAO,GAAmB,EAAE,CAAA;IAClC,IAAI,CAAC,GAAG,CAAC,CAAA;IAET,MAAM,cAAc,GAAG,CAAC,MAAgB,EAAQ,EAAE;QAChD,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC;YAAE,OAAM;QAC/B,MAAM,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,CAAA;QACpC,IAAI,IAAI,CAAC,MAAM,GAAG,CAAC;YAAE,OAAO,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,WAAW,EAAE,OAAO,EAAE,mBAAmB,CAAC,IAAI,CAAC,EAAE,CAAC,CAAA;QAC5F,MAAM,CAAC,MAAM,GAAG,CAAC,CAAA;IACnB,CAAC,CAAA;IAED,MAAM,SAAS,GAAa,EAAE,CAAA;IAE9B,OAAO,CAAC,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC;QACxB,MAAM,IAAI,GAAG,KAAK,CAAC,CAAC,CAAC,IAAI,EAAE,CAAA;QAC3B,MAAM,OAAO,GAAG,IAAI,CAAC,IAAI,EAAE,CAAA;QAE3B,qBAAqB;QACrB,MAAM,KAAK,GAAG,eAAe,CAAC,IAAI,CAAC,OAAO,CAAC,CAAA;QAC3C,IAAI,KAAK,EAAE,CAAC;YACV,cAAc,CAAC,SAAS,CAAC,CAAA;YACzB,MAAM,QAAQ,GAAG,KAAK,CAAC,CAAC,CAAC,IAAI,EAAE,CAAA;YAC/B,MAAM,SAAS,GAAa,EAAE,CAAA;YAC9B,CAAC,EAAE,CAAA;YACH,OAAO,CAAC,GAAG,KAAK,CAAC,MAAM,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC,EAAE,CAAC;gBACrE,SAAS,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAA;gBAC9B,CAAC,EAAE,CAAA;YACL,CAAC;YACD,CAAC,EAAE,CAAA,CAAC,qBAAqB;YACzB,OAAO,CAAC,IAAI,CAAC;gBACX,IAAI,EAAE,WAAW;gBACjB,GAAG,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,EAAE,QAAQ,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;gBAC5C,OAAO,EAAE,SAAS,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE;aACpF,CAAC,CAAA;YACF,SAAQ;QACV,CAAC;QAED,+BAA+B;QAC/B,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACzB,cAAc,CAAC,SAAS,CAAC,CAAA;YACzB,CAAC,EAAE,CAAA;YACH,SAAQ;QACV,CAAC;QAED,mBAAmB;QACnB,IAAI,wBAAwB,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC;YAC3C,cAAc,CAAC,SAAS,CAAC,CAAA;YACzB,OAAO,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,gBAAgB,EAAE,CAAC,CAAA;YACxC,CAAC,EAAE,CAAA;YACH,SAAQ;QACV,CAAC;QAED,eAAe;QACf,MAAM,OAAO,GAAG,mBAAmB,CAAC,IAAI,CAAC,OAAO,CAAC,CAAA;QACjD,IAAI,OAAO,EAAE,CAAC;YACZ,cAAc,CAAC,SAAS,CAAC,CAAA;YACzB,MAAM,KAAK,GAAG,OAAO,CAAC,CAAC,CAAC,EAAE,MAAM,IAAI,CAAC,CAAA;YACrC,OAAO,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,SAAS,EAAE,KAAK,EAAE,EAAE,KAAK,EAAE,EAAE,OAAO,EAAE,mBAAmB,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,EAAE,CAAC,CAAA;YACnG,CAAC,EAAE,CAAA;YACH,SAAQ;QACV,CAAC;QAED,8CAA8C;QAC9C,IAAI,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC;YAC1B,cAAc,CAAC,SAAS,CAAC,CAAA;YACzB,MAAM,UAAU,GAAa,EAAE,CAAA;YAC/B,OAAO,CAAC,GAAG,KAAK,CAAC,MAAM,IAAI,UAAU,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,EAAE,CAAC;gBAC3D,UAAU,CAAC,IAAI,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,OAAO,CAAC,UAAU,EAAE,EAAE,CAAC,CAAC,CAAA;gBACzD,CAAC,EAAE,CAAA;YACL,CAAC;YACD,OAAO,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,YAAY,EAAE,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,WAAW,EAAE,OAAO,EAAE,mBAAmB,CAAC,UAAU,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAA;YACjI,SAAQ;QACV,CAAC;QAED,sDAAsD;QACtD,IAAI,YAAY,CAAC,IAAI,CAAC,IAAI,aAAa,CAAC,IAAI,CAAC,EAAE,CAAC;YAC9C,cAAc,CAAC,SAAS,CAAC,CAAA;YACzB,MAAM,OAAO,GAAG,aAAa,CAAC,IAAI,CAAC,CAAA;YACnC,MAAM,KAAK,GAAmB,EAAE,CAAA;YAChC,OAAO,CAAC,GAAG,KAAK,CAAC,MAAM,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,EAAE,CAAC;gBACpG,MAAM,QAAQ,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,cAAc,CAAC,CAAC,CAAC,cAAc,EAAE,EAAE,CAAC,CAAA;gBACxF,KAAK,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,UAAU,EAAE,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,WAAW,EAAE,OAAO,EAAE,mBAAmB,CAAC,QAAQ,CAAC,EAAE,CAAC,EAAE,CAAC,CAAA;gBAC1G,CAAC,EAAE,CAAA;YACL,CAAC;YACD,OAAO,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,OAAO,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,YAAY,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC,CAAA;YAC9E,SAAQ;QACV,CAAC;QAED,mDAAmD;QACnD,SAAS,CAAC,IAAI,CAAC,OAAO,CAAC,CAAA;QACvB,CAAC,EAAE,CAAA;IACL,CAAC;IACD,cAAc,CAAC,SAAS,CAAC,CAAA;IAEzB,OAAO,EAAE,IAAI,EAAE,KAAK,EAAE,OAAO,EAAE,CAAA;AACjC,CAAC"}
|
|
1
|
+
{"version":3,"file":"markdown.js","sourceRoot":"","sources":["../../src/rich-text/markdown.ts"],"names":[],"mappings":"AAGA;;;;;;;;GAQG;AAEH,SAAS,OAAO,CAAC,IAAkB,EAAE,IAAY;IAC/C,MAAM,CAAC,GAA0B,IAAI,CAAC,KAAK,EAAE,CAAC,IAAI,CAAC,CAAA;IACnD,OAAO,OAAO,CAAC,KAAK,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAA;AAC9C,CAAC;AAED,8EAA8E;AAC9E,kCAAkC;AAClC,8EAA8E;AAE9E,SAAS,OAAO,CAAC,IAAkB,EAAE,IAAY;IAC/C,OAAO,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,IAAI,CAAC,CAAA;AACjD,CAAC;AAED,SAAS,UAAU,CAAC,KAA0C;IAC5D,OAAO,CAAC,KAAK,IAAI,EAAE,CAAC;SACjB,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE;QACZ,IAAI,IAAI,CAAC,IAAI,KAAK,WAAW;YAAE,OAAO,IAAI,CAAA;QAC1C,IAAI,IAAI,CAAC,IAAI,KAAK,MAAM;YAAE,OAAO,UAAU,CAAC,IAAI,CAAC,OAAO,CAAC,CAAA;QACzD,IAAI,IAAI,GAAG,IAAI,CAAC,IAAI,IAAI,EAAE,CAAA;QAC1B,IAAI,OAAO,CAAC,IAAI,EAAE,MAAM,CAAC;YAAE,IAAI,GAAG,KAAK,IAAI,IAAI,CAAA;QAC/C,IAAI,OAAO,CAAC,IAAI,EAAE,MAAM,CAAC;YAAE,IAAI,GAAG,KAAK,IAAI,IAAI,CAAA;QAC/C,IAAI,OAAO,CAAC,IAAI,EAAE,QAAQ,CAAC;YAAE,IAAI,GAAG,IAAI,IAAI,GAAG,CAAA;QAC/C,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,EAAE,MAAM,CAAC,CAAA;QAClC,IAAI,IAAI,EAAE,CAAC;YACT,MAAM,IAAI,GAAG,OAAO,IAAI,CAAC,KAAK,EAAE,IAAI,KAAK,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAA;YACxE,IAAI,GAAG,IAAI,IAAI,KAAK,IAAI,GAAG,CAAA;QAC7B,CAAC;QACD,OAAO,IAAI,CAAA;IACb,CAAC,CAAC;SACD,IAAI,CAAC,EAAE,CAAC,CAAA;AACb,CAAC;AAED,SAAS,QAAQ,CAAC,IAAkB,EAAE,OAAgB;IACpD,OAAO,CAAC,IAAI,CAAC,OAAO,IAAI,EAAE,CAAC;SACxB,GAAG,CAAC,CAAC,IAAI,EAAE,CAAC,EAAE,EAAE;QACf,MAAM,MAAM,GAAG,OAAO,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAA;QAC1C,MAAM,IAAI,GAAG,CAAC,IAAI,CAAC,OAAO,IAAI,EAAE,CAAC;aAC9B,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC,KAAK,CAAC,IAAI,KAAK,WAAW,CAAC,CAAC,CAAC,UAAU,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC;aAC1F,IAAI,CAAC,GAAG,CAAC,CAAA;QACZ,OAAO,GAAG,MAAM,IAAI,IAAI,EAAE,CAAA;IAC5B,CAAC,CAAC;SACD,IAAI,CAAC,IAAI,CAAC,CAAA;AACf,CAAC;AAED,SAAS,QAAQ,CAAC,IAAkB;IAClC,QAAQ,IAAI,CAAC,IAAI,EAAE,CAAC;QAClB,KAAK,WAAW;YACd,OAAO,UAAU,CAAC,IAAI,CAAC,OAAO,CAAC,CAAA;QACjC,KAAK,SAAS,CAAC,CAAC,CAAC;YACf,MAAM,KAAK,GAAG,OAAO,IAAI,CAAC,KAAK,EAAE,KAAK,KAAK,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAA;YAC1E,MAAM,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,CAAA;YACzC,OAAO,GAAG,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,UAAU,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,CAAA;QACvD,CAAC;QACD,KAAK,YAAY;YACf,OAAO,QAAQ,CAAC,IAAI,EAAE,KAAK,CAAC,CAAA;QAC9B,KAAK,aAAa;YAChB,OAAO,QAAQ,CAAC,IAAI,EAAE,IAAI,CAAC,CAAA;QAC7B,KAAK,YAAY;YACf,OAAO,CAAC,IAAI,CAAC,OAAO,IAAI,EAAE,CAAC;iBACxB,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;iBAC/B,IAAI,CAAC,IAAI,CAAC;iBACV,KAAK,CAAC,IAAI,CAAC;iBACX,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,KAAK,IAAI,EAAE,CAAC;iBAC1B,IAAI,CAAC,IAAI,CAAC,CAAA;QACf,KAAK,WAAW,CAAC,CAAC,CAAC;YACjB,MAAM,QAAQ,GAAG,OAAO,CAAC,IAAI,EAAE,UAAU,CAAC,IAAI,EAAE,CAAA;YAChD,MAAM,IAAI,GAAG,CAAC,IAAI,CAAC,OAAO,IAAI,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAA;YACnE,OAAO,SAAS,QAAQ,KAAK,IAAI,UAAU,CAAA;QAC7C,CAAC;QACD,KAAK,gBAAgB;YACnB,OAAO,KAAK,CAAA;QACd,KAAK,OAAO,CAAC,CAAC,CAAC;YACb,MAAM,GAAG,GAAG,OAAO,CAAC,IAAI,EAAE,KAAK,CAAC,IAAI,EAAE,CAAA;YACtC,MAAM,GAAG,GAAG,OAAO,CAAC,IAAI,EAAE,KAAK,CAAC,IAAI,EAAE,CAAA;YACtC,OAAO,KAAK,GAAG,KAAK,GAAG,GAAG,CAAA;QAC5B,CAAC;QACD;YACE,kEAAkE;YAClE,OAAO,EAAE,CAAA;IACb,CAAC;AACH,CAAC;AAED,uDAAuD;AACvD,MAAM,UAAU,kBAAkB,CAAC,GAAgB;IACjD,OAAO,GAAG,CAAC,OAAO;SACf,GAAG,CAAC,QAAQ,CAAC;SACb,MAAM,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC;SACnC,IAAI,CAAC,MAAM,CAAC,CAAA;AACjB,CAAC;AAED,8EAA8E;AAC9E,kCAAkC;AAClC,8EAA8E;AAE9E,4EAA4E;AAC5E,MAAM,UAAU,mBAAmB,CAAC,IAAY;IAC9C,MAAM,KAAK,GAAmB,EAAE,CAAA;IAChC,oEAAoE;IACpE,MAAM,EAAE,GAAG,8DAA8D,CAAA;IACzE,IAAI,IAAI,GAAG,CAAC,CAAA;IACZ,IAAI,CAAyB,CAAA;IAC7B,MAAM,QAAQ,GAAG,CAAC,GAAW,EAAE,KAAqB,EAAQ,EAAE;QAC5D,IAAI,GAAG,CAAC,MAAM,KAAK,CAAC;YAAE,OAAM;QAC5B,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,GAAG,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,GAAG,EAAE,CAAC,CAAA;IACjG,CAAC,CAAA;IACD,OAAO,CAAC,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,KAAK,IAAI,EAAE,CAAC;QACpC,IAAI,CAAC,CAAC,KAAK,GAAG,IAAI;YAAE,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC,CAAC,KAAK,CAAC,EAAE,EAAE,CAAC,CAAA;QAC3D,IAAI,GAAG,EAAE,CAAC,SAAS,CAAA;QACnB,MAAM,KAAK,GAAG,CAAC,CAAC,CAAC,CAAC,CAAA;QAClB,IAAI,KAAK,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC;YAC1B,QAAQ,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC,CAAC,CAAA;QAClD,CAAC;aAAM,IAAI,KAAK,CAAC,UAAU,CAAC,IAAI,CAAC,EAAE,CAAC;YAClC,QAAQ,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC,CAAC,CAAA;QAClD,CAAC;aAAM,IAAI,KAAK,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC;YACjC,QAAQ,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,CAAC,CAAC,CAAA;QACpD,CAAC;aAAM,IAAI,KAAK,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC;YACjC,MAAM,SAAS,GAAG,2BAA2B,CAAC,IAAI,CAAC,KAAK,CAAC,CAAA;YACzD,IAAI,SAAS,EAAE,CAAC;gBACd,MAAM,KAAK,GAAG,SAAS,CAAC,CAAC,CAAC,IAAI,EAAE,CAAA;gBAChC,MAAM,IAAI,GAAG,SAAS,CAAC,CAAC,CAAC,IAAI,EAAE,CAAA;gBAC/B,QAAQ,CAAC,KAAK,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,EAAE,IAAI,EAAE,EAAE,CAAC,CAAC,CAAA;YACtD,CAAC;QACH,CAAC;IACH,CAAC;IACD,IAAI,IAAI,GAAG,IAAI,CAAC,MAAM;QAAE,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,EAAE,CAAC,CAAA;IACtD,OAAO,KAAK,CAAA;AACd,CAAC;AAED,SAAS,aAAa,CAAC,IAAY;IACjC,OAAO,cAAc,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;AAClC,CAAC;AAED,SAAS,YAAY,CAAC,IAAY;IAChC,OAAO,cAAc,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;AAClC,CAAC;AAED,0DAA0D;AAC1D,MAAM,UAAU,kBAAkB,CAAC,QAAgB;IACjD,MAAM,KAAK,GAAG,QAAQ,CAAC,OAAO,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,CAAA;IACzD,MAAM,OAAO,GAAmB,EAAE,CAAA;IAClC,IAAI,CAAC,GAAG,CAAC,CAAA;IAET,MAAM,cAAc,GAAG,CAAC,MAAgB,EAAQ,EAAE;QAChD,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC;YAAE,OAAM;QAC/B,MAAM,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,CAAA;QACpC,IAAI,IAAI,CAAC,MAAM,GAAG,CAAC;YAAE,OAAO,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,WAAW,EAAE,OAAO,EAAE,mBAAmB,CAAC,IAAI,CAAC,EAAE,CAAC,CAAA;QAC5F,MAAM,CAAC,MAAM,GAAG,CAAC,CAAA;IACnB,CAAC,CAAA;IAED,MAAM,SAAS,GAAa,EAAE,CAAA;IAE9B,OAAO,CAAC,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC;QACxB,MAAM,IAAI,GAAG,KAAK,CAAC,CAAC,CAAC,IAAI,EAAE,CAAA;QAC3B,MAAM,OAAO,GAAG,IAAI,CAAC,IAAI,EAAE,CAAA;QAE3B,qBAAqB;QACrB,MAAM,KAAK,GAAG,eAAe,CAAC,IAAI,CAAC,OAAO,CAAC,CAAA;QAC3C,IAAI,KAAK,EAAE,CAAC;YACV,cAAc,CAAC,SAAS,CAAC,CAAA;YACzB,MAAM,QAAQ,GAAG,KAAK,CAAC,CAAC,CAAC,IAAI,EAAE,CAAA;YAC/B,MAAM,SAAS,GAAa,EAAE,CAAA;YAC9B,CAAC,EAAE,CAAA;YACH,OAAO,CAAC,GAAG,KAAK,CAAC,MAAM,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC,EAAE,CAAC;gBACrE,SAAS,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAA;gBAC9B,CAAC,EAAE,CAAA;YACL,CAAC;YACD,CAAC,EAAE,CAAA,CAAC,qBAAqB;YACzB,OAAO,CAAC,IAAI,CAAC;gBACX,IAAI,EAAE,WAAW;gBACjB,GAAG,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,EAAE,QAAQ,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;gBAC5C,OAAO,EAAE,SAAS,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE;aACpF,CAAC,CAAA;YACF,SAAQ;QACV,CAAC;QAED,+BAA+B;QAC/B,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACzB,cAAc,CAAC,SAAS,CAAC,CAAA;YACzB,CAAC,EAAE,CAAA;YACH,SAAQ;QACV,CAAC;QAED,mBAAmB;QACnB,IAAI,wBAAwB,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC;YAC3C,cAAc,CAAC,SAAS,CAAC,CAAA;YACzB,OAAO,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,gBAAgB,EAAE,CAAC,CAAA;YACxC,CAAC,EAAE,CAAA;YACH,SAAQ;QACV,CAAC;QAED,eAAe;QACf,MAAM,OAAO,GAAG,mBAAmB,CAAC,IAAI,CAAC,OAAO,CAAC,CAAA;QACjD,IAAI,OAAO,EAAE,CAAC;YACZ,cAAc,CAAC,SAAS,CAAC,CAAA;YACzB,MAAM,KAAK,GAAG,OAAO,CAAC,CAAC,CAAC,EAAE,MAAM,IAAI,CAAC,CAAA;YACrC,OAAO,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,SAAS,EAAE,KAAK,EAAE,EAAE,KAAK,EAAE,EAAE,OAAO,EAAE,mBAAmB,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,EAAE,CAAC,CAAA;YACnG,CAAC,EAAE,CAAA;YACH,SAAQ;QACV,CAAC;QAED,8CAA8C;QAC9C,IAAI,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC;YAC1B,cAAc,CAAC,SAAS,CAAC,CAAA;YACzB,MAAM,UAAU,GAAa,EAAE,CAAA;YAC/B,OAAO,CAAC,GAAG,KAAK,CAAC,MAAM,IAAI,UAAU,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,EAAE,CAAC;gBAC3D,UAAU,CAAC,IAAI,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,OAAO,CAAC,UAAU,EAAE,EAAE,CAAC,CAAC,CAAA;gBACzD,CAAC,EAAE,CAAA;YACL,CAAC;YACD,OAAO,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,YAAY,EAAE,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,WAAW,EAAE,OAAO,EAAE,mBAAmB,CAAC,UAAU,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAA;YACjI,SAAQ;QACV,CAAC;QAED,sDAAsD;QACtD,IAAI,YAAY,CAAC,IAAI,CAAC,IAAI,aAAa,CAAC,IAAI,CAAC,EAAE,CAAC;YAC9C,cAAc,CAAC,SAAS,CAAC,CAAA;YACzB,MAAM,OAAO,GAAG,aAAa,CAAC,IAAI,CAAC,CAAA;YACnC,MAAM,KAAK,GAAmB,EAAE,CAAA;YAChC,OAAO,CAAC,GAAG,KAAK,CAAC,MAAM,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,EAAE,CAAC;gBACpG,MAAM,QAAQ,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,cAAc,CAAC,CAAC,CAAC,cAAc,EAAE,EAAE,CAAC,CAAA;gBACxF,KAAK,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,UAAU,EAAE,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,WAAW,EAAE,OAAO,EAAE,mBAAmB,CAAC,QAAQ,CAAC,EAAE,CAAC,EAAE,CAAC,CAAA;gBAC1G,CAAC,EAAE,CAAA;YACL,CAAC;YACD,OAAO,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,OAAO,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,YAAY,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC,CAAA;YAC9E,SAAQ;QACV,CAAC;QAED,mDAAmD;QACnD,SAAS,CAAC,IAAI,CAAC,OAAO,CAAC,CAAA;QACvB,CAAC,EAAE,CAAA;IACL,CAAC;IACD,cAAc,CAAC,SAAS,CAAC,CAAA;IAEzB,OAAO,EAAE,IAAI,EAAE,KAAK,EAAE,OAAO,EAAE,CAAA;AACjC,CAAC","sourcesContent":["import type { JsonValue } from '@elytracms/core/project-graph'\nimport type { RichTextDoc, RichTextMark, RichTextNode } from './schema'\n\n/**\n * Lossy Markdown import/export helpers (brief §7.6).\n *\n * Supports the common CommonMark-ish subset: ATX headings, paragraphs, bullet and\n * ordered lists, blockquotes, fenced code blocks, horizontal rules, plus inline\n * bold/italic/code and links. Anything outside this subset is dropped on export\n * and treated as plain text on import — lossy by design. No external Markdown\n * library is required, keeping the spike dependency-free and server-safe.\n */\n\nfunction attrStr(node: RichTextNode, name: string): string | undefined {\n const v: JsonValue | undefined = node.attrs?.[name]\n return typeof v === 'string' ? v : undefined\n}\n\n// ---------------------------------------------------------------------------\n// Export: storage tree → Markdown\n// ---------------------------------------------------------------------------\n\nfunction hasMark(node: RichTextNode, type: string): RichTextMark | undefined {\n return node.marks?.find((m) => m.type === type)\n}\n\nfunction inlineToMd(nodes: readonly RichTextNode[] | undefined): string {\n return (nodes ?? [])\n .map((node) => {\n if (node.type === 'hardBreak') return '\\n'\n if (node.type !== 'text') return inlineToMd(node.content)\n let text = node.text ?? ''\n if (hasMark(node, 'code')) text = `\\`${text}\\``\n if (hasMark(node, 'bold')) text = `**${text}**`\n if (hasMark(node, 'italic')) text = `*${text}*`\n const link = hasMark(node, 'link')\n if (link) {\n const href = typeof link.attrs?.href === 'string' ? link.attrs.href : ''\n text = `[${text}](${href})`\n }\n return text\n })\n .join('')\n}\n\nfunction listToMd(node: RichTextNode, ordered: boolean): string {\n return (node.content ?? [])\n .map((item, i) => {\n const marker = ordered ? `${i + 1}.` : '-'\n const body = (item.content ?? [])\n .map((child) => (child.type === 'paragraph' ? inlineToMd(child.content) : nodeToMd(child)))\n .join(' ')\n return `${marker} ${body}`\n })\n .join('\\n')\n}\n\nfunction nodeToMd(node: RichTextNode): string {\n switch (node.type) {\n case 'paragraph':\n return inlineToMd(node.content)\n case 'heading': {\n const level = typeof node.attrs?.level === 'number' ? node.attrs.level : 1\n const l = Math.min(Math.max(level, 1), 6)\n return `${'#'.repeat(l)} ${inlineToMd(node.content)}`\n }\n case 'bulletList':\n return listToMd(node, false)\n case 'orderedList':\n return listToMd(node, true)\n case 'blockquote':\n return (node.content ?? [])\n .map((child) => nodeToMd(child))\n .join('\\n')\n .split('\\n')\n .map((line) => `> ${line}`)\n .join('\\n')\n case 'codeBlock': {\n const language = attrStr(node, 'language') ?? ''\n const text = (node.content ?? []).map((c) => c.text ?? '').join('')\n return `\\`\\`\\`${language}\\n${text}\\n\\`\\`\\``\n }\n case 'horizontalRule':\n return '---'\n case 'image': {\n const src = attrStr(node, 'src') ?? ''\n const alt = attrStr(node, 'alt') ?? ''\n return ``\n }\n default:\n // Lossy: unknown/custom blocks have no Markdown form — drop them.\n return ''\n }\n}\n\n/** Serialize a document to a lossy Markdown string. */\nexport function richTextToMarkdown(doc: RichTextDoc): string {\n return doc.content\n .map(nodeToMd)\n .filter((block) => block.length > 0)\n .join('\\n\\n')\n}\n\n// ---------------------------------------------------------------------------\n// Import: Markdown → storage tree\n// ---------------------------------------------------------------------------\n\n/** Parse inline Markdown (bold/italic/code/link) into text nodes. Lossy. */\nexport function parseInlineMarkdown(text: string): RichTextNode[] {\n const nodes: RichTextNode[] = []\n // Token regex, ordered so code spans win over emphasis inside them.\n const re = /(`[^`]+`)|(\\*\\*[^*]+\\*\\*)|(\\*[^*]+\\*)|(\\[[^\\]]+\\]\\([^)]*\\))/g\n let last = 0\n let m: RegExpExecArray | null\n const pushText = (raw: string, marks: RichTextMark[]): void => {\n if (raw.length === 0) return\n nodes.push(marks.length > 0 ? { type: 'text', text: raw, marks } : { type: 'text', text: raw })\n }\n while ((m = re.exec(text)) !== null) {\n if (m.index > last) pushText(text.slice(last, m.index), [])\n last = re.lastIndex\n const token = m[0]\n if (token.startsWith('`')) {\n pushText(token.slice(1, -1), [{ type: 'code' }])\n } else if (token.startsWith('**')) {\n pushText(token.slice(2, -2), [{ type: 'bold' }])\n } else if (token.startsWith('*')) {\n pushText(token.slice(1, -1), [{ type: 'italic' }])\n } else if (token.startsWith('[')) {\n const linkMatch = /^\\[([^\\]]+)\\]\\(([^)]*)\\)$/.exec(token)\n if (linkMatch) {\n const label = linkMatch[1] ?? ''\n const href = linkMatch[2] ?? ''\n pushText(label, [{ type: 'link', attrs: { href } }])\n }\n }\n }\n if (last < text.length) pushText(text.slice(last), [])\n return nodes\n}\n\nfunction isOrderedItem(line: string): boolean {\n return /^\\s*\\d+\\.\\s+/.test(line)\n}\n\nfunction isBulletItem(line: string): boolean {\n return /^\\s*[-*+]\\s+/.test(line)\n}\n\n/** Parse a lossy Markdown string into a document tree. */\nexport function markdownToRichText(markdown: string): RichTextDoc {\n const lines = markdown.replace(/\\r\\n/g, '\\n').split('\\n')\n const content: RichTextNode[] = []\n let i = 0\n\n const flushParagraph = (buffer: string[]): void => {\n if (buffer.length === 0) return\n const text = buffer.join(' ').trim()\n if (text.length > 0) content.push({ type: 'paragraph', content: parseInlineMarkdown(text) })\n buffer.length = 0\n }\n\n const paragraph: string[] = []\n\n while (i < lines.length) {\n const line = lines[i] ?? ''\n const trimmed = line.trim()\n\n // Fenced code block.\n const fence = /^```(\\w*)\\s*$/.exec(trimmed)\n if (fence) {\n flushParagraph(paragraph)\n const language = fence[1] ?? ''\n const codeLines: string[] = []\n i++\n while (i < lines.length && !/^```\\s*$/.test((lines[i] ?? '').trim())) {\n codeLines.push(lines[i] ?? '')\n i++\n }\n i++ // skip closing fence\n content.push({\n type: 'codeBlock',\n ...(language ? { attrs: { language } } : {}),\n content: codeLines.length > 0 ? [{ type: 'text', text: codeLines.join('\\n') }] : [],\n })\n continue\n }\n\n // Blank line ends a paragraph.\n if (trimmed.length === 0) {\n flushParagraph(paragraph)\n i++\n continue\n }\n\n // Horizontal rule.\n if (/^(-{3,}|\\*{3,}|_{3,})$/.test(trimmed)) {\n flushParagraph(paragraph)\n content.push({ type: 'horizontalRule' })\n i++\n continue\n }\n\n // ATX heading.\n const heading = /^(#{1,6})\\s+(.*)$/.exec(trimmed)\n if (heading) {\n flushParagraph(paragraph)\n const level = heading[1]?.length ?? 1\n content.push({ type: 'heading', attrs: { level }, content: parseInlineMarkdown(heading[2] ?? '') })\n i++\n continue\n }\n\n // Blockquote (consume consecutive `>` lines).\n if (/^>\\s?/.test(trimmed)) {\n flushParagraph(paragraph)\n const quoteLines: string[] = []\n while (i < lines.length && /^\\s*>\\s?/.test(lines[i] ?? '')) {\n quoteLines.push((lines[i] ?? '').replace(/^\\s*>\\s?/, ''))\n i++\n }\n content.push({ type: 'blockquote', content: [{ type: 'paragraph', content: parseInlineMarkdown(quoteLines.join(' ').trim()) }] })\n continue\n }\n\n // Lists (consume consecutive items of the same kind).\n if (isBulletItem(line) || isOrderedItem(line)) {\n flushParagraph(paragraph)\n const ordered = isOrderedItem(line)\n const items: RichTextNode[] = []\n while (i < lines.length && (ordered ? isOrderedItem(lines[i] ?? '') : isBulletItem(lines[i] ?? ''))) {\n const itemText = (lines[i] ?? '').replace(ordered ? /^\\s*\\d+\\.\\s+/ : /^\\s*[-*+]\\s+/, '')\n items.push({ type: 'listItem', content: [{ type: 'paragraph', content: parseInlineMarkdown(itemText) }] })\n i++\n }\n content.push({ type: ordered ? 'orderedList' : 'bulletList', content: items })\n continue\n }\n\n // Otherwise accumulate into the current paragraph.\n paragraph.push(trimmed)\n i++\n }\n flushParagraph(paragraph)\n\n return { type: 'doc', content }\n}\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"portable-text.js","sourceRoot":"","sources":["../../src/rich-text/portable-text.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"portable-text.js","sourceRoot":"","sources":["../../src/rich-text/portable-text.ts"],"names":[],"mappings":"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","sourcesContent":["import type { JsonValue } from '@elytracms/core/project-graph'\nimport { createRichTextValue } from './schema'\nimport type { RichTextMark, RichTextNode, RichTextValue } from './schema'\n\n/**\n * Sanity **Portable Text → TipTap richText** migration transform (EC-229).\n *\n * Both real migration targets store long-form content as Portable Text\n * (Naturkinder's `freeform` block, Konditorei's `richTextSection.content`). This\n * is the one reusable piece of migration tooling both sites need — written once,\n * as a pure, dependency-free, never-throwing transform that lives next to the\n * storage format it produces (`./schema`).\n *\n * What it maps:\n * - block `style` → node: `normal`→`paragraph`, `h1..h6`→`heading{level}`,\n * `blockquote`→`blockquote`(wrapping a paragraph). Unknown styles fall back to\n * a paragraph **with a flagged issue** (text preserved, never lost).\n * - span decorators → marks: `strong`→`bold`, `em`→`italic`, `code`→`code`,\n * `underline`→`underline`, `strike-through`→`strike`.\n * - span annotation keys → marks via the block's `markDefs`: a `link` def →\n * a `link` mark (`href`, `target` when the def is `blank`).\n * - `listItem`/`level` blocks → nested `bulletList`/`orderedList`/`listItem`.\n *\n * What it deliberately does NOT map (flagged, never silently dropped):\n * - Embedded **object blocks** (`_type` other than `block`: images, custom\n * sections, references). Resolving a Sanity image needs asset dereferencing,\n * and custom sections need per-site component mapping — neither is a pure text\n * transform. Each becomes an `unmapped-block-type` issue so the site-specific\n * migration can handle it (assets pipeline / component mapping).\n * - Unknown decorators / annotation types → `unmapped-mark` issues; the text is\n * always kept, only the mark is dropped.\n *\n * The contract is \"never a silent loss\": anything the transform can't represent\n * surfaces as a structured {@link PortableTextIssue}, mirroring how the rest of\n * the system treats unmappable content as a visible validation issue.\n */\n\n/** A structured, non-fatal problem encountered while transforming Portable Text. */\nexport interface PortableTextIssue {\n code: 'unmapped-block-type' | 'unmapped-block-style' | 'unmapped-mark' | 'malformed'\n message: string\n /** Location in the input, e.g. `[3]` or `[3, 'children', 1]`. */\n path: (string | number)[]\n}\n\n/** Result of {@link portableTextToRichText}: the value plus any issues. */\nexport interface PortableTextResult {\n value: RichTextValue\n issues: PortableTextIssue[]\n}\n\n/** Sanity decorator name → TipTap mark type. */\nconst DECORATOR_TO_MARK: Record<string, string> = {\n strong: 'bold',\n em: 'italic',\n code: 'code',\n underline: 'underline',\n 'strike-through': 'strike',\n}\n\n/** Heading-style block `style` → heading level. */\nconst HEADING_LEVELS: Record<string, number> = {\n h1: 1,\n h2: 2,\n h3: 3,\n h4: 4,\n h5: 5,\n h6: 6,\n}\n\nfunction isObject(value: unknown): value is Record<string, unknown> {\n return typeof value === 'object' && value !== null && !Array.isArray(value)\n}\n\nfunction str(value: unknown): string | undefined {\n return typeof value === 'string' && value.length > 0 ? value : undefined\n}\n\n/** Resolve a span's `marks` (decorators + annotation keys) to TipTap marks. */\nfunction resolveMarks(\n raw: unknown,\n markDefs: readonly unknown[],\n path: (string | number)[],\n issues: PortableTextIssue[],\n): RichTextMark[] {\n if (!Array.isArray(raw)) return []\n const marks: RichTextMark[] = []\n for (const entry of raw) {\n if (typeof entry !== 'string') continue\n const decorator = DECORATOR_TO_MARK[entry]\n if (decorator) {\n marks.push({ type: decorator })\n continue\n }\n // Not a known decorator → an annotation key referencing a markDef.\n const def = markDefs.find((candidate) => isObject(candidate) && candidate['_key'] === entry)\n if (isObject(def)) {\n const mark = annotationToMark(def)\n if (mark) {\n marks.push(mark)\n continue\n }\n issues.push({\n code: 'unmapped-mark',\n message: `Annotation \"${str(def['_type']) ?? '(missing _type)'}\" (${entry}) has no mark mapping; dropped (text kept).`,\n path,\n })\n continue\n }\n issues.push({\n code: 'unmapped-mark',\n message: `Unknown mark \"${entry}\"; dropped (text kept).`,\n path,\n })\n }\n return marks\n}\n\n/** Map a Portable Text annotation (markDef) to a TipTap mark, or null if unmapped. */\nfunction annotationToMark(def: Record<string, unknown>): RichTextMark | null {\n if (str(def['_type']) === 'link') {\n const href = str(def['href']) ?? ''\n const attrs: Record<string, JsonValue> = { href }\n if (def['blank'] === true || str(def['target']) === '_blank') attrs['target'] = '_blank'\n return { type: 'link', attrs }\n }\n return null\n}\n\n/** Convert a `block`'s `children` spans into inline text nodes. */\nfunction inlineChildren(\n block: Record<string, unknown>,\n index: number,\n issues: PortableTextIssue[],\n): RichTextNode[] {\n const children = block['children']\n if (!Array.isArray(children)) return []\n const markDefs = Array.isArray(block['markDefs']) ? (block['markDefs'] as unknown[]) : []\n const nodes: RichTextNode[] = []\n children.forEach((span, si) => {\n if (!isObject(span)) return\n if (str(span['_type']) !== 'span') {\n issues.push({\n code: 'unmapped-block-type',\n message: `Inline \"${str(span['_type']) ?? '(missing _type)'}\" has no rich-text mapping; dropped.`,\n path: [index, 'children', si],\n })\n return\n }\n // ProseMirror text nodes must be non-empty.\n const text = typeof span['text'] === 'string' ? (span['text'] as string) : ''\n if (text.length === 0) return\n const marks = resolveMarks(span['marks'], markDefs, [index, 'children', si], issues)\n nodes.push(marks.length > 0 ? { type: 'text', text, marks } : { type: 'text', text })\n })\n return nodes\n}\n\n/** Convert a single non-list Portable Text block to a node, or null if dropped. */\nfunction convertBlock(\n block: Record<string, unknown>,\n index: number,\n issues: PortableTextIssue[],\n): RichTextNode | null {\n if (str(block['_type']) !== 'block') {\n issues.push({\n code: 'unmapped-block-type',\n message: `Embedded block \"${str(block['_type']) ?? '(missing _type)'}\" has no rich-text mapping; dropped. Handle it in site-specific migration (asset/component).`,\n path: [index],\n })\n return null\n }\n const content = inlineChildren(block, index, issues)\n const style = str(block['style']) ?? 'normal'\n if (style === 'normal') return { type: 'paragraph', content }\n if (style === 'blockquote') {\n return { type: 'blockquote', content: [{ type: 'paragraph', content }] }\n }\n const level = HEADING_LEVELS[style]\n if (level) return { type: 'heading', attrs: { level }, content }\n issues.push({\n code: 'unmapped-block-style',\n message: `Unknown block style \"${style}\"; rendered as a paragraph (text kept).`,\n path: [index, 'style'],\n })\n return { type: 'paragraph', content }\n}\n\ninterface ListFrame {\n level: number\n listItem: string\n /** The `bulletList`/`orderedList` node whose `content` is the listItem array. */\n node: RichTextNode\n}\n\nfunction listTypeFor(listItem: string): 'bulletList' | 'orderedList' {\n return listItem === 'number' ? 'orderedList' : 'bulletList'\n}\n\nfunction itemsOf(node: RichTextNode): RichTextNode[] {\n if (!node.content) node.content = []\n return node.content\n}\n\n/**\n * Build nested lists from a run of consecutive `listItem` blocks. Sanity encodes\n * nesting with a 1-based `level`; a deeper level nests inside the previous item,\n * and a different `listItem` kind at the same level starts a sibling list.\n */\nfunction buildLists(\n run: readonly { block: Record<string, unknown>; index: number }[],\n issues: PortableTextIssue[],\n): RichTextNode[] {\n const roots: RichTextNode[] = []\n const stack: ListFrame[] = []\n\n for (const { block, index } of run) {\n const listItem = str(block['listItem']) ?? 'bullet'\n const rawLevel = block['level']\n const level = typeof rawLevel === 'number' && rawLevel >= 1 ? Math.floor(rawLevel) : 1\n const itemNode: RichTextNode = {\n type: 'listItem',\n content: [{ type: 'paragraph', content: inlineChildren(block, index, issues) }],\n }\n\n // Close any lists deeper than this item.\n while (stack.length > 0 && (stack[stack.length - 1] as ListFrame).level > level) stack.pop()\n\n let top = stack[stack.length - 1]\n // Same depth but a different list kind → close it and open a sibling.\n if (top && top.level === level && top.listItem !== listItem) {\n stack.pop()\n top = stack[stack.length - 1]\n }\n\n if (top && top.level === level) {\n itemsOf(top.node).push(itemNode)\n continue\n }\n\n // Open a new list at this level — nested in the parent's last item, or a root.\n const listNode: RichTextNode = { type: listTypeFor(listItem), content: [itemNode] }\n if (top && top.level < level) {\n const parentItems = itemsOf(top.node)\n const lastItem = parentItems[parentItems.length - 1]\n if (lastItem) itemsOf(lastItem).push(listNode)\n else parentItems.push({ type: 'listItem', content: [listNode] })\n } else {\n roots.push(listNode)\n }\n stack.push({ level, listItem, node: listNode })\n }\n\n return roots\n}\n\n/**\n * Transform Sanity Portable Text into a versioned {@link RichTextValue}. Pure and\n * total — never throws; unmappable content surfaces as {@link PortableTextIssue}s.\n */\nexport function portableTextToRichText(input: unknown): PortableTextResult {\n const issues: PortableTextIssue[] = []\n const content: RichTextNode[] = []\n\n // A nullish field is empty content, not an error.\n if (input === null || input === undefined) {\n return { value: createRichTextValue({ type: 'doc', content }), issues }\n }\n if (!Array.isArray(input)) {\n issues.push({ code: 'malformed', message: 'Portable Text must be an array of blocks.', path: [] })\n return { value: createRichTextValue({ type: 'doc', content }), issues }\n }\n\n let i = 0\n while (i < input.length) {\n const block = input[i]\n if (!isObject(block)) {\n issues.push({ code: 'malformed', message: `Block at index ${i} is not an object; skipped.`, path: [i] })\n i++\n continue\n }\n // Group a run of consecutive list blocks into nested lists.\n if (str(block['_type']) === 'block' && str(block['listItem'])) {\n const run: { block: Record<string, unknown>; index: number }[] = []\n while (i < input.length) {\n const next = input[i]\n if (!isObject(next) || str(next['_type']) !== 'block' || !str(next['listItem'])) break\n run.push({ block: next, index: i })\n i++\n }\n content.push(...buildLists(run, issues))\n continue\n }\n const node = convertBlock(block, i, issues)\n if (node) content.push(node)\n i++\n }\n\n return { value: createRichTextValue({ type: 'doc', content }), issues }\n}\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"registry.js","sourceRoot":"","sources":["../../src/rich-text/registry.tsx"],"names":[],"mappings":"AAkDA,8EAA8E;AAC9E,MAAM,UAAU,sBAAsB,CACpC,cAA+C,EAAE;IAEjD,MAAM,MAAM,GAAG,IAAI,GAAG,EAAgC,CAAA;IACtD,KAAK,MAAM,GAAG,IAAI,WAAW,EAAE,CAAC;QAC9B,yEAAyE;QACzE,MAAM,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,EAAE,GAAG,CAAC,CAAA;IAC3B,CAAC;IACD,OAAO;QACL,GAAG,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC;QAC/B,GAAG,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC;QAC/B,QAAQ,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,KAAK,KAAK,QAAQ;KACzD,CAAA;AACH,CAAC;AAED,gFAAgF;AAChF,MAAM,CAAC,MAAM,qBAAqB,GAAqB,sBAAsB,EAAE,CAAA"}
|
|
1
|
+
{"version":3,"file":"registry.js","sourceRoot":"","sources":["../../src/rich-text/registry.tsx"],"names":[],"mappings":"AAkDA,8EAA8E;AAC9E,MAAM,UAAU,sBAAsB,CACpC,cAA+C,EAAE;IAEjD,MAAM,MAAM,GAAG,IAAI,GAAG,EAAgC,CAAA;IACtD,KAAK,MAAM,GAAG,IAAI,WAAW,EAAE,CAAC;QAC9B,yEAAyE;QACzE,MAAM,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,EAAE,GAAG,CAAC,CAAA;IAC3B,CAAC;IACD,OAAO;QACL,GAAG,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC;QAC/B,GAAG,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC;QAC/B,QAAQ,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,KAAK,KAAK,QAAQ;KACzD,CAAA;AACH,CAAC;AAED,gFAAgF;AAChF,MAAM,CAAC,MAAM,qBAAqB,GAAqB,sBAAsB,EAAE,CAAA","sourcesContent":["import type { ReactElement, ReactNode } from 'react'\nimport type { RichTextNode } from './schema'\n\n/**\n * Registration hooks for rendering custom rich-text nodes (brief §7.6).\n *\n * Two flavours, mirroring TipTap's node groups:\n * - **block** components — full-width blocks (e.g. a callout, a CTA card) that the\n * builder surfaces from the component registry as custom blocks.\n * - **inline** components — mentions, badges, tokens, and data references that sit\n * inside a paragraph alongside text.\n *\n * The renderer (see `render.tsx`) is server-safe and only knows the *shape* of a\n * registry, not where it comes from. Consumers build a registry from their own\n * component manifests and pass it in, keeping the renderer decoupled from the\n * project's component registry package.\n */\n\n/** Props handed to a custom node renderer. */\nexport interface CustomNodeRenderProps {\n /** The raw storage node, so the component can read its `attrs`. */\n node: RichTextNode\n /**\n * Already-rendered children (present for block components with inline/leaf\n * content). Inline atoms typically ignore this.\n */\n children?: ReactNode\n}\n\nexport type CustomNodeRenderer = (props: CustomNodeRenderProps) => ReactElement | null\n\nexport interface CustomNodeDefinition {\n /** The storage `node.type` this renderer handles, e.g. `callout` or `mention`. */\n type: string\n group: 'block' | 'inline'\n render: CustomNodeRenderer\n}\n\n/**\n * A read-only registry of custom node renderers. Look-ups are keyed by storage\n * `node.type`; the renderer falls back to a visible placeholder when a type is not\n * registered and is not a built-in.\n */\nexport interface RichTextRegistry {\n has(type: string): boolean\n get(type: string): CustomNodeDefinition | undefined\n /** Whether a registered custom node renders inline (vs. as a block). */\n isInline(type: string): boolean\n}\n\n/** Build an immutable {@link RichTextRegistry} from a list of definitions. */\nexport function createRichTextRegistry(\n definitions: readonly CustomNodeDefinition[] = [],\n): RichTextRegistry {\n const byType = new Map<string, CustomNodeDefinition>()\n for (const def of definitions) {\n // Last registration wins, matching how a builder would override a block.\n byType.set(def.type, def)\n }\n return {\n has: (type) => byType.has(type),\n get: (type) => byType.get(type),\n isInline: (type) => byType.get(type)?.group === 'inline',\n }\n}\n\n/** An empty registry — convenient default for callers with no custom blocks. */\nexport const emptyRichTextRegistry: RichTextRegistry = createRichTextRegistry()\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"render.js","sourceRoot":"","sources":["../../src/rich-text/render.tsx"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"render.js","sourceRoot":"","sources":["../../src/rich-text/render.tsx"],"names":[],"mappings":"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","sourcesContent":["import { Fragment, createElement } from 'react'\nimport type { ReactElement, ReactNode } from 'react'\nimport type { ComponentNode, JsonValue } from '@elytracms/core/project-graph'\nimport type { RichTextDoc, RichTextMark, RichTextNode, RichTextValue } from './schema'\nimport { COMPONENT_EMBED_NODE_TYPE, embeddedComponentNode } from './embed'\nimport { emptyRichTextRegistry } from './registry'\nimport type { RichTextRegistry } from './registry'\n\n/**\n * Server-safe read-only renderer: rich-text storage JSON → React (brief §7.6).\n *\n * \"Server-safe\" means this module imports only `react` (no `react-dom`, no browser\n * globals, no editor bundle), so an exported Next.js app can render content on the\n * server. It returns React elements; callers turn them into markup with\n * `react-dom/server` or hydrate them as-is.\n *\n * Unknown node types never crash: each one renders a visible fallback and is\n * collected as a structured {@link RichTextRenderIssue} (validation is first-class).\n */\n\n/**\n * A structured problem found while rendering: an unknown node type, or a\n * `componentEmbed` whose embedded composition value is missing/malformed (EC-189).\n */\nexport interface RichTextRenderIssue {\n code: 'unknown-node' | 'invalid-embed'\n message: string\n /** The offending storage `node.type`. */\n nodeType: string\n /** Index path into the document tree (content indices), for tooling. */\n path: number[]\n}\n\n/**\n * Renders an embedded composition value (a single `ComponentNode`, EC-189) to\n * React. INJECTED by the host so the rich-text package stays free of\n * `@elytracms/core/runtime-renderer` (which already depends on rich-text via the RichText\n * primitive). The host binds this to `renderComposition(node, renderContext)`, so\n * an embed renders byte-equivalent to the same component in a page/block field.\n * Omit to fall back to the visible placeholder (e.g. server-safe validation passes\n * with no registry/implementations available).\n */\nexport type RichTextEmbedRenderer = (node: ComponentNode) => ReactNode\n\nexport interface RenderRichTextOptions {\n /** Registry of custom block/inline renderers. Defaults to empty. */\n registry?: RichTextRegistry\n /**\n * Renders `componentEmbed` nodes (EC-189). Bound by the host to\n * `renderComposition`. When absent, embeds show the visible fallback.\n */\n renderEmbed?: RichTextEmbedRenderer\n /**\n * Collector invoked once per unknown node encountered. Lets tooling surface\n * issues without re-walking the tree.\n */\n onIssue?: (issue: RichTextRenderIssue) => void\n /** className applied to the wrapping element of the document. */\n className?: string\n}\n\n/** Built-in node types this renderer understands without any registry. */\nexport const BUILTIN_NODE_TYPES = [\n 'doc',\n 'paragraph',\n 'text',\n 'heading',\n 'bulletList',\n 'orderedList',\n 'listItem',\n 'blockquote',\n 'codeBlock',\n 'hardBreak',\n 'horizontalRule',\n 'image',\n 'embed',\n // EC-189: an embedded registry component (a composition value). Built-in so a\n // document carrying embeds is never flagged \"unknown-node\" — its render is\n // delegated to the injected embed renderer (see `RichTextEmbedRenderer`).\n COMPONENT_EMBED_NODE_TYPE,\n] as const\n\n/** Built-in mark types this renderer understands. */\nexport const BUILTIN_MARK_TYPES = ['bold', 'italic', 'code', 'link', 'strike', 'underline'] as const\n\nfunction attrString(value: JsonValue | undefined): string | undefined {\n return typeof value === 'string' ? value : undefined\n}\n\nfunction attrNumber(value: JsonValue | undefined): number | undefined {\n return typeof value === 'number' ? value : undefined\n}\n\n/** Wrap inline content in the elements implied by its marks, innermost-first. */\nfunction applyMarks(content: ReactNode, marks: readonly RichTextMark[] | undefined, key: string): ReactNode {\n if (!marks || marks.length === 0) return content\n return marks.reduce<ReactNode>((acc, mark, i) => {\n const markKey = `${key}-m${i}`\n switch (mark.type) {\n case 'bold':\n return createElement('strong', { key: markKey }, acc)\n case 'italic':\n return createElement('em', { key: markKey }, acc)\n case 'code':\n return createElement('code', { key: markKey }, acc)\n case 'strike':\n return createElement('s', { key: markKey }, acc)\n case 'underline':\n return createElement('u', { key: markKey }, acc)\n case 'link': {\n const href = attrString(mark.attrs?.href) ?? '#'\n const target = attrString(mark.attrs?.target)\n const rel = target === '_blank' ? 'noopener noreferrer' : attrString(mark.attrs?.rel)\n return createElement('a', { key: markKey, href, ...(target ? { target } : {}), ...(rel ? { rel } : {}) }, acc)\n }\n default:\n // Unknown mark: keep the text visible, wrapped in a tagged span so it is\n // inspectable but never lost.\n return createElement('span', { key: markKey, 'data-unknown-mark': mark.type }, acc)\n }\n }, content)\n}\n\ninterface RenderCtx {\n registry: RichTextRegistry\n renderEmbed: RichTextEmbedRenderer | undefined\n onIssue: ((issue: RichTextRenderIssue) => void) | undefined\n}\n\n/** The visible fallback shown for an embed the renderer cannot resolve (EC-189). */\nfunction invalidEmbedFallback(key: string): ReactElement {\n return createElement(\n 'div',\n { key, 'data-invalid-embed': '', className: 'rich-text-invalid-embed', role: 'note' },\n 'Invalid embedded component.',\n )\n}\n\nfunction renderChildren(nodes: readonly RichTextNode[] | undefined, ctx: RenderCtx, path: number[]): ReactNode[] {\n if (!nodes) return []\n return nodes.map((child, i) => renderNode(child, ctx, [...path, i]))\n}\n\n/** The visible fallback shown for any node type the renderer cannot resolve. */\nfunction unknownFallback(node: RichTextNode, key: string): ReactElement {\n return createElement(\n 'div',\n { key, 'data-unknown-node': node.type, className: 'rich-text-unknown', role: 'note' },\n `Unknown content block: ${node.type}`,\n )\n}\n\nfunction renderNode(node: RichTextNode, ctx: RenderCtx, path: number[]): ReactNode {\n const key = `n-${path.join('-')}`\n\n // Leaf text node.\n if (node.type === 'text') {\n return applyMarks(node.text ?? '', node.marks, key)\n }\n\n switch (node.type) {\n case 'paragraph':\n return createElement('p', { key }, ...renderChildren(node.content, ctx, path))\n case 'heading': {\n const level = attrNumber(node.attrs?.level)\n const clamped = level && level >= 1 && level <= 6 ? level : 1\n return createElement(`h${clamped}`, { key }, ...renderChildren(node.content, ctx, path))\n }\n case 'bulletList':\n return createElement('ul', { key }, ...renderChildren(node.content, ctx, path))\n case 'orderedList':\n return createElement('ol', { key }, ...renderChildren(node.content, ctx, path))\n case 'listItem':\n return createElement('li', { key }, ...renderChildren(node.content, ctx, path))\n case 'blockquote':\n return createElement('blockquote', { key }, ...renderChildren(node.content, ctx, path))\n case 'codeBlock': {\n const language = attrString(node.attrs?.language)\n return createElement(\n 'pre',\n { key },\n createElement(\n 'code',\n language ? { className: `language-${language}` } : {},\n ...renderChildren(node.content, ctx, path),\n ),\n )\n }\n case 'hardBreak':\n return createElement('br', { key })\n case 'horizontalRule':\n return createElement('hr', { key })\n case 'image': {\n const src = attrString(node.attrs?.src) ?? ''\n const alt = attrString(node.attrs?.alt) ?? ''\n const title = attrString(node.attrs?.title)\n return createElement('img', { key, src, alt, ...(title ? { title } : {}) })\n }\n case 'embed': {\n // Generic media/embed: an iframe by URL (e.g. video, map). Server-safe.\n const src = attrString(node.attrs?.src) ?? ''\n const title = attrString(node.attrs?.title) ?? 'Embedded content'\n return createElement('iframe', {\n key,\n src,\n title,\n loading: 'lazy',\n 'data-embed-provider': attrString(node.attrs?.provider) ?? undefined,\n })\n }\n case COMPONENT_EMBED_NODE_TYPE: {\n // EC-189: an embedded registry component. Resolve the embedded composition\n // value and delegate to the injected embed renderer (bound to\n // `renderComposition`), so the embed renders identically to the same\n // component in a page/block field. A missing renderer or a malformed embed\n // degrades to the visible fallback — never a crash, never silent.\n const embedded = embeddedComponentNode(node)\n if (!embedded) {\n ctx.onIssue?.({\n code: 'invalid-embed',\n message: 'Component embed is missing a valid embedded component node.',\n nodeType: node.type,\n path,\n })\n return invalidEmbedFallback(key)\n }\n if (!ctx.renderEmbed) return invalidEmbedFallback(key)\n return createElement(Fragment, { key }, ctx.renderEmbed(embedded))\n }\n default: {\n // Custom node from the registry (block or inline).\n const def = ctx.registry.get(node.type)\n if (def) {\n const children = node.content && node.content.length > 0 ? renderChildren(node.content, ctx, path) : undefined\n const element = def.render({ node, children })\n return element ? createElement(Fragment, { key }, element) : null\n }\n // Unknown: visible fallback + structured issue. Never throws.\n ctx.onIssue?.({\n code: 'unknown-node',\n message: `No renderer registered for rich-text node type \"${node.type}\".`,\n nodeType: node.type,\n path,\n })\n return unknownFallback(node, key)\n }\n }\n}\n\n/**\n * Render a parsed rich-text document tree to a React element. Pure: no DOM access.\n * The wrapping element is a `div.rich-text` so consumers can scope styles.\n */\nexport function renderRichTextDoc(doc: RichTextDoc, options: RenderRichTextOptions = {}): ReactElement {\n const ctx: RenderCtx = {\n registry: options.registry ?? emptyRichTextRegistry,\n renderEmbed: options.renderEmbed,\n onIssue: options.onIssue,\n }\n const children = renderChildren(doc.content, ctx, [])\n return createElement(\n 'div',\n { className: options.className ? `rich-text ${options.className}` : 'rich-text' },\n ...children,\n )\n}\n\n/** Render a versioned rich-text value (convenience over {@link renderRichTextDoc}). */\nexport function renderRichTextValue(value: RichTextValue, options: RenderRichTextOptions = {}): ReactElement {\n return renderRichTextDoc(value.doc, options)\n}\n\n/**\n * Walk a document and collect every unknown-node issue *without* rendering. Useful\n * for pre-flight validation (e.g. before export) where you only want the issues.\n */\nexport function findUnknownNodes(doc: RichTextDoc, registry: RichTextRegistry = emptyRichTextRegistry): RichTextRenderIssue[] {\n const issues: RichTextRenderIssue[] = []\n const builtins = new Set<string>(BUILTIN_NODE_TYPES)\n const walk = (nodes: readonly RichTextNode[] | undefined, path: number[]): void => {\n if (!nodes) return\n nodes.forEach((node, i) => {\n const here = [...path, i]\n if (!builtins.has(node.type) && !registry.has(node.type)) {\n issues.push({\n code: 'unknown-node',\n message: `No renderer registered for rich-text node type \"${node.type}\".`,\n nodeType: node.type,\n path: here,\n })\n }\n walk(node.content, here)\n })\n }\n walk(doc.content, [])\n return issues\n}\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"schema.js","sourceRoot":"","sources":["../../src/rich-text/schema.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"schema.js","sourceRoot":"","sources":["../../src/rich-text/schema.ts"],"names":[],"mappings":"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","sourcesContent":["import { z } from 'zod'\nimport { jsonValueSchema } from '@elytracms/core/project-graph'\nimport type { JsonValue } from '@elytracms/core/project-graph'\n\n/**\n * Rich-text storage format (brief §7.6).\n *\n * The on-disk shape is intentionally ProseMirror/TipTap-shaped: a JSON document is\n * a tree of nodes `{ type, attrs?, content?, marks?, text? }`. Keeping the storage\n * format identical to ProseMirror's lets a TipTap editor plug in later behind the\n * {@link RichTextAdapter} seam without a migration — the editor reads/writes the\n * exact same JSON this package validates and renders.\n *\n * Nothing in this module imports TipTap. The format is modelled directly so the\n * spike has no required dependency on a paid or cloud editor service.\n */\n\n/** The schema version this build of the package reads and writes. Stored per value. */\nexport const RICH_TEXT_SCHEMA_VERSION = 1\n\n/** Attribute bag carried by a node or mark. Plain JSON only — never runtime handles. */\nexport const richTextAttrsSchema = z.record(z.string(), jsonValueSchema)\nexport type RichTextAttrs = Record<string, JsonValue>\n\n/**\n * A mark applied to inline text (bold, italic, code, link, …). Marks are\n * ProseMirror-shaped: a `type` plus an optional attribute bag (e.g. a link `href`).\n */\nexport const richTextMarkSchema = z.object({\n type: z.string().min(1),\n attrs: richTextAttrsSchema.optional(),\n})\nexport type RichTextMark = z.infer<typeof richTextMarkSchema>\n\n/**\n * A single node in the document tree.\n *\n * - Leaf text nodes carry `text` (and optional `marks`).\n * - Block/inline nodes carry `content` (ordered children) and/or `attrs`.\n *\n * The schema deliberately keeps `type` an open string: a document referencing an\n * unknown node type still *parses* so the renderer can show a visible fallback and\n * tooling can report a structured issue — mirroring how the project graph keeps\n * component ids as open strings (see `@elytracms/core/project-graph`).\n */\nexport interface RichTextNode {\n type: string\n attrs?: RichTextAttrs\n content?: RichTextNode[]\n marks?: RichTextMark[]\n text?: string\n}\n\nexport const richTextNodeSchema: z.ZodType<RichTextNode> = z.lazy(() =>\n z.object({\n type: z.string().min(1),\n attrs: richTextAttrsSchema.optional(),\n content: z.array(richTextNodeSchema).optional(),\n marks: z.array(richTextMarkSchema).optional(),\n text: z.string().optional(),\n }),\n)\n\n/** The root document node. By ProseMirror convention its `type` is `doc`. */\nexport const richTextDocSchema = z.object({\n type: z.literal('doc'),\n content: z.array(richTextNodeSchema).default([]),\n})\nexport type RichTextDoc = z.infer<typeof richTextDocSchema>\n\n/**\n * A stored rich-text value. Every value carries the schema {@link version} it was\n * written under so old content stays readable across format changes (brief §7.6).\n */\nexport const richTextValueSchema = z.object({\n /** Schema version this value was written under. */\n version: z.number().int().nonnegative(),\n doc: richTextDocSchema,\n})\nexport type RichTextValue = z.infer<typeof richTextValueSchema>\n\n/** Wrap a document tree in a versioned value, stamping the current schema version. */\nexport function createRichTextValue(doc: RichTextDoc): RichTextValue {\n return { version: RICH_TEXT_SCHEMA_VERSION, doc }\n}\n\n/** Convenience constructor for an empty (but valid) versioned value. */\nexport function emptyRichTextValue(): RichTextValue {\n return createRichTextValue({ type: 'doc', content: [] })\n}\n\nexport type ParseRichTextResult =\n | { ok: true; value: RichTextValue }\n | { ok: false; error: z.ZodError }\n\n/**\n * Parse a rich-text value from a JSON string or already-parsed object. Never throws\n * on invalid input — returns a structured failure instead (validation is\n * first-class; see AGENTS.md).\n */\nexport function parseRichTextValue(input: string | unknown): ParseRichTextResult {\n let json: unknown\n try {\n json = typeof input === 'string' ? JSON.parse(input) : input\n } catch {\n json = undefined\n }\n const result = richTextValueSchema.safeParse(json)\n return result.success ? { ok: true, value: result.data } : { ok: false, error: result.error }\n}\n\n/** Serialize a rich-text value to JSON, parsing first so output is always valid. */\nexport function serializeRichTextValue(value: RichTextValue): string {\n return JSON.stringify(richTextValueSchema.parse(value))\n}\n\n/** True when a value's stored version matches the version this build understands. */\nexport function isCompatibleRichTextVersion(value: RichTextValue): boolean {\n return value.version === RICH_TEXT_SCHEMA_VERSION\n}\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"test-support.js","sourceRoot":"","sources":["../../src/rich-text/test-support.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AACH,OAAO,EAAE,oBAAoB,EAAE,MAAM,kBAAkB,CAAA"}
|
|
1
|
+
{"version":3,"file":"test-support.js","sourceRoot":"","sources":["../../src/rich-text/test-support.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AACH,OAAO,EAAE,oBAAoB,EAAE,MAAM,kBAAkB,CAAA","sourcesContent":["/**\n * Test-only helper: render a React element to static HTML markup.\n *\n * The read-only renderer in `render.tsx` is server-safe and imports only `react`;\n * `react-dom` is a devDependency used solely by tests to assert on emitted markup.\n */\nexport { renderToStaticMarkup } from 'react-dom/server'\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"client.js","sourceRoot":"","sources":["../../src/runtime-renderer/client.ts"],"names":[],"mappings":"AAAA,YAAY,CAAA;AAEZ;;;;;;;;;;GAUG;AAEH,OAAO,EACL,qBAAqB,EACrB,gBAAgB,EAChB,0BAA0B,GAC3B,MAAM,kBAAkB,CAAA;AAQzB,OAAO,EAAE,mBAAmB,EAAE,mBAAmB,EAAE,MAAM,YAAY,CAAA"}
|
|
1
|
+
{"version":3,"file":"client.js","sourceRoot":"","sources":["../../src/runtime-renderer/client.ts"],"names":[],"mappings":"AAAA,YAAY,CAAA;AAEZ;;;;;;;;;;GAUG;AAEH,OAAO,EACL,qBAAqB,EACrB,gBAAgB,EAChB,0BAA0B,GAC3B,MAAM,kBAAkB,CAAA;AAQzB,OAAO,EAAE,mBAAmB,EAAE,mBAAmB,EAAE,MAAM,YAAY,CAAA","sourcesContent":["'use client'\n\n/**\n * @elytracms/core/runtime-renderer/client — the two CLIENT-boundary modules, as a\n * lean barrel (EC-201). Both depend on `react` alone, so importing the island\n * surface from here (instead of the package index) keeps a downstream client\n * bundle free of the server closure (rich-text, zod, the registry).\n *\n * Used by `@elytracms/next/client` to assemble the host's published client\n * island entry; the `'use client'` directive here marks the boundary in source\n * (the published `@elytracms/next` re-inserts it post-bundle — see that\n * package's `tsup.config.ts`).\n */\n\nexport {\n ContentClientProvider,\n useContentClient,\n createFixtureContentClient,\n} from './content-client'\nexport type {\n ContentClient,\n ContentDocumentView,\n ContentAssetView,\n ContentQuery,\n} from './content-client'\n\nexport { RenderErrorBoundary, RenderErrorFallback } from './fallback'\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"condition.js","sourceRoot":"","sources":["../../src/runtime-renderer/condition.ts"],"names":[],"mappings":"AAGA;;;;GAIG;AACH,MAAM,UAAU,iBAAiB,CAC/B,SAAoB,EACpB,cAA8B,EAC9B,IAAkB;IAElB,IAAI,IAAa,CAAA;IACjB,IAAI,CAAC;QACH,IAAI,GAAG,cAAc,CAAC,SAAS,CAAC,MAAM,EAAE,IAAI,CAAC,CAAA;IAC/C,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,KAAK,CAAA;IACd,CAAC;IAED,QAAQ,SAAS,CAAC,QAAQ,EAAE,CAAC;QAC3B,KAAK,QAAQ;YACX,OAAO,OAAO,CAAC,IAAI,CAAC,CAAA;QACtB,KAAK,QAAQ;YACX,OAAO,IAAI,KAAK,SAAS,IAAI,IAAI,KAAK,IAAI,CAAA;QAC5C,KAAK,IAAI;YACP,OAAO,IAAI,KAAK,SAAS,CAAC,KAAK,CAAA;QACjC,KAAK,KAAK;YACR,OAAO,IAAI,KAAK,SAAS,CAAC,KAAK,CAAA;QACjC,KAAK,IAAI;YACP,OAAO,OAAO,CAAC,IAAI,EAAE,SAAS,CAAC,KAAK,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAA;QACxD,KAAK,KAAK;YACR,OAAO,OAAO,CAAC,IAAI,EAAE,SAAS,CAAC,KAAK,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,CAAA;QACzD,KAAK,IAAI;YACP,OAAO,OAAO,CAAC,IAAI,EAAE,SAAS,CAAC,KAAK,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAA;QACxD,KAAK,KAAK;YACR,OAAO,OAAO,CAAC,IAAI,EAAE,SAAS,CAAC,KAAK,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,CAAA;QACzD,OAAO,CAAC,CAAC,CAAC;YACR,wDAAwD;YACxD,MAAM,MAAM,GAAU,SAAS,CAAC,QAAQ,CAAA;YACxC,OAAO,OAAO,CAAC,MAAM,CAAC,CAAA;QACxB,CAAC;IACH,CAAC;AACH,CAAC;AAED;;;;GAIG;AACH,SAAS,OAAO,CAAC,IAAa,EAAE,KAAc,EAAE,EAAqC;IACnF,IAAI,OAAO,IAAI,KAAK,QAAQ,IAAI,OAAO,KAAK,KAAK,QAAQ;QAAE,OAAO,KAAK,CAAA;IACvE,OAAO,EAAE,CAAC,IAAI,EAAE,KAAK,CAAC,CAAA;AACxB,CAAC"}
|
|
1
|
+
{"version":3,"file":"condition.js","sourceRoot":"","sources":["../../src/runtime-renderer/condition.ts"],"names":[],"mappings":"AAGA;;;;GAIG;AACH,MAAM,UAAU,iBAAiB,CAC/B,SAAoB,EACpB,cAA8B,EAC9B,IAAkB;IAElB,IAAI,IAAa,CAAA;IACjB,IAAI,CAAC;QACH,IAAI,GAAG,cAAc,CAAC,SAAS,CAAC,MAAM,EAAE,IAAI,CAAC,CAAA;IAC/C,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,KAAK,CAAA;IACd,CAAC;IAED,QAAQ,SAAS,CAAC,QAAQ,EAAE,CAAC;QAC3B,KAAK,QAAQ;YACX,OAAO,OAAO,CAAC,IAAI,CAAC,CAAA;QACtB,KAAK,QAAQ;YACX,OAAO,IAAI,KAAK,SAAS,IAAI,IAAI,KAAK,IAAI,CAAA;QAC5C,KAAK,IAAI;YACP,OAAO,IAAI,KAAK,SAAS,CAAC,KAAK,CAAA;QACjC,KAAK,KAAK;YACR,OAAO,IAAI,KAAK,SAAS,CAAC,KAAK,CAAA;QACjC,KAAK,IAAI;YACP,OAAO,OAAO,CAAC,IAAI,EAAE,SAAS,CAAC,KAAK,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAA;QACxD,KAAK,KAAK;YACR,OAAO,OAAO,CAAC,IAAI,EAAE,SAAS,CAAC,KAAK,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,CAAA;QACzD,KAAK,IAAI;YACP,OAAO,OAAO,CAAC,IAAI,EAAE,SAAS,CAAC,KAAK,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAA;QACxD,KAAK,KAAK;YACR,OAAO,OAAO,CAAC,IAAI,EAAE,SAAS,CAAC,KAAK,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,CAAA;QACzD,OAAO,CAAC,CAAC,CAAC;YACR,wDAAwD;YACxD,MAAM,MAAM,GAAU,SAAS,CAAC,QAAQ,CAAA;YACxC,OAAO,OAAO,CAAC,MAAM,CAAC,CAAA;QACxB,CAAC;IACH,CAAC;AACH,CAAC;AAED;;;;GAIG;AACH,SAAS,OAAO,CAAC,IAAa,EAAE,KAAc,EAAE,EAAqC;IACnF,IAAI,OAAO,IAAI,KAAK,QAAQ,IAAI,OAAO,KAAK,KAAK,QAAQ;QAAE,OAAO,KAAK,CAAA;IACvE,OAAO,EAAE,CAAC,IAAI,EAAE,KAAK,CAAC,CAAA;AACxB,CAAC","sourcesContent":["import type { Condition } from '@elytracms/core/project-graph'\nimport type { ItemContext, ResolveBinding } from './context'\n\n/**\n * Evaluate a node's render condition. The left operand is resolved from the condition's\n * binding source; the operator is applied against `condition.value`. A thrown resolver\n * error is treated as a failed condition (node renders nothing) rather than a crash.\n */\nexport function evaluateCondition(\n condition: Condition,\n resolveBinding: ResolveBinding,\n item?: ItemContext,\n): boolean {\n let left: unknown\n try {\n left = resolveBinding(condition.source, item)\n } catch {\n return false\n }\n\n switch (condition.operator) {\n case 'truthy':\n return Boolean(left)\n case 'exists':\n return left !== undefined && left !== null\n case 'eq':\n return left === condition.value\n case 'neq':\n return left !== condition.value\n case 'gt':\n return compare(left, condition.value, (a, b) => a > b)\n case 'gte':\n return compare(left, condition.value, (a, b) => a >= b)\n case 'lt':\n return compare(left, condition.value, (a, b) => a < b)\n case 'lte':\n return compare(left, condition.value, (a, b) => a <= b)\n default: {\n // Exhaustiveness guard: unknown operators never render.\n const _never: never = condition.operator\n return Boolean(_never)\n }\n }\n}\n\n/**\n * Numeric ordering comparison. Ordering operators are numeric-only: a non-number operand yields\n * `false`. This matches `@elytracms/core/data-binding`'s `resolveCondition`, so the canvas and the\n * Builder's inspector/page-tree previews evaluate identically (one canonical model).\n */\nfunction compare(left: unknown, right: unknown, op: (a: number, b: number) => boolean): boolean {\n if (typeof left !== 'number' || typeof right !== 'number') return false\n return op(left, right)\n}\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"content-client.js","sourceRoot":"","sources":["../../src/runtime-renderer/content-client.tsx"],"names":[],"mappings":"AAAA,YAAY,CAAA;AAEZ,OAAO,EAAE,aAAa,EAAE,aAAa,EAAE,UAAU,EAAE,MAAM,OAAO,CAAA;AA4ChE,MAAM,oBAAoB,GAAG,aAAa,CAAuB,IAAI,CAAC,CAAA;AAEtE;;;;GAIG;AACH,MAAM,UAAU,qBAAqB,CAAC,EACpC,MAAM,EACN,QAAQ,GAIT;IACC,OAAO,aAAa,CAAC,oBAAoB,CAAC,QAAQ,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,EAAE,QAAQ,CAAC,CAAA;AAClF,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,gBAAgB;IAC9B,OAAO,UAAU,CAAC,oBAAoB,CAAC,CAAA;AACzC,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,0BAA0B,CAAC,QAG1C;IACC,MAAM,IAAI,GAAG,QAAQ,CAAC,SAAS,IAAI,EAAE,CAAA;IACrC,MAAM,MAAM,GAAG,IAAI,GAAG,CAAC,CAAC,QAAQ,CAAC,MAAM,IAAI,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,CAAA;IACrE,OAAO;QACL,WAAW,EAAE,CAAC,UAAU,EAAE,EAAE,EAAE,EAAE,CAC9B,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,UAAU,KAAK,UAAU,IAAI,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC;QAC9D,aAAa,EAAE,CAAC,KAAK,EAAE,EAAE;YACvB,MAAM,OAAO,GAAG,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,UAAU,KAAK,KAAK,CAAC,UAAU,CAAC,CAAA;YACrE,OAAO,KAAK,CAAC,KAAK,KAAK,SAAS,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,EAAE,KAAK,CAAC,KAAK,CAAC,CAAA;QAC5E,CAAC;QACD,YAAY,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC;KACrC,CAAA;AACH,CAAC"}
|
|
1
|
+
{"version":3,"file":"content-client.js","sourceRoot":"","sources":["../../src/runtime-renderer/content-client.tsx"],"names":[],"mappings":"AAAA,YAAY,CAAA;AAEZ,OAAO,EAAE,aAAa,EAAE,aAAa,EAAE,UAAU,EAAE,MAAM,OAAO,CAAA;AA4ChE,MAAM,oBAAoB,GAAG,aAAa,CAAuB,IAAI,CAAC,CAAA;AAEtE;;;;GAIG;AACH,MAAM,UAAU,qBAAqB,CAAC,EACpC,MAAM,EACN,QAAQ,GAIT;IACC,OAAO,aAAa,CAAC,oBAAoB,CAAC,QAAQ,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,EAAE,QAAQ,CAAC,CAAA;AAClF,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,gBAAgB;IAC9B,OAAO,UAAU,CAAC,oBAAoB,CAAC,CAAA;AACzC,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,0BAA0B,CAAC,QAG1C;IACC,MAAM,IAAI,GAAG,QAAQ,CAAC,SAAS,IAAI,EAAE,CAAA;IACrC,MAAM,MAAM,GAAG,IAAI,GAAG,CAAC,CAAC,QAAQ,CAAC,MAAM,IAAI,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,CAAA;IACrE,OAAO;QACL,WAAW,EAAE,CAAC,UAAU,EAAE,EAAE,EAAE,EAAE,CAC9B,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,UAAU,KAAK,UAAU,IAAI,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC;QAC9D,aAAa,EAAE,CAAC,KAAK,EAAE,EAAE;YACvB,MAAM,OAAO,GAAG,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,UAAU,KAAK,KAAK,CAAC,UAAU,CAAC,CAAA;YACrE,OAAO,KAAK,CAAC,KAAK,KAAK,SAAS,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,EAAE,KAAK,CAAC,KAAK,CAAC,CAAA;QAC5E,CAAC;QACD,YAAY,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC;KACrC,CAAA;AACH,CAAC","sourcesContent":["'use client'\n\nimport { createContext, createElement, useContext } from 'react'\nimport type { ReactNode } from 'react'\n\n/**\n * Read-only content access for self-fetching components (EC-191). With editor\n * bindings gone (EC-190), dynamic data lives INSIDE dev components: a component\n * reads what it needs from the injected client and renders it. The host provides a\n * live client (Convex-backed), the studio a read client, tests a fixture-backed\n * deterministic one — so the SAME component renders real data on the canvas, at\n * delivery, and in tests (the AGENTS.md determinism rule).\n *\n * The client is **synchronous**: it reads already-loaded content (the host fetches\n * for delivery, the studio pre-loads for preview, the test holds fixtures), which\n * keeps render deterministic and Suspense-free. A component may ALSO fetch arbitrary\n * external content through its own async hooks — the client is one source, not the\n * only one.\n */\nexport interface ContentDocumentView {\n collection: string\n id: string\n values: Record<string, unknown>\n}\n\n/** A resolved asset (EC-191) — id plus delivery-shape url/alt when known. */\nexport interface ContentAssetView {\n id: string\n url?: string\n alt?: string\n}\n\n/** A minimal list query (EC-191). Kept deliberately small for v1. */\nexport interface ContentQuery {\n collection: string\n /** Cap the number of returned documents. */\n limit?: number\n}\n\n/** The read-content contract injected into the render context (EC-191). */\nexport interface ContentClient {\n getDocument(collection: string, id: string): ContentDocumentView | undefined\n listDocuments(query: ContentQuery): ContentDocumentView[]\n resolveAsset(id: string): ContentAssetView | undefined\n}\n\nconst ContentClientContext = createContext<ContentClient | null>(null)\n\n/**\n * Provide a `ContentClient` to the rendered subtree. The renderer wraps its public\n * composite entry points (page/composition) in this when `ctx.content` is set; a\n * host rendering nodes directly can wrap manually.\n */\nexport function ContentClientProvider({\n client,\n children,\n}: {\n client: ContentClient\n children: ReactNode\n}): ReactNode {\n return createElement(ContentClientContext.Provider, { value: client }, children)\n}\n\n/**\n * Read the injected `ContentClient` inside a component implementation (EC-191).\n * Returns `null` when none is provided (e.g. a pure-static render) — a self-fetching\n * component must degrade visibly, never crash, when content access is absent.\n */\nexport function useContentClient(): ContentClient | null {\n return useContext(ContentClientContext)\n}\n\n/**\n * A deterministic, in-memory `ContentClient` over fixed documents + assets (EC-191).\n * The studio preview and tests use it so a self-fetching component renders the same\n * content every time. `limit` is the only query knob in v1.\n */\nexport function createFixtureContentClient(fixtures: {\n documents?: readonly ContentDocumentView[]\n assets?: readonly ContentAssetView[]\n}): ContentClient {\n const docs = fixtures.documents ?? []\n const assets = new Map((fixtures.assets ?? []).map((a) => [a.id, a]))\n return {\n getDocument: (collection, id) =>\n docs.find((d) => d.collection === collection && d.id === id),\n listDocuments: (query) => {\n const matched = docs.filter((d) => d.collection === query.collection)\n return query.limit === undefined ? matched : matched.slice(0, query.limit)\n },\n resolveAsset: (id) => assets.get(id),\n }\n}\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"context.js","sourceRoot":"","sources":["../../src/runtime-renderer/context.ts"],"names":[],"mappings":"AAyLA,yFAAyF;AACzF,MAAM,UAAU,iBAAiB,CAC/B,eAAyC,EACzC,EAAU;IAEV,IAAI,eAAe,YAAY,GAAG;QAAE,OAAO,eAAe,CAAC,GAAG,CAAC,EAAE,CAAC,CAAA;IAClE,OAAO,eAAe,CAAC,EAAE,CAAC,CAAA;AAC5B,CAAC"}
|
|
1
|
+
{"version":3,"file":"context.js","sourceRoot":"","sources":["../../src/runtime-renderer/context.ts"],"names":[],"mappings":"AAyLA,yFAAyF;AACzF,MAAM,UAAU,iBAAiB,CAC/B,eAAyC,EACzC,EAAU;IAEV,IAAI,eAAe,YAAY,GAAG;QAAE,OAAO,eAAe,CAAC,GAAG,CAAC,EAAE,CAAC,CAAA;IAClE,OAAO,eAAe,CAAC,EAAE,CAAC,CAAA;AAC5B,CAAC","sourcesContent":["import type { ComponentType, ReactNode } from 'react'\nimport type { BindingReference, ComponentNode } from '@elytracms/core/project-graph'\nimport type { ComponentRegistry } from '@elytracms/core/component-registry'\nimport type { ContentClient } from './content-client'\n\n/**\n * A single repeater item scope. When set, `repeaterItem`-mode bindings resolve against\n * `item` rather than the root data source (brief §4.6 — uniform binding model).\n */\nexport interface ItemContext {\n item: unknown\n index: number\n}\n\n/**\n * Resolves a binding to a runtime value. INJECTED by the host (builder preview, export\n * runtime, tests) so the renderer never imports `@elytracms/core/data-binding`. When an\n * `ItemContext` is active, it is passed through so `repeaterItem` bindings resolve\n * relative to the current item.\n */\nexport type ResolveBinding = (ref: BindingReference, item?: ItemContext) => unknown\n\n/**\n * A resolved asset, ready to hand to an image implementation (EC-195). The\n * delivery-shaped subset of `@elytracms/core/content`'s `ResolvedAsset` the renderer\n * needs — kept minimal so the renderer takes no dependency on the content or\n * persistence packages. `width`/`height` are intrinsic dimensions (so the host\n * can reserve space and `next/image` can size variants); `null` when unknown.\n */\nexport interface RenderAsset {\n url: string\n width: number | null\n height: number | null\n alt: string | null\n /**\n * Normalized focal point `{ x, y }` in 0–1 (EC-230) → CSS `object-position` so\n * an art-directed image keeps its subject in frame when cropped; `null` when\n * none. Kept as a plain pair so the renderer stays free of content/persistence.\n */\n focalPoint: { x: number; y: number } | null\n}\n\n/**\n * Resolves a stored asset id to a usable asset (EC-195), or `null` when the\n * asset is missing (the renderer then shows the EC-015 visible fallback rather\n * than crashing). INJECTED by the host/studio exactly like {@link ResolveBinding},\n * so the renderer never imports the asset store or content packages.\n */\nexport type ResolveAsset = (assetId: string) => RenderAsset | null\n\n/**\n * A relation target populated to delivery shape (EC-254): identity plus the\n * target document's resolved fields (relations inside stay `{ id, collection }`\n * stubs at depth-1; assets inside resolve to objects). Opaque to the renderer —\n * the host's content layer produces it, the component implementation reads its\n * fields. The minimal structural face is `{ id, collection }`.\n */\nexport type RelationTarget = { id: string; collection: string } & Record<string, unknown>\n\n/**\n * Resolves a composition-node `relation` PROP's stored reference to its populated\n * target (EC-254), or `null` when the target is missing or not visible in the\n * delivery perspective — the prop is then omitted (`one`) or dropped from the\n * array (`many`), the same graceful degradation as a missing {@link ResolveAsset}.\n *\n * INJECTED by the host/studio exactly like {@link ResolveAsset}, wired to\n * `@elytracms/core/content`'s depth-1 population (`ContentClient.resolveRelation`), so\n * the renderer never imports the content/persistence packages. This populates the\n * relation props of the nodes INSIDE a page's `blocks` composition — which\n * document resolution leaves raw, never descending into a composition value.\n */\nexport type ResolveRelation = (ref: { collection: string; id: string }) => RelationTarget | null\n\n/**\n * A resolved listing query (EC-255): the collection to list plus a closed,\n * AND-only filter (`field → required scalar`, a relation field reduced to its\n * target id — the v1 AD-3 vocabulary), with optional single-field sort and\n * limit. Built by {@link listingQueryOf} from a node's `listing` manifest and\n * its filter-source prop pick. Plain & serializable — primitives only, no\n * content/query-package types — so a host can key a baked result by it and the\n * renderer stays free of the content/persistence packages.\n */\nexport interface ListingQuery {\n collection: string\n /** Field → required scalar; every entry must hold (AND). Empty matches all. */\n where: Record<string, string | number | boolean>\n sort?: { field: string; direction?: 'asc' | 'desc' }\n limit?: number\n}\n\n/**\n * Resolves a {@link ListingQuery} to its matching documents in depth-1 delivery\n * shape (EC-255), or `null` when no resolver is wired / the query is unresolvable.\n * The first un-parked **listing binding** (AD-9): a block renders documents from a\n * live query, not a static pick. INJECTED by the host exactly like\n * {@link ResolveRelation} — the Next host bakes a serialized-query→docs map and\n * the studio runs the query live — so the renderer never imports the content/query\n * packages. A `null`/absent result degrades to the block's own empty state, the\n * same graceful degradation as a missing relation target.\n */\nexport type ResolveListing = (query: ListingQuery) => RelationTarget[] | null\n\n/**\n * A composition renderer injected as a PROP (EC-254 transclusion) into any\n * component that declares a `relation` prop — server-safe like the EC-189 embed\n * renderer (a function cannot cross the RSC boundary through a `'use client'`\n * context provider). The implementation calls it on a populated relation target's\n * `blocks`-typed field value (e.g. `project.Reusable` rendering the referenced\n * `reusable`'s `content`), so a referenced document's sub-blocks compose inline.\n */\nexport type RenderBlocks = (value: unknown) => ReactNode\n\n/**\n * Maps namespaced component ids to their React implementations. Implementations receive\n * resolved props plus rendered slot children: the default slot `children` maps to React\n * `children`, and every other named slot is passed as a prop named after the slot.\n */\nexport type ComponentImplementations =\n | Record<string, ComponentType<Record<string, unknown>>>\n | Map<string, ComponentType<Record<string, unknown>>>\n\n/** Everything the renderer needs to turn a node into React, with no builder-only imports. */\nexport interface RenderContext {\n /** Source of component manifests (prop schemas, slots, iterate specs). */\n registry: ComponentRegistry\n /** React implementations keyed by component id. */\n implementations: ComponentImplementations\n /** Injected binding resolver — the renderer's only link to data. */\n resolveBinding: ResolveBinding\n /**\n * Injected asset resolver (EC-195). When set, a static `asset`-typed prop\n * holding an asset id resolves to a {@link RenderAsset} (url + intrinsic\n * dimensions + alt) before reaching the implementation — so an uploaded image\n * placed on a page renders optimized on the host. Unset → asset-typed props\n * pass through unresolved (raw value), the same graceful degradation as a\n * missing binding resolver.\n */\n resolveAsset?: ResolveAsset\n /**\n * Injected relation resolver (EC-254). When set, a static `relation`-typed prop\n * holding a `{ collection, id }` ref (the editor's document pick on a block,\n * e.g. a ProductGrid's `products`) is populated to its depth-1 delivery shape\n * before reaching the implementation — so a block reads `product.title` /\n * `product.gallery[0].url`, not a raw ref. Unset → relation props pass through\n * unresolved (raw ref), the same graceful degradation as a missing asset\n * resolver. Wired by the host to `ContentClient.resolveRelation`.\n */\n resolveRelation?: ResolveRelation\n /**\n * Injected listing resolver (EC-255). When set, a component whose manifest\n * declares a `listing` (e.g. a ProductGrid keyed to a picked `category`) has\n * its declared listing prop populated with the documents the query matches —\n * a live, dynamic grid, not a hand-maintained static relation. Built from the\n * node's filter-source prop via {@link listingQueryOf}; the host runs the query\n * (Next bakes it, the studio runs it live). Unset → the listing prop is an empty\n * array (the block shows its empty state), the same graceful degradation as a\n * missing relation resolver. Wired by the host to `ContentClient.listDocuments`.\n */\n resolveListing?: ResolveListing\n /**\n * Read-content client for self-fetching components (EC-191). When set, the\n * renderer's composite entry points wrap the output in a `ContentClientProvider`\n * so components reach it via `useContentClient()`. Host-injected (live), studio\n * (read), or fixture-backed (tests) — components render real data uniformly.\n */\n content?: ContentClient\n /**\n * The chain of relation-target keys (`collection:id`) currently being\n * TRANSCLUDED through {@link RenderBlocks} (EC-254). Extended each time a\n * component transcludes a populated relation target's blocks; a relation prop\n * whose ref is already in this chain is NOT re-populated, breaking reference\n * cycles (a `reusable` that transitively references itself) without looping.\n * Empty/absent on an ordinary page render — no relation is ever skipped.\n */\n transcludePath?: readonly string[]\n /** Active repeater item scope, when rendering inside a repeater item slot. */\n item?: ItemContext\n /**\n * Optional per-node decorator (brief §8.2). When set, the renderer wraps every\n * rendered node so a host (the Builder) can attach selection markers/overlays.\n * Unset for export/preview — zero overhead and identical output.\n */\n decorateNode?: (node: ComponentNode, rendered: ReactNode) => ReactNode\n}\n\n/** Read an implementation regardless of whether implementations is a Map or a record. */\nexport function getImplementation(\n implementations: ComponentImplementations,\n id: string,\n): ComponentType<Record<string, unknown>> | undefined {\n if (implementations instanceof Map) return implementations.get(id)\n return implementations[id]\n}\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"fallback.js","sourceRoot":"","sources":["../../src/runtime-renderer/fallback.tsx"],"names":[],"mappings":"AAAA,YAAY,CAAA;;AAEZ,OAAO,EAAE,SAAS,EAAE,MAAM,OAAO,CAAA;AAGjC;;;GAGG;AACH,MAAM,UAAU,wBAAwB,CAAC,KAGxC;IACC,OAAO,CACL,kCACmB,mBAAmB,qBACnB,KAAK,CAAC,MAAM,0BACP,KAAK,CAAC,WAAW,YAEtC,sBAAsB,KAAK,CAAC,WAAW,WAAW,KAAK,CAAC,MAAM,GAAG,GAC9D,CACP,CAAA;AACH,CAAC;AAED,4FAA4F;AAC5F,MAAM,UAAU,sBAAsB,CAAC,KAAuC;IAC5E,OAAO,CACL,kCAAsB,cAAc,qBAAkB,KAAK,CAAC,MAAM,kBAAgB,KAAK,CAAC,IAAI,YACzF,0BAA0B,KAAK,CAAC,IAAI,WAAW,KAAK,CAAC,MAAM,GAAG,GAC3D,CACP,CAAA;AACH,CAAC;AAED,gGAAgG;AAChG,MAAM,UAAU,mBAAmB,CAAC,KAA2C;IAC7E,OAAO,CACL,kCAAsB,cAAc,qBAAkB,KAAK,CAAC,MAAM,YAC/D,KAAK,CAAC,OAAO;YACZ,CAAC,CAAC,wBAAwB,KAAK,CAAC,MAAM,KAAK,KAAK,CAAC,OAAO,EAAE;YAC1D,CAAC,CAAC,wBAAwB,KAAK,CAAC,MAAM,EAAE,GACtC,CACP,CAAA;AACH,CAAC;AAWD;;;;GAIG;AACH,MAAM,OAAO,mBAAoB,SAAQ,SAAiD;IACxF,YAAY,KAAyB;QACnC,KAAK,CAAC,KAAK,CAAC,CAAA;QACZ,IAAI,CAAC,KAAK,GAAG,EAAE,KAAK,EAAE,IAAI,EAAE,CAAA;IAC9B,CAAC;IAED,MAAM,CAAC,wBAAwB,CAAC,KAAY;QAC1C,OAAO,EAAE,KAAK,EAAE,CAAA;IAClB,CAAC;IAEQ,iBAAiB,CAAC,MAAa,EAAE,KAAgB;QACxD,kFAAkF;QAClF,+CAA+C;IACjD,CAAC;IAEQ,MAAM;QACb,IAAI,IAAI,CAAC,KAAK,CAAC,KAAK,EAAE,CAAC;YACrB,OAAO,KAAC,mBAAmB,IAAC,MAAM,EAAE,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE,OAAO,EAAE,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,OAAO,GAAI,CAAA;QAC9F,CAAC;QACD,OAAO,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAA;IAC5B,CAAC;CACF"}
|
|
1
|
+
{"version":3,"file":"fallback.js","sourceRoot":"","sources":["../../src/runtime-renderer/fallback.tsx"],"names":[],"mappings":"AAAA,YAAY,CAAA;;AAEZ,OAAO,EAAE,SAAS,EAAE,MAAM,OAAO,CAAA;AAGjC;;;GAGG;AACH,MAAM,UAAU,wBAAwB,CAAC,KAGxC;IACC,OAAO,CACL,kCACmB,mBAAmB,qBACnB,KAAK,CAAC,MAAM,0BACP,KAAK,CAAC,WAAW,YAEtC,sBAAsB,KAAK,CAAC,WAAW,WAAW,KAAK,CAAC,MAAM,GAAG,GAC9D,CACP,CAAA;AACH,CAAC;AAED,4FAA4F;AAC5F,MAAM,UAAU,sBAAsB,CAAC,KAAuC;IAC5E,OAAO,CACL,kCAAsB,cAAc,qBAAkB,KAAK,CAAC,MAAM,kBAAgB,KAAK,CAAC,IAAI,YACzF,0BAA0B,KAAK,CAAC,IAAI,WAAW,KAAK,CAAC,MAAM,GAAG,GAC3D,CACP,CAAA;AACH,CAAC;AAED,gGAAgG;AAChG,MAAM,UAAU,mBAAmB,CAAC,KAA2C;IAC7E,OAAO,CACL,kCAAsB,cAAc,qBAAkB,KAAK,CAAC,MAAM,YAC/D,KAAK,CAAC,OAAO;YACZ,CAAC,CAAC,wBAAwB,KAAK,CAAC,MAAM,KAAK,KAAK,CAAC,OAAO,EAAE;YAC1D,CAAC,CAAC,wBAAwB,KAAK,CAAC,MAAM,EAAE,GACtC,CACP,CAAA;AACH,CAAC;AAWD;;;;GAIG;AACH,MAAM,OAAO,mBAAoB,SAAQ,SAAiD;IACxF,YAAY,KAAyB;QACnC,KAAK,CAAC,KAAK,CAAC,CAAA;QACZ,IAAI,CAAC,KAAK,GAAG,EAAE,KAAK,EAAE,IAAI,EAAE,CAAA;IAC9B,CAAC;IAED,MAAM,CAAC,wBAAwB,CAAC,KAAY;QAC1C,OAAO,EAAE,KAAK,EAAE,CAAA;IAClB,CAAC;IAEQ,iBAAiB,CAAC,MAAa,EAAE,KAAgB;QACxD,kFAAkF;QAClF,+CAA+C;IACjD,CAAC;IAEQ,MAAM;QACb,IAAI,IAAI,CAAC,KAAK,CAAC,KAAK,EAAE,CAAC;YACrB,OAAO,KAAC,mBAAmB,IAAC,MAAM,EAAE,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE,OAAO,EAAE,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,OAAO,GAAI,CAAA;QAC9F,CAAC;QACD,OAAO,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAA;IAC5B,CAAC;CACF","sourcesContent":["'use client'\n\nimport { Component } from 'react'\nimport type { ErrorInfo, ReactNode } from 'react'\n\n/**\n * Visible fallback for a node whose component has no manifest or no implementation.\n * Renders instead of throwing so a single bad reference never blanks the page (brief §4.11).\n */\nexport function MissingComponentFallback(props: {\n nodeId: string\n componentId: string\n}): ReactNode {\n return (\n <div\n data-ec-fallback=\"missing-component\"\n data-ec-node-id={props.nodeId}\n data-ec-component-id={props.componentId}\n >\n {`Missing component \"${props.componentId}\" (node ${props.nodeId})`}\n </div>\n )\n}\n\n/** Visible placeholder rendered in the position of a required slot that has no children. */\nexport function MissingSlotPlaceholder(props: { nodeId: string; slot: string }): ReactNode {\n return (\n <div data-ec-fallback=\"missing-slot\" data-ec-node-id={props.nodeId} data-ec-slot={props.slot}>\n {`Missing required slot \"${props.slot}\" (node ${props.nodeId})`}\n </div>\n )\n}\n\n/** Visible fallback for a node that threw while resolving props/bindings or while rendering. */\nexport function RenderErrorFallback(props: { nodeId: string; message?: string }): ReactNode {\n return (\n <div data-ec-fallback=\"render-error\" data-ec-node-id={props.nodeId}>\n {props.message\n ? `Render error in node ${props.nodeId}: ${props.message}`\n : `Render error in node ${props.nodeId}`}\n </div>\n )\n}\n\ninterface ErrorBoundaryProps {\n nodeId: string\n children: ReactNode\n}\n\ninterface ErrorBoundaryState {\n error: Error | null\n}\n\n/**\n * Client-side error boundary: when a descendant component throws during render, this swaps\n * in a visible fallback rather than unmounting the whole tree. Server rendering cannot use\n * boundaries to recover, so the renderer additionally wraps resolution in try/catch.\n */\nexport class RenderErrorBoundary extends Component<ErrorBoundaryProps, ErrorBoundaryState> {\n constructor(props: ErrorBoundaryProps) {\n super(props)\n this.state = { error: null }\n }\n\n static getDerivedStateFromError(error: Error): ErrorBoundaryState {\n return { error }\n }\n\n override componentDidCatch(_error: Error, _info: ErrorInfo): void {\n // Intentionally swallowed: the fallback is the user-visible signal. Hosts may add\n // their own logging by wrapping this boundary.\n }\n\n override render(): ReactNode {\n if (this.state.error) {\n return <RenderErrorFallback nodeId={this.props.nodeId} message={this.state.error.message} />\n }\n return this.props.children\n }\n}\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/runtime-renderer/index.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,OAAO,GAAG,kCAAkC,CAAA;AAezD,OAAO,EAAE,iBAAiB,EAAE,MAAM,WAAW,CAAA;AAE7C,OAAO,EAAE,iBAAiB,EAAE,MAAM,aAAa,CAAA;AAE/C,OAAO,EACL,UAAU,EACV,iBAAiB,EACjB,yBAAyB,EACzB,mBAAmB,EACnB,oBAAoB,EACpB,yBAAyB,EACzB,0BAA0B,EAC1B,yBAAyB,EACzB,cAAc,EACd,qBAAqB,GACtB,MAAM,UAAU,CAAA;AASjB,OAAO,EACL,qBAAqB,EACrB,gBAAgB,EAChB,0BAA0B,GAC3B,MAAM,kBAAkB,CAAA;AAEzB,OAAO,EACL,wBAAwB,EACxB,sBAAsB,EACtB,mBAAmB,EACnB,mBAAmB,GACpB,MAAM,YAAY,CAAA;AAGnB,OAAO,EAAE,cAAc,EAAE,uBAAuB,EAAE,oBAAoB,EAAE,MAAM,cAAc,CAAA;AAC5F,+EAA+E;AAC/E,OAAO,EAAE,yBAAyB,EAAE,cAAc,EAAE,MAAM,cAAc,CAAA;AACxE,OAAO,EACL,SAAS,EACT,KAAK,EACL,IAAI,EACJ,IAAI,EACJ,OAAO,EACP,KAAK,EACL,MAAM,EACN,QAAQ,EACR,MAAM,EACN,iBAAiB,EACjB,aAAa,EACb,YAAY,EACZ,YAAY,EACZ,eAAe,EACf,aAAa,EACb,cAAc,EACd,gBAAgB,EAChB,cAAc,GACf,MAAM,cAAc,CAAA;AAErB,wCAAwC;AACxC,OAAO,EACL,QAAQ,EACR,gBAAgB,EAChB,uBAAuB,EACvB,yBAAyB,GAC1B,MAAM,aAAa,CAAA"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/runtime-renderer/index.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,OAAO,GAAG,kCAAkC,CAAA;AAezD,OAAO,EAAE,iBAAiB,EAAE,MAAM,WAAW,CAAA;AAE7C,OAAO,EAAE,iBAAiB,EAAE,MAAM,aAAa,CAAA;AAE/C,OAAO,EACL,UAAU,EACV,iBAAiB,EACjB,yBAAyB,EACzB,mBAAmB,EACnB,oBAAoB,EACpB,yBAAyB,EACzB,0BAA0B,EAC1B,yBAAyB,EACzB,cAAc,EACd,qBAAqB,GACtB,MAAM,UAAU,CAAA;AASjB,OAAO,EACL,qBAAqB,EACrB,gBAAgB,EAChB,0BAA0B,GAC3B,MAAM,kBAAkB,CAAA;AAEzB,OAAO,EACL,wBAAwB,EACxB,sBAAsB,EACtB,mBAAmB,EACnB,mBAAmB,GACpB,MAAM,YAAY,CAAA;AAGnB,OAAO,EAAE,cAAc,EAAE,uBAAuB,EAAE,oBAAoB,EAAE,MAAM,cAAc,CAAA;AAC5F,+EAA+E;AAC/E,OAAO,EAAE,yBAAyB,EAAE,cAAc,EAAE,MAAM,cAAc,CAAA;AACxE,OAAO,EACL,SAAS,EACT,KAAK,EACL,IAAI,EACJ,IAAI,EACJ,OAAO,EACP,KAAK,EACL,MAAM,EACN,QAAQ,EACR,MAAM,EACN,iBAAiB,EACjB,aAAa,EACb,YAAY,EACZ,YAAY,EACZ,eAAe,EACf,aAAa,EACb,cAAc,EACd,gBAAgB,EAChB,cAAc,GACf,MAAM,cAAc,CAAA;AAErB,wCAAwC;AACxC,OAAO,EACL,QAAQ,EACR,gBAAgB,EAChB,uBAAuB,EACvB,yBAAyB,GAC1B,MAAM,aAAa,CAAA","sourcesContent":["export const PACKAGE = '@elytracms/core/runtime-renderer'\n\nexport type {\n ComponentImplementations,\n ItemContext,\n ListingQuery,\n RelationTarget,\n RenderAsset,\n RenderBlocks,\n RenderContext,\n ResolveAsset,\n ResolveBinding,\n ResolveListing,\n ResolveRelation,\n} from './context'\nexport { getImplementation } from './context'\n\nexport { evaluateCondition } from './condition'\n\nexport {\n renderNode,\n renderComposition,\n renderCompositionInLayout,\n createEmbedRenderer,\n createBlocksRenderer,\n collectReferencedAssetIds,\n collectReferencedRelations,\n collectReferencedListings,\n listingQueryOf,\n serializeListingQuery,\n} from './render'\n\n// Content access for self-fetching components (EC-191).\nexport type {\n ContentClient,\n ContentDocumentView,\n ContentAssetView,\n ContentQuery,\n} from './content-client'\nexport {\n ContentClientProvider,\n useContentClient,\n createFixtureContentClient,\n} from './content-client'\n\nexport {\n MissingComponentFallback,\n MissingSlotPlaceholder,\n RenderErrorFallback,\n RenderErrorBoundary,\n} from './fallback'\n\nexport type { BasePrimitives, ImageSource } from './primitives'\nexport { basePrimitives, createPrimitiveRegistry, normalizeImageSource } from './primitives'\n// Responsive defaults (EC-163): the stack-on-mobile breakpoint + emitted rule.\nexport { GRID_MOBILE_BREAKPOINT_PX, GRID_STACK_CSS } from './primitives'\nexport {\n Container,\n Stack,\n Grid,\n Text,\n Heading,\n Image,\n Button,\n Repeater,\n Switch,\n ContainerManifest,\n StackManifest,\n GridManifest,\n TextManifest,\n HeadingManifest,\n ImageManifest,\n ButtonManifest,\n RepeaterManifest,\n SwitchManifest,\n} from './primitives'\n\n// Rich-text content primitive (EC-159).\nexport {\n RichText,\n RichTextManifest,\n RICH_TEXT_DEFAULT_VALUE,\n richTextPrimitiveRegistry,\n} from './rich-text'\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"primitives.js","sourceRoot":"","sources":["../../src/runtime-renderer/primitives.tsx"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"primitives.js","sourceRoot":"","sources":["../../src/runtime-renderer/primitives.tsx"],"names":[],"mappings":"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","sourcesContent":["import { createElement } from 'react'\nimport type { ComponentType, CSSProperties, ReactNode } from 'react'\nimport {\n CONTAINER_ALIGNMENTS,\n GRID_MAX_COLUMNS,\n GRID_MIN_COLUMNS,\n SPACING_TOKEN_NAMES,\n spacingTokenCss,\n} from '@elytracms/core/project-graph'\nimport type { ContainerAlignment } from '@elytracms/core/project-graph'\nimport { defineComponent } from '@elytracms/core/component-registry'\nimport type { ComponentManifest } from '@elytracms/core/component-registry'\nimport { ComponentRegistry } from '@elytracms/core/component-registry'\nimport type { ComponentImplementations } from './context'\nimport { RichText, RichTextManifest } from './rich-text'\n\n/**\n * Common shape for primitive implementations: resolved props (arbitrary keys) plus React\n * children for the default slot and any named-slot props.\n */\ntype PrimitiveProps = Record<string, unknown> & { children?: ReactNode }\n\nfunction asString(value: unknown, fallback = ''): string {\n return typeof value === 'string' ? value : fallback\n}\n\n// ---------------------------------------------------------------------------\n// Layout-container styling (EC-161) — gap/alignment resolve from the canonical\n// design-token spacing scale; legacy numeric gaps (`n` → `n * 4px`) stay\n// renderable so pre-token graphs keep their layout.\n// ---------------------------------------------------------------------------\n\nfunction gapCss(value: unknown): string | undefined {\n if (typeof value === 'string') return spacingTokenCss(value)\n if (typeof value === 'number' && Number.isFinite(value) && value > 0) return `${value * 4}px`\n return undefined\n}\n\nconst ALIGN_ITEMS: Record<ContainerAlignment, CSSProperties['alignItems']> = {\n start: 'flex-start',\n center: 'center',\n end: 'flex-end',\n stretch: 'stretch',\n}\n\n/** `alignItems` for a container `align` prop; undefined for `stretch` (the CSS default) or junk. */\nfunction alignItemsCss(value: unknown): CSSProperties['alignItems'] {\n if (value === 'start' || value === 'center' || value === 'end') return ALIGN_ITEMS[value]\n return undefined\n}\n\nconst SPACING_OPTIONS = SPACING_TOKEN_NAMES.map((name) => ({ label: name, value: name }))\nconst ALIGN_OPTIONS = CONTAINER_ALIGNMENTS.map((name) => ({ label: name, value: name }))\n\n// ---------------------------------------------------------------------------\n// Container — a generic block wrapper with a single default slot.\n// ---------------------------------------------------------------------------\n\nfunction Container(props: PrimitiveProps): ReactNode {\n // The default `children` slot and the layout `outlet` slot both render here; the outlet\n // is where `renderCompositionInLayout` injects the page body when this Container is a layout root.\n return (\n <div data-ec-primitive=\"Container\">\n {props.children}\n {props.outlet as ReactNode}\n </div>\n )\n}\n\nconst ContainerManifest = defineComponent({\n id: 'base.primitives.Container',\n namespace: 'base.primitives',\n title: 'Container',\n category: 'layout',\n props: {},\n // The outlet is filled by page injection, so it is not authored-required.\n slots: [{ name: 'children' }, { name: 'outlet' }],\n})\n\n// ---------------------------------------------------------------------------\n// Stack — flex layout container (EC-161): direction, token-bound gap, alignment.\n// ---------------------------------------------------------------------------\n\nfunction Stack(props: PrimitiveProps): ReactNode {\n const style: CSSProperties = {\n display: 'flex',\n flexDirection: props.direction === 'horizontal' ? 'row' : 'column',\n }\n const gap = gapCss(props.gap)\n if (gap !== undefined) style.gap = gap\n const alignItems = alignItemsCss(props.align)\n if (alignItems !== undefined) style.alignItems = alignItems\n return (\n <div data-ec-primitive=\"Stack\" style={style}>\n {props.children}\n </div>\n )\n}\n\nconst StackManifest = defineComponent({\n id: 'base.primitives.Stack',\n namespace: 'base.primitives',\n title: 'Stack',\n category: 'layout',\n props: {\n direction: {\n type: 'select',\n context: 'prop',\n default: 'vertical',\n options: [\n { value: 'vertical', label: 'Vertical' },\n { value: 'horizontal', label: 'Horizontal' },\n ],\n form: { label: 'Direction' },\n },\n gap: {\n // A design-token spacing step name (EC-161); legacy numeric gaps still render.\n type: 'select',\n context: 'prop',\n default: '4',\n options: SPACING_OPTIONS,\n form: { label: 'Gap' },\n },\n align: {\n type: 'select',\n context: 'prop',\n default: 'stretch',\n options: ALIGN_OPTIONS,\n form: { label: 'Align' },\n },\n },\n slots: [{ name: 'children' }],\n designTokens: ['space.gap'],\n})\n\n// ---------------------------------------------------------------------------\n// Grid — CSS grid container (EC-161): column count, token-bound gap, alignment.\n// ---------------------------------------------------------------------------\n\nfunction asColumns(value: unknown): number {\n if (typeof value !== 'number' || !Number.isFinite(value)) return GRID_MIN_COLUMNS\n return Math.min(Math.max(GRID_MIN_COLUMNS, Math.floor(value)), GRID_MAX_COLUMNS)\n}\n\n/**\n * Responsive defaults (EC-163): below this viewport width a Grid's columns\n * stack into one. 640px (the Tailwind `sm` boundary) sits between the\n * builder's deterministic preview widths — phone (390px) stacks, tablet\n * (768px) keeps columns.\n */\nexport const GRID_MOBILE_BREAKPOINT_PX = 640\n\n/**\n * The stack-on-mobile rule a stacking Grid carries with it. A **viewport media\n * query** (not a container query), deliberately: the builder canvas renders\n * into an iframe — a true viewport — so constraining the iframe to the phone\n * width makes this exact rule fire in the preview; and the identical markup\n * server-renders in `@elytracms/next` (App Router SSR) with no client JS, no\n * extra stylesheet wiring, and no `container-type` context that every consumer\n * would otherwise have to guarantee around every grid. The rule is emitted as\n * an inline `<style>` child of the grid itself (style elements generate no\n * grid item), so the behavior is self-contained wherever the implementation\n * renders — canvas iframe portal, static markup, or RSC payload — and the\n * `!important` lets the stylesheet rule beat the grid's own inline column\n * template. Opted-out grids (`stackOnMobile: false`) carry neither the\n * attribute nor the rule.\n */\nexport const GRID_STACK_CSS = `@media (max-width: ${GRID_MOBILE_BREAKPOINT_PX}px){[data-ec-grid-stack]{grid-template-columns:minmax(0,1fr) !important}}`\n\nfunction Grid(props: PrimitiveProps): ReactNode {\n const style: CSSProperties = {\n display: 'grid',\n gridTemplateColumns: `repeat(${asColumns(props.columns)}, minmax(0, 1fr))`,\n }\n const gap = gapCss(props.gap)\n if (gap !== undefined) style.gap = gap\n const alignItems = alignItemsCss(props.align)\n if (alignItems !== undefined) style.alignItems = alignItems\n // Stack-on-mobile is the default; only the explicit opt-out keeps columns.\n const stacksOnMobile = props.stackOnMobile !== false\n return (\n <div\n data-ec-primitive=\"Grid\"\n {...(stacksOnMobile ? { 'data-ec-grid-stack': '' } : {})}\n style={style}\n >\n {stacksOnMobile ? <style>{GRID_STACK_CSS}</style> : null}\n {props.children}\n </div>\n )\n}\n\nconst GridManifest = defineComponent({\n id: 'base.primitives.Grid',\n namespace: 'base.primitives',\n title: 'Grid',\n category: 'layout',\n props: {\n columns: {\n type: 'number',\n context: 'prop',\n default: 2,\n validation: { min: GRID_MIN_COLUMNS, max: GRID_MAX_COLUMNS },\n form: { label: 'Columns' },\n },\n gap: {\n type: 'select',\n context: 'prop',\n default: '4',\n options: SPACING_OPTIONS,\n form: { label: 'Gap' },\n },\n align: {\n type: 'select',\n context: 'prop',\n default: 'stretch',\n options: ALIGN_OPTIONS,\n form: { label: 'Align' },\n },\n stackOnMobile: {\n // Responsive default (EC-163): stacking is on unless explicitly opted out.\n type: 'boolean',\n context: 'prop',\n default: true,\n form: { label: 'Stack on phones' },\n },\n },\n slots: [{ name: 'children' }],\n designTokens: ['space.gap'],\n})\n\n// ---------------------------------------------------------------------------\n// Text — a paragraph of text driven by the `value` prop.\n// ---------------------------------------------------------------------------\n\nfunction Text(props: PrimitiveProps): ReactNode {\n return <p data-ec-primitive=\"Text\">{asString(props.value)}</p>\n}\n\nconst TextManifest = defineComponent({\n id: 'base.primitives.Text',\n namespace: 'base.primitives',\n title: 'Text',\n category: 'content',\n props: {\n value: {\n type: 'text',\n context: 'prop',\n default: '',\n // Plain-text content prop, editable in place on the canvas (EC-158).\n form: { label: 'Text', control: 'textarea', inlineEditable: true },\n },\n },\n slots: [],\n})\n\n// ---------------------------------------------------------------------------\n// Heading — h1..h6 heading driven by `text` + `level`. Needed by the sample graph.\n// ---------------------------------------------------------------------------\n\nfunction Heading(props: PrimitiveProps): ReactNode {\n const level =\n typeof props.level === 'number' && props.level >= 1 && props.level <= 6 ? props.level : 2\n const tag = `h${level}`\n return createElement(tag, { 'data-ec-primitive': 'Heading' }, asString(props.text))\n}\n\nconst HeadingManifest = defineComponent({\n id: 'base.primitives.Heading',\n namespace: 'base.primitives',\n title: 'Heading',\n category: 'content',\n props: {\n text: {\n type: 'text',\n context: 'prop',\n default: '',\n // Plain-text content prop, editable in place on the canvas (EC-158).\n form: { label: 'Text', inlineEditable: true },\n },\n level: {\n // A numeric heading level 1–6 (the impl clamps out-of-range to 2).\n type: 'number',\n context: 'prop',\n default: 2,\n validation: { min: 1, max: 6 },\n form: { label: 'Level' },\n },\n },\n slots: [],\n})\n\n// ---------------------------------------------------------------------------\n// Image — an <img> with src/alt plus intrinsic dimensions (EC-152). Width and\n// height come from the asset metadata record (bindable to the delivery\n// shape's `width`/`height`) so rendered images reserve layout space — no\n// layout shift. A plain <img> is correct for non-Next contexts (the builder\n// canvas runs on Vite); `@elytracms/next` overrides this implementation with\n// `ElytraImage` (next/image) for host apps.\n// ---------------------------------------------------------------------------\n\nfunction asPositiveInt(value: unknown): number | undefined {\n return typeof value === 'number' && Number.isInteger(value) && value > 0 ? value : undefined\n}\n\n/**\n * The Image `src` may be a resolved asset (EC-195: an `asset`-typed prop the\n * renderer resolved from an asset id) or a plain URL string. Normalize to\n * `{ url, width, height, alt }`, letting the asset's intrinsic dimensions/alt\n * fill in when the explicit props are unset — so an uploaded image reserves the\n * right box (no layout shift) and carries its alt text by default.\n */\nexport interface ImageSource {\n url: string\n width: number | undefined\n height: number | undefined\n alt: string\n /** Normalized focal point `{ x, y }` 0–1 (EC-230) → CSS object-position; null when none. */\n focalPoint: { x: number; y: number } | null\n}\n\n/** Read a resolved asset's `focalPoint` defensively (a `{ x, y }` pair in 0–1). */\nfunction asFocalPoint(value: unknown): { x: number; y: number } | null {\n if (value && typeof value === 'object' && !Array.isArray(value)) {\n const point = value as { x?: unknown; y?: unknown }\n if (typeof point.x === 'number' && typeof point.y === 'number') {\n return { x: point.x, y: point.y }\n }\n }\n return null\n}\n\nexport function normalizeImageSource(props: PrimitiveProps): ImageSource {\n const src = props.src\n const asset =\n src && typeof src === 'object' && !Array.isArray(src)\n ? (src as {\n url?: unknown\n width?: unknown\n height?: unknown\n alt?: unknown\n focalPoint?: unknown\n })\n : null\n const url = asset ? asString(asset.url) : asString(src)\n const width = asPositiveInt(props.width) ?? (asset ? asPositiveInt(asset.width) : undefined)\n const height = asPositiveInt(props.height) ?? (asset ? asPositiveInt(asset.height) : undefined)\n const alt = asString(props.alt) || (asset ? asString(asset.alt) : '')\n const focalPoint = asset ? asFocalPoint(asset.focalPoint) : null\n return { url, width, height, alt, focalPoint }\n}\n\n/** EC-230: a focal point becomes a CSS `object-position` string (percent of each axis). */\nexport function focalPointObjectPosition(focalPoint: { x: number; y: number } | null): string | undefined {\n return focalPoint ? `${focalPoint.x * 100}% ${focalPoint.y * 100}%` : undefined\n}\n\nfunction Image(props: PrimitiveProps): ReactNode {\n const { url, width, height, alt, focalPoint } = normalizeImageSource(props)\n const objectPosition = focalPointObjectPosition(focalPoint)\n // No resolved url (no asset picked yet, or an unresolved id): a visible\n // placeholder, never a broken `<img src=\"\">` (EC-195 / EC-015).\n if (url === '') {\n return (\n <span\n data-ec-primitive=\"Image\"\n data-ec-image=\"empty\"\n role=\"img\"\n aria-label={alt || 'No image selected'}\n >\n No image selected\n </span>\n )\n }\n return (\n <img\n data-ec-primitive=\"Image\"\n src={url}\n alt={alt}\n {...(width !== undefined ? { width } : {})}\n {...(height !== undefined ? { height } : {})}\n {...(objectPosition ? { style: { objectPosition } } : {})}\n />\n )\n}\n\nconst ImageManifest = defineComponent({\n id: 'base.primitives.Image',\n namespace: 'base.primitives',\n title: 'Image',\n category: 'media',\n props: {\n // EC-195: `asset`-typed, so the editor picks an uploaded asset (the renderer\n // resolves the id to a url + intrinsic dimensions at delivery) — a plain URL\n // string still works (the resolver passes URL-like values through).\n src: {\n type: 'asset',\n cardinality: 'one',\n context: 'prop',\n default: '',\n form: { label: 'Image' },\n },\n alt: {\n type: 'text',\n context: 'prop',\n default: '',\n form: { label: 'Alt text' },\n },\n width: {\n type: 'number',\n context: 'prop',\n validation: { min: 1 },\n form: { label: 'Width' },\n },\n height: {\n type: 'number',\n context: 'prop',\n validation: { min: 1 },\n form: { label: 'Height' },\n },\n // EC-195: above-the-fold images load eagerly (`next/image priority`) so the\n // host can opt the hero image out of lazy-loading.\n priority: {\n type: 'boolean',\n context: 'prop',\n default: false,\n form: { label: 'Load eagerly (above the fold)' },\n },\n },\n slots: [],\n})\n\n// ---------------------------------------------------------------------------\n// Button — labelled button with an optional href.\n// ---------------------------------------------------------------------------\n\nfunction Button(props: PrimitiveProps): ReactNode {\n const label = asString(props.label, 'Button')\n if (typeof props.href === 'string' && props.href.length > 0) {\n return (\n <a data-ec-primitive=\"Button\" href={props.href} role=\"button\">\n {label}\n </a>\n )\n }\n return (\n <button data-ec-primitive=\"Button\" type=\"button\">\n {label}\n </button>\n )\n}\n\nconst ButtonManifest = defineComponent({\n id: 'base.primitives.Button',\n namespace: 'base.primitives',\n title: 'Button',\n category: 'content',\n props: {\n label: {\n type: 'text',\n context: 'prop',\n default: 'Button',\n form: { label: 'Label' },\n },\n href: {\n type: 'text',\n context: 'prop',\n form: { label: 'Link' },\n },\n },\n slots: [],\n})\n\n// ---------------------------------------------------------------------------\n// Repeater — renders its `item` slot template once per item (iteration is done by the\n// renderer; this implementation only frames the rendered items).\n// ---------------------------------------------------------------------------\n\nfunction Repeater(props: PrimitiveProps): ReactNode {\n return <div data-ec-primitive=\"Repeater\">{props.children}</div>\n}\n\nconst RepeaterManifest = defineComponent({\n id: 'base.primitives.Repeater',\n namespace: 'base.primitives',\n title: 'Repeater',\n category: 'data',\n // EC-190 DD7: iterate-over-a-source is a binding construct designed out of v1.\n // The `items` value (an array) has no static field-def type; it rides node.props\n // undeclared (passing through the renderer) until the binding/iteration removal in\n // slice 5 decides Repeater's fate. No editable static prop is exposed meanwhile.\n props: {},\n slots: [{ name: 'item', label: 'Item template', required: true }],\n iterate: { itemsProp: 'items', itemSlot: 'item' },\n})\n\n// ---------------------------------------------------------------------------\n// Switch — renders exactly one named case slot, chosen by the `case` prop/binding.\n// ---------------------------------------------------------------------------\n\nfunction Switch(props: PrimitiveProps): ReactNode {\n const key = asString(props.case)\n const selected = props[`case:${key}`] ?? props.fallback\n return <div data-ec-primitive=\"Switch\">{selected as ReactNode}</div>\n}\n\nconst SwitchManifest = defineComponent({\n id: 'base.primitives.Switch',\n namespace: 'base.primitives',\n title: 'Switch',\n category: 'data',\n props: {\n case: {\n type: 'text',\n context: 'prop',\n default: '',\n form: { label: 'Case' },\n },\n },\n // Named case slots are dynamic; `fallback` renders when no case matches.\n slots: [{ name: 'fallback', label: 'Fallback' }],\n})\n\n// ---------------------------------------------------------------------------\n// Aggregation\n// ---------------------------------------------------------------------------\n\n/** Pairs of manifest + implementation in registration order. */\nconst PRIMITIVES: { manifest: ComponentManifest; implementation: ComponentType<PrimitiveProps> }[] =\n [\n { manifest: ContainerManifest, implementation: Container },\n { manifest: StackManifest, implementation: Stack },\n { manifest: GridManifest, implementation: Grid },\n { manifest: TextManifest, implementation: Text },\n { manifest: HeadingManifest, implementation: Heading },\n // Rich-text content primitive (EC-159) — content prop is the stored\n // `@elytracms/core/rich-text` value, flagged inline-editable.\n { manifest: RichTextManifest, implementation: RichText },\n { manifest: ImageManifest, implementation: Image },\n { manifest: ButtonManifest, implementation: Button },\n { manifest: RepeaterManifest, implementation: Repeater },\n { manifest: SwitchManifest, implementation: Switch },\n ]\n\nexport interface BasePrimitives {\n manifests: ComponentManifest[]\n implementations: ComponentImplementations\n}\n\n/** The platform starter components: every `base.primitives.*` manifest + implementation. */\nexport function basePrimitives(): BasePrimitives {\n const implementations: Record<string, ComponentType<Record<string, unknown>>> = {}\n for (const { manifest, implementation } of PRIMITIVES) {\n implementations[manifest.id] = implementation as ComponentType<Record<string, unknown>>\n }\n return {\n manifests: PRIMITIVES.map((p) => p.manifest),\n implementations,\n }\n}\n\n/** A `ComponentRegistry` preloaded with the primitive manifests. */\nexport function createPrimitiveRegistry(): ComponentRegistry {\n return new ComponentRegistry(basePrimitives().manifests)\n}\n\nexport {\n Container,\n Stack,\n Grid,\n Text,\n Heading,\n Image,\n Button,\n Repeater,\n Switch,\n ContainerManifest,\n StackManifest,\n GridManifest,\n TextManifest,\n HeadingManifest,\n ImageManifest,\n ButtonManifest,\n RepeaterManifest,\n SwitchManifest,\n}\n"]}
|