@unisim/sdk 0.10.2 → 0.12.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.
Files changed (40) hide show
  1. package/dist/ChangelogMenu.d.ts.map +1 -1
  2. package/dist/ChangelogMenu.js +14 -7
  3. package/dist/ChangelogMenu.js.map +1 -1
  4. package/dist/CompanyMenu.d.ts.map +1 -1
  5. package/dist/CompanyMenu.js +7 -3
  6. package/dist/CompanyMenu.js.map +1 -1
  7. package/dist/KnowledgeBaseMenu.d.ts.map +1 -1
  8. package/dist/KnowledgeBaseMenu.js +8 -4
  9. package/dist/KnowledgeBaseMenu.js.map +1 -1
  10. package/dist/SuiteSwitcher.d.ts +13 -3
  11. package/dist/SuiteSwitcher.d.ts.map +1 -1
  12. package/dist/SuiteSwitcher.js +66 -3
  13. package/dist/SuiteSwitcher.js.map +1 -1
  14. package/dist/UniversalAppsNavBar.d.ts +56 -0
  15. package/dist/UniversalAppsNavBar.d.ts.map +1 -0
  16. package/dist/UniversalAppsNavBar.js +128 -0
  17. package/dist/UniversalAppsNavBar.js.map +1 -0
  18. package/dist/UniversalNavBar.d.ts +8 -1
  19. package/dist/UniversalNavBar.d.ts.map +1 -1
  20. package/dist/UniversalNavBar.js +8 -6
  21. package/dist/UniversalNavBar.js.map +1 -1
  22. package/dist/UserProfile.d.ts +12 -2
  23. package/dist/UserProfile.d.ts.map +1 -1
  24. package/dist/UserProfile.js +7 -3
  25. package/dist/UserProfile.js.map +1 -1
  26. package/dist/i18n.d.ts +7 -0
  27. package/dist/i18n.d.ts.map +1 -0
  28. package/dist/i18n.js +324 -0
  29. package/dist/i18n.js.map +1 -0
  30. package/dist/index.d.ts +6 -2
  31. package/dist/index.d.ts.map +1 -1
  32. package/dist/index.js +4 -2
  33. package/dist/index.js.map +1 -1
  34. package/dist/provider.d.ts +18 -0
  35. package/dist/provider.d.ts.map +1 -1
  36. package/dist/provider.js +77 -0
  37. package/dist/provider.js.map +1 -1
  38. package/dist/types.d.ts +1 -1
  39. package/dist/types.d.ts.map +1 -1
  40. package/package.json +1 -1
