@object-ui/plugin-dashboard 17.5.0 → 17.7.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/CHANGELOG.md +5042 -0
- package/README.md +544 -74
- package/dist/DashboardConfigPanel.d.ts +3 -0
- package/dist/DashboardConfigPanel.d.ts.map +1 -1
- package/dist/DashboardFilterBar.d.ts.map +1 -1
- package/dist/DashboardGridLayout.d.ts +3 -2
- package/dist/DashboardGridLayout.d.ts.map +1 -1
- package/dist/DashboardRenderer.d.ts +32 -2
- package/dist/DashboardRenderer.d.ts.map +1 -1
- package/dist/DashboardWithConfig.d.ts +1 -1
- package/dist/DashboardWithConfig.d.ts.map +1 -1
- package/dist/DatasetWidget.d.ts +43 -119
- package/dist/DatasetWidget.d.ts.map +1 -1
- package/dist/DrillDownDrawer.d.ts +14 -5
- package/dist/DrillDownDrawer.d.ts.map +1 -1
- package/dist/MetricCard.d.ts +1 -1
- package/dist/MetricWidget.d.ts +27 -2
- package/dist/MetricWidget.d.ts.map +1 -1
- package/dist/ObjectDataTable.d.ts +473 -19
- package/dist/ObjectDataTable.d.ts.map +1 -1
- package/dist/ObjectMetricWidget.d.ts +65 -27
- package/dist/ObjectMetricWidget.d.ts.map +1 -1
- package/dist/ObjectPivotTable.d.ts +46 -7
- package/dist/ObjectPivotTable.d.ts.map +1 -1
- package/dist/PivotTable.d.ts +20 -3
- package/dist/PivotTable.d.ts.map +1 -1
- package/dist/RecordDetailDrawer.d.ts +8 -0
- package/dist/RecordDetailDrawer.d.ts.map +1 -1
- package/dist/WidgetConfigPanel.d.ts +29 -1
- package/dist/WidgetConfigPanel.d.ts.map +1 -1
- package/dist/WidgetEmptyState.d.ts +27 -0
- package/dist/WidgetEmptyState.d.ts.map +1 -0
- package/dist/domPassthroughPins.d.ts.map +1 -1
- package/dist/index.d.ts +30 -25
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +2306 -1858
- package/dist/index.umd.cjs +2 -2
- package/dist/legacyRetiredWidget.d.ts +5 -3
- package/dist/legacyRetiredWidget.d.ts.map +1 -1
- package/dist/measureRefusal.d.ts +50 -0
- package/dist/measureRefusal.d.ts.map +1 -0
- package/dist/recordFields.d.ts +159 -9
- package/dist/recordFields.d.ts.map +1 -1
- package/dist/retired-node-types.d.ts +29 -0
- package/dist/retired-node-types.d.ts.map +1 -0
- package/dist/useConfigPanelTranslation.d.ts +35 -0
- package/dist/useConfigPanelTranslation.d.ts.map +1 -0
- package/dist/useDashboardAutoRefresh.d.ts +47 -0
- package/dist/useDashboardAutoRefresh.d.ts.map +1 -0
- package/dist/utils.d.ts +36 -7
- package/dist/utils.d.ts.map +1 -1
- package/dist/widgetDispatch.d.ts +144 -18
- package/dist/widgetDispatch.d.ts.map +1 -1
- package/dist/widgetSubCaption.d.ts +40 -0
- package/dist/widgetSubCaption.d.ts.map +1 -0
- package/package.json +15 -15
package/dist/widgetDispatch.d.ts
CHANGED
|
@@ -1,26 +1,66 @@
|
|
|
1
|
+
import { BaseSchema, DashboardComponentSchema, DashboardWidgetSchema, DashboardWidgetSlotComponentSchema, DashboardWidgetTypeName } from '@object-ui/types';
|
|
2
|
+
import { MetricWidgetProps } from './MetricWidget.js';
|
|
1
3
|
/**
|
|
2
|
-
*
|
|
3
|
-
*
|
|
4
|
+
* One entry of a dashboard's `widgets[]`: the slot's element type, a widget or
|
|
5
|
+
* a component node placed directly in the slot (the 2026-08-14 `metric-card`
|
|
6
|
+
* slot ruling, objectstack#8593). Read off `DashboardComponentSchema.widgets`,
|
|
7
|
+
* so it is the slot's own declaration, not a restatement.
|
|
4
8
|
*
|
|
5
|
-
*
|
|
6
|
-
*
|
|
9
|
+
* Every dashboard surface reads `widgets[]` entries by this type
|
|
10
|
+
* (objectui#11514). The widget arm, `DashboardWidgetSchema`, is not a read type
|
|
11
|
+
* for an entry: since objectui#11483's closure its `type` names the widget
|
|
12
|
+
* vocabulary only, so the component arm is not assignable to it.
|
|
7
13
|
*/
|
|
14
|
+
export type DashboardWidgetSlotEntry = DashboardComponentSchema['widgets'][number];
|
|
15
|
+
export declare function specDefaultWidgetType(): DashboardWidgetTypeName;
|
|
8
16
|
/**
|
|
9
|
-
*
|
|
17
|
+
* The `type` a dashboard surface draws a `widgets[]` entry as: the authored
|
|
18
|
+
* `type`, or {@link specDefaultWidgetType} when the entry names none
|
|
19
|
+
* (objectui#11514, Q2 A). Every read of an entry's `type` on the two surfaces
|
|
20
|
+
* goes through it — the dispatch, the metric span and chrome, the mobile
|
|
21
|
+
* metric row — so a typeless widget draws exactly as the same widget with
|
|
22
|
+
* `type: 'metric'` does. It used to reach the slot-component passthrough and
|
|
23
|
+
* draw the registry's red OBJUI-001 panel.
|
|
10
24
|
*
|
|
11
|
-
*
|
|
12
|
-
*
|
|
13
|
-
*
|
|
14
|
-
*
|
|
15
|
-
*
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
*
|
|
20
|
-
*
|
|
21
|
-
*
|
|
22
|
-
*
|
|
25
|
+
* ⛔ Not for the legacy `component` envelope (`{ id, component, layout }`,
|
|
26
|
+
* objectui's own format, which the spec's widget has no member for). It draws
|
|
27
|
+
* its node, never a family, so the spec's default `type` says nothing about it:
|
|
28
|
+
* an envelope that names no `type` keeps `undefined` here and draws, chrome
|
|
29
|
+
* included, as it always did.
|
|
30
|
+
*/
|
|
31
|
+
export declare function resolveWidgetType(entry: DashboardWidgetSlotEntry): DashboardWidgetSlotEntry['type'];
|
|
32
|
+
/**
|
|
33
|
+
* The node an entry's legacy `component` envelope holds, typed as the widget
|
|
34
|
+
* arm declares that member (`DashboardWidgetSchema['component']`). Read off the
|
|
35
|
+
* entry whichever arm it is, as the surfaces always read it. The component arm
|
|
36
|
+
* declares no `component`, so a bare `entry.component` on the slot entry reads
|
|
37
|
+
* through `BaseSchema`'s index signature and is `any` — which made each
|
|
38
|
+
* surface's whole `getComponentSchema` return `any` (objectui#11514).
|
|
39
|
+
*/
|
|
40
|
+
export declare function entryComponent(entry: DashboardWidgetSlotEntry): DashboardWidgetSchema['component'];
|
|
41
|
+
/**
|
|
42
|
+
* Whether a slot entry is the component arm, `DashboardWidgetSlotComponentSchema`:
|
|
43
|
+
* its `type` is a member of the closed `DASHBOARD_COMPONENT_WIDGET_TYPES`, which
|
|
44
|
+
* no widget `type` names (objectui#11483). Read at runtime, so a stored entry
|
|
45
|
+
* whose `type` is a string outside every vocabulary is NOT the component arm.
|
|
46
|
+
*/
|
|
47
|
+
export declare function isSlotComponentEntry(entry: DashboardWidgetSlotEntry): entry is DashboardWidgetSlotComponentSchema;
|
|
48
|
+
/**
|
|
49
|
+
* The labelled placeholder a dashboard surface draws for a widget `type` it
|
|
50
|
+
* has no renderer for: a known family with no renderer yet
|
|
51
|
+
* (`UNSUPPORTED_CHART_TYPES`), and, since objectui#11514 (Q2 A), a `type` that
|
|
52
|
+
* names no family at all — stale metadata both validator faces refuse at
|
|
53
|
+
* `type`, which used to fall through to the slot-component passthrough and
|
|
54
|
+
* draw the registry's red OBJUI-001 panel dumping the widget. One declaration
|
|
55
|
+
* for both surfaces, which each spelled it out before.
|
|
23
56
|
*/
|
|
57
|
+
export declare function unsupportedWidgetSchema(widgetType: string | undefined): {
|
|
58
|
+
readonly type: "text";
|
|
59
|
+
readonly content: `\u300C${string}\u300Dchart type is not supported yet`;
|
|
60
|
+
readonly variant: "caption";
|
|
61
|
+
readonly align: "center";
|
|
62
|
+
readonly className: "flex h-full w-full items-center justify-center rounded border border-dashed bg-muted/20 p-4 text-muted-foreground";
|
|
63
|
+
};
|
|
24
64
|
/**
|
|
25
65
|
* Spec chart families that only render as another family. Normalizing them
|
|
26
66
|
* here is what lets one branch serve `column` and `bar` (the spec's own
|
|
@@ -28,6 +68,16 @@
|
|
|
28
68
|
*/
|
|
29
69
|
export declare const CHART_TYPE_ALIASES: Record<string, string>;
|
|
30
70
|
/** Cartesian / categorical / flow families the chart renderer draws. */
|
|
71
|
+
declare const SERIES_CHART_FAMILIES: readonly ["bar", "horizontal-bar", "line", "area", "pie", "donut", "scatter", "funnel", "radar", "treemap", "sankey", "combo"];
|
|
72
|
+
/**
|
|
73
|
+
* A family {@link SERIES_CHART_TYPES} names, as a literal union: the
|
|
74
|
+
* `chartType` a `series` dispatch carries. Each member is one of the families
|
|
75
|
+
* `ObjectChartSchema.chartType` declares (objectui#11513), so the `object-chart`
|
|
76
|
+
* node a surface builds from a dispatch names its family with no cast
|
|
77
|
+
* (objectui#11514). Pinned by `__tests__/dashboard-producer-node-types-11514.test.ts`.
|
|
78
|
+
*/
|
|
79
|
+
export type SeriesChartFamily = (typeof SERIES_CHART_FAMILIES)[number];
|
|
80
|
+
/** Cartesian / categorical / flow families the chart renderer draws. */
|
|
31
81
|
export declare const SERIES_CHART_TYPES: ReadonlySet<string>;
|
|
32
82
|
/**
|
|
33
83
|
* Single-value "performance" families — one number, optionally against a
|
|
@@ -65,7 +115,7 @@ export type WidgetDispatchFamily =
|
|
|
65
115
|
export interface WidgetDispatch {
|
|
66
116
|
family: WidgetDispatchFamily;
|
|
67
117
|
/** For `series`: the alias-resolved base family to draw. */
|
|
68
|
-
chartType?:
|
|
118
|
+
chartType?: SeriesChartFamily;
|
|
69
119
|
}
|
|
70
120
|
/**
|
|
71
121
|
* Classify a widget `type` into its dispatch family. Exported for the
|
|
@@ -73,4 +123,80 @@ export interface WidgetDispatch {
|
|
|
73
123
|
* `passthrough` (the branch that produces the red box).
|
|
74
124
|
*/
|
|
75
125
|
export declare function classifyWidgetType(widgetType: string | undefined): WidgetDispatch;
|
|
126
|
+
/**
|
|
127
|
+
* The node key a dashboard surface hands `SchemaRenderer` for each component
|
|
128
|
+
* this package registers with `skipFallback: true` (objectui#10859 batch 8,
|
|
129
|
+
* phase 2b, seat ruling M3 option A).
|
|
130
|
+
*
|
|
131
|
+
* `metric` and `metric-card` are two vocabularies that happened to share one
|
|
132
|
+
* spelling: the dashboard WIDGET type (the spec's `ChartTypeSchema` value
|
|
133
|
+
* `metric`; the 2026-08-14 slot ruling's `metric-card`, objectstack#8593) and
|
|
134
|
+
* the internal NODE key the dashboard renders that widget through. The widget
|
|
135
|
+
* vocabulary is untouched. Only the node key moved: the registrations publish
|
|
136
|
+
* `plugin-dashboard:metric` / `plugin-dashboard:metric-card` and no bare
|
|
137
|
+
* fallback, so nothing authors a bare `metric` / `metric-card` NODE that the
|
|
138
|
+
* registry mounts while `objectui validate` refuses it at `type`.
|
|
139
|
+
*
|
|
140
|
+
* ⛔ Both surfaces (`DashboardRenderer`, `DashboardGridLayout`) emit through
|
|
141
|
+
* this table, so they cannot drift apart; a new `skipFallback` registration in
|
|
142
|
+
* this package that a widget can reach gets its row here in the same edit.
|
|
143
|
+
*
|
|
144
|
+
* The values are literal types (objectui#11466), so a node a surface builds
|
|
145
|
+
* under `DASHBOARD_NODE_TYPES.metric` is discriminated by its key and checked
|
|
146
|
+
* against {@link DashboardMetricNodeSchema}, the `CustomNodeRegistry` entry
|
|
147
|
+
* below. A lookup by an authored `type` string goes through the string-keyed
|
|
148
|
+
* view {@link toDashboardNodeType} reads.
|
|
149
|
+
*/
|
|
150
|
+
export declare const DASHBOARD_NODE_TYPES: {
|
|
151
|
+
readonly metric: "plugin-dashboard:metric";
|
|
152
|
+
readonly 'metric-card': "plugin-dashboard:metric-card";
|
|
153
|
+
};
|
|
154
|
+
/**
|
|
155
|
+
* The `plugin-dashboard:metric` node: what both dashboard surfaces hand
|
|
156
|
+
* `SchemaRenderer` for a `metric` widget drawn inline, and what the `metric`
|
|
157
|
+
* registration (`skipFallback: true`) mounts as `MetricWidget`.
|
|
158
|
+
*
|
|
159
|
+
* Declared in `@object-ui/types`' `CustomNodeRegistry` (objectui#11466, as
|
|
160
|
+
* objectui#11479's Q1 A ruled), the registry an application augments for the
|
|
161
|
+
* node types it registers that `@object-ui/types` does not declare. So the
|
|
162
|
+
* producers name a declared node type, and `SchemaRenderer` takes the node
|
|
163
|
+
* with no cast. The key is this package's: `@object-ui/types` cannot name a
|
|
164
|
+
* plugin's namespace.
|
|
165
|
+
*
|
|
166
|
+
* Its keys are the ones `MetricWidget` reads off the node, typed by that
|
|
167
|
+
* component's props so the two cannot disagree. Host state (`loading`,
|
|
168
|
+
* `error`) and the `onClick` handler are props, ⛔ not node keys.
|
|
169
|
+
*/
|
|
170
|
+
export interface DashboardMetricNodeSchema extends BaseSchema {
|
|
171
|
+
type: typeof DASHBOARD_NODE_TYPES.metric;
|
|
172
|
+
label: MetricWidgetProps['label'];
|
|
173
|
+
value: MetricWidgetProps['value'];
|
|
174
|
+
description?: MetricWidgetProps['description'];
|
|
175
|
+
trend?: MetricWidgetProps['trend'];
|
|
176
|
+
/** A Lucide icon name. A React element is a host prop, never a node key. */
|
|
177
|
+
icon?: string;
|
|
178
|
+
colorVariant?: MetricWidgetProps['colorVariant'];
|
|
179
|
+
format?: MetricWidgetProps['format'];
|
|
180
|
+
currency?: MetricWidgetProps['currency'];
|
|
181
|
+
prefix?: MetricWidgetProps['prefix'];
|
|
182
|
+
suffix?: MetricWidgetProps['suffix'];
|
|
183
|
+
variant?: MetricWidgetProps['variant'];
|
|
184
|
+
}
|
|
185
|
+
declare module '@object-ui/types' {
|
|
186
|
+
interface CustomNodeRegistry {
|
|
187
|
+
'plugin-dashboard:metric': DashboardMetricNodeSchema;
|
|
188
|
+
}
|
|
189
|
+
}
|
|
190
|
+
/**
|
|
191
|
+
* `node` with its `type` moved onto the namespaced key {@link
|
|
192
|
+
* DASHBOARD_NODE_TYPES} names, or `node` itself when the type has no row.
|
|
193
|
+
*
|
|
194
|
+
* Applied where a surface forwards a node it did not build: the slot-component
|
|
195
|
+
* passthrough (`{ type: 'metric-card', ... }` directly in `widgets[]`) and an
|
|
196
|
+
* author-supplied `widget.component`. Both are widget-vocabulary positions,
|
|
197
|
+
* which keep their spelling; this is the boundary where the widget becomes a
|
|
198
|
+
* node.
|
|
199
|
+
*/
|
|
200
|
+
export declare function toDashboardNodeType<T>(node: T): T;
|
|
201
|
+
export {};
|
|
76
202
|
//# sourceMappingURL=widgetDispatch.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"widgetDispatch.d.ts","sourceRoot":"","sources":["../src/widgetDispatch.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;
|
|
1
|
+
{"version":3,"file":"widgetDispatch.d.ts","sourceRoot":"","sources":["../src/widgetDispatch.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAoBH,OAAO,KAAK,EACV,UAAU,EACV,wBAAwB,EACxB,qBAAqB,EACrB,kCAAkC,EAClC,uBAAuB,EAExB,MAAM,kBAAkB,CAAC;AAE1B,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,gBAAgB,CAAC;AAExD;;;;;;;;;;GAUG;AACH,MAAM,MAAM,wBAAwB,GAAG,wBAAwB,CAAC,SAAS,CAAC,CAAC,MAAM,CAAC,CAAC;AAenF,wBAAgB,qBAAqB,IAAI,uBAAuB,CAK/D;AAED;;;;;;;;;;;;;;GAcG;AACH,wBAAgB,iBAAiB,CAAC,KAAK,EAAE,wBAAwB,GAAG,wBAAwB,CAAC,MAAM,CAAC,CAGnG;AAED;;;;;;;GAOG;AACH,wBAAgB,cAAc,CAAC,KAAK,EAAE,wBAAwB,GAAG,qBAAqB,CAAC,WAAW,CAAC,CAElG;AAED;;;;;GAKG;AACH,wBAAgB,oBAAoB,CAAC,KAAK,EAAE,wBAAwB,GAAG,KAAK,IAAI,kCAAkC,CAEjH;AAED;;;;;;;;GAQG;AACH,wBAAgB,uBAAuB,CAAC,UAAU,EAAE,MAAM,GAAG,SAAS;;;;;;EAQrE;AAED;;;;GAIG;AACH,eAAO,MAAM,kBAAkB,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAUrD,CAAC;AAEF,wEAAwE;AACxE,QAAA,MAAM,qBAAqB,gIASjB,CAAC;AAEX;;;;;;GAMG;AACH,MAAM,MAAM,iBAAiB,GAAG,CAAC,OAAO,qBAAqB,CAAC,CAAC,MAAM,CAAC,CAAC;AAEvE,wEAAwE;AACxE,eAAO,MAAM,kBAAkB,EAAE,WAAW,CAAC,MAAM,CAA0C,CAAC;AAO9F;;;;;;GAMG;AACH,eAAO,MAAM,iBAAiB,EAAE,WAAW,CAAC,MAAM,CAEhD,CAAC;AAEH,0DAA0D;AAC1D,eAAO,MAAM,gBAAgB,EAAE,WAAW,CAAC,MAAM,CAA8B,CAAC;AAEhF;;;;;GAKG;AACH,eAAO,MAAM,uBAAuB,EAAE,WAAW,CAAC,MAAM,CAGtD,CAAC;AAEH,6DAA6D;AAC7D,MAAM,MAAM,oBAAoB;AAC9B,mEAAmE;AACjE,QAAQ;AACV,kCAAkC;GAChC,QAAQ;AACV,uBAAuB;GACrB,OAAO;AACT,6EAA6E;GAC3E,OAAO;AACT,iDAAiD;GAC/C,QAAQ;AACV,wDAAwD;GACtD,aAAa;AACf,sEAAsE;GACpE,aAAa,CAAC;AAElB,MAAM,WAAW,cAAc;IAC7B,MAAM,EAAE,oBAAoB,CAAC;IAC7B,4DAA4D;IAC5D,SAAS,CAAC,EAAE,iBAAiB,CAAC;CAC/B;AAED;;;;GAIG;AACH,wBAAgB,kBAAkB,CAAC,UAAU,EAAE,MAAM,GAAG,SAAS,GAAG,cAAc,CAUjF;AAED;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AACH,eAAO,MAAM,oBAAoB;;;CAGvB,CAAC;AAKX;;;;;;;;;;;;;;;GAeG;AACH,MAAM,WAAW,yBAA0B,SAAQ,UAAU;IAC3D,IAAI,EAAE,OAAO,oBAAoB,CAAC,MAAM,CAAC;IACzC,KAAK,EAAE,iBAAiB,CAAC,OAAO,CAAC,CAAC;IAClC,KAAK,EAAE,iBAAiB,CAAC,OAAO,CAAC,CAAC;IAClC,WAAW,CAAC,EAAE,iBAAiB,CAAC,aAAa,CAAC,CAAC;IAC/C,KAAK,CAAC,EAAE,iBAAiB,CAAC,OAAO,CAAC,CAAC;IACnC,4EAA4E;IAC5E,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,YAAY,CAAC,EAAE,iBAAiB,CAAC,cAAc,CAAC,CAAC;IACjD,MAAM,CAAC,EAAE,iBAAiB,CAAC,QAAQ,CAAC,CAAC;IACrC,QAAQ,CAAC,EAAE,iBAAiB,CAAC,UAAU,CAAC,CAAC;IACzC,MAAM,CAAC,EAAE,iBAAiB,CAAC,QAAQ,CAAC,CAAC;IACrC,MAAM,CAAC,EAAE,iBAAiB,CAAC,QAAQ,CAAC,CAAC;IACrC,OAAO,CAAC,EAAE,iBAAiB,CAAC,SAAS,CAAC,CAAC;CACxC;AAED,OAAO,QAAQ,kBAAkB,CAAC;IAChC,UAAU,kBAAkB;QAC1B,yBAAyB,EAAE,yBAAyB,CAAC;KACtD;CACF;AAED;;;;;;;;;GASG;AACH,wBAAgB,mBAAmB,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC,GAAG,CAAC,CAKjD"}
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* ObjectUI
|
|
3
|
+
* Copyright (c) 2024-present ObjectStack Inc.
|
|
4
|
+
*
|
|
5
|
+
* This source code is licensed under the MIT license found in the
|
|
6
|
+
* LICENSE file in the root directory of this source tree.
|
|
7
|
+
*/
|
|
8
|
+
/**
|
|
9
|
+
* The structural minimum this resolution reads. Deliberately not
|
|
10
|
+
* `DashboardWidgetSchema`: the two surfaces hold their widgets at two different
|
|
11
|
+
* static types (the grid holds the `DashboardWidgetSlotComponentSchema |
|
|
12
|
+
* DashboardWidgetSchema` union its `widgets` slot declares), and both satisfy
|
|
13
|
+
* this shape. `options` is `unknown` because that is what
|
|
14
|
+
* `DashboardWidgetSchema` declares it as.
|
|
15
|
+
*/
|
|
16
|
+
export interface SubCaptionWidget {
|
|
17
|
+
id?: string;
|
|
18
|
+
options?: unknown;
|
|
19
|
+
}
|
|
20
|
+
/**
|
|
21
|
+
* Resolve a dataset/metric widget's sub-caption for the active UI language.
|
|
22
|
+
*
|
|
23
|
+
* `dashName` is the dashboard schema's `name` — the segment every convention
|
|
24
|
+
* key on this surface is built from. Without it (or without a widget `id`)
|
|
25
|
+
* there is no key to look up, so the authored limb answers alone; that is the
|
|
26
|
+
* same silent degradation `tWidgetTitle` / `tWidgetDescription` perform, not a
|
|
27
|
+
* new one.
|
|
28
|
+
*
|
|
29
|
+
* `localized` is the host's word that the document was served already
|
|
30
|
+
* translated (`DashboardRendererProps.localized`): the authored limb then
|
|
31
|
+
* answers alone, because the served value IS the translation.
|
|
32
|
+
*
|
|
33
|
+
* Provider-safe: `useObjectLabel` and `useObjectTranslation` both degrade to a
|
|
34
|
+
* no-instance stand-in when no `I18nProvider` is mounted (objectui#5564), which
|
|
35
|
+
* `DashboardGridLayout` depends on — it is a separately exported component a
|
|
36
|
+
* host mounts standalone (its `dashboard-grid` node key was retired by
|
|
37
|
+
* objectui#10859 batch 8).
|
|
38
|
+
*/
|
|
39
|
+
export declare function useWidgetSubCaption(dashName: string | undefined, localized?: boolean): (widget: SubCaptionWidget) => string | undefined;
|
|
40
|
+
//# sourceMappingURL=widgetSubCaption.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"widgetSubCaption.d.ts","sourceRoot":"","sources":["../src/widgetSubCaption.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AA4EH;;;;;;;GAOG;AACH,MAAM,WAAW,gBAAgB;IAC/B,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB;AAED;;;;;;;;;;;;;;;;;;GAkBG;AACH,wBAAgB,mBAAmB,CACjC,QAAQ,EAAE,MAAM,GAAG,SAAS,EAC5B,SAAS,UAAQ,GAChB,CAAC,MAAM,EAAE,gBAAgB,KAAK,MAAM,GAAG,SAAS,CAalD"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@object-ui/plugin-dashboard",
|
|
3
|
-
"version": "17.
|
|
3
|
+
"version": "17.7.0",
|
|
4
4
|
"type": "module",
|
|
5
5
|
"license": "MIT",
|
|
6
6
|
"description": "Dashboard plugin for Object UI",
|
|
@@ -18,17 +18,15 @@
|
|
|
18
18
|
"@dnd-kit/core": "^6.3.1",
|
|
19
19
|
"@dnd-kit/sortable": "^10.0.0",
|
|
20
20
|
"@dnd-kit/utilities": "^3.2.2",
|
|
21
|
-
"
|
|
22
|
-
"lucide-react": "^1.
|
|
23
|
-
"
|
|
24
|
-
"
|
|
25
|
-
"
|
|
26
|
-
"@object-ui/
|
|
27
|
-
"@object-ui/
|
|
28
|
-
"@object-ui/
|
|
29
|
-
"@object-ui/
|
|
30
|
-
"@object-ui/react": "17.5.0",
|
|
31
|
-
"@object-ui/types": "17.5.0"
|
|
21
|
+
"@objectstack/spec": "^17.5.0",
|
|
22
|
+
"lucide-react": "^1.43.0",
|
|
23
|
+
"@object-ui/components": "17.7.0",
|
|
24
|
+
"@object-ui/core": "17.7.0",
|
|
25
|
+
"@object-ui/fields": "17.7.0",
|
|
26
|
+
"@object-ui/i18n": "17.7.0",
|
|
27
|
+
"@object-ui/permissions": "17.7.0",
|
|
28
|
+
"@object-ui/react": "17.7.0",
|
|
29
|
+
"@object-ui/types": "17.7.0"
|
|
32
30
|
},
|
|
33
31
|
"peerDependencies": {
|
|
34
32
|
"react": "^18.0.0 || ^19.0.0",
|
|
@@ -36,14 +34,16 @@
|
|
|
36
34
|
"react-grid-layout": "^2.2.0 || ^1.4.0"
|
|
37
35
|
},
|
|
38
36
|
"devDependencies": {
|
|
39
|
-
"@objectstack/spec": "^17.0.0-rc.6",
|
|
40
37
|
"@types/react-grid-layout": "^2.1.0",
|
|
41
38
|
"@vitejs/plugin-react": "^6.0.5",
|
|
39
|
+
"react": "19.2.8",
|
|
42
40
|
"react-grid-layout": "^2.2.4",
|
|
43
41
|
"typescript": "^6.0.3",
|
|
44
42
|
"vite": "^8.2.1",
|
|
45
43
|
"vite-plugin-dts": "^5.0.3",
|
|
46
|
-
"@object-ui/plugin-charts": "17.
|
|
44
|
+
"@object-ui/plugin-charts": "17.7.0",
|
|
45
|
+
"@object-ui/sdui-parser": "17.7.0",
|
|
46
|
+
"@object-ui/test-support": "17.4.0"
|
|
47
47
|
},
|
|
48
48
|
"keywords": [
|
|
49
49
|
"objectui",
|
|
@@ -81,7 +81,7 @@
|
|
|
81
81
|
"scripts": {
|
|
82
82
|
"build": "vite build",
|
|
83
83
|
"type-check": "tsc --noEmit && tsc -p tsconfig.test.json",
|
|
84
|
-
"test": "vitest run",
|
|
84
|
+
"test": "vitest run --root ../.. packages/plugin-dashboard/",
|
|
85
85
|
"lint": "eslint ."
|
|
86
86
|
}
|
|
87
87
|
}
|