@elytracms/studio 0.0.70 → 0.0.71

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.
Files changed (61) hide show
  1. package/dist/components/account/self-account-view-source.js +1 -0
  2. package/dist/components/account/self-account-view-source.js.map +1 -1
  3. package/dist/components/assets/assets-collection-view-source.js +1 -0
  4. package/dist/components/assets/assets-collection-view-source.js.map +1 -1
  5. package/dist/components/cms/collection-table.js +19 -2
  6. package/dist/components/cms/collection-table.js.map +1 -1
  7. package/dist/components/cms/detail-editor.js +73 -51
  8. package/dist/components/cms/detail-editor.js.map +1 -1
  9. package/dist/components/cms/duplicate-document.d.ts +45 -0
  10. package/dist/components/cms/duplicate-document.js +141 -0
  11. package/dist/components/cms/duplicate-document.js.map +1 -0
  12. package/dist/components/cms/field-anchors.d.ts +67 -0
  13. package/dist/components/cms/field-anchors.js +91 -0
  14. package/dist/components/cms/field-anchors.js.map +1 -0
  15. package/dist/components/cms/issue-copy.d.ts +45 -0
  16. package/dist/components/cms/issue-copy.js +89 -0
  17. package/dist/components/cms/issue-copy.js.map +1 -0
  18. package/dist/components/cms/issues-pane.d.ts +11 -2
  19. package/dist/components/cms/issues-pane.js +22 -4
  20. package/dist/components/cms/issues-pane.js.map +1 -1
  21. package/dist/components/cms/object-array-field.d.ts +2 -0
  22. package/dist/components/cms/object-array-field.js +75 -21
  23. package/dist/components/cms/object-array-field.js.map +1 -1
  24. package/dist/components/cms/row-actions.d.ts +10 -3
  25. package/dist/components/cms/row-actions.js +8 -0
  26. package/dist/components/cms/row-actions.js.map +1 -1
  27. package/dist/components/cms/use-field-focus.d.ts +25 -9
  28. package/dist/components/cms/use-field-focus.js +80 -15
  29. package/dist/components/cms/use-field-focus.js.map +1 -1
  30. package/dist/components/collection-view/cms-collection-view-source.js +1 -0
  31. package/dist/components/collection-view/cms-collection-view-source.js.map +1 -1
  32. package/dist/components/redirects/redirects-collection-view-source.js +1 -0
  33. package/dist/components/redirects/redirects-collection-view-source.js.map +1 -1
  34. package/dist/components/users/users-collection-view-source.js +1 -0
  35. package/dist/components/users/users-collection-view-source.js.map +1 -1
  36. package/dist/customization.d.ts +9 -0
  37. package/dist/customization.js +8 -0
  38. package/dist/customization.js.map +1 -1
  39. package/dist/lib/collection-view/collection-view-source.d.ts +8 -0
  40. package/dist/lib/collection-view/collection-view-source.js.map +1 -1
  41. package/dist/lib/i18n/messages.de.js +38 -1
  42. package/dist/lib/i18n/messages.de.js.map +1 -1
  43. package/dist/lib/i18n/messages.en.d.ts +34 -0
  44. package/dist/lib/i18n/messages.en.js +41 -1
  45. package/dist/lib/i18n/messages.en.js.map +1 -1
  46. package/dist/lib/persona/labels.d.ts +5 -1
  47. package/dist/lib/persona/labels.js +43 -30
  48. package/dist/lib/persona/labels.js.map +1 -1
  49. package/dist/previews/enumerate.d.ts +68 -0
  50. package/dist/previews/enumerate.js +78 -0
  51. package/dist/previews/enumerate.js.map +1 -0
  52. package/dist/previews/harness.d.ts +50 -0
  53. package/dist/previews/harness.js +123 -0
  54. package/dist/previews/harness.js.map +1 -0
  55. package/dist/previews/manifest-format.d.ts +57 -0
  56. package/dist/previews/manifest-format.js +59 -0
  57. package/dist/previews/manifest-format.js.map +1 -0
  58. package/dist/ui/field.d.ts +24 -1
  59. package/dist/ui/field.js +23 -2
  60. package/dist/ui/field.js.map +1 -1
  61. package/package.json +10 -6