package/dist/i18n.js ADDED
@@ -0,0 +1,324 @@
1
+ // ──────────────────────────────────────────────────────────────────────────────
2
+ // SDK-owned translations for the shared navbar chrome (UniversalNavBar,
3
+ // UniversalAppsNavBar, SuiteSwitcher, CompanyMenu, KnowledgeBaseMenu,
4
+ // UserProfile, ChangelogMenu).
5
+ //
6
+ // Why these strings live in the SDK rather than each host product:
7
+ // - The navbar is rendered by SDK components, so the t() lookup happens at
8
+ // SDK render time. Host products can't reach in to swap strings without
9
+ // ugly prop drilling for every label.
10
+ // - Each Assess product already has its own i18n stack (Ergo: i18next;
11
+ // Exports: custom Context). Bundling navbar strings inside @unisim/sdk
12
+ // means none of those stacks have to learn about the navbar.
13
+ //
14
+ // Brand and product names (e.g. "Universal Simulation", "Ergo Assess UK",
15
+ // product taglines) stay in English on purpose — they're brand identity, not
16
+ // chrome. Hosts that want a localised tagline can pass a translated `desc`
17
+ // into SuiteSwitcher's `products` prop themselves.
18
+ // ──────────────────────────────────────────────────────────────────────────────
19
+ export const SUPPORTED_LANGUAGES = ['en', 'en-gb', 'fr', 'es', 'it', 'de', 'pt', 'tr'];
20
+ export const DEFAULT_LANGUAGE = 'en';
21
+ const en = {
22
+ 'nav.for': 'for',
23
+ 'nav.your_company': 'Your Company',
24
+ 'nav.new_assessment': 'New Assessment',
25
+ 'nav.menu_open': 'Open menu',
26
+ 'nav.menu_close': 'Close menu',
27
+ 'nav.menu_primary': 'Primary',
28
+ 'suite.switch_product': 'Switch product',
29
+ 'suite.portal_eyebrow': 'Universal Simulation',
30
+ 'suite.portal_title_assess': 'The Assess suite',
31
+ 'suite.portal_title_apps': 'Universal Apps Portal',
32
+ 'suite.youre_here': "You're here",
33
+ 'suite.coming_soon': 'Coming soon',
34
+ 'company.label': 'My Company',
35
+ 'company.projects': 'Projects',
36
+ 'company.people': 'People',
37
+ 'company.places': 'Places',
38
+ 'company.branding': 'Branding',
39
+ 'company.log_in': 'Log in',
40
+ 'company.sign_out': 'Sign out',
41
+ 'kb.label': 'Knowledge Base',
42
+ 'kb.product_knowledge': 'Product Knowledge',
43
+ 'kb.company_knowledge': 'Company Knowledge',
44
+ 'kb.no_articles': 'No articles yet.',
45
+ 'kb.company_coming_soon': 'Company Knowledge — coming soon.',
46
+ 'kb.view_all': 'View all',
47
+ 'profile.label': 'Profile',
48
+ 'profile.sign_in': 'Sign in',
49
+ 'profile.view_profile': 'View profile',
50
+ 'profile.app_settings': 'App settings',
51
+ 'profile.sign_out': 'Sign out',
52
+ 'changelog.label': 'Suite changelog',
53
+ 'changelog.title': "What's new",
54
+ 'changelog.loading': 'Loading…',
55
+ 'changelog.no_entries': 'No entries yet.',
56
+ 'changelog.full_changelog': 'Full changelog',
57
+ };
58
+ // en-gb defers to en for chrome wording — spelling differences for this set
59
+ // of strings are minimal, but locale-aware date formatting picks up "en-gb"
60
+ // separately via Intl.
61
+ const enGB = { ...en };
62
+ const fr = {
63
+ 'nav.for': 'pour',
64
+ 'nav.your_company': 'Votre entreprise',
65
+ 'nav.new_assessment': 'Nouvelle évaluation',
66
+ 'nav.menu_open': 'Ouvrir le menu',
67
+ 'nav.menu_close': 'Fermer le menu',
68
+ 'nav.menu_primary': 'Principal',
69
+ 'suite.switch_product': 'Changer de produit',
70
+ 'suite.portal_eyebrow': 'Universal Simulation',
71
+ 'suite.portal_title_assess': 'La suite Assess',
72
+ 'suite.portal_title_apps': 'Portail des applications',
73
+ 'suite.youre_here': 'Vous êtes ici',
74
+ 'suite.coming_soon': 'Bientôt disponible',
75
+ 'company.label': 'Mon entreprise',
76
+ 'company.projects': 'Projets',
77
+ 'company.people': 'Personnes',
78
+ 'company.places': 'Lieux',
79
+ 'company.branding': 'Image de marque',
80
+ 'company.log_in': 'Se connecter',
81
+ 'company.sign_out': 'Se déconnecter',
82
+ 'kb.label': 'Base de connaissances',
83
+ 'kb.product_knowledge': 'Connaissances produit',
84
+ 'kb.company_knowledge': 'Connaissances entreprise',
85
+ 'kb.no_articles': 'Aucun article pour le moment.',
86
+ 'kb.company_coming_soon': 'Connaissances entreprise — bientôt disponible.',
87
+ 'kb.view_all': 'Tout voir',
88
+ 'profile.label': 'Profil',
89
+ 'profile.sign_in': 'Se connecter',
90
+ 'profile.view_profile': 'Voir le profil',
91
+ 'profile.app_settings': "Paramètres de l'application",
92
+ 'profile.sign_out': 'Se déconnecter',
93
+ 'changelog.label': 'Journal des modifications',
94
+ 'changelog.title': 'Nouveautés',
95
+ 'changelog.loading': 'Chargement…',
96
+ 'changelog.no_entries': 'Aucune entrée pour le moment.',
97
+ 'changelog.full_changelog': 'Journal complet',
98
+ };
99
+ const es = {
100
+ 'nav.for': 'para',
101
+ 'nav.your_company': 'Su empresa',
102
+ 'nav.new_assessment': 'Nueva evaluación',
103
+ 'nav.menu_open': 'Abrir menú',
104
+ 'nav.menu_close': 'Cerrar menú',
105
+ 'nav.menu_primary': 'Principal',
106
+ 'suite.switch_product': 'Cambiar producto',
107
+ 'suite.portal_eyebrow': 'Universal Simulation',
108
+ 'suite.portal_title_assess': 'La suite Assess',
109
+ 'suite.portal_title_apps': 'Portal de aplicaciones',
110
+ 'suite.youre_here': 'Estás aquí',
111
+ 'suite.coming_soon': 'Próximamente',
112
+ 'company.label': 'Mi empresa',
113
+ 'company.projects': 'Proyectos',
114
+ 'company.people': 'Personas',
115
+ 'company.places': 'Lugares',
116
+ 'company.branding': 'Marca',
117
+ 'company.log_in': 'Iniciar sesión',
118
+ 'company.sign_out': 'Cerrar sesión',
119
+ 'kb.label': 'Base de conocimientos',
120
+ 'kb.product_knowledge': 'Conocimiento del producto',
121
+ 'kb.company_knowledge': 'Conocimiento de la empresa',
122
+ 'kb.no_articles': 'Aún no hay artículos.',
123
+ 'kb.company_coming_soon': 'Conocimiento de la empresa — próximamente.',
124
+ 'kb.view_all': 'Ver todo',
125
+ 'profile.label': 'Perfil',
126
+ 'profile.sign_in': 'Iniciar sesión',
127
+ 'profile.view_profile': 'Ver perfil',
128
+ 'profile.app_settings': 'Configuración de la aplicación',
129
+ 'profile.sign_out': 'Cerrar sesión',
130
+ 'changelog.label': 'Registro de cambios',
131
+ 'changelog.title': 'Novedades',
132
+ 'changelog.loading': 'Cargando…',
133
+ 'changelog.no_entries': 'Aún no hay entradas.',
134
+ 'changelog.full_changelog': 'Registro completo',
135
+ };
136
+ const it = {
137
+ 'nav.for': 'per',
138
+ 'nav.your_company': 'La tua azienda',
139
+ 'nav.new_assessment': 'Nuova valutazione',
140
+ 'nav.menu_open': 'Apri menu',
141
+ 'nav.menu_close': 'Chiudi menu',
142
+ 'nav.menu_primary': 'Principale',
143
+ 'suite.switch_product': 'Cambia prodotto',
144
+ 'suite.portal_eyebrow': 'Universal Simulation',
145
+ 'suite.portal_title_assess': 'La suite Assess',
146
+ 'suite.portal_title_apps': 'Portale delle app',
147
+ 'suite.youre_here': 'Sei qui',
148
+ 'suite.coming_soon': 'In arrivo',
149
+ 'company.label': 'La mia azienda',
150
+ 'company.projects': 'Progetti',
151
+ 'company.people': 'Persone',
152
+ 'company.places': 'Sedi',
153
+ 'company.branding': 'Brand',
154
+ 'company.log_in': 'Accedi',
155
+ 'company.sign_out': 'Esci',
156
+ 'kb.label': 'Knowledge Base',
157
+ 'kb.product_knowledge': 'Conoscenza del prodotto',
158
+ 'kb.company_knowledge': 'Conoscenza aziendale',
159
+ 'kb.no_articles': 'Ancora nessun articolo.',
160
+ 'kb.company_coming_soon': 'Conoscenza aziendale — in arrivo.',
161
+ 'kb.view_all': 'Vedi tutti',
162
+ 'profile.label': 'Profilo',
163
+ 'profile.sign_in': 'Accedi',
164
+ 'profile.view_profile': 'Visualizza profilo',
165
+ 'profile.app_settings': "Impostazioni dell'app",
166
+ 'profile.sign_out': 'Esci',
167
+ 'changelog.label': 'Registro modifiche',
168
+ 'changelog.title': 'Novità',
169
+ 'changelog.loading': 'Caricamento…',
170
+ 'changelog.no_entries': 'Ancora nessuna voce.',
171
+ 'changelog.full_changelog': 'Registro completo',
172
+ };
173
+ const de = {
174
+ 'nav.for': 'für',
175
+ 'nav.your_company': 'Ihr Unternehmen',
176
+ 'nav.new_assessment': 'Neue Bewertung',
177
+ 'nav.menu_open': 'Menü öffnen',
178
+ 'nav.menu_close': 'Menü schließen',
179
+ 'nav.menu_primary': 'Hauptmenü',
180
+ 'suite.switch_product': 'Produkt wechseln',
181
+ 'suite.portal_eyebrow': 'Universal Simulation',
182
+ 'suite.portal_title_assess': 'Die Assess-Suite',
183
+ 'suite.portal_title_apps': 'Universal Apps Portal',
184
+ 'suite.youre_here': 'Sie sind hier',
185
+ 'suite.coming_soon': 'Demnächst',
186
+ 'company.label': 'Mein Unternehmen',
187
+ 'company.projects': 'Projekte',
188
+ 'company.people': 'Personen',
189
+ 'company.places': 'Standorte',
190
+ 'company.branding': 'Branding',
191
+ 'company.log_in': 'Anmelden',
192
+ 'company.sign_out': 'Abmelden',
193
+ 'kb.label': 'Wissensdatenbank',
194
+ 'kb.product_knowledge': 'Produktwissen',
195
+ 'kb.company_knowledge': 'Unternehmenswissen',
196
+ 'kb.no_articles': 'Noch keine Artikel.',
197
+ 'kb.company_coming_soon': 'Unternehmenswissen — demnächst.',
198
+ 'kb.view_all': 'Alle anzeigen',
199
+ 'profile.label': 'Profil',
200
+ 'profile.sign_in': 'Anmelden',
201
+ 'profile.view_profile': 'Profil anzeigen',
202
+ 'profile.app_settings': 'App-Einstellungen',
203
+ 'profile.sign_out': 'Abmelden',
204
+ 'changelog.label': 'Suite-Änderungsprotokoll',
205
+ 'changelog.title': 'Was ist neu',
206
+ 'changelog.loading': 'Wird geladen…',
207
+ 'changelog.no_entries': 'Noch keine Einträge.',
208
+ 'changelog.full_changelog': 'Vollständiges Protokoll',
209
+ };
210
+ const pt = {
211
+ 'nav.for': 'para',
212
+ 'nav.your_company': 'A sua empresa',
213
+ 'nav.new_assessment': 'Nova avaliação',
214
+ 'nav.menu_open': 'Abrir menu',
215
+ 'nav.menu_close': 'Fechar menu',
216
+ 'nav.menu_primary': 'Principal',
217
+ 'suite.switch_product': 'Mudar de produto',
218
+ 'suite.portal_eyebrow': 'Universal Simulation',
219
+ 'suite.portal_title_assess': 'A suite Assess',
220
+ 'suite.portal_title_apps': 'Portal de aplicações',
221
+ 'suite.youre_here': 'Está aqui',
222
+ 'suite.coming_soon': 'Em breve',
223
+ 'company.label': 'A minha empresa',
224
+ 'company.projects': 'Projetos',
225
+ 'company.people': 'Pessoas',
226
+ 'company.places': 'Locais',
227
+ 'company.branding': 'Marca',
228
+ 'company.log_in': 'Iniciar sessão',
229
+ 'company.sign_out': 'Terminar sessão',
230
+ 'kb.label': 'Base de conhecimento',
231
+ 'kb.product_knowledge': 'Conhecimento do produto',
232
+ 'kb.company_knowledge': 'Conhecimento da empresa',
233
+ 'kb.no_articles': 'Ainda não há artigos.',
234
+ 'kb.company_coming_soon': 'Conhecimento da empresa — em breve.',
235
+ 'kb.view_all': 'Ver tudo',
236
+ 'profile.label': 'Perfil',
237
+ 'profile.sign_in': 'Iniciar sessão',
238
+ 'profile.view_profile': 'Ver perfil',
239
+ 'profile.app_settings': 'Definições da aplicação',
240
+ 'profile.sign_out': 'Terminar sessão',
241
+ 'changelog.label': 'Registo de alterações',
242
+ 'changelog.title': 'Novidades',
243
+ 'changelog.loading': 'A carregar…',
244
+ 'changelog.no_entries': 'Ainda não há entradas.',
245
+ 'changelog.full_changelog': 'Registo completo',
246
+ };
247
+ const tr = {
248
+ 'nav.for': 'için',
249
+ 'nav.your_company': 'Şirketiniz',
250
+ 'nav.new_assessment': 'Yeni değerlendirme',
251
+ 'nav.menu_open': 'Menüyü aç',
252
+ 'nav.menu_close': 'Menüyü kapat',
253
+ 'nav.menu_primary': 'Birincil',
254
+ 'suite.switch_product': 'Ürün değiştir',
255
+ 'suite.portal_eyebrow': 'Universal Simulation',
256
+ 'suite.portal_title_assess': 'Assess paketi',
257
+ 'suite.portal_title_apps': 'Universal Apps Portalı',
258
+ 'suite.youre_here': 'Buradasınız',
259
+ 'suite.coming_soon': 'Yakında',
260
+ 'company.label': 'Şirketim',
261
+ 'company.projects': 'Projeler',
262
+ 'company.people': 'Kişiler',
263
+ 'company.places': 'Konumlar',
264
+ 'company.branding': 'Marka kimliği',
265
+ 'company.log_in': 'Giriş yap',
266
+ 'company.sign_out': 'Çıkış yap',
267
+ 'kb.label': 'Bilgi tabanı',
268
+ 'kb.product_knowledge': 'Ürün bilgisi',
269
+ 'kb.company_knowledge': 'Şirket bilgisi',
270
+ 'kb.no_articles': 'Henüz makale yok.',
271
+ 'kb.company_coming_soon': 'Şirket bilgisi — yakında.',
272
+ 'kb.view_all': 'Tümünü gör',
273
+ 'profile.label': 'Profil',
274
+ 'profile.sign_in': 'Giriş yap',
275
+ 'profile.view_profile': 'Profili görüntüle',
276
+ 'profile.app_settings': 'Uygulama ayarları',
277
+ 'profile.sign_out': 'Çıkış yap',
278
+ 'changelog.label': 'Sürüm günlüğü',
279
+ 'changelog.title': 'Yenilikler',
280
+ 'changelog.loading': 'Yükleniyor…',
281
+ 'changelog.no_entries': 'Henüz giriş yok.',
282
+ 'changelog.full_changelog': 'Tam günlük',
283
+ };
284
+ const TRANSLATIONS = {
285
+ 'en': en,
286
+ 'en-gb': enGB,
287
+ 'fr': fr,
288
+ 'es': es,
289
+ 'it': it,
290
+ 'de': de,
291
+ 'pt': pt,
292
+ 'tr': tr,
293
+ };
294
+ // ──────────────────────────────────────────────────────────────────────────────
295
+ // Public lookup helper. Lazily falls back to English for any key the active
296
+ // locale doesn't define — which keeps copy edits from breaking partially
297
+ // translated bundles. The final fall-back is the key itself so missing keys
298
+ // are visible at runtime rather than rendering as blanks.
299
+ // ──────────────────────────────────────────────────────────────────────────────
300
+ export function t(lang, key) {
301
+ const dict = (lang && TRANSLATIONS[lang]) || TRANSLATIONS[DEFAULT_LANGUAGE];
302
+ return dict[key] ?? TRANSLATIONS[DEFAULT_LANGUAGE][key] ?? key;
303
+ }
304
+ export function isSupportedLanguage(lang) {
305
+ if (!lang)
306
+ return false;
307
+ return SUPPORTED_LANGUAGES.includes(lang);
308
+ }
309
+ // Resolve any incoming locale string to one we have a bundle for. Browser
310
+ // language strings can look like 'en-US', 'pt-BR', 'fr-CA' — strip the
311
+ // region and try the base language too. Returns null when nothing matches so
312
+ // callers can apply their own default.
313
+ export function resolveLanguage(lang) {
314
+ if (!lang)
315
+ return null;
316
+ const lower = lang.toLowerCase();
317
+ if (isSupportedLanguage(lower))
318
+ return lower;
319
+ const base = lower.split('-')[0];
320
+ if (isSupportedLanguage(base))
321
+ return base;
322
+ return null;
323
+ }
324
+ //# sourceMappingURL=i18n.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"i18n.js","sourceRoot":"","sources":["../src/i18n.ts"],"names":[],"mappings":"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"}
package/dist/index.d.ts CHANGED
@@ -1,5 +1,7 @@
1
- export { UniversalProvider, useUniversal } from './provider.js';
1
+ export { UniversalProvider, useUniversal, useLanguage } from './provider.js';
2
2
  export type { UniversalConfig, UniversalProviderProps } from './provider.js';
