@elytracms/studio 0.0.94 → 0.0.95
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/convex/asset-alt-migration.test.ts +2 -2
- package/convex/asset-meta-patch.test.ts +218 -0
- package/convex/asset-replace-delete-race.test.ts +127 -0
- package/convex/assets.ts +27 -2
- package/convex/delivery-redirects.test.ts +167 -0
- package/convex/delivery.ts +15 -5
- package/convex/rail-write-parity.test.ts +6 -6
- package/convex/redirects.ts +1 -1
- package/convex/schema.ts +6 -0
- package/dist/addon.d.ts +1 -1
- package/dist/addon.js.map +1 -1
- package/dist/components/assets/asset-detail.js +26 -11
- package/dist/components/assets/asset-detail.js.map +1 -1
- package/dist/components/assets/asset-locale.d.ts +9 -0
- package/dist/components/assets/asset-locale.js +16 -0
- package/dist/components/assets/asset-locale.js.map +1 -0
- package/dist/components/assets/asset-meta-label.d.ts +12 -0
- package/dist/components/assets/asset-meta-label.js +15 -0
- package/dist/components/assets/asset-meta-label.js.map +1 -0
- package/dist/components/assets/asset-metadata.d.ts +69 -15
- package/dist/components/assets/asset-metadata.js +99 -11
- package/dist/components/assets/asset-metadata.js.map +1 -1
- package/dist/components/assets/asset-search.js +8 -2
- package/dist/components/assets/asset-search.js.map +1 -1
- package/dist/components/assets/asset-thumb.js +6 -2
- package/dist/components/assets/asset-thumb.js.map +1 -1
- package/dist/components/assets/assets-collection-view-source.d.ts +23 -9
- package/dist/components/assets/assets-collection-view-source.js +78 -26
- package/dist/components/assets/assets-collection-view-source.js.map +1 -1
- package/dist/components/assets/assets-store.js +17 -4
- package/dist/components/assets/assets-store.js.map +1 -1
- package/dist/components/builder/builder-store.d.ts +21 -0
- package/dist/components/builder/builder-store.js +22 -0
- package/dist/components/builder/builder-store.js.map +1 -1
- package/dist/components/builder/canvas-commit-boundary.d.ts +22 -0
- package/dist/components/builder/canvas-commit-boundary.js +27 -0
- package/dist/components/builder/canvas-commit-boundary.js.map +1 -0
- package/dist/components/builder/canvas-rebase.d.ts +77 -0
- package/dist/components/builder/canvas-rebase.js +169 -0
- package/dist/components/builder/canvas-rebase.js.map +1 -0
- package/dist/components/builder/canvas-render-context.d.ts +6 -3
- package/dist/components/builder/canvas-render-context.js +17 -9
- package/dist/components/builder/canvas-render-context.js.map +1 -1
- package/dist/components/builder/composition-field-editor.d.ts +20 -2
- package/dist/components/builder/composition-field-editor.js +45 -27
- package/dist/components/builder/composition-field-editor.js.map +1 -1
- package/dist/components/builder/node-factory.js +15 -3
- package/dist/components/builder/node-factory.js.map +1 -1
- package/dist/components/builder/property-inspector.js +3 -1
- package/dist/components/builder/property-inspector.js.map +1 -1
- package/dist/components/builder/run-inspector.js +10 -6
- package/dist/components/builder/run-inspector.js.map +1 -1
- package/dist/components/cms/asset-field.d.ts +5 -2
- package/dist/components/cms/asset-field.js +34 -17
- package/dist/components/cms/asset-field.js.map +1 -1
- package/dist/components/cms/asset-picker.js +3 -1
- package/dist/components/cms/asset-picker.js.map +1 -1
- package/dist/components/cms/canvas-commit.d.ts +56 -0
- package/dist/components/cms/canvas-commit.js +35 -0
- package/dist/components/cms/canvas-commit.js.map +1 -0
- package/dist/components/cms/collection-table.js +23 -7
- package/dist/components/cms/collection-table.js.map +1 -1
- package/dist/components/cms/commit-policy.d.ts +6 -2
- package/dist/components/cms/commit-policy.js +1 -1
- package/dist/components/cms/commit-policy.js.map +1 -1
- package/dist/components/cms/detail-editor.js +11 -1
- package/dist/components/cms/detail-editor.js.map +1 -1
- package/dist/components/cms/use-document-draft.d.ts +62 -4
- package/dist/components/cms/use-document-draft.js +102 -32
- package/dist/components/cms/use-document-draft.js.map +1 -1
- package/dist/components/cms/use-live-url.d.ts +6 -1
- package/dist/components/cms/use-live-url.js +12 -9
- package/dist/components/cms/use-live-url.js.map +1 -1
- package/dist/components/collection-view/cms-collection-view-source.js +9 -5
- package/dist/components/collection-view/cms-collection-view-source.js.map +1 -1
- package/dist/components/deployment-setup-gate.js +10 -1
- package/dist/components/deployment-setup-gate.js.map +1 -1
- package/dist/components/records/record-lens.js +3 -8
- package/dist/components/records/record-lens.js.map +1 -1
- package/dist/lib/assets/upload.d.ts +25 -7
- package/dist/lib/assets/upload.js +30 -21
- package/dist/lib/assets/upload.js.map +1 -1
- package/dist/lib/cms/published-documents.d.ts +24 -6
- package/dist/lib/cms/published-documents.js +39 -6
- package/dist/lib/cms/published-documents.js.map +1 -1
- package/dist/lib/cms-views/view-model.d.ts +14 -101
- package/dist/lib/cms-views/view-model.js +20 -101
- package/dist/lib/cms-views/view-model.js.map +1 -1
- package/dist/lib/collection-view/collection-view-source.d.ts +6 -1
- package/dist/lib/collection-view/collection-view-source.js.map +1 -1
- package/dist/lib/engine-version.d.ts +1 -1
- package/dist/lib/engine-version.js +1 -1
- package/dist/lib/engine-version.js.map +1 -1
- package/dist/lib/i18n/messages.de.js +7 -3
- package/dist/lib/i18n/messages.de.js.map +1 -1
- package/dist/lib/i18n/messages.en.d.ts +5 -1
- package/dist/lib/i18n/messages.en.js +8 -4
- package/dist/lib/i18n/messages.en.js.map +1 -1
- package/dist/lib/operations/config-manifest-lookup.d.ts +1 -1
- package/dist/lib/operations/config-manifest-lookup.js +3 -3
- package/dist/lib/operations/config-manifest-lookup.js.map +1 -1
- package/dist/lib/persistence/deployment-readiness.js +14 -11
- package/dist/lib/persistence/deployment-readiness.js.map +1 -1
- package/dist/lib/persona/labels.js +1 -0
- package/dist/lib/persona/labels.js.map +1 -1
- package/dist/lib/query/index.d.ts +2 -2
- package/dist/lib/query/index.js +1 -1
- package/dist/lib/query/index.js.map +1 -1
- package/dist/lib/query/operations-query.d.ts +26 -0
- package/dist/lib/query/operations-query.js +12 -0
- package/dist/lib/query/operations-query.js.map +1 -1
- package/dist/lib/registry/index.js +2 -2
- package/dist/lib/registry/index.js.map +1 -1
- package/dist/lib/registry/preview.d.ts +10 -0
- package/dist/lib/registry/preview.js +13 -4
- package/dist/lib/registry/preview.js.map +1 -1
- package/dist/lib/routes/route-issues.js +6 -3
- package/dist/lib/routes/route-issues.js.map +1 -1
- package/dist/lib/workspace/workspace-source.js +6 -7
- package/dist/lib/workspace/workspace-source.js.map +1 -1
- package/dist/previews/entry-node.d.ts +14 -0
- package/dist/previews/entry-node.js +22 -0
- package/dist/previews/entry-node.js.map +1 -0
- package/dist/previews/harness.js +2 -16
- package/dist/previews/harness.js.map +1 -1
- package/package.json +3 -3
|
@@ -108,7 +108,6 @@ declare const MESSAGES: {
|
|
|
108
108
|
'shell.session.loading': import("./types.js").SourceMessage;
|
|
109
109
|
'shell.session.error.title': import("./types.js").SourceMessage;
|
|
110
110
|
'shell.session.error.body': import("./types.js").SourceMessage;
|
|
111
|
-
'shell.workspaceGate.title': import("./types.js").SourceMessage;
|
|
112
111
|
'shell.workspaceGate.issuesLabel': import("./types.js").SourceMessage;
|
|
113
112
|
'shell.backend.connecting': import("./types.js").SourceMessage;
|
|
114
113
|
'shell.backend.notConfigured.title': import("./types.js").SourceMessage;
|
|
@@ -343,6 +342,7 @@ declare const MESSAGES: {
|
|
|
343
342
|
'cms.editor.loadingLiveUrl': import("./types.js").SourceMessage;
|
|
344
343
|
'cms.editor.publishToViewLive': import("./types.js").SourceMessage;
|
|
345
344
|
'cms.editor.setFrontendUrlHint': import("./types.js").SourceMessage;
|
|
345
|
+
'cms.editor.publishedReadFailed': import("./types.js").SourceMessage;
|
|
346
346
|
'cms.editor.switchToDraftToPublish': import("./types.js").SourceMessage;
|
|
347
347
|
'cms.editor.fixIssuesToPublish.one': import("./types.js").SourceMessage;
|
|
348
348
|
'cms.editor.fixIssuesToPublish.other': import("./types.js").SourceMessage;
|
|
@@ -400,6 +400,7 @@ declare const MESSAGES: {
|
|
|
400
400
|
'cms.issue.unpublished-relation-target': import("./types.js").SourceMessage;
|
|
401
401
|
'cms.issue.cardinality-violation': import("./types.js").SourceMessage;
|
|
402
402
|
'cms.issue.unknown-asset': import("./types.js").SourceMessage;
|
|
403
|
+
'cms.issue.asset-without-url': import("./types.js").SourceMessage;
|
|
403
404
|
'cms.issue.duplicate-document': import("./types.js").SourceMessage;
|
|
404
405
|
'cms.issue.unknown-locale': import("./types.js").SourceMessage;
|
|
405
406
|
'cms.issue.missing-localized-value': import("./types.js").SourceMessage;
|
|
@@ -492,6 +493,8 @@ declare const MESSAGES: {
|
|
|
492
493
|
'cms.issueMessage.routeConflict': import("./types.js").SourceMessage;
|
|
493
494
|
'cms.issueMessage.redirectLoop': import("./types.js").SourceMessage;
|
|
494
495
|
'cms.issueMessage.duplicateRedirect': import("./types.js").SourceMessage;
|
|
496
|
+
'cms.issueMessage.redirectUnreadable': import("./types.js").SourceMessage;
|
|
497
|
+
'cms.issueMessage.redirectReportUnreadable': import("./types.js").SourceMessage;
|
|
495
498
|
'cms.issueMessage.allDynamicShadowsMount': import("./types.js").SourceMessage;
|
|
496
499
|
'cms.issueMessage.mountCannotServe': import("./types.js").SourceMessage;
|
|
497
500
|
'cms.issueMessage.deadCatchAll': import("./types.js").SourceMessage;
|
|
@@ -696,6 +699,7 @@ declare const MESSAGES: {
|
|
|
696
699
|
'assets.viewToggle.list': import("./types.js").SourceMessage;
|
|
697
700
|
'assets.viewToggle.grid': import("./types.js").SourceMessage;
|
|
698
701
|
'assets.detail.metadataHeading': import("./types.js").SourceMessage;
|
|
702
|
+
'assets.detail.noFileUrl': import("./types.js").SourceMessage;
|
|
699
703
|
'assets.references.buttonLabel': import("./types.js").SourceMessage;
|
|
700
704
|
'assets.references.title': import("./types.js").SourceMessage;
|
|
701
705
|
'assets.references.description': import("./types.js").SourceMessage;
|
|
@@ -122,8 +122,7 @@ const MESSAGES = {
|
|
|
122
122
|
'shell.session.loading': msg('Loading project…'),
|
|
123
123
|
'shell.session.error.title': msg('Couldn’t load this project’s saved state'),
|
|
124
124
|
'shell.session.error.body': msg('The studio never falls back to sample content against a live backend — your data is safe; retry once the backend is reachable.'),
|
|
125
|
-
'shell.workspaceGate.
|
|
126
|
-
'shell.workspaceGate.issuesLabel': msg('Workspace config issues', 'aria-label on the issues list.'),
|
|
125
|
+
'shell.workspaceGate.issuesLabel': msg('Workspace config issues', 'aria-label on the list of located config issues under a failing deployment-setup check (EC-626).'),
|
|
127
126
|
'shell.backend.connecting': msg('Connecting to backend…'),
|
|
128
127
|
'shell.backend.notConfigured.title': msg('Backend not configured'),
|
|
129
128
|
'shell.backend.unavailable.title': msg('Backend unavailable'),
|
|
@@ -441,6 +440,7 @@ const MESSAGES = {
|
|
|
441
440
|
'cms.editor.loadingLiveUrl': msg('Loading the live URL…'),
|
|
442
441
|
'cms.editor.publishToViewLive': msg('Publish to view the live page'),
|
|
443
442
|
'cms.editor.setFrontendUrlHint': msg('Set frontendUrl in elytra.config.ts to enable'),
|
|
443
|
+
'cms.editor.publishedReadFailed': msg('Couldn’t load what is published, so live URLs are unknown: {reason}', 'EC-628: the published-pool read failed (never shown as "not published"); {reason} is the operation’s error sentence.'),
|
|
444
444
|
'cms.editor.switchToDraftToPublish': msg('Switch to Draft to publish'),
|
|
445
445
|
'cms.editor.fixIssuesToPublish.one': msg('Fix {count} issue to publish'),
|
|
446
446
|
'cms.editor.fixIssuesToPublish.other': msg('Fix {count} issues to publish'),
|
|
@@ -510,12 +510,13 @@ const MESSAGES = {
|
|
|
510
510
|
'cms.issue.unpublished-relation-target': msg('Unpublished reference'),
|
|
511
511
|
'cms.issue.cardinality-violation': msg('Wrong number of values'),
|
|
512
512
|
'cms.issue.unknown-asset': msg('Missing asset'),
|
|
513
|
+
'cms.issue.asset-without-url': msg('Asset without a file'),
|
|
513
514
|
'cms.issue.duplicate-document': msg('Duplicate entry'),
|
|
514
515
|
'cms.issue.unknown-locale': msg('Unknown language'),
|
|
515
516
|
'cms.issue.missing-localized-value': msg('Missing translation'),
|
|
516
517
|
'cms.issue.route-conflict': msg('Conflicting URL'),
|
|
517
518
|
'cms.issue.redirect-loop': msg('Redirect loop'),
|
|
518
|
-
'cms.issue.invalid-redirect': msg('
|
|
519
|
+
'cms.issue.invalid-redirect': msg('Invalid redirect', 'EC-590/EC-628: a duplicate `from`, or a stored redirect that cannot be read (and is not served).'),
|
|
519
520
|
'cms.issue.unknown-route-target': msg('Missing page'),
|
|
520
521
|
'cms.issue.hierarchy-cycle': msg('Page nesting loop'),
|
|
521
522
|
'cms.issue.document-nesting-depth': msg('Content nested too deeply'),
|
|
@@ -627,6 +628,8 @@ const MESSAGES = {
|
|
|
627
628
|
'cms.issueMessage.routeConflict': msg('Routes "{first}" and "{second}" both match the same URLs (pattern "{pattern}").'),
|
|
628
629
|
'cms.issueMessage.redirectLoop': msg('Redirect chain starting at "{from}" loops (…{chain}).'),
|
|
629
630
|
'cms.issueMessage.duplicateRedirect': msg('Redirect "{redirect}" (from "{redirectFrom}") duplicates redirect "{kept}" (from "{keptFrom}") — both are "{from}" once trailing slashes are ignored. "{kept}" applies; delete or change the other.'),
|
|
631
|
+
'cms.issueMessage.redirectUnreadable': msg('Stored redirect {redirect} could not be read and is not served ({reason}).', 'EC-628 (Codex F04): {redirect} is "id" (or #index), {reason} the column findings in English.'),
|
|
632
|
+
'cms.issueMessage.redirectReportUnreadable': msg("The deployment reported redirect issue #{index}, which this host cannot read — a redirect is not served; run the site on the deployment's engine version.", 'EC-628: the delivery snapshot carried a redirect issue the host (an older engine) cannot parse.'),
|
|
630
633
|
'cms.issueMessage.allDynamicShadowsMount': msg('Route "{route}" ("{pattern}") has only dynamic segments, so it matches EVERY {depth}-segment URL — hierarchy mount "{mountRoute}" ("{mountPattern}") is consulted at that depth only where the route resolves no document. Nothing is unconditionally unreachable, but precedence there is decided by CONTENT rather than by the routes: {shadowed} are silently shadowed wherever a composed path collides with {claimed}, and neither side is told. Give the route a static prefix ("/blog/:slug") so it claims a namespace instead of a whole depth.'),
|
|
631
634
|
'cms.issueMessage.mountCannotServe': msg('Hierarchy mount "{route}" ("{pattern}") can never serve a document: {why}. The resolver skips such a mount silently, so every URL under "{space}" 404s with no issue raised.'),
|
|
632
635
|
'cms.issueMessage.deadCatchAll': msg('Route "{route}" ("{pattern}") serves nothing in either direction: it ends in a catch-all, so every router drops it, but its prefix has a dynamic segment ({dynamic}), so no hierarchy mount is built for it either. A mount\'s prefix must be static — declare one mount per locale (`{ pattern: \'/de/:path*\', locale: \'de\' }`), or drop the route.'),
|
|
@@ -863,6 +866,7 @@ const MESSAGES = {
|
|
|
863
866
|
'assets.viewToggle.list': msg('List view'),
|
|
864
867
|
'assets.viewToggle.grid': msg('Grid view'),
|
|
865
868
|
'assets.detail.metadataHeading': msg('Metadata'),
|
|
869
|
+
'assets.detail.noFileUrl': msg('This asset has no file to serve — it renders as an empty image everywhere it is used. Replace the file.'),
|
|
866
870
|
'assets.references.buttonLabel': msg('References'),
|
|
867
871
|
'assets.references.title': msg('Used by — {name}'),
|
|
868
872
|
'assets.references.description': msg('Everything referencing this asset, with deep links to the exact field or node.'),
|
|
@@ -1369,7 +1373,7 @@ const MESSAGES = {
|
|
|
1369
1373
|
'builder.inspector.unsetWithHint': msg('Not set (default: {hint})', '{hint} is the manifest default shown as a suggestion, e.g. "vertical" or "2".'),
|
|
1370
1374
|
// EC-586 / EC-581 (wave-0092, zone A) — canonical values and the per-FieldType definition
|
|
1371
1375
|
'cms.issueMessage.nonCanonicalValue': msg('Field "{field}" is stored in a non-canonical form for a "{type}" field — it was written past the write path that stores one form per field type. It still reads correctly; saving the document again stores the canonical form.'),
|
|
1372
|
-
'cms.issueMessage.assetHoldsUrl': msg('Asset field "{field}" holds a URL — an asset value is a library asset, never a URL. Upload the image to the library and pick it, or
|
|
1376
|
+
'cms.issueMessage.assetHoldsUrl': msg('Asset field "{field}" holds a URL — an asset value is a library asset, never a URL. Upload the image to the library and pick it, or put an external image’s address in the component’s URL prop (the Image’s “Image URL”).'),
|
|
1373
1377
|
// EC-584 — the AllowList parse (config load / registration).
|
|
1374
1378
|
'cms.issueMessage.emptyAllow': msg('Field "{field}" declares an empty "allow" — a list permits exactly the ids it names, so an empty one permits nothing. Omit "allow" for the type\'s default vocabulary, or list the component ids.'),
|
|
1375
1379
|
'cms.issueMessage.unknownAllowComponent': msg('Field "{field}" allows "{component}", which is not a component of this project — check the id, or remove it from "allow".', '{component} is the component id as declared in the field\'s allow list.'),
|