@object-ui/plugin-dashboard 17.6.0 → 18.0.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.
Files changed (58) hide show
  1. package/CHANGELOG.md +5044 -0
  2. package/README.md +465 -85
  3. package/dist/DashboardConfigPanel.d.ts +1 -1
  4. package/dist/DashboardFilterBar.d.ts.map +1 -1
  5. package/dist/DashboardGridLayout.d.ts +10 -8
  6. package/dist/DashboardGridLayout.d.ts.map +1 -1
  7. package/dist/DashboardRenderer.d.ts +60 -2
  8. package/dist/DashboardRenderer.d.ts.map +1 -1
  9. package/dist/DashboardWithConfig.d.ts +1 -1
  10. package/dist/DashboardWithConfig.d.ts.map +1 -1
  11. package/dist/DatasetWidget.d.ts +41 -14
  12. package/dist/DatasetWidget.d.ts.map +1 -1
  13. package/dist/DrillDownDrawer.d.ts +14 -5
  14. package/dist/DrillDownDrawer.d.ts.map +1 -1
  15. package/dist/MetricCard.d.ts +7 -1
  16. package/dist/MetricCard.d.ts.map +1 -1
  17. package/dist/MetricWidget.d.ts +48 -6
  18. package/dist/MetricWidget.d.ts.map +1 -1
  19. package/dist/ObjectDataTable.d.ts +407 -18
  20. package/dist/ObjectDataTable.d.ts.map +1 -1
  21. package/dist/ObjectMetricWidget.d.ts +35 -8
  22. package/dist/ObjectMetricWidget.d.ts.map +1 -1
  23. package/dist/ObjectPivotTable.d.ts +47 -7
  24. package/dist/ObjectPivotTable.d.ts.map +1 -1
  25. package/dist/PivotTable.d.ts +20 -3
  26. package/dist/PivotTable.d.ts.map +1 -1
  27. package/dist/RecordDetailDrawer.d.ts +21 -2
  28. package/dist/RecordDetailDrawer.d.ts.map +1 -1
  29. package/dist/WidgetConfigPanel.d.ts +2 -2
  30. package/dist/WidgetConfigPanel.d.ts.map +1 -1
  31. package/dist/WidgetEmptyState.d.ts +27 -0
  32. package/dist/WidgetEmptyState.d.ts.map +1 -0
  33. package/dist/chartRenderHandoff.d.ts +9 -0
  34. package/dist/chartRenderHandoff.d.ts.map +1 -0
  35. package/dist/domPassthroughPins.d.ts.map +1 -1
  36. package/dist/index.d.ts +22 -21
  37. package/dist/index.d.ts.map +1 -1
  38. package/dist/index.js +1977 -1715
  39. package/dist/index.umd.cjs +3 -2
  40. package/dist/legacyRetiredWidget.d.ts +28 -3
  41. package/dist/legacyRetiredWidget.d.ts.map +1 -1
  42. package/dist/measureRefusal.d.ts +50 -0
  43. package/dist/measureRefusal.d.ts.map +1 -0
  44. package/dist/metricTile.d.ts +87 -0
  45. package/dist/metricTile.d.ts.map +1 -0
  46. package/dist/recordFields.d.ts +119 -8
  47. package/dist/recordFields.d.ts.map +1 -1
  48. package/dist/retired-node-types.d.ts +29 -0
  49. package/dist/retired-node-types.d.ts.map +1 -0
  50. package/dist/schemaHostProps.d.ts +55 -11
  51. package/dist/schemaHostProps.d.ts.map +1 -1
  52. package/dist/useDashboardAutoRefresh.d.ts +47 -0
  53. package/dist/useDashboardAutoRefresh.d.ts.map +1 -0
  54. package/dist/utils.d.ts +60 -13
  55. package/dist/utils.d.ts.map +1 -1
  56. package/dist/widgetDispatch.d.ts +174 -18
  57. package/dist/widgetDispatch.d.ts.map +1 -1
  58. package/package.json +15 -16
