@museumwnf/viewer-layout 3.0.0 → 3.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md CHANGED
@@ -198,13 +198,13 @@ export default {
198
198
  languages: ['en', 'fr'],
199
199
  links: [
200
200
  { section: 'home', label: 'core.nav.home', to: { name: 'home' } },
201
- { section: 'collection', label: 'gallery.nav.collection', to: { name: 'collection' } },
202
- { label: 'gallery.nav.myCollection', href: mwnfLinks.myCollection, external: true },
201
+ { section: 'collection', label: 'core.nav.collection', to: { name: 'collection' } },
202
+ { label: 'core.nav.myCollection', href: mwnfLinks.myCollection, external: true },
203
203
  ],
204
204
  headerLinks: [{ label: 'core.nav.home', to: { name: 'home' } }],
205
- footerLinks: [{ label: 'gallery.footer.aboutMwnf', href: mwnfLinks.about, external: true }],
206
- sectionTitles: { collection: 'gallery.section.collection', partners: 'gallery.section.partners' },
207
- search: { route: 'search-results', key: 'q', placeholder: 'gallery.search.placeholder', submitLabel: 'catalogue.search.submit', empty: 'all-objects' },
205
+ footerLinks: [{ label: 'core.footer.aboutMwnf', href: mwnfLinks.about, external: true }],
206
+ sectionTitles: { collection: 'core.section.collection', partners: 'core.section.partners' },
207
+ search: { route: 'search-results', key: 'q', placeholder: 'catalogue.search.placeholder', submitLabel: 'catalogue.search.submit', empty: 'all-objects' },
208
208
  },
