@glossarist/concept-browser 0.4.17 → 0.4.18

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/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@glossarist/concept-browser",
3
- "version": "0.4.17",
3
+ "version": "0.4.18",
4
4
  "description": "Vue SPA for browsing Glossarist terminology datasets with cross-reference resolution, graph visualization, and multi-language support",
5
5
  "type": "module",
6
6
  "bin": {
@@ -238,6 +238,7 @@ function conceptFromJsonLd(doc: Record<string, any>): Concept {
238
238
  }
239
239
 
240
240
  const related = (doc['gl:references'] ?? []).map(mapRelatedFromJsonLd);
241
+ const tags = Array.isArray(doc['gl:tags']) ? [...doc['gl:tags']] : [];
241
242
 
242
243
  return Concept.fromJSON({
243
244
  id,
@@ -245,6 +246,7 @@ function conceptFromJsonLd(doc: Record<string, any>): Concept {
245
246
  uri: doc['@id'] ?? null,
246
247
  localizations,
247
248
  related,
249
+ tags,
248
250
  status: null,
249
251
  });
250
252
  }
@@ -82,6 +82,7 @@ export interface ConceptEntry {
82
82
  id: string;
83
83
  designations: Record<string, string>;
84
84
  groups: string[];
85
+ tags: string[];
85
86
  status: string;
86
87
  }
87
88
 
@@ -83,6 +83,9 @@ const conceptDates = computed(() => props.concept.dates);
83
83
  // Managed concept sources (distinct from localized sources)
84
84
  const conceptSources = computed(() => props.concept.sources);
85
85
 
86
+ // Managed concept tags
87
+ const conceptTags = computed(() => props.concept.tags ?? []);
88
+
86
89
  // Cross-reference resolver: generates clickable links for inline refs
87
90
 
88
91
  const { ensureBibLoaded, bibResolver, figResolver } = useRenderOptions(() => props.registerId);
@@ -683,6 +686,14 @@ const nonVerbalReps = computed(() => {
683
686
  </div>
684
687
  </div>
685
688
 
689
+ <!-- Tags -->
690
+ <div v-if="conceptTags.length" class="card p-5">
691
+ <div class="section-label">Tags</div>
692
+ <div class="flex flex-wrap gap-1.5 mt-3">
693
+ <span v-for="tag in conceptTags" :key="tag" class="badge badge-gray text-[10px]">{{ tag }}</span>
694
+ </div>
695
+ </div>
696
+
686
697
  <!-- Managed concept dates -->
687
698
  <div v-if="conceptDates.length" class="card p-5">
688
699
  <div class="section-label">Lifecycle dates</div>