3
+ export { SUPPORTED_LANGUAGES, DEFAULT_LANGUAGE, isSupportedLanguage, resolveLanguage, t as translateNav, } from './i18n.js';
4
+ export type { Language } from './i18n.js';
3
5
  export { useUser, useOrg, signInWithPassword, signOut } from './auth.js';
4
6
  export type { UseUserResult, UseOrgResult } from './auth.js';
5
7
  export { useHasAccess, useHasFeature, useSeat } from './access.js';
@@ -24,7 +26,7 @@ export { TrialBadge, UpgradeWall } from './TrialUi.js';
24
26
  export type { UpgradeWallProps } from './TrialUi.js';
25
27
  export { UniversalBar } from './UniversalBar.js';
26
28
  export type { UniversalBarProps } from './UniversalBar.js';
27
- export { SuiteSwitcher, DEFAULT_SUITE_PRODUCTS, UKFlag } from './SuiteSwitcher.js';
29
+ export { SuiteSwitcher, DEFAULT_SUITE_PRODUCTS, DEFAULT_UNIVERSAL_APPS_PRODUCTS, UKFlag, } from './SuiteSwitcher.js';
28
30
  export type { SuiteSwitcherProps, SuiteProduct, SuiteProductId } from './SuiteSwitcher.js';
29
31
  export { ChangelogMenu } from './ChangelogMenu.js';
30
32
  export type { ChangelogMenuProps } from './ChangelogMenu.js';
@@ -40,6 +42,8 @@ export { UserProfile } from './UserProfile.js';
40
42
  export type { UserProfileProps } from './UserProfile.js';
41
43
  export { UniversalNavBar } from './UniversalNavBar.js';
42
44
  export type { UniversalNavBarProps } from './UniversalNavBar.js';
45
+ export { UniversalAppsNavBar } from './UniversalAppsNavBar.js';
46
+ export type { UniversalAppsNavBarProps } from './UniversalAppsNavBar.js';
43
47
  export { useOrgMembers, useOrgSeats, useAuditLog, assignSeat, revokeSeat, reassignSeat, useIsPlatformAdmin, usePlatformAdminOrgs, useEntitlement, createOrganisation, updateSubscription, findUserByEmail, addOrgMember, removeOrgMember, PLATFORM_ADMIN_EMAIL, } from './admin.js';
44
48
  export type { UseOrgMembersResult, UseOrgSeatsResult, UseAuditLogOptions, UseIsPlatformAdminResult, UsePlatformAdminOrgsResult, PlatformAdminOrgRow, EntitlementVerdict, CreateOrganisationInput, UpdateSubscriptionInput, AddOrgMemberInput, } from './admin.js';
45
49
  export type { ProductCode, SubTier, OrgRole, SeatStatus, AccessSource, Profile, Organisation, OrgBranding, OrgMember, Subscription, Seat, SeatPool, ChangelogEntry, ChangelogRelease, ChangelogFeed, AuditLogEntry, Person, PersonRole, Team, TeamMembership, Place, PlaceType, Project, ProjectStatus, } from './types.js';
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAUA,OAAO,EAAE,iBAAiB,EAAE,YAAY,EAAE,WAAW,EAAE,MAAM,eAAe,CAAA;AAC5E,YAAY,EAAE,eAAe,EAAE,sBAAsB,EAAE,MAAM,eAAe,CAAA;AAE5E,OAAO,EACL,mBAAmB,EACnB,gBAAgB,EAChB,mBAAmB,EACnB,eAAe,EACf,CAAC,IAAI,YAAY,GAClB,MAAM,WAAW,CAAA;AAClB,YAAY,EAAE,QAAQ,EAAE,MAAM,WAAW,CAAA;AAEzC,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,kBAAkB,EAAE,OAAO,EAAE,MAAM,WAAW,CAAA;AACxE,YAAY,EAAE,aAAa,EAAE,YAAY,EAAE,MAAM,WAAW,CAAA;AAE5D,OAAO,EAAE,YAAY,EAAE,aAAa,EAAE,OAAO,EAAE,MAAM,aAAa,CAAA;AAClE,YAAY,EAAE,aAAa,EAAE,MAAM,aAAa,CAAA;AAEhD,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAA;AAC7C,YAAY,EAAE,mBAAmB,EAAE,kBAAkB,EAAE,MAAM,gBAAgB,CAAA;AAE7E,OAAO,EAAE,KAAK,EAAE,eAAe,EAAE,MAAM,YAAY,CAAA;AAEnD,OAAO,EAAE,cAAc,EAAE,MAAM,eAAe,CAAA;AAE9C,OAAO,EAAE,UAAU,EAAE,cAAc,EAAE,sBAAsB,EAAE,MAAM,cAAc,CAAA;AACjF,YAAY,EACV,gBAAgB,EAChB,oBAAoB,EACpB,mBAAmB,GACpB,MAAM,cAAc,CAAA;AAErB,OAAO,EACL,SAAS,EACT,QAAQ,EACR,kBAAkB,EAClB,YAAY,EACZ,YAAY,EACZ,UAAU,EACV,UAAU,EACV,kBAAkB,EAClB,oBAAoB,GACrB,MAAM,aAAa,CAAA;AACpB,YAAY,EACV,eAAe,EACf,cAAc,EACd,wBAAwB,EACxB,iBAAiB,GAClB,MAAM,aAAa,CAAA;AAEpB,OAAO,EAAE,SAAS,EAAE,WAAW,EAAE,WAAW,EAAE,MAAM,aAAa,CAAA;AACjE,YAAY,EAAE,eAAe,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAA;AAEpE,OAAO,EACL,WAAW,EACX,aAAa,EACb,mBAAmB,EACnB,aAAa,GACd,MAAM,eAAe,CAAA;AACtB,YAAY,EACV,iBAAiB,EACjB,kBAAkB,EAClB,kBAAkB,GACnB,MAAM,eAAe,CAAA;AAEtB,OAAO,EAAE,YAAY,EAAE,MAAM,YAAY,CAAA;AACzC,YAAY,EAAE,SAAS,EAAE,MAAM,YAAY,CAAA;AAE3C,OAAO,EAAE,eAAe,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAA;AAC/D,YAAY,EAAE,qBAAqB,EAAE,gBAAgB,EAAE,MAAM,mBAAmB,CAAA;AAEhF,OAAO,EAAE,UAAU,EAAE,WAAW,EAAE,MAAM,cAAc,CAAA;AACtD,YAAY,EAAE,gBAAgB,EAAE,MAAM,cAAc,CAAA;AAEpD,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAA;AAChD,YAAY,EAAE,iBAAiB,EAAE,MAAM,mBAAmB,CAAA;AAE1D,OAAO,EACL,aAAa,EACb,sBAAsB,EACtB,+BAA+B,EAC/B,MAAM,GACP,MAAM,oBAAoB,CAAA;AAC3B,YAAY,EAAE,kBAAkB,EAAE,YAAY,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAA;AAE1F,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAA;AAClD,YAAY,EAAE,kBAAkB,EAAE,MAAM,oBAAoB,CAAA;AAE5D,OAAO,EAAE,WAAW,EAAE,oBAAoB,EAAE,MAAM,kBAAkB,CAAA;AACpE,YAAY,EAAE,gBAAgB,EAAE,MAAM,kBAAkB,CAAA;AAExD,OAAO,EAAE,iBAAiB,EAAE,qBAAqB,EAAE,MAAM,wBAAwB,CAAA;AACjF,YAAY,EAAE,sBAAsB,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAA;AAEvF,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAA;AAChD,YAAY,EAAE,iBAAiB,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAA;AAExE,OAAO,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAA;AACxD,YAAY,EAAE,qBAAqB,EAAE,MAAM,uBAAuB,CAAA;AAElE,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAA;AAC9C,YAAY,EAAE,gBAAgB,EAAE,MAAM,kBAAkB,CAAA;AAExD,OAAO,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAA;AACtD,YAAY,EAAE,oBAAoB,EAAE,MAAM,sBAAsB,CAAA;AAEhE,OAAO,EAAE,mBAAmB,EAAE,MAAM,0BAA0B,CAAA;AAC9D,YAAY,EAAE,wBAAwB,EAAE,MAAM,0BAA0B,CAAA;AAExE,OAAO,EACL,aAAa,EACb,WAAW,EACX,WAAW,EACX,UAAU,EACV,UAAU,EACV,YAAY,EACZ,kBAAkB,EAClB,oBAAoB,EACpB,cAAc,EACd,kBAAkB,EAClB,kBAAkB,EAClB,eAAe,EACf,YAAY,EACZ,eAAe,EACf,oBAAoB,GACrB,MAAM,YAAY,CAAA;AACnB,YAAY,EACV,mBAAmB,EACnB,iBAAiB,EACjB,kBAAkB,EAClB,wBAAwB,EACxB,0BAA0B,EAC1B,mBAAmB,EACnB,kBAAkB,EAClB,uBAAuB,EACvB,uBAAuB,EACvB,iBAAiB,GAClB,MAAM,YAAY,CAAA;AAEnB,YAAY,EACV,WAAW,EACX,OAAO,EACP,OAAO,EACP,UAAU,EACV,YAAY,EACZ,OAAO,EACP,YAAY,EACZ,WAAW,EACX,SAAS,EACT,YAAY,EACZ,IAAI,EACJ,QAAQ,EACR,cAAc,EACd,gBAAgB,EAChB,aAAa,EACb,aAAa,EACb,MAAM,EACN,UAAU,EACV,IAAI,EACJ,cAAc,EACd,KAAK,EACL,SAAS,EACT,OAAO,EACP,aAAa,GACd,MAAM,YAAY,CAAA"}
package/dist/index.js CHANGED
@@ -7,7 +7,8 @@
7
7
  // and provider end up in the *same* React context instance. Without it