@@ -1 +1 @@
1
- {"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../src/utils.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,4FAA4F;AAC5F,wBAAgB,gBAAgB,CAAC,UAAU,EAAE,OAAO,GAAG,UAAU,IAAI;IAAE,QAAQ,EAAE,QAAQ,CAAC;IAAC,MAAM,CAAC,EAAE,MAAM,CAAC;IAAC,SAAS,CAAC,EAAE,GAAG,CAAC;IAAC,MAAM,CAAC,EAAE,GAAG,CAAA;CAAE,CAO1I;AAED;;;;;;;GAOG;AACH,wBAAgB,gBAAgB,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CASpD;AAED;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,wBAAgB,wBAAwB,CAAC,IAAI,EAAE,OAAO,GAAG,KAAK,CAAC;IAAE,MAAM,EAAE,MAAM,CAAC;IAAC,WAAW,EAAE,MAAM,CAAA;CAAE,CAAC,CAOtG;AAUD,OAAO,EAAE,iBAAiB,EAAE,yBAAyB,EAAE,MAAM,iBAAiB,CAAC;AAG/E,OAAO,EACL,sBAAsB,EACtB,sBAAsB,EACtB,KAAK,eAAe,GACrB,MAAM,iBAAiB,CAAC;AAEzB;;;;;;;;;;;;GAYG;AACH,wBAAgB,kBAAkB,CAChC,OAAO,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,EAClC,QAAQ,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,GAClC;IAAE,KAAK,EAAE,MAAM,CAAC;IAAC,SAAS,EAAE,IAAI,GAAG,MAAM,GAAG,SAAS,CAAA;CAAE,GAAG,IAAI,CAkBhE"}
1
+ {"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../src/utils.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,KAAK,EAAE,cAAc,EAAE,oBAAoB,EAAE,MAAM,iBAAiB,CAAC;AAE5E,4FAA4F;AAC5F,wBAAgB,gBAAgB,CAAC,UAAU,EAAE,OAAO,GAAG,UAAU,IAAI;IAAE,QAAQ,EAAE,QAAQ,CAAC;IAAC,MAAM,CAAC,EAAE,MAAM,CAAC;IAAC,SAAS,CAAC,EAAE,GAAG,CAAC;IAAC,MAAM,CAAC,EAAE,GAAG,CAAA;CAAE,CAO1I;AAED;;;;;;;GAOG;AACH,wBAAgB,gBAAgB,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CASpD;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAiCG;AACH,wBAAgB,kBAAkB,CAChC,CAAC,EAAE,UAAU,CAAC,OAAO,oBAAoB,CAAC,CAAC,GAAG,CAAC,EAC/C,UAAU,EAAE,UAAU,CAAC,OAAO,cAAc,CAAC,CAAC,YAAY,CAAC,EAC3D,UAAU,EAAE,MAAM,GAAG,SAAS,EAC9B,MAAM,EAAE,MAAM,EACd,KAAK,EAAE,MAAM,GAAG,SAAS,GACxB,MAAM,CAUR;AAED;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,wBAAgB,wBAAwB,CAAC,IAAI,EAAE,OAAO,GAAG,KAAK,CAAC;IAAE,MAAM,EAAE,MAAM,CAAC;IAAC,WAAW,EAAE,MAAM,CAAA;CAAE,CAAC,CAOtG;AAUD,OAAO,EAAE,iBAAiB,EAAE,yBAAyB,EAAE,MAAM,iBAAiB,CAAC;AAG/E,OAAO,EACL,sBAAsB,EACtB,sBAAsB,EACtB,KAAK,eAAe,GACrB,MAAM,iBAAiB,CAAC;AAEzB;;;;;;;;GAQG;AACH,MAAM,WAAW,WAAW;IAC1B,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;IACrB,SAAS,EAAE,IAAI,GAAG,MAAM,GAAG,SAAS,CAAC;CACtC;AAED;;;;;;;;;;;;;GAaG;AACH,wBAAgB,kBAAkB,CAChC,OAAO,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,EAClC,QAAQ,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,GAClC,WAAW,GAAG,IAAI,CAkBpB;AAED;;;;;GAKG;AACH,wBAAgB,wBAAwB,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI,GAAG,MAAM,CAErE"}
@@ -1,26 +1,78 @@
1
+ import { BaseSchema, DashboardComponentSchema, DashboardWidgetSchema, DashboardWidgetSlotComponentSchema, DashboardWidgetTypeName } from '@object-ui/types';
2
+ import { MetricWidgetProps } from './MetricWidget.js';
1
3
  /**
2
- * ObjectUI
3
- * Copyright (c) 2024-present ObjectStack Inc.
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
- * This source code is licensed under the MIT license found in the
6
- * LICENSE file in the root directory of this source tree.
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.
13
+ *
14
+ * ⛔ A widget key (`dataset`, `options`, `chartConfig`, `filter`, `component`,
15
+ * …) is read on the widget arm alone: narrow the entry with
16
+ * {@link isSlotComponentEntry} first (objectui#11598, N2 A), the read rule
17
+ * `DashboardComponentSchema.widgets` states. The component arm declares none
18
+ * of them, and a component node in the slot draws itself whatever else it
19
+ * carries; reading one off the entry whichever arm it was compiled only through
20
+ * `BaseSchema`'s index signature, which objectui#8347 removed.
7
21
  */
