@instruments/taxonomy 1.1.6 → 1.3.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 +5 -5
- package/dist/assertions.d.ts +70 -0
- package/dist/authoring.d.ts +33 -0
- package/dist/axes/axis.d.ts +35 -0
- package/dist/axes/construction.d.ts +3 -0
- package/dist/axes/daylight.d.ts +7 -0
- package/dist/axes/element-fabric.d.ts +2 -0
- package/dist/axes/element-fitout.d.ts +2 -0
- package/dist/axes/element-shared.d.ts +13 -0
- package/dist/axes/element.d.ts +2 -0
- package/dist/axes/finish.d.ts +9 -0
- package/dist/axes/format.d.ts +3 -0
- package/dist/axes/index.d.ts +33 -0
- package/dist/axes/installation-layout.d.ts +3 -0
- package/dist/axes/material.d.ts +3 -0
- package/dist/axes/mood-anchors.d.ts +4 -0
- package/dist/axes/mood.d.ts +2 -0
- package/dist/axes/palette.d.ts +7 -0
- package/dist/axes/pattern.d.ts +13 -0
- package/dist/axes/period-anchors.d.ts +4 -0
- package/dist/axes/period.d.ts +29 -0
- package/dist/axes/place-anchors.d.ts +4 -0
- package/dist/axes/place.d.ts +5 -0
- package/dist/axes/product-category.d.ts +3 -0
- package/dist/axes/requirement.d.ts +3 -0
- package/dist/axes/season.d.ts +2 -0
- package/dist/axes/space/arrival.d.ts +2 -0
- package/dist/axes/space/circulation.d.ts +2 -0
- package/dist/axes/space/civic.d.ts +2 -0
- package/dist/axes/space/culture.d.ts +2 -0
- package/dist/axes/space/dining.d.ts +2 -0
- package/dist/axes/space/domestic.d.ts +2 -0
- package/dist/axes/space/fitness.d.ts +2 -0
- package/dist/axes/space/gathering.d.ts +2 -0
- package/dist/axes/space/healthcare.d.ts +2 -0
- package/dist/axes/space/learning.d.ts +2 -0
- package/dist/axes/space/market-neutral.d.ts +1 -0
- package/dist/axes/space/other.d.ts +2 -0
- package/dist/axes/space/outdoor.d.ts +2 -0
- package/dist/axes/space/retail.d.ts +2 -0
- package/dist/axes/space/sanitary.d.ts +2 -0
- package/dist/axes/space/service.d.ts +2 -0
- package/dist/axes/space/shared.d.ts +30 -0
- package/dist/axes/space/sleeping.d.ts +2 -0
- package/dist/axes/space/working.d.ts +2 -0
- package/dist/axes/space-anchors/arrival.d.ts +3 -0
- package/dist/axes/space-anchors/circulation.d.ts +3 -0
- package/dist/axes/space-anchors/civic.d.ts +3 -0
- package/dist/axes/space-anchors/culture.d.ts +3 -0
- package/dist/axes/space-anchors/dining.d.ts +3 -0
- package/dist/axes/space-anchors/domestic.d.ts +3 -0
- package/dist/axes/space-anchors/fitness.d.ts +3 -0
- package/dist/axes/space-anchors/gathering.d.ts +3 -0
- package/dist/axes/space-anchors/healthcare.d.ts +3 -0
- package/dist/axes/space-anchors/learning.d.ts +3 -0
- package/dist/axes/space-anchors/other.d.ts +3 -0
- package/dist/axes/space-anchors/outdoor.d.ts +3 -0
- package/dist/axes/space-anchors/retail.d.ts +3 -0
- package/dist/axes/space-anchors/sanitary.d.ts +3 -0
- package/dist/axes/space-anchors/service.d.ts +3 -0
- package/dist/axes/space-anchors/sleeping.d.ts +3 -0
- package/dist/axes/space-anchors/working.d.ts +3 -0
- package/dist/axes/space-anchors.d.ts +8 -0
- package/dist/axes/space.d.ts +61 -0
- package/dist/axes/style-anchors.d.ts +7 -0
- package/dist/axes/style.d.ts +2 -0
- package/dist/axes/tier.d.ts +42 -0
- package/dist/axes/typology.d.ts +2 -0
- package/dist/axes/unit-shape.d.ts +3 -0
- package/dist/canonicalisation.d.ts +44 -0
- package/dist/crossover-sources.d.ts +52 -0
- package/dist/crosswalks/mapping.d.ts +29 -0
- package/dist/crosswalks/strength.d.ts +19 -0
- package/dist/dictionaries.d.ts +4 -0
- package/dist/estate/concepts.d.ts +117 -0
- package/dist/estate/decomposition.d.ts +40 -0
- package/dist/estate/index.d.ts +4 -0
- package/dist/estate/residue-report.d.ts +45 -0
- package/dist/estate/rows/architecture-projects.d.ts +2 -0
- package/dist/estate/rows/editorial-imagery.d.ts +2 -0
- package/dist/estate/rows/furnishings-retailer.d.ts +2 -0
- package/dist/estate/rows/index.d.ts +2 -0
- package/dist/estate/rows/materials-retrieval.d.ts +2 -0
- package/dist/estate/rows/paint-samples.d.ts +2 -0
- package/dist/estate/rows/rendering-pipeline.d.ts +2 -0
- package/dist/estate/sources.d.ts +106 -0
- package/dist/index.d.ts +5 -339
- package/dist/index.js +902 -670
- package/dist/match.d.ts +107 -0
- package/dist/search-corpus-source.d.ts +6 -0
- package/dist/taste-assertion.d.ts +112 -0
- package/dist/taste.d.ts +2 -0
- package/dist/term.d.ts +352 -0
- package/dist/v1.d.ts +141 -0
- package/package.json +13 -13
package/dist/index.d.ts
CHANGED
|
@@ -1,342 +1,8 @@
|
|
|
1
|
-
/** An external vocabulary this package crosswalks out to. */
|
|
2
|
-
type ExternalScheme =
|
|
3
|
-
/** Getty Art & Architecture Thesaurus. ODC-By 1.0 - redistributable with attribution. */
|
|
4
|
-
"aat"
|
|
5
|
-
/** Uniclass 2015 (NBS). CC BY-ND 4.0 - referenced by code, never adapted. */
|
|
6
|
-
| "uniclass"
|
|
7
|
-
/** Wikidata Q-items. CC0. */
|
|
8
|
-
| "wikidata";
|
|
9
1
|
/**
|
|
10
|
-
*
|
|
11
|
-
* rather than a translation. `exact` asserts the two terms are interchangeable in retrieval;
|
|
12
|
-
* `close` asserts they are near enough to substitute in most contexts but not all; `broad` and
|
|
13
|
-
* `narrow` assert containment in the named direction; `related` asserts association only.
|
|
14
|
-
*/
|
|
15
|
-
type MatchStrength = "exact" | "close" | "broad" | "narrow" | "related";
|
|
16
|
-
interface ExternalMapping {
|
|
17
|
-
scheme: ExternalScheme;
|
|
18
|
-
/** The external identifier, verbatim: an AAT subject id, a Uniclass code, a Wikidata Q-number. */
|
|
19
|
-
identifier: string;
|
|
20
|
-
/** The external vocabulary's own label for that identifier, verbatim and unedited. */
|
|
21
|
-
label: string;
|
|
22
|
-
match: MatchStrength;
|
|
23
|
-
}
|
|
24
|
-
/**
|
|
25
|
-
* Where a term's content came from, and when. Ranks the SOURCE, never the accuracy: a term lifted
|
|
26
|
-
* verbatim from an upstream dictionary is `vendored` whether or not the upstream got it right.
|
|
27
|
-
* Using this field as a proxy for correctness is how confident wrong answers get made.
|
|
28
|
-
*/
|
|
29
|
-
type SourceBasis =
|
|
30
|
-
/** Copied unedited from a named upstream dictionary at a stated snapshot. */
|
|
31
|
-
"vendored"
|
|
32
|
-
/** Written here, from scratch, by a named editor. */
|
|
33
|
-
| "authored"
|
|
34
|
-
/** Written here, but derived from measured usage in a named corpus. */
|
|
35
|
-
| "evidenced"
|
|
36
|
-
/** Written here from one or more named authoritative references, without adopting their term. */
|
|
37
|
-
| "referenced"
|
|
38
|
-
/** Adopted from a published external standard, with its identifier carried. */
|
|
39
|
-
| "standard";
|
|
40
|
-
interface TermProvenance {
|
|
41
|
-
basis: SourceBasis;
|
|
42
|
-
/** The upstream file, corpus or standard. Free text, but always specific enough to re-read. */
|
|
43
|
-
source: string;
|
|
44
|
-
/** ISO date the source was read. Absent only for `authored`. */
|
|
45
|
-
snapshot?: string;
|
|
46
|
-
}
|
|
47
|
-
/**
|
|
48
|
-
* A DATED NEGATIVE RESULT: a scheme that was searched for this term and did not have it.
|
|
49
|
-
*
|
|
50
|
-
* This is the field that makes the gap publishable. ADR 0001 section 8 softens the planned
|
|
51
|
-
* invariant "every STYLE and PERIOD term carries an AAT mapping" to "carries a mapping OR carries
|
|
52
|
-
* one of these", because AAT has no consumer interiors coverage at all - a live search for
|
|
53
|
-
* *japandi* returns nothing, and *farmhouse*, *transitional* and *coastal* are absent as interior
|
|
54
|
-
* idioms. Without this field an unmapped term is indistinguishable from an unchecked one, and the
|
|
55
|
-
* two are opposites: one is evidence and the other is a to-do.
|
|
56
|
-
*
|
|
57
|
-
* A dated negative against the best art-and-architecture thesaurus in the world is the clearest
|
|
58
|
-
* available statement of why this vocabulary needs to exist.
|
|
59
|
-
*/
|
|
60
|
-
interface SearchedWithout {
|
|
61
|
-
scheme: ExternalScheme;
|
|
62
|
-
/** ISO date the search was run. */
|
|
63
|
-
date: string;
|
|
64
|
-
/** What was searched, so a reader can repeat it. */
|
|
65
|
-
query: string;
|
|
66
|
-
/** Where the search was run, e.g. the SPARQL endpoint. */
|
|
67
|
-
via: string;
|
|
68
|
-
}
|
|
69
|
-
/**
|
|
70
|
-
* A band, never a count.
|
|
71
|
-
*
|
|
72
|
-
* THE SCALE, stated once so every axis uses the same one. Measured against the corpus named on the
|
|
73
|
-
* term: `dominant` is the top decile of values by frequency, `common` the next, `occasional` a
|
|
74
|
-
* value that appears regularly, `rare` one that barely does, and `unattested` a value the corpus
|
|
75
|
-
* never uses. Set `usage` only where the named corpus can actually speak to the term: omitting it
|
|
76
|
-
* says "not measured here", which is honest, whereas `unattested` against an unrelated corpus
|
|
77
|
-
* would read as a claim about the term rather than about the corpus. The usage figures behind these derive from Material Bank's warehouse and
|
|
78
|
-
* from the DesignShop capture; publishing a raw number would publish a figure from someone else's
|
|
79
|
-
* business. The band carries the signal a reader actually needs - is this term common or rare -
|
|
80
|
-
* and nothing more.
|
|
81
|
-
*/
|
|
82
|
-
type UsageBand = "dominant" | "common" | "occasional" | "rare" | "unattested";
|
|
83
|
-
interface TermUsage {
|
|
84
|
-
band: UsageBand;
|
|
85
|
-
/** The corpus the band was measured against, and when. */
|
|
86
|
-
corpus: string;
|
|
87
|
-
snapshot: string;
|
|
88
|
-
}
|
|
89
|
-
/**
|
|
90
|
-
* Why a term carries no usage band when the corpus plainly has something to say about it.
|
|
91
|
-
*
|
|
92
|
-
* The distinguishing case is `style.modernism`. DesignShop tags a dominant share of its room
|
|
93
|
-
* schemes `Modern`, but that is the crosswalk row that DECLINES: `Modern` reads as either
|
|
94
|
-
* `style.modernism` or `style.contemporary` and the source never recorded which. Attributing the
|
|
95
|
-
* usage would smuggle in the guess the crosswalk refused to make.
|
|
96
|
-
*
|
|
97
|
-
* Without this field, a reader sees "not measured" and cannot tell that apart from "nobody looked",
|
|
98
|
-
* and those are opposite claims. Same reasoning as `searchedWithout`: an absence somebody reasoned
|
|
99
|
-
* their way to is evidence, and an absence nobody has examined is a to-do.
|
|
100
|
-
*/
|
|
101
|
-
interface UsageWithheld {
|
|
102
|
-
reason: string;
|
|
103
|
-
/** The corpus that would otherwise have supplied a band. */
|
|
104
|
-
corpus: string;
|
|
105
|
-
}
|
|
106
|
-
/**
|
|
107
|
-
* A period's extent, as four numbers rather than two.
|
|
108
|
-
*
|
|
109
|
-
* Two dates cannot answer the questions consumers actually ask. "Is 1832 Georgian?" wants the
|
|
110
|
-
* outer edge; "give me a canonical date for Georgian" wants the core. So each period carries a
|
|
111
|
-
* fuzzy interval: `earliest` and `latest` bound what could defensibly be called this period,
|
|
112
|
-
* `start` and `end` bound what uncontroversially is.
|
|
113
|
-
*
|
|
114
|
-
* `end` and `latest` are NULLABLE, and that is load-bearing rather than tidy. An open-ended period
|
|
115
|
-
* closed with the current year needs an arbitrary edit at every release, and the edit is a lie in
|
|
116
|
-
* between: `contemporary` does not end in 2026, it has not ended.
|
|
117
|
-
*
|
|
118
|
-
* SIBLING SPANS ARE ALLOWED TO OVERLAP, deliberately. Georgian and Regency genuinely do. Resolving
|
|
119
|
-
* "what period is 1800?" is therefore an accessor's job, not the data's - see `periodAt`, which
|
|
120
|
-
* prefers the narrowest match and then the un-hedged one. Leaving that to each consumer would get
|
|
121
|
-
* it reinvented differently every time.
|
|
122
|
-
*/
|
|
123
|
-
interface PeriodSpan {
|
|
124
|
-
/** The earliest year anyone would defensibly call this period. */
|
|
125
|
-
earliest: number;
|
|
126
|
-
/** The first year it uncontroversially is this period. */
|
|
127
|
-
start: number;
|
|
128
|
-
/** The last year it uncontroversially is. Null when the period has not ended. */
|
|
129
|
-
end: number | null;
|
|
130
|
-
/** The last year anyone would defensibly call it this. Null when the period has not ended. */
|
|
131
|
-
latest: number | null;
|
|
132
|
-
/** True when the boundaries are conventional rather than evidenced by an event. */
|
|
133
|
-
circa: boolean;
|
|
134
|
-
/**
|
|
135
|
-
* Where these dates apply, as ISO 3166-1 alpha-2, or `global`. Regional variance beyond this
|
|
136
|
-
* belongs in NARROWER TERMS with their own spans, never in a region-to-span map on one term: a
|
|
137
|
-
* map invites partial coverage, and a narrower term is something a relation can point at.
|
|
138
|
-
*/
|
|
139
|
-
regions: readonly string[];
|
|
140
|
-
}
|
|
141
|
-
/**
|
|
142
|
-
* What KIND of thing a style term is, because the three kinds have different truth conditions and
|
|
143
|
-
* conflating them is most of why style vocabularies rot.
|
|
144
|
-
*
|
|
145
|
-
* A `movement` has an art-historical literature, dates and adherents, and its boundaries are
|
|
146
|
-
* arguable in the way a scholarly claim is arguable. A `tradition` is a body of regional or
|
|
147
|
-
* vernacular practice, defined by what is done rather than by what was declared. A `market-idiom`
|
|
148
|
-
* is a prototype category the trade converged on, defined by resemblance to central cases and by
|
|
149
|
-
* nothing else - it has no manifesto to appeal to, and asking for necessary and sufficient
|
|
150
|
-
* conditions misunderstands it.
|
|
151
|
-
*
|
|
152
|
-
* Publishing the kind does two things. It tells a reader what sort of disagreement to expect: a
|
|
153
|
-
* dispute about Brutalism is a dispute about the record, a dispute about Farmhouse is a dispute
|
|
154
|
-
* about a prototype, and neither settles like the other. And it is the grouping a browse page needs
|
|
155
|
-
* once STYLE passes about fifty terms, when a flat alphabetical list stops being navigable.
|
|
156
|
-
*/
|
|
157
|
-
type StyleKind = "movement" | "tradition" | "market-idiom";
|
|
158
|
-
/**
|
|
159
|
-
* The named predicates a term may carry to another canonical term. Everything that is not ISA
|
|
160
|
-
* lives here, so `broaderSlug` never silently becomes a bag of loose associations.
|
|
161
|
-
*/
|
|
162
|
-
type RelationPredicate =
|
|
163
|
-
/** This element is physically a component of that element. */
|
|
164
|
-
"part-of"
|
|
165
|
-
/** This application or element is typically found in that space. */
|
|
166
|
-
| "typically-in"
|
|
167
|
-
/** This term is a material-suitability claim about that space. */
|
|
168
|
-
| "suitable-for"
|
|
169
|
-
/**
|
|
170
|
-
* The subject exists to serve that sector's market, wherever the building that contains it
|
|
171
|
-
* stands: a hotel room in a mixed-use tower still serves hospitality, an operating room serves
|
|
172
|
-
* healthcare whoever the landlord is. An IDENTITY claim, never an occurrence claim - "occurs
|
|
173
|
-
* only in that sector" is false for almost any room (a multifamily amenity floor holds
|
|
174
|
-
* restrooms, a commercial kitchen and a gym inside `sector.residential`), which is why most
|
|
175
|
-
* rooms rightly carry no edge.
|
|
176
|
-
*
|
|
177
|
-
* ABSENCE IS A CLAIM, NOT A GAP. A SPACE term carrying no serves edge and inheriting none
|
|
178
|
-
* through `broaderSlug` asserts that no market is part of its identity: it serves whatever
|
|
179
|
-
* market its project serves, and a consumer must read it as unrestricted - fail-open - never as
|
|
180
|
-
* a restriction nobody wrote down. What makes that reading safe is `MARKET_NEUTRAL_SPACES`
|
|
181
|
-
* (`axes/space/market-neutral.ts`, with the authoring criterion): every SPACE term either
|
|
182
|
-
* carries an edge or is registered there as reviewed-neutral, and the build fails naming any
|
|
183
|
-
* term that is neither. A reviewed absence and an unreviewed one cannot be confused - the same
|
|
184
|
-
* move `searchedWithout` and `usageWithheld` make.
|
|
2
|
+
* Taxonomy V1's complete public package surface.
|
|
185
3
|
*
|
|
186
|
-
*
|
|
187
|
-
*
|
|
188
|
-
* typology-to-sector edge dies on conversion - ADR 0001's converted warehouse full of flats is
|
|
189
|
-
* the standing counterexample.
|
|
4
|
+
* Identity is always a canonical HTTPS URI. The package exports declarative data and the types
|
|
5
|
+
* needed to consume it; resolution, traversal, ranking, and search policy live in adapters.
|
|
190
6
|
*/
|
|
191
|
-
|
|
192
|
-
|
|
193
|
-
| "evokes"
|
|
194
|
-
/** This style descends from that style. */
|
|
195
|
-
| "influenced-by"
|
|
196
|
-
/** This style is a deliberate blend of two or more named styles, and is defined by being so. */
|
|
197
|
-
| "blend-of"
|
|
198
|
-
/** This surface reads as a material it is not made of. */
|
|
199
|
-
| "reads-as"
|
|
200
|
-
/** Association with no stronger claim available. */
|
|
201
|
-
| "related-to";
|
|
202
|
-
|
|
203
|
-
declare const TAXONOMY_BASE_URI: "https://taxonomy.materialinstruments.com";
|
|
204
|
-
declare const TAXONOMY_SNAPSHOT: "2026-09-01";
|
|
205
|
-
declare const TAXONOMY_VERSION: "1.1.6";
|
|
206
|
-
type CanonicalConceptUri = `${typeof TAXONOMY_BASE_URI}/id/${string}`;
|
|
207
|
-
type LifecycleStatus = "active" | "deprecated";
|
|
208
|
-
interface Lifecycle {
|
|
209
|
-
introducedAt: string;
|
|
210
|
-
reviewedAt: string;
|
|
211
|
-
status: LifecycleStatus;
|
|
212
|
-
supersededBy?: CanonicalConceptUri;
|
|
213
|
-
}
|
|
214
|
-
interface Governance {
|
|
215
|
-
explanation: string;
|
|
216
|
-
lifecycle: Lifecycle;
|
|
217
|
-
provenance: TermProvenance;
|
|
218
|
-
steward: "@instruments/taxonomy";
|
|
219
|
-
}
|
|
220
|
-
interface AxisNode {
|
|
221
|
-
boundary: string;
|
|
222
|
-
gap?: string;
|
|
223
|
-
governance: Governance;
|
|
224
|
-
kind: "axis";
|
|
225
|
-
label: string;
|
|
226
|
-
lifecycle: Lifecycle;
|
|
227
|
-
order: number;
|
|
228
|
-
provenance: TermProvenance;
|
|
229
|
-
question: string;
|
|
230
|
-
slug: string;
|
|
231
|
-
status: "authored" | "declared";
|
|
232
|
-
uri: string;
|
|
233
|
-
}
|
|
234
|
-
interface FacetNode {
|
|
235
|
-
axis: string;
|
|
236
|
-
governance: Governance;
|
|
237
|
-
kind: "facet";
|
|
238
|
-
label: string;
|
|
239
|
-
lifecycle: Lifecycle;
|
|
240
|
-
order: number;
|
|
241
|
-
provenance: TermProvenance;
|
|
242
|
-
slug: string;
|
|
243
|
-
uri: string;
|
|
244
|
-
}
|
|
245
|
-
interface ExternalReference {
|
|
246
|
-
authority: "aat" | "uniclass" | "wikidata";
|
|
247
|
-
identifier: string;
|
|
248
|
-
label: string;
|
|
249
|
-
match: ExternalMapping["match"];
|
|
250
|
-
}
|
|
251
|
-
interface ConceptNode {
|
|
252
|
-
altLabels?: readonly string[];
|
|
253
|
-
axis: string;
|
|
254
|
-
definition?: string;
|
|
255
|
-
externalReferences?: readonly ExternalReference[];
|
|
256
|
-
facet: string;
|
|
257
|
-
governance: Governance;
|
|
258
|
-
governedBy: "taxonomy";
|
|
259
|
-
kind: "concept";
|
|
260
|
-
label: string;
|
|
261
|
-
lifecycle: Lifecycle;
|
|
262
|
-
note?: string;
|
|
263
|
-
order: number;
|
|
264
|
-
provenance: TermProvenance;
|
|
265
|
-
rank?: number;
|
|
266
|
-
searchedWithout?: readonly SearchedWithout[];
|
|
267
|
-
seenAs?: readonly string[];
|
|
268
|
-
slug: string;
|
|
269
|
-
span?: PeriodSpan;
|
|
270
|
-
styleKind?: StyleKind;
|
|
271
|
-
uri: CanonicalConceptUri;
|
|
272
|
-
usage?: TermUsage;
|
|
273
|
-
usageWithheld?: UsageWithheld;
|
|
274
|
-
}
|
|
275
|
-
type KnowledgeGraphNode = AxisNode | FacetNode | ConceptNode;
|
|
276
|
-
type GraphPredicate = RelationPredicate | "belongs-to-axis" | "belongs-to-facet" | "broader" | "narrower" | "has-concept" | "has-facet" | "has-part" | "typically-contains" | "supported-by" | "served-by" | "evoked-by" | "influences" | "blended-into" | "reading-of";
|
|
277
|
-
interface KnowledgeGraphEdge {
|
|
278
|
-
assertion: "asserted" | "inverse";
|
|
279
|
-
from: string;
|
|
280
|
-
governance: Governance;
|
|
281
|
-
lifecycle: Lifecycle;
|
|
282
|
-
predicate: GraphPredicate;
|
|
283
|
-
provenance: TermProvenance;
|
|
284
|
-
role?: "constitutive" | "accent";
|
|
285
|
-
to: string;
|
|
286
|
-
}
|
|
287
|
-
interface KnowledgeGraph {
|
|
288
|
-
edges: readonly KnowledgeGraphEdge[];
|
|
289
|
-
nodes: readonly KnowledgeGraphNode[];
|
|
290
|
-
}
|
|
291
|
-
declare const KNOWLEDGE_GRAPH: KnowledgeGraph;
|
|
292
|
-
interface TaxonomyTarget {
|
|
293
|
-
authority: "taxonomy";
|
|
294
|
-
role?: "primary" | "secondary";
|
|
295
|
-
uri: CanonicalConceptUri;
|
|
296
|
-
}
|
|
297
|
-
declare const COLOR_SCOPE_REFERENCE_KINDS: readonly ["chroma-level", "color-family", "lightness-level", "named-color", "palette-mood", "temperature-level"];
|
|
298
|
-
type ColorScopeReferenceKind = (typeof COLOR_SCOPE_REFERENCE_KINDS)[number];
|
|
299
|
-
interface ColorScopeTarget {
|
|
300
|
-
authority: "colorscope";
|
|
301
|
-
authorityUri: "https://colorscope.materialinstruments.com";
|
|
302
|
-
identifier: string;
|
|
303
|
-
referenceKind: ColorScopeReferenceKind;
|
|
304
|
-
role?: "primary" | "secondary";
|
|
305
|
-
}
|
|
306
|
-
type LexicalTarget = TaxonomyTarget | ColorScopeTarget;
|
|
307
|
-
type LexicalContext = "colour" | "material";
|
|
308
|
-
interface LexicalBase {
|
|
309
|
-
explanation: string;
|
|
310
|
-
governance: Governance;
|
|
311
|
-
phrase: string;
|
|
312
|
-
}
|
|
313
|
-
type LexicalEntry = (LexicalBase & {
|
|
314
|
-
outcome: "equivalent";
|
|
315
|
-
target: LexicalTarget;
|
|
316
|
-
}) | (LexicalBase & {
|
|
317
|
-
contextualPreferences?: readonly {
|
|
318
|
-
context: LexicalContext;
|
|
319
|
-
target: LexicalTarget;
|
|
320
|
-
}[];
|
|
321
|
-
/** An explicitly authored default reading; never inferred from array order. */
|
|
322
|
-
defaultTarget?: LexicalTarget;
|
|
323
|
-
outcome: "ambiguous";
|
|
324
|
-
readings: readonly [LexicalTarget, LexicalTarget, ...LexicalTarget[]];
|
|
325
|
-
}) | (LexicalBase & {
|
|
326
|
-
outcome: "declined";
|
|
327
|
-
reason: string;
|
|
328
|
-
});
|
|
329
|
-
/** Declarative readings only. Consumers choose indexing and application behaviour. */
|
|
330
|
-
declare const LEXICAL_ENTRIES: readonly LexicalEntry[];
|
|
331
|
-
/** Content address for CI drift checks; changes whenever the public corpus representation changes. */
|
|
332
|
-
declare const TAXONOMY_CORPUS_REVISION: string;
|
|
333
|
-
declare const TAXONOMY_CORPUS_METADATA: {
|
|
334
|
-
readonly edgeCount: number;
|
|
335
|
-
readonly lexicalEntryCount: number;
|
|
336
|
-
readonly nodeCount: number;
|
|
337
|
-
readonly revision: string;
|
|
338
|
-
readonly snapshot: "2026-09-01";
|
|
339
|
-
readonly version: "1.1.6";
|
|
340
|
-
};
|
|
341
|
-
|
|
342
|
-
export { type AxisNode, COLOR_SCOPE_REFERENCE_KINDS, type CanonicalConceptUri, type ColorScopeReferenceKind, type ColorScopeTarget, type ConceptNode, type ExternalReference, type FacetNode, type Governance, type GraphPredicate, KNOWLEDGE_GRAPH, type KnowledgeGraph, type KnowledgeGraphEdge, type KnowledgeGraphNode, LEXICAL_ENTRIES, type LexicalContext, type LexicalEntry, type LexicalTarget, type Lifecycle, type LifecycleStatus, type PeriodSpan, type SearchedWithout, type StyleKind, TAXONOMY_BASE_URI, TAXONOMY_CORPUS_METADATA, TAXONOMY_CORPUS_REVISION, TAXONOMY_SNAPSHOT, TAXONOMY_VERSION, type TaxonomyTarget, type TermProvenance, type TermUsage, type UsageWithheld };
|
|
7
|
+
export { type AxisNode, type CanonicalConceptUri, COLOR_SCOPE_REFERENCE_KINDS, type ColorScopeReferenceKind, type ColorScopeTarget, type ConceptNode, type ExternalReference, type FacetNode, type Governance, type GraphPredicate, type KnowledgeGraph, type KnowledgeGraphEdge, type KnowledgeGraphNode, KNOWLEDGE_GRAPH, type LexicalEntry, type LexicalContext, LEXICAL_ENTRIES, type Lifecycle, type LifecycleStatus, type LexicalTarget, TAXONOMY_BASE_URI, TAXONOMY_CORPUS_METADATA, TAXONOMY_CORPUS_REVISION, TAXONOMY_SNAPSHOT, TAXONOMY_VERSION, type TaxonomyTarget, } from "./v1.js";
|
|
8
|
+
export type { ElementPlacement, PeriodSpan, SearchedWithout, StyleKind, TermProvenance, TermUsage, UsageWithheld, } from "./term.js";
|