@_linked/translation 0.8.0 → 0.8.2

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.
@@ -15,198 +15,198 @@ export declare var loadData: () => Promise<{
15
15
  * `https://linked.cm/ont/translation/TranslationKey` and the prefix is
16
16
  * `translation:`. Before 0.5.0 this was `https://id.linked.cm/translation/vocab#`.
17
17
  */
18
- export declare var ns: (term: string) => import("@_linked/core/utils/NodeReference").NodeReferenceValue;
19
- export declare var _self: import("@_linked/core/utils/NodeReference").NodeReferenceValue;
20
- export declare var TranslationKey: import("@_linked/core/utils/NodeReference").NodeReferenceValue;
21
- export declare var TranslationKeyVersion: import("@_linked/core/utils/NodeReference").NodeReferenceValue;
22
- export declare var TranslationRelease: import("@_linked/core/utils/NodeReference").NodeReferenceValue;
23
- export declare var TranslationUnit: import("@_linked/core/utils/NodeReference").NodeReferenceValue;
24
- export declare var TranslationRevision: import("@_linked/core/utils/NodeReference").NodeReferenceValue;
25
- export declare var GlossaryTerm: import("@_linked/core/utils/NodeReference").NodeReferenceValue;
26
- export declare var TranslationInventoryOrigin: import("@_linked/core/utils/NodeReference").NodeReferenceValue;
27
- export declare var TranslationLanguage: import("@_linked/core/utils/NodeReference").NodeReferenceValue;
28
- export declare var languageIdentifier: import("@_linked/core/utils/NodeReference").NodeReferenceValue;
29
- export declare var languageCode: import("@_linked/core/utils/NodeReference").NodeReferenceValue;
30
- export declare var nativeName: import("@_linked/core/utils/NodeReference").NodeReferenceValue;
31
- export declare var englishName: import("@_linked/core/utils/NodeReference").NodeReferenceValue;
32
- export declare var textDirection: import("@_linked/core/utils/NodeReference").NodeReferenceValue;
33
- export declare var parentLanguage: import("@_linked/core/utils/NodeReference").NodeReferenceValue;
34
- export declare var fallbackLanguage: import("@_linked/core/utils/NodeReference").NodeReferenceValue;
35
- export declare var languageEnabled: import("@_linked/core/utils/NodeReference").NodeReferenceValue;
36
- export declare var languageSupported: import("@_linked/core/utils/NodeReference").NodeReferenceValue;
37
- export declare var namespace: import("@_linked/core/utils/NodeReference").NodeReferenceValue;
38
- export declare var key: import("@_linked/core/utils/NodeReference").NodeReferenceValue;
39
- export declare var sourceText: import("@_linked/core/utils/NodeReference").NodeReferenceValue;
40
- export declare var description: import("@_linked/core/utils/NodeReference").NodeReferenceValue;
41
- export declare var kind: import("@_linked/core/utils/NodeReference").NodeReferenceValue;
42
- export declare var ofApplication: import("@_linked/core/utils/NodeReference").NodeReferenceValue;
43
- export declare var ofNode: import("@_linked/core/utils/NodeReference").NodeReferenceValue;
44
- export declare var ofField: import("@_linked/core/utils/NodeReference").NodeReferenceValue;
45
- export declare var ofShape: import("@_linked/core/utils/NodeReference").NodeReferenceValue;
46
- export declare var ofProperty: import("@_linked/core/utils/NodeReference").NodeReferenceValue;
47
- export declare var ofResource: import("@_linked/core/utils/NodeReference").NodeReferenceValue;
48
- export declare var fromPackage: import("@_linked/core/utils/NodeReference").NodeReferenceValue;
49
- export declare var overridden: import("@_linked/core/utils/NodeReference").NodeReferenceValue;
50
- export declare var shapeSource: import("@_linked/core/utils/NodeReference").NodeReferenceValue;
51
- export declare var format: import("@_linked/core/utils/NodeReference").NodeReferenceValue;
52
- export declare var currentVersion: import("@_linked/core/utils/NodeReference").NodeReferenceValue;
53
- export declare var versionId: import("@_linked/core/utils/NodeReference").NodeReferenceValue;
54
- export declare var sourceLanguage: import("@_linked/core/utils/NodeReference").NodeReferenceValue;
55
- export declare var argumentSignature: import("@_linked/core/utils/NodeReference").NodeReferenceValue;
56
- export declare var contractHash: import("@_linked/core/utils/NodeReference").NodeReferenceValue;
57
- export declare var sourceHash: import("@_linked/core/utils/NodeReference").NodeReferenceValue;
58
- export declare var supersedes: import("@_linked/core/utils/NodeReference").NodeReferenceValue;
59
- export declare var createdBy: import("@_linked/core/utils/NodeReference").NodeReferenceValue;
60
- export declare var branch: import("@_linked/core/utils/NodeReference").NodeReferenceValue;
61
- export declare var releaseId: import("@_linked/core/utils/NodeReference").NodeReferenceValue;
62
- export declare var buildId: import("@_linked/core/utils/NodeReference").NodeReferenceValue;
63
- export declare var channel: import("@_linked/core/utils/NodeReference").NodeReferenceValue;
64
- export declare var contractSetHash: import("@_linked/core/utils/NodeReference").NodeReferenceValue;
65
- export declare var manifestHash: import("@_linked/core/utils/NodeReference").NodeReferenceValue;
66
- export declare var hotfixSequence: import("@_linked/core/utils/NodeReference").NodeReferenceValue;
67
- export declare var publishedAt: import("@_linked/core/utils/NodeReference").NodeReferenceValue;
68
- export declare var supportedUntil: import("@_linked/core/utils/NodeReference").NodeReferenceValue;
69
- export declare var qualitySummary: import("@_linked/core/utils/NodeReference").NodeReferenceValue;
70
- export declare var languages: import("@_linked/core/utils/NodeReference").NodeReferenceValue;
71
- export declare var defaultLanguage: import("@_linked/core/utils/NodeReference").NodeReferenceValue;
72
- export declare var cdnTarget: import("@_linked/core/utils/NodeReference").NodeReferenceValue;
73
- export declare var autoPublish: import("@_linked/core/utils/NodeReference").NodeReferenceValue;
74
- export declare var reviewedOnlyLanguage: import("@_linked/core/utils/NodeReference").NodeReferenceValue;
75
- export declare var mtDefault: import("@_linked/core/utils/NodeReference").NodeReferenceValue;
76
- export declare var mtFormality: import("@_linked/core/utils/NodeReference").NodeReferenceValue;
77
- export declare var mtStyleNote: import("@_linked/core/utils/NodeReference").NodeReferenceValue;
78
- export declare var ofKey: import("@_linked/core/utils/NodeReference").NodeReferenceValue;
79
- export declare var ofKeyVersion: import("@_linked/core/utils/NodeReference").NodeReferenceValue;
80
- export declare var language: import("@_linked/core/utils/NodeReference").NodeReferenceValue;
81
- export declare var text: import("@_linked/core/utils/NodeReference").NodeReferenceValue;
82
- export declare var state: import("@_linked/core/utils/NodeReference").NodeReferenceValue;
83
- export declare var updatedAt: import("@_linked/core/utils/NodeReference").NodeReferenceValue;
84
- export declare var updatedBy: import("@_linked/core/utils/NodeReference").NodeReferenceValue;
85
- export declare var origin: import("@_linked/core/utils/NodeReference").NodeReferenceValue;
86
- export declare var status: import("@_linked/core/utils/NodeReference").NodeReferenceValue;
87
- export declare var author: import("@_linked/core/utils/NodeReference").NodeReferenceValue;
88
- export declare var authorKind: import("@_linked/core/utils/NodeReference").NodeReferenceValue;
89
- export declare var mtProvider: import("@_linked/core/utils/NodeReference").NodeReferenceValue;
90
- export declare var basedOnText: import("@_linked/core/utils/NodeReference").NodeReferenceValue;
91
- export declare var note: import("@_linked/core/utils/NodeReference").NodeReferenceValue;
92
- export declare var createdAt: import("@_linked/core/utils/NodeReference").NodeReferenceValue;
93
- export declare var decidedAt: import("@_linked/core/utils/NodeReference").NodeReferenceValue;
94
- export declare var decidedBy: import("@_linked/core/utils/NodeReference").NodeReferenceValue;
95
- export declare var term: import("@_linked/core/utils/NodeReference").NodeReferenceValue;
96
- export declare var glossaryTranslation: import("@_linked/core/utils/NodeReference").NodeReferenceValue;
97
- export declare var glossaryLanguage: import("@_linked/core/utils/NodeReference").NodeReferenceValue;
98
- export declare var termType: import("@_linked/core/utils/NodeReference").NodeReferenceValue;
99
- export declare var useInstead: import("@_linked/core/utils/NodeReference").NodeReferenceValue;
100
- export declare var caseSensitive: import("@_linked/core/utils/NodeReference").NodeReferenceValue;
101
- export declare var inventoryBranch: import("@_linked/core/utils/NodeReference").NodeReferenceValue;
102
- export declare var inventoryIdentity: import("@_linked/core/utils/NodeReference").NodeReferenceValue;
103
- export declare var inventoryStatus: import("@_linked/core/utils/NodeReference").NodeReferenceValue;
104
- export declare var inventorySource: import("@_linked/core/utils/NodeReference").NodeReferenceValue;
105
- export declare var inventorySourceId: import("@_linked/core/utils/NodeReference").NodeReferenceValue;
106
- export declare var inventoryAuthoritative: import("@_linked/core/utils/NodeReference").NodeReferenceValue;
107
- export declare var inventoryFile: import("@_linked/core/utils/NodeReference").NodeReferenceValue;
108
- export declare var inventoryLine: import("@_linked/core/utils/NodeReference").NodeReferenceValue;
109
- export declare var inventoryOwner: import("@_linked/core/utils/NodeReference").NodeReferenceValue;
110
- export declare var inventoryShape: import("@_linked/core/utils/NodeReference").NodeReferenceValue;
111
- export declare var inventoryProperty: import("@_linked/core/utils/NodeReference").NodeReferenceValue;
112
- export declare var inventoryNode: import("@_linked/core/utils/NodeReference").NodeReferenceValue;
113
- export declare var inventoryTargetClass: import("@_linked/core/utils/NodeReference").NodeReferenceValue;
114
- export declare var inventoryObservedAt: import("@_linked/core/utils/NodeReference").NodeReferenceValue;
18
+ export declare var ns: (term: string) => import("@_linked/core/utils/NodeReference.js").NodeReferenceValue;
19
+ export declare var _self: import("@_linked/core/utils/NodeReference.js").NodeReferenceValue;
20
+ export declare var TranslationKey: import("@_linked/core/utils/NodeReference.js").NodeReferenceValue;
21
+ export declare var TranslationKeyVersion: import("@_linked/core/utils/NodeReference.js").NodeReferenceValue;
22
+ export declare var TranslationRelease: import("@_linked/core/utils/NodeReference.js").NodeReferenceValue;
23
+ export declare var TranslationUnit: import("@_linked/core/utils/NodeReference.js").NodeReferenceValue;
24
+ export declare var TranslationRevision: import("@_linked/core/utils/NodeReference.js").NodeReferenceValue;
25
+ export declare var GlossaryTerm: import("@_linked/core/utils/NodeReference.js").NodeReferenceValue;
26
+ export declare var TranslationInventoryOrigin: import("@_linked/core/utils/NodeReference.js").NodeReferenceValue;
27
+ export declare var TranslationLanguage: import("@_linked/core/utils/NodeReference.js").NodeReferenceValue;
28
+ export declare var languageIdentifier: import("@_linked/core/utils/NodeReference.js").NodeReferenceValue;
29
+ export declare var languageCode: import("@_linked/core/utils/NodeReference.js").NodeReferenceValue;
30
+ export declare var nativeName: import("@_linked/core/utils/NodeReference.js").NodeReferenceValue;
31
+ export declare var englishName: import("@_linked/core/utils/NodeReference.js").NodeReferenceValue;
32
+ export declare var textDirection: import("@_linked/core/utils/NodeReference.js").NodeReferenceValue;
33
+ export declare var parentLanguage: import("@_linked/core/utils/NodeReference.js").NodeReferenceValue;
34
+ export declare var fallbackLanguage: import("@_linked/core/utils/NodeReference.js").NodeReferenceValue;
35
+ export declare var languageEnabled: import("@_linked/core/utils/NodeReference.js").NodeReferenceValue;
36
+ export declare var languageSupported: import("@_linked/core/utils/NodeReference.js").NodeReferenceValue;
37
+ export declare var namespace: import("@_linked/core/utils/NodeReference.js").NodeReferenceValue;
38
+ export declare var key: import("@_linked/core/utils/NodeReference.js").NodeReferenceValue;
39
+ export declare var sourceText: import("@_linked/core/utils/NodeReference.js").NodeReferenceValue;
40
+ export declare var description: import("@_linked/core/utils/NodeReference.js").NodeReferenceValue;
41
+ export declare var kind: import("@_linked/core/utils/NodeReference.js").NodeReferenceValue;
42
+ export declare var ofApplication: import("@_linked/core/utils/NodeReference.js").NodeReferenceValue;
43
+ export declare var ofNode: import("@_linked/core/utils/NodeReference.js").NodeReferenceValue;
44
+ export declare var ofField: import("@_linked/core/utils/NodeReference.js").NodeReferenceValue;
45
+ export declare var ofShape: import("@_linked/core/utils/NodeReference.js").NodeReferenceValue;
46
+ export declare var ofProperty: import("@_linked/core/utils/NodeReference.js").NodeReferenceValue;
47
+ export declare var ofResource: import("@_linked/core/utils/NodeReference.js").NodeReferenceValue;
48
+ export declare var fromPackage: import("@_linked/core/utils/NodeReference.js").NodeReferenceValue;
49
+ export declare var overridden: import("@_linked/core/utils/NodeReference.js").NodeReferenceValue;
50
+ export declare var shapeSource: import("@_linked/core/utils/NodeReference.js").NodeReferenceValue;
51
+ export declare var format: import("@_linked/core/utils/NodeReference.js").NodeReferenceValue;
52
+ export declare var currentVersion: import("@_linked/core/utils/NodeReference.js").NodeReferenceValue;
53
+ export declare var versionId: import("@_linked/core/utils/NodeReference.js").NodeReferenceValue;
54
+ export declare var sourceLanguage: import("@_linked/core/utils/NodeReference.js").NodeReferenceValue;
55
+ export declare var argumentSignature: import("@_linked/core/utils/NodeReference.js").NodeReferenceValue;
56
+ export declare var contractHash: import("@_linked/core/utils/NodeReference.js").NodeReferenceValue;
57
+ export declare var sourceHash: import("@_linked/core/utils/NodeReference.js").NodeReferenceValue;
58
+ export declare var supersedes: import("@_linked/core/utils/NodeReference.js").NodeReferenceValue;
59
+ export declare var createdBy: import("@_linked/core/utils/NodeReference.js").NodeReferenceValue;
60
+ export declare var branch: import("@_linked/core/utils/NodeReference.js").NodeReferenceValue;
61
+ export declare var releaseId: import("@_linked/core/utils/NodeReference.js").NodeReferenceValue;
62
+ export declare var buildId: import("@_linked/core/utils/NodeReference.js").NodeReferenceValue;
63
+ export declare var channel: import("@_linked/core/utils/NodeReference.js").NodeReferenceValue;
64
+ export declare var contractSetHash: import("@_linked/core/utils/NodeReference.js").NodeReferenceValue;
65
+ export declare var manifestHash: import("@_linked/core/utils/NodeReference.js").NodeReferenceValue;
66
+ export declare var hotfixSequence: import("@_linked/core/utils/NodeReference.js").NodeReferenceValue;
67
+ export declare var publishedAt: import("@_linked/core/utils/NodeReference.js").NodeReferenceValue;
68
+ export declare var supportedUntil: import("@_linked/core/utils/NodeReference.js").NodeReferenceValue;
69
+ export declare var qualitySummary: import("@_linked/core/utils/NodeReference.js").NodeReferenceValue;
70
+ export declare var languages: import("@_linked/core/utils/NodeReference.js").NodeReferenceValue;
71
+ export declare var defaultLanguage: import("@_linked/core/utils/NodeReference.js").NodeReferenceValue;
72
+ export declare var cdnTarget: import("@_linked/core/utils/NodeReference.js").NodeReferenceValue;
73
+ export declare var autoPublish: import("@_linked/core/utils/NodeReference.js").NodeReferenceValue;
74
+ export declare var reviewedOnlyLanguage: import("@_linked/core/utils/NodeReference.js").NodeReferenceValue;
75
+ export declare var mtDefault: import("@_linked/core/utils/NodeReference.js").NodeReferenceValue;
76
+ export declare var mtFormality: import("@_linked/core/utils/NodeReference.js").NodeReferenceValue;
77
+ export declare var mtStyleNote: import("@_linked/core/utils/NodeReference.js").NodeReferenceValue;
78
+ export declare var ofKey: import("@_linked/core/utils/NodeReference.js").NodeReferenceValue;
79
+ export declare var ofKeyVersion: import("@_linked/core/utils/NodeReference.js").NodeReferenceValue;
80
+ export declare var language: import("@_linked/core/utils/NodeReference.js").NodeReferenceValue;
81
+ export declare var text: import("@_linked/core/utils/NodeReference.js").NodeReferenceValue;
82
+ export declare var state: import("@_linked/core/utils/NodeReference.js").NodeReferenceValue;
83
+ export declare var updatedAt: import("@_linked/core/utils/NodeReference.js").NodeReferenceValue;
84
+ export declare var updatedBy: import("@_linked/core/utils/NodeReference.js").NodeReferenceValue;
85
+ export declare var origin: import("@_linked/core/utils/NodeReference.js").NodeReferenceValue;
86
+ export declare var status: import("@_linked/core/utils/NodeReference.js").NodeReferenceValue;
87
+ export declare var author: import("@_linked/core/utils/NodeReference.js").NodeReferenceValue;
88
+ export declare var authorKind: import("@_linked/core/utils/NodeReference.js").NodeReferenceValue;
89
+ export declare var mtProvider: import("@_linked/core/utils/NodeReference.js").NodeReferenceValue;
90
+ export declare var basedOnText: import("@_linked/core/utils/NodeReference.js").NodeReferenceValue;
91
+ export declare var note: import("@_linked/core/utils/NodeReference.js").NodeReferenceValue;
92
+ export declare var createdAt: import("@_linked/core/utils/NodeReference.js").NodeReferenceValue;
93
+ export declare var decidedAt: import("@_linked/core/utils/NodeReference.js").NodeReferenceValue;
94
+ export declare var decidedBy: import("@_linked/core/utils/NodeReference.js").NodeReferenceValue;
95
+ export declare var term: import("@_linked/core/utils/NodeReference.js").NodeReferenceValue;
96
+ export declare var glossaryTranslation: import("@_linked/core/utils/NodeReference.js").NodeReferenceValue;
97
+ export declare var glossaryLanguage: import("@_linked/core/utils/NodeReference.js").NodeReferenceValue;
98
+ export declare var termType: import("@_linked/core/utils/NodeReference.js").NodeReferenceValue;
99
+ export declare var useInstead: import("@_linked/core/utils/NodeReference.js").NodeReferenceValue;
100
+ export declare var caseSensitive: import("@_linked/core/utils/NodeReference.js").NodeReferenceValue;
101
+ export declare var inventoryBranch: import("@_linked/core/utils/NodeReference.js").NodeReferenceValue;
102
+ export declare var inventoryIdentity: import("@_linked/core/utils/NodeReference.js").NodeReferenceValue;
103
+ export declare var inventoryStatus: import("@_linked/core/utils/NodeReference.js").NodeReferenceValue;
104
+ export declare var inventorySource: import("@_linked/core/utils/NodeReference.js").NodeReferenceValue;
105
+ export declare var inventorySourceId: import("@_linked/core/utils/NodeReference.js").NodeReferenceValue;
106
+ export declare var inventoryAuthoritative: import("@_linked/core/utils/NodeReference.js").NodeReferenceValue;
107
+ export declare var inventoryFile: import("@_linked/core/utils/NodeReference.js").NodeReferenceValue;
108
+ export declare var inventoryLine: import("@_linked/core/utils/NodeReference.js").NodeReferenceValue;
109
+ export declare var inventoryOwner: import("@_linked/core/utils/NodeReference.js").NodeReferenceValue;
110
+ export declare var inventoryShape: import("@_linked/core/utils/NodeReference.js").NodeReferenceValue;
111
+ export declare var inventoryProperty: import("@_linked/core/utils/NodeReference.js").NodeReferenceValue;
112
+ export declare var inventoryNode: import("@_linked/core/utils/NodeReference.js").NodeReferenceValue;
113
+ export declare var inventoryTargetClass: import("@_linked/core/utils/NodeReference.js").NodeReferenceValue;
114
+ export declare var inventoryObservedAt: import("@_linked/core/utils/NodeReference.js").NodeReferenceValue;
115
115
  /** Grouped export for prefix/name access. */
116
116
  export declare const tr: {
117
- TranslationLanguage: import("@_linked/core/utils/NodeReference").NodeReferenceValue;
118
- languageIdentifier: import("@_linked/core/utils/NodeReference").NodeReferenceValue;
119
- languageCode: import("@_linked/core/utils/NodeReference").NodeReferenceValue;
120
- nativeName: import("@_linked/core/utils/NodeReference").NodeReferenceValue;
121
- englishName: import("@_linked/core/utils/NodeReference").NodeReferenceValue;
122
- textDirection: import("@_linked/core/utils/NodeReference").NodeReferenceValue;
123
- parentLanguage: import("@_linked/core/utils/NodeReference").NodeReferenceValue;
124
- fallbackLanguage: import("@_linked/core/utils/NodeReference").NodeReferenceValue;
125
- languageEnabled: import("@_linked/core/utils/NodeReference").NodeReferenceValue;
126
- languageSupported: import("@_linked/core/utils/NodeReference").NodeReferenceValue;
127
- TranslationKey: import("@_linked/core/utils/NodeReference").NodeReferenceValue;
128
- TranslationKeyVersion: import("@_linked/core/utils/NodeReference").NodeReferenceValue;
129
- TranslationRelease: import("@_linked/core/utils/NodeReference").NodeReferenceValue;
130
- TranslationUnit: import("@_linked/core/utils/NodeReference").NodeReferenceValue;
131
- TranslationRevision: import("@_linked/core/utils/NodeReference").NodeReferenceValue;
132
- GlossaryTerm: import("@_linked/core/utils/NodeReference").NodeReferenceValue;
133
- TranslationInventoryOrigin: import("@_linked/core/utils/NodeReference").NodeReferenceValue;
134
- namespace: import("@_linked/core/utils/NodeReference").NodeReferenceValue;
135
- key: import("@_linked/core/utils/NodeReference").NodeReferenceValue;
136
- sourceText: import("@_linked/core/utils/NodeReference").NodeReferenceValue;
137
- description: import("@_linked/core/utils/NodeReference").NodeReferenceValue;
138
- kind: import("@_linked/core/utils/NodeReference").NodeReferenceValue;
139
- ofApplication: import("@_linked/core/utils/NodeReference").NodeReferenceValue;
140
- ofNode: import("@_linked/core/utils/NodeReference").NodeReferenceValue;
141
- ofField: import("@_linked/core/utils/NodeReference").NodeReferenceValue;
142
- ofShape: import("@_linked/core/utils/NodeReference").NodeReferenceValue;
143
- ofProperty: import("@_linked/core/utils/NodeReference").NodeReferenceValue;
144
- ofResource: import("@_linked/core/utils/NodeReference").NodeReferenceValue;
145
- fromPackage: import("@_linked/core/utils/NodeReference").NodeReferenceValue;
146
- overridden: import("@_linked/core/utils/NodeReference").NodeReferenceValue;
147
- shapeSource: import("@_linked/core/utils/NodeReference").NodeReferenceValue;
148
- format: import("@_linked/core/utils/NodeReference").NodeReferenceValue;
149
- currentVersion: import("@_linked/core/utils/NodeReference").NodeReferenceValue;
150
- versionId: import("@_linked/core/utils/NodeReference").NodeReferenceValue;
151
- sourceLanguage: import("@_linked/core/utils/NodeReference").NodeReferenceValue;
152
- argumentSignature: import("@_linked/core/utils/NodeReference").NodeReferenceValue;
153
- contractHash: import("@_linked/core/utils/NodeReference").NodeReferenceValue;
154
- sourceHash: import("@_linked/core/utils/NodeReference").NodeReferenceValue;
155
- supersedes: import("@_linked/core/utils/NodeReference").NodeReferenceValue;
156
- createdBy: import("@_linked/core/utils/NodeReference").NodeReferenceValue;
157
- branch: import("@_linked/core/utils/NodeReference").NodeReferenceValue;
158
- releaseId: import("@_linked/core/utils/NodeReference").NodeReferenceValue;
159
- buildId: import("@_linked/core/utils/NodeReference").NodeReferenceValue;
160
- channel: import("@_linked/core/utils/NodeReference").NodeReferenceValue;
161
- contractSetHash: import("@_linked/core/utils/NodeReference").NodeReferenceValue;
162
- manifestHash: import("@_linked/core/utils/NodeReference").NodeReferenceValue;
163
- hotfixSequence: import("@_linked/core/utils/NodeReference").NodeReferenceValue;
164
- publishedAt: import("@_linked/core/utils/NodeReference").NodeReferenceValue;
165
- supportedUntil: import("@_linked/core/utils/NodeReference").NodeReferenceValue;
166
- qualitySummary: import("@_linked/core/utils/NodeReference").NodeReferenceValue;
167
- languages: import("@_linked/core/utils/NodeReference").NodeReferenceValue;
168
- defaultLanguage: import("@_linked/core/utils/NodeReference").NodeReferenceValue;
169
- cdnTarget: import("@_linked/core/utils/NodeReference").NodeReferenceValue;
170
- autoPublish: import("@_linked/core/utils/NodeReference").NodeReferenceValue;
171
- reviewedOnlyLanguage: import("@_linked/core/utils/NodeReference").NodeReferenceValue;
172
- mtDefault: import("@_linked/core/utils/NodeReference").NodeReferenceValue;
173
- mtFormality: import("@_linked/core/utils/NodeReference").NodeReferenceValue;
174
- mtStyleNote: import("@_linked/core/utils/NodeReference").NodeReferenceValue;
175
- ofKey: import("@_linked/core/utils/NodeReference").NodeReferenceValue;
176
- ofKeyVersion: import("@_linked/core/utils/NodeReference").NodeReferenceValue;
177
- language: import("@_linked/core/utils/NodeReference").NodeReferenceValue;
178
- text: import("@_linked/core/utils/NodeReference").NodeReferenceValue;
179
- state: import("@_linked/core/utils/NodeReference").NodeReferenceValue;
180
- updatedAt: import("@_linked/core/utils/NodeReference").NodeReferenceValue;
181
- updatedBy: import("@_linked/core/utils/NodeReference").NodeReferenceValue;
182
- origin: import("@_linked/core/utils/NodeReference").NodeReferenceValue;
183
- status: import("@_linked/core/utils/NodeReference").NodeReferenceValue;
184
- author: import("@_linked/core/utils/NodeReference").NodeReferenceValue;
185
- authorKind: import("@_linked/core/utils/NodeReference").NodeReferenceValue;
186
- mtProvider: import("@_linked/core/utils/NodeReference").NodeReferenceValue;
187
- basedOnText: import("@_linked/core/utils/NodeReference").NodeReferenceValue;
188
- note: import("@_linked/core/utils/NodeReference").NodeReferenceValue;
189
- createdAt: import("@_linked/core/utils/NodeReference").NodeReferenceValue;
190
- decidedAt: import("@_linked/core/utils/NodeReference").NodeReferenceValue;
191
- decidedBy: import("@_linked/core/utils/NodeReference").NodeReferenceValue;
192
- term: import("@_linked/core/utils/NodeReference").NodeReferenceValue;
193
- glossaryTranslation: import("@_linked/core/utils/NodeReference").NodeReferenceValue;
194
- glossaryLanguage: import("@_linked/core/utils/NodeReference").NodeReferenceValue;
195
- termType: import("@_linked/core/utils/NodeReference").NodeReferenceValue;
196
- useInstead: import("@_linked/core/utils/NodeReference").NodeReferenceValue;
197
- caseSensitive: import("@_linked/core/utils/NodeReference").NodeReferenceValue;
198
- inventoryBranch: import("@_linked/core/utils/NodeReference").NodeReferenceValue;
199
- inventoryIdentity: import("@_linked/core/utils/NodeReference").NodeReferenceValue;
200
- inventoryStatus: import("@_linked/core/utils/NodeReference").NodeReferenceValue;
201
- inventorySource: import("@_linked/core/utils/NodeReference").NodeReferenceValue;
202
- inventorySourceId: import("@_linked/core/utils/NodeReference").NodeReferenceValue;
203
- inventoryAuthoritative: import("@_linked/core/utils/NodeReference").NodeReferenceValue;
204
- inventoryFile: import("@_linked/core/utils/NodeReference").NodeReferenceValue;
205
- inventoryLine: import("@_linked/core/utils/NodeReference").NodeReferenceValue;
206
- inventoryOwner: import("@_linked/core/utils/NodeReference").NodeReferenceValue;
207
- inventoryShape: import("@_linked/core/utils/NodeReference").NodeReferenceValue;
208
- inventoryProperty: import("@_linked/core/utils/NodeReference").NodeReferenceValue;
209
- inventoryNode: import("@_linked/core/utils/NodeReference").NodeReferenceValue;
210
- inventoryTargetClass: import("@_linked/core/utils/NodeReference").NodeReferenceValue;
211
- inventoryObservedAt: import("@_linked/core/utils/NodeReference").NodeReferenceValue;
117
+ TranslationLanguage: import("@_linked/core/utils/NodeReference.js").NodeReferenceValue;
118
+ languageIdentifier: import("@_linked/core/utils/NodeReference.js").NodeReferenceValue;
119
+ languageCode: import("@_linked/core/utils/NodeReference.js").NodeReferenceValue;
120
+ nativeName: import("@_linked/core/utils/NodeReference.js").NodeReferenceValue;
121
+ englishName: import("@_linked/core/utils/NodeReference.js").NodeReferenceValue;
122
+ textDirection: import("@_linked/core/utils/NodeReference.js").NodeReferenceValue;
123
+ parentLanguage: import("@_linked/core/utils/NodeReference.js").NodeReferenceValue;
124
+ fallbackLanguage: import("@_linked/core/utils/NodeReference.js").NodeReferenceValue;
125
+ languageEnabled: import("@_linked/core/utils/NodeReference.js").NodeReferenceValue;
126
+ languageSupported: import("@_linked/core/utils/NodeReference.js").NodeReferenceValue;
127
+ TranslationKey: import("@_linked/core/utils/NodeReference.js").NodeReferenceValue;
128
+ TranslationKeyVersion: import("@_linked/core/utils/NodeReference.js").NodeReferenceValue;
129
+ TranslationRelease: import("@_linked/core/utils/NodeReference.js").NodeReferenceValue;
130
+ TranslationUnit: import("@_linked/core/utils/NodeReference.js").NodeReferenceValue;
131
+ TranslationRevision: import("@_linked/core/utils/NodeReference.js").NodeReferenceValue;
132
+ GlossaryTerm: import("@_linked/core/utils/NodeReference.js").NodeReferenceValue;
133
+ TranslationInventoryOrigin: import("@_linked/core/utils/NodeReference.js").NodeReferenceValue;
134
+ namespace: import("@_linked/core/utils/NodeReference.js").NodeReferenceValue;
135
+ key: import("@_linked/core/utils/NodeReference.js").NodeReferenceValue;
136
+ sourceText: import("@_linked/core/utils/NodeReference.js").NodeReferenceValue;
137
+ description: import("@_linked/core/utils/NodeReference.js").NodeReferenceValue;
138
+ kind: import("@_linked/core/utils/NodeReference.js").NodeReferenceValue;
139
+ ofApplication: import("@_linked/core/utils/NodeReference.js").NodeReferenceValue;
140
+ ofNode: import("@_linked/core/utils/NodeReference.js").NodeReferenceValue;
141
+ ofField: import("@_linked/core/utils/NodeReference.js").NodeReferenceValue;
142
+ ofShape: import("@_linked/core/utils/NodeReference.js").NodeReferenceValue;
143
+ ofProperty: import("@_linked/core/utils/NodeReference.js").NodeReferenceValue;
144
+ ofResource: import("@_linked/core/utils/NodeReference.js").NodeReferenceValue;
145
+ fromPackage: import("@_linked/core/utils/NodeReference.js").NodeReferenceValue;
146
+ overridden: import("@_linked/core/utils/NodeReference.js").NodeReferenceValue;
147
+ shapeSource: import("@_linked/core/utils/NodeReference.js").NodeReferenceValue;
148
+ format: import("@_linked/core/utils/NodeReference.js").NodeReferenceValue;
149
+ currentVersion: import("@_linked/core/utils/NodeReference.js").NodeReferenceValue;
150
+ versionId: import("@_linked/core/utils/NodeReference.js").NodeReferenceValue;
151
+ sourceLanguage: import("@_linked/core/utils/NodeReference.js").NodeReferenceValue;
152
+ argumentSignature: import("@_linked/core/utils/NodeReference.js").NodeReferenceValue;
153
+ contractHash: import("@_linked/core/utils/NodeReference.js").NodeReferenceValue;
154
+ sourceHash: import("@_linked/core/utils/NodeReference.js").NodeReferenceValue;
155
+ supersedes: import("@_linked/core/utils/NodeReference.js").NodeReferenceValue;
156
+ createdBy: import("@_linked/core/utils/NodeReference.js").NodeReferenceValue;
157
+ branch: import("@_linked/core/utils/NodeReference.js").NodeReferenceValue;
158
+ releaseId: import("@_linked/core/utils/NodeReference.js").NodeReferenceValue;
159
+ buildId: import("@_linked/core/utils/NodeReference.js").NodeReferenceValue;
160
+ channel: import("@_linked/core/utils/NodeReference.js").NodeReferenceValue;
161
+ contractSetHash: import("@_linked/core/utils/NodeReference.js").NodeReferenceValue;
162
+ manifestHash: import("@_linked/core/utils/NodeReference.js").NodeReferenceValue;
163
+ hotfixSequence: import("@_linked/core/utils/NodeReference.js").NodeReferenceValue;
164
+ publishedAt: import("@_linked/core/utils/NodeReference.js").NodeReferenceValue;
165
+ supportedUntil: import("@_linked/core/utils/NodeReference.js").NodeReferenceValue;
166
+ qualitySummary: import("@_linked/core/utils/NodeReference.js").NodeReferenceValue;
167
+ languages: import("@_linked/core/utils/NodeReference.js").NodeReferenceValue;
168
+ defaultLanguage: import("@_linked/core/utils/NodeReference.js").NodeReferenceValue;
169
+ cdnTarget: import("@_linked/core/utils/NodeReference.js").NodeReferenceValue;
170
+ autoPublish: import("@_linked/core/utils/NodeReference.js").NodeReferenceValue;
171
+ reviewedOnlyLanguage: import("@_linked/core/utils/NodeReference.js").NodeReferenceValue;
172
+ mtDefault: import("@_linked/core/utils/NodeReference.js").NodeReferenceValue;
173
+ mtFormality: import("@_linked/core/utils/NodeReference.js").NodeReferenceValue;
174
+ mtStyleNote: import("@_linked/core/utils/NodeReference.js").NodeReferenceValue;
175
+ ofKey: import("@_linked/core/utils/NodeReference.js").NodeReferenceValue;
176
+ ofKeyVersion: import("@_linked/core/utils/NodeReference.js").NodeReferenceValue;
177
+ language: import("@_linked/core/utils/NodeReference.js").NodeReferenceValue;
178
+ text: import("@_linked/core/utils/NodeReference.js").NodeReferenceValue;
179
+ state: import("@_linked/core/utils/NodeReference.js").NodeReferenceValue;
180
+ updatedAt: import("@_linked/core/utils/NodeReference.js").NodeReferenceValue;
181
+ updatedBy: import("@_linked/core/utils/NodeReference.js").NodeReferenceValue;
182
+ origin: import("@_linked/core/utils/NodeReference.js").NodeReferenceValue;
183
+ status: import("@_linked/core/utils/NodeReference.js").NodeReferenceValue;
184
+ author: import("@_linked/core/utils/NodeReference.js").NodeReferenceValue;
185
+ authorKind: import("@_linked/core/utils/NodeReference.js").NodeReferenceValue;
186
+ mtProvider: import("@_linked/core/utils/NodeReference.js").NodeReferenceValue;
187
+ basedOnText: import("@_linked/core/utils/NodeReference.js").NodeReferenceValue;
188
+ note: import("@_linked/core/utils/NodeReference.js").NodeReferenceValue;
189
+ createdAt: import("@_linked/core/utils/NodeReference.js").NodeReferenceValue;
190
+ decidedAt: import("@_linked/core/utils/NodeReference.js").NodeReferenceValue;
191
+ decidedBy: import("@_linked/core/utils/NodeReference.js").NodeReferenceValue;
192
+ term: import("@_linked/core/utils/NodeReference.js").NodeReferenceValue;
193
+ glossaryTranslation: import("@_linked/core/utils/NodeReference.js").NodeReferenceValue;
194
+ glossaryLanguage: import("@_linked/core/utils/NodeReference.js").NodeReferenceValue;
195
+ termType: import("@_linked/core/utils/NodeReference.js").NodeReferenceValue;
196
+ useInstead: import("@_linked/core/utils/NodeReference.js").NodeReferenceValue;
197
+ caseSensitive: import("@_linked/core/utils/NodeReference.js").NodeReferenceValue;
198
+ inventoryBranch: import("@_linked/core/utils/NodeReference.js").NodeReferenceValue;
199
+ inventoryIdentity: import("@_linked/core/utils/NodeReference.js").NodeReferenceValue;
200
+ inventoryStatus: import("@_linked/core/utils/NodeReference.js").NodeReferenceValue;
201
+ inventorySource: import("@_linked/core/utils/NodeReference.js").NodeReferenceValue;
202
+ inventorySourceId: import("@_linked/core/utils/NodeReference.js").NodeReferenceValue;
203
+ inventoryAuthoritative: import("@_linked/core/utils/NodeReference.js").NodeReferenceValue;
204
+ inventoryFile: import("@_linked/core/utils/NodeReference.js").NodeReferenceValue;
205
+ inventoryLine: import("@_linked/core/utils/NodeReference.js").NodeReferenceValue;
206
+ inventoryOwner: import("@_linked/core/utils/NodeReference.js").NodeReferenceValue;
207
+ inventoryShape: import("@_linked/core/utils/NodeReference.js").NodeReferenceValue;
208
+ inventoryProperty: import("@_linked/core/utils/NodeReference.js").NodeReferenceValue;
209
+ inventoryNode: import("@_linked/core/utils/NodeReference.js").NodeReferenceValue;
210
+ inventoryTargetClass: import("@_linked/core/utils/NodeReference.js").NodeReferenceValue;
211
+ inventoryObservedAt: import("@_linked/core/utils/NodeReference.js").NodeReferenceValue;
212
212
  };
@@ -1,4 +1,4 @@
1
1
  export declare const linkedShape: {
2
- <T extends typeof import("@_linked/core/shapes/Shape").Shape>(constructor: T): void;
3
- <T extends typeof import("@_linked/core/shapes/Shape").Shape>(config?: import("@_linked/core/utils/Package").ShapeConfig): (constructor: T) => void;
4
- }, linkedUtil: (constructor: any) => any, linkedOntology: (allFileExports: any, nameSpace: (term: string) => import("@_linked/core/utils/NodeReference").NodeReferenceValue, suggestedPrefixAndFileName: string, loadDataFunction?: () => Promise<any>, dataSource?: string | string[]) => void, registerPackageExport: (exportedObject: any) => void, packageExports: any, packageName: string, getPackageShape: (name: string) => import("@_linked/core/shapes/Shape").ShapeConstructor | undefined;
2
+ <T extends typeof import("@_linked/core/shapes/Shape.js").Shape>(constructor: T): void;
3
+ <T extends typeof import("@_linked/core/shapes/Shape.js").Shape>(config?: import("@_linked/core/utils/Package").ShapeConfig): (constructor: T) => void;
4
+ }, linkedUtil: (constructor: any) => any, linkedOntology: (allFileExports: any, nameSpace: (term: string) => import("@_linked/core/utils/NodeReference.js").NodeReferenceValue, suggestedPrefixAndFileName: string, loadDataFunction?: () => Promise<any>, dataSource?: string | string[]) => void, registerPackageExport: (exportedObject: any) => void, packageExports: any, packageName: string, getPackageShape: (name: string) => import("@_linked/core/shapes/Shape.js").ShapeConstructor | undefined;
package/lib/esm/react.js CHANGED
@@ -1,4 +1,5 @@
1
1
  import { jsx as _jsx, Fragment as _Fragment } from "react/jsx-runtime";