22
+ export type DashboardWidgetSlotEntry = DashboardComponentSchema['widgets'][number];
23
+ export declare function specDefaultWidgetType(): DashboardWidgetTypeName;
8
24
  /**
9
- * Widget-type → dispatch family, shared by every dashboard surface.
25
+ * The `type` a dashboard surface draws a `widgets[]` entry as: the authored
26
+ * `type`, or {@link specDefaultWidgetType} when the entry names none
27
+ * (objectui#11514, Q2 A). Every read of an entry's `type` on the two surfaces
28
+ * goes through it — the dispatch, the metric span and chrome, the mobile
29
+ * metric row — so a typeless widget draws exactly as the same widget with
30
+ * `type: 'metric'` does. It used to reach the slot-component passthrough and
31
+ * draw the registry's red OBJUI-001 panel.
10
32
  *
11
- * Three surfaces used to restate this knowledge independently and disagree:
12
- * `DatasetWidget` covered all 19 `ChartTypeSchema` values, `DashboardRenderer`
13
- * covered 15, and `DashboardGridLayout` 8. A type the surface didn't name fell
14
- * through to `{ ...widget }`, whose `type` no component registers — so
15
- * `SchemaRenderer` rendered a red `role="alert"` panel dumping the widget JSON
16
- * (#2943).
33
+ * ⛔ Not for the legacy `component` envelope (`{ id, component, layout }`,
34
+ * objectui's own format, which the spec's widget has no member for). It draws
35
+ * its node, never a family, so the spec's default `type` says nothing about it:
36
+ * an envelope that names no `type` keeps `undefined` here and draws, chrome
37
+ * included, as it always did.
38
+ */
39
+ export declare function resolveWidgetType(entry: DashboardWidgetSlotEntry): DashboardWidgetSlotEntry['type'];
40
+ /**
41
+ * The node an entry's legacy `component` envelope holds, typed as the widget
42
+ * arm declares that member (`DashboardWidgetSchema['component']`), or
43
+ * `undefined` for a component node in the slot.
17
44
  *
18
- * The single-value families were the sharpest case: `DashboardRenderer` already
19
- * had `METRIC_LIKE_TYPES = ['gauge','solid-gauge','kpi','bullet']` with a
20
- * docstring saying they "render as a metric card rather than a chart" — and
21
- * consulted it only to pick a grid span. The tile was sized correctly and the
22
- * widget was never routed.
45
+ * `component` is a widget key, so it is read on the widget arm alone
46
+ * (objectui#11598, N2 A). It used to be read off the entry whichever arm it
47
+ * was: the component arm declares no `component`, so that read went through
48
+ * `BaseSchema`'s index signature, and a `metric-card` entry carrying one (a
49
+ * document the strict face refuses) drew the envelope's node in the card's
50
+ * place.
51
+ */
52
+ export declare function entryComponent(entry: DashboardWidgetSlotEntry): DashboardWidgetSchema['component'];
53
+ /**
54
+ * Whether a slot entry is the component arm, `DashboardWidgetSlotComponentSchema`:
55
+ * its `type` is a member of the closed `DASHBOARD_COMPONENT_WIDGET_TYPES`, which
56
+ * no widget `type` names (objectui#11483). Read at runtime, so a stored entry
57
+ * whose `type` is a string outside every vocabulary is NOT the component arm.
58
+ */
59
+ export declare function isSlotComponentEntry(entry: DashboardWidgetSlotEntry): entry is DashboardWidgetSlotComponentSchema;
60
+ /**
61
+ * The labelled placeholder a dashboard surface draws for a widget `type` it
62
+ * has no renderer for: a known family with no renderer yet
63
+ * (`UNSUPPORTED_CHART_TYPES`), and, since objectui#11514 (Q2 A), a `type` that
64
+ * names no family at all — stale metadata both validator faces refuse at
65
+ * `type`, which used to fall through to the slot-component passthrough and
66
+ * draw the registry's red OBJUI-001 panel dumping the widget. One declaration
67
+ * for both surfaces, which each spelled it out before.
23
68
  */
