@cosmicdrift/kumiko-types 0.391.1 → 0.392.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/dist/fields.d.ts +1 -1
- package/dist/fields.js +1 -1
- package/dist/screen-action-form.d.ts +3 -3
- package/dist/screen-custom-config.d.ts +4 -4
- package/dist/screen-dashboard.d.ts +9 -1
- package/dist/screen-entity-edit.d.ts +14 -3
- package/dist/screen-entity-list.d.ts +9 -2
- package/dist/screen-projection.d.ts +10 -4
- package/dist/screen.d.ts +2 -2
- package/package.json +1 -1
- package/src/changes.json +36 -0
package/dist/fields.d.ts
CHANGED
|
@@ -181,7 +181,7 @@ export type BooleanFieldDef = {
|
|
|
181
181
|
readonly default?: boolean;
|
|
182
182
|
readonly access?: FieldAccess;
|
|
183
183
|
};
|
|
184
|
-
export declare const SELECT_OPTION_TONES: readonly ["ok", "warn", "bad", "neutral"];
|
|
184
|
+
export declare const SELECT_OPTION_TONES: readonly ["ok", "warn", "bad", "critical", "accent", "neutral"];
|
|
185
185
|
export type SelectOptionTone = (typeof SELECT_OPTION_TONES)[number];
|
|
186
186
|
/** One `optionsQueryPayload` entry: a literal, or `{ field }` = the current value of
|
|
187
187
|
* a sibling field of the same form (config keys: another key of the owner feature). */
|
package/dist/fields.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
/// <reference types="temporal-polyfill/global" preserve="true" />
|
|
2
2
|
// --- Field Types ---
|
|
3
|
-
export const SELECT_OPTION_TONES = ["ok", "warn", "bad", "neutral"];
|
|
3
|
+
export const SELECT_OPTION_TONES = ["ok", "warn", "bad", "critical", "accent", "neutral"];
|
|
4
4
|
export function isOptionsQueryFieldRef(value) {
|
|
5
5
|
return typeof value === "object" && value !== null;
|
|
6
6
|
}
|
|
@@ -2,7 +2,7 @@ import type { FormFieldDefinition } from "./fields.ts";
|
|
|
2
2
|
import type { AccessRule, AgentScreenHints } from "./handlers.ts";
|
|
3
3
|
import type { IconKey } from "./nav-icon.ts";
|
|
4
4
|
import type { ScreenNavSugar, ScreenSlots } from "./screen.ts";
|
|
5
|
-
import type {
|
|
5
|
+
import type { ScreenVisibility } from "./screen-dashboard.ts";
|
|
6
6
|
import type { EditLayout } from "./screen-entity-edit.ts";
|
|
7
7
|
/** A form field computed from other fields of the same form. `listSum` adds one
|
|
8
8
|
* numeric cell over all rows of an embedded list field; its `whenEmpty`
|
|
@@ -35,7 +35,7 @@ export type ActionFormScreenDefinition = {
|
|
|
35
35
|
* app); exempts it from the nav-area boot check. */
|
|
36
36
|
readonly dormant?: boolean;
|
|
37
37
|
/** UI-only gate, also on direct URL access; handlers still enforce access. Unmet or failed renders `fallback`. */
|
|
38
|
-
readonly visibleWhen?:
|
|
38
|
+
readonly visibleWhen?: ScreenVisibility;
|
|
39
39
|
/** Same-feature short id or cross-feature QN `<feature>:screen:<id>` shown when `visibleWhen` is unmet (default: standard notice). */
|
|
40
40
|
readonly fallback?: string;
|
|
41
41
|
/** Derived by buildAppSchema — see EntityEditScreenDefinition.urlPrefillFields. */
|
|
@@ -272,7 +272,7 @@ export type SecretMintScreenDefinition = {
|
|
|
272
272
|
* app); exempts it from the nav-area boot check. */
|
|
273
273
|
readonly dormant?: boolean;
|
|
274
274
|
/** UI-only gate, also on direct URL access; handlers still enforce access. Unmet or failed renders `fallback`. */
|
|
275
|
-
readonly visibleWhen?:
|
|
275
|
+
readonly visibleWhen?: ScreenVisibility;
|
|
276
276
|
/** Same-feature short id or cross-feature QN `<feature>:screen:<id>` shown when `visibleWhen` is unmet (default: standard notice). */
|
|
277
277
|
readonly fallback?: string;
|
|
278
278
|
/** Derived by buildAppSchema — see EntityEditScreenDefinition.urlPrefillFields. */
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import type { FieldDefinition } from "./fields.ts";
|
|
2
2
|
import type { AccessRule, AgentScreenHints } from "./handlers.ts";
|
|
3
3
|
import type { PlatformComponent, ScreenNavSugar, ScreenSlots } from "./screen.ts";
|
|
4
|
-
import type {
|
|
4
|
+
import type { ScreenVisibility } from "./screen-dashboard.ts";
|
|
5
5
|
import type { EditLayout } from "./screen-entity-edit.ts";
|
|
6
6
|
export type CustomScreenRoute = {
|
|
7
7
|
readonly path: string;
|
|
@@ -30,7 +30,7 @@ export type CustomScreenDefinition = {
|
|
|
30
30
|
* `dormant` on other screens. */
|
|
31
31
|
readonly dormant?: boolean;
|
|
32
32
|
/** UI-only gate, also on direct URL access; handlers still enforce access. Unmet or failed renders `fallback`. */
|
|
33
|
-
readonly visibleWhen?:
|
|
33
|
+
readonly visibleWhen?: ScreenVisibility;
|
|
34
34
|
/** Same-feature short id or cross-feature QN `<feature>:screen:<id>` shown when `visibleWhen` is unmet (default: standard notice). */
|
|
35
35
|
readonly fallback?: string;
|
|
36
36
|
};
|
|
@@ -48,7 +48,7 @@ export type ConfigEditScreenDefinition = {
|
|
|
48
48
|
* app); exempts it from the nav-area boot check. */
|
|
49
49
|
readonly dormant?: boolean;
|
|
50
50
|
/** UI-only gate, also on direct URL access; handlers still enforce access. Unmet or failed renders `fallback`. */
|
|
51
|
-
readonly visibleWhen?:
|
|
51
|
+
readonly visibleWhen?: ScreenVisibility;
|
|
52
52
|
/** Same-feature short id or cross-feature QN `<feature>:screen:<id>` shown when `visibleWhen` is unmet (default: standard notice). */
|
|
53
53
|
readonly fallback?: string;
|
|
54
54
|
/** scope for config:write:set calls. Must match the scope declaration of
|
|
@@ -101,7 +101,7 @@ export type SecretsEditScreenDefinition = {
|
|
|
101
101
|
* app); exempts it from the nav-area boot check. */
|
|
102
102
|
readonly dormant?: boolean;
|
|
103
103
|
/** UI-only gate, also on direct URL access; handlers still enforce access. Unmet or failed renders `fallback`. */
|
|
104
|
-
readonly visibleWhen?:
|
|
104
|
+
readonly visibleWhen?: ScreenVisibility;
|
|
105
105
|
/** Same-feature short id or cross-feature QN `<feature>:screen:<id>` shown when `visibleWhen` is unmet (default: standard notice). */
|
|
106
106
|
readonly fallback?: string;
|
|
107
107
|
/** field id -> qualified secret name (`<feature>:secret:<kebab>`). */
|
|
@@ -200,6 +200,9 @@ export type DashboardCustomPanel = {
|
|
|
200
200
|
readonly kind: "custom";
|
|
201
201
|
readonly id: string;
|
|
202
202
|
readonly component: PlatformComponent;
|
|
203
|
+
/** Static author values laid over the screen's filterParams, like
|
|
204
|
+
* `DashboardPanelQueryOptions.params`; the panel wins on a name clash. */
|
|
205
|
+
readonly params?: Readonly<Record<string, unknown>>;
|
|
203
206
|
};
|
|
204
207
|
export type DashboardTextBlock = {
|
|
205
208
|
readonly kind: "heading";
|
|
@@ -241,6 +244,11 @@ export type DashboardPanelVisibility = {
|
|
|
241
244
|
readonly field: string;
|
|
242
245
|
readonly eq: string | number | boolean | null;
|
|
243
246
|
};
|
|
247
|
+
export type ScreenVisibility = DashboardPanelVisibility & {
|
|
248
|
+
/** Payload key that receives the screen's route id (projectionDetail only). Without it
|
|
249
|
+
* the gate query runs with an empty payload. */
|
|
250
|
+
readonly idParam?: string;
|
|
251
|
+
};
|
|
244
252
|
export type DashboardScreenPanel = {
|
|
245
253
|
readonly kind: "screen";
|
|
246
254
|
readonly id: string;
|
|
@@ -321,7 +329,7 @@ export type DashboardScreenDefinition = {
|
|
|
321
329
|
* app); exempts it from the nav-area boot check. */
|
|
322
330
|
readonly dormant?: boolean;
|
|
323
331
|
/** UI-only gate, also on direct URL access; handlers still enforce access. Unmet or failed renders `fallback`. */
|
|
324
|
-
readonly visibleWhen?:
|
|
332
|
+
readonly visibleWhen?: ScreenVisibility;
|
|
325
333
|
/** Same-feature short id or cross-feature QN `<feature>:screen:<id>` shown when `visibleWhen` is unmet (default: standard notice). */
|
|
326
334
|
readonly fallback?: string;
|
|
327
335
|
readonly panels: readonly DashboardPanelDefinition[];
|
|
@@ -4,7 +4,7 @@ import type { AccessRule, AgentScreenHints } from "./handlers.ts";
|
|
|
4
4
|
import type { IconKey } from "./nav-icon.ts";
|
|
5
5
|
import type { FieldRenderer, PlatformComponent, ScreenNavSugar, ScreenSlots } from "./screen.ts";
|
|
6
6
|
import type { ActionFormRedirect } from "./screen-action-form.ts";
|
|
7
|
-
import type {
|
|
7
|
+
import type { ScreenVisibility } from "./screen-dashboard.ts";
|
|
8
8
|
import type { ListColumnSpec, ListSortSpec, RelatedListToolbarAction, RowAction, RowActionMode, RowFieldExtractor } from "./screen-entity-list.ts";
|
|
9
9
|
import type { ListBulkAction } from "./screen-list-bulk.ts";
|
|
10
10
|
import type { ListTableGrouping, ListTableOptions } from "./screen-list-table.ts";
|
|
@@ -292,7 +292,18 @@ export type EditRelatedListSection = {
|
|
|
292
292
|
* section's query returns zero rows. Omitted: the DataTable default
|
|
293
293
|
* ("kumiko.list.no-entries") applies. `action`'s icon must resolve, same
|
|
294
294
|
* as `actions` above. */
|
|
295
|
-
readonly emptyState?:
|
|
295
|
+
readonly emptyState?: RelatedListEmptyStateSpec;
|
|
296
|
+
};
|
|
297
|
+
/** Empty-state text for one parent-record state, e.g. "still running" vs. "finished without rows". */
|
|
298
|
+
export type RelatedListEmptyStateVariant = {
|
|
299
|
+
readonly when: Exclude<FieldCondition, boolean>;
|
|
300
|
+
readonly title: string;
|
|
301
|
+
readonly description?: string;
|
|
302
|
+
};
|
|
303
|
+
/** The first `variants` entry whose `when` holds for the parent record replaces `title` and
|
|
304
|
+
* `description`; `action` stays. */
|
|
305
|
+
export type RelatedListEmptyStateSpec = ListEmptyStateSpec & {
|
|
306
|
+
readonly variants?: readonly RelatedListEmptyStateVariant[];
|
|
296
307
|
};
|
|
297
308
|
export type EditWriteFormSection = {
|
|
298
309
|
/** Kebab-case tab id, used as the `?tab=` value. Required by the
|
|
@@ -378,7 +389,7 @@ export type EntityEditScreenDefinition = {
|
|
|
378
389
|
* app); exempts it from the nav-area boot check. */
|
|
379
390
|
readonly dormant?: boolean;
|
|
380
391
|
/** UI-only gate, also on direct URL access; handlers still enforce access. Unmet or failed renders `fallback`. */
|
|
381
|
-
readonly visibleWhen?:
|
|
392
|
+
readonly visibleWhen?: ScreenVisibility;
|
|
382
393
|
/** Same-feature short id or cross-feature QN `<feature>:screen:<id>` shown when `visibleWhen` is unmet (default: standard notice). */
|
|
383
394
|
readonly fallback?: string;
|
|
384
395
|
/** Derived by buildAppSchema from the navigate `params` targeting this
|
|
@@ -3,7 +3,7 @@ import type { AccessRule, AgentScreenHints } from "./handlers.ts";
|
|
|
3
3
|
import type { IconKey } from "./nav-icon.ts";
|
|
4
4
|
import type { FieldRenderer, PlatformComponent, ScreenNavSugar, ScreenSlots } from "./screen.ts";
|
|
5
5
|
import type { ActionFormRedirect } from "./screen-action-form.ts";
|
|
6
|
-
import type {
|
|
6
|
+
import type { ScreenVisibility } from "./screen-dashboard.ts";
|
|
7
7
|
import type { ListEmptyStateSpec } from "./screen-entity-edit.ts";
|
|
8
8
|
import type { EntityListExpandableRow } from "./screen-expandable-row.ts";
|
|
9
9
|
import type { ListBulkAction } from "./screen-list-bulk.ts";
|
|
@@ -334,10 +334,17 @@ export type RelatedListToolbarAction = (Extract<ToolbarAction, {
|
|
|
334
334
|
readonly kind: "writeHandler";
|
|
335
335
|
}> & {
|
|
336
336
|
readonly visible?: FieldCondition;
|
|
337
|
+
/** Values extracted from the parent record, merged over the static
|
|
338
|
+
* `payload` (extracted values win). Without a parent record the action
|
|
339
|
+
* stays hidden. */
|
|
340
|
+
readonly params?: RowFieldExtractor;
|
|
337
341
|
}) | (Extract<ToolbarAction, {
|
|
338
342
|
readonly kind: "drawer";
|
|
339
343
|
}> & {
|
|
340
344
|
readonly visible?: FieldCondition;
|
|
345
|
+
/** Values extracted from the parent record, prefilling the drawer's
|
|
346
|
+
* actionForm. Without a parent record the action stays hidden. */
|
|
347
|
+
readonly params?: RowFieldExtractor;
|
|
341
348
|
});
|
|
342
349
|
/** An extra choice on a facet next to the field's own options: a named
|
|
343
350
|
* bundle of values ("Running" = several statuses) or "no filter" (`values:
|
|
@@ -381,7 +388,7 @@ export type EntityListScreenDefinition = {
|
|
|
381
388
|
* app); exempts it from the nav-area boot check. */
|
|
382
389
|
readonly dormant?: boolean;
|
|
383
390
|
/** UI-only gate, also on direct URL access; handlers still enforce access. Unmet or failed renders `fallback`. */
|
|
384
|
-
readonly visibleWhen?:
|
|
391
|
+
readonly visibleWhen?: ScreenVisibility;
|
|
385
392
|
/** Same-feature short id or cross-feature QN `<feature>:screen:<id>` shown when `visibleWhen` is unmet (default: standard notice). */
|
|
386
393
|
readonly fallback?: string;
|
|
387
394
|
readonly entity: string;
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
import type { SelectOptionTone } from "./fields.ts";
|
|
2
2
|
import type { AccessRule, AgentScreenHints } from "./handlers.ts";
|
|
3
3
|
import type { NavIconKey } from "./nav-icon.ts";
|
|
4
|
-
import type { PlatformComponent, ScreenNavSugar, ScreenSlots } from "./screen.ts";
|
|
5
|
-
import type {
|
|
4
|
+
import type { FormatSpec, PlatformComponent, ScreenNavSugar, ScreenSlots } from "./screen.ts";
|
|
5
|
+
import type { DashboardStatTone, ScreenVisibility } from "./screen-dashboard.ts";
|
|
6
6
|
import type { EditLayout, ListEmptyStateSpec } from "./screen-entity-edit.ts";
|
|
7
7
|
import type { ListColumnSpec, ListPaginationMode, ListSortSpec, RowAction, RowActionMode, RowFieldExtractor, ScreenFilter, ToolbarAction } from "./screen-entity-list.ts";
|
|
8
8
|
import type { ListBulkAction } from "./screen-list-bulk.ts";
|
|
@@ -64,7 +64,7 @@ export type ProjectionListScreenDefinition = {
|
|
|
64
64
|
* app); exempts it from the nav-area boot check. */
|
|
65
65
|
readonly dormant?: boolean;
|
|
66
66
|
/** UI-only gate, also on direct URL access; handlers still enforce access. Unmet or failed renders `fallback`. */
|
|
67
|
-
readonly visibleWhen?:
|
|
67
|
+
readonly visibleWhen?: ScreenVisibility;
|
|
68
68
|
/** Same-feature short id or cross-feature QN `<feature>:screen:<id>` shown when `visibleWhen` is unmet (default: standard notice). */
|
|
69
69
|
readonly fallback?: string;
|
|
70
70
|
readonly query: string;
|
|
@@ -124,6 +124,8 @@ export type RecordHeaderSpec = {
|
|
|
124
124
|
* joined by a separator; parts with an empty value are dropped. */
|
|
125
125
|
readonly subtitle?: string | readonly RecordHeaderSubtitlePart[];
|
|
126
126
|
readonly status?: string;
|
|
127
|
+
/** Formats the badge text (typically `enumOption` with a `keyPrefix`); tones still resolve on the raw value. Needs `status`. Without it, the `status` field's layout renderer is used when it is `enumOption` or `i18nText`. */
|
|
128
|
+
readonly statusFormat?: FormatSpec;
|
|
127
129
|
/** Record field holding an absolute http(s) URL. When present and the
|
|
128
130
|
* field's value is such a URL, the subtitle renders as an external link
|
|
129
131
|
* (`target="_blank"`) instead of plain text. Only valid with the string
|
|
@@ -172,7 +174,7 @@ export type ProjectionDetailScreenDefinition = {
|
|
|
172
174
|
* app); exempts it from the nav-area boot check. */
|
|
173
175
|
readonly dormant?: boolean;
|
|
174
176
|
/** UI-only gate, also on direct URL access; handlers still enforce access. Unmet or failed renders `fallback`. */
|
|
175
|
-
readonly visibleWhen?:
|
|
177
|
+
readonly visibleWhen?: ScreenVisibility;
|
|
176
178
|
/** Same-feature short id or cross-feature QN `<feature>:screen:<id>` shown when `visibleWhen` is unmet (default: standard notice). */
|
|
177
179
|
readonly fallback?: string;
|
|
178
180
|
readonly query: string;
|
|
@@ -226,6 +228,10 @@ export type ProjectionDetailScreenDefinition = {
|
|
|
226
228
|
* action); default precedence is `edit`, then `style: "primary"`, then the
|
|
227
229
|
* first action. */
|
|
228
230
|
readonly primaryAction?: string;
|
|
231
|
+
/** Action ids that stay visible buttons next to the primary action when the rest
|
|
232
|
+
* collapses into the menu. Same id rules as `primaryAction`; the phone header keeps
|
|
233
|
+
* its single icon button. */
|
|
234
|
+
readonly inlineActions?: readonly string[];
|
|
229
235
|
/** How head fields render. Default "text" — plain text instead of a
|
|
230
236
|
* disabled Input, since every field on this screen type is forced
|
|
231
237
|
* readOnly anyway (there is no write path, see the shim doc above).
|
package/dist/screen.d.ts
CHANGED
|
@@ -117,9 +117,9 @@ export type ScreenNavSugar = {
|
|
|
117
117
|
export type ScreenDefinition = EntityListScreenDefinition | ProjectionListScreenDefinition | ProjectionDetailScreenDefinition | DashboardScreenDefinition | EntityEditScreenDefinition | ActionFormScreenDefinition | ConfigEditScreenDefinition | SecretsEditScreenDefinition | SecretMintScreenDefinition | CustomScreenDefinition;
|
|
118
118
|
export type { ActionFormFooterAction, ActionFormLoad, ActionFormRedirect, ActionFormScreenDefinition, ActionFormSuccessFact, ActionFormSuccessLink, FormFieldDerivation, FormFieldDerivationWithoutList, SecretMintConfirmStep, SecretMintScreenDefinition, SecretReveal, SecretRevealField, } from "./screen-action-form.ts";
|
|
119
119
|
export type { ConfigEditScreenDefinition, CustomScreenDefinition, CustomScreenRoute, SecretsEditScreenDefinition, SecretsEditSection, } from "./screen-custom-config.ts";
|
|
120
|
-
export type { DashboardChartKind, DashboardChartMarkerKind, DashboardChartPanel, DashboardChartRangeOption, DashboardChartRanges, DashboardChartTone, DashboardCurrencyFormat, DashboardCustomPanel, DashboardDateParam, DashboardFeedPanel, DashboardFilterDefinition, DashboardI18nText, DashboardListPanel, DashboardMoneyParam, DashboardPanelDefinition, DashboardPanelEmptyState, DashboardPanelGate, DashboardPanelQueryOptions, DashboardPanelSpan, DashboardPanelVisibility, DashboardProgressListPanel, DashboardProgressTone, DashboardRecordBinding, DashboardRefresh, DashboardRelativeTimeFormat, DashboardRelativeTimeParam, DashboardScopeDefinition, DashboardScreenDefinition, DashboardScreenPanel, DashboardStatGroupPanel, DashboardStatPanel, DashboardStatTone, DashboardText, DashboardTextBlock, DashboardTextPanel, DashboardTextParam, DashboardTimeRangeDefinition, DashboardValueFormat, } from "./screen-dashboard.ts";
|
|
120
|
+
export type { DashboardChartKind, DashboardChartMarkerKind, DashboardChartPanel, DashboardChartRangeOption, DashboardChartRanges, DashboardChartTone, DashboardCurrencyFormat, DashboardCustomPanel, DashboardDateParam, DashboardFeedPanel, DashboardFilterDefinition, DashboardI18nText, DashboardListPanel, DashboardMoneyParam, DashboardPanelDefinition, DashboardPanelEmptyState, DashboardPanelGate, DashboardPanelQueryOptions, DashboardPanelSpan, DashboardPanelVisibility, DashboardProgressListPanel, DashboardProgressTone, DashboardRecordBinding, DashboardRefresh, DashboardRelativeTimeFormat, DashboardRelativeTimeParam, DashboardScopeDefinition, DashboardScreenDefinition, DashboardScreenPanel, DashboardStatGroupPanel, DashboardStatPanel, DashboardStatTone, DashboardText, DashboardTextBlock, DashboardTextPanel, DashboardTextParam, DashboardTimeRangeDefinition, DashboardValueFormat, ScreenVisibility, } from "./screen-dashboard.ts";
|
|
121
121
|
export { DASHBOARD_MIN_REFRESH_SECONDS, DASHBOARD_STAT_TONES } from "./screen-dashboard.ts";
|
|
122
|
-
export type { EditExtensionSection, EditFieldGroup, EditFieldPrefill, EditFieldSpec, EditFieldsSection, EditLayout, EditRelatedListSection, EditSectionSpec, EditWriteFormSection, EmbeddedListEditSpec, EntityEditAction, EntityEditActionPlacement, EntityEditScreenDefinition, EntityWriteExcludedFields, FieldAffix, FieldFillAction, FormWidth, ListEmptyStateSpec, RelatedListRowTone, } from "./screen-entity-edit.ts";
|
|
122
|
+
export type { EditExtensionSection, EditFieldGroup, EditFieldPrefill, EditFieldSpec, EditFieldsSection, EditLayout, EditRelatedListSection, EditSectionSpec, EditWriteFormSection, EmbeddedListEditSpec, EntityEditAction, EntityEditActionPlacement, EntityEditScreenDefinition, EntityWriteExcludedFields, FieldAffix, FieldFillAction, FormWidth, ListEmptyStateSpec, RelatedListEmptyStateSpec, RelatedListEmptyStateVariant, RelatedListRowTone, } from "./screen-entity-edit.ts";
|
|
123
123
|
export { relatedListGroupHeaderLabel, relatedListGroupKey } from "./screen-entity-edit.ts";
|
|
124
124
|
export type { EntityListFacetConfig, EntityListFacetExtraOption, EntityListScreenDefinition, ListBadgeTone, ListColumnDisplay, ListColumnSpec, ListPaginationMode, ListSortDir, ListSortSpec, RelatedListToolbarAction, RowAction, RowActionClientAction, RowActionDisplay, RowActionDrawer, RowActionMode, RowActionNavigate, RowActionNavigateBase, RowActionWriteHandler, RowFieldExtractor, ScreenFilter, ScreenFilterOp, ToolbarAction, } from "./screen-entity-list.ts";
|
|
125
125
|
export type { EntityListExpandableRow, ExpandableRowGrouping } from "./screen-expandable-row.ts";
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@cosmicdrift/kumiko-types",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.392.1",
|
|
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": "MIT",
|
|
6
6
|
"author": "Marc Frost <marc@cosmicdriftgamestudio.com>",
|
package/src/changes.json
CHANGED
|
@@ -1,4 +1,40 @@
|
|
|
1
1
|
[
|
|
2
|
+
{
|
|
3
|
+
"version": "0.392.0",
|
|
4
|
+
"type": "improvement",
|
|
5
|
+
"title": "RecordHeaderSpec takes statusFormat",
|
|
6
|
+
"detail": "header.statusFormat is a FormatSpec for the header badge text, typically enumOption with a keyPrefix. The badge tone still resolves on the raw status value."
|
|
7
|
+
},
|
|
8
|
+
{
|
|
9
|
+
"version": "0.392.0",
|
|
10
|
+
"type": "improvement",
|
|
11
|
+
"title": "projectionDetail takes inlineActions",
|
|
12
|
+
"detail": "ProjectionDetailScreenDefinition.inlineActions lists action ids that stay visible buttons next to the primary action in the page header instead of folding into the \"More actions\" menu. Without it the header behaves as before. The phone header keeps its single icon button."
|
|
13
|
+
},
|
|
14
|
+
{
|
|
15
|
+
"version": "0.392.0",
|
|
16
|
+
"type": "improvement",
|
|
17
|
+
"title": "relatedList emptyState takes variants",
|
|
18
|
+
"detail": "EditRelatedListSection.emptyState is a RelatedListEmptyStateSpec. Its optional variants list pairs a FieldCondition on the parent record with a title and description; the first matching variant replaces the default text, the action stays."
|
|
19
|
+
},
|
|
20
|
+
{
|
|
21
|
+
"version": "0.392.0",
|
|
22
|
+
"type": "improvement",
|
|
23
|
+
"title": "relatedList drawer and writeHandler toolbar actions take params",
|
|
24
|
+
"detail": "RelatedListToolbarAction kind \"drawer\" and kind \"writeHandler\" accept params as a RowFieldExtractor evaluated against the parent record, for example params with map appId to id. A drawer gets the values as prefill, a writeHandler merges them over its static payload with the extracted values winning. Without a parent record the action stays hidden."
|
|
25
|
+
},
|
|
26
|
+
{
|
|
27
|
+
"version": "0.392.0",
|
|
28
|
+
"type": "improvement",
|
|
29
|
+
"title": "Option tones gain critical and accent",
|
|
30
|
+
"detail": "SelectOptionTone is now ok, warn, bad, critical, accent or neutral, for select optionTones, enumOption tones, relatedList rowTone and projectionDetail header.statusTones. critical and accent reuse the StatusBadge colors (status-critical and the primary brand color), neutral stays muted. An informative state such as \"Ready\" can use accent instead of a custom cell."
|
|
31
|
+
},
|
|
32
|
+
{
|
|
33
|
+
"version": "0.392.0",
|
|
34
|
+
"type": "improvement",
|
|
35
|
+
"title": "Custom dashboard panels accept static params",
|
|
36
|
+
"detail": "A dashboard panel of kind custom takes params, static values laid over the screen's filterParams for its component. The panel wins when a filter uses the same name. Without params nothing changes."
|
|
37
|
+
},
|
|
2
38
|
{
|
|
3
39
|
"version": "0.391.0",
|
|
4
40
|
"type": "improvement",
|