@steveencues/starter-react-ui 0.0.0-stage → 1.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.js ADDED
@@ -0,0 +1,602 @@
1
+ import { createContext as e, useCallback as t, useContext as n, useEffect as r, useMemo as i, useState as a } from "react";
2
+ import { jsx as o } from "react/jsx-runtime";
3
+ //#region src/libs/aplicacion/contexts/translate.context.ts
4
+ var s = e(null), c = e(null);
5
+ //#endregion
6
+ //#region src/libs/aplicacion/hooks/use-language.ts
7
+ function l() {
8
+ let e = n(s);
9
+ if (e === null) throw Error("useLanguage must be used inside TranslateProvider.");
10
+ return e;
11
+ }
12
+ //#endregion
13
+ //#region src/libs/aplicacion/hooks/use-theme.ts
14
+ function u() {
15
+ let e = n(c);
16
+ if (e === null) throw Error("useTheme must be used inside ThemeProvider.");
17
+ return e;
18
+ }
19
+ //#endregion
20
+ //#region src/libs/infraestructura/storage/encrypted-preference.storage.ts
21
+ async function d(e, t, n) {
22
+ if (t.length !== 0 && n.length !== 0) try {
23
+ let r = W();
24
+ if (r === void 0) return;
25
+ let i = await Q(t, n);
26
+ if (i === void 0) return;
27
+ r.setItem(e, i);
28
+ } catch {}
29
+ }
30
+ async function f(e, t) {
31
+ if (t.length !== 0) try {
32
+ let n = W();
33
+ if (n === void 0) return;
34
+ let r = n.getItem(e);
35
+ return r === null ? void 0 : await $(r, t);
36
+ } catch {
37
+ return;
38
+ }
39
+ }
40
+ //#endregion
41
+ //#region src/libs/infraestructura/storage/language-preference.storage.ts
42
+ var p = "starter-react-ui:language-preference:v1";
43
+ function m(e, t) {
44
+ return d(p, e, t);
45
+ }
46
+ async function h(e, t) {
47
+ let n = await f(p, t);
48
+ if (n !== void 0 && e.includes(n)) return n;
49
+ }
50
+ //#endregion
51
+ //#region src/libs/infraestructura/storage/theme-preference.storage.ts
52
+ var g = "starter-react-ui:theme-preference:v1";
53
+ function _(e, t) {
54
+ return d(g, e, t);
55
+ }
56
+ async function v(e, t) {
57
+ let n = await f(g, t);
58
+ if (n !== void 0) return e.find((e) => e.name === n)?.name;
59
+ }
60
+ //#endregion
61
+ //#region src/libs/aplicacion/hooks/use-theme-preference.hook.ts
62
+ function y(e, t, n) {
63
+ return {
64
+ ...e,
65
+ themeName: t,
66
+ isLoaded: n
67
+ };
68
+ }
69
+ function b(e, t) {
70
+ return e.themes === t.themes && e.initialTheme === t.initialTheme && e.themeEncryptionKey === t.themeEncryptionKey;
71
+ }
72
+ async function ee(e) {
73
+ try {
74
+ return await v(e.themes, e.themeEncryptionKey);
75
+ } catch {
76
+ return;
77
+ }
78
+ }
79
+ function te(e, t) {
80
+ r(() => {
81
+ let n = !0;
82
+ return (async () => {
83
+ let r = await ee(e);
84
+ if (!n) return;
85
+ let i = z(e.themes, e.initialTheme);
86
+ t((t) => b(t, e) && t.isLoaded ? t : y(e, r ?? i.name, !0));
87
+ })(), () => {
88
+ n = !1;
89
+ };
90
+ }, [e, t]);
91
+ }
92
+ function ne(e, n) {
93
+ return t((t) => {
94
+ V(e.themes, t), n(y(e, t, !0));
95
+ }, [e, n]);
96
+ }
97
+ function x(e) {
98
+ let { themes: t, initialTheme: n, themeEncryptionKey: r } = e, o = i(() => ({
99
+ themes: t,
100
+ initialTheme: n,
101
+ themeEncryptionKey: r
102
+ }), [
103
+ t,
104
+ n,
105
+ r
106
+ ]), [s, c] = a(() => y(o, z(t, n).name, !1));
107
+ te(o, c);
108
+ let l = b(s, o);
109
+ return {
110
+ themeName: l ? s.themeName : z(t, n).name,
111
+ isPreferenceLoaded: l && s.isLoaded,
112
+ setThemeName: ne(o, c)
113
+ };
114
+ }
115
+ //#endregion
116
+ //#region src/libs/aplicacion/providers/translate.provider.tsx
117
+ function S(e, t, n) {
118
+ return {
119
+ ...e,
120
+ selectedLanguage: t,
121
+ isLoaded: n
122
+ };
123
+ }
124
+ function C(e, t) {
125
+ return e.translations === t.translations && e.initialLanguage === t.initialLanguage && e.fallbackLanguage === t.fallbackLanguage && e.languageEncryptionKey === t.languageEncryptionKey && e.languages === t.languages;
126
+ }
127
+ async function re(e) {
128
+ try {
129
+ return await h(e.languages, e.languageEncryptionKey);
130
+ } catch {
131
+ return;
132
+ }
133
+ }
134
+ function ie(e, t) {
135
+ r(() => {
136
+ let n = !0;
137
+ return (async () => {
138
+ let r = await re(e);
139
+ if (!n) return;
140
+ let i = j(e.translations, e.initialLanguage, e.fallbackLanguage);
141
+ t((t) => C(t, e) && t.isLoaded ? t : S(e, r ?? i, !0));
142
+ })(), () => {
143
+ n = !1;
144
+ };
145
+ }, [e, t]);
146
+ }
147
+ function ae(e, t, n) {
148
+ r(() => {
149
+ n && m(t, e.languageEncryptionKey);
150
+ }, [
151
+ e.languageEncryptionKey,
152
+ t,
153
+ n
154
+ ]);
155
+ }
156
+ function oe(e, n) {
157
+ return t((t) => {
158
+ N(e.translations, t), n(S(e, t, !0));
159
+ }, [e, n]);
160
+ }
161
+ function se(e) {
162
+ let [t, n] = a(() => S(e, e.initialLanguage, !1));
163
+ ie(e, n);
164
+ let r = C(t, e), i = r ? t.selectedLanguage : e.initialLanguage, o = r && t.isLoaded, s = oe(e, n);
165
+ return {
166
+ language: M(e.translations, i, e.initialLanguage, e.fallbackLanguage),
167
+ isLoaded: o,
168
+ setLanguage: s
169
+ };
170
+ }
171
+ function ce({ translations: e, initialLanguage: t, fallbackLanguage: n = "en", languageEncryptionKey: r, children: a }) {
172
+ let c = i(() => Object.keys(e), [e]), l = i(() => ({
173
+ translations: e,
174
+ initialLanguage: t,
175
+ fallbackLanguage: n,
176
+ languageEncryptionKey: r,
177
+ languages: c
178
+ }), [
179
+ e,
180
+ t,
181
+ n,
182
+ r,
183
+ c
184
+ ]), u = se(l);
185
+ ae(l, u.language, u.isLoaded);
186
+ let d = le(l, u);
187
+ return /* @__PURE__ */ o(s.Provider, {
188
+ value: d,
189
+ children: a
190
+ });
191
+ }
192
+ function le(e, n) {
193
+ let r = e.translations[n.language], a = e.translations[e.fallbackLanguage], o = t((e, t) => L(r, a, e, t), [r, a]);
194
+ return i(() => ({
195
+ language: n.language,
196
+ languages: e.languages,
197
+ setLanguage: n.setLanguage,
198
+ t: o
199
+ }), [
200
+ n.language,
201
+ n.setLanguage,
202
+ e.languages,
203
+ o
204
+ ]);
205
+ }
206
+ //#endregion
207
+ //#region src/libs/aplicacion/providers/theme-provider.tsx
208
+ function ue({ themes: e, initialTheme: n, themeEncryptionKey: a, children: s }) {
209
+ let { themeName: l, isPreferenceLoaded: u, setThemeName: d } = x({
210
+ themes: e,
211
+ initialTheme: n,
212
+ themeEncryptionKey: a
213
+ }), f = B(e, l, n);
214
+ r(() => {
215
+ u && _(f.name, a);
216
+ }, [
217
+ u,
218
+ f.name,
219
+ a
220
+ ]);
221
+ let p = t((e) => d(e), [d]), m = i(() => H(f), [f]), h = i(() => ({
222
+ theme: f,
223
+ themeName: f.name,
224
+ themes: e,
225
+ setTheme: p
226
+ }), [
227
+ f,
228
+ e,
229
+ p
230
+ ]);
231
+ return /* @__PURE__ */ o(c.Provider, {
232
+ value: h,
233
+ children: /* @__PURE__ */ o("div", {
234
+ "data-rui-theme": f.name,
235
+ style: {
236
+ ...m,
237
+ display: "contents"
238
+ },
239
+ children: s
240
+ })
241
+ });
242
+ }
243
+ //#endregion
244
+ //#region src/libs/domain/enums/translation-regex.enum.ts
245
+ var w = Object.freeze({ INTERPOLATION_PLACEHOLDER: String.raw`\{\{([a-zA-Z0-9_]+)\}\}` }), de = "g", T = "AES-GCM", fe = 12, E = "SHA-256", pe = "raw", D = ".", O = ["encrypt", "decrypt"], me = 2, k = {
246
+ SURFACE_BACKGROUND: "--rui-surface-background",
247
+ SURFACE_SURFACE: "--rui-surface-surface",
248
+ SURFACE_SURFACE_ELEVATED: "--rui-surface-surface-elevated",
249
+ SURFACE_SURFACE_HOVER: "--rui-surface-surface-hover",
250
+ SURFACE_SURFACE_ACTIVE: "--rui-surface-surface-active",
251
+ SURFACE_SURFACE_DISABLED: "--rui-surface-surface-disabled",
252
+ TEXT_PRIMARY: "--rui-text-primary",
253
+ TEXT_SECONDARY: "--rui-text-secondary",
254
+ TEXT_MUTED: "--rui-text-muted",
255
+ TEXT_DISABLED: "--rui-text-disabled",
256
+ TEXT_INVERSE: "--rui-text-inverse",
257
+ TEXT_LINK: "--rui-text-link",
258
+ TEXT_LINK_HOVER: "--rui-text-link-hover",
259
+ BRAND_PRIMARY: "--rui-brand-primary",
260
+ BRAND_PRIMARY_HOVER: "--rui-brand-primary-hover",
261
+ BRAND_PRIMARY_ACTIVE: "--rui-brand-primary-active",
262
+ BRAND_PRIMARY_CONTRAST: "--rui-brand-primary-contrast",
263
+ BRAND_SECONDARY: "--rui-brand-secondary",
264
+ BRAND_SECONDARY_HOVER: "--rui-brand-secondary-hover",
265
+ BRAND_SECONDARY_ACTIVE: "--rui-brand-secondary-active",
266
+ BRAND_SECONDARY_CONTRAST: "--rui-brand-secondary-contrast",
267
+ BRAND_ACCENT: "--rui-brand-accent",
268
+ BRAND_ACCENT_HOVER: "--rui-brand-accent-hover",
269
+ BRAND_ACCENT_CONTRAST: "--rui-brand-accent-contrast",
270
+ STATE_SUCCESS: "--rui-state-success",
271
+ STATE_SUCCESS_BACKGROUND: "--rui-state-success-background",
272
+ STATE_WARNING: "--rui-state-warning",
273
+ STATE_WARNING_BACKGROUND: "--rui-state-warning-background",
274
+ STATE_ERROR: "--rui-state-error",
275
+ STATE_ERROR_BACKGROUND: "--rui-state-error-background",
276
+ STATE_INFO: "--rui-state-info",
277
+ STATE_INFO_BACKGROUND: "--rui-state-info-background",
278
+ BORDER_DEFAULT: "--rui-border-default",
279
+ BORDER_SUBTLE: "--rui-border-subtle",
280
+ BORDER_STRONG: "--rui-border-strong",
281
+ BORDER_FOCUS: "--rui-border-focus",
282
+ BORDER_HOVER: "--rui-border-hover",
283
+ BORDER_ACTIVE: "--rui-border-active",
284
+ BORDER_DISABLED: "--rui-border-disabled",
285
+ SHADOW_COLOR: "--rui-shadow-color",
286
+ SHADOW_SUBTLE: "--rui-shadow-subtle",
287
+ SHADOW_SMALL: "--rui-shadow-small",
288
+ SHADOW_MEDIUM: "--rui-shadow-medium",
289
+ SHADOW_LARGE: "--rui-shadow-large",
290
+ SHADOW_GLOW: "--rui-shadow-glow",
291
+ EFFECTS_OVERLAY: "--rui-effects-overlay",
292
+ EFFECTS_BACKDROP: "--rui-effects-backdrop",
293
+ EFFECTS_BLUR: "--rui-effects-blur",
294
+ EFFECTS_BLUR_STRONG: "--rui-effects-blur-strong",
295
+ EFFECTS_GLASS_BACKGROUND: "--rui-effects-glass-background",
296
+ EFFECTS_GLASS_BORDER: "--rui-effects-glass-border",
297
+ TYPOGRAPHY_HEADING_PRIMARY: "--rui-typography-heading-primary",
298
+ TYPOGRAPHY_HEADING_SECONDARY: "--rui-typography-heading-secondary",
299
+ TYPOGRAPHY_HEADING_MUTED: "--rui-typography-heading-muted",
300
+ TYPOGRAPHY_BODY_PRIMARY: "--rui-typography-body-primary",
301
+ TYPOGRAPHY_BODY_SECONDARY: "--rui-typography-body-secondary",
302
+ TYPOGRAPHY_BODY_MUTED: "--rui-typography-body-muted",
303
+ TYPOGRAPHY_LABEL_PRIMARY: "--rui-typography-label-primary",
304
+ TYPOGRAPHY_LABEL_SECONDARY: "--rui-typography-label-secondary",
305
+ TYPOGRAPHY_LABEL_MUTED: "--rui-typography-label-muted",
306
+ TYPOGRAPHY_BUTTON_PRIMARY: "--rui-typography-button-primary",
307
+ TYPOGRAPHY_BUTTON_SECONDARY: "--rui-typography-button-secondary"
308
+ };
309
+ //#endregion
310
+ //#region src/libs/aplicacion/utils/translation.utils.ts
311
+ function A(e, t) {
312
+ return Object.hasOwn(e, t);
313
+ }
314
+ function he(e) {
315
+ let [t] = Object.keys(e);
316
+ return t;
317
+ }
318
+ function j(e, t, n) {
319
+ if (A(e, t)) return t;
320
+ if (A(e, n)) return n;
321
+ let r = he(e);
322
+ if (r === void 0) throw Error("TranslateProvider requires at least one translation catalog.");
323
+ return r;
324
+ }
325
+ function M(e, t, n, r) {
326
+ return A(e, t) ? t : j(e, n, r);
327
+ }
328
+ function N(e, t) {
329
+ if (!A(e, t)) throw Error(`Language "${t}" is not available in the translation catalog.`);
330
+ }
331
+ function ge(e, t) {
332
+ let n = e;
333
+ for (let e of t.split(".")) {
334
+ if (typeof n == "string" || !Object.hasOwn(n, e)) return;
335
+ n = n[e];
336
+ }
337
+ return n;
338
+ }
339
+ function P(e, t) {
340
+ if (e === void 0 || t === "") return;
341
+ let n = ge(e, t);
342
+ return typeof n == "string" ? n : void 0;
343
+ }
344
+ function _e(e, t, n) {
345
+ let r = n?.[t];
346
+ return r === void 0 ? e : String(r);
347
+ }
348
+ function F(e, t) {
349
+ let n = new RegExp(w.INTERPOLATION_PLACEHOLDER, "g");
350
+ return e.replace(n, (e, n) => _e(e, n, t));
351
+ }
352
+ function I(e, t, n) {
353
+ let r = P(e, n);
354
+ return r === void 0 ? P(t, n) ?? n : r;
355
+ }
356
+ function L(e, t, n, r) {
357
+ return F(I(e, t, n), r);
358
+ }
359
+ //#endregion
360
+ //#region src/libs/aplicacion/utils/theme.utils.ts
361
+ function R(e, t) {
362
+ return e.find((e) => e.name === t);
363
+ }
364
+ function ve(e) {
365
+ if (e.length === 0) throw Error("ThemeProvider requires at least one registered theme.");
366
+ return e[0];
367
+ }
368
+ function z(e, t) {
369
+ return R(e, t) ?? ve(e);
370
+ }
371
+ function B(e, t, n) {
372
+ return R(e, t) ?? z(e, n);
373
+ }
374
+ function V(e, t) {
375
+ if (R(e, t) === void 0) throw Error(`Theme "${t}" is not registered in ThemeProvider.`);
376
+ }
377
+ function ye(e) {
378
+ return {
379
+ [k.SURFACE_BACKGROUND]: e.surface.background,
380
+ [k.SURFACE_SURFACE]: e.surface.surface,
381
+ [k.SURFACE_SURFACE_ELEVATED]: e.surface.surfaceElevated,
382
+ [k.SURFACE_SURFACE_HOVER]: e.surface.surfaceHover,
383
+ [k.SURFACE_SURFACE_ACTIVE]: e.surface.surfaceActive,
384
+ [k.SURFACE_SURFACE_DISABLED]: e.surface.surfaceDisabled
385
+ };
386
+ }
387
+ function be(e) {
388
+ return {
389
+ [k.TEXT_PRIMARY]: e.text.primary,
390
+ [k.TEXT_SECONDARY]: e.text.secondary,
391
+ [k.TEXT_MUTED]: e.text.muted,
392
+ [k.TEXT_DISABLED]: e.text.disabled,
393
+ [k.TEXT_INVERSE]: e.text.inverse,
394
+ [k.TEXT_LINK]: e.text.link,
395
+ [k.TEXT_LINK_HOVER]: e.text.linkHover
396
+ };
397
+ }
398
+ function xe(e) {
399
+ return {
400
+ [k.BRAND_PRIMARY]: e.brand.primary,
401
+ [k.BRAND_PRIMARY_HOVER]: e.brand.primaryHover,
402
+ [k.BRAND_PRIMARY_ACTIVE]: e.brand.primaryActive,
403
+ [k.BRAND_PRIMARY_CONTRAST]: e.brand.primaryContrast,
404
+ [k.BRAND_SECONDARY]: e.brand.secondary,
405
+ [k.BRAND_SECONDARY_HOVER]: e.brand.secondaryHover,
406
+ [k.BRAND_SECONDARY_ACTIVE]: e.brand.secondaryActive,
407
+ [k.BRAND_SECONDARY_CONTRAST]: e.brand.secondaryContrast,
408
+ [k.BRAND_ACCENT]: e.brand.accent,
409
+ [k.BRAND_ACCENT_HOVER]: e.brand.accentHover,
410
+ [k.BRAND_ACCENT_CONTRAST]: e.brand.accentContrast
411
+ };
412
+ }
413
+ function Se(e) {
414
+ return {
415
+ [k.STATE_SUCCESS]: e.state.success,
416
+ [k.STATE_SUCCESS_BACKGROUND]: e.state.successBackground,
417
+ [k.STATE_WARNING]: e.state.warning,
418
+ [k.STATE_WARNING_BACKGROUND]: e.state.warningBackground,
419
+ [k.STATE_ERROR]: e.state.error,
420
+ [k.STATE_ERROR_BACKGROUND]: e.state.errorBackground,
421
+ [k.STATE_INFO]: e.state.info,
422
+ [k.STATE_INFO_BACKGROUND]: e.state.infoBackground
423
+ };
424
+ }
425
+ function Ce(e) {
426
+ return {
427
+ [k.BORDER_DEFAULT]: e.border.default,
428
+ [k.BORDER_SUBTLE]: e.border.subtle,
429
+ [k.BORDER_STRONG]: e.border.strong,
430
+ [k.BORDER_FOCUS]: e.border.focus,
431
+ [k.BORDER_HOVER]: e.border.hover,
432
+ [k.BORDER_ACTIVE]: e.border.active,
433
+ [k.BORDER_DISABLED]: e.border.disabled
434
+ };
435
+ }
436
+ function we(e) {
437
+ return {
438
+ [k.SHADOW_COLOR]: e.shadow.color,
439
+ [k.SHADOW_SUBTLE]: e.shadow.subtle,
440
+ [k.SHADOW_SMALL]: e.shadow.small,
441
+ [k.SHADOW_MEDIUM]: e.shadow.medium,
442
+ [k.SHADOW_LARGE]: e.shadow.large,
443
+ [k.SHADOW_GLOW]: e.shadow.glow
444
+ };
445
+ }
446
+ function Te(e) {
447
+ return {
448
+ [k.EFFECTS_OVERLAY]: e.effects.overlay,
449
+ [k.EFFECTS_BACKDROP]: e.effects.backdrop,
450
+ [k.EFFECTS_BLUR]: e.effects.blur,
451
+ [k.EFFECTS_BLUR_STRONG]: e.effects.blurStrong,
452
+ [k.EFFECTS_GLASS_BACKGROUND]: e.effects.glassBackground,
453
+ [k.EFFECTS_GLASS_BORDER]: e.effects.glassBorder
454
+ };
455
+ }
456
+ function Ee(e) {
457
+ return {
458
+ [k.TYPOGRAPHY_HEADING_PRIMARY]: e.typography.heading.primary,
459
+ [k.TYPOGRAPHY_HEADING_SECONDARY]: e.typography.heading.secondary,
460
+ [k.TYPOGRAPHY_HEADING_MUTED]: e.typography.heading.muted,
461
+ [k.TYPOGRAPHY_BODY_PRIMARY]: e.typography.body.primary,
462
+ [k.TYPOGRAPHY_BODY_SECONDARY]: e.typography.body.secondary,
463
+ [k.TYPOGRAPHY_BODY_MUTED]: e.typography.body.muted,
464
+ [k.TYPOGRAPHY_LABEL_PRIMARY]: e.typography.label.primary,
465
+ [k.TYPOGRAPHY_LABEL_SECONDARY]: e.typography.label.secondary,
466
+ [k.TYPOGRAPHY_LABEL_MUTED]: e.typography.label.muted,
467
+ [k.TYPOGRAPHY_BUTTON_PRIMARY]: e.typography.button.primary,
468
+ [k.TYPOGRAPHY_BUTTON_SECONDARY]: e.typography.button.secondary
469
+ };
470
+ }
471
+ function H(e) {
472
+ let { colors: t } = e;
473
+ return {
474
+ ...ye(t),
475
+ ...be(t),
476
+ ...xe(t),
477
+ ...Se(t),
478
+ ...Ce(t),
479
+ ...we(t),
480
+ ...Te(t),
481
+ ...Ee(t)
482
+ };
483
+ }
484
+ //#endregion
485
+ //#region src/libs/aplicacion/utils/crypto-api.util.ts
486
+ function U() {
487
+ try {
488
+ return globalThis.crypto;
489
+ } catch {
490
+ return;
491
+ }
492
+ }
493
+ //#endregion
494
+ //#region src/libs/aplicacion/utils/storage-api.util.ts
495
+ function W() {
496
+ try {
497
+ return globalThis.localStorage;
498
+ } catch {
499
+ return;
500
+ }
501
+ }
502
+ //#endregion
503
+ //#region src/libs/aplicacion/utils/text-encoding.util.ts
504
+ function G(e) {
505
+ return new TextEncoder().encode(e);
506
+ }
507
+ function K(e) {
508
+ return new TextDecoder().decode(e);
509
+ }
510
+ //#endregion
511
+ //#region src/libs/aplicacion/utils/base64.util.ts
512
+ function q(e) {
513
+ let t = "";
514
+ for (let n of e) t += String.fromCharCode(n);
515
+ return btoa(t);
516
+ }
517
+ function J(e) {
518
+ let t = atob(e), n = new Uint8Array(t.length);
519
+ for (let e = 0; e < t.length; e += 1) n[e] = t.charCodeAt(e);
520
+ return n;
521
+ }
522
+ //#endregion
523
+ //#region src/libs/aplicacion/services/encryption.service.ts
524
+ async function Y(e) {
525
+ let t = U();
526
+ if (t === void 0 || e.length === 0) return;
527
+ let n = await t.subtle.digest(E, G(e));
528
+ return t.subtle.importKey("raw", n, { name: T }, !1, O);
529
+ }
530
+ function De() {
531
+ let e = U();
532
+ if (e === void 0) throw Error("Cryptographic API is unavailable.");
533
+ return e.getRandomValues(/* @__PURE__ */ new Uint8Array(12));
534
+ }
535
+ function Oe(e) {
536
+ try {
537
+ let t = J(e);
538
+ return t.length === 12 ? t : void 0;
539
+ } catch {
540
+ return;
541
+ }
542
+ }
543
+ function ke(e) {
544
+ return e.length === 2;
545
+ }
546
+ function X(e) {
547
+ if (ke(e)) return [e[0], e[1]];
548
+ }
549
+ function Ae(e) {
550
+ let t = X(e.split("."));
551
+ if (t === void 0) return;
552
+ let [n, r] = t, i = Oe(n);
553
+ if (i !== void 0) try {
554
+ return {
555
+ iv: i,
556
+ ciphertext: J(r)
557
+ };
558
+ } catch {
559
+ return;
560
+ }
561
+ }
562
+ async function je(e, t, n) {
563
+ return Z().subtle.encrypt({
564
+ name: T,
565
+ iv: n
566
+ }, t, e);
567
+ }
568
+ async function Me(e, t) {
569
+ return Z().subtle.decrypt({
570
+ name: T,
571
+ iv: e.iv
572
+ }, t, e.ciphertext);
573
+ }
574
+ function Z() {
575
+ let e = U();
576
+ if (e === void 0) throw Error("Cryptographic API is unavailable.");
577
+ return e;
578
+ }
579
+ async function Q(e, t) {
580
+ try {
581
+ let n = await Y(t);
582
+ if (n === void 0) return;
583
+ let r = De(), i = await je(G(e), n, r);
584
+ return [q(r), q(new Uint8Array(i))].join(".");
585
+ } catch {
586
+ return;
587
+ }
588
+ }
589
+ async function $(e, t) {
590
+ try {
591
+ let n = Ae(e);
592
+ if (n === void 0) return;
593
+ let r = await Y(t);
594
+ return r === void 0 ? void 0 : K(await Me(n, r));
595
+ } catch {
596
+ return;
597
+ }
598
+ }
599
+ //#endregion
600
+ export { T as AES_GCM_ALGORITHM, fe as AES_GCM_IV_LENGTH, me as ENCRYPTED_VALUE_PART_COUNT, de as GLOBAL_REGEX_FLAG, O as KEY_USAGES, pe as RAW_KEY_FORMAT, E as SHA_256_ALGORITHM, D as STORAGE_VALUE_SEPARATOR, c as ThemeContext, k as ThemeCssVariable, ue as ThemeProvider, s as TranslateContext, ce as TranslateProvider, w as TranslationRegex, N as assertLanguageExists, V as assertThemeExists, H as createThemeVariables, J as decodeBase64, K as decodeText, $ as decryptText, q as encodeBase64, G as encodeText, Q as encryptText, P as findTranslation, U as getCryptoApi, W as getLocalStorage, F as interpolateTranslation, f as loadEncryptedPreference, h as loadLanguagePreference, v as loadThemePreference, M as resolveActiveLanguage, B as resolveActiveTheme, j as resolveInitialLanguage, z as resolveInitialTheme, d as saveEncryptedPreference, m as saveLanguagePreference, _ as saveThemePreference, L as translateMessage, l as useLanguage, u as useTheme, x as useThemePreference };
601
+
602
+ //# sourceMappingURL=index.js.map