209
209
  banner: {
210
210
  variant: ({ section }) => (section === 'home' ? 'strip' : 'section'),
@@ -435,7 +435,7 @@ export default {
435
435
  | `CatalogueResultsView` | `spec`: `entity`, `keys`, `facets` (viewer-core's facet spec), `facetScope: 'all' \| 'matching'`, `controls: [{ key, type: 'select' \| 'year' \| 'query' \| 'checkbox', label, placeholder, anyLabel, hideEmpty }]`, `filterMode: 'apply' \| 'immediate'`, `scope(record, filters)`, `match(record, filters)`, `narrow(list, filters, helpers)` (a rule over the whole list — a keyword index, say), `dates: { mode, begin, end }`, `sort`, `pageSize`, `variant: 'list' \| 'grid'`, `record(record, helpers)`, `recordRoute`, `summary(context)`, `title`, `filterTitle`, `empty`, `actionLabel`, `pagination` | `before`, `filters`, `actions`, `aside`, `empty`, `after` — each given `{ filters, active, apply, reset, goToPage, matching, pageInfo, options }`, enough to compose the panel in the aside or a second pagination |
436
436
  | `RecordView` | `spec` and `id`: `entity`, `translations`, `attribution`, `fields` (viewer-core's `sheetRows` spec, or a function of the context), `sections`, `layout`, `shortDescription`, `media(record, ctx)`, `mediaVariant`, `credits`, `workingNumber`, `citation: { project, permalink: true \| false \| string, heading } \| false` (the permalink is `sourceUrl(currentRoute)` — null, so no address, until the website declares `site.origin` — unless the spec disables it with `false` or overrides it with a string), `related: { variant, heading, record, route } \| false`, `back: { label, to \| href }`, `title(ctx)` | `header`, `before-sheet`, `after-sheet`, `aside`, `source` (under the citation; default `SourceCredit`), `related`, `after`, and one named after every `custom` or `link` row — each given `{ record, text, language, languages, select, dir, glossary, ready, attribution, t, tr }`; `related` also `records` (the rows) and `outside` (the related records the package does not carry) |
437
437
  | `ItemDetailView` (`/dxa`) | Every `RecordView` prop (`spec`, `id`, `entity`) plus `dataGetter(id) => record \| null \| undefined` — a website's own language-subset record lookup (an exhibition's per-build `itemById.get`); omitted, every `id` `RecordView` itself finds is treated as present (the gallery shape); supplied and it reports `id` missing, `NotFoundView` renders before `RecordView` ever mounts (the exhibition shape's per-language-build 404), and it also narrows the related block's `records`/outside-reference split the same way. The DXA gallery/exhibition item sheet's own blocks, on top of `spec`: `sourceDatabase: { label?, chipClass(record, ctx), addToCollection: { label? } \| false } \| false` (the source-database line + `backward_compatibility` code + "add to my collection" link — `chipClass` is a site's own project→colour map, the name comes from `useProjects()`), `notice: { show(record, ctx), label } \| false` (the Explore-partner notice), `museum: { route(partnerId, ctx) } \| false` (the holding-museum row: the item's holder text, then the partner as `PartnerPanel`'s `summary` — "About {name}, {city}, {country}" — linked through `route`; `route` returning null keeps the name without a link, for a hidden partner; `false` keeps the holder text alone; decision D3), and on `spec.related`: `title`, `description` (entries, above the block), `notInPackageLabel`, `outsideChip(ref, ctx)` (an outside reference's chip — `TODO(#1727)`, no `project_id` on a stub yet), `artisticIntroductionLabel` (with `useProjects().links(record.project_id).artisticIntroductionUrl`), `databaseLabel` (ditto, `.relatedDatabaseUrl`), `overallDatabase: { label, linkLabel } \| false` (`mwnfLinks.overallDatabase`), `onDisplayIn: { linkPendingLabel } \| false` (`record.gallery_references`, by `kind`), `download: false` (default on, `record.action.download`/`.downloadPdf`, prints), `glossary: false` (default on, `GlossaryTool`), `dynasties(record, language, ctx) => { records, tr } \| null` (`DynastyList`), `media: false` (default on, `record.media`, a `SheetSection`), `timeline(record, ctx) => TimelineInfo \| null` (`TimelineLookup` — see `docs/slot-catalogue.md`) | Every `RecordView` slot, forwarded straight through by name, unmodified, **except** `before-sheet`/`museum`/`related`: each always has this view's own default content (above), which a website's own slot still replaces entirely — "a slot fills, the default content renders otherwise" |
438
- | `EssayView` | `spec` and `id`: `tree` (a `useCollectionTree` result, or `{ purpose \| rootId, childType?, entity?, order? }` / `{ themes: true \| 'themes', childType? }` for the view to build one), `entity` (the tree's items — also the tree's own translations entity when `tree` carries none of its own, a pre-built tree or a declarative form with no `entity`/`themes`; falls back to `'collections'`), `route` (a node's own page: a route name or `(node, ctx) => to \| href`), `heading(ctx)`, `placeholder` (a regex a synthesized title matches, falling back to the English title, then the internal name), `quote` / `body` (a field of the node's translation, a dotted path into it such as `'extra.intro_text'`, or a function `(ctx) => Markdown`; default `'quote'`/`'description'`, `false` to drop), `glossary`, `items: { of(node) => ids, caption(item, node, ctx) => override, meta(item, ctx) => [string] (the grid's caption lines), badge(item, ctx) => string, route }`, `panel: { variants(item, ctx) => [{ id, image, alt, caption: { title, justification, fields: [{ label (entry name), value }] } }], fields(item, node, ctx) => [{ label, value }] (the fallback when a variant carries no fields of its own) } \| false`, `navigation: 'tree' \| 'siblings' \| false` (`tree` crosses a branch boundary, `siblings` stays inside the parent), `breadcrumb`, `tabs: true \| 'siblings' \| 'children'` (the strip: `true`/`'siblings'` — the node's own siblings, the default; `'children'` — the node's own children, e.g. a theme's chapters), `about(node) => boolean \| { panel?, navigation? }` (essay only; a plain boolean drops both the picture panel and the navigation, an object keeps the named piece instead), `aboutKeeps: ['panel' \| 'navigation']` (the spec-wide equivalent, when every about page in this spec keeps the same piece), `numbering: 'roman' \| 'decimal' \| false` (counts a node among its true siblings — for a themes-package tree, whose `root` is `null`, that's every node whose own `tree.parents(id)` is also empty, so a themes tree numbers its top-level themes I, II, III); `previous`, `next`, `backTo`, `inThisTheme`, `seeAll` (entry names, defaulting to `exhibition.theme.previous`/`.next`/`.inThisTheme`/`.seeAllInTheme` and `record.action.backToResults`) | `header`, `before-body`, `after-body`, `panel`, `thumbnails`, `aside`, `justifications`, `navigation`, `after` (default `SourceCredit` — nothing until the website declares `site.origin`) — each given `{ node, text, language, tree, items, selected, select, selectedVariant, selectVariant, breadcrumb, previous, next, t, tr }` |
438
+ | `EssayView` | `spec` and `id`: `tree` (a `useCollectionTree` result, or `{ purpose \| rootId, childType?, entity?, order? }` / `{ themes: true \| 'themes', childType? }` for the view to build one), `entity` (the tree's items — also the tree's own translations entity when `tree` carries none of its own, a pre-built tree or a declarative form with no `entity`/`themes`; falls back to `'collections'`), `route` (a node's own page: a route name or `(node, ctx) => to \| href`), `heading(ctx)`, `placeholder` (a regex a synthesized title matches, falling back to the English title, then the internal name), `quote` / `body` (a field of the node's translation, a dotted path into it such as `'extra.intro_text'`, or a function `(ctx) => Markdown`; default `'quote'`/`'description'`, `false` to drop), `glossary`, `items: { of(node) => ids, caption(item, node, ctx) => override, meta(item, ctx) => [string] (the grid's caption lines), badge(item, ctx) => string, route }`, `panel: { variants(item, ctx) => [{ id, image, alt, caption: { title, justification, fields: [{ label (entry name), value }] } }], fields(item, node, ctx) => [{ label, value }] (the fallback when a variant carries no fields of its own) } \| false`, `navigation: 'tree' \| 'siblings' \| false` (`tree` crosses a branch boundary, `siblings` stays inside the parent), `breadcrumb`, `tabs: true \| 'siblings' \| 'children'` (the strip: `true`/`'siblings'` — the node's own siblings, the default; `'children'` — the node's own children, e.g. a theme's chapters), `about(node) => boolean \| { panel?, navigation? }` (essay only; a plain boolean drops both the picture panel and the navigation, an object keeps the named piece instead), `aboutKeeps: ['panel' \| 'navigation']` (the spec-wide equivalent, when every about page in this spec keeps the same piece), `numbering: 'roman' \| 'decimal' \| false` (counts a node among its true siblings — for a themes-package tree, whose `root` is `null`, that's every node whose own `tree.parents(id)` is also empty, so a themes tree numbers its top-level themes I, II, III); `previous`, `next`, `backTo`, `inThisTheme` (the strip's label), `seeAll` (the panel's link to the selected record) — entry names, defaulting to shared entries every bundle carries: `core.pagination.previous`/`.next`, `record.action.backToResults`, `core.nav.inThisSection`, `catalogue.results.seeDatabaseEntry` | `header`, `before-body`, `after-body`, `panel`, `thumbnails`, `aside`, `justifications`, `navigation`, `after` (default `SourceCredit` — nothing until the website declares `site.origin`) — each given `{ node, text, language, tree, items, selected, select, selectedVariant, selectVariant, breadcrumb, previous, next, t, tr }` |
439
439
  | `LinkListView` | `spec`: `title` (entry), `groups: [{ heading (entry), links: [{ label, href \| to, note? }] }] \| (ctx) => groups` (`label`/`note` are Markdown, rendered inline through `mdInline`), `back: { label, to \| href } \| false`, `empty` (entry) | `before`, `group` (given `{ group }`; the default renders the heading and its links — replace it for a citation list that is not link-shaped), `after` |
440
440
  | `PartnerListView` | `spec`: `entity` (default `'partners'`), `scope(partner, ctx)` (a site's own axis — museum/institution, a curated project — filtered before grouping), `group: { tier: 'level' \| false, order: 'country' \| 'name' }` (over viewer-core's `groupByCountry`; `'name'`: one flat, alphabetical group, no country carries this today), `orderToggle` (an A-Z/Z-A control, mirrored in the query as `order`; every tier is always sorted by name, the toggle reverses the country order or the one flat list), `nested` (an associated partner rendered under its own parent through `partnerHierarchy`, instead of the flat tier column; one whose parent is missing or in another group stays flat), `label(countryId, ctx)` (a group's own country label, required when `group.order` is `'country'`), `record(partner, ctx) => { name, city, logo, count, route }` (the row, when a site builds it itself), `route` (a route name or `(partner, ctx) => to \| href`, read by the default row only), `objectsRoute(partner, ctx)` (the line's View objects link), `actions: true` (the line's Read more · View objects links), `emptyLabel` (the line for a partner holding nothing), `variant: 'accordion' \| 'open'`, `count` (the "Partners found: N" line), `associatedLabel`/`foundLabel`/`objectsLabel`/`sortAscendingLabel`/`sortDescendingLabel`/`empty`/`title` (entry names, overriding the shared `partner.*` defaults) | `before`, `group-heading` (given `{ group }`; the default renders `group.label`), `row` (given `{ group, partner, row, view }`, once per partner — main, associated and, when nested, a child row too; the default is `PartnerPanel`'s `line` over `view`, viewer-core's `partnerView()`), `after` — every slot also given `{ t, locale, groups, orderDir, toggleOrder }` |
441
441
  | `TextPageView` | `spec`: `heading?` (entry), `body` (entry \| (ctx) => Markdown, `ctx` the same `{ t, tr, language }` shape `EssayView`'s spec functions read), `back: { label, to \| href } \| true \| false` | none |
@@ -1,6 +1,6 @@
1
1
  import { n as e, o as t } from "./TimelineEventList-BhkWyY5-.js";
2
2
  import { i as n, n as r, o as i, r as a, t as o } from "./OnDisplayIn-eSG5r48j.js";
3
- import { s } from "./TimelineResultsView-CgGVsJcp.js";
3
+ import { s } from "./TimelineResultsView-DQsyJmPp.js";
4
4
  import { Fragment as c, computed as l, createBlock as u, createCommentVNode as d, createElementBlock as f, createElementVNode as p, createSlots as ee, createTextVNode as m, createVNode as h, guardReactiveProps as g, normalizeClass as _, normalizeProps as v, openBlock as y, renderList as b, renderSlot as x, toDisplayString as S, unref as C, useSlots as te, withCtx as w } from "vue";
5
5
  import { NotFoundView as ne, byId as T, loadEntities as re, mdInline as E, mdStrip as ie, mwnfLinks as D, partnerView as ae, useDataPackage as oe, useI18n as se, useProjects as ce } from "@museumwnf/viewer-core";
6
6
  //#region src/dxa/ItemDetailView.vue
@@ -1,7 +1,7 @@
1
1
  import { s as e, y as t } from "./TimelineEventList-BhkWyY5-.js";
2
- import { o as n } from "./TimelineResultsView-CgGVsJcp.js";
2
+ import { o as n } from "./TimelineResultsView-DQsyJmPp.js";
3
3
  import { A as r, F as i, h as a, m as o } from "./data-BfyYB8ff.js";
4
- import { n as s, r as c, t as l } from "./themeSpecs-Bgn-K6R6.js";
4
+ import { n as s, r as c, t as l } from "./themeSpecs-C_uGarTs.js";
5
5
  import { Fragment as u, computed as d, createBlock as f, createCommentVNode as p, createElementBlock as m, createElementVNode as h, createTextVNode as g, createVNode as _, normalizeClass as v, onMounted as ee, openBlock as y, ref as b, renderList as x, toDisplayString as S, unref as C, vModelCheckbox as w, watch as T, withCtx as E, withDirectives as D } from "vue";
6
6
  import { renderBlock as O, useI18n as k } from "@museumwnf/viewer-core";
7
7
  import { RouterLink as A, useRoute as te, useRouter as ne } from "vue-router";
@@ -271,14 +271,14 @@ var j = Object.defineProperty, M = (e, t) => {
271
271
  to: C(s)(e),
272
272
  class: "mwnf-dxa-theme__tour-link"
273
273
  }, {
274
- default: E(() => [g("← " + S(C(P)("exhibition.theme.previous")), 1)]),
274
+ default: E(() => [g("← " + S(C(P)("core.pagination.previous")), 1)]),
275
275
  _: 1
276
276
  }, 8, ["to"])) : (y(), m("span", Fe)), t ? (y(), f(C(A), {
277
277
  key: 2,
278
278
  to: C(s)(t),
279
279
  class: "mwnf-dxa-theme__tour-link"
280
280
  }, {
281
- default: E(() => [g(S(C(P)("exhibition.theme.next")) + " " + S(Ve), 1)]),
281
+ default: E(() => [g(S(C(P)("core.pagination.next")) + " " + S(Ve), 1)]),
282
282
  _: 1
283
283
  }, 8, ["to"])) : p("", !0)]), $.value.length ? (y(), m("div", Ie, [
284
284
  h("div", Le, S(C(P)("exhibition.theme.inThisTheme")), 1),
@@ -304,7 +304,7 @@ var j = Object.defineProperty, M = (e, t) => {
304
304
  to: C(s)(n),
305
305
  class: "mwnf-dxa-theme__tour-link"
306
306
  }, {
307
- default: E(() => [g(S(C(P)("exhibition.theme.next")) + " " + S(Ve), 1)]),
307
+ default: E(() => [g(S(C(P)("core.pagination.next")) + " " + S(Ve), 1)]),
308
308
  _: 1
309
309
  }, 8, ["to"])])) : p("", !0), _(e)]),
