@altertable/data-app 0.61.0 → 0.63.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 (159) hide show
  1. package/AGENTS.md +4 -32
  2. package/CONTRIBUTING.md +63 -72
  3. package/README.md +14 -38
  4. package/dist/chunks/{contract-d9skd1n7.js → contract-8wdybxj7.js} +163 -16
  5. package/dist/chunks/contract-8wdybxj7.js.map +13 -0
  6. package/dist/chunks/{contract-ryyf6dme.js → contract-cxr9t12b.js} +2 -5
  7. package/dist/chunks/contract-cxr9t12b.js.map +10 -0
  8. package/dist/chunks/{contract-14vxdcrs.js → contract-farfe948.js} +17 -21
  9. package/dist/chunks/contract-farfe948.js.map +10 -0
  10. package/dist/chunks/contract-mev09s5v.js.map +2 -2
  11. package/dist/chunks/{contract-ehk50k7e.js → contract-tf8c3qpv.js} +34 -4
  12. package/dist/chunks/contract-tf8c3qpv.js.map +11 -0
  13. package/dist/chunks/{contract-zr4s2g7m.js → contract-tkc552ze.js} +75 -36
  14. package/dist/chunks/contract-tkc552ze.js.map +12 -0
  15. package/dist/chunks/{contract-nt819swq.js → contract-wd8qe3mt.js} +6 -1
  16. package/dist/chunks/{contract-nt819swq.js.map → contract-wd8qe3mt.js.map} +3 -3
  17. package/dist/chunks/contract-wz59z8pq.js.map +1 -1
  18. package/dist/chunks/{contract-7gpsee0v.js → contract-zr3jd7mr.js} +51 -22
  19. package/dist/chunks/contract-zr3jd7mr.js.map +12 -0
  20. package/dist/client/index.js +7 -6
  21. package/dist/client/index.js.map +1 -1
  22. package/dist/core/appearance.js +1 -1
  23. package/dist/core/contract.js +6 -4
  24. package/dist/core/contract.js.map +1 -1
  25. package/dist/embed/index.js +41 -9
  26. package/dist/embed/index.js.map +5 -4
  27. package/dist/local.js +172 -84
  28. package/dist/local.js.map +7 -8
  29. package/dist/react/embed/index.js +83 -99
  30. package/dist/react/embed/index.js.map +4 -5
  31. package/dist/react/index.js +5701 -324
  32. package/dist/react/index.js.map +74 -65
  33. package/dist/server.js +153 -81
  34. package/dist/server.js.map +6 -7
  35. package/dist/types/client/data-client.d.ts +33 -0
  36. package/dist/types/client/iframe.d.ts +14 -0
  37. package/dist/types/client/index.d.ts +4 -34
  38. package/dist/types/client/location.d.ts +4 -6
  39. package/dist/types/client/navigation.d.ts +2 -1
  40. package/dist/types/core/appearance.d.ts +7 -6
  41. package/dist/types/core/bridge.d.ts +2 -8
  42. package/dist/types/core/config.d.ts +1 -1
  43. package/dist/types/core/contract.d.ts +9 -56
  44. package/dist/types/core/format.d.ts +0 -1
  45. package/dist/types/core/messages.d.ts +11 -30
  46. package/dist/types/core/navigation.d.ts +11 -0
  47. package/dist/types/core/operation-types.d.ts +76 -0
  48. package/dist/types/core/operation.d.ts +21 -0
  49. package/dist/types/core/presentation.d.ts +7 -0
  50. package/dist/types/core/variables.d.ts +2 -2
  51. package/dist/types/embed/bridge.d.ts +12 -0
  52. package/dist/types/embed/host.d.ts +14 -5
  53. package/dist/types/embed/index.d.ts +6 -4
  54. package/dist/types/embed/source.d.ts +15 -0
  55. package/dist/types/embed/sql.d.ts +4 -0
  56. package/dist/types/react/content.d.ts +3 -3
  57. package/dist/types/react/embed/bridge.d.ts +19 -10
  58. package/dist/types/react/embed/index.d.ts +0 -2
  59. package/dist/types/react/hooks.d.ts +65 -64
  60. package/dist/types/react/index.d.ts +135 -2
  61. package/dist/types/react/injectStyles.d.ts +7 -0
  62. package/dist/types/react/shellStyles.d.ts +3 -0
  63. package/dist/types/react/styles.d.ts +8 -0
  64. package/dist/types/react/ui/AboutData.d.ts +0 -1
  65. package/dist/types/react/ui/AppFooter.d.ts +0 -1
  66. package/dist/types/react/ui/AppHeader.d.ts +0 -1
  67. package/dist/types/react/ui/AppLayout.d.ts +0 -1
  68. package/dist/types/react/ui/AppScope.d.ts +0 -1
  69. package/dist/types/react/ui/AppToolbar.d.ts +0 -1
  70. package/dist/types/react/ui/Breakdown.d.ts +0 -1
  71. package/dist/types/react/ui/Button.d.ts +0 -1
  72. package/dist/types/react/ui/Checkbox.d.ts +0 -1
  73. package/dist/types/react/ui/Combobox.d.ts +0 -1
  74. package/dist/types/react/ui/ComparisonVisual.d.ts +0 -1
  75. package/dist/types/react/ui/ContentSkeleton.d.ts +2 -5
  76. package/dist/types/react/ui/DataApp.d.ts +2 -2
  77. package/dist/types/react/ui/DataAppSkeleton.d.ts +7 -0
  78. package/dist/types/react/ui/DataBoundary.d.ts +0 -1
  79. package/dist/types/react/ui/DataSection.d.ts +2 -4
  80. package/dist/types/react/ui/DataTable.d.ts +2 -3
  81. package/dist/types/react/ui/DataViewToast.d.ts +0 -1
  82. package/dist/types/react/ui/DataWidget.d.ts +4 -14
  83. package/dist/types/react/ui/DateRangePicker.d.ts +0 -1
  84. package/dist/types/react/ui/DateTimeTooltip.d.ts +0 -1
  85. package/dist/types/react/ui/EmptyState.d.ts +2 -5
  86. package/dist/types/react/ui/GettingStarted.d.ts +0 -1
  87. package/dist/types/react/ui/GlossaryDefinition.d.ts +0 -1
  88. package/dist/types/react/ui/GlossaryExplanation.d.ts +0 -1
  89. package/dist/types/react/ui/GradientScroll.d.ts +0 -1
  90. package/dist/types/react/ui/Grid.d.ts +0 -1
  91. package/dist/types/react/ui/HelpPopover.d.ts +0 -2
  92. package/dist/types/react/ui/Kbd.d.ts +0 -1
  93. package/dist/types/react/ui/LiveControl.d.ts +0 -1
  94. package/dist/types/react/ui/MetricWidget.d.ts +0 -2
  95. package/dist/types/react/ui/PeriodSummary.d.ts +0 -1
  96. package/dist/types/react/ui/PresentStory.d.ts +0 -1
  97. package/dist/types/react/ui/QueryList.d.ts +0 -1
  98. package/dist/types/react/ui/Ranking.d.ts +0 -1
  99. package/dist/types/react/ui/RefreshControl.d.ts +0 -1
  100. package/dist/types/react/ui/RefreshRegion.d.ts +0 -1
  101. package/dist/types/react/ui/RequestHint.d.ts +0 -1
  102. package/dist/types/react/ui/SearchField.d.ts +0 -1
  103. package/dist/types/react/ui/SearchInput.d.ts +1 -2
  104. package/dist/types/react/ui/SearchMatch.d.ts +0 -1
  105. package/dist/types/react/ui/SelectableBarChart.d.ts +0 -1
  106. package/dist/types/react/ui/SelectionMark.d.ts +0 -1
  107. package/dist/types/react/ui/Sheet.d.ts +0 -1
  108. package/dist/types/react/ui/Skeleton.d.ts +0 -1
  109. package/dist/types/react/ui/Stack.d.ts +0 -1
  110. package/dist/types/react/ui/StatusPanel.d.ts +0 -1
  111. package/dist/types/react/ui/TableWidget.d.ts +2 -3
  112. package/dist/types/react/ui/Tabs.d.ts +0 -1
  113. package/dist/types/react/ui/TextContent.d.ts +4 -0
  114. package/dist/types/react/ui/TextWidget.d.ts +19 -0
  115. package/dist/types/react/ui/ThemeSelector.d.ts +0 -1
  116. package/dist/types/react/ui/Tooltip.d.ts +0 -1
  117. package/dist/types/react/ui/UpdatedAt.d.ts +0 -1
  118. package/dist/types/react/ui/VariableBar.d.ts +0 -1
  119. package/dist/types/react/ui/VisualizationWidget.d.ts +5 -13
  120. package/dist/types/react/ui/WidgetDisclosure.d.ts +0 -1
  121. package/dist/types/react/ui/WidgetViewTabs.d.ts +2 -3
  122. package/dist/types/react/ui/data-identifiers.d.ts +0 -1
  123. package/dist/types/react/ui/presentation.d.ts +19 -0
  124. package/dist/types/react/ui/useAppAppearance.d.ts +3 -0
  125. package/dist/types/react/ui/useDataAppPresentation.d.ts +3 -0
  126. package/dist/types/react/view-controls.d.ts +2 -2
  127. package/dist/types/react/view.d.ts +2 -2
  128. package/dist/{bootstrap.js → worker.js} +144 -12
  129. package/docs/app-authoring.md +60 -24
  130. package/docs/client.md +48 -19
  131. package/docs/contract.md +10 -10
  132. package/docs/embed.md +94 -26
  133. package/docs/hosted-apps.md +39 -0
  134. package/docs/local-data-apps.md +14 -0
  135. package/docs/react-embed.md +75 -24
  136. package/docs/react.md +118 -93
  137. package/docs/server-bun.md +4 -1
  138. package/docs/server.md +2 -2
  139. package/docs/worker.md +55 -0
  140. package/examples/starter-data-app/index.tsx +159 -0
  141. package/package.json +18 -12
  142. package/dist/chunks/contract-14vxdcrs.js.map +0 -10
  143. package/dist/chunks/contract-7gpsee0v.js.map +0 -11
  144. package/dist/chunks/contract-d9skd1n7.js.map +0 -12
  145. package/dist/chunks/contract-ehk50k7e.js.map +0 -10
  146. package/dist/chunks/contract-ryyf6dme.js.map +0 -10
  147. package/dist/chunks/contract-zr4s2g7m.js.map +0 -12
  148. package/dist/react/index.css +0 -4478
  149. package/dist/react.css.d.ts +0 -1
  150. package/dist/types/embed/shell.d.ts +0 -21
  151. package/dist/types/embed/standalone.d.ts +0 -1
  152. package/dist/types/react/embed/shell.d.ts +0 -10
  153. package/dist/types/react/ui/index.d.ts +0 -129
  154. package/docs/appearance.md +0 -30
  155. package/docs/bootstrap.md +0 -76
  156. package/docs/config.md +0 -21
  157. package/docs/format.md +0 -29
  158. package/docs/react-styles.md +0 -17
  159. package/docs/starter-agent-instructions.md +0 -53