8
8
  // useUniversal() throws "must be called inside <UniversalProvider>" even
9
9
  // when the provider is in the tree.
10
- export { UniversalProvider, useUniversal } from './provider.js';
10
+ export { UniversalProvider, useUniversal, useLanguage } from './provider.js';
11
+ export { SUPPORTED_LANGUAGES, DEFAULT_LANGUAGE, isSupportedLanguage, resolveLanguage, t as translateNav, } from './i18n.js';
11
12
  export { useUser, useOrg, signInWithPassword, signOut } from './auth.js';
12
13
  export { useHasAccess, useHasFeature, useSeat } from './access.js';
13
14
  export { useChangelog } from './changelog.js';
@@ -21,7 +22,7 @@ export { useTrialMode } from './trial.js';
21
22
  export { useSubscription, useCredits } from './subscription.js';
22
23
  export { TrialBadge, UpgradeWall } from './TrialUi.js';
23
24
  export { UniversalBar } from './UniversalBar.js';
24
- export { SuiteSwitcher, DEFAULT_SUITE_PRODUCTS, UKFlag } from './SuiteSwitcher.js';
25
+ export { SuiteSwitcher, DEFAULT_SUITE_PRODUCTS, DEFAULT_UNIVERSAL_APPS_PRODUCTS, UKFlag, } from './SuiteSwitcher.js';
25
26
  export { ChangelogMenu } from './ChangelogMenu.js';
26
27
  export { CompanyMenu, DEFAULT_COMPANY_URLS } from './CompanyMenu.js';
27
28
  export { KnowledgeBaseMenu, DEFAULT_COMPANY_ITEMS } from './KnowledgeBaseMenu.js';
@@ -29,5 +30,6 @@ export { SettingsMenu } from './SettingsMenu.js';
29
30
  export { AppSettingsShell } from './AppSettingsShell.js';
30
31
  export { UserProfile } from './UserProfile.js';
31
32
  export { UniversalNavBar } from './UniversalNavBar.js';
33
+ export { UniversalAppsNavBar } from './UniversalAppsNavBar.js';
32
34
  export { useOrgMembers, useOrgSeats, useAuditLog, assignSeat, revokeSeat, reassignSeat, useIsPlatformAdmin, usePlatformAdminOrgs, useEntitlement, createOrganisation, updateSubscription, findUserByEmail, addOrgMember, removeOrgMember, PLATFORM_ADMIN_EMAIL, } from './admin.js';
33
35
  //# sourceMappingURL=index.js.map
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,YAAY,CAAA;AACZ,4BAA4B;AAC5B,0FAA0F;AAC1F,EAAE;AACF,8EAA8E;AAC9E,2EAA2E;AAC3E,uEAAuE;AACvE,yEAAyE;AACzE,oCAAoC;AAEpC,OAAO,EAAE,iBAAiB,EAAE,YAAY,EAAE,MAAM,eAAe,CAAA;AAG/D,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,kBAAkB,EAAE,OAAO,EAAE,MAAM,WAAW,CAAA;AAGxE,OAAO,EAAE,YAAY,EAAE,aAAa,EAAE,OAAO,EAAE,MAAM,aAAa,CAAA;AAGlE,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAA;AAG7C,OAAO,EAAE,KAAK,EAAE,eAAe,EAAE,MAAM,YAAY,CAAA;AAEnD,OAAO,EAAE,cAAc,EAAE,MAAM,eAAe,CAAA;AAE9C,OAAO,EAAE,UAAU,EAAE,cAAc,EAAE,sBAAsB,EAAE,MAAM,cAAc,CAAA;AAOjF,OAAO,EACL,SAAS,EACT,QAAQ,EACR,kBAAkB,EAClB,YAAY,EACZ,YAAY,EACZ,UAAU,EACV,UAAU,EACV,kBAAkB,EAClB,oBAAoB,GACrB,MAAM,aAAa,CAAA;AAQpB,OAAO,EAAE,SAAS,EAAE,WAAW,EAAE,WAAW,EAAE,MAAM,aAAa,CAAA;AAGjE,OAAO,EACL,WAAW,EACX,aAAa,EACb,mBAAmB,EACnB,aAAa,GACd,MAAM,eAAe,CAAA;AAOtB,OAAO,EAAE,YAAY,EAAE,MAAM,YAAY,CAAA;AAGzC,OAAO,EAAE,eAAe,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAA;AAG/D,OAAO,EAAE,UAAU,EAAE,WAAW,EAAE,MAAM,cAAc,CAAA;AAGtD,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAA;AAGhD,OAAO,EAAE,aAAa,EAAE,sBAAsB,EAAE,MAAM,EAAE,MAAM,oBAAoB,CAAA;AAGlF,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAA;AAGlD,OAAO,EAAE,WAAW,EAAE,oBAAoB,EAAE,MAAM,kBAAkB,CAAA;AAGpE,OAAO,EAAE,iBAAiB,EAAE,qBAAqB,EAAE,MAAM,wBAAwB,CAAA;AAGjF,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAA;AAGhD,OAAO,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAA;AAGxD,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAA;AAG9C,OAAO,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAA;AAGtD,OAAO,EACL,aAAa,EACb,WAAW,EACX,WAAW,EACX,UAAU,EACV,UAAU,EACV,YAAY,EACZ,kBAAkB,EAClB,oBAAoB,EACpB,cAAc,EACd,kBAAkB,EAClB,kBAAkB,EAClB,eAAe,EACf,YAAY,EACZ,eAAe,EACf,oBAAoB,GACrB,MAAM,YAAY,CAAA"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,YAAY,CAAA;AACZ,4BAA4B;AAC5B,0FAA0F;AAC1F,EAAE;AACF,8EAA8E;AAC9E,2EAA2E;AAC3E,uEAAuE;AACvE,yEAAyE;AACzE,oCAAoC;AAEpC,OAAO,EAAE,iBAAiB,EAAE,YAAY,EAAE,WAAW,EAAE,MAAM,eAAe,CAAA;AAG5E,OAAO,EACL,mBAAmB,EACnB,gBAAgB,EAChB,mBAAmB,EACnB,eAAe,EACf,CAAC,IAAI,YAAY,GAClB,MAAM,WAAW,CAAA;AAGlB,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,kBAAkB,EAAE,OAAO,EAAE,MAAM,WAAW,CAAA;AAGxE,OAAO,EAAE,YAAY,EAAE,aAAa,EAAE,OAAO,EAAE,MAAM,aAAa,CAAA;AAGlE,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAA;AAG7C,OAAO,EAAE,KAAK,EAAE,eAAe,EAAE,MAAM,YAAY,CAAA;AAEnD,OAAO,EAAE,cAAc,EAAE,MAAM,eAAe,CAAA;AAE9C,OAAO,EAAE,UAAU,EAAE,cAAc,EAAE,sBAAsB,EAAE,MAAM,cAAc,CAAA;AAOjF,OAAO,EACL,SAAS,EACT,QAAQ,EACR,kBAAkB,EAClB,YAAY,EACZ,YAAY,EACZ,UAAU,EACV,UAAU,EACV,kBAAkB,EAClB,oBAAoB,GACrB,MAAM,aAAa,CAAA;AAQpB,OAAO,EAAE,SAAS,EAAE,WAAW,EAAE,WAAW,EAAE,MAAM,aAAa,CAAA;AAGjE,OAAO,EACL,WAAW,EACX,aAAa,EACb,mBAAmB,EACnB,aAAa,GACd,MAAM,eAAe,CAAA;AAOtB,OAAO,EAAE,YAAY,EAAE,MAAM,YAAY,CAAA;AAGzC,OAAO,EAAE,eAAe,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAA;AAG/D,OAAO,EAAE,UAAU,EAAE,WAAW,EAAE,MAAM,cAAc,CAAA;AAGtD,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAA;AAGhD,OAAO,EACL,aAAa,EACb,sBAAsB,EACtB,+BAA+B,EAC/B,MAAM,GACP,MAAM,oBAAoB,CAAA;AAG3B,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAA;AAGlD,OAAO,EAAE,WAAW,EAAE,oBAAoB,EAAE,MAAM,kBAAkB,CAAA;AAGpE,OAAO,EAAE,iBAAiB,EAAE,qBAAqB,EAAE,MAAM,wBAAwB,CAAA;AAGjF,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAA;AAGhD,OAAO,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAA;AAGxD,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAA;AAG9C,OAAO,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAA;AAGtD,OAAO,EAAE,mBAAmB,EAAE,MAAM,0BAA0B,CAAA;AAG9D,OAAO,EACL,aAAa,EACb,WAAW,EACX,WAAW,EACX,UAAU,EACV,UAAU,EACV,YAAY,EACZ,kBAAkB,EAClB,oBAAoB,EACpB,cAAc,EACd,kBAAkB,EAClB,kBAAkB,EAClB,eAAe,EACf,YAAY,EACZ,eAAe,EACf,oBAAoB,GACrB,MAAM,YAAY,CAAA"}
@@ -1,6 +1,7 @@
1
1
  import { type SupabaseClient, type Session } from '@supabase/supabase-js';
