@object-ui/plugin-dashboard 6.2.3 → 7.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 (59) hide show
  1. package/CHANGELOG.md +181 -0
  2. package/dist/{packages/plugin-dashboard/src/DashboardConfigPanel.d.ts → DashboardConfigPanel.d.ts} +2 -1
  3. package/dist/DashboardConfigPanel.d.ts.map +1 -0
  4. package/dist/{packages/plugin-dashboard/src/DashboardGridLayout.d.ts → DashboardGridLayout.d.ts} +1 -1
  5. package/dist/DashboardGridLayout.d.ts.map +1 -0
  6. package/dist/{packages/plugin-dashboard/src/DashboardRenderer.d.ts → DashboardRenderer.d.ts} +2 -2
  7. package/dist/DashboardRenderer.d.ts.map +1 -0
  8. package/dist/{packages/plugin-dashboard/src/DashboardWithConfig.d.ts → DashboardWithConfig.d.ts} +10 -2
  9. package/dist/DashboardWithConfig.d.ts.map +1 -0
  10. package/dist/DatasetWidget.d.ts +33 -0
  11. package/dist/DatasetWidget.d.ts.map +1 -0
  12. package/dist/{packages/plugin-dashboard/src/DrillDownDrawer.d.ts → DrillDownDrawer.d.ts} +7 -2
  13. package/dist/DrillDownDrawer.d.ts.map +1 -0
  14. package/dist/MetricCard.d.ts.map +1 -0
  15. package/dist/{packages/plugin-dashboard/src/MetricWidget.d.ts → MetricWidget.d.ts} +1 -1
  16. package/dist/MetricWidget.d.ts.map +1 -0
  17. package/dist/ObjectDataTable.d.ts.map +1 -0
  18. package/dist/{packages/plugin-dashboard/src/ObjectMetricWidget.d.ts → ObjectMetricWidget.d.ts} +1 -1
  19. package/dist/ObjectMetricWidget.d.ts.map +1 -0
  20. package/dist/{packages/plugin-dashboard/src/ObjectPivotTable.d.ts → ObjectPivotTable.d.ts} +1 -1
  21. package/dist/ObjectPivotTable.d.ts.map +1 -0
  22. package/dist/OpenInListButton.d.ts +12 -0
  23. package/dist/OpenInListButton.d.ts.map +1 -0
  24. package/dist/{packages/plugin-dashboard/src/PivotTable.d.ts → PivotTable.d.ts} +2 -2
  25. package/dist/PivotTable.d.ts.map +1 -0
  26. package/dist/RecordDetailDrawer.d.ts +23 -0
  27. package/dist/RecordDetailDrawer.d.ts.map +1 -0
  28. package/dist/{packages/plugin-dashboard/src/WidgetConfigPanel.d.ts → WidgetConfigPanel.d.ts} +1 -1
  29. package/dist/WidgetConfigPanel.d.ts.map +1 -0
  30. package/dist/index.d.ts +27 -2
  31. package/dist/index.d.ts.map +1 -0
  32. package/dist/index.js +1552 -992
  33. package/dist/index.umd.cjs +2 -1
  34. package/dist/recordFields.d.ts +70 -0
  35. package/dist/recordFields.d.ts.map +1 -0
  36. package/dist/{packages/plugin-dashboard/src/utils.d.ts → utils.d.ts} +2 -2
  37. package/dist/utils.d.ts.map +1 -0
  38. package/package.json +12 -12
  39. package/dist/packages/plugin-dashboard/src/DashboardConfigPanel.d.ts.map +0 -1
  40. package/dist/packages/plugin-dashboard/src/DashboardConfigPanel.stories.d.ts +0 -14
  41. package/dist/packages/plugin-dashboard/src/DashboardConfigPanel.stories.d.ts.map +0 -1
  42. package/dist/packages/plugin-dashboard/src/DashboardGridLayout.d.ts.map +0 -1
  43. package/dist/packages/plugin-dashboard/src/DashboardRenderer.d.ts.map +0 -1
  44. package/dist/packages/plugin-dashboard/src/DashboardRenderer.stories.d.ts +0 -24
  45. package/dist/packages/plugin-dashboard/src/DashboardRenderer.stories.d.ts.map +0 -1
  46. package/dist/packages/plugin-dashboard/src/DashboardWithConfig.d.ts.map +0 -1
  47. package/dist/packages/plugin-dashboard/src/DrillDownDrawer.d.ts.map +0 -1
  48. package/dist/packages/plugin-dashboard/src/MetricCard.d.ts.map +0 -1
  49. package/dist/packages/plugin-dashboard/src/MetricWidget.d.ts.map +0 -1
  50. package/dist/packages/plugin-dashboard/src/ObjectDataTable.d.ts.map +0 -1
  51. package/dist/packages/plugin-dashboard/src/ObjectMetricWidget.d.ts.map +0 -1
  52. package/dist/packages/plugin-dashboard/src/ObjectPivotTable.d.ts.map +0 -1
  53. package/dist/packages/plugin-dashboard/src/PivotTable.d.ts.map +0 -1
  54. package/dist/packages/plugin-dashboard/src/WidgetConfigPanel.d.ts.map +0 -1
  55. package/dist/packages/plugin-dashboard/src/index.d.ts +0 -27
  56. package/dist/packages/plugin-dashboard/src/index.d.ts.map +0 -1
  57. package/dist/packages/plugin-dashboard/src/utils.d.ts.map +0 -1
  58. /package/dist/{packages/plugin-dashboard/src/MetricCard.d.ts → MetricCard.d.ts} +0 -0
  59. /package/dist/{packages/plugin-dashboard/src/ObjectDataTable.d.ts → ObjectDataTable.d.ts} +0 -0
package/CHANGELOG.md CHANGED
@@ -1,5 +1,186 @@
1
1
  # @object-ui/plugin-dashboard
2
2
 