2
+ import { sharedState } from '@_linked/core/utils/sharedState';
2
3
  import { languageFallbacks, } from './languages.js';
3
4
  import { createContext, startTransition, useCallback, useContext, useEffect, useMemo, useState, useSyncExternalStore, } from 'react';
4
5
  import { directionFor, pseudoExpand, pseudoLocalize, translate, } from './core/messages.js';
@@ -23,7 +24,11 @@ import { directionFor, pseudoExpand, pseudoLocalize, translate, } from './core/m
23
24
  */
24
25
  export const TRANSLATION_PREVIEW_EVENT = 'linked:translation-preview';
25
26
  const EMPTY_MESSAGES = {};
26
- const TranslationContext = createContext(null);
27
+ // The context object is kept on globalThis: a context created per copy of this module would
28
+ // leave a consumer in one copy blind to a provider from the other (it gets the null default).
29
+ const { TranslationContext } = sharedState('@_linked/translation', 'react.contexts', () => ({
30
+ TranslationContext: createContext(null),
31
+ }));
27
32
  export function TranslationProvider({ children, languages: initialLanguages, loadLanguages, defaultLanguage = 'en', format = 'simple', loadMessages, storageKey = 'linked.lang', }) {
28
33
  var _a, _b;
29
34
  const [remoteLanguages, setRemoteLanguages] = useState();
@@ -1 +1 @@
1
- {"version":3,"file":"react.js","sourceRoot":"","sources":["../../src/react.tsx"],"names":[],"mappings":"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","sourcesContent":["import {\n languageFallbacks,\n type TranslationLanguageDefinition,\n} from './languages.js';\nimport React, {\n createContext,\n startTransition,\n useCallback,\n useContext,\n useEffect,\n useMemo,\n useState,\n useSyncExternalStore,\n} from 'react';\nimport {\n directionFor,\n type MessageFormat,\n pseudoExpand,\n pseudoLocalize,\n translate,\n type TranslationMessages,\n} from './core/messages.js';\n\n/**\n * Window event that previews a language, text direction or pseudo-locale in\n * every mounted `TranslationProvider`, without changing the user's language.\n *\n * Dispatch it with a {@link TranslationPreviewDetail}:\n *\n * ```ts\n * window.dispatchEvent(\n * new CustomEvent(TRANSLATION_PREVIEW_EVENT, {\n * detail: { language: 'ar', direction: 'ltr', pseudoLocale: 'expanded' },\n * })\n * );\n * ```\n *\n * Each event replaces the whole preview: a field that is missing or invalid\n * falls back to its default (no preview language, `'auto'`, `'off'`), so an\n * empty detail ends the preview. The preview language is never written to\n * storage, and a preview direction wins over the language's own direction.\n */\nexport const TRANSLATION_PREVIEW_EVENT = 'linked:translation-preview';\n\nexport type TranslationPreviewDirection = 'auto' | 'ltr' | 'rtl';\nexport type TranslationPreviewPseudoLocale = 'off' | 'accented' | 'expanded';\n\n/** The `detail` of a {@link TRANSLATION_PREVIEW_EVENT}. */\nexport interface TranslationPreviewDetail {\n /** BCP-47 tag to render in instead of the selected language. */\n language?: string;\n /** Force a text direction; `'auto'` uses the language's own. */\n direction?: TranslationPreviewDirection;\n /**\n * `'accented'` accents every message; `'expanded'` pads every message by\n * about a third to show controls that only fit their English copy.\n */\n pseudoLocale?: TranslationPreviewPseudoLocale;\n}\n\nconst EMPTY_MESSAGES: Record<string, TranslationMessages> = {};\n\n/**\n * React binding for the translation core (Plan 014 P1.5). Kept in a `/react`\n * subpath so non-React consumers use `./core/messages` without pulling React.\n * Message LOADING is caller-injected (`loadMessages`) so this stays transport-\n * agnostic: dev wires it to the host's API, prod to the bundled `{lang}.json` with a\n * CDN overlay (AD-J/AD-K) — the provider doesn't care which.\n *\n * The hook shape mirrors Tolgee (`useTranslate().t(key, default, params)`,\n * `useLanguage()`), so swapping serve's provider touches only its i18n file.\n */\n\nexport interface TranslationLanguage {\n tag: string; // BCP-47\n label: string;\n direction?: 'ltr' | 'rtl';\n fallback?: string;\n}\n\nexport interface TranslationCallOptions {\n /** Explicit syntax for an inline default before per-key catalog metadata loads. */\n format?: MessageFormat;\n}\n\ntype TranslateFn = (\n key: string,\n defaultValue?: string,\n params?: Record<string, unknown>,\n options?: TranslationCallOptions\n) => string;\n\ninterface TranslationContextValue {\n t: TranslateFn;\n /** `t` over no catalog: exactly what the server rendered. */\n tInline: TranslateFn;\n language: string;\n setLanguage: (tag: string) => void;\n languages: TranslationLanguage[];\n dir: 'ltr' | 'rtl';\n}\n\nconst TranslationContext = createContext<TranslationContextValue | null>(null);\n\nexport interface TranslationProviderProps {\n children: React.ReactNode;\n languages: TranslationLanguage[];\n /** Optional live catalog metadata, refreshed independently of an app build. */\n loadLanguages?: () => Promise<TranslationLanguageDefinition[]>;\n defaultLanguage?: string;\n /** Global message format. 'simple' = FormatSimple (Tolgee-compatible default). */\n format?: MessageFormat;\n /** Caller-injected loader: dev→API, prod→bundled file then CDN overlay. */\n loadMessages: (language: string) => Promise<TranslationMessages>;\n /** localStorage key persisting the selected language. */\n storageKey?: string;\n}\n\nexport function TranslationProvider({\n children,\n languages: initialLanguages,\n loadLanguages,\n defaultLanguage = 'en',\n format = 'simple',\n loadMessages,\n storageKey = 'linked.lang',\n}: TranslationProviderProps) {\n const [remoteLanguages, setRemoteLanguages] =\n useState<TranslationLanguageDefinition[]>();\n const languages = remoteLanguages\n ? remoteLanguages\n .filter((item) => item.enabled && item.supported)\n .map((item) => ({\n tag: item.code,\n label: item.nativeName,\n direction: item.direction,\n fallback: item.fallback,\n }))\n : initialLanguages;\n const [language, setLanguageState] = useState<string>(() => {\n if (typeof window !== 'undefined') {\n const stored = window.localStorage?.getItem(storageKey);\n if (stored && languages.some((l) => l.tag === stored)) return stored;\n }\n return defaultLanguage;\n });\n const [previewLanguage, setPreviewLanguage] = useState<string | null>(null);\n const [previewPseudoLocale, setPreviewPseudoLocale] =\n useState<TranslationPreviewPseudoLocale>('off');\n const [previewDirection, setPreviewDirection] =\n useState<TranslationPreviewDirection>('auto');\n const effectiveLanguage = previewLanguage ?? language;\n // A preview direction is an editor coordinate and wins; otherwise the\n // configured language's own direction, then the tag's script default.\n const dir =\n previewDirection === 'ltr' || previewDirection === 'rtl'\n ? previewDirection\n : (languages.find((item) => item.tag === effectiveLanguage)?.direction ??\n directionFor(effectiveLanguage));\n useEffect(() => {\n if (!loadLanguages) return;\n let cancelled = false;\n loadLanguages()\n .then((items) => {\n if (!cancelled) {\n setRemoteLanguages(items);\n setMessagesByLang({});\n const stored =\n typeof window !== 'undefined'\n ? window.localStorage?.getItem(storageKey)\n : null;\n if (\n stored &&\n items.some(\n (item) => item.code === stored && item.enabled && item.supported\n )\n )\n setLanguageState(stored);\n }\n })\n .catch(() => {});\n return () => {\n cancelled = true;\n };\n }, [loadLanguages, storageKey]);\n const [messagesByLang, setMessagesByLang] = useState<\n Record<string, TranslationMessages>\n >({});\n\n // Load the active language's messages once. English renders from inline\n // defaults until (and if) a payload arrives, so the app is never blank.\n useEffect(() => {\n if (messagesByLang[effectiveLanguage]) return;\n let cancelled = false;\n const chain = languageFallbacks(\n effectiveLanguage,\n defaultLanguage,\n remoteLanguages\n ).reverse();\n Promise.all(chain.map((code) => loadMessages(code).catch(() => ({}))))\n .then((maps) => Object.assign({}, ...maps) as TranslationMessages)\n .then((msgs) => {\n if (!cancelled) {\n // A descendant lazy route may still be hydrating when the catalog\n // arrives. Overlay messages without replacing its server-rendered\n // DOM; inline defaults remain usable until the transition commits.\n startTransition(() => {\n setMessagesByLang((prev) => ({\n ...prev,\n [effectiveLanguage]: msgs,\n }));\n });\n }\n })\n .catch(() => {\n /* offline / missing → keep inline defaults */\n });\n return () => {\n cancelled = true;\n };\n }, [\n effectiveLanguage,\n loadMessages,\n messagesByLang,\n defaultLanguage,\n remoteLanguages,\n ]);\n\n // Preview locale is an ephemeral editor coordinate. It intentionally does\n // not call setLanguage(), because doing so would persist a test condition as\n // the app user's real language preference.\n useEffect(() => {\n if (typeof window === 'undefined') return;\n const onPreview = (event: Event) => {\n const detail = (event as CustomEvent<TranslationPreviewDetail | null>)\n .detail;\n const nextLanguage: unknown = detail?.language;\n const nextPseudoLocale: unknown = detail?.pseudoLocale;\n const nextDirection: unknown = detail?.direction;\n setPreviewLanguage(\n typeof nextLanguage === 'string' && nextLanguage ? nextLanguage : null\n );\n setPreviewPseudoLocale(\n nextPseudoLocale === 'accented' || nextPseudoLocale === 'expanded'\n ? nextPseudoLocale\n : 'off'\n );\n setPreviewDirection(\n nextDirection === 'ltr' || nextDirection === 'rtl'\n ? nextDirection\n : 'auto'\n );\n };\n window.addEventListener(TRANSLATION_PREVIEW_EVENT, onPreview);\n return () =>\n window.removeEventListener(TRANSLATION_PREVIEW_EVENT, onPreview);\n }, []);\n\n // Reflect the effective language and text direction on <html>.\n useEffect(() => {\n if (typeof document !== 'undefined') {\n document.documentElement.dir = dir;\n document.documentElement.lang = effectiveLanguage;\n }\n }, [effectiveLanguage, dir]);\n\n const setLanguage = useCallback(\n (tag: string) => {\n setLanguageState(tag);\n if (typeof window !== 'undefined') {\n window.localStorage?.setItem(storageKey, tag);\n }\n },\n [storageKey]\n );\n\n const translatorFor = useCallback(\n (catalogs: Record<string, TranslationMessages>): TranslateFn =>\n (key, defaultValue, params, options) => {\n const translated = translate(\n catalogs[effectiveLanguage] ?? {},\n key,\n defaultValue,\n params,\n options?.format ?? format,\n effectiveLanguage\n );\n if (previewPseudoLocale === 'accented') {\n return effectiveLanguage.toLowerCase() === 'en-xa'\n ? translated\n : pseudoLocalize(translated);\n }\n return previewPseudoLocale === 'expanded'\n ? pseudoExpand(translated)\n : translated;\n },\n [effectiveLanguage, format, previewPseudoLocale]\n );\n const t = useMemo(\n () => translatorFor(messagesByLang),\n [translatorFor, messagesByLang]\n );\n const tInline = useMemo(() => translatorFor(EMPTY_MESSAGES), [translatorFor]);\n\n const value = useMemo<TranslationContextValue>(\n () => ({\n t,\n tInline,\n language: effectiveLanguage,\n setLanguage,\n languages,\n dir,\n }),\n [t, tInline, effectiveLanguage, setLanguage, languages, dir]\n );\n\n return (\n <TranslationContext.Provider value={value}>\n {children}\n </TranslationContext.Provider>\n );\n}\n\nfunction useTranslationContext(hook: string): TranslationContextValue {\n const ctx = useContext(TranslationContext);\n if (!ctx)\n throw new Error(`${hook} must be used within a <TranslationProvider>`);\n return ctx;\n}\n\n/** Tolgee-compatible: `const { t } = useTranslate()`. */\nexport function useTranslate() {\n const ctx = useTranslationContext('useTranslate');\n // The server never has a catalog, and a lazy descendant can hydrate after\n // the catalog has already reached context. Gating per consumer means every\n // hydrating render replays the inline defaults, then re-renders with the\n // catalog once that consumer commits.\n const hydrated = useSyncExternalStore(\n subscribeNever,\n () => true,\n () => false\n );\n return { t: hydrated ? ctx.t : ctx.tInline };\n}\n\nconst subscribeNever = () => () => {};\n\n/** Active language + switcher + direction + the available languages. */\nexport function useLanguage() {\n const ctx = useTranslationContext('useLanguage');\n return {\n language: ctx.language,\n setLanguage: ctx.setLanguage,\n languages: ctx.languages,\n dir: ctx.dir,\n };\n}\n\n/** JSX convenience (Tolgee `<T keyName=… />`). */\nexport function T({\n keyName,\n defaultValue,\n params,\n format,\n}: {\n keyName: string;\n defaultValue?: string;\n params?: Record<string, unknown>;\n format?: MessageFormat;\n}) {\n const { t } = useTranslate();\n return <>{t(keyName, defaultValue, params, { format })}</>;\n}\n"]}
1
+ {"version":3,"file":"react.js","sourceRoot":"","sources":["../../src/react.tsx"],"names":[],"mappings":"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","sourcesContent":["import { sharedState } from '@_linked/core/utils/sharedState';\nimport {\n languageFallbacks,\n type TranslationLanguageDefinition,\n} from './languages.js';\nimport React, {\n createContext,\n startTransition,\n useCallback,\n useContext,\n useEffect,\n useMemo,\n useState,\n useSyncExternalStore,\n} from 'react';\nimport {\n directionFor,\n type MessageFormat,\n pseudoExpand,\n pseudoLocalize,\n translate,\n type TranslationMessages,\n} from './core/messages.js';\n\n/**\n * Window event that previews a language, text direction or pseudo-locale in\n * every mounted `TranslationProvider`, without changing the user's language.\n *\n * Dispatch it with a {@link TranslationPreviewDetail}:\n *\n * ```ts\n * window.dispatchEvent(\n * new CustomEvent(TRANSLATION_PREVIEW_EVENT, {\n * detail: { language: 'ar', direction: 'ltr', pseudoLocale: 'expanded' },\n * })\n * );\n * ```\n *\n * Each event replaces the whole preview: a field that is missing or invalid\n * falls back to its default (no preview language, `'auto'`, `'off'`), so an\n * empty detail ends the preview. The preview language is never written to\n * storage, and a preview direction wins over the language's own direction.\n */\nexport const TRANSLATION_PREVIEW_EVENT = 'linked:translation-preview';\n\nexport type TranslationPreviewDirection = 'auto' | 'ltr' | 'rtl';\nexport type TranslationPreviewPseudoLocale = 'off' | 'accented' | 'expanded';\n\n/** The `detail` of a {@link TRANSLATION_PREVIEW_EVENT}. */\nexport interface TranslationPreviewDetail {\n /** BCP-47 tag to render in instead of the selected language. */\n language?: string;\n /** Force a text direction; `'auto'` uses the language's own. */\n direction?: TranslationPreviewDirection;\n /**\n * `'accented'` accents every message; `'expanded'` pads every message by\n * about a third to show controls that only fit their English copy.\n */\n pseudoLocale?: TranslationPreviewPseudoLocale;\n}\n\nconst EMPTY_MESSAGES: Record<string, TranslationMessages> = {};\n\n/**\n * React binding for the translation core (Plan 014 P1.5). Kept in a `/react`\n * subpath so non-React consumers use `./core/messages` without pulling React.\n * Message LOADING is caller-injected (`loadMessages`) so this stays transport-\n * agnostic: dev wires it to the host's API, prod to the bundled `{lang}.json` with a\n * CDN overlay (AD-J/AD-K) — the provider doesn't care which.\n *\n * The hook shape mirrors Tolgee (`useTranslate().t(key, default, params)`,\n * `useLanguage()`), so swapping serve's provider touches only its i18n file.\n */\n\nexport interface TranslationLanguage {\n tag: string; // BCP-47\n label: string;\n direction?: 'ltr' | 'rtl';\n fallback?: string;\n}\n\nexport interface TranslationCallOptions {\n /** Explicit syntax for an inline default before per-key catalog metadata loads. */\n format?: MessageFormat;\n}\n\ntype TranslateFn = (\n key: string,\n defaultValue?: string,\n params?: Record<string, unknown>,\n options?: TranslationCallOptions\n) => string;\n\ninterface TranslationContextValue {\n t: TranslateFn;\n /** `t` over no catalog: exactly what the server rendered. */\n tInline: TranslateFn;\n language: string;\n setLanguage: (tag: string) => void;\n languages: TranslationLanguage[];\n dir: 'ltr' | 'rtl';\n}\n\n// The context object is kept on globalThis: a context created per copy of this module would\n// leave a consumer in one copy blind to a provider from the other (it gets the null default).\nconst { TranslationContext } = sharedState('@_linked/translation', 'react.contexts', () => ({\n TranslationContext: createContext<TranslationContextValue | null>(null),\n}));\n\nexport interface TranslationProviderProps {\n children: React.ReactNode;\n languages: TranslationLanguage[];\n /** Optional live catalog metadata, refreshed independently of an app build. */\n loadLanguages?: () => Promise<TranslationLanguageDefinition[]>;\n defaultLanguage?: string;\n /** Global message format. 'simple' = FormatSimple (Tolgee-compatible default). */\n format?: MessageFormat;\n /** Caller-injected loader: dev→API, prod→bundled file then CDN overlay. */\n loadMessages: (language: string) => Promise<TranslationMessages>;\n /** localStorage key persisting the selected language. */\n storageKey?: string;\n}\n\nexport function TranslationProvider({\n children,\n languages: initialLanguages,\n loadLanguages,\n defaultLanguage = 'en',\n format = 'simple',\n loadMessages,\n storageKey = 'linked.lang',\n}: TranslationProviderProps) {\n const [remoteLanguages, setRemoteLanguages] =\n useState<TranslationLanguageDefinition[]>();\n const languages = remoteLanguages\n ? remoteLanguages\n .filter((item) => item.enabled && item.supported)\n .map((item) => ({\n tag: item.code,\n label: item.nativeName,\n direction: item.direction,\n fallback: item.fallback,\n }))\n : initialLanguages;\n const [language, setLanguageState] = useState<string>(() => {\n if (typeof window !== 'undefined') {\n const stored = window.localStorage?.getItem(storageKey);\n if (stored && languages.some((l) => l.tag === stored)) return stored;\n }\n return defaultLanguage;\n });\n const [previewLanguage, setPreviewLanguage] = useState<string | null>(null);\n const [previewPseudoLocale, setPreviewPseudoLocale] =\n useState<TranslationPreviewPseudoLocale>('off');\n const [previewDirection, setPreviewDirection] =\n useState<TranslationPreviewDirection>('auto');\n const effectiveLanguage = previewLanguage ?? language;\n // A preview direction is an editor coordinate and wins; otherwise the\n // configured language's own direction, then the tag's script default.\n const dir =\n previewDirection === 'ltr' || previewDirection === 'rtl'\n ? previewDirection\n : (languages.find((item) => item.tag === effectiveLanguage)?.direction ??\n directionFor(effectiveLanguage));\n useEffect(() => {\n if (!loadLanguages) return;\n let cancelled = false;\n loadLanguages()\n .then((items) => {\n if (!cancelled) {\n setRemoteLanguages(items);\n setMessagesByLang({});\n const stored =\n typeof window !== 'undefined'\n ? window.localStorage?.getItem(storageKey)\n : null;\n if (\n stored &&\n items.some(\n (item) => item.code === stored && item.enabled && item.supported\n )\n )\n setLanguageState(stored);\n }\n })\n .catch(() => {});\n return () => {\n cancelled = true;\n };\n }, [loadLanguages, storageKey]);\n const [messagesByLang, setMessagesByLang] = useState<\n Record<string, TranslationMessages>\n >({});\n\n // Load the active language's messages once. English renders from inline\n // defaults until (and if) a payload arrives, so the app is never blank.\n useEffect(() => {\n if (messagesByLang[effectiveLanguage]) return;\n let cancelled = false;\n const chain = languageFallbacks(\n effectiveLanguage,\n defaultLanguage,\n remoteLanguages\n ).reverse();\n Promise.all(chain.map((code) => loadMessages(code).catch(() => ({}))))\n .then((maps) => Object.assign({}, ...maps) as TranslationMessages)\n .then((msgs) => {\n if (!cancelled) {\n // A descendant lazy route may still be hydrating when the catalog\n // arrives. Overlay messages without replacing its server-rendered\n // DOM; inline defaults remain usable until the transition commits.\n startTransition(() => {\n setMessagesByLang((prev) => ({\n ...prev,\n [effectiveLanguage]: msgs,\n }));\n });\n }\n })\n .catch(() => {\n /* offline / missing → keep inline defaults */\n });\n return () => {\n cancelled = true;\n };\n }, [\n effectiveLanguage,\n loadMessages,\n messagesByLang,\n defaultLanguage,\n remoteLanguages,\n ]);\n\n // Preview locale is an ephemeral editor coordinate. It intentionally does\n // not call setLanguage(), because doing so would persist a test condition as\n // the app user's real language preference.\n useEffect(() => {\n if (typeof window === 'undefined') return;\n const onPreview = (event: Event) => {\n const detail = (event as CustomEvent<TranslationPreviewDetail | null>)\n .detail;\n const nextLanguage: unknown = detail?.language;\n const nextPseudoLocale: unknown = detail?.pseudoLocale;\n const nextDirection: unknown = detail?.direction;\n setPreviewLanguage(\n typeof nextLanguage === 'string' && nextLanguage ? nextLanguage : null\n );\n setPreviewPseudoLocale(\n nextPseudoLocale === 'accented' || nextPseudoLocale === 'expanded'\n ? nextPseudoLocale\n : 'off'\n );\n setPreviewDirection(\n nextDirection === 'ltr' || nextDirection === 'rtl'\n ? nextDirection\n : 'auto'\n );\n };\n window.addEventListener(TRANSLATION_PREVIEW_EVENT, onPreview);\n return () =>\n window.removeEventListener(TRANSLATION_PREVIEW_EVENT, onPreview);\n }, []);\n\n // Reflect the effective language and text direction on <html>.\n useEffect(() => {\n if (typeof document !== 'undefined') {\n document.documentElement.dir = dir;\n document.documentElement.lang = effectiveLanguage;\n }\n }, [effectiveLanguage, dir]);\n\n const setLanguage = useCallback(\n (tag: string) => {\n setLanguageState(tag);\n if (typeof window !== 'undefined') {\n window.localStorage?.setItem(storageKey, tag);\n }\n },\n [storageKey]\n );\n\n const translatorFor = useCallback(\n (catalogs: Record<string, TranslationMessages>): TranslateFn =>\n (key, defaultValue, params, options) => {\n const translated = translate(\n catalogs[effectiveLanguage] ?? {},\n key,\n defaultValue,\n params,\n options?.format ?? format,\n effectiveLanguage\n );\n if (previewPseudoLocale === 'accented') {\n return effectiveLanguage.toLowerCase() === 'en-xa'\n ? translated\n : pseudoLocalize(translated);\n }\n return previewPseudoLocale === 'expanded'\n ? pseudoExpand(translated)\n : translated;\n },\n [effectiveLanguage, format, previewPseudoLocale]\n );\n const t = useMemo(\n () => translatorFor(messagesByLang),\n [translatorFor, messagesByLang]\n );\n const tInline = useMemo(() => translatorFor(EMPTY_MESSAGES), [translatorFor]);\n\n const value = useMemo<TranslationContextValue>(\n () => ({\n t,\n tInline,\n language: effectiveLanguage,\n setLanguage,\n languages,\n dir,\n }),\n [t, tInline, effectiveLanguage, setLanguage, languages, dir]\n );\n\n return (\n <TranslationContext.Provider value={value}>\n {children}\n </TranslationContext.Provider>\n );\n}\n\nfunction useTranslationContext(hook: string): TranslationContextValue {\n const ctx = useContext(TranslationContext);\n if (!ctx)\n throw new Error(`${hook} must be used within a <TranslationProvider>`);\n return ctx;\n}\n\n/** Tolgee-compatible: `const { t } = useTranslate()`. */\nexport function useTranslate() {\n const ctx = useTranslationContext('useTranslate');\n // The server never has a catalog, and a lazy descendant can hydrate after\n // the catalog has already reached context. Gating per consumer means every\n // hydrating render replays the inline defaults, then re-renders with the\n // catalog once that consumer commits.\n const hydrated = useSyncExternalStore(\n subscribeNever,\n () => true,\n () => false\n );\n return { t: hydrated ? ctx.t : ctx.tInline };\n}\n\nconst subscribeNever = () => () => {};\n\n/** Active language + switcher + direction + the available languages. */\nexport function useLanguage() {\n const ctx = useTranslationContext('useLanguage');\n return {\n language: ctx.language,\n setLanguage: ctx.setLanguage,\n languages: ctx.languages,\n dir: ctx.dir,\n };\n}\n\n/** JSX convenience (Tolgee `<T keyName=… />`). */\nexport function T({\n keyName,\n defaultValue,\n params,\n format,\n}: {\n keyName: string;\n defaultValue?: string;\n params?: Record<string, unknown>;\n format?: MessageFormat;\n}) {\n const { t } = useTranslate();\n return <>{t(keyName, defaultValue, params, { format })}</>;\n}\n"]}
@@ -5,7 +5,7 @@ import { Shape } from '@_linked/core/shapes/Shape';
5
5
  * prompt. Per-app content like the rest of the translation model.
6
6
  */
7
7
  export declare class GlossaryTerm extends Shape {
8
- static targetClass: import("@_linked/core/utils/NodeReference").NodeReferenceValue;
8
+ static targetClass: import("@_linked/core/utils/NodeReference.js").NodeReferenceValue;
9
9
  /** The source term (English). */
10
10
  get term(): string;
11
11
  /** Preferred translation for the target language (optional; empty = keep as-is). */
@@ -7,7 +7,7 @@ import { Shape } from '@_linked/core/shapes/Shape';
7
7
  * package: standalone LINKED apps may use a different metadata topology.
8
8
  */
9
9
  export declare class TranslationInventoryOrigin extends Shape {
10
- static targetClass: import("@_linked/core/utils/NodeReference").NodeReferenceValue;
10
+ static targetClass: import("@_linked/core/utils/NodeReference.js").NodeReferenceValue;
11
11
  get ofApplication(): string;
12
12
  get branch(): string;
13
13
  get identity(): string;
@@ -11,7 +11,7 @@ import type { TranslationKeyVersion } from './TranslationKeyVersion.js';
11
11
  * not `Translation` — avoids collision with serve's legacy shape, R13).
12
12
  */
13
13
  export declare class TranslationKey extends Shape {
14
- static targetClass: import("@_linked/core/utils/NodeReference").NodeReferenceValue;
14
+ static targetClass: import("@_linked/core/utils/NodeReference.js").NodeReferenceValue;
15
15
  /** Dotted namespace grouping, e.g. "account". */
16
16
  get namespace(): string;
17
17
  /** The key path, e.g. "account.title". */
@@ -2,7 +2,7 @@ import { Shape } from '@_linked/core/shapes/Shape';
2
2
  import { TranslationKey } from './TranslationKey.js';
3
3
  /** Immutable source text + runtime argument contract for one logical key. */
4
4
  export declare class TranslationKeyVersion extends Shape {
5
- static targetClass: import("@_linked/core/utils/NodeReference").NodeReferenceValue;
5
+ static targetClass: import("@_linked/core/utils/NodeReference.js").NodeReferenceValue;
6
6
  get ofApplication(): string;
7
7
  get ofKey(): TranslationKey;
8
8
  /** Monotonic ULID for new versions; deterministic `backfill-*` for migration. */