310
310
  _: 1
@@ -704,7 +704,7 @@ var Me = { class: "mwnf-catalogue" }, Ne = {
704
704
  })), Ze = g(() => T.value.breadcrumb && E.value ? p.parents(n.id) : []), Qe = g(() => {
705
705
  let e = T.value.tabs;
706
706
  return e ? e === "children" ? E.value ? p.children(E.value.id) : [] : N.value : [];
707
- }), $e = g(() => T.value.previous ?? "exhibition.theme.previous"), Ot = g(() => T.value.next ?? "exhibition.theme.next"), kt = g(() => T.value.backTo ?? "record.action.backToResults"), At = g(() => T.value.inThisTheme ?? "exhibition.theme.inThisTheme"), jt = g(() => T.value.seeAll ?? "exhibition.theme.seeAllInTheme"), Mt = g(() => ({
707
+ }), $e = g(() => T.value.previous ?? "core.pagination.previous"), Ot = g(() => T.value.next ?? "core.pagination.next"), kt = g(() => T.value.backTo ?? "record.action.backToResults"), At = g(() => T.value.inThisTheme ?? "core.nav.inThisSection"), jt = g(() => T.value.seeAll ?? "catalogue.results.seeDatabaseEntry"), Mt = g(() => ({
708
708
  ...q.value,
709
709
  items: Ne.value,
710
710
  selected: Fe.value,
package/dist/dxa.js CHANGED
@@ -1,12 +1,12 @@
1
- import { a as e, i as t, n, r } from "./Theme-DJeeA6tZ.js";
1
+ import { a as e, i as t, n, r } from "./Theme-wq0QzOGt.js";
2
2
  import { d as i, h as a, m as o, n as s, p as c, v as l, y as u } from "./TimelineEventList-BhkWyY5-.js";
3
3
  import { s as d } from "./OnDisplayIn-eSG5r48j.js";
4
- import { a as f, c as p, i as m, n as h, r as g, s as ee, t as _ } from "./TimelineResultsView-CgGVsJcp.js";
4
+ import { a as f, c as p, i as m, n as h, r as g, s as ee, t as _ } from "./TimelineResultsView-DQsyJmPp.js";
5
5
  import { t as te } from "./SiteShell-C3OgZO8p.js";
6
6
  import { A as ne, C as re, D as ie, E as ae, M as oe, N as se, O as ce, S as le, T as ue, _ as de, a as fe, b as v, c as pe, d as me, f as he, g as y, h as ge, i as _e, j as ve, k as ye, l as be, m as xe, n as Se, o as Ce, p as we, r as Te, s as Ee, t as De, u as b, v as Oe, w as ke, x as Ae, y as je } from "./data-G8uXeEfE.js";
7
7
  import { A as Me, C as Ne, D as Pe, E as Fe, F as Ie, I as Le, L as Re, M as ze, N as Be, O as Ve, P as He, R as Ue, S as We, T as x, _ as Ge, a as Ke, b as qe, c as Je, d as Ye, f as S, g as Xe, h as Ze, i as Qe, j as C, k as $e, l as w, m as et, n as tt, o as nt, p as rt, r as it, s as at, t as ot, u as st, v as T, w as E, x as D, y as ct } from "./data-BfyYB8ff.js";
8
- import { t as O } from "./ItemDetailView-DT5EjZjB.js";
9
- import { n as k, r as lt, t as ut } from "./themeSpecs-Bgn-K6R6.js";
8
+ import { t as O } from "./ItemDetailView-CoXM_-tG.js";
9
+ import { n as k, r as lt, t as ut } from "./themeSpecs-C_uGarTs.js";
10
10
  import { Fragment as A, computed as j, createBlock as M, createCommentVNode as N, createElementBlock as P, createElementVNode as F, createTextVNode as I, createVNode as L, normalizeClass as dt, normalizeStyle as ft, onBeforeUnmount as pt, onMounted as mt, openBlock as R, ref as z, renderList as B, renderSlot as ht, toDisplayString as V, unref as H, vModelText as gt, vShow as _t, withCtx as U, withDirectives as W, withModifiers as vt } from "vue";
11
11
  import { I18nText as G, NotFoundView as yt, languageLabels as bt, loadEntities as K, mwnfLinks as q, offeredLanguages as xt, renderInline as St, sectionMeta as Ct, useDataPackage as wt, useFacets as Tt, useI18n as J, useKeywordIndex as Et, useSection as Dt, useSiteConfig as Y, yearBuckets as X } from "@museumwnf/viewer-core";
12
12
  import { RouterLink as Z, useRoute as Q, useRouter as Ot } from "vue-router";
@@ -154,11 +154,11 @@ var kt = { class: "mwnf-dxa-profile-languages" }, $ = {
154
154
  pageSize: _e,
155
155
  variant: "grid",
156
156
  recordRoute: "item",
157
- actionLabel: "gallery.action.seeDatabaseEntry",
157
+ actionLabel: "catalogue.results.seeDatabaseEntry",
158
158
  record: (e, { t }) => ce(e, t),
159
159
  pagination: { jump: !0 },
160
160
  summary: ({ filters: e, pageInfo: t, t: n, total: i }) => [{
161
- label: n("gallery.section.database"),
161
+ label: n("core.section.database"),
162
162
  value: r(e.q) ? n("catalogue.results.allObjects") : `“${e.q}”`
163
163
  }, {
164
164
  count: t.total,
@@ -190,7 +190,7 @@ var kt = { class: "mwnf-dxa-profile-languages" }, $ = {
190
190
  }),
191
191
  t[1] ||= F("span", { class: "mwnf-dxa-no-results-divider" }, "|", -1),
192
192
  L(H(Z), { to: { name: "collection" } }, {
193
- default: U(() => [I(V(e.$t("gallery.section.collection")), 1)]),
193
+ default: U(() => [I(V(e.$t("core.section.collection")), 1)]),
194
194
  _: 1
195
195
  })
196
196
  ])]),
@@ -332,7 +332,7 @@ var kt = { class: "mwnf-dxa-profile-languages" }, $ = {
332
332
  end: i.to
333
333
  }
334
334
  } }, {
335
- default: U(() => [I(V(e.$t("gallery.section.timeline")) + " | " + V(H(y)("countries", H(Ee)(i.country))), 1)]),
335
+ default: U(() => [I(V(e.$t("core.section.timeline")) + " | " + V(H(y)("countries", H(Ee)(i.country))), 1)]),
336
336
  _: 2
337
337
  }, 1032, ["to"])])])) : N("", !0)]),