2
2
  import { type ReactNode } from 'react';
3
3
  import type { ProductCode } from './types.js';
4
+ import { type Language } from './i18n.js';
4
5
  export interface UniversalConfig {
5
6
  supabaseUrl: string;
6
7
  supabaseAnonKey: string;
@@ -15,6 +16,8 @@ interface UniversalContextValue {
15
16
  loading: boolean;
16
17
  activeOrgId: string | null;
17
18
  setActiveOrgId: (orgId: string | null) => void;
19
+ language: Language;
20
+ setLanguage: (lang: Language) => void;
18
21
  }
19
22
  export interface UniversalProviderProps {
20
23
  config: UniversalConfig;
@@ -22,5 +25,20 @@ export interface UniversalProviderProps {
22
25
  }
23
26
  export declare function UniversalProvider({ config, children }: UniversalProviderProps): import("react/jsx-runtime").JSX.Element;
24
27
  export declare function useUniversal(): UniversalContextValue;
28
+ /**
29
+ * Read and update the suite-wide language preference. On Assess products
30
+ * (when UniversalProvider has a cookieDomain) the choice persists in a
31
+ * cookie scoped to .unisim.co.uk so it follows the user across products.
32
+ * On the Universal Apps (no cookieDomain — separate origins) it persists in
33
+ * localStorage scoped to the current origin.
34
+ *
35
+ * Each host product's own translation layer (Ergo's i18next, Exports'
36
+ * Context, etc.) should call setLanguage() alongside its existing setter so
37
+ * the SDK-rendered navbar flips in lockstep with the app body.
38
+ */
39
+ export declare function useLanguage(): {
40
+ language: Language;
41
+ setLanguage: (lang: Language) => void;
42
+ };
25
43
  export {};
26
44
  //# sourceMappingURL=provider.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"provider.d.ts","sourceRoot":"","sources":["../src/provider.tsx"],"names":[],"mappings":"AAEA,OAAO,EAAgB,KAAK,cAAc,EAAE,KAAK,OAAO,EAAE,MAAM,uBAAuB,CAAA;AACvF,OAAO,EAOL,KAAK,SAAS,EACf,MAAM,OAAO,CAAA;AACd,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,YAAY,CAAA;AAE7C,MAAM,WAAW,eAAe;IAC9B,WAAW,EAAE,MAAM,CAAA;IACnB,eAAe,EAAE,MAAM,CAAA;IACvB,OAAO,EAAE,WAAW,CAAA;IACpB,YAAY,CAAC,EAAE,MAAM,CAAA;IACrB,YAAY,CAAC,EAAE,MAAM,CAAA;CACtB;AAED,UAAU,qBAAqB;IAC7B,MAAM,EAAE,eAAe,CAAA;IACvB,QAAQ,EAAE,cAAc,CAAA;IACxB,OAAO,EAAE,OAAO,GAAG,IAAI,CAAA;IACvB,OAAO,EAAE,OAAO,CAAA;IAChB,WAAW,EAAE,MAAM,GAAG,IAAI,CAAA;IAC1B,cAAc,EAAE,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI,KAAK,IAAI,CAAA;CAC/C;AAMD,MAAM,WAAW,sBAAsB;IACrC,MAAM,EAAE,eAAe,CAAA;IACvB,QAAQ,EAAE,SAAS,CAAA;CACpB;AA0DD,wBAAgB,iBAAiB,CAAC,EAAE,MAAM,EAAE,QAAQ,EAAE,EAAE,sBAAsB,2CAmF7E;AAED,wBAAgB,YAAY,IAAI,qBAAqB,CAMpD"}
1
+ {"version":3,"file":"provider.d.ts","sourceRoot":"","sources":["../src/provider.tsx"],"names":[],"mappings":"AAEA,OAAO,EAAgB,KAAK,cAAc,EAAE,KAAK,OAAO,EAAE,MAAM,uBAAuB,CAAA;AACvF,OAAO,EAOL,KAAK,SAAS,EACf,MAAM,OAAO,CAAA;AACd,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,YAAY,CAAA;AAC7C,OAAO,EAAqC,KAAK,QAAQ,EAAE,MAAM,WAAW,CAAA;AAE5E,MAAM,WAAW,eAAe;IAC9B,WAAW,EAAE,MAAM,CAAA;IACnB,eAAe,EAAE,MAAM,CAAA;IACvB,OAAO,EAAE,WAAW,CAAA;IACpB,YAAY,CAAC,EAAE,MAAM,CAAA;IACrB,YAAY,CAAC,EAAE,MAAM,CAAA;CACtB;AAED,UAAU,qBAAqB;IAC7B,MAAM,EAAE,eAAe,CAAA;IACvB,QAAQ,EAAE,cAAc,CAAA;IACxB,OAAO,EAAE,OAAO,GAAG,IAAI,CAAA;IACvB,OAAO,EAAE,OAAO,CAAA;IAChB,WAAW,EAAE,MAAM,GAAG,IAAI,CAAA;IAC1B,cAAc,EAAE,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI,KAAK,IAAI,CAAA;IAC9C,QAAQ,EAAE,QAAQ,CAAA;IAClB,WAAW,EAAE,CAAC,IAAI,EAAE,QAAQ,KAAK,IAAI,CAAA;CACtC;AA0BD,MAAM,WAAW,sBAAsB;IACrC,MAAM,EAAE,eAAe,CAAA;IACvB,QAAQ,EAAE,SAAS,CAAA;CACpB;AA0DD,wBAAgB,iBAAiB,CAAC,EAAE,MAAM,EAAE,QAAQ,EAAE,EAAE,sBAAsB,2CAiI7E;AAED,wBAAgB,YAAY,IAAI,qBAAqB,CAMpD;AAED;;;;;;;;;;GAUG;AACH,wBAAgB,WAAW,IAAI;IAAE,QAAQ,EAAE,QAAQ,CAAC;IAAC,WAAW,EAAE,CAAC,IAAI,EAAE,QAAQ,KAAK,IAAI,CAAA;CAAE,CAG3F"}
package/dist/provider.js CHANGED
@@ -2,8 +2,27 @@
2
2
  import { jsx as _jsx } from "react/jsx-runtime";
3
3
  import { createClient } from '@supabase/supabase-js';
4
4
  import { createContext, useContext, useEffect, useMemo, useRef, useState, } from 'react';
5
+ import { DEFAULT_LANGUAGE, resolveLanguage } from './i18n.js';
5
6
  const UniversalContext = createContext(null);
6
7
  const ACTIVE_ORG_STORAGE_KEY = 'universal:active_org_id';
8
+ const LANGUAGE_STORAGE_KEY = 'universal:language';
9
+ // Products that are part of the open-source local-first Universal Apps
10
+ // suite. These all set cookieDomain so the SDK's Supabase session storage
11
+ // can ride on .unisim.co.uk like the Assess apps do, but language
12
+ // preferences must NOT cross between Universal Apps and Assess — the apps
13
+ // are anonymous tools while Assess is a logged-in multi-tenant SaaS. So
14
+ // for language we override the cookie path and fall back to localStorage,
15
+ // keeping each app's choice scoped to its own origin.
16
+ //
17
+ // Future enterprise apps added under the Assess umbrella don't need to
18
+ // appear here — they get the shared cookie automatically, which is the
19
+ // desired carry-over behaviour.
20
+ const UNIVERSAL_APP_PRODUCTS = [
21
+ 'pdf', 'webinar', 'images', 'exports', 'emailer',
22
+ ];
23
+ function isUniversalApp(product) {
24
+ return UNIVERSAL_APP_PRODUCTS.includes(product);
25
+ }
7
26
  // ──────────────────────────────────────────────────────────────────────────────
8
27
  // Cookie-backed storage adapter — the load-bearing piece for cross-subdomain
9
28
  // SSO. Supabase JS defaults to localStorage which is origin-scoped, so a
@@ -85,6 +104,17 @@ export function UniversalProvider({ config, children }) {
85
104
  // Helper for the activeOrgId state — same cookie domain as the session so
86
105
  // the user's "active org" choice also travels across subdomains.
87
106
  const orgIdStore = useMemo(() => config.cookieDomain ? createCookieStorage(config.cookieDomain) : null, [config.cookieDomain]);
107
+ // Language preference. For Assess products (Ergo / Cyber / Workplace /
108
+ // future enterprise apps), the cookie rides on .unisim.co.uk so the
109
+ // choice follows the user into the next Assess product they open. The
110
+ // Universal Apps deliberately skip the cookie — even though they set
111
+ // cookieDomain for Supabase session reasons, language must stay scoped
112
+ // to the current app's origin so an anonymous PDF user picking French
113
+ // doesn't suddenly reframe the Assess SaaS for a different user on the
114
+ // same machine.
115
+ const languageStore = useMemo(() => (config.cookieDomain && !isUniversalApp(config.product))
116
+ ? createCookieStorage(config.cookieDomain)
117
+ : null, [config.cookieDomain, config.product]);
88
118
  const [session, setSession] = useState(null);
89
119
  const [loading, setLoading] = useState(true);
90
120
  const [activeOrgId, setActiveOrgIdState] = useState(() => {
@@ -94,6 +124,25 @@ export function UniversalProvider({ config, children }) {
94
124
  ? orgIdStore.getItem(ACTIVE_ORG_STORAGE_KEY)
95
125
  : window.localStorage.getItem(ACTIVE_ORG_STORAGE_KEY);
96
126
  });
127
+ // Always boot with the default so server-rendered HTML and the first
128
+ // client render produce identical markup. A useEffect below upgrades to
129
+ // the persisted choice (or browser locale) after hydration completes —
130
+ // mirrors the pattern Ergo's i18next setup uses in lib/i18n.ts.
131
+ const [language, setLanguageState] = useState(DEFAULT_LANGUAGE);
132
+ useEffect(() => {
133
+ if (typeof window === 'undefined')
134
+ return;
135
+ const stored = languageStore
136
+ ? languageStore.getItem(LANGUAGE_STORAGE_KEY)
137
+ : window.localStorage.getItem(LANGUAGE_STORAGE_KEY);
138
+ const resolved = resolveLanguage(stored) ??
139
+ resolveLanguage(typeof navigator !== 'undefined' ? navigator.language : null) ??
140
+ DEFAULT_LANGUAGE;
141
+ if (resolved !== language)
142
+ setLanguageState(resolved);
143
+ // Only fire on mount — subsequent updates flow through setLanguage().
144
+ // eslint-disable-next-line react-hooks/exhaustive-deps
145
+ }, []);
97
146
  const initialised = useRef(false);
98
147
  useEffect(() => {
99
148
  if (initialised.current)
@@ -127,6 +176,17 @@ export function UniversalProvider({ config, children }) {
127
176
  window.localStorage.removeItem(ACTIVE_ORG_STORAGE_KEY);
128
177
  }
129
178
  };
179
+ const setLanguage = (lang) => {
180
+ setLanguageState(lang);
181
+ if (typeof window === 'undefined')
182
+ return;
183
+ if (languageStore) {
184
+ languageStore.setItem(LANGUAGE_STORAGE_KEY, lang);
185
+ }
186
+ else {
187
+ window.localStorage.setItem(LANGUAGE_STORAGE_KEY, lang);
188
+ }
189
+ };
130
190
  const value = {
131
191
  config,
132
192
  supabase,
@@ -134,6 +194,8 @@ export function UniversalProvider({ config, children }) {
134
194
  loading,
135
195
  activeOrgId,
136
196
  setActiveOrgId,
197
+ language,
198
+ setLanguage,
137
199
  };
138
200
  return _jsx(UniversalContext.Provider, { value: value, children: children });
139
201
  }
@@ -144,4 +206,19 @@ export function useUniversal() {
144
206
  }
145
207
  return ctx;
146
208
  }
209
+ /**
210
+ * Read and update the suite-wide language preference. On Assess products
211
+ * (when UniversalProvider has a cookieDomain) the choice persists in a
212
+ * cookie scoped to .unisim.co.uk so it follows the user across products.
213
+ * On the Universal Apps (no cookieDomain — separate origins) it persists in
214
+ * localStorage scoped to the current origin.
215
+ *
216
+ * Each host product's own translation layer (Ergo's i18next, Exports'
217
+ * Context, etc.) should call setLanguage() alongside its existing setter so
218
+ * the SDK-rendered navbar flips in lockstep with the app body.
219
+ */
220
+ export function useLanguage() {
221
+ const { language, setLanguage } = useUniversal();
222
+ return { language, setLanguage };
223
+ }
147
224
  //# sourceMappingURL=provider.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"provider.js","sourceRoot":"","sources":["../src/provider.tsx"],"names":[],"mappings":"AAAA,YAAY,CAAA;;AAEZ,OAAO,EAAE,YAAY,EAAqC,MAAM,uBAAuB,CAAA;AACvF,OAAO,EACL,aAAa,EACb,UAAU,EACV,SAAS,EACT,OAAO,EACP,MAAM,EACN,QAAQ,GAET,MAAM,OAAO,CAAA;AAoBd,MAAM,gBAAgB,GAAG,aAAa,CAA+B,IAAI,CAAC,CAAA;AAE1E,MAAM,sBAAsB,GAAG,yBAAyB,CAAA;AAOxD,iFAAiF;AACjF,6EAA6E;AAC7E,yEAAyE;AACzE,0EAA0E;AAC1E,2EAA2E;AAC3E,wEAAwE;AACxE,EAAE;AACF,sEAAsE;AACtE,qEAAqE;AACrE,YAAY;AACZ,iFAAiF;AAEjF,SAAS,mBAAmB,CAAC,MAAc;IACzC,MAAM,MAAM,GACV,OAAO,MAAM,KAAK,WAAW,IAAI,MAAM,CAAC,QAAQ,CAAC,QAAQ,KAAK,QAAQ,CAAA;IAExE,OAAO;QACL,OAAO,CAAC,GAAW;YACjB,IAAI,OAAO,QAAQ,KAAK,WAAW;gBAAE,OAAO,IAAI,CAAA;YAChD,MAAM,OAAO,GAAG,kBAAkB,CAAC,GAAG,CAAC,CAAA;YACvC,KAAK,MAAM,MAAM,IAAI,QAAQ,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC;gBACjD,MAAM,EAAE,GAAG,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,CAAA;gBAC9B,MAAM,IAAI,GAAG,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,CAAA;gBACrD,IAAI,IAAI,KAAK,OAAO,EAAE,CAAC;oBACrB,OAAO,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,kBAAkB,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC,CAAA;gBAClE,CAAC;YACH,CAAC;YACD,OAAO,IAAI,CAAA;QACb,CAAC;QACD,OAAO,CAAC,GAAW,EAAE,KAAa;YAChC,IAAI,OAAO,QAAQ,KAAK,WAAW;gBAAE,OAAM;YAC3C,MAAM,KAAK,GAAG;gBACZ,GAAG,kBAAkB,CAAC,GAAG,CAAC,IAAI,kBAAkB,CAAC,KAAK,CAAC,EAAE;gBACzD,QAAQ;gBACR,UAAU,MAAM,EAAE;gBAClB,WAAW,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,GAAG,EAAE,EAAG,SAAS;gBAC3C,cAAc;aACf,CAAA;YACD,IAAI,MAAM;gBAAE,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAA;YAChC,QAAQ,CAAC,MAAM,GAAG,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;QACpC,CAAC;QACD,UAAU,CAAC,GAAW;YACpB,IAAI,OAAO,QAAQ,KAAK,WAAW;gBAAE,OAAM;YAC3C,MAAM,KAAK,GAAG;gBACZ,GAAG,kBAAkB,CAAC,GAAG,CAAC,GAAG;gBAC7B,QAAQ;gBACR,UAAU,MAAM,EAAE;gBAClB,WAAW;gBACX,cAAc;aACf,CAAA;YACD,IAAI,MAAM;gBAAE,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAA;YAChC,QAAQ,CAAC,MAAM,GAAG,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;QACpC,CAAC;KACF,CAAA;AACH,CAAC;AAED,MAAM,UAAU,iBAAiB,CAAC,EAAE,MAAM,EAAE,QAAQ,EAA0B;IAC5E,MAAM,QAAQ,GAAG,OAAO,CACtB,GAAG,EAAE;QACH,uEAAuE;QACvE,mEAAmE;QACnE,yDAAyD;QACzD,MAAM,OAAO,GAAG,MAAM,CAAC,YAAY;YACjC,CAAC,CAAC,mBAAmB,CAAC,MAAM,CAAC,YAAY,CAAC;YAC1C,CAAC,CAAC,SAAS,CAAA,CAAE,uCAAuC;QAEtD,OAAO,YAAY,CAAC,MAAM,CAAC,WAAW,EAAE,MAAM,CAAC,eAAe,EAAE;YAC9D,IAAI,EAAE;gBACJ,cAAc,EAAE,IAAI;gBACpB,gBAAgB,EAAE,IAAI;gBACtB,kBAAkB,EAAE,IAAI;gBACxB,UAAU,EAAE,sBAAsB;gBAClC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;gBAC/B,GAAG,CAAC,MAAM,CAAC,YAAY;oBACrB,CAAC,CAAC,EAAE,aAAa,EAAE,EAAE,MAAM,EAAE,MAAM,CAAC,YAAY,EAAE,QAAQ,EAAE,KAAK,EAAE,EAAE;oBACrE,CAAC,CAAC,EAAE,CAAC;aACR;SACF,CAAC,CAAA;IACJ,CAAC,EACD,CAAC,MAAM,CAAC,WAAW,EAAE,MAAM,CAAC,eAAe,EAAE,MAAM,CAAC,YAAY,CAAC,CAClE,CAAA;IAED,0EAA0E;IAC1E,iEAAiE;IACjE,MAAM,UAAU,GAAG,OAAO,CACxB,GAAG,EAAE,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC,CAAC,mBAAmB,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,IAAI,EAC3E,CAAC,MAAM,CAAC,YAAY,CAAC,CACtB,CAAA;IAED,MAAM,CAAC,OAAO,EAAE,UAAU,CAAC,GAAG,QAAQ,CAAiB,IAAI,CAAC,CAAA;IAC5D,MAAM,CAAC,OAAO,EAAE,UAAU,CAAC,GAAG,QAAQ,CAAC,IAAI,CAAC,CAAA;IAC5C,MAAM,CAAC,WAAW,EAAE,mBAAmB,CAAC,GAAG,QAAQ,CAAgB,GAAG,EAAE;QACtE,IAAI,OAAO,MAAM,KAAK,WAAW;YAAE,OAAO,IAAI,CAAA;QAC9C,OAAO,UAAU;YACf,CAAC,CAAC,UAAU,CAAC,OAAO,CAAC,sBAAsB,CAAC;YAC5C,CAAC,CAAC,MAAM,CAAC,YAAY,CAAC,OAAO,CAAC,sBAAsB,CAAC,CAAA;IACzD,CAAC,CAAC,CAAA;IAEF,MAAM,WAAW,GAAG,MAAM,CAAC,KAAK,CAAC,CAAA;IACjC,SAAS,CAAC,GAAG,EAAE;QACb,IAAI,WAAW,CAAC,OAAO;YAAE,OAAM;QAC/B,WAAW,CAAC,OAAO,GAAG,IAAI,CAAA;QAE1B,QAAQ,CAAC,IAAI,CAAC,UAAU,EAAE,CAAC,IAAI,CAAC,CAAC,EAAE,IAAI,EAAE,EAAE,EAAE;YAC3C,UAAU,CAAC,IAAI,CAAC,OAAO,CAAC,CAAA;YACxB,UAAU,CAAC,KAAK,CAAC,CAAA;QACnB,CAAC,CAAC,CAAA;QAEF,MAAM,EAAE,IAAI,EAAE,YAAY,EAAE,GAAG,QAAQ,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC,MAAM,EAAE,UAAU,EAAE,EAAE;YACpF,UAAU,CAAC,UAAU,CAAC,CAAA;QACxB,CAAC,CAAC,CAAA;QAEF,OAAO,GAAG,EAAE;YACV,YAAY,CAAC,YAAY,CAAC,WAAW,EAAE,CAAA;QACzC,CAAC,CAAA;IACH,CAAC,EAAE,CAAC,QAAQ,CAAC,CAAC,CAAA;IAEd,MAAM,cAAc,GAAG,CAAC,KAAoB,EAAE,EAAE;QAC9C,mBAAmB,CAAC,KAAK,CAAC,CAAA;QAC1B,IAAI,OAAO,MAAM,KAAK,WAAW;YAAE,OAAM;QACzC,IAAI,UAAU,EAAE,CAAC;YACf,IAAI,KAAK;gBAAE,UAAU,CAAC,OAAO,CAAC,sBAAsB,EAAE,KAAK,CAAC,CAAA;;gBACvD,UAAU,CAAC,UAAU,CAAC,sBAAsB,CAAC,CAAA;QACpD,CAAC;aAAM,CAAC;YACN,IAAI,KAAK;gBAAE,MAAM,CAAC,YAAY,CAAC,OAAO,CAAC,sBAAsB,EAAE,KAAK,CAAC,CAAA;;gBAChE,MAAM,CAAC,YAAY,CAAC,UAAU,CAAC,sBAAsB,CAAC,CAAA;QAC7D,CAAC;IACH,CAAC,CAAA;IAED,MAAM,KAAK,GAA0B;QACnC,MAAM;QACN,QAAQ;QACR,OAAO;QACP,OAAO;QACP,WAAW;QACX,cAAc;KACf,CAAA;IAED,OAAO,KAAC,gBAAgB,CAAC,QAAQ,IAAC,KAAK,EAAE,KAAK,YAAG,QAAQ,GAA6B,CAAA;AACxF,CAAC;AAED,MAAM,UAAU,YAAY;IAC1B,MAAM,GAAG,GAAG,UAAU,CAAC,gBAAgB,CAAC,CAAA;IACxC,IAAI,CAAC,GAAG,EAAE,CAAC;QACT,MAAM,IAAI,KAAK,CAAC,0DAA0D,CAAC,CAAA;IAC7E,CAAC;IACD,OAAO,GAAG,CAAA;AACZ,CAAC"}
1
+ {"version":3,"file":"provider.js","sourceRoot":"","sources":["../src/provider.tsx"],"names":[],"mappings":"AAAA,YAAY,CAAA;;AAEZ,OAAO,EAAE,YAAY,EAAqC,MAAM,uBAAuB,CAAA;AACvF,OAAO,EACL,aAAa,EACb,UAAU,EACV,SAAS,EACT,OAAO,EACP,MAAM,EACN,QAAQ,GAET,MAAM,OAAO,CAAA;AAEd,OAAO,EAAE,gBAAgB,EAAE,eAAe,EAAiB,MAAM,WAAW,CAAA;AAqB5E,MAAM,gBAAgB,GAAG,aAAa,CAA+B,IAAI,CAAC,CAAA;AAE1E,MAAM,sBAAsB,GAAG,yBAAyB,CAAA;AACxD,MAAM,oBAAoB,GAAK,oBAAoB,CAAA;AAEnD,uEAAuE;AACvE,0EAA0E;AAC1E,kEAAkE;AAClE,0EAA0E;AAC1E,wEAAwE;AACxE,0EAA0E;AAC1E,sDAAsD;AACtD,EAAE;AACF,uEAAuE;AACvE,uEAAuE;AACvE,gCAAgC;AAChC,MAAM,sBAAsB,GAA2B;IACrD,KAAK,EAAE,SAAS,EAAE,QAAQ,EAAE,SAAS,EAAE,SAAS;CACjD,CAAA;AAED,SAAS,cAAc,CAAC,OAAoB;IAC1C,OAAO,sBAAsB,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAA;AACjD,CAAC;AAOD,iFAAiF;AACjF,6EAA6E;AAC7E,yEAAyE;AACzE,0EAA0E;AAC1E,2EAA2E;AAC3E,wEAAwE;AACxE,EAAE;AACF,sEAAsE;AACtE,qEAAqE;AACrE,YAAY;AACZ,iFAAiF;AAEjF,SAAS,mBAAmB,CAAC,MAAc;IACzC,MAAM,MAAM,GACV,OAAO,MAAM,KAAK,WAAW,IAAI,MAAM,CAAC,QAAQ,CAAC,QAAQ,KAAK,QAAQ,CAAA;IAExE,OAAO;QACL,OAAO,CAAC,GAAW;YACjB,IAAI,OAAO,QAAQ,KAAK,WAAW;gBAAE,OAAO,IAAI,CAAA;YAChD,MAAM,OAAO,GAAG,kBAAkB,CAAC,GAAG,CAAC,CAAA;YACvC,KAAK,MAAM,MAAM,IAAI,QAAQ,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC;gBACjD,MAAM,EAAE,GAAG,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,CAAA;gBAC9B,MAAM,IAAI,GAAG,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,CAAA;gBACrD,IAAI,IAAI,KAAK,OAAO,EAAE,CAAC;oBACrB,OAAO,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,kBAAkB,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC,CAAA;gBAClE,CAAC;YACH,CAAC;YACD,OAAO,IAAI,CAAA;QACb,CAAC;QACD,OAAO,CAAC,GAAW,EAAE,KAAa;YAChC,IAAI,OAAO,QAAQ,KAAK,WAAW;gBAAE,OAAM;YAC3C,MAAM,KAAK,GAAG;gBACZ,GAAG,kBAAkB,CAAC,GAAG,CAAC,IAAI,kBAAkB,CAAC,KAAK,CAAC,EAAE;gBACzD,QAAQ;gBACR,UAAU,MAAM,EAAE;gBAClB,WAAW,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,GAAG,EAAE,EAAG,SAAS;gBAC3C,cAAc;aACf,CAAA;YACD,IAAI,MAAM;gBAAE,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAA;YAChC,QAAQ,CAAC,MAAM,GAAG,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;QACpC,CAAC;QACD,UAAU,CAAC,GAAW;YACpB,IAAI,OAAO,QAAQ,KAAK,WAAW;gBAAE,OAAM;YAC3C,MAAM,KAAK,GAAG;gBACZ,GAAG,kBAAkB,CAAC,GAAG,CAAC,GAAG;gBAC7B,QAAQ;gBACR,UAAU,MAAM,EAAE;gBAClB,WAAW;gBACX,cAAc;aACf,CAAA;YACD,IAAI,MAAM;gBAAE,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAA;YAChC,QAAQ,CAAC,MAAM,GAAG,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;QACpC,CAAC;KACF,CAAA;AACH,CAAC;AAED,MAAM,UAAU,iBAAiB,CAAC,EAAE,MAAM,EAAE,QAAQ,EAA0B;IAC5E,MAAM,QAAQ,GAAG,OAAO,CACtB,GAAG,EAAE;QACH,uEAAuE;QACvE,mEAAmE;QACnE,yDAAyD;QACzD,MAAM,OAAO,GAAG,MAAM,CAAC,YAAY;YACjC,CAAC,CAAC,mBAAmB,CAAC,MAAM,CAAC,YAAY,CAAC;YAC1C,CAAC,CAAC,SAAS,CAAA,CAAE,uCAAuC;QAEtD,OAAO,YAAY,CAAC,MAAM,CAAC,WAAW,EAAE,MAAM,CAAC,eAAe,EAAE;YAC9D,IAAI,EAAE;gBACJ,cAAc,EAAE,IAAI;gBACpB,gBAAgB,EAAE,IAAI;gBACtB,kBAAkB,EAAE,IAAI;gBACxB,UAAU,EAAE,sBAAsB;gBAClC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;gBAC/B,GAAG,CAAC,MAAM,CAAC,YAAY;oBACrB,CAAC,CAAC,EAAE,aAAa,EAAE,EAAE,MAAM,EAAE,MAAM,CAAC,YAAY,EAAE,QAAQ,EAAE,KAAK,EAAE,EAAE;oBACrE,CAAC,CAAC,EAAE,CAAC;aACR;SACF,CAAC,CAAA;IACJ,CAAC,EACD,CAAC,MAAM,CAAC,WAAW,EAAE,MAAM,CAAC,eAAe,EAAE,MAAM,CAAC,YAAY,CAAC,CAClE,CAAA;IAED,0EAA0E;IAC1E,iEAAiE;IACjE,MAAM,UAAU,GAAG,OAAO,CACxB,GAAG,EAAE,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC,CAAC,mBAAmB,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,IAAI,EAC3E,CAAC,MAAM,CAAC,YAAY,CAAC,CACtB,CAAA;IAED,uEAAuE;IACvE,oEAAoE;IACpE,sEAAsE;IACtE,qEAAqE;IACrE,uEAAuE;IACvE,sEAAsE;IACtE,uEAAuE;IACvE,gBAAgB;IAChB,MAAM,aAAa,GAAG,OAAO,CAC3B,GAAG,EAAE,CAAC,CAAC,MAAM,CAAC,YAAY,IAAI,CAAC,cAAc,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;QAC5D,CAAC,CAAC,mBAAmB,CAAC,MAAM,CAAC,YAAY,CAAC;QAC1C,CAAC,CAAC,IAAI,EACR,CAAC,MAAM,CAAC,YAAY,EAAE,MAAM,CAAC,OAAO,CAAC,CACtC,CAAA;IAED,MAAM,CAAC,OAAO,EAAE,UAAU,CAAC,GAAG,QAAQ,CAAiB,IAAI,CAAC,CAAA;IAC5D,MAAM,CAAC,OAAO,EAAE,UAAU,CAAC,GAAG,QAAQ,CAAC,IAAI,CAAC,CAAA;IAC5C,MAAM,CAAC,WAAW,EAAE,mBAAmB,CAAC,GAAG,QAAQ,CAAgB,GAAG,EAAE;QACtE,IAAI,OAAO,MAAM,KAAK,WAAW;YAAE,OAAO,IAAI,CAAA;QAC9C,OAAO,UAAU;YACf,CAAC,CAAC,UAAU,CAAC,OAAO,CAAC,sBAAsB,CAAC;YAC5C,CAAC,CAAC,MAAM,CAAC,YAAY,CAAC,OAAO,CAAC,sBAAsB,CAAC,CAAA;IACzD,CAAC,CAAC,CAAA;IAEF,qEAAqE;IACrE,wEAAwE;IACxE,uEAAuE;IACvE,gEAAgE;IAChE,MAAM,CAAC,QAAQ,EAAE,gBAAgB,CAAC,GAAG,QAAQ,CAAW,gBAAgB,CAAC,CAAA;IACzE,SAAS,CAAC,GAAG,EAAE;QACb,IAAI,OAAO,MAAM,KAAK,WAAW;YAAE,OAAM;QACzC,MAAM,MAAM,GAAG,aAAa;YAC1B,CAAC,CAAC,aAAa,CAAC,OAAO,CAAC,oBAAoB,CAAC;YAC7C,CAAC,CAAC,MAAM,CAAC,YAAY,CAAC,OAAO,CAAC,oBAAoB,CAAC,CAAA;QACrD,MAAM,QAAQ,GACZ,eAAe,CAAC,MAAM,CAAC;YACvB,eAAe,CAAC,OAAO,SAAS,KAAK,WAAW,CAAC,CAAC,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC;YAC7E,gBAAgB,CAAA;QAClB,IAAI,QAAQ,KAAK,QAAQ;YAAE,gBAAgB,CAAC,QAAQ,CAAC,CAAA;QACrD,sEAAsE;QACtE,uDAAuD;IACzD,CAAC,EAAE,EAAE,CAAC,CAAA;IAEN,MAAM,WAAW,GAAG,MAAM,CAAC,KAAK,CAAC,CAAA;IACjC,SAAS,CAAC,GAAG,EAAE;QACb,IAAI,WAAW,CAAC,OAAO;YAAE,OAAM;QAC/B,WAAW,CAAC,OAAO,GAAG,IAAI,CAAA;QAE1B,QAAQ,CAAC,IAAI,CAAC,UAAU,EAAE,CAAC,IAAI,CAAC,CAAC,EAAE,IAAI,EAAE,EAAE,EAAE;YAC3C,UAAU,CAAC,IAAI,CAAC,OAAO,CAAC,CAAA;YACxB,UAAU,CAAC,KAAK,CAAC,CAAA;QACnB,CAAC,CAAC,CAAA;QAEF,MAAM,EAAE,IAAI,EAAE,YAAY,EAAE,GAAG,QAAQ,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC,MAAM,EAAE,UAAU,EAAE,EAAE;YACpF,UAAU,CAAC,UAAU,CAAC,CAAA;QACxB,CAAC,CAAC,CAAA;QAEF,OAAO,GAAG,EAAE;YACV,YAAY,CAAC,YAAY,CAAC,WAAW,EAAE,CAAA;QACzC,CAAC,CAAA;IACH,CAAC,EAAE,CAAC,QAAQ,CAAC,CAAC,CAAA;IAEd,MAAM,cAAc,GAAG,CAAC,KAAoB,EAAE,EAAE;QAC9C,mBAAmB,CAAC,KAAK,CAAC,CAAA;QAC1B,IAAI,OAAO,MAAM,KAAK,WAAW;YAAE,OAAM;QACzC,IAAI,UAAU,EAAE,CAAC;YACf,IAAI,KAAK;gBAAE,UAAU,CAAC,OAAO,CAAC,sBAAsB,EAAE,KAAK,CAAC,CAAA;;gBACvD,UAAU,CAAC,UAAU,CAAC,sBAAsB,CAAC,CAAA;QACpD,CAAC;aAAM,CAAC;YACN,IAAI,KAAK;gBAAE,MAAM,CAAC,YAAY,CAAC,OAAO,CAAC,sBAAsB,EAAE,KAAK,CAAC,CAAA;;gBAChE,MAAM,CAAC,YAAY,CAAC,UAAU,CAAC,sBAAsB,CAAC,CAAA;QAC7D,CAAC;IACH,CAAC,CAAA;IAED,MAAM,WAAW,GAAG,CAAC,IAAc,EAAE,EAAE;QACrC,gBAAgB,CAAC,IAAI,CAAC,CAAA;QACtB,IAAI,OAAO,MAAM,KAAK,WAAW;YAAE,OAAM;QACzC,IAAI,aAAa,EAAE,CAAC;YAClB,aAAa,CAAC,OAAO,CAAC,oBAAoB,EAAE,IAAI,CAAC,CAAA;QACnD,CAAC;aAAM,CAAC;YACN,MAAM,CAAC,YAAY,CAAC,OAAO,CAAC,oBAAoB,EAAE,IAAI,CAAC,CAAA;QACzD,CAAC;IACH,CAAC,CAAA;IAED,MAAM,KAAK,GAA0B;QACnC,MAAM;QACN,QAAQ;QACR,OAAO;QACP,OAAO;QACP,WAAW;QACX,cAAc;QACd,QAAQ;QACR,WAAW;KACZ,CAAA;IAED,OAAO,KAAC,gBAAgB,CAAC,QAAQ,IAAC,KAAK,EAAE,KAAK,YAAG,QAAQ,GAA6B,CAAA;AACxF,CAAC;AAED,MAAM,UAAU,YAAY;IAC1B,MAAM,GAAG,GAAG,UAAU,CAAC,gBAAgB,CAAC,CAAA;IACxC,IAAI,CAAC,GAAG,EAAE,CAAC;QACT,MAAM,IAAI,KAAK,CAAC,0DAA0D,CAAC,CAAA;IAC7E,CAAC;IACD,OAAO,GAAG,CAAA;AACZ,CAAC;AAED;;;;;;;;;;GAUG;AACH,MAAM,UAAU,WAAW;IACzB,MAAM,EAAE,QAAQ,EAAE,WAAW,EAAE,GAAG,YAAY,EAAE,CAAA;IAChD,OAAO,EAAE,QAAQ,EAAE,WAAW,EAAE,CAAA;AAClC,CAAC"}
package/dist/types.d.ts CHANGED
@@ -1,4 +1,4 @@
1
- export type ProductCode = 'pdf' | 'webinar' | 'exports' | 'cyber_assess' | 'ergo_assess' | 'workplace_assess' | 'central';
1
+ export type ProductCode = 'pdf' | 'webinar' | 'images' | 'exports' | 'emailer' | 'cyber_assess' | 'ergo_assess' | 'workplace_assess' | 'central';
2
2
  export type SubTier = 'free' | 'pro' | 'enterprise';
3
3
  export type OrgRole = 'owner' | 'admin' | 'member';
4
4
  export type SeatStatus = 'active' | 'unassigned' | 'revoked';