69
+ export declare function unsupportedWidgetSchema(widgetType: string | undefined): {
70
+ readonly type: "text";
71
+ readonly content: `\u300C${string}\u300Dchart type is not supported yet`;
72
+ readonly variant: "caption";
73
+ readonly align: "center";
74
+ readonly className: "flex h-full w-full items-center justify-center rounded border border-dashed bg-muted/20 p-4 text-muted-foreground";
75
+ };
24
76
  /**
25
77
  * Spec chart families that only render as another family. Normalizing them
26
78
  * here is what lets one branch serve `column` and `bar` (the spec's own
@@ -28,6 +80,16 @@
28
80
  */
29
81
  export declare const CHART_TYPE_ALIASES: Record<string, string>;
30
82
  /** Cartesian / categorical / flow families the chart renderer draws. */
83
+ declare const SERIES_CHART_FAMILIES: readonly ["bar", "horizontal-bar", "line", "area", "pie", "donut", "scatter", "funnel", "radar", "treemap", "sankey", "combo"];
84
+ /**
85
+ * A family {@link SERIES_CHART_TYPES} names, as a literal union: the
86
+ * `chartType` a `series` dispatch carries. Each member is one of the families
87
+ * `ObjectChartSchema.chartType` declares (objectui#11513), so the `object-chart`
88
+ * node a surface builds from a dispatch names its family with no cast
89
+ * (objectui#11514). Pinned by `__tests__/dashboard-producer-node-types-11514.test.ts`.
90
+ */
91
+ export type SeriesChartFamily = (typeof SERIES_CHART_FAMILIES)[number];
92
+ /** Cartesian / categorical / flow families the chart renderer draws. */
31
93
  export declare const SERIES_CHART_TYPES: ReadonlySet<string>;
32
94
  /**
33
95
  * Single-value "performance" families — one number, optionally against a
@@ -56,7 +118,11 @@ export type WidgetDispatchFamily =
56
118
  | 'table'
57
119
  /** Cross-tab — dataset-bound only; a non-dataset pivot is stale metadata. */
58
120
  | 'pivot'
59
- /** Author-supplied component schema required. */
121
+ /**
122
+ * objectui's legacy `custom` widget. Its `component` envelope draws a
123
+ * `metric-card` and nothing else (objectui#12254); with no `component` it
124
+ * draws the labelled placeholder `unsupported` draws.
125
+ */
60
126
  | 'custom'
61
127
  /** Known family, no renderer — labelled placeholder. */
62
128
  | 'unsupported'
@@ -65,7 +131,7 @@ export type WidgetDispatchFamily =
65
131
  export interface WidgetDispatch {
66
132
  family: WidgetDispatchFamily;
67
133
  /** For `series`: the alias-resolved base family to draw. */
68
- chartType?: string;
134
+ chartType?: SeriesChartFamily;
69
135
  }
70
136
  /**
71
137
  * Classify a widget `type` into its dispatch family. Exported for the
@@ -73,4 +139,94 @@ export interface WidgetDispatch {
73
139
  * `passthrough` (the branch that produces the red box).
74
140
  */
75
141
  export declare function classifyWidgetType(widgetType: string | undefined): WidgetDispatch;