338
338
  _: 1
@@ -462,11 +462,11 @@ var kt = { class: "mwnf-dxa-profile-languages" }, $ = {
462
462
  pageSize: Qe,
463
463
  variant: "grid",
464
464
  recordRoute: "item",
465
- actionLabel: "exhibition.action.seeDatabaseEntry",
465
+ actionLabel: "catalogue.results.seeDatabaseEntry",
466
466
  record: (e, { t }) => C(e, t),
467
467
  pagination: { jump: !0 },
468
468
  summary: ({ filters: e, pageInfo: t, t: n }) => [{
469
- label: n("exhibition.section.database"),
469
+ label: n("core.section.database"),
470
470
  value: r(e.q) ? n("catalogue.results.allObjects") : `“${e.q}”`
471
471
  }, {
472
472
  count: t.total,
@@ -498,7 +498,7 @@ var kt = { class: "mwnf-dxa-profile-languages" }, $ = {
498
498
  }),
499
499
  t[1] ||= F("span", { class: "mwnf-dxa-no-results-divider" }, "|", -1),
500
500
  L(H(Z), { to: { name: "collection" } }, {
501
- default: U(() => [I(V(e.$t("exhibition.section.collection")), 1)]),
501
+ default: U(() => [I(V(e.$t("core.section.collection")), 1)]),
502
502
  _: 1
503
503
  })
504
504
  ])]),
