@cosmicdrift/kumiko-renderer-web 0.207.0 → 0.208.1

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 CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@cosmicdrift/kumiko-renderer-web",
3
- "version": "0.207.0",
3
+ "version": "0.208.1",
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.207.0",
20
- "@cosmicdrift/kumiko-headless": "0.207.0",
21
- "@cosmicdrift/kumiko-renderer": "0.207.0",
19
+ "@cosmicdrift/kumiko-dispatcher-live": "0.208.1",
20
+ "@cosmicdrift/kumiko-headless": "0.208.1",
21
+ "@cosmicdrift/kumiko-renderer": "0.208.1",
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.1"
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
- for (const locale of ["de", "en"] as const) {
63
- const bundle = kumikoDefaultTranslations[locale];
64
- for (const code of codes) {
65
- expect(bundle?.[`errors.validation.${code}`]).toBeString();
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 resolver={resolver} fallbackBundles={[kumikoDefaultTranslations]}>
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: "de" })}>
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: "de" })}>
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={[kumikoDefaultTranslations]}
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"] ?? "",