@instruments/taxonomy 2.6.0 → 2.8.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/dist/term.d.ts CHANGED
@@ -74,20 +74,28 @@ export interface TermProvenance {
74
74
  /**
75
75
  * A canonical identity governed by ColorScope rather than Taxonomy.
76
76
  *
77
- * This is authored data, not an inference from provenance prose. A vendored source explains where
78
- * a row came from; it does not by itself decide which package owns the durable identifier.
77
+ * This is data copied from ColorScope, not an inference from provenance prose. A term carrying it
78
+ * has ColorScope's own permanent URI as its identity: Taxonomy lists the term so that anything in
79
+ * the graph can relate to it, and never defines it.
79
80
  */
80
81
  export interface ColorScopeAuthority {
81
82
  authority: "colorscope";
82
83
  authorityUri: "https://colorscope.materialinstruments.com";
83
84
  identifier: string;
84
85
  referenceKind: keyof ColorScopeReferenceKinds;
86
+ /** ColorScope's permanent URI for the concept. */
87
+ uri: string;
85
88
  }
86
89
  interface ColorScopeReferenceKinds {
90
+ /** ColorScope's `basic-tone` concepts: light, mid, dark, muted, vivid. */
91
+ "basic-tone": true;
87
92
  "chroma-level": true;
88
93
  "color-family": true;
89
94
  "lightness-level": true;
95
+ /** ColorScope's `modifier` concepts, such as washed. */
96
+ modifier: true;
90
97
  "named-color": true;
98
+ /** ColorScope's `palette` concepts, which read as palette compositions. */
91
99
  "palette-mood": true;
92
100
  "temperature-level": true;
93
101
  }
@@ -231,6 +239,8 @@ export interface Term {
231
239
  label: string;
232
240
  /** Present when another package, currently ColorScope, owns this term's canonical identity. */
233
241
  canonicalAuthority?: ColorScopeAuthority;
242
+ /** A representative sRGB colour, copied from the owning authority. Present on some ColorScope terms only. */
243
+ hex?: string;
234
244
  /**
235
245
  * Parent term id. Carries TAXONOMIC SUBSUMPTION ONLY - every instance of this term must be an
236
246
  * instance of the parent. Part-of, used-in, typically-found-in and evokes are relations, and
@@ -291,7 +301,11 @@ export interface Term {
291
301
  */
292
302
  usageWithheld?: UsageWithheld;
293
303
  status?: TermStatus;
294
- /** The term that replaced this one. Required when status is "deprecated". */
304
+ /**
305
+ * The term that replaced this one. Required when status is "deprecated". Either a qualified
306
+ * reference to a term in this corpus or, where the successor lives with another authority such
307
+ * as ColorScope, that authority's permanent URI.
308
+ */
295
309
  supersededByReference?: string;
296
310
  /** Why the term is deprecated, or any other governance note a reader needs. */
297
311
  note?: string;
package/dist/v1.d.ts CHANGED
@@ -3,20 +3,26 @@ import type { ElementPlacement, ExternalMapping, ExternalScheme, PeriodSpan, Rel
3
3
  export type { FacetHolds } from "./axes/index.js";
4
4
  export declare const TAXONOMY_BASE_URI: "https://taxonomy.materialinstruments.com";
5
5
  export declare const TAXONOMY_SNAPSHOT: "2026-10-02";
6
- export declare const TAXONOMY_VERSION: "2.6.0";
6
+ export declare const TAXONOMY_VERSION: "2.8.0";
7
+ export declare const COLORSCOPE_BASE_URI: "https://colorscope.materialinstruments.com";
7
8
  export type CanonicalConceptUri = `${typeof TAXONOMY_BASE_URI}/id/${string}`;
9
+ /** ColorScope's permanent URI for a concept it owns. */
10
+ export type ColorScopeConceptUri = `${typeof COLORSCOPE_BASE_URI}/id/${string}`;
11
+ /** The identity of a concept node: this corpus's own URI, or the owning authority's. */
12
+ export type ConceptUri = CanonicalConceptUri | ColorScopeConceptUri;
8
13
  export type LifecycleStatus = "active" | "deprecated";
9
14
  export interface Lifecycle {
10
15
  introducedAt: string;
11
16
  reviewedAt: string;
12
17
  status: LifecycleStatus;
13
- supersededBy?: CanonicalConceptUri;
18
+ supersededBy?: ConceptUri;
14
19
  }
15
20
  export interface Governance {
16
21
  explanation: string;
17
22
  lifecycle: Lifecycle;
18
23
  provenance: TermProvenance;
19
- steward: "@instruments/taxonomy";
24
+ /** Who owns the thing described: Taxonomy, or ColorScope for the colour concepts it lists. */
25
+ steward: "@instruments/taxonomy" | "@materialinstruments/colorscope";
20
26
  }
21
27
  export interface AxisNode {
22
28
  boundary: string;
@@ -58,7 +64,13 @@ export interface ConceptNode {
58
64
  externalReferences?: readonly ExternalReference[];
59
65
  facet: string;
60
66
  governance: Governance;
61
- governedBy: "taxonomy";
67
+ /**
68
+ * Who owns the concept. `colorscope` marks a colour concept Taxonomy lists but does not define:
69
+ * its `uri` is ColorScope's own permanent URI, and its meaning is ColorScope's.
70
+ */
71
+ governedBy: "taxonomy" | "colorscope";
72
+ /** A representative sRGB colour, copied from ColorScope. Present on colour families only. */
73
+ hex?: string;
62
74
  kind: "concept";
63
75
  label: string;
64
76
  lifecycle: Lifecycle;
@@ -72,7 +84,7 @@ export interface ConceptNode {
72
84
  slug: string;
73
85
  span?: PeriodSpan;
74
86
  styleKind?: StyleKind;
75
- uri: CanonicalConceptUri;
87
+ uri: ConceptUri;
76
88
  usage?: TermUsage;
77
89
  usageWithheld?: UsageWithheld;
78
90
  }
@@ -100,14 +112,20 @@ export interface TaxonomyTarget {
100
112
  meaningPriority?: MeaningPriority;
101
113
  uri: CanonicalConceptUri;
102
114
  }
103
- export declare const COLOR_SCOPE_REFERENCE_KINDS: readonly ["chroma-level", "color-family", "lightness-level", "named-color", "palette-mood", "temperature-level"];
115
+ export declare const COLOR_SCOPE_REFERENCE_KINDS: readonly ["basic-tone", "chroma-level", "color-family", "lightness-level", "modifier", "named-color", "palette-mood", "temperature-level"];
104
116
  export type ColorScopeReferenceKind = (typeof COLOR_SCOPE_REFERENCE_KINDS)[number];
105
117
  export interface ColorScopeTarget {
106
118
  authority: "colorscope";
107
- authorityUri: "https://colorscope.materialinstruments.com";
119
+ authorityUri: typeof COLORSCOPE_BASE_URI;
108
120
  identifier: string;
109
121
  referenceKind: ColorScopeReferenceKind;
110
122
  meaningPriority?: MeaningPriority;
123
+ /**
124
+ * ColorScope's permanent URI for the concept. For a family, temperature level, basic tone or
125
+ * palette composition this is also the URI of a node in this graph; a named colour has no node
126
+ * here and is read at ColorScope.
127
+ */
128
+ uri: ColorScopeConceptUri;
111
129
  }
112
130
  export type PhraseMeaning = TaxonomyTarget | ColorScopeTarget;
113
131
  export type MeaningContext = "color" | "material";
@@ -142,5 +160,5 @@ export declare const TAXONOMY_CORPUS_METADATA: {
142
160
  readonly phraseEntryCount: number;
143
161
  readonly revision: string;
144
162
  readonly snapshot: "2026-10-02";
145
- readonly version: "2.6.0";
163
+ readonly version: "2.8.0";
146
164
  };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@instruments/taxonomy",
3
- "version": "2.6.0",
3
+ "version": "2.8.0",
4
4
  "description": "Canonical data-only interiors and architecture knowledge graph and lexical corpus.",
5
5
  "license": "SEE LICENSE IN LICENSE",
6
6
  "repository": {
@@ -25,7 +25,7 @@
25
25
  },
26
26
  "devDependencies": {
27
27
  "@howells/lint": "^3.5.1",
28
- "@materialinstruments/colorscope": "10.2.1",
28
+ "@materialinstruments/colorscope": "10.4.0",
29
29
  "@taxonomy/lint-policy": "npm:@howells/lint@1.0.0",
30
30
  "@types/node": "^26.6.2",
31
31
  "tsup": "^8.5.1",
@@ -34,6 +34,7 @@
34
34
  },
35
35
  "scripts": {
36
36
  "build": "tsup && tsc -p tsconfig.build.json && node ../../scripts/finalize-declarations.mjs dist",
37
+ "generate:colour-layer": "node scripts/generate-colour-layer.mjs",
37
38
  "lint": "node node_modules/@howells/lint/bin/howells-check.mjs .",
38
39
  "lint:fix": "node node_modules/@howells/lint/bin/howells-fix.mjs .",
39
40
  "test": "vitest run",