@@ -625,7 +625,7 @@ var kt = { class: "mwnf-dxa-profile-languages" }, $ = {
625
625
  end: i.to
626
626
  }
627
627
  } }, {
628
- default: U(() => [I(V(e.$t("exhibition.section.timeline")) + " | " + V(H(D)("countries", H(w)(i.country))), 1)]),
628
+ default: U(() => [I(V(e.$t("core.section.timeline")) + " | " + V(H(D)("countries", H(w)(i.country))), 1)]),
629
629
  _: 2
630
630
  }, 1032, ["to"])])])) : N("", !0)]),
631
631
  _: 1
@@ -679,7 +679,7 @@ var kt = { class: "mwnf-dxa-profile-languages" }, $ = {
679
679
  pageSize: Qe,
680
680
  variant: "grid",
681
681
  recordRoute: "item",
682
- actionLabel: "exhibition.action.seeDatabaseEntry",
682
+ actionLabel: "catalogue.results.seeDatabaseEntry",
683
683
  empty: n.value ? t.texts.emptyInstitution : t.texts.emptyPartner,
684
684
  record: (e, { t }) => C(e, t),
685
685
  summary: ({ pageInfo: e, t: r }) => [{
@@ -714,7 +714,7 @@ var kt = { class: "mwnf-dxa-profile-languages" }, $ = {
714
714
  _: 1
715
715
  }, 8, ["spec"])) : N("", !0);
716
716
  }