@@ -284,6 +284,7 @@ declare const MESSAGES: {
284
284
  'cms.editor.publishActions': import("./types.js").SourceMessage;
285
285
  'cms.editor.publishAndClose': import("./types.js").SourceMessage;
286
286
  'cms.editor.saveAndClose': import("./types.js").SourceMessage;
287
+ 'cms.editor.duplicateCreated': import("./types.js").SourceMessage;
287
288
  'cms.editor.discardDraft': import("./types.js").SourceMessage;
288
289
  'cms.editor.discardDraftUpToDateHint': import("./types.js").SourceMessage;
289
290
  'cms.editor.switchToDraftToDiscard': import("./types.js").SourceMessage;
@@ -323,6 +324,39 @@ declare const MESSAGES: {
323
324
  'cms.issues.none': import("./types.js").SourceMessage;
324
325
  'cms.issues.satisfied': import("./types.js").SourceMessage;
325
326
  'cms.issues.goToField': import("./types.js").SourceMessage;
327
+ 'cms.issue.duplicate-collection': import("./types.js").SourceMessage;
328
+ 'cms.issue.duplicate-field': import("./types.js").SourceMessage;
329
+ 'cms.issue.unknown-collection': import("./types.js").SourceMessage;
330
+ 'cms.issue.invalid-collection-config': import("./types.js").SourceMessage;
331
+ 'cms.issue.invalid-field-config': import("./types.js").SourceMessage;
332
+ 'cms.issue.reserved-field-name': import("./types.js").SourceMessage;
333
+ 'cms.issue.missing-required-field': import("./types.js").SourceMessage;
334
+ 'cms.issue.invalid-field-value': import("./types.js").SourceMessage;
335
+ 'cms.issue.unknown-relation-target': import("./types.js").SourceMessage;
336
+ 'cms.issue.unpublished-relation-target': import("./types.js").SourceMessage;
337
+ 'cms.issue.cardinality-violation': import("./types.js").SourceMessage;
338
+ 'cms.issue.unknown-asset': import("./types.js").SourceMessage;
339
+ 'cms.issue.duplicate-document': import("./types.js").SourceMessage;
340
+ 'cms.issue.unknown-locale': import("./types.js").SourceMessage;
341
+ 'cms.issue.missing-localized-value': import("./types.js").SourceMessage;
342
+ 'cms.issue.route-conflict': import("./types.js").SourceMessage;
343
+ 'cms.issue.redirect-loop': import("./types.js").SourceMessage;
344
+ 'cms.issue.unknown-route-target': import("./types.js").SourceMessage;
345
+ 'cms.issue.hierarchy-cycle': import("./types.js").SourceMessage;
346
+ 'cms.issue.document-nesting-depth': import("./types.js").SourceMessage;
347
+ 'cms.issue.singleton-document-drift': import("./types.js").SourceMessage;
348
+ 'cms.issue.duplicate-alias': import("./types.js").SourceMessage;
349
+ 'cms.issue.unknown-alias': import("./types.js").SourceMessage;
350
+ 'cms.issue.unfilled-slot': import("./types.js").SourceMessage;
351
+ 'cms.issue.custom-validation': import("./types.js").SourceMessage;
352
+ 'cms.issue.unknown-version': import("./types.js").SourceMessage;
353
+ 'cms.issueBody.missing-required-field': import("./types.js").SourceMessage;
354
+ 'cms.issueBody.missing-localized-value.default': import("./types.js").SourceMessage;
355
+ 'cms.issueBody.missing-localized-value.fallback': import("./types.js").SourceMessage;
356
+ 'cms.issueBody.unknown-asset': import("./types.js").SourceMessage;
357
+ 'cms.issueBody.document-nesting-depth.error': import("./types.js").SourceMessage;
358
+ 'cms.issueBody.document-nesting-depth.warning': import("./types.js").SourceMessage;
359
+ 'cms.issueBody.hierarchy-cycle': import("./types.js").SourceMessage;
326
360
  'cms.details.slot': import("./types.js").SourceMessage;
327
361
  'cms.details.noSlot': import("./types.js").SourceMessage;
328
362
  'cms.details.slotInUse': import("./types.js").SourceMessage;
@@ -330,6 +330,7 @@ const MESSAGES = {
330
330
  'cms.editor.publishActions': msg('Publish options', 'aria-label for the Publish split-button dropdown trigger.'),
331
331
  'cms.editor.publishAndClose': msg('Publish & close', 'Split-button item: publish the document, then return to the collection list (0.0.39, replaces EC-316 Save & close).'),
332
332
  'cms.editor.saveAndClose': msg('Save & close', 'Header action: save the draft, then return to the collection list (EC-316).'),
333
+ 'cms.editor.duplicateCreated': msg('Duplicate created as a new draft', 'Success toast after duplicating a document (EC-442) — shown as the copy’s editor opens (its title equals the original’s, so this disambiguates).'),
333
334
  'cms.editor.discardDraft': msg('Discard changes', 'Header ⋯-menu item: revert the draft to the published content (EC-316).'),
334
335
  'cms.editor.discardDraftUpToDateHint': msg('The draft matches the published version — nothing to discard.'),
335
336
  'cms.editor.switchToDraftToDiscard': msg('Switch to Draft to discard changes'),
@@ -374,7 +375,46 @@ const MESSAGES = {
374
375
  // ─────────────────────────────────────────────────────────────────────────
375
376
  'cms.issues.none': msg('No issues'),
376
377
  'cms.issues.satisfied': msg('This document satisfies the collection schema.'),
377
- 'cms.issues.goToField': msg('Go to {field}'),
378
+ 'cms.issues.goToField': msg('Go to {field}', 'Jump link on an issue card; {field} is the field’s label.'),
379
+ // EC-443 — issue-card TITLES, one per `CmsIssueCode` (`lib/persona/labels.ts`
380
+ // maps the enum exhaustively onto these keys; adding a code fails typecheck
381
+ // there until it lands here).
382
+ 'cms.issue.duplicate-collection': msg('Duplicate collection'),
383
+ 'cms.issue.duplicate-field': msg('Duplicate field'),
384
+ 'cms.issue.unknown-collection': msg('Unknown collection'),
385
+ 'cms.issue.invalid-collection-config': msg('Invalid collection setup'),
386
+ 'cms.issue.invalid-field-config': msg('Invalid field setup'),
387
+ 'cms.issue.reserved-field-name': msg('Reserved field name'),
388
+ 'cms.issue.missing-required-field': msg('Missing required field'),
389
+ 'cms.issue.invalid-field-value': msg('Invalid value'),
390
+ 'cms.issue.unknown-relation-target': msg('Missing reference'),
391
+ 'cms.issue.unpublished-relation-target': msg('Unpublished reference'),
392
+ 'cms.issue.cardinality-violation': msg('Wrong number of values'),
393
+ 'cms.issue.unknown-asset': msg('Missing asset'),
394
+ 'cms.issue.duplicate-document': msg('Duplicate entry'),
395
+ 'cms.issue.unknown-locale': msg('Unknown language'),
396
+ 'cms.issue.missing-localized-value': msg('Missing translation'),
397
+ 'cms.issue.route-conflict': msg('Conflicting URL'),
398
+ 'cms.issue.redirect-loop': msg('Redirect loop'),
399
+ 'cms.issue.unknown-route-target': msg('Missing page'),
400
+ 'cms.issue.hierarchy-cycle': msg('Page nesting loop'),
401
+ 'cms.issue.document-nesting-depth': msg('Content nested too deeply'),
402
+ 'cms.issue.singleton-document-drift': msg('More than one document'),
403
+ 'cms.issue.duplicate-alias': msg('Slot used twice'),
404
+ 'cms.issue.unknown-alias': msg('Unknown slot'),
405
+ 'cms.issue.unfilled-slot': msg('Empty slot'),
406
+ 'cms.issue.custom-validation': msg('Validation rule'),
407
+ 'cms.issue.unknown-version': msg('Unknown version'),
408
+ // EC-443 — issue-card BODY templates, only for codes whose full body derives
409
+ // from `code` + `path`/`meta` (`issue-copy.ts`); every other code shows the
410
+ // raw English core message (honest fallback).
411
+ 'cms.issueBody.missing-required-field': msg('Required field “{field}” is not filled in.'),
412
+ 'cms.issueBody.missing-localized-value.default': msg('Required field “{field}” has no value for the default language “{locale}”.'),
413
+ 'cms.issueBody.missing-localized-value.fallback': msg('Field “{field}” has no value for “{locale}” and no fallback.'),
414
+ 'cms.issueBody.unknown-asset': msg('Field “{field}” references the unknown asset “{asset}”.'),
415
+ 'cms.issueBody.document-nesting-depth.error': msg('This content nests {depth} levels deep, past the {limit}-level storage limit — split it into smaller linked entries.'),
416
+ 'cms.issueBody.document-nesting-depth.warning': msg('This content nests {depth} levels deep, approaching the {limit}-level storage limit.'),
417
+ 'cms.issueBody.hierarchy-cycle': msg('This entry is its own ancestor — the parent chain forms a loop.'),
378
418
  // ─────────────────────────────────────────────────────────────────────────
379
419
  // CMS — details pane (slot + sidebar fields)
380
420
  // ─────────────────────────────────────────────────────────────────────────