3
+ ## 7.0.0
4
+
5
+ ### Minor Changes
6
+
7
+ - 78f9c16: Dataset-bound dashboard widgets now use the measure's display label + format and
8
+ render metric widgets with a consistent card.
9
+
10
+ - KPI value and chart legend use the measure `label` (carried on the analytics
11
+ result `fields`) instead of the raw measure name — "Tasks" not "task_count".
12
+ - The KPI value is formatted via the measure `format` hint ("$0,0" → "$616,000").
13
+ - A dataset-bound `metric` widget takes the shared Card wrapper (title + border)
14
+ like kpi/gauge, instead of rendering as bare untitled text.
15
+
16
+ Requires `AnalyticsResult.fields[].label`/`format` (objectstack-ai/framework#1683).
17
+
18
+ - 92449ef: Dataset-bound dashboard widgets now render their TRUE chart family instead of
19
+ always a bar chart.
20
+
21
+ `DatasetWidget` routes by `widget.type` to the shared advanced chart renderer:
22
+ pie/donut/line/area/scatter/radar/funnel/treemap/sankey/column/horizontal-bar
23
+ each draw distinctly (one series per measure, carrying the measure label).
24
+ `table`/`pivot` render a grouped table of dimensions + measures (formatted via
25
+ the measure `format`). `metric`/`kpi`/`gauge`/`solid-gauge`/`bullet` keep the
26
+ single-value KPI rendering. Families without a distinct renderer map to their
27
+ closest relative (e.g. `spline`→line, `stacked-area`→area, `pyramid`→funnel) so
28
+ a widget never renders as a silently-wrong bar.
29
+
30
+ ### Patch Changes
31
+
32
+ - cb2fdb1: feat(dashboard): expand drill-in — table/list row→record + scatter/treemap/sankey drill-through
33
+
34
+ Drill-in now covers the widgets that were missing it, and formalizes the two
35
+ interaction semantics mainstream BI/low-code platforms separate. `DrillDownConfig`
36
+ gains a `mode` discriminator: `'filter'` (drill-through: aggregate bucket → filtered
37
+ record list) and `'record'` (drill-to-record: a table/list row → that record's detail).
38
+
39
+ - Scatter, treemap and sankey charts now wire click → the existing filtered-record
40
+ drill drawer (radar excluded — no single clickable category point). The
41
+ Recharts-payload → drill-event mapping is extracted to pure, tested functions.
42
+ - Object-backed table/list widgets drill to the clicked record in a read-only detail
43
+ drawer (Sheet/Dialog), on by default (`drillDown:{enabled:false}` opts out). Field
44
+ labels and value formatting (incl. tenant-default currency) are shared with the
45
+ table cells so a value reads identically in both. An author-supplied `onRowClick`
46
+ still wins.
47
+ - The chart/KPI drill-through record lists now drill into a record too, completing the
48
+ segment → list → record chain.
49
+
50
+ - c3749eb: feat(dashboard): dataset chart widgets drill through to records
51
+
52
+ Dataset-bound **chart** widgets (bar/line/pie/area/donut/funnel/…) are now
53
+ click-drillable, matching table/pivot. Clicking a segment maps it back to its
54
+ dataset row and opens the same governed drill drawer (raw group keys preserved),
55
+ so a chart-only dashboard is no longer an exploration dead-end. This closes the
56
+ "object-backed chart drills but dataset chart doesn't" inconsistency and aligns
57
+ with mainstream BI (click a chart → see records).
58
+
59
+ - `@object-ui/core`: `findChartSeriesRow` — inverse of `buildChartSeries`,
60
+ maps a clicked `{category, series}` back to the source dataset row index
61
+ (matches both dims when a 2nd dimension is pivoted into series).
62
+ - `ObjectChart`: optional `onSegmentClick` lets a host own the chart click
63
+ (and suppress the widget's own object-drill).
64
+ - `DatasetWidget`: lifts the drill machinery to cover both table/pivot and
65
+ chart, and wires the chart's segment click to the precise dataset drill.
66
+
67
+ - 3d036a9: fix(dashboard): complete the drill chain in the shared DrillDownDrawer
68
+
69
+ The chart and KPI drill-through record lists already let you click a row to open
70
+ that record, but the shared `DrillDownDrawer` (used by **pivot** and **dataset**
71
+ widget drill-through) did not — so the segment → list → record chain was
72
+ inconsistent across widget types. `DrillDownDrawer` now enables record drill on
73
+ its filtered list (dialog target, stacking over the drawer), so every
74
+ drill-through list lands on a clickable record.
75
+
76
+ - 6cfa330: feat(dashboard): drill "Open in list" escape hatch + unify report drill
77
+
78
+ Adopts the mainstream BI peek-then-escalate drill model. Drill-through opens an
79
+ in-place drawer (keep context) and offers an "Open in list →" affordance to
80
+ escalate to the object's full list page (sort / bulk-select / export / shareable
81
+ URL) — the Looker / Power BI "see records → open in page" pattern.
82
+
83
+ - New `DrillNavigationContext` (`@object-ui/react`): the app shell provides
84
+ `openRecordList`; the renderer stays decoupled from console routing.
85
+ - The drill drawers (pivot / dataset / chart / KPI) render the escape hatch when
86
+ a host navigation handler is present, and hide it otherwise (self-contained
87
+ peek). `DashboardView` provides the handler via `useOpenRecordList`.
88
+ - `DrillDownConfig.target` gains `'navigate'` — skip the drawer and open the
89
+ list directly; degrades to `'drawer'` when no host handler is available.
90
+ - `ReportView` drill-through now opens the same in-place drawer (peek records →
91
+ click a row to open a record) instead of navigating away; the escape hatch
92
+ preserves the previous navigate-to-list behavior. Dashboard and report drill
93
+ are now unified.
94
+ - i18n: `dashboard.openInList` (en / zh).
95
+
96
+ - bd8b054: fix(currency): resolve the tenant default currency across the long-tail renderers
97
+
98
+ Phase 2b of the currency-resolution work (ADR-0053). The cell/field renderers
99
+ already funnelled through `resolveFieldCurrency` + `useLocalization` (#1856),
100
+ but the rest of the renderers still hard-coded `USD` or read only one of
101
+ `currency`/`defaultCurrency`. They now share the same resolution chain — explicit
102
+ field currency -> `currencyConfig.defaultCurrency` -> legacy `defaultCurrency` ->
103
+ tenant `localization.currency` -> plain number:
104
+
105
+ - `plugin-dashboard` `ObjectMetricWidget` (inferred currency), `ObjectDataTable`
106
+ (symbol-format fallback).
107
+ - `plugin-grid` `useColumnSummary` (footer agrees with the cells) and
108
+ `ObjectGrid` (compact amount + name-inferred currency cells).
109
+ - `plugin-detail` `DetailView` summary metrics.
110
+ - `plugin-gantt` `ObjectGantt` currency tooltips.
111
+ - `components` `element:number` (`format: 'currency'`) — tenant default instead
112
+ of a baked-in `USD`, and renders with the tenant locale.
113
+
114
+ `resolveFieldCurrency` now lives in `@object-ui/i18n` (co-located with
115
+ `useLocalization`, which supplies the tenant default); `@object-ui/fields`
116
+ re-exports it, so the existing import path is unchanged. No behavior change when
117
+ no tenant currency is configured — a field that declares its own currency, or a
118
+ deployment with no `localization.currency`, renders exactly as before.
119
+
120
+ - 650bd1f: fix(forms/dashboard/related-list): four business-facing rendering fixes found while QA-ing a showcase workspace
121
+
122
+ - **plugin-form / WizardForm**: a multi-step `object-form` with `formType: 'wizard'` posted an empty/partial body on submit, so the server rejected every required field. Two causes: (1) the footer Next/Create buttons bypassed the inner form and submitted the wizard's own (never-collected) `formData`; (2) the create-mode data-seeding effect re-ran on `dataSource`/`objectSchema` identity churn and reset `formData` to `{}` mid-wizard. Now the buttons submit the inner form natively (`<form id>` + `type="submit"`, which validates each step and collects values via `getValues()`), and the create seed is made idempotent.
123
+ - **plugin-dashboard / DashboardRenderer**: chart widgets rendered as empty cards (recharts logged `width(-1) height(-1)`) because the positioned grid used `auto-rows-min`, collapsing any widget with no intrinsic height. The explicit-columns grid now uses `gridAutoRows: minmax(5rem, auto)` so spanned chart rows get a real height while tables can still grow.
124
+ - **plugin-detail / RelatedList**: auto-derived related-list columns led with system audit fields (`created_at`, `updated_at`, …) for child objects without a name/title field, pushing business columns past the column cap. System audit fields are now sorted last.
125
+ - **plugin-form / ObjectForm + WizardForm**: a successful create/update gave no feedback for metadata-only pages (which can't pass an `onSuccess` function). They now show a default `toast.success('Created'/'Saved')` when no `onSuccess` handler is supplied (guarded so a `submitHandler` host like MasterDetailForm never double-toasts).
126
+
127
+ - Updated dependencies [5976ba3]
128
+ - Updated dependencies [a00e16d]
129
+ - Updated dependencies [eaccefd]
130
+ - Updated dependencies [f7f325d]
131
+ - Updated dependencies [c12986e]
132
+ - Updated dependencies [71d7ce0]
133
+ - Updated dependencies [053c948]
134
+ - Updated dependencies [89e113c]
135
+ - Updated dependencies [ddbe4a2]
136
+ - Updated dependencies [2d47e94]
137
+ - Updated dependencies [9049bbe]
138
+ - Updated dependencies [77cc6bb]
139
+ - Updated dependencies [6c0c92c]
140
+ - Updated dependencies [97c6831]
141
+ - Updated dependencies [cb2fdb1]
142
+ - Updated dependencies [c3749eb]
143
+ - Updated dependencies [c09f44e]
144
+ - Updated dependencies [6cfa330]
145
+ - Updated dependencies [ad8ade6]
146
+ - Updated dependencies [d54346c]
147
+ - Updated dependencies [5332639]
148
+ - Updated dependencies [3870c20]
149
+ - Updated dependencies [2eb3096]
150
+ - Updated dependencies [b88c560]
151
+ - Updated dependencies [0ad72a6]
152
+ - Updated dependencies [bd398df]
153
+ - Updated dependencies [3fa23a7]
154
+ - Updated dependencies [18d0339]
155
+ - Updated dependencies [66ed3ad]
156
+ - Updated dependencies [c6445b6]
157
+ - Updated dependencies [80c133c]
158
+ - Updated dependencies [5e1b838]
159
+ - Updated dependencies [59b6bbb]
160
+ - Updated dependencies [d16566f]
161
+ - Updated dependencies [90acb7f]
162
+ - Updated dependencies [7913390]
163
+ - Updated dependencies [514f426]
164
+ - Updated dependencies [1394e34]
165
+ - Updated dependencies [e95cc25]
166
+ - Updated dependencies [abe8ebc]
167
+ - Updated dependencies [300d755]
168
+ - Updated dependencies [bd8b054]
169
+ - Updated dependencies [4eb9cb6]
170
+ - Updated dependencies [7c239fd]
171
+ - Updated dependencies [858ad94]
172
+ - Updated dependencies [2270239]
173
+ - Updated dependencies [db8cd00]
174
+ - Updated dependencies [2f31406]
175
+ - Updated dependencies [18728c1]
176
+ - Updated dependencies [8d1195d]
177
+ - @object-ui/core@7.0.0
178
+ - @object-ui/components@7.0.0
179
+ - @object-ui/react@7.0.0
180
+ - @object-ui/i18n@7.0.0
181
+ - @object-ui/types@7.0.0
182
+ - @object-ui/fields@7.0.0
183
+
3
184
  ## 6.2.3
4
185
 
5
186
  ### Patch Changes
@@ -5,6 +5,7 @@
5
5
  * This source code is licensed under the MIT license found in the
6
6
  * LICENSE file in the root directory of this source tree.
7
7
  */
8
+ import * as React from 'react';
8
9
  export interface DashboardConfigPanelProps {
9
10
  /** Whether the panel is open */
10
11
  open: boolean;
@@ -24,5 +25,5 @@ export interface DashboardConfigPanelProps {
24
25
  * demonstrating that a full config panel can be expressed in ~60 lines
25
26
  * of declarative schema rather than 1500+ lines of imperative code.
26
27
  */
27
- export declare function DashboardConfigPanel({ open, onClose, config, onSave, onFieldChange, }: DashboardConfigPanelProps): import("react/jsx-runtime").JSX.Element;
28
+ export declare function DashboardConfigPanel({ open, onClose, config, onSave, onFieldChange, }: DashboardConfigPanelProps): React.JSX.Element;
28
29
  //# sourceMappingURL=DashboardConfigPanel.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"DashboardConfigPanel.d.ts","sourceRoot":"","sources":["../src/DashboardConfigPanel.tsx"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAkH/B,MAAM,WAAW,yBAAyB;IACxC,gCAAgC;IAChC,IAAI,EAAE,OAAO,CAAC;IACd,oBAAoB;IACpB,OAAO,EAAE,MAAM,IAAI,CAAC;IACpB,kDAAkD;IAClD,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;IAC5B,iCAAiC;IACjC,MAAM,EAAE,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,KAAK,IAAI,CAAC;IAC9C,oCAAoC;IACpC,aAAa,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,GAAG,KAAK,IAAI,CAAC;CACrD;AAMD;;;;;;GAMG;AACH,wBAAgB,oBAAoB,CAAC,EACnC,IAAI,EACJ,OAAO,EACP,MAAM,EACN,MAAM,EACN,aAAa,GACd,EAAE,yBAAyB,qBAiB3B"}
@@ -1,5 +1,5 @@
1
1
  import { LayoutItem as RGLLayout } from 'react-grid-layout';
2
- import { DashboardSchema } from '../../types/src';
2
+ import { DashboardSchema } from '@object-ui/types';
3
3
  import * as React from 'react';
4
4
  export interface DashboardGridLayoutProps {
5
5
  schema: DashboardSchema;
@@ -0,0 +1 @@
1
+ {"version":3,"file":"DashboardGridLayout.d.ts","sourceRoot":"","sources":["../src/DashboardGridLayout.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAC/B,OAAO,EAA2C,KAAK,UAAU,IAAI,SAAS,EAAuC,MAAM,mBAAmB,CAAC;AAC/I,OAAO,kCAAkC,CAAC;AAI1C,OAAO,KAAK,EAAE,eAAe,EAAyB,MAAM,kBAAkB,CAAC;AA2B/E,MAAM,WAAW,wBAAwB;IACvC,MAAM,EAAE,eAAe,CAAC;IACxB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB;;;OAGG;IACH,cAAc,CAAC,EAAE,CAAC,MAAM,EAAE,SAAS,EAAE,KAAK,IAAI,CAAC;IAC/C;;;;;;;;;OASG;IACH,cAAc,CAAC,EAAE,CAAC,MAAM,EAAE,eAAe,KAAK,IAAI,CAAC;IACnD,4EAA4E;IAC5E,SAAS,CAAC,EAAE,MAAM,IAAI,CAAC;CACxB;AAED,iFAAiF;AACjF,wBAAgB,qBAAqB,CACnC,MAAM,EAAE,eAAe,EACvB,MAAM,EAAE,SAAS,EAAE,GAClB,eAAe,CAajB;AAcD,eAAO,MAAM,mBAAmB,EAAE,KAAK,CAAC,EAAE,CAAC,wBAAwB,CAgUlE,CAAC"}
@@ -1,5 +1,5 @@
1
- import { DashboardSchema, DashboardWidgetSchema } from '../../types/src';
2
- import { ActionDef, ActionResult, ActionContext, ModalHandler } from '../../core/src';
1
+ import { DashboardSchema, DashboardWidgetSchema } from '@object-ui/types';
2
+ import { ActionDef, ActionResult, ActionContext, ModalHandler } from '@object-ui/core';
3
3
  export interface DashboardRendererProps {
4
4
  schema: DashboardSchema;
5
5
  className?: string;
@@ -0,0 +1 @@
1
+ {"version":3,"file":"DashboardRenderer.d.ts","sourceRoot":"","sources":["../src/DashboardRenderer.tsx"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,KAAK,EAAE,eAAe,EAAE,qBAAqB,EAAE,MAAM,kBAAkB,CAAC;AAG/E,OAAO,KAAK,EAAE,SAAS,EAAE,YAAY,EAAE,aAAa,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AA+J5F,MAAM,WAAW,sBAAsB;IACrC,MAAM,EAAE,eAAe,CAAC;IACxB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,4EAA4E;IAC5E,SAAS,CAAC,EAAE,MAAM,IAAI,CAAC;IACvB,oCAAoC;IACpC,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,iCAAiC;IACjC,WAAW,CAAC,EAAE;QAAE,IAAI,CAAC,EAAE,OAAO,CAAC;QAAC,MAAM,CAAC,EAAE,OAAO,CAAC;QAAC,MAAM,CAAC,EAAE,OAAO,CAAA;KAAE,CAAC;IACrE,kEAAkE;IAClE,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,gDAAgD;IAChD,gBAAgB,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACjC,uDAAuD;IACvD,aAAa,CAAC,EAAE,CAAC,QAAQ,EAAE,MAAM,GAAG,IAAI,KAAK,IAAI,CAAC;IAClD;;;;;OAKG;IACH,gBAAgB,CAAC,EAAE,CAAC,OAAO,EAAE,qBAAqB,EAAE,KAAK,IAAI,CAAC;IAC9D,mGAAmG;IACnG,YAAY,CAAC,EAAE,YAAY,CAAC;IAC5B,wGAAwG;IACxG,cAAc,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,CAAC,MAAM,EAAE,SAAS,EAAE,OAAO,EAAE,aAAa,KAAK,OAAO,CAAC,YAAY,CAAC,GAAG,YAAY,CAAC,CAAC;IACrH;;;;;OAKG;IACH,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB,CAAC,GAAG,EAAE,MAAM,GAAG,GAAG,CAAC;CACpB;AAED,eAAO,MAAM,iBAAiB,gIA00B7B,CAAC"}
@@ -1,4 +1,12 @@
1
- import { DashboardSchema } from '../../types/src';
1
+ import { DashboardSchema } from '@object-ui/types';
2
+ /**
3
+ * ObjectUI
4
+ * Copyright (c) 2024-present ObjectStack Inc.
5
+ *
6
+ * This source code is licensed under the MIT license found in the
7
+ * LICENSE file in the root directory of this source tree.
8
+ */
9
+ import * as React from 'react';
2
10
  export interface DashboardWithConfigProps {
3
11
  /** Dashboard schema for rendering */
4
12
  schema: DashboardSchema;
@@ -28,5 +36,5 @@ export interface DashboardWithConfigProps {
28
36
  * - Back navigation from widget config to dashboard config
29
37
  * - Live preview: widget config changes are reflected in real time
30
38
  */
31
- export declare function DashboardWithConfig({ schema, config, onConfigSave, onWidgetSave, onRefresh, recordCount, defaultConfigOpen, className, }: DashboardWithConfigProps): import("react/jsx-runtime").JSX.Element;
39
+ export declare function DashboardWithConfig({ schema, config, onConfigSave, onWidgetSave, onRefresh, recordCount, defaultConfigOpen, className, }: DashboardWithConfigProps): React.JSX.Element;
32
40
  //# sourceMappingURL=DashboardWithConfig.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"DashboardWithConfig.d.ts","sourceRoot":"","sources":["../src/DashboardWithConfig.tsx"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAI/B,OAAO,KAAK,EAAE,eAAe,EAAyB,MAAM,kBAAkB,CAAC;AAU/E,MAAM,WAAW,wBAAwB;IACvC,qCAAqC;IACrC,MAAM,EAAE,eAAe,CAAC;IACxB,6DAA6D;IAC7D,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;IAC5B,6DAA6D;IAC7D,YAAY,EAAE,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,KAAK,IAAI,CAAC;IACpD,iEAAiE;IACjE,YAAY,CAAC,EAAE,CAAC,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,KAAK,IAAI,CAAC;IACvE,2DAA2D;IAC3D,SAAS,CAAC,EAAE,MAAM,IAAI,CAAC;IACvB,yBAAyB;IACzB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,iDAAiD;IACjD,iBAAiB,CAAC,EAAE,OAAO,CAAC;IAC5B,kDAAkD;IAClD,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAMD;;;;;;;;;;GAUG;AACH,wBAAgB,mBAAmB,CAAC,EAClC,MAAM,EACN,MAAM,EACN,YAAY,EACZ,YAAY,EACZ,SAAS,EACT,WAAW,EACX,iBAAyB,EACzB,SAAS,GACV,EAAE,wBAAwB,qBAgM1B"}
@@ -0,0 +1,33 @@
1
+ import { buildDatasetDrillFilter } from '@object-ui/core';
2
+ /**
3
+ * Build the record-list filter for a drilled row. Re-exported for back-compat;
4
+ * the implementation now lives in `@object-ui/core` (`buildDatasetDrillFilter`)
5
+ * so the dashboard and the report renderer drill identically.
6
+ */
7
+ export declare const buildDrillFilter: typeof buildDatasetDrillFilter;
8
+ /**
9
+ * Pivot flat dataset rows into a cross-tab: `rowDims` go DOWN, `colDim` spreads
10
+ * ACROSS. Returns ordered row/column headers (display labels from the rows) and
11
+ * a map from a `${rowId} ${colId}` cell key to the FLAT row index holding
12
+ * that combination's measure values. No re-aggregation — the dataset already
13
+ * grouped by every dimension, so each cell maps to exactly one row (the index
14
+ * is also what drill-through uses to read `drillRawRows`).
15
+ */
16
+ export declare function buildPivot(rows: Array<Record<string, unknown>>, rowDims: string[], colDim: string): {
17
+ rowHeaders: Array<{
18
+ id: string;
19
+ labels: string[];
20
+ }>;
21
+ colHeaders: Array<{
22
+ id: string;
23
+ label: string;
24
+ }>;
25
+ cellIndex: Map<string, number>;
26
+ };
27
+ /** Serialize a 2D array (first row = headers) to CSV text. */
28
+ export declare function toCsv(rows: Array<Array<string | number | null | undefined>>): string;
29
+ export declare function DatasetWidget({ widget, dataSource }: {
30
+ widget: any;
31
+ dataSource: unknown;
32
+ }): import("react").JSX.Element;
33
+ //# sourceMappingURL=DatasetWidget.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"DatasetWidget.d.ts","sourceRoot":"","sources":["../src/DatasetWidget.tsx"],"names":[],"mappings":"AA8BA,OAAO,EAML,uBAAuB,EAExB,MAAM,iBAAiB,CAAC;AAczB;;;;GAIG;AACH,eAAO,MAAM,gBAAgB,gCAA0B,CAAC;AAExD;;;;;;;GAOG;AACH,wBAAgB,UAAU,CACxB,IAAI,EAAE,KAAK,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,EACpC,OAAO,EAAE,MAAM,EAAE,EACjB,MAAM,EAAE,MAAM,GACb;IACD,UAAU,EAAE,KAAK,CAAC;QAAE,EAAE,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,EAAE,CAAA;KAAE,CAAC,CAAC;IACpD,UAAU,EAAE,KAAK,CAAC;QAAE,EAAE,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IACjD,SAAS,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CAChC,CAcA;AASD,8DAA8D;AAC9D,wBAAgB,KAAK,CAAC,IAAI,EAAE,KAAK,CAAC,KAAK,CAAC,MAAM,GAAG,MAAM,GAAG,IAAI,GAAG,SAAS,CAAC,CAAC,GAAG,MAAM,CAEpF;AAmDD,wBAAgB,aAAa,CAAC,EAAE,MAAM,EAAE,UAAU,EAAE,EAAE;IAAE,MAAM,EAAE,GAAG,CAAC;IAAC,UAAU,EAAE,OAAO,CAAA;CAAE,+BAmUzF"}
@@ -4,8 +4,13 @@ export interface DrillDownDrawerProps {
4
4
  onClose: () => void;
5
5
  /** Drawer/dialog header. */
6
6
  title: string;
7
- /** "drawer" (right-side Sheet) or "dialog" (centered Dialog). */
8
- target?: 'drawer' | 'dialog';
7
+ /**
8
+ * Where the drill lands: `'drawer'` (right-side Sheet), `'dialog'` (centered
9
+ * Dialog), or `'navigate'` (skip the in-place view and open the object's full
10
+ * list page via the host's drill navigation). `'navigate'` falls back to
11
+ * `'drawer'` when no host navigation handler is available.
12
+ */
13
+ target?: 'drawer' | 'dialog' | 'navigate';
9
14
  /** Object name to query. */
10
15
  objectName: string;
11
16
  /** Filter applied to the drilled list. */
@@ -0,0 +1 @@
1
+ {"version":3,"file":"DrillDownDrawer.d.ts","sourceRoot":"","sources":["../src/DrillDownDrawer.tsx"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAEH,OAAO,KAAK,MAAM,OAAO,CAAC;AAgB1B,MAAM,WAAW,oBAAoB;IACnC,IAAI,EAAE,OAAO,CAAC;IACd,OAAO,EAAE,MAAM,IAAI,CAAC;IACpB,4BAA4B;IAC5B,KAAK,EAAE,MAAM,CAAC;IACd;;;;;OAKG;IACH,MAAM,CAAC,EAAE,QAAQ,GAAG,QAAQ,GAAG,UAAU,CAAC;IAC1C,4BAA4B;IAC5B,UAAU,EAAE,MAAM,CAAC;IACnB,0CAA0C;IAC1C,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACjC,8EAA8E;IAC9E,UAAU,CAAC,EAAE,GAAG,CAAC;IACjB,iCAAiC;IACjC,OAAO,CAAC,EAAE,MAAM,EAAE,CAAC;IACnB,yBAAyB;IACzB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,iDAAiD;IACjD,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB;;;;;;OAMG;IACH,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CAClC;AAED,eAAO,MAAM,eAAe,EAAE,KAAK,CAAC,EAAE,CAAC,oBAAoB,CAoG1D,CAAC"}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"MetricCard.d.ts","sourceRoot":"","sources":["../src/MetricCard.tsx"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,KAAK,MAAM,OAAO,CAAC;AAY1B,MAAM,WAAW,eAAe;IAC9B,KAAK,CAAC,EAAE,MAAM,GAAG;QAAE,GAAG,CAAC,EAAE,MAAM,CAAC;QAAC,YAAY,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;IACzD,KAAK,EAAE,MAAM,GAAG,MAAM,CAAC;IACvB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,KAAK,CAAC,EAAE,IAAI,GAAG,MAAM,GAAG,SAAS,CAAC;IAClC,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,WAAW,CAAC,EAAE,MAAM,GAAG;QAAE,GAAG,CAAC,EAAE,MAAM,CAAC;QAAC,YAAY,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;IAC/D,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,6EAA6E;IAC7E,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,uFAAuF;IACvF,KAAK,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;CACvB;AAED;;;GAGG;AACH,eAAO,MAAM,UAAU,EAAE,KAAK,CAAC,EAAE,CAAC,eAAe,CA8DhD,CAAC"}
@@ -37,5 +37,5 @@ export interface MetricWidgetProps {
37
37
  /** When set, the entire card becomes clickable and emits this handler. */
38
38
  onClick?: () => void;
39
39
  }
40
- export declare const MetricWidget: ({ label, value, trend, icon, className, description, loading, error, colorVariant, format, currency, prefix, suffix, onClick, ...props }: MetricWidgetProps) => import("react/jsx-runtime").JSX.Element;
40
+ export declare const MetricWidget: ({ label, value, trend, icon, className, description, loading, error, colorVariant, format, currency, prefix, suffix, onClick, ...props }: MetricWidgetProps) => React.JSX.Element;
41
41
  //# sourceMappingURL=MetricWidget.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"MetricWidget.d.ts","sourceRoot":"","sources":["../src/MetricWidget.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAkB,MAAM,OAAO,CAAC;AAkHvC,MAAM,MAAM,kBAAkB,GAC1B,SAAS,GAAG,MAAM,GAAG,MAAM,GAAG,QAAQ,GAAG,QAAQ,GACjD,SAAS,GAAG,SAAS,GAAG,QAAQ,CAAC;AAmBrC,MAAM,WAAW,iBAAiB;IAChC,KAAK,EAAE,MAAM,GAAG;QAAE,GAAG,CAAC,EAAE,MAAM,CAAC;QAAC,YAAY,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;IACxD,KAAK,EAAE,MAAM,GAAG,MAAM,CAAC;IACvB,KAAK,CAAC,EAAE;QACN,KAAK,EAAE,MAAM,CAAC;QACd,KAAK,CAAC,EAAE,MAAM,GAAG;YAAE,GAAG,CAAC,EAAE,MAAM,CAAC;YAAC,YAAY,CAAC,EAAE,MAAM,CAAA;SAAE,CAAC;QACzD,SAAS,CAAC,EAAE,IAAI,GAAG,MAAM,GAAG,SAAS,CAAC;KACvC,CAAC;IACF,IAAI,CAAC,EAAE,KAAK,CAAC,SAAS,GAAG,MAAM,CAAC;IAChC,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,WAAW,CAAC,EAAE,MAAM,GAAG;QAAE,GAAG,CAAC,EAAE,MAAM,CAAC;QAAC,YAAY,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;IAC/D,+EAA+E;IAC/E,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,yFAAyF;IACzF,KAAK,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACtB,sFAAsF;IACtF,YAAY,CAAC,EAAE,kBAAkB,CAAC;IAClC,oFAAoF;IACpF,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,uFAAuF;IACvF,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,kFAAkF;IAClF,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,wEAAwE;IACxE,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,0EAA0E;IAC1E,OAAO,CAAC,EAAE,MAAM,IAAI,CAAC;CACtB;AAED,eAAO,MAAM,YAAY,GAAI,0IAgB1B,iBAAiB,sBAuGnB,CAAC"}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ObjectDataTable.d.ts","sourceRoot":"","sources":["../src/ObjectDataTable.tsx"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,KAAgE,MAAM,OAAO,CAAC;AAerF,MAAM,WAAW,oBAAoB;IACnC,MAAM,EAAE;QACN,IAAI,EAAE,MAAM,CAAC;QACb,UAAU,CAAC,EAAE,MAAM,CAAC;QACpB,YAAY,CAAC,EAAE;YAAE,QAAQ,EAAE,MAAM,CAAC;YAAC,MAAM,CAAC,EAAE,MAAM,CAAA;SAAE,CAAC;QACrD,IAAI,CAAC,EAAE,MAAM,CAAC;QACd,MAAM,CAAC,EAAE,GAAG,CAAC;QACb,IAAI,CAAC,EAAE,GAAG,EAAE,CAAC;QACb,OAAO,CAAC,EAAE,GAAG,EAAE,CAAC;QAChB,UAAU,CAAC,EAAE,OAAO,CAAC;QACrB,UAAU,CAAC,EAAE,OAAO,CAAC;QACrB,SAAS,CAAC,EAAE,MAAM,CAAC;QACnB,CAAC,GAAG,EAAE,MAAM,GAAG,GAAG,CAAC;KACpB,CAAC;IACF,UAAU,CAAC,EAAE,GAAG,CAAC;IACjB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,6EAA6E;AAC7E,UAAU,gBAAgB;IACxB,MAAM,EAAE,MAAM,CAAC;IACf,WAAW,EAAE,MAAM,CAAC;IACpB,CAAC,GAAG,EAAE,MAAM,GAAG,GAAG,CAAC;CACpB;AAED;;;;;;GAMG;AACH,wBAAgB,gBAAgB,CAAC,OAAO,EAAE,CAAC,MAAM,GAAG,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC,EAAE,GAAG,gBAAgB,EAAE,CAiB9F;AAED;;;;;;;;;;;;;;;GAeG;AACH;;;;;;GAMG;AACH,wBAAgB,mBAAmB,CACjC,MAAM,EAAE;IAAE,OAAO,CAAC,EAAE,GAAG,EAAE,CAAC;IAAC,UAAU,CAAC,EAAE,MAAM,CAAA;CAAE,EAChD,YAAY,EAAE,GAAG,GAChB,MAAM,EAAE,CAgCV;AAED,eAAO,MAAM,eAAe,EAAE,KAAK,CAAC,EAAE,CAAC,oBAAoB,CAiT1D,CAAC"}
@@ -1,5 +1,5 @@
1
1
  import { default as React } from 'react';
2
- import { DrillDownConfig } from '../../types/src';
2
+ import { DrillDownConfig } from '@object-ui/types';
3
3
  import { CompareToConfig } from './utils';
4
4
  /**
5
5
  * ObjectMetricWidget — Data-bound metric widget.
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ObjectMetricWidget.d.ts","sourceRoot":"","sources":["../src/ObjectMetricWidget.tsx"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,KAAgE,MAAM,OAAO,CAAC;AAIrF,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,kBAAkB,CAAC;AAIxD,OAAO,EAKL,KAAK,eAAe,EACrB,MAAM,SAAS,CAAC;AAEjB;;;;;;;;;;;;;;GAcG;AACH,MAAM,WAAW,uBAAuB;IACtC,wCAAwC;IACxC,UAAU,EAAE,MAAM,CAAC;IACnB,oDAAoD;IACpD,SAAS,CAAC,EAAE;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,QAAQ,EAAE,MAAM,CAAC;QAAC,OAAO,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;IAClE,wBAAwB;IACxB,MAAM,CAAC,EAAE,GAAG,CAAC;IACb,kCAAkC;IAClC,KAAK,EAAE,MAAM,GAAG;QAAE,GAAG,CAAC,EAAE,MAAM,CAAC;QAAC,YAAY,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;IACxD,sEAAsE;IACtE,aAAa,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;IAChC,iBAAiB;IACjB,KAAK,CAAC,EAAE;QACN,KAAK,EAAE,MAAM,CAAC;QACd,KAAK,CAAC,EAAE,MAAM,GAAG;YAAE,GAAG,CAAC,EAAE,MAAM,CAAC;YAAC,YAAY,CAAC,EAAE,MAAM,CAAA;SAAE,CAAC;QACzD,SAAS,CAAC,EAAE,IAAI,GAAG,MAAM,GAAG,SAAS,CAAC;KACvC,CAAC;IACF,6BAA6B;IAC7B,IAAI,CAAC,EAAE,KAAK,CAAC,SAAS,GAAG,MAAM,CAAC;IAChC,2BAA2B;IAC3B,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,kBAAkB;IAClB,WAAW,CAAC,EAAE,MAAM,GAAG;QAAE,GAAG,CAAC,EAAE,MAAM,CAAC;QAAC,YAAY,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;IAC/D,+CAA+C;IAC/C,UAAU,CAAC,EAAE,GAAG,CAAC;IACjB,kDAAkD;IAClD,YAAY,CAAC,EAAE,SAAS,GAAG,MAAM,GAAG,MAAM,GAAG,QAAQ,GAAG,QAAQ,GAAG,SAAS,GAAG,SAAS,GAAG,QAAQ,CAAC;IACpG,0EAA0E;IAC1E,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,uFAAuF;IACvF,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,kFAAkF;IAClF,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,wEAAwE;IACxE,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB;;;;;OAKG;IACH,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB;;;;OAIG;IACH,SAAS,CAAC,EAAE,eAAe,CAAC;IAC5B,oEAAoE;IACpE,KAAK,CAAC,EAAE,MAAM,GAAG;QAAE,GAAG,CAAC,EAAE,MAAM,CAAC;QAAC,YAAY,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;IACzD;;;;;;;;;;;OAWG;IACH,SAAS,CAAC,EAAE,eAAe,CAAC;IAC5B,iEAAiE;IACjE,CAAC,CAAC,EAAE,CAAC,GAAG,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,KAAK,MAAM,CAAC;CACnD;AAED,eAAO,MAAM,kBAAkB,EAAE,KAAK,CAAC,EAAE,CAAC,uBAAuB,CA6UhE,CAAC"}
@@ -1,5 +1,5 @@
1
1
  import { default as React } from 'react';
2
- import { PivotTableSchema } from '../../types/src';
2
+ import { PivotTableSchema } from '@object-ui/types';
3
3
  export interface ObjectPivotTableProps {
4
4
  schema: PivotTableSchema & {
5
5
  objectName?: string;
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ObjectPivotTable.d.ts","sourceRoot":"","sources":["../src/ObjectPivotTable.tsx"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,KAAkD,MAAM,OAAO,CAAC;AAQvE,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,kBAAkB,CAAC;AAEzD,MAAM,WAAW,qBAAqB;IACpC,MAAM,EAAE,gBAAgB,GAAG;QACzB,UAAU,CAAC,EAAE,MAAM,CAAC;QACpB,YAAY,CAAC,EAAE;YAAE,QAAQ,EAAE,MAAM,CAAC;YAAC,MAAM,CAAC,EAAE,MAAM,CAAA;SAAE,CAAC;QACrD,IAAI,CAAC,EAAE,MAAM,CAAC;QACd,MAAM,CAAC,EAAE,GAAG,CAAC;KACd,CAAC;IACF,UAAU,CAAC,EAAE,GAAG,CAAC;IACjB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED;;;;;;;;;;;GAWG;AACH,eAAO,MAAM,gBAAgB,EAAE,KAAK,CAAC,EAAE,CAAC,qBAAqB,CAgO5D,CAAC"}
@@ -0,0 +1,12 @@
1
+ import { default as React } from 'react';
2
+ export interface OpenInListButtonProps {
3
+ /** Object whose list page to open. */
4
+ objectName?: string;
5
+ /** Filter (object FIELD name → raw value) scoping the list. */
6
+ filter?: Record<string, unknown>;
7
+ /** Invoked after navigation is triggered (e.g. to close the drawer). */
8
+ onNavigate?: () => void;
9
+ className?: string;
10
+ }
11
+ export declare const OpenInListButton: React.FC<OpenInListButtonProps>;
12
+ //# sourceMappingURL=OpenInListButton.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"OpenInListButton.d.ts","sourceRoot":"","sources":["../src/OpenInListButton.tsx"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AAEH,OAAO,KAAK,MAAM,OAAO,CAAC;AAM1B,MAAM,WAAW,qBAAqB;IACpC,sCAAsC;IACtC,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,+DAA+D;IAC/D,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACjC,wEAAwE;IACxE,UAAU,CAAC,EAAE,MAAM,IAAI,CAAC;IACxB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,eAAO,MAAM,gBAAgB,EAAE,KAAK,CAAC,EAAE,CAAC,qBAAqB,CA4B5D,CAAC"}
@@ -1,6 +1,6 @@
1
1
  import { default as React } from 'react';
2
- import { PivotTableSchema } from '../../types/src';
3
- import { DrillEvent } from '../../core/src';
2
+ import { PivotTableSchema } from '@object-ui/types';
3
+ import { DrillEvent } from '@object-ui/core';
4
4
  export interface PivotTableProps {
5
5
  schema: PivotTableSchema;
6
6
  className?: string;
@@ -0,0 +1 @@
1
+ {"version":3,"file":"PivotTable.d.ts","sourceRoot":"","sources":["../src/PivotTable.tsx"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,KAAkB,MAAM,OAAO,CAAC;AACvC,OAAO,KAAK,EAAE,gBAAgB,EAAoB,MAAM,kBAAkB,CAAC;AAE3E,OAAO,EAAkB,KAAK,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAWlE,MAAM,WAAW,eAAe;IAC9B,MAAM,EAAE,gBAAgB,CAAC;IACzB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB;;;;;OAKG;IACH,SAAS,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACnC,kDAAkD;IAClD,YAAY,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACtC,gFAAgF;IAChF,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB;;;;OAIG;IACH,WAAW,CAAC,EAAE,CAAC,KAAK,EAAE,UAAU,KAAK,IAAI,CAAC;CAC3C;AA6ED;;;;;GAKG;AACH,eAAO,MAAM,UAAU,EAAE,KAAK,CAAC,EAAE,CAAC,eAAe,CA4PhD,CAAC"}
@@ -0,0 +1,23 @@
1
+ import { default as React } from 'react';
2
+ export interface RecordDetailDrawerProps {
3
+ /** The record to display, or `null` when nothing is selected. */
4
+ record: Record<string, any> | null;
5
+ /** Object the record belongs to (drives label translation + field meta). */
6
+ objectName?: string;
7
+ /** Object schema (field metadata) for labels / formatting. Optional. */
8
+ objectSchema?: any;
9
+ /**
10
+ * Optional whitelist of field accessors to show (e.g. `drillDown.columns`).
11
+ * When omitted, all non-system fields are shown in schema declaration order
12
+ * (falling back to the record's own keys when no schema is available).
13
+ */
14
+ fields?: string[];
15
+ /** Explicit drawer/dialog title; defaults to the record's display name. */
16
+ title?: string;
17
+ /** Where to open. Defaults to `'drawer'` (right-side Sheet). */
18
+ target?: 'drawer' | 'dialog';
19
+ /** Called when the drawer requests to close. */
20
+ onClose: () => void;
21
+ }
22
+ export declare const RecordDetailDrawer: React.FC<RecordDetailDrawerProps>;
23
+ //# sourceMappingURL=RecordDetailDrawer.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"RecordDetailDrawer.d.ts","sourceRoot":"","sources":["../src/RecordDetailDrawer.tsx"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;GAoBG;AAEH,OAAO,KAAkB,MAAM,OAAO,CAAC;AAcvC,MAAM,WAAW,uBAAuB;IACtC,iEAAiE;IACjE,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,IAAI,CAAC;IACnC,4EAA4E;IAC5E,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,wEAAwE;IACxE,YAAY,CAAC,EAAE,GAAG,CAAC;IACnB;;;;OAIG;IACH,MAAM,CAAC,EAAE,MAAM,EAAE,CAAC;IAClB,2EAA2E;IAC3E,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,gEAAgE;IAChE,MAAM,CAAC,EAAE,QAAQ,GAAG,QAAQ,CAAC;IAC7B,gDAAgD;IAChD,OAAO,EAAE,MAAM,IAAI,CAAC;CACrB;AAgBD,eAAO,MAAM,kBAAkB,EAAE,KAAK,CAAC,EAAE,CAAC,uBAAuB,CAgFhE,CAAC"}
@@ -29,5 +29,5 @@ export interface WidgetConfigPanelProps {
29
29
  /** Available fields of the currently selected object for dropdown selection */
30
30
  availableFields?: SelectOption[];
31
31
  }
32
- export declare function WidgetConfigPanel({ open, onClose, config, onSave, onFieldChange, headerExtra, availableObjects, availableFields, }: WidgetConfigPanelProps): import("react/jsx-runtime").JSX.Element;
32
+ export declare function WidgetConfigPanel({ open, onClose, config, onSave, onFieldChange, headerExtra, availableObjects, availableFields, }: WidgetConfigPanelProps): React.JSX.Element;
33
33
  //# sourceMappingURL=WidgetConfigPanel.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"WidgetConfigPanel.d.ts","sourceRoot":"","sources":["../src/WidgetConfigPanel.tsx"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AA4F/B,wBAAgB,iBAAiB,CAAC,CAAC,EAAE,MAAM,GAAG,SAAS,GAAG,OAAO,CAEhE;AAuBD,MAAM,MAAM,YAAY,GAAG;IAAE,KAAK,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,CAAC;AA4b5D,MAAM,WAAW,sBAAsB;IACrC,gCAAgC;IAChC,IAAI,EAAE,OAAO,CAAC;IACd,oBAAoB;IACpB,OAAO,EAAE,MAAM,IAAI,CAAC;IACpB,+EAA+E;IAC/E,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;IAC5B,wCAAwC;IACxC,MAAM,EAAE,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,KAAK,IAAI,CAAC;IAC9C,oCAAoC;IACpC,aAAa,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,GAAG,KAAK,IAAI,CAAC;IACpD,oEAAoE;IACpE,WAAW,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IAC9B,2DAA2D;IAC3D,gBAAgB,CAAC,EAAE,YAAY,EAAE,CAAC;IAClC,+EAA+E;IAC/E,eAAe,CAAC,EAAE,YAAY,EAAE,CAAC;CAClC;AAiFD,wBAAgB,iBAAiB,CAAC,EAChC,IAAI,EACJ,OAAO,EACP,MAAM,EACN,MAAM,EACN,aAAa,EACb,WAAW,EACX,gBAAgB,EAChB,eAAe,GAChB,EAAE,sBAAsB,qBA8BxB"}
package/dist/index.d.ts CHANGED
@@ -1,2 +1,27 @@
1
- export * from './packages/plugin-dashboard/src/index'
2
- export {}
1
+ import { DashboardRenderer } from './DashboardRenderer';
2
+ import { DashboardGridLayout } from './DashboardGridLayout';
3
+ import { MetricWidget } from './MetricWidget';
4
+ import { MetricCard } from './MetricCard';
5
+ import { ObjectMetricWidget } from './ObjectMetricWidget';
6
+ import { PivotTable } from './PivotTable';
7
+ import { ObjectPivotTable } from './ObjectPivotTable';
8
+ import { ObjectDataTable } from './ObjectDataTable';
9
+ import { DashboardConfigPanel } from './DashboardConfigPanel';
10
+ import { WidgetConfigPanel } from './WidgetConfigPanel';
11
+ import { DashboardWithConfig } from './DashboardWithConfig';
12
+ import { DrillDownDrawer } from './DrillDownDrawer';
13
+ export { DashboardRenderer, DashboardGridLayout, MetricWidget, MetricCard, ObjectMetricWidget, PivotTable, ObjectPivotTable, ObjectDataTable, DashboardConfigPanel, WidgetConfigPanel, DashboardWithConfig, DrillDownDrawer };
14
+ export declare const dashboardComponents: {
15
+ DashboardRenderer: import('react').ForwardRefExoticComponent<Omit<import('./DashboardRenderer').DashboardRendererProps, "ref"> & import('react').RefAttributes<HTMLDivElement>>;
16
+ DashboardGridLayout: import('react').FC<import('./DashboardGridLayout').DashboardGridLayoutProps>;
17
+ MetricWidget: ({ label, value, trend, icon, className, description, loading, error, colorVariant, format, currency, prefix, suffix, onClick, ...props }: import('./MetricWidget').MetricWidgetProps) => import("react").JSX.Element;
18
+ MetricCard: import('react').FC<import('./MetricCard').MetricCardProps>;
19
+ ObjectMetricWidget: import('react').FC<import('./ObjectMetricWidget').ObjectMetricWidgetProps>;
20
+ PivotTable: import('react').FC<import('./PivotTable').PivotTableProps>;
21
+ ObjectPivotTable: import('react').FC<import('./ObjectPivotTable').ObjectPivotTableProps>;
22
+ ObjectDataTable: import('react').FC<import('./ObjectDataTable').ObjectDataTableProps>;
23
+ DashboardConfigPanel: typeof DashboardConfigPanel;
24
+ WidgetConfigPanel: typeof WidgetConfigPanel;
25
+ DashboardWithConfig: typeof DashboardWithConfig;
26
+ };
27
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.tsx"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAGH,OAAO,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AACxD,OAAO,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAC;AAC5D,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAC9C,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAC1C,OAAO,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAC1D,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAC1C,OAAO,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AACtD,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AACpD,OAAO,EAAE,oBAAoB,EAAE,MAAM,wBAAwB,CAAC;AAC9D,OAAO,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AACxD,OAAO,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAC;AAC5D,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AAEpD,OAAO,EAAE,iBAAiB,EAAE,mBAAmB,EAAE,YAAY,EAAE,UAAU,EAAE,kBAAkB,EAAE,UAAU,EAAE,gBAAgB,EAAE,eAAe,EAAE,oBAAoB,EAAE,iBAAiB,EAAE,mBAAmB,EAAE,eAAe,EAAE,CAAC;AAwM9N,eAAO,MAAM,mBAAmB;;;;;;;;;;;;CAY/B,CAAC"}