142
+ /**
143
+ * The node key a dashboard surface hands `SchemaRenderer` for each component
144
+ * this package registers with `skipFallback: true` (objectui#10859 batch 8,
145
+ * phase 2b, seat ruling M3 option A).
146
+ *
147
+ * `metric` and `metric-card` are two vocabularies that happened to share one
148
+ * spelling: the dashboard WIDGET type (the spec's `ChartTypeSchema` value
149
+ * `metric`; the 2026-08-14 slot ruling's `metric-card`, objectstack#8593) and
150
+ * the internal NODE key the dashboard renders that widget through. The widget
151
+ * vocabulary is untouched. Only the node key moved: the registrations publish
152
+ * `plugin-dashboard:metric` / `plugin-dashboard:metric-card` and no bare
153
+ * fallback, so nothing authors a bare `metric` / `metric-card` NODE that the
154
+ * registry mounts while `objectui validate` refuses it at `type`.
155
+ *
156
+ * ⛔ Both surfaces (`DashboardRenderer`, `DashboardGridLayout`) emit through
157
+ * this table, so they cannot drift apart; a new `skipFallback` registration in
158
+ * this package that a widget can reach gets its row here in the same edit.
159
+ *
160
+ * The values are literal types (objectui#11466), so a node a surface builds
161
+ * under `DASHBOARD_NODE_TYPES.metric` is discriminated by its key and checked
162
+ * against {@link DashboardMetricNodeSchema}, the `CustomNodeRegistry` entry
163
+ * below. A lookup by an authored `type` string goes through the string-keyed
164
+ * view {@link toDashboardNodeType} reads.
165
+ */
166
+ export declare const DASHBOARD_NODE_TYPES: {
167
+ readonly metric: "plugin-dashboard:metric";
168
+ readonly 'metric-card': "plugin-dashboard:metric-card";
169
+ };
170
+ /**
171
+ * The `plugin-dashboard:metric` node: what both dashboard surfaces hand
172
+ * `SchemaRenderer` for a `metric` widget drawn inline, and what the `metric`
173
+ * registration (`skipFallback: true`) mounts as `MetricWidget`.
174
+ *
175
+ * Declared in `@object-ui/types`' `CustomNodeRegistry` (objectui#11466, as
176
+ * objectui#11479's Q1 A ruled), the registry an application augments for the
177
+ * node types it registers that `@object-ui/types` does not declare. So the
178
+ * producers name a declared node type, and `SchemaRenderer` takes the node
179
+ * with no cast. The key is this package's: `@object-ui/types` cannot name a
180
+ * plugin's namespace.
181
+ *
182
+ * Its keys are the ones `MetricWidget` reads off the node, typed by that
183
+ * component's props so the two cannot disagree. Host state (`loading`,
184
+ * `error`) and the `onClick` handler are props, ⛔ not node keys.
185
+ */
186
+ export interface DashboardMetricNodeSchema extends BaseSchema {
187
+ type: typeof DASHBOARD_NODE_TYPES.metric;
188
+ label: MetricWidgetProps['label'];
189
+ value: MetricWidgetProps['value'];
190
+ description?: MetricWidgetProps['description'];
191
+ trend?: MetricWidgetProps['trend'];
192
+ /** A Lucide icon name. A React element is a host prop, never a node key. */
193
+ icon?: string;
194
+ colorVariant?: MetricWidgetProps['colorVariant'];
195
+ format?: MetricWidgetProps['format'];
196
+ currency?: MetricWidgetProps['currency'];
197
+ prefix?: MetricWidgetProps['prefix'];
198
+ suffix?: MetricWidgetProps['suffix'];
199
+ variant?: MetricWidgetProps['variant'];
200
+ }
201
+ declare module '@object-ui/types' {
202
+ interface CustomNodeRegistry {
203
+ 'plugin-dashboard:metric': DashboardMetricNodeSchema;
204
+ }
205
+ }
206
+ /**
207
+ * A stored inline metric widget's `options`, without the retired sub-caption
208
+ * key `description` (objectui#11389, ruling C).
209
+ *
210
+ * Both surfaces' metric arms spread a dataset-less widget's `options` onto the
211
+ * {@link DashboardMetricNodeSchema} node, and `MetricWidget` draws the node's
212
+ * `description` as the line under the value. So the spread alone would keep
213
+ * drawing a stored `options.description` as a sub-caption after every read that
214
+ * named it was removed. Both arms drop it here, so the two surfaces cannot
215
+ * disagree about it. The node's own `description` member stays: it is
216
+ * `MetricWidget`'s prop, which a node sets directly, not a key of a dashboard
217
+ * widget's options bag.
218
+ */
219
+ export declare function withoutRetiredSubCaption<T extends Record<string, unknown>>(options: T): Omit<T, 'description'>;
220
+ /**
221
+ * `node` with its `type` moved onto the namespaced key {@link
222
+ * DASHBOARD_NODE_TYPES} names, or `node` itself when the type has no row.
223
+ *
224
+ * Applied where a surface forwards a node it did not build: the slot-component
225
+ * passthrough (`{ type: 'metric-card', ... }` directly in `widgets[]`) and an
226
+ * author-supplied `widget.component`. Both are widget-vocabulary positions,
227
+ * which keep their spelling; this is the boundary where the widget becomes a
228
+ * node.
229
+ */
230
+ export declare function toDashboardNodeType<T>(node: T): T;
231
+ export {};
76
232
  //# sourceMappingURL=widgetDispatch.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"widgetDispatch.d.ts","sourceRoot":"","sources":["../src/widgetDispatch.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH;;;;;;;;;;;;;;;GAeG;AAEH;;;;GAIG;AACH,eAAO,MAAM,kBAAkB,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAUrD,CAAC;AAEF,wEAAwE;AACxE,eAAO,MAAM,kBAAkB,EAAE,WAAW,CAAC,MAAM,CASjD,CAAC;AAEH;;;;;;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,MAAM,CAAC;CACpB;AAED;;;;GAIG;AACH,wBAAgB,kBAAkB,CAAC,UAAU,EAAE,MAAM,GAAG,SAAS,GAAG,cAAc,CAUjF"}