717
- }, xn = () => Promise.resolve().then(() => Er), Sn = () => Promise.resolve().then(() => jr), Cn = () => Promise.resolve().then(() => Pr), wn = () => Promise.resolve().then(() => Lr), Tn = () => Promise.resolve().then(() => Br), En = () => Promise.resolve().then(() => Ur), Dn = () => import("./Theme-DJeeA6tZ.js").then((e) => e.t), On = () => Promise.resolve().then(() => qr), kn = () => Promise.resolve().then(() => Zr), An = () => Promise.resolve().then(() => ei), jn = () => Promise.resolve().then(() => ni), Mn = {
717
+ }, xn = () => Promise.resolve().then(() => Er), Sn = () => Promise.resolve().then(() => jr), Cn = () => Promise.resolve().then(() => Pr), wn = () => Promise.resolve().then(() => Lr), Tn = () => Promise.resolve().then(() => Br), En = () => Promise.resolve().then(() => Ur), Dn = () => import("./Theme-wq0QzOGt.js").then((e) => e.t), On = () => Promise.resolve().then(() => qr), kn = () => Promise.resolve().then(() => Zr), An = () => Promise.resolve().then(() => ei), jn = () => Promise.resolve().then(() => ni), Mn = {
718
718
  emptyPartner: "exhibition.partnerObjects.emptyPartner",
719
719
  emptyInstitution: "exhibition.partnerObjects.emptyInstitution",
720
720
  institutionSummary: "exhibition.partner.monumentsInExhibition",
@@ -1056,7 +1056,7 @@ var zn = {
1056
1056
  title: H(i)("gallery.notice.tip"),
1057
1057
  text: H(i)("gallery.notice.databaseReplaced")
1058
1058
  },
1059
- "footer-text": `${H(i)("gallery.footer.copyright")} 2004–${H(u)}`,
1059
+ "footer-text": `${H(i)("core.footer.copyright")} 2004–${H(u)}`,
1060
1060
  "onUpdate:language": t[0] ||= (e) => r("update:language", e)
1061
1061
  }, {
1062
1062
  brand: U(() => [...t[1] ||= [F("span", { class: "mwnf-dxa-logo-mark" }, "MWNF", -1)]]),
@@ -1141,7 +1141,7 @@ var zn = {
1141
1141
  country: D("countries", t.country_id)
1142
1142
  };
1143
1143
  }), f = j(() => [{
1144
- label: i("exhibition.nav.about"),
1144
+ label: i("core.nav.about"),
1145
1145
  description: i("exhibition.nav.introduction"),
1146
1146
  href: "#/about"
1147
1147
  }, {
@@ -1188,7 +1188,7 @@ var zn = {
1188
1188
  "hyperlinks-title-href": "#/",
1189
1189
  "hyperlinks-subtitle": H(et)(H(a)),
1190
1190
  hyperlinks: f.value,
1191
- "footer-text": `${H(i)("exhibition.footer.copyright")} 2004–${H(l)}`,
1191
+ "footer-text": `${H(i)("core.footer.copyright")} 2004–${H(l)}`,
1192
1192
  logos: m.value,
1193
1193
  "onUpdate:language": t[0] ||= (e) => r("update:language", e)
1194
1194
  }, {
@@ -1243,31 +1243,31 @@ function qn({ datasetPackage: e, siteName: t, origin: n, projectColors: r = {},
1243
1243
  links: [
1244
1244
  {
1245
1245
  section: "about",
1246
- label: "gallery.nav.about",
1246
+ label: "core.nav.about",
1247
1247
  to: { name: "about" }
1248
1248
  },
1249
1249
  {
1250
1250
  section: "collection",
1251
- label: "gallery.nav.collection",
1251
+ label: "core.nav.collection",
1252
1252
  to: { name: "collection" }
1253
1253
  },
1254
1254
  {
1255
1255
  section: "partners",
1256
- label: "gallery.nav.partners",
1256
+ label: "core.nav.partners",
1257
1257
  to: { name: "partners" }
1258
1258
  },
1259
1259
  {
1260
1260
  section: "timeline",
1261
- label: "gallery.nav.timeline",
1261
+ label: "core.nav.timeline",
1262
1262
  to: { name: "timeline" }
1263
1263
  },
1264
1264
  {
1265
1265
  section: "credits",
1266
- label: "gallery.nav.credits",
1266
+ label: "core.nav.credits",
1267
1267
  to: { name: "credits" }
1268
1268
  },
1269
1269
  {
1270
- label: "gallery.nav.myCollection",
1270
+ label: "core.nav.myCollection",
1271
1271
  href: q.myCollection,
1272
1272
  external: !0
1273
1273
  }
@@ -1282,12 +1282,12 @@ function qn({ datasetPackage: e, siteName: t, origin: n, projectColors: r = {},
1282
1282
  }],
1283
1283
  footerLinks: [
1284
1284
  {
1285
- label: "gallery.footer.aboutMwnf",
1285
+ label: "core.footer.aboutMwnf",
1286
1286
  href: q.about,
1287
1287
  external: !0
1288
1288
  },
1289
1289
  {
1290
- label: "gallery.footer.contact",
1290
+ label: "core.footer.contact",
1291
1291
  href: q.contact,
1292
1292
  external: !0
1293
1293
  },
@@ -1297,29 +1297,29 @@ function qn({ datasetPackage: e, siteName: t, origin: n, projectColors: r = {},
1297
1297
  external: !0
1298
1298
  },
1299
1299
  {
1300
- label: "gallery.footer.credits",
1300
+ label: "core.footer.credits",
1301
1301
  href: q.credits,
1302
1302
  external: !0
1303
1303
  },
1304
1304
  {
1305
- label: "gallery.footer.cookies",
1305
+ label: "core.footer.cookies",
1306
1306
  href: q.cookies,
1307
1307
  external: !0
1308
1308
  }
1309
1309
  ],
1310
1310
  sectionTitles: {
1311
- collection: "gallery.section.collection",
1312
- database: "gallery.section.database",
1313
- partners: "gallery.section.partners",
1314
- timeline: "gallery.section.timeline",
1315
- about: "gallery.section.about",
1316
- credits: "gallery.section.credits",
1311
+ collection: "core.section.collection",
1312
+ database: "core.section.database",
1313
+ partners: "core.section.partners",
1314
+ timeline: "core.section.timeline",
1315
+ about: "core.section.about",
1316
+ credits: "core.section.credits",
1317
1317
  "": "gallery.section.error"
1318
1318
  },
1319
1319
  search: {
1320
1320
  route: "search-results",
1321
1321
  key: "q",
1322
- placeholder: "gallery.search.placeholder",
1322
+ placeholder: "catalogue.search.placeholder",
1323
1323
  submitLabel: "catalogue.search.submit",
1324
1324
  empty: "all-objects"
1325
1325
  }
@@ -1406,7 +1406,7 @@ function Jn({ datasetPackage: e, siteName: t, origin: n, projectColors: r = {},
1406
1406
  links: [
1407
1407
  {
1408
1408
  section: "about",
1409
- label: "exhibition.nav.about",
1409
+ label: "core.nav.about",
1410
1410
  to: { name: "about" }
1411
1411
  },
1412
1412
  {
@@ -1416,32 +1416,32 @@ function Jn({ datasetPackage: e, siteName: t, origin: n, projectColors: r = {},
1416
1416
  },
1417
1417
  {
1418
1418
  section: "collection",
1419
- label: "exhibition.nav.collection",
1419
+ label: "core.nav.collection",
1420
1420
  to: { name: "collection" }
1421
1421
  },
1422
1422
  {
1423
1423
  section: "partners",
1424
- label: "exhibition.nav.partners",
1424
+ label: "core.nav.partners",
1425
1425
  to: { name: "partners" }
1426
1426
  },
1427
1427
  {
1428
1428
  section: "timeline",
1429
- label: "exhibition.nav.timeline",
1429
+ label: "core.nav.timeline",
1430
1430
  to: { name: "timeline" },
1431
1431
  when: () => Xe.value
1432
1432
  },
1433
1433
  {
1434
1434
  section: "related",
1435
- label: "exhibition.related.title",
1435
+ label: "record.related.title",
1436
1436
  to: { name: "related" }
1437
1437
  },
1438
1438
  {
1439
1439
  section: "credits",
1440
- label: "exhibition.nav.credits",
1440
+ label: "core.nav.credits",
1441
1441
  to: { name: "credits" }
1442
1442
  },
1443
1443
  {
1444
- label: "exhibition.nav.myCollection",
1444
+ label: "core.nav.myCollection",
1445
1445
  href: q.myCollection,
1446
1446
  external: !0
1447
1447
  }
@@ -1450,18 +1450,18 @@ function Jn({ datasetPackage: e, siteName: t, origin: n, projectColors: r = {},
1450
1450
  label: "core.nav.home",
1451
1451
  to: { name: "home" }
1452
1452
  }, {
1453
- label: "exhibition.footer.aboutMwnf",
1453
+ label: "core.footer.aboutMwnf",
1454
1454
  href: q.about,
1455
1455
  external: !0
1456
1456
  }],
1457
1457
  footerLinks: [
1458
1458
  {
1459
- label: "exhibition.footer.aboutMwnf",
1459
+ label: "core.footer.aboutMwnf",
1460
1460
  href: q.about,
1461
1461
  external: !0
1462
1462
  },
1463
1463
  {
1464
- label: "exhibition.footer.contact",
1464
+ label: "core.footer.contact",
1465
1465
  href: q.contact,
1466
1466
  external: !0
1467
1467
  },
@@ -1471,30 +1471,30 @@ function Jn({ datasetPackage: e, siteName: t, origin: n, projectColors: r = {},
1471
1471
  external: !0
1472
1472
  },
1473
1473
  {
1474
- label: "exhibition.footer.credits",
1474
+ label: "core.footer.credits",
1475
1475
  href: q.credits,
1476
1476
  external: !0
1477
1477
  },
1478
1478
  {
1479
- label: "exhibition.footer.cookies",
1479
+ label: "core.footer.cookies",
1480
1480
  href: q.cookies,
1481
1481
  external: !0
1482
1482
  }
1483
1483
  ],
1484
1484
  sectionTitles: {
1485
1485
  themes: "exhibition.section.themes",
1486
- collection: "exhibition.section.collection",
1487
- database: "exhibition.section.database",
1488
- partners: "exhibition.section.partners",
1489
- related: "exhibition.related.title",
1490
- timeline: "exhibition.section.timeline",
1491
- about: "exhibition.section.about",
1492
- credits: "exhibition.section.credits"
1486
+ collection: "core.section.collection",
1487
+ database: "core.section.database",
1488
+ partners: "core.section.partners",
1489
+ related: "record.related.title",
1490
+ timeline: "core.section.timeline",
1491
+ about: "core.section.about",
1492
+ credits: "core.section.credits"
1493
1493
  },
1494
1494
  search: {
1495
1495
  route: "search-results",
1496
1496
  key: "q",
1497
- placeholder: "exhibition.search.placeholder",
1497
+ placeholder: "catalogue.search.placeholder",
1498
1498
  submitLabel: "catalogue.search.submit",
1499
1499
  empty: "all-objects"
1500
1500
  }
@@ -1883,7 +1883,7 @@ var Yn = {
1883
1883
  variant: "grid",
1884
1884
  recordRoute: "item",
1885
1885
  record: (e, t) => C(e, t.t),
1886
- actionLabel: "exhibition.action.seeDatabaseEntry",
1886
+ actionLabel: "catalogue.results.seeDatabaseEntry",
1887
1887
  empty: "exhibition.theme.noRecords",
1888
1888
  summary: () => [{
1889
1889
  label: c("exhibition.theme.galleryLabel"),
@@ -22,7 +22,9 @@ var s = {
22
22
  glossary: !0,
23
23
  panel: !0,
24
24
  navigation: "tree",
25
- numbering: !1
25
+ numbering: !1,
26
+ inThisTheme: "exhibition.theme.inThisTheme",
27
+ seeAll: "exhibition.theme.seeAllInTheme"
26
28
  }, c = {
27
29
  ...s,
28
30
  about: () => !1
package/dist/views.js CHANGED
@@ -1,6 +1,6 @@
1
1
  import { t as e } from "./FeaturedRecord-Dw6uf3ax.js";
2
2
  import { v as t } from "./TimelineEventList-BhkWyY5-.js";
3
- import { a as n, c as r, i, n as a, o, r as s, s as c, t as l } from "./TimelineResultsView-CgGVsJcp.js";
3
+ import { a as n, c as r, i, n as a, o, r as s, s as c, t as l } from "./TimelineResultsView-DQsyJmPp.js";
4
4
  import { computed as u, createBlock as d, createCommentVNode as f, createElementBlock as p, createVNode as m, mergeProps as h, normalizeClass as g, openBlock as _, renderSlot as v, toDisplayString as y, unref as b } from "vue";
5
5
  import { I18nText as x, renderInline as S, renderPlain as C, useDataPackage as w, useFeaturedRecord as T, useI18n as E, useSiteConfig as D } from "@museumwnf/viewer-core";
6
6
  //#region src/views/HomeView.vue
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@museumwnf/viewer-layout",
3
- "version": "3.0.0",
3
+ "version": "3.1.0",
4
4
  "description": "Page structure for MWNF websites: PageShell composing seven optional, token-styled sections, the content components a page is made of, and the composed views a website names instead of writing a page.",
5
5
  "type": "module",
6
6
  "license": "SEE LICENSE IN LICENSE.md",