@@ -1,11 +1,12 @@
1
1
  import { type ReactNode } from 'react';
2
2
  import type { DataOperations, DateRangeRequest } from '../core/contract.js';
3
- import type { DataClient, InputOf, OutputOf } from '../client/index.js';
3
+ import type { DataClient } from '../client/data-client.js';
4
+ import type { InputOf, OutputOf } from '../core/operation-types.js';
4
5
  import { type ReportingPeriod } from './ui/PeriodSummary.js';
5
6
  import { type VariableCollection } from '../core/variables.js';
6
7
  import { dateRangeVariable, type DateRangeVariableOptions } from './ui/variables.js';
7
8
  import { type DimensionFilterOptions, type DimensionOption, type DimensionValue } from '../core/dimension.js';
8
- import type { EmptyStateProps } from './ui/EmptyState.js';
9
+ import type { EmptyContent } from './ui/presentation.js';
9
10
  import { type DataContentState } from './content.js';
10
11
  import { type DataViewDefinition, type ResolvedVariables, type ViewBindings } from './view.js';
11
12
  type TimeVariables<Additional extends VariableCollection> = {
@@ -41,7 +42,7 @@ export declare function createDataHooks<Operations extends DataOperations>(clien
41
42
  isRefetching: boolean;
42
43
  isStale: boolean;
43
44
  isEnabled: boolean;
44
- refetch: (options?: import("@tanstack/react-query").RefetchOptions) => Promise<import("@tanstack/react-query").QueryObserverResult<import("../client/index.js").DataResponse<OutputOf<Operations[Name]>, InputOf<Operations[Name]>>, Error>>;
45
+ refetch: (options?: import("@tanstack/react-query").RefetchOptions) => Promise<import("@tanstack/react-query").QueryObserverResult<import("../client/data-client.js").DataResponse<OutputOf<Operations[Name]>, InputOf<Operations[Name]>>, Error>>;
45
46
  fetchStatus: import("@tanstack/react-query").FetchStatus;
46
47
  data: undefined;
47
48
  error: Error;
@@ -69,7 +70,7 @@ export declare function createDataHooks<Operations extends DataOperations>(clien
69
70
  isRefetching: boolean;
70
71
  isStale: boolean;
71
72
  isEnabled: boolean;
72
- refetch: (options?: import("@tanstack/react-query").RefetchOptions) => Promise<import("@tanstack/react-query").QueryObserverResult<import("../client/index.js").DataResponse<OutputOf<Operations[Name]>, InputOf<Operations[Name]>>, Error>>;
73
+ refetch: (options?: import("@tanstack/react-query").RefetchOptions) => Promise<import("@tanstack/react-query").QueryObserverResult<import("../client/data-client.js").DataResponse<OutputOf<Operations[Name]>, InputOf<Operations[Name]>>, Error>>;
73
74
  fetchStatus: import("@tanstack/react-query").FetchStatus;
74
75
  data: undefined;
75
76
  error: null;
@@ -98,7 +99,7 @@ export declare function createDataHooks<Operations extends DataOperations>(clien
98
99
  isRefetching: boolean;
99
100
  isStale: boolean;
100
101
  isEnabled: boolean;
101
- refetch: (options?: import("@tanstack/react-query").RefetchOptions) => Promise<import("@tanstack/react-query").QueryObserverResult<import("../client/index.js").DataResponse<OutputOf<Operations[Name]>, InputOf<Operations[Name]>>, Error>>;
102
+ refetch: (options?: import("@tanstack/react-query").RefetchOptions) => Promise<import("@tanstack/react-query").QueryObserverResult<import("../client/data-client.js").DataResponse<OutputOf<Operations[Name]>, InputOf<Operations[Name]>>, Error>>;
102
103
  fetchStatus: import("@tanstack/react-query").FetchStatus;
103
104
  data: undefined;
104
105
  error: null;
@@ -125,9 +126,9 @@ export declare function createDataHooks<Operations extends DataOperations>(clien
125
126
  isRefetching: boolean;
126
127
  isStale: boolean;
127
128
  isEnabled: boolean;
128
- refetch: (options?: import("@tanstack/react-query").RefetchOptions) => Promise<import("@tanstack/react-query").QueryObserverResult<import("../client/index.js").DataResponse<OutputOf<Operations[Name]>, InputOf<Operations[Name]>>, Error>>;
129
+ refetch: (options?: import("@tanstack/react-query").RefetchOptions) => Promise<import("@tanstack/react-query").QueryObserverResult<import("../client/data-client.js").DataResponse<OutputOf<Operations[Name]>, InputOf<Operations[Name]>>, Error>>;
129
130
  fetchStatus: import("@tanstack/react-query").FetchStatus;
130
- data: import("../client/index.js").DataResponse<OutputOf<Operations[Name]>, InputOf<Operations[Name]>>;
131
+ data: import("../client/data-client.js").DataResponse<OutputOf<Operations[Name]>, InputOf<Operations[Name]>>;
131
132
  isError: false;
132
133
  error: null;
133
134
  isPending: false;
@@ -153,9 +154,9 @@ export declare function createDataHooks<Operations extends DataOperations>(clien
153
154
  isRefetching: boolean;
154
155
  isStale: boolean;
155
156
  isEnabled: boolean;
156
- refetch: (options?: import("@tanstack/react-query").RefetchOptions) => Promise<import("@tanstack/react-query").QueryObserverResult<import("../client/index.js").DataResponse<OutputOf<Operations[Name]>, InputOf<Operations[Name]>>, Error>>;
157
+ refetch: (options?: import("@tanstack/react-query").RefetchOptions) => Promise<import("@tanstack/react-query").QueryObserverResult<import("../client/data-client.js").DataResponse<OutputOf<Operations[Name]>, InputOf<Operations[Name]>>, Error>>;
157
158
  fetchStatus: import("@tanstack/react-query").FetchStatus;
158
- data: import("../client/index.js").DataResponse<OutputOf<Operations[Name]>, InputOf<Operations[Name]>>;
159
+ data: import("../client/data-client.js").DataResponse<OutputOf<Operations[Name]>, InputOf<Operations[Name]>>;
159
160
  error: Error;
160
161
  isError: true;
161
162
  isPending: false;
@@ -181,9 +182,9 @@ export declare function createDataHooks<Operations extends DataOperations>(clien
181
182
  isRefetching: boolean;
182
183
  isStale: boolean;
183
184
  isEnabled: boolean;
184
- refetch: (options?: import("@tanstack/react-query").RefetchOptions) => Promise<import("@tanstack/react-query").QueryObserverResult<import("../client/index.js").DataResponse<OutputOf<Operations[Name]>, InputOf<Operations[Name]>>, Error>>;
185
+ refetch: (options?: import("@tanstack/react-query").RefetchOptions) => Promise<import("@tanstack/react-query").QueryObserverResult<import("../client/data-client.js").DataResponse<OutputOf<Operations[Name]>, InputOf<Operations[Name]>>, Error>>;
185
186
  fetchStatus: import("@tanstack/react-query").FetchStatus;
186
- data: import("../client/index.js").DataResponse<OutputOf<Operations[Name]>, InputOf<Operations[Name]>>;
187
+ data: import("../client/data-client.js").DataResponse<OutputOf<Operations[Name]>, InputOf<Operations[Name]>>;
187
188
  error: null;
188
189
  isError: false;
189
190
  isPending: false;
@@ -220,7 +221,7 @@ export declare function createDataHooks<Operations extends DataOperations>(clien
220
221
  isRefetching: boolean;
221
222
  isStale: boolean;
222
223
  isEnabled: boolean;
223
- refetch: (options?: import("@tanstack/react-query").RefetchOptions) => Promise<import("@tanstack/react-query").QueryObserverResult<import("../client/index.js").DataResponse<OutputOf<Operations[Name]>, InputOf<Operations[Name]>>, Error>>;
224
+ refetch: (options?: import("@tanstack/react-query").RefetchOptions) => Promise<import("@tanstack/react-query").QueryObserverResult<import("../client/data-client.js").DataResponse<OutputOf<Operations[Name]>, InputOf<Operations[Name]>>, Error>>;
224
225
  fetchStatus: import("@tanstack/react-query").FetchStatus;
225
226
  data: undefined;
226
227
  error: Error;
@@ -236,8 +237,8 @@ export declare function createDataHooks<Operations extends DataOperations>(clien
236
237
  cancel(this: void): Promise<void>;
237
238
  view: import("../core/data-view.js").DataView<OutputOf<Operations[Name]>, InputOf<Operations[Name]>>;
238
239
  snapshot: import("../core/data-view.js").DisplayedSnapshot<OutputOf<Operations[Name]>, InputOf<Operations[Name]>> | undefined;
239
- response: import("../client/index.js").DataResponse<OutputOf<Operations[Name]>, InputOf<Operations[Name]>> | undefined;
240
- queries: import("../core/contract.js").DisclosedQuery[] | undefined;
240
+ response: import("../client/data-client.js").DataResponse<OutputOf<Operations[Name]>, InputOf<Operations[Name]>> | undefined;
241
+ queries: import("../core/operation-types.js").DisclosedQuery[] | undefined;
241
242
  refresh: {
242
243
  refreshing: boolean;
243
244
  onRefresh(): undefined;
@@ -257,7 +258,7 @@ export declare function createDataHooks<Operations extends DataOperations>(clien
257
258
  isRefetching: boolean;
258
259
  isStale: boolean;
259
260
  isEnabled: boolean;
260
- refetch: (options?: import("@tanstack/react-query").RefetchOptions) => Promise<import("@tanstack/react-query").QueryObserverResult<import("../client/index.js").DataResponse<OutputOf<Operations[Name]>, InputOf<Operations[Name]>>, Error>>;
261
+ refetch: (options?: import("@tanstack/react-query").RefetchOptions) => Promise<import("@tanstack/react-query").QueryObserverResult<import("../client/data-client.js").DataResponse<OutputOf<Operations[Name]>, InputOf<Operations[Name]>>, Error>>;
261
262
  fetchStatus: import("@tanstack/react-query").FetchStatus;
262
263
  data: undefined;
263
264
  error: null;
@@ -273,8 +274,8 @@ export declare function createDataHooks<Operations extends DataOperations>(clien
273
274
  cancel(this: void): Promise<void>;
274
275
  view: import("../core/data-view.js").DataView<OutputOf<Operations[Name]>, InputOf<Operations[Name]>>;
275
276
  snapshot: import("../core/data-view.js").DisplayedSnapshot<OutputOf<Operations[Name]>, InputOf<Operations[Name]>> | undefined;
276
- response: import("../client/index.js").DataResponse<OutputOf<Operations[Name]>, InputOf<Operations[Name]>> | undefined;
277
- queries: import("../core/contract.js").DisclosedQuery[] | undefined;
277
+ response: import("../client/data-client.js").DataResponse<OutputOf<Operations[Name]>, InputOf<Operations[Name]>> | undefined;
278
+ queries: import("../core/operation-types.js").DisclosedQuery[] | undefined;
278
279
  refresh: {
279
280
  refreshing: boolean;
280
281
  onRefresh(): undefined;
@@ -295,7 +296,7 @@ export declare function createDataHooks<Operations extends DataOperations>(clien
295
296
  isRefetching: boolean;
296
297
  isStale: boolean;
297
298
  isEnabled: boolean;
298
- refetch: (options?: import("@tanstack/react-query").RefetchOptions) => Promise<import("@tanstack/react-query").QueryObserverResult<import("../client/index.js").DataResponse<OutputOf<Operations[Name]>, InputOf<Operations[Name]>>, Error>>;
299
+ refetch: (options?: import("@tanstack/react-query").RefetchOptions) => Promise<import("@tanstack/react-query").QueryObserverResult<import("../client/data-client.js").DataResponse<OutputOf<Operations[Name]>, InputOf<Operations[Name]>>, Error>>;
299
300
  fetchStatus: import("@tanstack/react-query").FetchStatus;
300
301
  data: undefined;
301
302
  error: null;
@@ -310,8 +311,8 @@ export declare function createDataHooks<Operations extends DataOperations>(clien
310
311
  cancel(this: void): Promise<void>;
311
312
  view: import("../core/data-view.js").DataView<OutputOf<Operations[Name]>, InputOf<Operations[Name]>>;
312
313
  snapshot: import("../core/data-view.js").DisplayedSnapshot<OutputOf<Operations[Name]>, InputOf<Operations[Name]>> | undefined;
313
- response: import("../client/index.js").DataResponse<OutputOf<Operations[Name]>, InputOf<Operations[Name]>> | undefined;
314
- queries: import("../core/contract.js").DisclosedQuery[] | undefined;
314
+ response: import("../client/data-client.js").DataResponse<OutputOf<Operations[Name]>, InputOf<Operations[Name]>> | undefined;
315
+ queries: import("../core/operation-types.js").DisclosedQuery[] | undefined;
315
316
  refresh: {
316
317
  refreshing: boolean;
317
318
  onRefresh(): undefined;
@@ -331,9 +332,9 @@ export declare function createDataHooks<Operations extends DataOperations>(clien
331
332
  isRefetching: boolean;
332
333
  isStale: boolean;
333
334
  isEnabled: boolean;
334
- refetch: (options?: import("@tanstack/react-query").RefetchOptions) => Promise<import("@tanstack/react-query").QueryObserverResult<import("../client/index.js").DataResponse<OutputOf<Operations[Name]>, InputOf<Operations[Name]>>, Error>>;
335
+ refetch: (options?: import("@tanstack/react-query").RefetchOptions) => Promise<import("@tanstack/react-query").QueryObserverResult<import("../client/data-client.js").DataResponse<OutputOf<Operations[Name]>, InputOf<Operations[Name]>>, Error>>;
335
336
  fetchStatus: import("@tanstack/react-query").FetchStatus;
336
- data: import("../client/index.js").DataResponse<OutputOf<Operations[Name]>, InputOf<Operations[Name]>>;
337
+ data: import("../client/data-client.js").DataResponse<OutputOf<Operations[Name]>, InputOf<Operations[Name]>>;
337
338
  isError: false;
338
339
  error: null;
339
340
  isPending: false;
@@ -347,8 +348,8 @@ export declare function createDataHooks<Operations extends DataOperations>(clien
347
348
  cancel(this: void): Promise<void>;
348
349
  view: import("../core/data-view.js").DataView<OutputOf<Operations[Name]>, InputOf<Operations[Name]>>;
349
350
  snapshot: import("../core/data-view.js").DisplayedSnapshot<OutputOf<Operations[Name]>, InputOf<Operations[Name]>> | undefined;
350
- response: import("../client/index.js").DataResponse<OutputOf<Operations[Name]>, InputOf<Operations[Name]>> | undefined;
351
- queries: import("../core/contract.js").DisclosedQuery[] | undefined;
351
+ response: import("../client/data-client.js").DataResponse<OutputOf<Operations[Name]>, InputOf<Operations[Name]>> | undefined;
352
+ queries: import("../core/operation-types.js").DisclosedQuery[] | undefined;
352
353
  refresh: {
353
354
  refreshing: boolean;
354
355
  onRefresh(): undefined;
@@ -368,9 +369,9 @@ export declare function createDataHooks<Operations extends DataOperations>(clien
368
369
  isRefetching: boolean;
369
370
  isStale: boolean;
370
371
  isEnabled: boolean;
371
- refetch: (options?: import("@tanstack/react-query").RefetchOptions) => Promise<import("@tanstack/react-query").QueryObserverResult<import("../client/index.js").DataResponse<OutputOf<Operations[Name]>, InputOf<Operations[Name]>>, Error>>;
372
+ refetch: (options?: import("@tanstack/react-query").RefetchOptions) => Promise<import("@tanstack/react-query").QueryObserverResult<import("../client/data-client.js").DataResponse<OutputOf<Operations[Name]>, InputOf<Operations[Name]>>, Error>>;
372
373
  fetchStatus: import("@tanstack/react-query").FetchStatus;
373
- data: import("../client/index.js").DataResponse<OutputOf<Operations[Name]>, InputOf<Operations[Name]>>;
374
+ data: import("../client/data-client.js").DataResponse<OutputOf<Operations[Name]>, InputOf<Operations[Name]>>;
374
375
  error: Error;
375
376
  isError: true;
376
377
  isPending: false;
@@ -384,8 +385,8 @@ export declare function createDataHooks<Operations extends DataOperations>(clien
384
385
  cancel(this: void): Promise<void>;
385
386
  view: import("../core/data-view.js").DataView<OutputOf<Operations[Name]>, InputOf<Operations[Name]>>;
386
387
  snapshot: import("../core/data-view.js").DisplayedSnapshot<OutputOf<Operations[Name]>, InputOf<Operations[Name]>> | undefined;
387
- response: import("../client/index.js").DataResponse<OutputOf<Operations[Name]>, InputOf<Operations[Name]>> | undefined;
388
- queries: import("../core/contract.js").DisclosedQuery[] | undefined;
388
+ response: import("../client/data-client.js").DataResponse<OutputOf<Operations[Name]>, InputOf<Operations[Name]>> | undefined;
389
+ queries: import("../core/operation-types.js").DisclosedQuery[] | undefined;
389
390
  refresh: {
390
391
  refreshing: boolean;
391
392
  onRefresh(): undefined;
@@ -405,9 +406,9 @@ export declare function createDataHooks<Operations extends DataOperations>(clien
405
406
  isRefetching: boolean;
406
407
  isStale: boolean;
407
408
  isEnabled: boolean;
408
- refetch: (options?: import("@tanstack/react-query").RefetchOptions) => Promise<import("@tanstack/react-query").QueryObserverResult<import("../client/index.js").DataResponse<OutputOf<Operations[Name]>, InputOf<Operations[Name]>>, Error>>;
409
+ refetch: (options?: import("@tanstack/react-query").RefetchOptions) => Promise<import("@tanstack/react-query").QueryObserverResult<import("../client/data-client.js").DataResponse<OutputOf<Operations[Name]>, InputOf<Operations[Name]>>, Error>>;
409
410
  fetchStatus: import("@tanstack/react-query").FetchStatus;
410
- data: import("../client/index.js").DataResponse<OutputOf<Operations[Name]>, InputOf<Operations[Name]>>;
411
+ data: import("../client/data-client.js").DataResponse<OutputOf<Operations[Name]>, InputOf<Operations[Name]>>;
411
412
  error: null;
412
413
  isError: false;
413
414
  isPending: false;
@@ -421,8 +422,8 @@ export declare function createDataHooks<Operations extends DataOperations>(clien
421
422
  cancel(this: void): Promise<void>;
422
423
  view: import("../core/data-view.js").DataView<OutputOf<Operations[Name]>, InputOf<Operations[Name]>>;
423
424
  snapshot: import("../core/data-view.js").DisplayedSnapshot<OutputOf<Operations[Name]>, InputOf<Operations[Name]>> | undefined;
424
- response: import("../client/index.js").DataResponse<OutputOf<Operations[Name]>, InputOf<Operations[Name]>> | undefined;
425
- queries: import("../core/contract.js").DisclosedQuery[] | undefined;
425
+ response: import("../client/data-client.js").DataResponse<OutputOf<Operations[Name]>, InputOf<Operations[Name]>> | undefined;
426
+ queries: import("../core/operation-types.js").DisclosedQuery[] | undefined;
426
427
  refresh: {
427
428
  refreshing: boolean;
428
429
  onRefresh(): undefined;
@@ -434,7 +435,7 @@ export declare function createDataHooks<Operations extends DataOperations>(clien
434
435
  input: (values: ResolvedVariables<Variables>) => InputOf<Operations[Name]>;
435
436
  bindings?: Partial<{ [Key in keyof Variables]: (input: InputOf<Operations[Name]>) => ResolvedVariables<Variables>[Key]; }> | undefined;
436
437
  isEmpty: (data: OutputOf<Operations[Name]>) => boolean;
437
- empty: Pick<EmptyStateProps, 'title' | 'description'>;
438
+ empty: EmptyContent;
438
439
  date: import("./view.js").ViewDate<Variables, InputOf<Operations[Name]>>;
439
440
  variables: Variables;
440
441
  describeInput: (input: InputOf<Operations[Name]>) => string;
@@ -447,7 +448,7 @@ export declare function createDataHooks<Operations extends DataOperations>(clien
447
448
  input: (values: ResolvedVariables<Variables>) => InputOf<Operations[Name]>;
448
449
  bindings?: Partial<{ [Key in keyof Variables]: (input: InputOf<Operations[Name]>) => ResolvedVariables<Variables>[Key]; }> | undefined;
449
450
  isEmpty: (data: OutputOf<Operations[Name]>) => boolean;
450
- empty: Pick<EmptyStateProps, 'title' | 'description'>;
451
+ empty: EmptyContent;
451
452
  date?: never;
452
453
  variables: Variables;
453
454
  describeInput: (input: InputOf<Operations[Name]>) => string;
@@ -466,7 +467,7 @@ export declare function createDataHooks<Operations extends DataOperations>(clien
466
467
  period: ReturnType<typeof dateRangeVariable>;
467
468
  } & NoInfer<Additional>, InputOf<Operations[Name]>>;
468
469
  isEmpty: (data: OutputOf<Operations[Name]>) => boolean;
469
- empty: Pick<EmptyStateProps, 'title' | 'description'>;
470
+ empty: EmptyContent;
470
471
  } & TimeInputMapping<NoInfer<Additional>, InputOf<Operations[Name]>>) => {
471
472
  operation: Name;
472
473
  input: (values: ResolvedVariables<{
@@ -476,7 +477,7 @@ export declare function createDataHooks<Operations extends DataOperations>(clien
476
477
  period: import("../core/variables.js").DateRangeVariable;
477
478
  } & Additional extends infer T extends VariableCollection ? { [Key in keyof T]: (input: Input) => ResolvedVariables<T>[Key]; } : never> | undefined;
478
479
  isEmpty: (data: OutputOf<Operations[Name]>) => boolean;
479
- empty: Pick<EmptyStateProps, 'title' | 'description'>;
480
+ empty: EmptyContent;
480
481
  date: import("./view.js").ViewDate<{
481
482
  period: import("../core/variables.js").DateRangeVariable;
482
483
  } & Additional, InputOf<Operations[Name]>>;
@@ -497,7 +498,7 @@ export declare function createDataHooks<Operations extends DataOperations>(clien
497
498
  period: import("../core/variables.js").DateRangeVariable;
498
499
  } & Additional extends infer T extends VariableCollection ? { [Key in keyof T]: (input: Input) => ResolvedVariables<T>[Key]; } : never> | undefined;
499
500
  isEmpty: (data: OutputOf<Operations[Name]>) => boolean;
500
- empty: Pick<EmptyStateProps, 'title' | 'description'>;
501
+ empty: EmptyContent;
501
502
  date?: never;
502
503
  variables: {
503
504
  period: import("../core/variables.js").DateRangeVariable;
@@ -541,17 +542,17 @@ export declare function createDataHooks<Operations extends DataOperations>(clien
541
542
  status: 'error';
542
543
  /** Abort the current request and restore its prior query state. */
543
544
  cancel(this: void): Promise<void>;
544
- response: import("../client/index.js").DataResponse<OutputOf<Operations[Name]>, InputOf<Operations[Name]>> | undefined;
545
+ response: import("../client/data-client.js").DataResponse<OutputOf<Operations[Name]>, InputOf<Operations[Name]>> | undefined;
545
546
  view: import("../core/data-view.js").DataView<OutputOf<Operations[Name]>, InputOf<Operations[Name]>>;
546
547
  snapshot: import("../core/data-view.js").DisplayedSnapshot<OutputOf<Operations[Name]>, InputOf<Operations[Name]>> | undefined;
547
- refetch: (options?: import("@tanstack/react-query").RefetchOptions) => Promise<import("@tanstack/react-query").QueryObserverResult<import("../client/index.js").DataResponse<OutputOf<Operations[Name]>, InputOf<Operations[Name]>>, Error>>;
548
+ refetch: (options?: import("@tanstack/react-query").RefetchOptions) => Promise<import("@tanstack/react-query").QueryObserverResult<import("../client/data-client.js").DataResponse<OutputOf<Operations[Name]>, InputOf<Operations[Name]>>, Error>>;
548
549
  refresh: {
549
550
  refreshing: boolean;
550
551
  onRefresh(): undefined;
551
552
  onCancel: (this: void) => Promise<void>;
552
553
  };
553
- queries: import("../core/contract.js").DisclosedQuery[] | undefined;
554
- empty: Pick<EmptyStateProps, "description" | "title">;
554
+ queries: import("../core/operation-types.js").DisclosedQuery[] | undefined;
555
+ empty: EmptyContent;
555
556
  controls: ReactNode[] | null;
556
557
  variables: {
557
558
  values: import("../core/variables.js").AppVariableValues<Variables>;
@@ -593,17 +594,17 @@ export declare function createDataHooks<Operations extends DataOperations>(clien
593
594
  status: 'pending';
594
595
  /** Abort the current request and restore its prior query state. */
595
596
  cancel(this: void): Promise<void>;
596
- response: import("../client/index.js").DataResponse<OutputOf<Operations[Name]>, InputOf<Operations[Name]>> | undefined;
597
+ response: import("../client/data-client.js").DataResponse<OutputOf<Operations[Name]>, InputOf<Operations[Name]>> | undefined;
597
598
  view: import("../core/data-view.js").DataView<OutputOf<Operations[Name]>, InputOf<Operations[Name]>>;
598
599
  snapshot: import("../core/data-view.js").DisplayedSnapshot<OutputOf<Operations[Name]>, InputOf<Operations[Name]>> | undefined;
599
- refetch: (options?: import("@tanstack/react-query").RefetchOptions) => Promise<import("@tanstack/react-query").QueryObserverResult<import("../client/index.js").DataResponse<OutputOf<Operations[Name]>, InputOf<Operations[Name]>>, Error>>;
600
+ refetch: (options?: import("@tanstack/react-query").RefetchOptions) => Promise<import("@tanstack/react-query").QueryObserverResult<import("../client/data-client.js").DataResponse<OutputOf<Operations[Name]>, InputOf<Operations[Name]>>, Error>>;
600
601
  refresh: {
601
602
  refreshing: boolean;
602
603
  onRefresh(): undefined;
603
604
  onCancel: (this: void) => Promise<void>;
604
605
  };
605
- queries: import("../core/contract.js").DisclosedQuery[] | undefined;
606
- empty: Pick<EmptyStateProps, "description" | "title">;
606
+ queries: import("../core/operation-types.js").DisclosedQuery[] | undefined;
607
+ empty: EmptyContent;
607
608
  controls: ReactNode[] | null;
608
609
  variables: {
609
610
  values: import("../core/variables.js").AppVariableValues<Variables>;
@@ -645,17 +646,17 @@ export declare function createDataHooks<Operations extends DataOperations>(clien
645
646
  status: 'pending';
646
647
  /** Abort the current request and restore its prior query state. */
647
648
  cancel(this: void): Promise<void>;
648
- response: import("../client/index.js").DataResponse<OutputOf<Operations[Name]>, InputOf<Operations[Name]>> | undefined;
649
+ response: import("../client/data-client.js").DataResponse<OutputOf<Operations[Name]>, InputOf<Operations[Name]>> | undefined;
649
650
  view: import("../core/data-view.js").DataView<OutputOf<Operations[Name]>, InputOf<Operations[Name]>>;
650
651
  snapshot: import("../core/data-view.js").DisplayedSnapshot<OutputOf<Operations[Name]>, InputOf<Operations[Name]>> | undefined;
651
- refetch: (options?: import("@tanstack/react-query").RefetchOptions) => Promise<import("@tanstack/react-query").QueryObserverResult<import("../client/index.js").DataResponse<OutputOf<Operations[Name]>, InputOf<Operations[Name]>>, Error>>;
652
+ refetch: (options?: import("@tanstack/react-query").RefetchOptions) => Promise<import("@tanstack/react-query").QueryObserverResult<import("../client/data-client.js").DataResponse<OutputOf<Operations[Name]>, InputOf<Operations[Name]>>, Error>>;
652
653
  refresh: {
653
654
  refreshing: boolean;
654
655
  onRefresh(): undefined;
655
656
  onCancel: (this: void) => Promise<void>;
656
657
  };
657
- queries: import("../core/contract.js").DisclosedQuery[] | undefined;
658
- empty: Pick<EmptyStateProps, "description" | "title">;
658
+ queries: import("../core/operation-types.js").DisclosedQuery[] | undefined;
659
+ empty: EmptyContent;
659
660
  controls: ReactNode[] | null;
660
661
  variables: {
661
662
  values: import("../core/variables.js").AppVariableValues<Variables>;
@@ -685,7 +686,7 @@ export declare function createDataHooks<Operations extends DataOperations>(clien
685
686
  isStale: boolean;
686
687
  isEnabled: boolean;
687
688
  fetchStatus: import("@tanstack/react-query").FetchStatus;
688
- data: import("../client/index.js").DataResponse<OutputOf<Operations[Name]>, InputOf<Operations[Name]>>;
689
+ data: import("../client/data-client.js").DataResponse<OutputOf<Operations[Name]>, InputOf<Operations[Name]>>;
689
690
  isError: false;
690
691
  error: null;
691
692
  isPending: false;
@@ -697,17 +698,17 @@ export declare function createDataHooks<Operations extends DataOperations>(clien
697
698
  status: 'success';
698
699
  /** Abort the current request and restore its prior query state. */
699
700
  cancel(this: void): Promise<void>;
700
- response: import("../client/index.js").DataResponse<OutputOf<Operations[Name]>, InputOf<Operations[Name]>> | undefined;
701
+ response: import("../client/data-client.js").DataResponse<OutputOf<Operations[Name]>, InputOf<Operations[Name]>> | undefined;
701
702
  view: import("../core/data-view.js").DataView<OutputOf<Operations[Name]>, InputOf<Operations[Name]>>;
702
703
  snapshot: import("../core/data-view.js").DisplayedSnapshot<OutputOf<Operations[Name]>, InputOf<Operations[Name]>> | undefined;
703
- refetch: (options?: import("@tanstack/react-query").RefetchOptions) => Promise<import("@tanstack/react-query").QueryObserverResult<import("../client/index.js").DataResponse<OutputOf<Operations[Name]>, InputOf<Operations[Name]>>, Error>>;
704
+ refetch: (options?: import("@tanstack/react-query").RefetchOptions) => Promise<import("@tanstack/react-query").QueryObserverResult<import("../client/data-client.js").DataResponse<OutputOf<Operations[Name]>, InputOf<Operations[Name]>>, Error>>;
704
705
  refresh: {
705
706
  refreshing: boolean;
706
707
  onRefresh(): undefined;
707
708
  onCancel: (this: void) => Promise<void>;
708
709
  };
709
- queries: import("../core/contract.js").DisclosedQuery[] | undefined;
710
- empty: Pick<EmptyStateProps, "description" | "title">;
710
+ queries: import("../core/operation-types.js").DisclosedQuery[] | undefined;
711
+ empty: EmptyContent;
711
712
  controls: ReactNode[] | null;
712
713
  variables: {
713
714
  values: import("../core/variables.js").AppVariableValues<Variables>;
@@ -737,7 +738,7 @@ export declare function createDataHooks<Operations extends DataOperations>(clien
737
738
  isStale: boolean;
738
739
  isEnabled: boolean;
739
740
  fetchStatus: import("@tanstack/react-query").FetchStatus;
740
- data: import("../client/index.js").DataResponse<OutputOf<Operations[Name]>, InputOf<Operations[Name]>>;
741
+ data: import("../client/data-client.js").DataResponse<OutputOf<Operations[Name]>, InputOf<Operations[Name]>>;
741
742
  error: Error;
742
743
  isError: true;
743
744
  isPending: false;
@@ -749,17 +750,17 @@ export declare function createDataHooks<Operations extends DataOperations>(clien
749
750
  status: 'error';
750
751
  /** Abort the current request and restore its prior query state. */
751
752
  cancel(this: void): Promise<void>;
752
- response: import("../client/index.js").DataResponse<OutputOf<Operations[Name]>, InputOf<Operations[Name]>> | undefined;
753
+ response: import("../client/data-client.js").DataResponse<OutputOf<Operations[Name]>, InputOf<Operations[Name]>> | undefined;
753
754
  view: import("../core/data-view.js").DataView<OutputOf<Operations[Name]>, InputOf<Operations[Name]>>;
754
755
  snapshot: import("../core/data-view.js").DisplayedSnapshot<OutputOf<Operations[Name]>, InputOf<Operations[Name]>> | undefined;
755
- refetch: (options?: import("@tanstack/react-query").RefetchOptions) => Promise<import("@tanstack/react-query").QueryObserverResult<import("../client/index.js").DataResponse<OutputOf<Operations[Name]>, InputOf<Operations[Name]>>, Error>>;
756
+ refetch: (options?: import("@tanstack/react-query").RefetchOptions) => Promise<import("@tanstack/react-query").QueryObserverResult<import("../client/data-client.js").DataResponse<OutputOf<Operations[Name]>, InputOf<Operations[Name]>>, Error>>;
756
757
  refresh: {
757
758
  refreshing: boolean;
758
759
  onRefresh(): undefined;
759
760
  onCancel: (this: void) => Promise<void>;
760
761
  };
761
- queries: import("../core/contract.js").DisclosedQuery[] | undefined;
762
- empty: Pick<EmptyStateProps, "description" | "title">;
762
+ queries: import("../core/operation-types.js").DisclosedQuery[] | undefined;
763
+ empty: EmptyContent;
763
764
  controls: ReactNode[] | null;
764
765
  variables: {
765
766
  values: import("../core/variables.js").AppVariableValues<Variables>;
@@ -789,7 +790,7 @@ export declare function createDataHooks<Operations extends DataOperations>(clien
789
790
  isStale: boolean;
790
791
  isEnabled: boolean;
791
792
  fetchStatus: import("@tanstack/react-query").FetchStatus;
792
- data: import("../client/index.js").DataResponse<OutputOf<Operations[Name]>, InputOf<Operations[Name]>>;
793
+ data: import("../client/data-client.js").DataResponse<OutputOf<Operations[Name]>, InputOf<Operations[Name]>>;
793
794
  error: null;
794
795
  isError: false;
795
796
  isPending: false;
@@ -801,17 +802,17 @@ export declare function createDataHooks<Operations extends DataOperations>(clien
801
802
  status: 'success';
802
803
  /** Abort the current request and restore its prior query state. */
803
804
  cancel(this: void): Promise<void>;
804
- response: import("../client/index.js").DataResponse<OutputOf<Operations[Name]>, InputOf<Operations[Name]>> | undefined;
805
+ response: import("../client/data-client.js").DataResponse<OutputOf<Operations[Name]>, InputOf<Operations[Name]>> | undefined;
805
806
  view: import("../core/data-view.js").DataView<OutputOf<Operations[Name]>, InputOf<Operations[Name]>>;
806
807
  snapshot: import("../core/data-view.js").DisplayedSnapshot<OutputOf<Operations[Name]>, InputOf<Operations[Name]>> | undefined;
807
- refetch: (options?: import("@tanstack/react-query").RefetchOptions) => Promise<import("@tanstack/react-query").QueryObserverResult<import("../client/index.js").DataResponse<OutputOf<Operations[Name]>, InputOf<Operations[Name]>>, Error>>;
808
+ refetch: (options?: import("@tanstack/react-query").RefetchOptions) => Promise<import("@tanstack/react-query").QueryObserverResult<import("../client/data-client.js").DataResponse<OutputOf<Operations[Name]>, InputOf<Operations[Name]>>, Error>>;
808
809
  refresh: {
809
810
  refreshing: boolean;
810
811
  onRefresh(): undefined;
811
812
  onCancel: (this: void) => Promise<void>;
812
813
  };
813
- queries: import("../core/contract.js").DisclosedQuery[] | undefined;
814
- empty: Pick<EmptyStateProps, "description" | "title">;
814
+ queries: import("../core/operation-types.js").DisclosedQuery[] | undefined;
815
+ empty: EmptyContent;
815
816
  controls: ReactNode[] | null;
816
817
  variables: {
817
818
  values: import("../core/variables.js").AppVariableValues<Variables>;
@@ -1,11 +1,144 @@
1
1
  /**
2
- * React bindings and UI; load the stylesheet separately in the browser entry.
2
+ * React bindings and UI; inject styles explicitly in the browser entry.
3
3
  * @module @altertable/data-app/react
4
4
  * @see https://github.com/altertable-ai/data-app/blob/main/docs/react.md
5
5
  */
6
+ export { injectDataAppStyles } from './styles.js';
7
+ export { injectDataAppShellStyles } from './shellStyles.js';
8
+ export type { DataAppStylesOptions } from './styles.js';
6
9
  export { mountDataApp, DataAppProvider } from './mount.js';
7
10
  export { createDataHooks } from './hooks.js';
8
11
  export { defineDataContent } from './content.js';
9
12
  export type { DataContentState } from './content.js';
10
13
  export type { DataViewDefinition, ResolvedVariables, ViewBindings, } from './view.js';
11
- export * from './ui/index.js';
14
+ export { DataApp } from './ui/DataApp.js';
15
+ export type { DataAppProps, DataAppRequest } from './ui/DataApp.js';
16
+ export { GettingStarted } from './ui/GettingStarted.js';
17
+ export { AppLayout } from './ui/AppLayout.js';
18
+ export type { AppLayoutProps } from './ui/AppLayout.js';
19
+ export { AppHeader } from './ui/AppHeader.js';
20
+ export type { AppHeaderProps } from './ui/AppHeader.js';
21
+ export { AppScope } from './ui/AppScope.js';
22
+ export type { AppScopeProps } from './ui/AppScope.js';
23
+ export { AppToolbar } from './ui/AppToolbar.js';
24
+ export type { AppToolbarProps } from './ui/AppToolbar.js';
25
+ export { VariableBar } from './ui/VariableBar.js';
26
+ export type { VariableBarProps } from './ui/VariableBar.js';
27
+ export { AppFooter } from './ui/AppFooter.js';
28
+ export type { AppFooterProps } from './ui/AppFooter.js';
29
+ export { ThemeSelector, ThemeToggle } from './ui/ThemeSelector.js';
30
+ export type { ThemeSelectorProps } from './ui/ThemeSelector.js';
31
+ export { Stack } from './ui/Stack.js';
32
+ export type { StackProps } from './ui/Stack.js';
33
+ export { Grid } from './ui/Grid.js';
34
+ export type { GridProps } from './ui/Grid.js';
35
+ export { GridItem } from './ui/GridItem.js';
36
+ export type { GridItemProps } from './ui/GridItem.js';
37
+ export type { WidgetEvidence } from './ui/WidgetEvidence.js';
38
+ export { DataWidget } from './ui/DataWidget.js';
39
+ export type { WidgetStatus } from './ui/RequestHint.js';
40
+ export type { DataWidgetProps } from './ui/DataWidget.js';
41
+ export { TextContent } from './ui/TextContent.js';
42
+ export type { TextContentProps } from './ui/TextContent.js';
43
+ export { TextWidget } from './ui/TextWidget.js';
44
+ export type { TextWidgetProps } from './ui/TextWidget.js';
45
+ export { VisualizationWidget } from './ui/VisualizationWidget.js';
46
+ export type { VisualizationWidgetProps, VisualizationWidgetView, } from './ui/VisualizationWidget.js';
47
+ export { TableWidget } from './ui/TableWidget.js';
48
+ export type { TableWidgetColumn, TableWidgetProps, TableWidgetSearch, } from './ui/TableWidget.js';
49
+ export { chartColor } from './ui/chartColor.js';
50
+ export { Breakdown } from './ui/Breakdown.js';
51
+ export type { BreakdownItem, BreakdownProps } from './ui/Breakdown.js';
52
+ export { Ranking } from './ui/Ranking.js';
53
+ export type { RankingItem, RankingProps } from './ui/Ranking.js';
54
+ export { WidgetDisclosure } from './ui/WidgetDisclosure.js';
55
+ export type { WidgetDisclosureProps } from './ui/WidgetDisclosure.js';
56
+ export { WidgetViewTabs } from './ui/WidgetViewTabs.js';
57
+ export type { WidgetView, WidgetViewTabsProps, } from './ui/WidgetViewTabs.js';
58
+ export { ComparisonVisual } from './ui/ComparisonVisual.js';
59
+ export type { ComparisonVisualProps } from './ui/ComparisonVisual.js';
60
+ export { calendarMetricComparison } from './ui/comparison.js';
61
+ export type { MetricComparison } from './ui/comparison.js';
62
+ export { DataTable, DataTableEmptyRow, DataTableTimestamp, DataTableShare, } from './ui/DataTable.js';
63
+ export type { DataTableProps, DataTableSearch, DataTableEmptyRowProps, DataTableTimestampProps, } from './ui/DataTable.js';
64
+ export { MetricWidget } from './ui/MetricWidget.js';
65
+ export type { MetricWidgetProps } from './ui/MetricWidget.js';
66
+ export { SelectableBarChart } from './ui/SelectableBarChart.js';
67
+ export type { SelectableBarChartProps, SelectableBarItem, } from './ui/SelectableBarChart.js';
68
+ export { DimensionPicker } from './ui/DimensionPicker.js';
69
+ export { EmptyState } from './ui/EmptyState.js';
70
+ export type { EmptyStateProps } from './ui/EmptyState.js';
71
+ export { Skeleton } from './ui/Skeleton.js';
72
+ export type { SkeletonProps } from './ui/Skeleton.js';
73
+ export { DataAppSkeleton } from './ui/DataAppSkeleton.js';
74
+ export type { DataAppSkeletonProps } from './ui/DataAppSkeleton.js';
75
+ export { DataBoundary } from './ui/DataBoundary.js';
76
+ export { resolveDataView } from '../core/data-view.js';
77
+ export { displayedSnapshot } from '../core/data-view.js';
78
+ export type { DataView, DataSnapshot, DisplayedSnapshot, } from '../core/data-view.js';
79
+ export type { DataBoundaryProps } from './ui/DataBoundary.js';
80
+ export { RefreshRegion } from './ui/RefreshRegion.js';
81
+ export type { RefreshRegionProps } from './ui/RefreshRegion.js';
82
+ export { DataSection } from './ui/DataSection.js';
83
+ export type { DataSectionProps, SectionResult, } from './ui/DataSection.js';
84
+ export { StatusPanel } from './ui/StatusPanel.js';
85
+ export type { StatusPanelProps } from './ui/StatusPanel.js';
86
+ export { ContentSkeleton } from './ui/ContentSkeleton.js';
87
+ export type { ContentSkeletonProps } from './ui/ContentSkeleton.js';
88
+ export { DataViewToast } from './ui/DataViewToast.js';
89
+ export type { DataViewToastProps } from './ui/DataViewToast.js';
90
+ export { UpdatedAt } from './ui/UpdatedAt.js';
91
+ export type { UpdatedAtProps } from './ui/UpdatedAt.js';
92
+ export { DateTimeTooltip } from './ui/DateTimeTooltip.js';
93
+ export type { DateTimeTooltipProps } from './ui/DateTimeTooltip.js';
94
+ export { LiveControl } from './ui/LiveControl.js';
95
+ export type { LiveControlProps, LiveIntervalSeconds, } from './ui/LiveControl.js';
96
+ export { DateRangePicker } from './ui/DateRangePicker.js';
97
+ export type { DatePresetId, DateRange, DateRangePickerProps, } from './ui/DateRangePicker.js';
98
+ export { defineAppVariables, textVariable, selectVariable, dateRangeVariable, dateRangeControl, useAppVariables, } from './ui/variables.js';
99
+ export type { AppVariable, AppVariableValues, DateRangeSelection, DateRangeVariable, DateRangeVariableOptions, } from './ui/variables.js';
100
+ export { PeriodSummary } from './ui/PeriodSummary.js';
101
+ export type { ReportingPeriod, PeriodComparison, PeriodSummaryProps, } from './ui/PeriodSummary.js';
102
+ export { SearchField } from './ui/SearchField.js';
103
+ export type { SearchFieldProps } from './ui/SearchField.js';
104
+ export { searchItems } from './ui/searchItems.js';
105
+ export type { SearchAttribute, SearchHit, SearchItemsOptions, SearchMatchValue, SearchRange, } from './ui/searchItems.js';
106
+ export { SearchMatch } from './ui/SearchMatch.js';
107
+ export type { SearchMatchProps } from './ui/SearchMatch.js';
108
+ export { Combobox } from './ui/Combobox.js';
109
+ export type { ComboboxOption, ComboboxProps } from './ui/Combobox.js';
110
+ export { GradientScroll } from './ui/GradientScroll.js';
111
+ export type { GradientScrollProps } from './ui/GradientScroll.js';
112
+ export { searchParams, subscribeSearch, writeSearch, } from './ui/search.js';
113
+ export { Tabs, TabList, Tab, TabPanels, TabPanel, useViewTab, } from './ui/Tabs.js';
114
+ export { createDataContext, defineDataContext, evidenceFor, } from './ui/data-context.js';
115
+ export type { DataContext, GlossaryEntry } from './ui/data-context.js';
116
+ export { defineDataIdentifiers } from './ui/data-identifiers.js';
117
+ export type { DataIdentifierDefinition, TableIdentifier, ColumnIdentifier, } from './ui/data-identifiers.js';
118
+ export { GlossaryExplanation } from './ui/GlossaryExplanation.js';
119
+ export type { GlossaryExplanationProps } from './ui/GlossaryExplanation.js';
120
+ export { GlossaryDefinition } from './ui/GlossaryDefinition.js';
121
+ export type { GlossaryDefinitionProps } from './ui/GlossaryDefinition.js';
122
+ export { AboutData } from './ui/AboutData.js';
123
+ export type { AboutDataProps, AboutEmpty, AboutSubject, AboutTab, } from './ui/AboutData.js';
124
+ export { PresentStory } from './ui/PresentStory.js';
125
+ export type { PresentStoryProps } from './ui/PresentStory.js';
126
+ export type { StoryFinding, BoundStory } from './ui/story.js';
127
+ export { Checkbox } from './ui/Checkbox.js';
128
+ export type { CheckboxProps } from './ui/Checkbox.js';
129
+ export { AppIcon } from './ui/icons.js';
130
+ export type { AppIconName, AppIconProps } from './ui/icons.js';
131
+ export { IconButton } from './ui/IconButton.js';
132
+ export type { IconButtonProps } from './ui/IconButton.js';
133
+ export { Kbd } from './ui/Kbd.js';
134
+ export type { KbdProps } from './ui/Kbd.js';
135
+ export { Sheet } from './ui/Sheet.js';
136
+ export type { SheetDialogProps, SheetProps } from './ui/Sheet.js';
137
+ export { Tooltip, TooltipProvider } from './ui/Tooltip.js';
138
+ export type { TooltipProps, TooltipProviderProps, } from './ui/Tooltip.js';
139
+ export { Button } from './ui/Button.js';
140
+ export type { ButtonProps } from './ui/Button.js';
141
+ export { HelpPopover } from './ui/HelpPopover.js';
142
+ export type { HelpPopoverPanelProps, HelpPopoverProps, HelpPopoverTriggerProps, } from './ui/HelpPopover.js';
143
+ export type { MetricDefinition } from './ui/metric.js';
144
+ export type { DataReading, MetricReading, MetricValues, } from '../core/reading.js';
@@ -0,0 +1,7 @@
1
+ import type { DataAppStylesOptions } from './styles.js';
2
+ export declare function injectStyles({ name, attribute, css, options, }: {
3
+ name: string;
4
+ attribute: string;
5
+ css: string;
6
+ options: DataAppStylesOptions;
7
+ }): HTMLStyleElement;
@@ -0,0 +1,3 @@
1
+ import type { DataAppStylesOptions } from './styles.js';
2
+ /** Install shared layout, widget surface, and skeleton styles once per document, before mounting. */
3
+ export declare function injectDataAppShellStyles(options?: DataAppStylesOptions): HTMLStyleElement;
@@ -0,0 +1,8 @@
1
+ export interface DataAppStylesOptions {
2
+ /** Defaults to the current browser document. */
3
+ document?: Document;
4
+ /** Nonce permitted by the document's style-src CSP. */
5
+ nonce?: string;
6
+ }
7
+ /** Install the complete UI stylesheet once per document, before mounting. */
8
+ export declare function injectDataAppStyles(options?: DataAppStylesOptions): HTMLStyleElement;
@@ -3,7 +3,6 @@ import type { DisclosedQuery } from '../../core/contract.js';
3
3
  import type { DataContext, GlossaryEntry } from './data-context.js';
4
4
  import { type ButtonProps } from './Button.js';
5
5
  import { type SheetDialogProps } from './Sheet.js';
6
-
7
6
  export type AboutTab = 'glossary' | 'queries';
8
7
  export type AboutEmpty = {
9
8
  glossary: {
@@ -1,5 +1,4 @@
1
1
  import type { ComponentPropsWithRef, ReactNode } from 'react';
2
-
3
2
  export type AppFooterProps = ComponentPropsWithRef<'footer'> & {
4
3
  attribution?: ReactNode;
5
4
  };
@@ -1,5 +1,4 @@
1
1
  import type { ComponentPropsWithRef, ReactNode } from 'react';
2
-
3
2
  export type AppHeaderProps = {
4
3
  scope?: ReactNode;
5
4
  title: ReactNode;
@@ -1,7 +1,6 @@
1
1
  import type { ComponentProps, ComponentPropsWithRef, ReactNode } from 'react';
2
2
  import { AppFooter } from './AppFooter.js';
3
3
  import { type TooltipProviderProps } from './Tooltip.js';
4
-
5
4
  export type AppLayoutProps = {
6
5
  children: ReactNode;
7
6
  footerActions?: ReactNode;