@svgrid/enterprise 2.0.3 → 2.2.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 (50) hide show
  1. package/README.md +18 -6
  2. package/dist/cdn/svgrid-enterprise.svelte-external.js +14025 -6836
  3. package/dist/node/studio.js +7889 -2460
  4. package/package.json +9 -4
  5. package/src/SvGridMasterDetail.svelte +24 -3
  6. package/src/SvGridScheduler.svelte +4410 -0
  7. package/src/SvPivotDesigner.svelte +1990 -1045
  8. package/src/SvSchemaChart.svelte +10 -9
  9. package/src/ai.test.ts +522 -522
  10. package/src/ai.ts +202 -2
  11. package/src/index.ts +409 -384
  12. package/src/install.ts +10 -0
  13. package/src/pivot-chart.test.ts +86 -0
  14. package/src/pivot-chart.ts +112 -0
  15. package/src/scheduler.ts +37 -0
  16. package/src/scheduling.test.ts +194 -0
  17. package/src/scheduling.ts +293 -0
  18. package/src/sources/filters.ts +6 -0
  19. package/src/studio/HANDLERS-DESIGN.md +142 -0
  20. package/src/studio/cli.ts +7 -2
  21. package/src/studio/emit-project.test.ts +1447 -13
  22. package/src/studio/emit-project.ts +3995 -1273
  23. package/src/studio/emit-schema.ts +146 -29
  24. package/src/studio/index.ts +320 -195
  25. package/src/studio/project.test.ts +370 -0
  26. package/src/studio/project.ts +1146 -26
  27. package/src/studio/sample-data.ts +4 -1
  28. package/src/studio/samples/ats.ts +2 -2
  29. package/src/studio/samples/clinic.ts +4 -2
  30. package/src/studio/samples/crm.ts +16 -8
  31. package/src/studio/samples/events.ts +4 -2
  32. package/src/studio/samples/fleet.ts +4 -2
  33. package/src/studio/samples/gym.ts +4 -2
  34. package/src/studio/samples/hr.ts +3 -1
  35. package/src/studio/samples/live-data.ts +308 -308
  36. package/src/studio/samples/projects.ts +2 -2
  37. package/src/studio/samples/restaurant.ts +4 -2
  38. package/src/studio/samples/samples.test.ts +13 -5
  39. package/src/studio/samples/shared.ts +346 -305
  40. package/src/studio/samples/support.ts +3 -1
  41. package/src/studio/scaffold.test.ts +15 -1
  42. package/src/studio/scaffold.ts +16 -0
  43. package/src/studio/themes.ts +7 -0
  44. package/src/studio/ui-components.ts +472 -0
  45. package/src/sveltekit/transport.test.ts +26 -0
  46. package/src/sveltekit/transport.ts +50 -5
  47. package/dist/designer/assets/index-Dp44bTid.js +0 -939
  48. package/dist/designer/assets/index-RJp6x8tw.css +0 -1
  49. package/dist/designer/assets/jszip.min-CjMo-QGg.js +0 -2
  50. package/dist/designer/index.html +0 -13
