@cosmicdrift/kumiko-renderer 0.404.0 → 0.404.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.
|
@@ -3,7 +3,7 @@ import { isOpenToAllGranted } from "@cosmicdrift/kumiko-framework/ui-types";
|
|
|
3
3
|
import { createContext, useContext, useEffect, useMemo, useRef, useState, } from "react";
|
|
4
4
|
import { createRoot } from "react-dom/client";
|
|
5
5
|
import { rendererError, rendererWarn } from "../../dev-console.js";
|
|
6
|
-
import { AppFeaturesProvider, BasePathProvider, ClientActionsProvider, ColumnRenderersProvider, ContentEditorsProvider, CustomScreensProvider, createSessionEndedSignal, DashboardBodyProvider, DispatcherProvider, DraftStorageProvider, ErrorBoundary, ExtensionSectionsProvider, hasDetailScreen, KumikoScreen, kumikoDefaultTranslations, LeaveGuardDialog, LiveEventsProvider, LocaleProvider, mergeTranslations, NavProvider, navigateWithReturnTo, PrimitivesProvider, qualifyScreenId, ScreenMissingState, SessionEndedSignalProvider, TokensProvider, toAppSchema, translationsByLocaleFromKeys, useNav, usePrimitives, useTranslation, withSessionEndedDetection, } from "../../index.js";
|
|
6
|
+
import { AppFeaturesProvider, BasePathProvider, ClientActionsProvider, ColumnRenderersProvider, ContentEditorsProvider, CustomScreensProvider, createSessionEndedSignal, DashboardBodyProvider, DispatcherProvider, DraftStorageProvider, ErrorBoundary, ExtensionSectionsProvider, hasDetailScreen, KumikoScreen, kumikoDefaultTranslations, LeaveGuardDialog, LiveEventsProvider, LocaleProvider, mergeTranslations, NavProvider, navigateWithReturnTo, PrimitivesProvider, qualifyScreenId, ScreenMissingState, SessionEndedSignalProvider, TokensProvider, toAppSchema, translationsByLocaleFromKeys, useBasePath, useNav, usePrimitives, useTranslation, withSessionEndedDetection, } from "../../index.js";
|
|
7
7
|
import { createLiveDispatcher } from "../../live/index.js";
|
|
8
8
|
import { lastSegment } from "../layout/nav-tree.js";
|
|
9
9
|
import { clearFileMetaCache } from "../primitives/file-thumbnail.js";
|
|
@@ -274,6 +274,11 @@ function AppSchemaBoundary({ app, screenQn, schemaUrl, navAdapter, onAppLoaded,
|
|
|
274
274
|
}
|
|
275
275
|
return (_jsx(BrowserNavBoot, { app: app, fallbackQn: fallbackQn, useNavApi: navAdapter, hasWorkspaces: (app.workspaces?.length ?? 0) > 0, ...(translate !== undefined && { translate }), ...(onRowClick !== undefined && { onRowClick }), ...(shell !== undefined && { shell }) }));
|
|
276
276
|
}
|
|
277
|
+
// createKumikoApp mounts BasePathProvider above the NavProvider that calls this hook.
|
|
278
|
+
function useBrowserNavApiWithBasePath(navOptions) {
|
|
279
|
+
const basePath = useBasePath();
|
|
280
|
+
return useBrowserNavApi({ ...navOptions, ...(basePath !== "" && { basePath }) });
|
|
281
|
+
}
|
|
277
282
|
export function createKumikoApp(options = {}) {
|
|
278
283
|
const rootId = options.rootId ?? "root";
|
|
279
284
|
const container = document.getElementById(rootId);
|
|
@@ -342,7 +347,6 @@ export function createKumikoApp(options = {}) {
|
|
|
342
347
|
}
|
|
343
348
|
const localeResolver = options.locale ?? createBrowserLocaleResolver();
|
|
344
349
|
const { basePath } = options;
|
|
345
|
-
const useBrowserNavApiWithBasePath = (navOptions) => useBrowserNavApi({ ...navOptions, ...(basePath !== undefined && { basePath }) });
|
|
346
350
|
const navAdapter = options.navAdapter ?? useBrowserNavApiWithBasePath;
|
|
347
351
|
const reporter = options.reportClientErrors === false ? undefined : createClientErrorReporter();
|
|
348
352
|
reporter?.installGlobalHandlers();
|
|
@@ -16,7 +16,7 @@ function openSessionStorage() {
|
|
|
16
16
|
}
|
|
17
17
|
}
|
|
18
18
|
function prefixedKeys(storage) {
|
|
19
|
-
return Array.from({ length: storage.length }, (_, index) => storage.key(index)).filter((key) => key
|
|
19
|
+
return Array.from({ length: storage.length }, (_, index) => storage.key(index)).filter((key) => key?.startsWith(KEY_PREFIX) === true);
|
|
20
20
|
}
|
|
21
21
|
function removeAllRemembered(storage) {
|
|
22
22
|
for (const key of prefixedKeys(storage))
|
package/dist/web/icons.d.ts
CHANGED
|
@@ -2,91 +2,91 @@ import type { NavIconKey } from "@cosmicdrift/kumiko-framework/ui-types";
|
|
|
2
2
|
import type { ReactNode } from "react";
|
|
3
3
|
export type { NavIconKey } from "@cosmicdrift/kumiko-framework/ui-types";
|
|
4
4
|
export declare const NAV_ICONS: {
|
|
5
|
-
readonly dashboard: import("
|
|
6
|
-
readonly "layout-grid": import("
|
|
7
|
-
readonly "book-open": import("
|
|
8
|
-
readonly "clipboard-list": import("
|
|
9
|
-
readonly package: import("
|
|
10
|
-
readonly gauge: import("
|
|
11
|
-
readonly list: import("
|
|
12
|
-
readonly table: import("
|
|
13
|
-
readonly layers: import("
|
|
14
|
-
readonly building: import("
|
|
15
|
-
readonly calculator: import("
|
|
16
|
-
readonly wallet: import("
|
|
17
|
-
readonly coins: import("
|
|
18
|
-
readonly "credit-card": import("
|
|
19
|
-
readonly "piggy-bank": import("
|
|
20
|
-
readonly receipt: import("
|
|
21
|
-
readonly chart: import("
|
|
22
|
-
readonly "bar-chart": import("
|
|
23
|
-
readonly trending: import("
|
|
24
|
-
readonly sparkles: import("
|
|
25
|
-
readonly wand: import("
|
|
26
|
-
readonly calendar: import("
|
|
27
|
-
readonly file: import("
|
|
28
|
-
readonly folder: import("
|
|
29
|
-
readonly "folder-open": import("
|
|
30
|
-
readonly home: import("
|
|
31
|
-
readonly bell: import("
|
|
32
|
-
readonly shield: import("
|
|
33
|
-
readonly "shield-check": import("
|
|
34
|
-
readonly send: import("
|
|
35
|
-
readonly settings: import("
|
|
36
|
-
readonly users: import("
|
|
37
|
-
readonly user: import("
|
|
38
|
-
readonly search: import("
|
|
39
|
-
readonly tag: import("
|
|
40
|
-
readonly key: import("
|
|
41
|
-
readonly link: import("
|
|
42
|
-
readonly palette: import("
|
|
43
|
-
readonly share: import("
|
|
44
|
-
readonly server: import("
|
|
45
|
-
readonly mail: import("
|
|
46
|
-
readonly lock: import("
|
|
47
|
-
readonly hash: import("
|
|
48
|
-
readonly download: import("
|
|
49
|
-
readonly upload: import("
|
|
50
|
-
readonly rocket: import("
|
|
51
|
-
readonly plus: import("
|
|
52
|
-
readonly languages: import("
|
|
53
|
-
readonly trash: import("
|
|
54
|
-
readonly x: import("
|
|
55
|
-
readonly check: import("
|
|
56
|
-
readonly "arrow-left": import("
|
|
57
|
-
readonly "arrow-right": import("
|
|
58
|
-
readonly copy: import("
|
|
59
|
-
readonly pencil: import("
|
|
60
|
-
readonly eye: import("
|
|
61
|
-
readonly "eye-off": import("
|
|
62
|
-
readonly filter: import("
|
|
63
|
-
readonly refresh: import("
|
|
64
|
-
readonly "more-horizontal": import("
|
|
65
|
-
readonly "more-vertical": import("
|
|
66
|
-
readonly "external-link": import("
|
|
67
|
-
readonly "chevron-down": import("
|
|
68
|
-
readonly "chevron-left": import("
|
|
69
|
-
readonly "chevron-right": import("
|
|
70
|
-
readonly "chevron-up": import("
|
|
71
|
-
readonly save: import("
|
|
72
|
-
readonly undo: import("
|
|
73
|
-
readonly archive: import("
|
|
74
|
-
readonly star: import("
|
|
75
|
-
readonly flag: import("
|
|
76
|
-
readonly clock: import("
|
|
77
|
-
readonly "map-pin": import("
|
|
78
|
-
readonly phone: import("
|
|
79
|
-
readonly printer: import("
|
|
80
|
-
readonly "alert-triangle": import("
|
|
81
|
-
readonly info: import("
|
|
82
|
-
readonly "check-circle": import("
|
|
83
|
-
readonly "x-circle": import("
|
|
84
|
-
readonly loader: import("
|
|
85
|
-
readonly mic: import("
|
|
86
|
-
readonly "circle-stop": import("
|
|
87
|
-
readonly image: import("
|
|
88
|
-
readonly camera: import("
|
|
89
|
-
readonly headphones: import("
|
|
5
|
+
readonly dashboard: import("lucide-react").LucideIcon;
|
|
6
|
+
readonly "layout-grid": import("lucide-react").LucideIcon;
|
|
7
|
+
readonly "book-open": import("lucide-react").LucideIcon;
|
|
8
|
+
readonly "clipboard-list": import("lucide-react").LucideIcon;
|
|
9
|
+
readonly package: import("lucide-react").LucideIcon;
|
|
10
|
+
readonly gauge: import("lucide-react").LucideIcon;
|
|
11
|
+
readonly list: import("lucide-react").LucideIcon;
|
|
12
|
+
readonly table: import("lucide-react").LucideIcon;
|
|
13
|
+
readonly layers: import("lucide-react").LucideIcon;
|
|
14
|
+
readonly building: import("lucide-react").LucideIcon;
|
|
15
|
+
readonly calculator: import("lucide-react").LucideIcon;
|
|
16
|
+
readonly wallet: import("lucide-react").LucideIcon;
|
|
17
|
+
readonly coins: import("lucide-react").LucideIcon;
|
|
18
|
+
readonly "credit-card": import("lucide-react").LucideIcon;
|
|
19
|
+
readonly "piggy-bank": import("lucide-react").LucideIcon;
|
|
20
|
+
readonly receipt: import("lucide-react").LucideIcon;
|
|
21
|
+
readonly chart: import("lucide-react").LucideIcon;
|
|
22
|
+
readonly "bar-chart": import("lucide-react").LucideIcon;
|
|
23
|
+
readonly trending: import("lucide-react").LucideIcon;
|
|
24
|
+
readonly sparkles: import("lucide-react").LucideIcon;
|
|
25
|
+
readonly wand: import("lucide-react").LucideIcon;
|
|
26
|
+
readonly calendar: import("lucide-react").LucideIcon;
|
|
27
|
+
readonly file: import("lucide-react").LucideIcon;
|
|
28
|
+
readonly folder: import("lucide-react").LucideIcon;
|
|
29
|
+
readonly "folder-open": import("lucide-react").LucideIcon;
|
|
30
|
+
readonly home: import("lucide-react").LucideIcon;
|
|
31
|
+
readonly bell: import("lucide-react").LucideIcon;
|
|
32
|
+
readonly shield: import("lucide-react").LucideIcon;
|
|
33
|
+
readonly "shield-check": import("lucide-react").LucideIcon;
|
|
34
|
+
readonly send: import("lucide-react").LucideIcon;
|
|
35
|
+
readonly settings: import("lucide-react").LucideIcon;
|
|
36
|
+
readonly users: import("lucide-react").LucideIcon;
|
|
37
|
+
readonly user: import("lucide-react").LucideIcon;
|
|
38
|
+
readonly search: import("lucide-react").LucideIcon;
|
|
39
|
+
readonly tag: import("lucide-react").LucideIcon;
|
|
40
|
+
readonly key: import("lucide-react").LucideIcon;
|
|
41
|
+
readonly link: import("lucide-react").LucideIcon;
|
|
42
|
+
readonly palette: import("lucide-react").LucideIcon;
|
|
43
|
+
readonly share: import("lucide-react").LucideIcon;
|
|
44
|
+
readonly server: import("lucide-react").LucideIcon;
|
|
45
|
+
readonly mail: import("lucide-react").LucideIcon;
|
|
46
|
+
readonly lock: import("lucide-react").LucideIcon;
|
|
47
|
+
readonly hash: import("lucide-react").LucideIcon;
|
|
48
|
+
readonly download: import("lucide-react").LucideIcon;
|
|
49
|
+
readonly upload: import("lucide-react").LucideIcon;
|
|
50
|
+
readonly rocket: import("lucide-react").LucideIcon;
|
|
51
|
+
readonly plus: import("lucide-react").LucideIcon;
|
|
52
|
+
readonly languages: import("lucide-react").LucideIcon;
|
|
53
|
+
readonly trash: import("lucide-react").LucideIcon;
|
|
54
|
+
readonly x: import("lucide-react").LucideIcon;
|
|
55
|
+
readonly check: import("lucide-react").LucideIcon;
|
|
56
|
+
readonly "arrow-left": import("lucide-react").LucideIcon;
|
|
57
|
+
readonly "arrow-right": import("lucide-react").LucideIcon;
|
|
58
|
+
readonly copy: import("lucide-react").LucideIcon;
|
|
59
|
+
readonly pencil: import("lucide-react").LucideIcon;
|
|
60
|
+
readonly eye: import("lucide-react").LucideIcon;
|
|
61
|
+
readonly "eye-off": import("lucide-react").LucideIcon;
|
|
62
|
+
readonly filter: import("lucide-react").LucideIcon;
|
|
63
|
+
readonly refresh: import("lucide-react").LucideIcon;
|
|
64
|
+
readonly "more-horizontal": import("lucide-react").LucideIcon;
|
|
65
|
+
readonly "more-vertical": import("lucide-react").LucideIcon;
|
|
66
|
+
readonly "external-link": import("lucide-react").LucideIcon;
|
|
67
|
+
readonly "chevron-down": import("lucide-react").LucideIcon;
|
|
68
|
+
readonly "chevron-left": import("lucide-react").LucideIcon;
|
|
69
|
+
readonly "chevron-right": import("lucide-react").LucideIcon;
|
|
70
|
+
readonly "chevron-up": import("lucide-react").LucideIcon;
|
|
71
|
+
readonly save: import("lucide-react").LucideIcon;
|
|
72
|
+
readonly undo: import("lucide-react").LucideIcon;
|
|
73
|
+
readonly archive: import("lucide-react").LucideIcon;
|
|
74
|
+
readonly star: import("lucide-react").LucideIcon;
|
|
75
|
+
readonly flag: import("lucide-react").LucideIcon;
|
|
76
|
+
readonly clock: import("lucide-react").LucideIcon;
|
|
77
|
+
readonly "map-pin": import("lucide-react").LucideIcon;
|
|
78
|
+
readonly phone: import("lucide-react").LucideIcon;
|
|
79
|
+
readonly printer: import("lucide-react").LucideIcon;
|
|
80
|
+
readonly "alert-triangle": import("lucide-react").LucideIcon;
|
|
81
|
+
readonly info: import("lucide-react").LucideIcon;
|
|
82
|
+
readonly "check-circle": import("lucide-react").LucideIcon;
|
|
83
|
+
readonly "x-circle": import("lucide-react").LucideIcon;
|
|
84
|
+
readonly loader: import("lucide-react").LucideIcon;
|
|
85
|
+
readonly mic: import("lucide-react").LucideIcon;
|
|
86
|
+
readonly "circle-stop": import("lucide-react").LucideIcon;
|
|
87
|
+
readonly image: import("lucide-react").LucideIcon;
|
|
88
|
+
readonly camera: import("lucide-react").LucideIcon;
|
|
89
|
+
readonly headphones: import("lucide-react").LucideIcon;
|
|
90
90
|
};
|
|
91
91
|
export declare function Icon({ name, className, }: {
|
|
92
92
|
readonly name: NavIconKey;
|
|
@@ -7,19 +7,19 @@ import "../react-css-custom-properties.ts";
|
|
|
7
7
|
export declare function fieldLabelId(id: string): string;
|
|
8
8
|
export declare function DefaultField(props: FieldProps): ReactNode;
|
|
9
9
|
declare const FIELD_ICONS: {
|
|
10
|
-
readonly mail: import("
|
|
11
|
-
readonly lock: import("
|
|
12
|
-
readonly hash: import("
|
|
13
|
-
readonly search: import("
|
|
14
|
-
readonly user: import("
|
|
15
|
-
readonly phone: import("
|
|
16
|
-
readonly calendar: import("
|
|
17
|
-
readonly link: import("
|
|
18
|
-
readonly tag: import("
|
|
19
|
-
readonly building: import("
|
|
20
|
-
readonly globe: import("
|
|
21
|
-
readonly key: import("
|
|
22
|
-
readonly "map-pin": import("
|
|
10
|
+
readonly mail: import("lucide-react").LucideIcon;
|
|
11
|
+
readonly lock: import("lucide-react").LucideIcon;
|
|
12
|
+
readonly hash: import("lucide-react").LucideIcon;
|
|
13
|
+
readonly search: import("lucide-react").LucideIcon;
|
|
14
|
+
readonly user: import("lucide-react").LucideIcon;
|
|
15
|
+
readonly phone: import("lucide-react").LucideIcon;
|
|
16
|
+
readonly calendar: import("lucide-react").LucideIcon;
|
|
17
|
+
readonly link: import("lucide-react").LucideIcon;
|
|
18
|
+
readonly tag: import("lucide-react").LucideIcon;
|
|
19
|
+
readonly building: import("lucide-react").LucideIcon;
|
|
20
|
+
readonly globe: import("lucide-react").LucideIcon;
|
|
21
|
+
readonly key: import("lucide-react").LucideIcon;
|
|
22
|
+
readonly "map-pin": import("lucide-react").LucideIcon;
|
|
23
23
|
};
|
|
24
24
|
export declare function fieldIconFor(icon: string | undefined): (typeof FIELD_ICONS)[FieldIconKey] | undefined;
|
|
25
25
|
export declare const FIELD_ICON_CLASS = "pointer-events-none absolute left-2.5 top-1/2 size-4 -translate-y-1/2 text-muted-foreground";
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@cosmicdrift/kumiko-renderer",
|
|
3
|
-
"version": "0.404.
|
|
3
|
+
"version": "0.404.1",
|
|
4
4
|
"description": "React renderer for Kumiko screens. The root export holds the platform-agnostic logic (primitives contract, hooks, KumikoScreen, navigation and SSE abstractions); ./headless the DOM-free UI logic, ./live the HTTP dispatcher, ./web the browser bindings (HTML primitives, history navigation, EventSource live events, createKumikoApp).",
|
|
5
5
|
"license": "MIT",
|
|
6
6
|
"author": "Marc Frost <marc@cosmicdriftgamestudio.com>",
|
|
@@ -48,21 +48,21 @@
|
|
|
48
48
|
}
|
|
49
49
|
},
|
|
50
50
|
"dependencies": {
|
|
51
|
-
"@cosmicdrift/kumiko-framework": "0.404.
|
|
52
|
-
"@cosmicdrift/kumiko-types": "0.404.
|
|
53
|
-
"@types/qrcode": "^1.5.
|
|
51
|
+
"@cosmicdrift/kumiko-framework": "0.404.1",
|
|
52
|
+
"@cosmicdrift/kumiko-types": "0.404.1",
|
|
53
|
+
"@types/qrcode": "^1.5.6",
|
|
54
54
|
"class-variance-authority": "^0.7.1",
|
|
55
55
|
"clsx": "^2.1.1",
|
|
56
56
|
"cmdk": "^1.1.1",
|
|
57
|
-
"lucide-react": "^1.
|
|
58
|
-
"pdfjs-dist": "6.
|
|
57
|
+
"lucide-react": "^1.65.0",
|
|
58
|
+
"pdfjs-dist": "6.4.299",
|
|
59
59
|
"qrcode": "^1.5.4",
|
|
60
60
|
"radix-ui": "^1.8.1",
|
|
61
|
-
"react": "^19.
|
|
62
|
-
"react-day-picker": "^10.0.
|
|
63
|
-
"react-dom": "^19.
|
|
64
|
-
"react-resizable-panels": "^4.
|
|
65
|
-
"tailwind-merge": "^3.
|
|
61
|
+
"react": "^19.3.1",
|
|
62
|
+
"react-day-picker": "^10.0.2",
|
|
63
|
+
"react-dom": "^19.3.1",
|
|
64
|
+
"react-resizable-panels": "^4.15.2",
|
|
65
|
+
"tailwind-merge": "^3.7.0",
|
|
66
66
|
"temporal-polyfill": "^0.3.2",
|
|
67
67
|
"zod": "^4.6.7"
|
|
68
68
|
},
|
|
@@ -79,13 +79,13 @@
|
|
|
79
79
|
}
|
|
80
80
|
},
|
|
81
81
|
"devDependencies": {
|
|
82
|
-
"@cosmicdrift/kumiko-locale-de": "0.404.
|
|
83
|
-
"@cosmicdrift/kumiko-testing": "0.404.
|
|
82
|
+
"@cosmicdrift/kumiko-locale-de": "0.404.1",
|
|
83
|
+
"@cosmicdrift/kumiko-testing": "0.404.1",
|
|
84
84
|
"@tailwindcss/cli": "^4.3.3",
|
|
85
85
|
"@testing-library/react": "^16.3.3",
|
|
86
86
|
"@testing-library/user-event": "^14.6.8",
|
|
87
|
-
"@types/react": "^19.
|
|
88
|
-
"@types/react-dom": "^19.
|
|
87
|
+
"@types/react": "^19.3.0",
|
|
88
|
+
"@types/react-dom": "^19.3.0",
|
|
89
89
|
"jsdom": "^29.1.1",
|
|
90
90
|
"tailwindcss": "^4.3.3"
|
|
91
91
|
},
|