@cosmicdrift/kumiko-renderer-web 0.207.0 → 0.208.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/package.json +6 -5
- package/src/__tests__/field-validation-i18n.test.tsx +4 -5
- package/src/__tests__/language-switcher.test.tsx +5 -1
- package/src/__tests__/primitives.test.tsx +4 -2
- package/src/__tests__/render-list-debounce.test.tsx +2 -2
- package/src/primitives/__tests__/date-field.test.tsx +6 -1
- package/src/primitives/__tests__/date-parse.test.ts +2 -1
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@cosmicdrift/kumiko-renderer-web",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.208.0",
|
|
4
4
|
"description": "Web-platform bindings for @cosmicdrift/kumiko-renderer. HTML default-primitives, browser history-based navigation, EventSource-backed live events, and a one-call createKumikoApp that mounts the whole stack via react-dom.",
|
|
5
5
|
"license": "BUSL-1.1",
|
|
6
6
|
"author": "Marc Frost <marc@cosmicdriftgamestudio.com>",
|
|
@@ -16,9 +16,9 @@
|
|
|
16
16
|
"./styles.css": "./src/styles.css"
|
|
17
17
|
},
|
|
18
18
|
"dependencies": {
|
|
19
|
-
"@cosmicdrift/kumiko-dispatcher-live": "0.
|
|
20
|
-
"@cosmicdrift/kumiko-headless": "0.
|
|
21
|
-
"@cosmicdrift/kumiko-renderer": "0.
|
|
19
|
+
"@cosmicdrift/kumiko-dispatcher-live": "0.208.0",
|
|
20
|
+
"@cosmicdrift/kumiko-headless": "0.208.0",
|
|
21
|
+
"@cosmicdrift/kumiko-renderer": "0.208.0",
|
|
22
22
|
"@radix-ui/react-dialog": "^1.1.15",
|
|
23
23
|
"@radix-ui/react-dropdown-menu": "^2.1.16",
|
|
24
24
|
"@radix-ui/react-label": "^2.1.8",
|
|
@@ -63,7 +63,8 @@
|
|
|
63
63
|
"@types/react": "^19.2.14",
|
|
64
64
|
"@types/react-dom": "^19.2.3",
|
|
65
65
|
"jsdom": "^29.1.1",
|
|
66
|
-
"tailwindcss": "^4.3.0"
|
|
66
|
+
"tailwindcss": "^4.3.0",
|
|
67
|
+
"@cosmicdrift/kumiko-locale-de": "0.208.0"
|
|
67
68
|
},
|
|
68
69
|
"repository": {
|
|
69
70
|
"type": "git",
|
|
@@ -59,11 +59,10 @@ describe("DefaultField / errors.validation.* i18n", () => {
|
|
|
59
59
|
"invalid_option",
|
|
60
60
|
"failed",
|
|
61
61
|
];
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
}
|
|
62
|
+
const { localeDeBundle } = await import("@cosmicdrift/kumiko-locale-de");
|
|
63
|
+
for (const code of codes) {
|
|
64
|
+
expect(kumikoDefaultTranslations["en"]?.[`errors.validation.${code}`]).toBeString();
|
|
65
|
+
expect(localeDeBundle[`errors.validation.${code}`]).toBeString();
|
|
67
66
|
}
|
|
68
67
|
});
|
|
69
68
|
});
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import { describe, expect, mock, test } from "bun:test";
|
|
2
2
|
import type { LocaleResolver } from "@cosmicdrift/kumiko-headless";
|
|
3
|
+
import { localeDeBundle } from "@cosmicdrift/kumiko-locale-de";
|
|
3
4
|
import {
|
|
4
5
|
createStaticLocaleResolver,
|
|
5
6
|
kumikoDefaultTranslations,
|
|
@@ -38,7 +39,10 @@ function makeStatefulResolver(initial: string): LocaleResolver {
|
|
|
38
39
|
|
|
39
40
|
function renderWithResolver(resolver: LocaleResolver, ui: ReactNode) {
|
|
40
41
|
return _render(
|
|
41
|
-
<LocaleProvider
|
|
42
|
+
<LocaleProvider
|
|
43
|
+
resolver={resolver}
|
|
44
|
+
fallbackBundles={[{ de: localeDeBundle }, kumikoDefaultTranslations]}
|
|
45
|
+
>
|
|
42
46
|
{ui}
|
|
43
47
|
</LocaleProvider>,
|
|
44
48
|
);
|
|
@@ -511,10 +511,11 @@ describe("DataTable", () => {
|
|
|
511
511
|
test("de-Locale: Status-Text + aria-Labels kommen aus i18n statt hartcodiertem Englisch (issue #2007)", async () => {
|
|
512
512
|
const { LocaleProvider, createStaticLocaleResolver, kumikoDefaultTranslations } =
|
|
513
513
|
await import("@cosmicdrift/kumiko-renderer");
|
|
514
|
+
const { localeDeBundle } = await import("@cosmicdrift/kumiko-locale-de");
|
|
514
515
|
render(
|
|
515
516
|
<LocaleProvider
|
|
516
517
|
resolver={createStaticLocaleResolver({ locale: "de" })}
|
|
517
|
-
fallbackBundles={[kumikoDefaultTranslations]}
|
|
518
|
+
fallbackBundles={[{ de: localeDeBundle }, kumikoDefaultTranslations]}
|
|
518
519
|
>
|
|
519
520
|
<DataTable
|
|
520
521
|
columns={cols}
|
|
@@ -655,10 +656,11 @@ describe("DataTable", () => {
|
|
|
655
656
|
test("hasMore=false + de-Locale: Marker kommt aus i18n statt hartcodiert", async () => {
|
|
656
657
|
const { LocaleProvider, createStaticLocaleResolver, kumikoDefaultTranslations } =
|
|
657
658
|
await import("@cosmicdrift/kumiko-renderer");
|
|
659
|
+
const { localeDeBundle } = await import("@cosmicdrift/kumiko-locale-de");
|
|
658
660
|
render(
|
|
659
661
|
<LocaleProvider
|
|
660
662
|
resolver={createStaticLocaleResolver({ locale: "de" })}
|
|
661
|
-
fallbackBundles={[kumikoDefaultTranslations]}
|
|
663
|
+
fallbackBundles={[{ de: localeDeBundle }, kumikoDefaultTranslations]}
|
|
662
664
|
>
|
|
663
665
|
<DataTable
|
|
664
666
|
columns={cols}
|
|
@@ -38,7 +38,7 @@ function renderRL(props: {
|
|
|
38
38
|
readonly onSearchChange?: (next: string) => void;
|
|
39
39
|
}) {
|
|
40
40
|
return render(
|
|
41
|
-
<LocaleProvider resolver={createStaticLocaleResolver({ locale: "
|
|
41
|
+
<LocaleProvider resolver={createStaticLocaleResolver({ locale: "en" })}>
|
|
42
42
|
<PrimitivesProvider value={defaultPrimitives}>
|
|
43
43
|
<RenderList
|
|
44
44
|
screen={screenDef}
|
|
@@ -96,7 +96,7 @@ describe("RenderList — Search-Debounce", () => {
|
|
|
96
96
|
// Externe Quelle (Browser-Back, Cross-Component-Reset) ändert
|
|
97
97
|
// searchValue → RenderList soll den Input-Wert spiegeln.
|
|
98
98
|
rerender(
|
|
99
|
-
<LocaleProvider resolver={createStaticLocaleResolver({ locale: "
|
|
99
|
+
<LocaleProvider resolver={createStaticLocaleResolver({ locale: "en" })}>
|
|
100
100
|
<PrimitivesProvider value={defaultPrimitives}>
|
|
101
101
|
<RenderList
|
|
102
102
|
screen={screenDef}
|
|
@@ -5,6 +5,7 @@
|
|
|
5
5
|
// green there).
|
|
6
6
|
|
|
7
7
|
import { describe, expect, test } from "bun:test";
|
|
8
|
+
import { localeDeBundle } from "@cosmicdrift/kumiko-locale-de";
|
|
8
9
|
import {
|
|
9
10
|
createStaticLocaleResolver,
|
|
10
11
|
kumikoDefaultTranslations,
|
|
@@ -17,7 +18,11 @@ function renderWithLocale(locale: string) {
|
|
|
17
18
|
return render(
|
|
18
19
|
<LocaleProvider
|
|
19
20
|
resolver={createStaticLocaleResolver({ locale })}
|
|
20
|
-
fallbackBundles={
|
|
21
|
+
fallbackBundles={
|
|
22
|
+
locale.split("-")[0] === "de"
|
|
23
|
+
? [{ de: localeDeBundle }, kumikoDefaultTranslations]
|
|
24
|
+
: [kumikoDefaultTranslations]
|
|
25
|
+
}
|
|
21
26
|
>
|
|
22
27
|
<DateField id="date" name="date" value="" onChange={() => {}} locale={locale} />
|
|
23
28
|
</LocaleProvider>,
|
|
@@ -5,6 +5,7 @@
|
|
|
5
5
|
// rejection.
|
|
6
6
|
|
|
7
7
|
import { describe, expect, test } from "bun:test";
|
|
8
|
+
import { localeDeBundle } from "@cosmicdrift/kumiko-locale-de";
|
|
8
9
|
import { kumikoDefaultTranslations } from "@cosmicdrift/kumiko-renderer";
|
|
9
10
|
import { Temporal } from "temporal-polyfill";
|
|
10
11
|
import {
|
|
@@ -18,7 +19,7 @@ import {
|
|
|
18
19
|
// Derived from kumikoDefaultTranslations instead of hardcoded so a drift in
|
|
19
20
|
// the i18n defaults (e.g. renaming "T" → "D") fails this test too.
|
|
20
21
|
function placeholderLetters(locale: "de" | "en"): { year: string; month: string; day: string } {
|
|
21
|
-
const bundle = kumikoDefaultTranslations[locale];
|
|
22
|
+
const bundle = locale === "de" ? localeDeBundle : kumikoDefaultTranslations[locale];
|
|
22
23
|
return {
|
|
23
24
|
year: bundle?.["kumiko.field.dateField.placeholderYear"] ?? "",
|
|
24
25
|
month: bundle?.["kumiko.field.dateField.placeholderMonth"] ?? "",
|