1
+ {"version":3,"file":"widgetDispatch.d.ts","sourceRoot":"","sources":["../src/widgetDispatch.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@object-ui/plugin-dashboard",
3
- "version": "17.6.0",
3
+ "version": "18.0.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
- "clsx": "^2.1.1",
22
- "lucide-react": "^1.31.0",
23
- "react": "19.2.8",
24
- "react-dom": "19.2.8",
25
- "tailwind-merge": "^3.6.0",
26
- "@object-ui/components": "17.6.0",
27
- "@object-ui/core": "17.6.0",
28
- "@object-ui/fields": "17.6.0",
29
- "@object-ui/i18n": "17.6.0",
30
- "@object-ui/react": "17.6.0",
31
- "@object-ui/types": "17.6.0"
21
+ "@objectstack/spec": "^18.0.0",
22
+ "lucide-react": "^1.43.0",
23
+ "@object-ui/components": "18.0.0",
24
+ "@object-ui/fields": "18.0.0",
25
+ "@object-ui/core": "18.0.0",
26
+ "@object-ui/i18n": "18.0.0",
27
+ "@object-ui/permissions": "18.0.0",
28
+ "@object-ui/types": "18.0.0",
29
+ "@object-ui/react": "18.0.0"
32
30
  },
33
31
  "peerDependencies": {
34
32
  "react": "^18.0.0 || ^19.0.0",
@@ -36,15 +34,16 @@
36
34
  "react-grid-layout": "^2.2.0 || ^1.4.0"
37
35
  },
38
36
  "devDependencies": {
39
- "@objectstack/spec": "^17.0.0",
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.6.0",
47
- "@object-ui/sdui-parser": "17.6.0"
44
+ "@object-ui/plugin-charts": "18.0.0",
45
+ "@object-ui/sdui-parser": "18.0.0",
46
+ "@object-ui/test-support": "17.4.0"
48
47
  },
49
48
  "keywords": [
50
49
  "objectui",
@@ -82,7 +81,7 @@
82
81
  "scripts": {
83
82
  "build": "vite build",
84
83
  "type-check": "tsc --noEmit && tsc -p tsconfig.test.json",
85
- "test": "vitest run",
84
+ "test": "vitest run --root ../.. packages/plugin-dashboard/",
86
85
  "lint": "eslint ."
87
86
  }
88
87
  }