@cosmicdrift/kumiko-types 0.331.0 → 0.332.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/config.d.ts +3 -0
- package/dist/feature.d.ts +8 -3
- package/dist/nav-icon.d.ts +1 -1
- package/dist/nav-icon.js +1 -0
- package/dist/screen.d.ts +9 -2
- package/package.json +1 -1
package/dist/config.d.ts
CHANGED
|
@@ -7,6 +7,7 @@ import type { EscapeHatchDeclaration, JobContext } from "./handlers.js";
|
|
|
7
7
|
import type { PostDeleteHookFn, PostSaveHookFn, PreDeleteHookFn, PreQueryHookFn, PreSaveHookFn } from "./hooks.js";
|
|
8
8
|
import type { TenantId } from "./identifiers.js";
|
|
9
9
|
import type { NavIconKey } from "./nav-icon.js";
|
|
10
|
+
import type { DashboardCustomPanel, DashboardScreenPanel } from "./screen.js";
|
|
10
11
|
import type { TenantDb } from "./tenant-db-types.js";
|
|
11
12
|
export type ConfigKeyAccess = {
|
|
12
13
|
readonly read: readonly string[];
|
|
@@ -213,9 +214,11 @@ export type RegistrarExtensionRegistration = {
|
|
|
213
214
|
readonly options?: Record<string, unknown> | undefined;
|
|
214
215
|
readonly featureName?: string;
|
|
215
216
|
};
|
|
217
|
+
export type ExtensionSelectorPanel = DashboardCustomPanel | Omit<DashboardScreenPanel, "label">;
|
|
216
218
|
export type ExtensionSelectorDef = {
|
|
217
219
|
readonly extensionName: string;
|
|
218
220
|
readonly qualifiedKey: string;
|
|
221
|
+
readonly panels?: readonly ExtensionSelectorPanel[];
|
|
219
222
|
};
|
|
220
223
|
export type ReferenceDataDef = {
|
|
221
224
|
readonly entityName: string;
|
package/dist/feature.d.ts
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import type * as z from "zod";
|
|
2
2
|
import type { ZodType } from "zod";
|
|
3
|
-
import type { ConfigKeyDefinition, ConfigKeyHandle, ConfigKeyType, ConfigSeedDef, ExtensionSelectorDef, JobDefinition, JobHandlerFn, NotificationDataFn, NotificationDefinition, NotificationRecipientFn, NotificationTemplateFn, ReferenceDataDef, RegistrarExtensionDef, RegistrarExtensionRegistration, TranslationKeys, TranslationsDef } from "./config.js";
|
|
3
|
+
import type { ConfigKeyDefinition, ConfigKeyHandle, ConfigKeyType, ConfigSeedDef, ExtensionSelectorDef, ExtensionSelectorPanel, JobDefinition, JobHandlerFn, NotificationDataFn, NotificationDefinition, NotificationRecipientFn, NotificationTemplateFn, ReferenceDataDef, RegistrarExtensionDef, RegistrarExtensionRegistration, TranslationKeys, TranslationsDef } from "./config.js";
|
|
4
4
|
import type { QueryHandlerDefinition, StreamHandlerDefinition, WriteHandlerDefinition } from "./define-handler.js";
|
|
5
5
|
import type { RegisterEntityCrudOptions } from "./entity-handlers.js";
|
|
6
6
|
import type { EntityTableMeta } from "./entity-table-meta-types.js";
|
|
@@ -327,11 +327,15 @@ export type FeatureRegistrar<TFeature extends string = string> = {
|
|
|
327
327
|
* Settings-Hub render one tenant dashboard for the owner: the selector as a
|
|
328
328
|
* select of the mounted plugin ids, the selected plugin's config and secrets
|
|
329
329
|
* as panels, and plugin features lose their own tenant nav. `config:write:set`
|
|
330
|
-
* rejects unknown plugin ids (`""` clears).
|
|
330
|
+
* rejects unknown plugin ids (`""` clears). `options.panels` adds the owner's own
|
|
331
|
+
* `custom`/`screen` panels to that dashboard, after the selection and before the
|
|
332
|
+
* plugin panels (a short `screen` id means a screen of the declaring feature).
|
|
331
333
|
*/
|
|
332
334
|
extensionSelector(extensionName: string, key: {
|
|
333
335
|
readonly name: string;
|
|
334
|
-
} | string
|
|
336
|
+
} | string, options?: {
|
|
337
|
+
readonly panels?: readonly ExtensionSelectorPanel[];
|
|
338
|
+
}): void;
|
|
335
339
|
/**
|
|
336
340
|
* Marker-Deklaration: dieses Feature stellt eine Cross-Feature-API
|
|
337
341
|
* unter dem genannten Namen bereit. Die eigentliche Implementation
|
|
@@ -489,6 +493,7 @@ export type Registry = {
|
|
|
489
493
|
getExtension(name: string): RegistrarExtensionDef | undefined;
|
|
490
494
|
getExtensionUsages(extensionName: string): readonly RegistrarExtensionRegistration[];
|
|
491
495
|
getAllExtensionSelectors(): ReadonlyMap<string, string>;
|
|
496
|
+
getExtensionSelectorPanels(extensionName: string): readonly ExtensionSelectorPanel[];
|
|
492
497
|
getAllNotifications(): ReadonlyMap<string, NotificationDefinition>;
|
|
493
498
|
getAllReferenceData(): readonly ReferenceDataDef[];
|
|
494
499
|
getProjectionsForSource(entityName: string): readonly ProjectionDefinition[];
|
package/dist/nav-icon.d.ts
CHANGED
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
export declare const NAV_ICON_KEYS: readonly ["dashboard", "layout-grid", "book-open", "clipboard-list", "package", "gauge", "list", "table", "layers", "building", "calculator", "wallet", "coins", "credit-card", "piggy-bank", "receipt", "chart", "bar-chart", "trending", "sparkles", "wand", "calendar", "file", "folder", "folder-open", "home", "bell", "shield", "shield-check", "send", "settings", "users", "user", "search", "tag", "key", "link", "palette", "share", "server", "mail", "lock", "hash", "download", "upload", "rocket", "plus", "languages", "trash", "x", "check", "arrow-left", "arrow-right", "copy", "pencil", "eye", "eye-off", "filter", "refresh", "more-horizontal", "more-vertical", "external-link", "chevron-down", "chevron-left", "chevron-right", "save", "undo", "archive", "star", "flag", "clock", "map-pin", "phone", "printer", "alert-triangle", "info", "check-circle", "x-circle", "loader", "mic", "circle-stop", "image", "camera", "headphones"];
|
|
1
|
+
export declare const NAV_ICON_KEYS: readonly ["dashboard", "layout-grid", "book-open", "clipboard-list", "package", "gauge", "list", "table", "layers", "building", "calculator", "wallet", "coins", "credit-card", "piggy-bank", "receipt", "chart", "bar-chart", "trending", "sparkles", "wand", "calendar", "file", "folder", "folder-open", "home", "bell", "shield", "shield-check", "send", "settings", "users", "user", "search", "tag", "key", "link", "palette", "share", "server", "mail", "lock", "hash", "download", "upload", "rocket", "plus", "languages", "trash", "x", "check", "arrow-left", "arrow-right", "copy", "pencil", "eye", "eye-off", "filter", "refresh", "more-horizontal", "more-vertical", "external-link", "chevron-down", "chevron-up", "chevron-left", "chevron-right", "save", "undo", "archive", "star", "flag", "clock", "map-pin", "phone", "printer", "alert-triangle", "info", "check-circle", "x-circle", "loader", "mic", "circle-stop", "image", "camera", "headphones"];
|
|
2
2
|
export type NavIconKey = (typeof NAV_ICON_KEYS)[number];
|
|
3
3
|
export type IconKey = NavIconKey;
|
package/dist/nav-icon.js
CHANGED
package/dist/screen.d.ts
CHANGED
|
@@ -462,13 +462,20 @@ export type ProjectionListScreenDefinition = {
|
|
|
462
462
|
readonly slots?: ScreenSlots;
|
|
463
463
|
readonly access?: AccessRule;
|
|
464
464
|
};
|
|
465
|
+
export type RecordHeaderSubtitlePart = string | {
|
|
466
|
+
readonly field: string;
|
|
467
|
+
readonly navigate?: MetricNavigate;
|
|
468
|
+
};
|
|
465
469
|
export type RecordHeaderSpec = {
|
|
466
470
|
readonly title: string;
|
|
467
|
-
|
|
471
|
+
/** Field name, or several parts (field name or `{ field, navigate }`)
|
|
472
|
+
* joined by a separator; parts with an empty value are dropped. */
|
|
473
|
+
readonly subtitle?: string | readonly RecordHeaderSubtitlePart[];
|
|
468
474
|
readonly status?: string;
|
|
469
475
|
/** Record field holding an absolute http(s) URL. When present and the
|
|
470
476
|
* field's value is such a URL, the subtitle renders as an external link
|
|
471
|
-
* (`target="_blank"`) instead of plain text.
|
|
477
|
+
* (`target="_blank"`) instead of plain text. Only valid with the string
|
|
478
|
+
* form of `subtitle`. */
|
|
472
479
|
readonly subtitleHref?: string;
|
|
473
480
|
/** Badge tone per `status` field value; unlisted values fall back to the value heuristic. */
|
|
474
481
|
readonly statusTones?: {
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@cosmicdrift/kumiko-types",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.332.0",
|
|
4
4
|
"description": "Framework-Type-Definitions für Kumiko — FeatureDefinition, BootCheck-Types und die reinen Engine-Types. Erlaubt Downstream-Konsumenten, gegen die Type-Contracts zu bauen, ohne das ganze Framework-Package zu importieren. Enthaelt keine identitaets-sensitiven Runtime-Werte mehr (Error-Klassen leben seit #1629 in kumiko-framework, Brand-Symbole nutzen Symbol.for) und ist deshalb eine plain dependency, keine peerDependency.",
|
|
5
5
|
"license": "BUSL-1.1",
|
|
6
6
|
"author": "Marc Frost <marc@cosmicdriftgamestudio.com>",
|