package/src/index.ts CHANGED
@@ -1,384 +1,409 @@
1
- export {
2
- setLicenseKey,
3
- clearLicenseKey,
4
- getLicenseKey,
5
- isLicenseKeySet,
6
- hasValidLicense,
7
- assertEnterpriseLicensed,
8
- nudgeEnterprise,
9
- checkLicenseKey,
10
- type LicenseInfo,
11
- type LicenseStatus,
12
- } from './license'
13
-
14
- export {
15
- exportGrid,
16
- copyExportToClipboard,
17
- type ExportFormat,
18
- type ExportOptions,
19
- type ExportColumn,
20
- type ExportCellStyle,
21
- type ExportStyles,
22
- type ExportHeaderFooterLine,
23
- type ExportSheet,
24
- type ExportRowSource,
25
- type ExportProgress,
26
- type ExportResult,
27
- type ClipboardFormat,
28
- type ClipboardExportOptions,
29
- } from './export'
30
- export { default as SvExportMenu } from './SvExportMenu.svelte'
31
- export { buildPdfDocDefinition, type PdfExportOptions, type PdfPageSize } from './export-pdf'
32
- export { printGrid, type PrintOptions } from './print'
33
- export {
34
- importData,
35
- readImportMatrix,
36
- mapImportMatrix,
37
- mapImportMatrixAsync,
38
- autoMapColumns,
39
- inferImportColumnTypes,
40
- type ImportFormat,
41
- type ImportFieldType,
42
- type ImportOptions,
43
- type ImportResult,
44
- type ImportProgress,
45
- type ImportColumnMap,
46
- type ImportColumnTypes,
47
- type ImportGridColumn,
48
- type ImportRowError,
49
- type ImportValidator,
50
- } from './import'
51
- export { default as SvImportDialog } from './SvImportDialog.svelte'
52
- export { installEnterprise, type EnterpriseGridApi, type EnterpriseAIApi, type EnterprisePivotApi } from './install'
53
- export {
54
- createStagedEditing,
55
- type StagedChange,
56
- type StagedEditingApi,
57
- type StagedEditingEvent,
58
- } from './staged-editing'
59
- export { dismissUnlicensedNudge } from './watermark'
60
- export {
61
- showUpgradePrompt,
62
- dismissUpgradePrompt,
63
- type EnterpriseFeatureLabel,
64
- } from './upgrade-prompt'
65
-
66
- export {
67
- createPivotModel,
68
- pivotAggregators,
69
- filterCollapsedPivotRows,
70
- type PivotAggregator,
71
- type PivotAggregatorId,
72
- type PivotConfig,
73
- type PivotResult,
74
- type PivotRow,
75
- type PivotRowKind,
76
- type PivotValueConfig,
77
- } from './pivot'
78
-
79
- export {
80
- titleCase,
81
- resolveIdField,
82
- schemaToColumns,
83
- schemaToFormFields,
84
- validateField,
85
- applyComputed,
86
- validateEntity,
87
- type EntitySchema,
88
- type EntityField,
89
- type EntityFieldType,
90
- type EntityHooks,
91
- type FormFieldDescriptor,
92
- type StudioEditorType,
93
- type StandardSchemaV1,
94
- type StandardSchemaResult,
95
- type ValidationOp,
96
- type ValidationRuleSpec,
97
- } from './schema'
98
-
99
- export {
100
- planQuery,
101
- coerce,
102
- createInMemoryDataSource,
103
- createKitDataSource,
104
- createKitHandlers,
105
- createSqlDataSource,
106
- planToSql,
107
- type QueryPlan,
108
- type PlanPredicate,
109
- type PlanOp,
110
- type KitDataSourceOptions,
111
- type KitHandlerOptions,
112
- type KitHandlers,
113
- type KitMessage,
114
- type SqlDialect,
115
- type SqlPlan,
116
- type SqlExecutor,
117
- type SqlDataSourceConfig,
118
- type WritableDataSource,
119
- } from './sveltekit'
120
-
121
- export {
122
- createSupabaseDataSource,
123
- createRestDataSource,
124
- offsetLimitAdapter,
125
- dummyJsonAdapter,
126
- jsonServerAdapter,
127
- introspectSupabaseTable,
128
- createSupabaseRealtime,
129
- createRelationLookup,
130
- createSupabaseAuth,
131
- aggregateRows,
132
- chartFieldsFromSchema,
133
- normalizeFilters,
134
- buildEntitySchema,
135
- pickLabelField,
136
- linkRelationLabels,
137
- type SupabaseDataSourceConfig,
138
- type SupabaseClientLike,
139
- type RestDataSourceConfig,
140
- type RestAdapter,
141
- type OffsetLimitOptions,
142
- type IntrospectSupabaseOptions,
143
- type IntrospectedColumn,
144
- type ColumnReference,
145
- type NormalizedFilter,
146
- type NormalizedPredicate,
147
- type SupabaseRealtimeConfig,
148
- type SupabaseRealtimeClientLike,
149
- type SupabaseRealtimeHandle,
150
- type RealtimeChannelLike,
151
- type RealtimeChange,
152
- type RelationLookup,
153
- type RelationLookupConfig,
154
- type RelationOption,
155
- type SupabaseAuthConfig,
156
- type SupabaseAuthController,
157
- type SupabaseAuthClientLike,
158
- type AuthState,
159
- type AuthUser,
160
- withEntityRules,
161
- withRelationLabels,
162
- reduceValue,
163
- kpiSeries,
164
- sparklinePoints,
165
- seriesDelta,
166
- formatKpiValue,
167
- dashboardFromSchema,
168
- type AggregateReduce,
169
- type AggregateRequest,
170
- type AggregateBucket,
171
- type AggregateSource,
172
- type DashboardSpec,
173
- type DashboardWidget,
174
- type KpiWidget,
175
- type ChartWidget,
176
- type RelationLabelConfig,
177
- } from './sources'
178
-
179
- export {
180
- buildInitialValues,
181
- controlKind,
182
- editMode,
183
- rowId,
184
- toSubmitValues,
185
- validateAll,
186
- type EditMode,
187
- type ControlKind,
188
- } from './edit-panel'
189
- export { default as SvGridEditPanel } from './SvGridEditPanel.svelte'
190
- export { default as SvLookupInput } from './SvLookupInput.svelte'
191
- export { default as SvFileInput } from './SvFileInput.svelte'
192
- export { default as SvAuthGate } from './SvAuthGate.svelte'
193
- export { default as SvSchemaChart } from './SvSchemaChart.svelte'
194
- export { default as SvSchemaDashboard } from './SvSchemaDashboard.svelte'
195
- export { default as SvBoard } from './SvBoard.svelte'
196
- export { default as SvSchedule } from './SvSchedule.svelte'
197
- export { default as SvRecordDetail } from './SvRecordDetail.svelte'
198
-
199
- export {
200
- FIELD_TYPES,
201
- blankField,
202
- addField,
203
- removeField,
204
- updateField,
205
- moveField,
206
- validateSchema,
207
- isSchemaValid,
208
- sampleRows,
209
- type SchemaIssue,
210
- type SchemaIssueLevel,
211
- } from './schema-designer'
212
- // NOTE: The visual designer components (SvSchemaDesigner, SvStudioDesigner) are
213
- // the commercial "SvGrid Studio" seller. They live entirely in the PRIVATE
214
- // website repo (website/src/lib/designer), NOT in this public package - they
215
- // import the public API below. The Studio *codegen* below stays public because
216
- // the MCP server depends on it.
217
- // The Studio project model + codegen (also on the pure `@svgrid/enterprise/studio`
218
- // subpath) - re-exported so the designer and its model come from one import.
219
- export {
220
- createProject,
221
- defaultScreenFor,
222
- emitStudioProject,
223
- emitStudioAppBundle,
224
- emitStudioApp,
225
- sampleApps,
226
- getSampleApp,
227
- liveDataSamples,
228
- getLiveDataSample,
229
- type SampleApp,
230
- sanitizeStudioProject,
231
- buildStudioBugReport,
232
- type BugReport,
233
- type BugReportInput,
234
- addBlock,
235
- addBlockAt,
236
- removeBlock,
237
- moveBlock,
238
- reorderBlock,
239
- updateBlock,
240
- addScreen,
241
- removeScreen,
242
- updateScreen,
243
- duplicateScreen,
244
- reorderScreen,
245
- insertBlock,
246
- addEntity,
247
- removeEntity,
248
- updateEntity,
249
- setDataSource,
250
- defaultEntitySource,
251
- setEntityDataSource,
252
- entityDataSource,
253
- setTheme,
254
- setThemePreset,
255
- setShell,
256
- sanitizeProject,
257
- screenFromTemplate,
258
- addScreenFromTemplate,
259
- serializeProject,
260
- parseProject,
261
- blockPalette,
262
- validateProject,
263
- isProjectValid,
264
- entityOf,
265
- studioThemes,
266
- defaultStudioTheme,
267
- getStudioTheme,
268
- resolveThemeTokens,
269
- isDarkTheme,
270
- themeStyleString,
271
- type StudioTheme,
272
- type StudioProject,
273
- type Screen,
274
- type ScreenNav,
275
- type Block,
276
- type BlockKind,
277
- type BlockConfig,
278
- type GridConfig,
279
- type GridEditing,
280
- type GridDensity,
281
- type GridAlign,
282
- type PagerPosition,
283
- type GridColumnConfig,
284
- type ChartConfig,
285
- type KpiConfig,
286
- type KpiFormat,
287
- type DashboardConfig,
288
- type MasterDetailConfig,
289
- type LookupConfig,
290
- type Reduce,
291
- type DataSourceKind,
292
- type EntityDataSource,
293
- type MemorySource,
294
- type RestSource,
295
- type SqlSource,
296
- type SupabaseSource,
297
- type RestMethod,
298
- type ParamLocation,
299
- type ParamType,
300
- type RequestParam,
301
- type SqlDialectKind,
302
- type ProjectTheme,
303
- type ShellConfig,
304
- type ShellStyle,
305
- type ScreenTemplate,
306
- type PaletteItem,
307
- type ProjectIssue,
308
- type GeneratedFile,
309
- } from './studio'
310
- export {
311
- buildConnectionString,
312
- parseConnectionString,
313
- redactConnectionString,
314
- isFileDialect,
315
- DRIVER_PACKAGE,
316
- DEFAULT_PORT,
317
- countTableRows,
318
- probeConnection,
319
- type SqlConnectionParts,
320
- type TableRowCount,
321
- type SqlDialectName,
322
- } from './studio'
323
-
324
- export {
325
- buildDisplayRows,
326
- isDetailRow,
327
- toggleExpanded,
328
- type DetailRow,
329
- } from './master-detail'
330
- export { default as SvGridMasterDetail } from './SvGridMasterDetail.svelte'
331
-
332
- export { default as SvPivotDesigner } from './SvPivotDesigner.svelte'
333
- export {
334
- ALL_AGGREGATORS,
335
- AGG_LABEL,
336
- EMPTY_LAYOUT,
337
- defaultLayoutFor,
338
- type PivotField,
339
- type PivotValueChip,
340
- type PivotFilterChip,
341
- type PivotLayout,
342
- type PivotPreset,
343
- type Well,
344
- } from './pivot-designer'
345
-
346
- export {
347
- // Provider plumbing
348
- setAIProvider,
349
- getAIProvider,
350
- hasAIProvider,
351
- mockAIProvider,
352
- type AIProvider,
353
- type AIRequest,
354
- type AITask,
355
- // Filter
356
- aiFilter,
357
- type AIFilterOptions,
358
- type AIFilterResult,
359
- type AIFilterClause,
360
- type AISortClause,
361
- // Smart fill
362
- aiSmartFill,
363
- type AISmartFillOptions,
364
- type AISmartFillResult,
365
- type AISmartFillExample,
366
- // Summarize
367
- aiSummarize,
368
- type AISummarizeOptions,
369
- type AISummarizeTarget,
370
- type AISummary,
371
- // Classify
372
- aiClassify,
373
- type AIClassifyOptions,
374
- type AIClassifyResult,
375
- // Natural-language export
376
- aiExport,
377
- type AIExportOptions,
378
- type AIExportPlan,
379
- // Anomaly detection
380
- aiFindAnomalies,
381
- type AIAnomaly,
382
- type AIAnomalyOptions,
383
- type AIAnomalyResult,
384
- } from './ai'
1
+ export {
2
+ setLicenseKey,
3
+ clearLicenseKey,
4
+ getLicenseKey,
5
+ isLicenseKeySet,
6
+ hasValidLicense,
7
+ assertEnterpriseLicensed,
8
+ nudgeEnterprise,
9
+ checkLicenseKey,
10
+ type LicenseInfo,
11
+ type LicenseStatus,
12
+ } from './license'
13
+
14
+ export {
15
+ exportGrid,
16
+ copyExportToClipboard,
17
+ type ExportFormat,
18
+ type ExportOptions,
19
+ type ExportColumn,
20
+ type ExportCellStyle,
21
+ type ExportStyles,
22
+ type ExportHeaderFooterLine,
23
+ type ExportSheet,
24
+ type ExportRowSource,
25
+ type ExportProgress,
26
+ type ExportResult,
27
+ type ClipboardFormat,
28
+ type ClipboardExportOptions,
29
+ } from './export'
30
+ export { default as SvExportMenu } from './SvExportMenu.svelte'
31
+ export { buildPdfDocDefinition, type PdfExportOptions, type PdfPageSize } from './export-pdf'
32
+ export { printGrid, type PrintOptions } from './print'
33
+ export {
34
+ importData,
35
+ readImportMatrix,
36
+ mapImportMatrix,
37
+ mapImportMatrixAsync,
38
+ autoMapColumns,
39
+ inferImportColumnTypes,
40
+ type ImportFormat,
41
+ type ImportFieldType,
42
+ type ImportOptions,
43
+ type ImportResult,
44
+ type ImportProgress,
45
+ type ImportColumnMap,
46
+ type ImportColumnTypes,
47
+ type ImportGridColumn,
48
+ type ImportRowError,
49
+ type ImportValidator,
50
+ } from './import'
51
+ export { default as SvImportDialog } from './SvImportDialog.svelte'
52
+ export { installEnterprise, type EnterpriseGridApi, type EnterpriseAIApi, type EnterprisePivotApi } from './install'
53
+ // Scheduler / calendar view (Pro). `enableSchedulerView()` registers the
54
+ // renderer so `<SvGrid scheduler={...}>` shows a Month/Week/Day/Agenda calendar.
55
+ // The pure model helpers + config types live in @svgrid/grid; import them from there.
56
+ export { enableSchedulerView, SvGridScheduler } from './scheduler'
57
+ export {
58
+ createStagedEditing,
59
+ type StagedChange,
60
+ type StagedEditingApi,
61
+ type StagedEditingEvent,
62
+ } from './staged-editing'
63
+ export {
64
+ createScheduler,
65
+ parseCron,
66
+ cronMatches,
67
+ cronMatchesParsed,
68
+ isScheduleDue,
69
+ nextRun,
70
+ CRON_PRESETS,
71
+ type Schedule,
72
+ type Scheduler,
73
+ type SchedulerOptions,
74
+ } from './scheduling'
75
+ export { dismissUnlicensedNudge } from './watermark'
76
+ export {
77
+ showUpgradePrompt,
78
+ dismissUpgradePrompt,
79
+ type EnterpriseFeatureLabel,
80
+ } from './upgrade-prompt'
81
+
82
+ export {
83
+ createPivotModel,
84
+ pivotAggregators,
85
+ filterCollapsedPivotRows,
86
+ type PivotAggregator,
87
+ type PivotAggregatorId,
88
+ type PivotConfig,
89
+ type PivotResult,
90
+ type PivotRow,
91
+ type PivotRowKind,
92
+ type PivotValueConfig,
93
+ } from './pivot'
94
+
95
+ export {
96
+ titleCase,
97
+ resolveIdField,
98
+ schemaToColumns,
99
+ schemaToFormFields,
100
+ validateField,
101
+ applyComputed,
102
+ validateEntity,
103
+ type EntitySchema,
104
+ type EntityField,
105
+ type EntityFieldType,
106
+ type EntityHooks,
107
+ type FormFieldDescriptor,
108
+ type StudioEditorType,
109
+ type StandardSchemaV1,
110
+ type StandardSchemaResult,
111
+ type ValidationOp,
112
+ type ValidationRuleSpec,
113
+ } from './schema'
114
+
115
+ export {
116
+ planQuery,
117
+ coerce,
118
+ createInMemoryDataSource,
119
+ createKitDataSource,
120
+ createKitHandlers,
121
+ createSqlDataSource,
122
+ planToSql,
123
+ type QueryPlan,
124
+ type PlanPredicate,
125
+ type PlanOp,
126
+ type KitDataSourceOptions,
127
+ type KitHandlerOptions,
128
+ type KitHandlers,
129
+ type KitMessage,
130
+ type SqlDialect,
131
+ type SqlPlan,
132
+ type SqlExecutor,
133
+ type SqlDataSourceConfig,
134
+ type WritableDataSource,
135
+ } from './sveltekit'
136
+
137
+ export {
138
+ createSupabaseDataSource,
139
+ createRestDataSource,
140
+ offsetLimitAdapter,
141
+ dummyJsonAdapter,
142
+ jsonServerAdapter,
143
+ introspectSupabaseTable,
144
+ createSupabaseRealtime,
145
+ createRelationLookup,
146
+ createSupabaseAuth,
147
+ aggregateRows,
148
+ chartFieldsFromSchema,
149
+ normalizeFilters,
150
+ buildEntitySchema,
151
+ pickLabelField,
152
+ linkRelationLabels,
153
+ type SupabaseDataSourceConfig,
154
+ type SupabaseClientLike,
155
+ type RestDataSourceConfig,
156
+ type RestAdapter,
157
+ type OffsetLimitOptions,
158
+ type IntrospectSupabaseOptions,
159
+ type IntrospectedColumn,
160
+ type ColumnReference,
161
+ type NormalizedFilter,
162
+ type NormalizedPredicate,
163
+ type SupabaseRealtimeConfig,
164
+ type SupabaseRealtimeClientLike,
165
+ type SupabaseRealtimeHandle,
166
+ type RealtimeChannelLike,
167
+ type RealtimeChange,
168
+ type RelationLookup,
169
+ type RelationLookupConfig,
170
+ type RelationOption,
171
+ type SupabaseAuthConfig,
172
+ type SupabaseAuthController,
173
+ type SupabaseAuthClientLike,
174
+ type AuthState,
175
+ type AuthUser,
176
+ withEntityRules,
177
+ withRelationLabels,
178
+ reduceValue,
179
+ kpiSeries,
180
+ sparklinePoints,
181
+ seriesDelta,
182
+ formatKpiValue,
183
+ dashboardFromSchema,
184
+ type AggregateReduce,
185
+ type AggregateRequest,
186
+ type AggregateBucket,
187
+ type AggregateSource,
188
+ type DashboardSpec,
189
+ type DashboardWidget,
190
+ type KpiWidget,
191
+ type ChartWidget,
192
+ type RelationLabelConfig,
193
+ } from './sources'
194
+
195
+ export {
196
+ buildInitialValues,
197
+ controlKind,
198
+ editMode,
199
+ rowId,
200
+ toSubmitValues,
201
+ validateAll,
202
+ type EditMode,
203
+ type ControlKind,
204
+ } from './edit-panel'
205
+ export { default as SvGridEditPanel } from './SvGridEditPanel.svelte'
206
+ export { default as SvLookupInput } from './SvLookupInput.svelte'
207
+ export { default as SvFileInput } from './SvFileInput.svelte'
208
+ export { default as SvAuthGate } from './SvAuthGate.svelte'
209
+ export { default as SvSchemaChart } from './SvSchemaChart.svelte'
210
+ export { default as SvSchemaDashboard } from './SvSchemaDashboard.svelte'
211
+ export { default as SvBoard } from './SvBoard.svelte'
212
+ export { default as SvSchedule } from './SvSchedule.svelte'
213
+ export { default as SvRecordDetail } from './SvRecordDetail.svelte'
214
+
215
+ export {
216
+ FIELD_TYPES,
217
+ blankField,
218
+ addField,
219
+ removeField,
220
+ updateField,
221
+ moveField,
222
+ validateSchema,
223
+ isSchemaValid,
224
+ sampleRows,
225
+ type SchemaIssue,
226
+ type SchemaIssueLevel,
227
+ } from './schema-designer'
228
+ // NOTE: The visual designer components (SvSchemaDesigner, SvStudioDesigner) are
229
+ // the commercial "SvGrid Studio" seller. They live entirely in the PRIVATE
230
+ // website repo (website/src/lib/designer), NOT in this public package - they
231
+ // import the public API below. The Studio *codegen* below stays public because
232
+ // the MCP server depends on it.
233
+ // The Studio project model + codegen (also on the pure `@svgrid/enterprise/studio`
234
+ // subpath) - re-exported so the designer and its model come from one import.
235
+ export {
236
+ createProject,
237
+ defaultScreenFor,
238
+ emitStudioProject,
239
+ emitStudioAppBundle,
240
+ emitStudioApp,
241
+ sampleApps,
242
+ getSampleApp,
243
+ liveDataSamples,
244
+ getLiveDataSample,
245
+ type SampleApp,
246
+ sanitizeStudioProject,
247
+ buildStudioBugReport,
248
+ type BugReport,
249
+ type BugReportInput,
250
+ addBlock,
251
+ addBlockAt,
252
+ removeBlock,
253
+ moveBlock,
254
+ reorderBlock,
255
+ updateBlock,
256
+ addScreen,
257
+ removeScreen,
258
+ updateScreen,
259
+ duplicateScreen,
260
+ reorderScreen,
261
+ insertBlock,
262
+ addEntity,
263
+ removeEntity,
264
+ updateEntity,
265
+ setDataSource,
266
+ defaultEntitySource,
267
+ setEntityDataSource,
268
+ entityDataSource,
269
+ setTheme,
270
+ setThemePreset,
271
+ setShell,
272
+ sanitizeProject,
273
+ screenFromTemplate,
274
+ addScreenFromTemplate,
275
+ addFreestandingScreen,
276
+ serializeProject,
277
+ parseProject,
278
+ blockPalette,
279
+ validateProject,
280
+ isProjectValid,
281
+ entityOf,
282
+ studioThemes,
283
+ defaultStudioTheme,
284
+ getStudioTheme,
285
+ resolveThemeTokens,
286
+ isDarkTheme,
287
+ themeStyleString,
288
+ type StudioTheme,
289
+ type StudioProject,
290
+ type Screen,
291
+ type ScreenNav,
292
+ type Block,
293
+ type BlockKind,
294
+ type BlockConfig,
295
+ type GridConfig,
296
+ type GridEditing,
297
+ type GridDensity,
298
+ type GridAlign,
299
+ type PagerPosition,
300
+ type GridColumnConfig,
301
+ type ChartConfig,
302
+ type KpiConfig,
303
+ type KpiFormat,
304
+ type DashboardConfig,
305
+ type MasterDetailConfig,
306
+ type LookupConfig,
307
+ type Reduce,
308
+ type DataSourceKind,
309
+ type EntityDataSource,
310
+ type MemorySource,
311
+ type RestSource,
312
+ type SqlSource,
313
+ type SupabaseSource,
314
+ type RestMethod,
315
+ type ParamLocation,
316
+ type ParamType,
317
+ type RequestParam,
318
+ type SqlDialectKind,
319
+ type ProjectTheme,
320
+ type ShellConfig,
321
+ type ShellStyle,
322
+ type ScreenTemplate,
323
+ type PaletteItem,
324
+ type ProjectIssue,
325
+ type GeneratedFile,
326
+ } from './studio'
327
+ export {
328
+ buildConnectionString,
329
+ parseConnectionString,
330
+ redactConnectionString,
331
+ isFileDialect,
332
+ DRIVER_PACKAGE,
333
+ DEFAULT_PORT,
334
+ countTableRows,
335
+ probeConnection,
336
+ type SqlConnectionParts,
337
+ type TableRowCount,
338
+ type SqlDialectName,
339
+ } from './studio'
340
+
341
+ export {
342
+ buildDisplayRows,
343
+ isDetailRow,
344
+ toggleExpanded,
345
+ type DetailRow,
346
+ } from './master-detail'
347
+ export { default as SvGridMasterDetail } from './SvGridMasterDetail.svelte'
348
+
349
+ export { default as SvPivotDesigner } from './SvPivotDesigner.svelte'
350
+ export {
351
+ ALL_AGGREGATORS,
352
+ AGG_LABEL,
353
+ EMPTY_LAYOUT,
354
+ defaultLayoutFor,
355
+ type PivotField,
356
+ type PivotValueChip,
357
+ type PivotFilterChip,
358
+ type PivotLayout,
359
+ type PivotPreset,
360
+ type Well,
361
+ } from './pivot-designer'
362
+
363
+ export {
364
+ // Provider plumbing
365
+ setAIProvider,
366
+ getAIProvider,
367
+ hasAIProvider,
368
+ mockAIProvider,
369
+ type AIProvider,
370
+ type AIRequest,
371
+ type AITask,
372
+ // Filter
373
+ aiFilter,
374
+ type AIFilterOptions,
375
+ type AIFilterResult,
376
+ type AIFilterClause,
377
+ type AISortClause,
378
+ // Smart fill
379
+ aiSmartFill,
380
+ type AISmartFillOptions,
381
+ type AISmartFillResult,
382
+ type AISmartFillExample,
383
+ // Summarize
384
+ aiSummarize,
385
+ type AISummarizeOptions,
386
+ type AISummarizeTarget,
387
+ type AISummary,
388
+ // Classify
389
+ aiClassify,
390
+ type AIClassifyOptions,
391
+ type AIClassifyResult,
392
+ // Natural-language export
393
+ aiExport,
394
+ type AIExportOptions,
395
+ type AIExportPlan,
396
+ // Anomaly detection
397
+ aiFindAnomalies,
398
+ type AIAnomaly,
399
+ type AIAnomalyOptions,
400
+ type AIAnomalyResult,
401
+ // Natural-language chart ("chart this")
402
+ aiChart,
403
+ enableAiCharting,
404
+ disableAiCharting,
405
+ type AIChartOptions,
406
+ type AIChartPlan,
407
+ type AIChartType,
408
+ } from './ai'
409
+ export { pivotToChartSpec, type PivotChartOptions } from './pivot-chart'