@furystack/shades-i18n 2.0.11 → 3.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/CHANGELOG.md +37 -0
- package/README.md +1 -1
- package/esm/create-i18n-component.d.ts +1 -1
- package/esm/create-i18n-component.d.ts.map +1 -1
- package/esm/create-i18n-component.js +1 -1
- package/esm/create-i18n-component.js.map +1 -1
- package/esm/create-i18n-component.spec.js +8 -8
- package/esm/create-i18n-component.spec.js.map +1 -1
- package/package.json +4 -4
- package/src/create-i18n-component.spec.tsx +8 -8
- package/src/create-i18n-component.tsx +2 -2
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,42 @@
|
|
|
1
1
|
# Changelog
|
|
2
2
|
|
|
3
|
+
## [3.0.0] - 2026-03-07
|
|
4
|
+
|
|
5
|
+
### ⬆️ Dependencies
|
|
6
|
+
|
|
7
|
+
- Updated `@types/node` from `^25.3.1` to `^25.3.5`
|
|
8
|
+
- Updated `@furystack/shades` dependency
|
|
9
|
+
|
|
10
|
+
### 💥 Breaking Changes
|
|
11
|
+
|
|
12
|
+
### `createI18nComponent` option `shadowDomName` renamed to `customElementName`
|
|
13
|
+
|
|
14
|
+
The `createI18nComponent()` function now accepts `customElementName` instead of `shadowDomName` in its options object.
|
|
15
|
+
|
|
16
|
+
**Examples:**
|
|
17
|
+
|
|
18
|
+
```typescript
|
|
19
|
+
// ❌ Before
|
|
20
|
+
const I18n = createI18nComponent({
|
|
21
|
+
service,
|
|
22
|
+
shadowDomName: 'i18n-translated',
|
|
23
|
+
})
|
|
24
|
+
|
|
25
|
+
// ✅ After
|
|
26
|
+
const I18n = createI18nComponent({
|
|
27
|
+
service,
|
|
28
|
+
customElementName: 'i18n-translated',
|
|
29
|
+
})
|
|
30
|
+
```
|
|
31
|
+
|
|
32
|
+
### 📚 Documentation
|
|
33
|
+
|
|
34
|
+
- Updated README examples to use `customElementName`
|
|
35
|
+
|
|
36
|
+
### 🧪 Tests
|
|
37
|
+
|
|
38
|
+
- Updated all test cases to use the new `customElementName` property
|
|
39
|
+
|
|
3
40
|
## [2.0.11] - 2026-03-06
|
|
4
41
|
|
|
5
42
|
### ⬆️ Dependencies
|
package/README.md
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import type { I18NService } from '@furystack/i18n';
|
|
2
2
|
export declare const createI18nComponent: <TKeys extends string>(options: {
|
|
3
3
|
service: I18NService<TKeys>;
|
|
4
|
-
|
|
4
|
+
customElementName: string;
|
|
5
5
|
}) => (props: {
|
|
6
6
|
key: TKeys;
|
|
7
7
|
} & Omit<Partial<HTMLElement>, "style"> & {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"create-i18n-component.d.ts","sourceRoot":"","sources":["../src/create-i18n-component.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAA;AAGlD,eAAO,MAAM,mBAAmB,GAAI,KAAK,SAAS,MAAM,EAAE,SAAS;IACjE,OAAO,EAAE,WAAW,CAAC,KAAK,CAAC,CAAA;IAC3B,
|
|
1
|
+
{"version":3,"file":"create-i18n-component.d.ts","sourceRoot":"","sources":["../src/create-i18n-component.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAA;AAGlD,eAAO,MAAM,mBAAmB,GAAI,KAAK,SAAS,MAAM,EAAE,SAAS;IACjE,OAAO,EAAE,WAAW,CAAC,KAAK,CAAC,CAAA;IAC3B,iBAAiB,EAAE,MAAM,CAAA;CAC1B;SACqB,KAAK;;;;;sEAgB1B,CAAA"}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { createComponent, Shade } from '@furystack/shades';
|
|
2
2
|
export const createI18nComponent = (options) => {
|
|
3
3
|
return Shade({
|
|
4
|
-
|
|
4
|
+
customElementName: options.customElementName,
|
|
5
5
|
elementBase: HTMLSpanElement,
|
|
6
6
|
elementBaseName: 'span',
|
|
7
7
|
render: ({ props, useDisposable, useState }) => {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"create-i18n-component.js","sourceRoot":"","sources":["../src/create-i18n-component.tsx"],"names":[],"mappings":"AACA,OAAO,EAAE,eAAe,EAAE,KAAK,EAAE,MAAM,mBAAmB,CAAA;AAE1D,MAAM,CAAC,MAAM,mBAAmB,GAAG,CAAuB,OAGzD,EAAE,EAAE;IACH,OAAO,KAAK,CAAiB;QAC3B,
|
|
1
|
+
{"version":3,"file":"create-i18n-component.js","sourceRoot":"","sources":["../src/create-i18n-component.tsx"],"names":[],"mappings":"AACA,OAAO,EAAE,eAAe,EAAE,KAAK,EAAE,MAAM,mBAAmB,CAAA;AAE1D,MAAM,CAAC,MAAM,mBAAmB,GAAG,CAAuB,OAGzD,EAAE,EAAE;IACH,OAAO,KAAK,CAAiB;QAC3B,iBAAiB,EAAE,OAAO,CAAC,iBAAiB;QAC5C,WAAW,EAAE,eAAe;QAC5B,eAAe,EAAE,MAAM;QACvB,MAAM,EAAE,CAAC,EAAE,KAAK,EAAE,aAAa,EAAE,QAAQ,EAAE,EAAE,EAAE;YAC7C,MAAM,CAAC,KAAK,EAAE,QAAQ,CAAC,GAAG,QAAQ,CAAC,cAAc,EAAE,OAAO,CAAC,OAAO,CAAC,SAAS,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAA;YAExF,aAAa,CAAC,kBAAkB,EAAE,GAAG,EAAE,CACrC,OAAO,CAAC,OAAO,CAAC,SAAS,CAAC,gBAAgB,EAAE,CAAC,eAAe,EAAE,EAAE;gBAC9D,QAAQ,CAAC,OAAO,CAAC,OAAO,CAAC,SAAS,CAAC,KAAK,CAAC,GAAG,EAAE,eAAe,CAAC,CAAC,CAAA;YACjE,CAAC,CAAC,CACH,CAAA;YAED,OAAO,uCAAG,KAAK,CAAI,CAAA;QACrB,CAAC;KACF,CAAC,CAAA;AACJ,CAAC,CAAA"}
|
|
@@ -39,7 +39,7 @@ describe('createI18nComponent', () => {
|
|
|
39
39
|
const service = createTestService();
|
|
40
40
|
const I18n = createI18nComponent({
|
|
41
41
|
service,
|
|
42
|
-
|
|
42
|
+
customElementName: 'test-i18n-initial',
|
|
43
43
|
});
|
|
44
44
|
const rootElement = document.getElementById('root');
|
|
45
45
|
initializeShadeRoot({
|
|
@@ -56,7 +56,7 @@ describe('createI18nComponent', () => {
|
|
|
56
56
|
const service = createTestService();
|
|
57
57
|
const I18n = createI18nComponent({
|
|
58
58
|
service,
|
|
59
|
-
|
|
59
|
+
customElementName: 'test-i18n-keys',
|
|
60
60
|
});
|
|
61
61
|
const rootElement = document.getElementById('root');
|
|
62
62
|
initializeShadeRoot({
|
|
@@ -76,7 +76,7 @@ describe('createI18nComponent', () => {
|
|
|
76
76
|
const service = createTestService();
|
|
77
77
|
const I18n = createI18nComponent({
|
|
78
78
|
service,
|
|
79
|
-
|
|
79
|
+
customElementName: 'test-i18n-language-change',
|
|
80
80
|
});
|
|
81
81
|
const rootElement = document.getElementById('root');
|
|
82
82
|
initializeShadeRoot({
|
|
@@ -99,7 +99,7 @@ describe('createI18nComponent', () => {
|
|
|
99
99
|
const service = createTestService();
|
|
100
100
|
const I18n = createI18nComponent({
|
|
101
101
|
service,
|
|
102
|
-
|
|
102
|
+
customElementName: 'test-i18n-fallback',
|
|
103
103
|
});
|
|
104
104
|
const rootElement = document.getElementById('root');
|
|
105
105
|
initializeShadeRoot({
|
|
@@ -120,7 +120,7 @@ describe('createI18nComponent', () => {
|
|
|
120
120
|
const service = createTestService();
|
|
121
121
|
const I18n = createI18nComponent({
|
|
122
122
|
service,
|
|
123
|
-
|
|
123
|
+
customElementName: 'test-i18n-rapid-changes',
|
|
124
124
|
});
|
|
125
125
|
const rootElement = document.getElementById('root');
|
|
126
126
|
initializeShadeRoot({
|
|
@@ -154,7 +154,7 @@ describe('createI18nComponent', () => {
|
|
|
154
154
|
});
|
|
155
155
|
const I18n = createI18nComponent({
|
|
156
156
|
service,
|
|
157
|
-
|
|
157
|
+
customElementName: 'test-i18n-cleanup',
|
|
158
158
|
});
|
|
159
159
|
const rootElement = document.getElementById('root');
|
|
160
160
|
initializeShadeRoot({
|
|
@@ -175,7 +175,7 @@ describe('createI18nComponent', () => {
|
|
|
175
175
|
const service = createTestService();
|
|
176
176
|
const I18n = createI18nComponent({
|
|
177
177
|
service,
|
|
178
|
-
|
|
178
|
+
customElementName: 'test-i18n-span',
|
|
179
179
|
});
|
|
180
180
|
const rootElement = document.getElementById('root');
|
|
181
181
|
initializeShadeRoot({
|
|
@@ -194,7 +194,7 @@ describe('createI18nComponent', () => {
|
|
|
194
194
|
const service = createTestService();
|
|
195
195
|
const I18n = createI18nComponent({
|
|
196
196
|
service,
|
|
197
|
-
|
|
197
|
+
customElementName: 'test-i18n-multiple',
|
|
198
198
|
});
|
|
199
199
|
const rootElement = document.getElementById('root');
|
|
200
200
|
initializeShadeRoot({
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"create-i18n-component.spec.js","sourceRoot":"","sources":["../src/create-i18n-component.spec.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAA;AAC7C,OAAO,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAA;AAC5C,OAAO,EAAE,eAAe,EAAE,YAAY,EAAE,mBAAmB,EAAE,MAAM,mBAAmB,CAAA;AACtF,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAA;AAC7C,OAAO,EAAE,SAAS,EAAE,UAAU,EAAE,QAAQ,EAAE,MAAM,EAAE,EAAE,EAAE,EAAE,EAAE,MAAM,QAAQ,CAAA;AACxE,OAAO,EAAE,mBAAmB,EAAE,MAAM,4BAA4B,CAAA;AAIhE,MAAM,iBAAiB,GAAG,GAAG,EAAE;IAC7B,OAAO,IAAI,WAAW,CACpB;QACE,IAAI,EAAE,IAAI;QACV,MAAM,EAAE;YACN,KAAK,EAAE,OAAO;YACd,OAAO,EAAE,SAAS;YAClB,KAAK,EAAE,OAAO;SACf;KACF,EACD;QACE,IAAI,EAAE,IAAI;QACV,MAAM,EAAE;YACN,KAAK,EAAE,MAAM;YACb,OAAO,EAAE,SAAS;YAClB,KAAK,EAAE,OAAO;SACf;KACF,EACD;QACE,IAAI,EAAE,IAAI;QACV,MAAM,EAAE;YACN,KAAK,EAAE,OAAO;YACd,OAAO,EAAE,iBAAiB;SAC3B;KACF,CACF,CAAA;AACH,CAAC,CAAA;AAED,QAAQ,CAAC,qBAAqB,EAAE,GAAG,EAAE;IACnC,UAAU,CAAC,GAAG,EAAE;QACd,QAAQ,CAAC,IAAI,CAAC,SAAS,GAAG,uBAAuB,CAAA;IACnD,CAAC,CAAC,CAAA;IAEF,SAAS,CAAC,GAAG,EAAE;QACb,QAAQ,CAAC,IAAI,CAAC,SAAS,GAAG,EAAE,CAAA;IAC9B,CAAC,CAAC,CAAA;IAEF,EAAE,CAAC,4CAA4C,EAAE,KAAK,IAAI,EAAE;QAC1D,MAAM,UAAU,CAAC,IAAI,QAAQ,EAAE,EAAE,KAAK,EAAE,QAAQ,EAAE,EAAE;YAClD,MAAM,OAAO,GAAG,iBAAiB,EAAE,CAAA;YACnC,MAAM,IAAI,GAAG,mBAAmB,CAAC;gBAC/B,OAAO;gBACP,
|
|
1
|
+
{"version":3,"file":"create-i18n-component.spec.js","sourceRoot":"","sources":["../src/create-i18n-component.spec.tsx"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@furystack/shades-i18n",
|
|
3
|
-
"version": "
|
|
3
|
+
"version": "3.0.0",
|
|
4
4
|
"description": "I18n translation package and components for Shades",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"scripts": {
|
|
@@ -37,12 +37,12 @@
|
|
|
37
37
|
},
|
|
38
38
|
"homepage": "https://github.com/furystack/furystack",
|
|
39
39
|
"dependencies": {
|
|
40
|
-
"@furystack/i18n": "^1.0.
|
|
40
|
+
"@furystack/i18n": "^1.0.34",
|
|
41
41
|
"@furystack/inject": "^12.0.32",
|
|
42
|
-
"@furystack/shades": "^
|
|
42
|
+
"@furystack/shades": "^13.0.0"
|
|
43
43
|
},
|
|
44
44
|
"devDependencies": {
|
|
45
|
-
"@types/node": "^25.3.
|
|
45
|
+
"@types/node": "^25.3.5",
|
|
46
46
|
"typescript": "^5.9.3",
|
|
47
47
|
"vitest": "^4.0.18"
|
|
48
48
|
},
|
|
@@ -49,7 +49,7 @@ describe('createI18nComponent', () => {
|
|
|
49
49
|
const service = createTestService()
|
|
50
50
|
const I18n = createI18nComponent({
|
|
51
51
|
service,
|
|
52
|
-
|
|
52
|
+
customElementName: 'test-i18n-initial',
|
|
53
53
|
})
|
|
54
54
|
|
|
55
55
|
const rootElement = document.getElementById('root') as HTMLDivElement
|
|
@@ -69,7 +69,7 @@ describe('createI18nComponent', () => {
|
|
|
69
69
|
const service = createTestService()
|
|
70
70
|
const I18n = createI18nComponent({
|
|
71
71
|
service,
|
|
72
|
-
|
|
72
|
+
customElementName: 'test-i18n-keys',
|
|
73
73
|
})
|
|
74
74
|
|
|
75
75
|
const rootElement = document.getElementById('root') as HTMLDivElement
|
|
@@ -95,7 +95,7 @@ describe('createI18nComponent', () => {
|
|
|
95
95
|
const service = createTestService()
|
|
96
96
|
const I18n = createI18nComponent({
|
|
97
97
|
service,
|
|
98
|
-
|
|
98
|
+
customElementName: 'test-i18n-language-change',
|
|
99
99
|
})
|
|
100
100
|
|
|
101
101
|
const rootElement = document.getElementById('root') as HTMLDivElement
|
|
@@ -123,7 +123,7 @@ describe('createI18nComponent', () => {
|
|
|
123
123
|
const service = createTestService()
|
|
124
124
|
const I18n = createI18nComponent({
|
|
125
125
|
service,
|
|
126
|
-
|
|
126
|
+
customElementName: 'test-i18n-fallback',
|
|
127
127
|
})
|
|
128
128
|
|
|
129
129
|
const rootElement = document.getElementById('root') as HTMLDivElement
|
|
@@ -148,7 +148,7 @@ describe('createI18nComponent', () => {
|
|
|
148
148
|
const service = createTestService()
|
|
149
149
|
const I18n = createI18nComponent({
|
|
150
150
|
service,
|
|
151
|
-
|
|
151
|
+
customElementName: 'test-i18n-rapid-changes',
|
|
152
152
|
})
|
|
153
153
|
|
|
154
154
|
const rootElement = document.getElementById('root') as HTMLDivElement
|
|
@@ -188,7 +188,7 @@ describe('createI18nComponent', () => {
|
|
|
188
188
|
|
|
189
189
|
const I18n = createI18nComponent({
|
|
190
190
|
service,
|
|
191
|
-
|
|
191
|
+
customElementName: 'test-i18n-cleanup',
|
|
192
192
|
})
|
|
193
193
|
|
|
194
194
|
const rootElement = document.getElementById('root') as HTMLDivElement
|
|
@@ -214,7 +214,7 @@ describe('createI18nComponent', () => {
|
|
|
214
214
|
const service = createTestService()
|
|
215
215
|
const I18n = createI18nComponent({
|
|
216
216
|
service,
|
|
217
|
-
|
|
217
|
+
customElementName: 'test-i18n-span',
|
|
218
218
|
})
|
|
219
219
|
|
|
220
220
|
const rootElement = document.getElementById('root') as HTMLDivElement
|
|
@@ -236,7 +236,7 @@ describe('createI18nComponent', () => {
|
|
|
236
236
|
const service = createTestService()
|
|
237
237
|
const I18n = createI18nComponent({
|
|
238
238
|
service,
|
|
239
|
-
|
|
239
|
+
customElementName: 'test-i18n-multiple',
|
|
240
240
|
})
|
|
241
241
|
|
|
242
242
|
const rootElement = document.getElementById('root') as HTMLDivElement
|
|
@@ -3,10 +3,10 @@ import { createComponent, Shade } from '@furystack/shades'
|
|
|
3
3
|
|
|
4
4
|
export const createI18nComponent = <TKeys extends string>(options: {
|
|
5
5
|
service: I18NService<TKeys>
|
|
6
|
-
|
|
6
|
+
customElementName: string
|
|
7
7
|
}) => {
|
|
8
8
|
return Shade<{ key: TKeys }>({
|
|
9
|
-
|
|
9
|
+
customElementName: options.customElementName,
|
|
10
10
|
elementBase: HTMLSpanElement,
|
|
11
11
|
elementBaseName: 'span',
|
|
12
12
|
render: ({ props, useDisposable, useState }) => {
|