yamchart 0.7.2 → 0.8.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 (74) hide show
  1. package/CLAUDE.md +51 -0
  2. package/dist/{advisor-5BTRAICH.js → advisor-57BOMUUF.js} +11 -10
  3. package/dist/{advisor-5BTRAICH.js.map → advisor-57BOMUUF.js.map} +1 -1
  4. package/dist/{chunk-5VA43CTW.js → chunk-E2UZXDF6.js} +37 -42
  5. package/dist/chunk-E2UZXDF6.js.map +1 -0
  6. package/dist/{chunk-SSUVEADJ.js → chunk-JYQKDWLG.js} +76 -14
  7. package/dist/chunk-JYQKDWLG.js.map +1 -0
  8. package/dist/{chunk-565OEBW7.js → chunk-OTAUP5RC.js} +3 -3
  9. package/dist/chunk-UND73EOB.js +449 -0
  10. package/dist/chunk-UND73EOB.js.map +1 -0
  11. package/dist/{chunk-UDRJFEJU.js → chunk-X6LQGWUX.js} +349 -176
  12. package/dist/chunk-X6LQGWUX.js.map +1 -0
  13. package/dist/{connection-utils-AGSQ5HNN.js → connection-utils-FTSZU2VF.js} +5 -4
  14. package/dist/{describe-AA4UT4U6.js → describe-TGIOBNJB.js} +5 -4
  15. package/dist/{describe-AA4UT4U6.js.map → describe-TGIOBNJB.js.map} +1 -1
  16. package/dist/{dev-EUWIRL4N.js → dev-MRZ76V74.js} +485 -44
  17. package/dist/dev-MRZ76V74.js.map +1 -0
  18. package/dist/{dist-LZNDQDH3.js → dist-PVHFUYP2.js} +23 -3
  19. package/dist/{dist-YTGUIBKG.js → dist-WDTDQDTX.js} +72 -1
  20. package/dist/dist-WDTDQDTX.js.map +1 -0
  21. package/dist/index.js +135 -17
  22. package/dist/index.js.map +1 -1
  23. package/dist/{init-CI4VARQG.js → init-UYQE5DPU.js} +2 -2
  24. package/dist/{init-CI4VARQG.js.map → init-UYQE5DPU.js.map} +1 -1
  25. package/dist/public/assets/EventManagement-BlxJ2TFw.js +18 -0
  26. package/dist/public/assets/{LoginPage-BwMmpq8e.js → LoginPage-BT8ikmPn.js} +1 -1
  27. package/dist/public/assets/PublicViewer-B4uFxgbt.js +1 -0
  28. package/dist/public/assets/{SetupWizard-DU8R2dPp.js → SetupWizard-njrOhCzw.js} +1 -1
  29. package/dist/public/assets/ShareManagement-Bg16oJhW.js +1 -0
  30. package/dist/public/assets/UserManagement-tiCIT4UY.js +1 -0
  31. package/dist/public/assets/index-B41yj3io.js +187 -0
  32. package/dist/public/assets/{index-C0hWblBI.css → index-BZ25r23j.css} +1 -1
  33. package/dist/public/assets/{index.es-YeJujQ5o.js → index.es-BuktD_R2.js} +1 -1
  34. package/dist/public/assets/{jspdf.es.min-BzZgn3ka.js → jspdf.es.min-DFRl2hZQ.js} +3 -3
  35. package/dist/public/index.html +2 -2
  36. package/dist/{query-THDVBBVZ.js → query-JRMMNXX6.js} +5 -4
  37. package/dist/{query-THDVBBVZ.js.map → query-JRMMNXX6.js.map} +1 -1
  38. package/dist/{sample-6WPQS7PA.js → sample-VGIY4U4J.js} +5 -4
  39. package/dist/{sample-6WPQS7PA.js.map → sample-VGIY4U4J.js.map} +1 -1
  40. package/dist/{search-657DXBRS.js → search-QSYNG4SR.js} +5 -4
  41. package/dist/{search-657DXBRS.js.map → search-QSYNG4SR.js.map} +1 -1
  42. package/dist/semantic-RAP3S5PQ.js +39 -0
  43. package/dist/semantic-RAP3S5PQ.js.map +1 -0
  44. package/dist/{sync-warehouse-4KBV5S3L.js → sync-warehouse-XHTBZH25.js} +5 -4
  45. package/dist/{sync-warehouse-4KBV5S3L.js.map → sync-warehouse-XHTBZH25.js.map} +1 -1
  46. package/dist/{tables-KLDBUUSE.js → tables-UOO342TA.js} +5 -4
  47. package/dist/{tables-KLDBUUSE.js.map → tables-UOO342TA.js.map} +1 -1
  48. package/dist/templates/default/.claude/skills/databricks/SKILL.md +76 -0
  49. package/dist/templates/default/.claude/skills/dbt-advisor/SKILL.md +107 -0
  50. package/dist/templates/default/.claude/skills/duckdb/SKILL.md +67 -0
  51. package/dist/templates/default/.claude/skills/mysql/SKILL.md +69 -0
  52. package/dist/templates/default/.claude/skills/postgres/SKILL.md +69 -0
  53. package/dist/templates/default/.claude/skills/snowflake/SKILL.md +64 -0
  54. package/dist/templates/default/CLAUDE.md +7 -0
  55. package/dist/templates/default/docs/yamchart-reference.md +222 -1
  56. package/dist/{test-JSAWS5ZP.js → test-TXRZWNXK.js} +5 -4
  57. package/dist/{test-JSAWS5ZP.js.map → test-TXRZWNXK.js.map} +1 -1
  58. package/dist/update-UKMEWCSO.js +220 -0
  59. package/dist/update-UKMEWCSO.js.map +1 -0
  60. package/package.json +5 -3
  61. package/dist/chunk-5VA43CTW.js.map +0 -1
  62. package/dist/chunk-SSUVEADJ.js.map +0 -1
  63. package/dist/chunk-UDRJFEJU.js.map +0 -1
  64. package/dist/dev-EUWIRL4N.js.map +0 -1
  65. package/dist/dist-YTGUIBKG.js.map +0 -1
  66. package/dist/public/assets/PublicViewer-vIDojjIR.js +0 -1
  67. package/dist/public/assets/ShareManagement-7iS6lM2T.js +0 -1
  68. package/dist/public/assets/UserManagement-By7YRZrF.js +0 -1
  69. package/dist/public/assets/index-CXx1PiRF.js +0 -174
  70. package/dist/update-HCR6MYJX.js +0 -88
  71. package/dist/update-HCR6MYJX.js.map +0 -1
  72. /package/dist/{chunk-565OEBW7.js.map → chunk-OTAUP5RC.js.map} +0 -0
  73. /package/dist/{connection-utils-AGSQ5HNN.js.map → connection-utils-FTSZU2VF.js.map} +0 -0
  74. /package/dist/{dist-LZNDQDH3.js.map → dist-PVHFUYP2.js.map} +0 -0
@@ -190,6 +190,52 @@ var AnnotationSchema = z2.discriminatedUnion("type", [
190
190
  LineAnnotationSchema,
191
191
  BandAnnotationSchema
192
192
  ]);
193
+ var GoalZoneSchema = z2.object({
194
+ tolerance: z2.number().min(0).max(1)
195
+ });
196
+ var GoalStyleSchema = z2.enum(["solid", "dashed", "dotted"]);
197
+ var FixedGoalSchema = z2.object({
198
+ type: z2.literal("fixed"),
199
+ value: z2.number(),
200
+ label: z2.string().optional(),
201
+ color: z2.string().optional(),
202
+ style: GoalStyleSchema.optional(),
203
+ zone: GoalZoneSchema.optional()
204
+ });
205
+ var CumulativeGoalSchema = z2.object({
206
+ type: z2.literal("cumulative"),
207
+ value: z2.number(),
208
+ by: z2.string().min(1),
209
+ from: z2.string().optional(),
210
+ label: z2.string().optional(),
211
+ color: z2.string().optional(),
212
+ style: GoalStyleSchema.optional(),
213
+ zone: GoalZoneSchema.optional()
214
+ });
215
+ var GoalSourceSchema = z2.object({
216
+ model: z2.string().min(1),
217
+ value_field: z2.string().min(1),
218
+ date_field: z2.string().optional()
219
+ });
220
+ var ModelGoalSchema = z2.object({
221
+ type: z2.literal("model"),
222
+ source: GoalSourceSchema,
223
+ label: z2.string().optional(),
224
+ color: z2.string().optional(),
225
+ style: GoalStyleSchema.optional(),
226
+ zone: GoalZoneSchema.optional()
227
+ });
228
+ var GoalSchema = z2.discriminatedUnion("type", [
229
+ FixedGoalSchema,
230
+ CumulativeGoalSchema,
231
+ ModelGoalSchema
232
+ ]);
233
+ var KpiGoalSchema = z2.object({
234
+ value: z2.number(),
235
+ label: z2.string().optional(),
236
+ show_progress: z2.boolean().optional(),
237
+ color: z2.string().optional()
238
+ });
193
239
  var InteractionsSchema = z2.object({
194
240
  tooltip: z2.boolean().default(true),
195
241
  zoom: z2.boolean().default(false),
@@ -216,8 +262,9 @@ var KpiConfigSchema = z2.object({
216
262
  value: KpiValueSchema,
217
263
  format: KpiFormatSchema,
218
264
  comparison: KpiComparisonSchema.optional(),
219
- unit: z2.string().optional()
265
+ unit: z2.string().optional(),
220
266
  // e.g., 'min', 'sessions', 'users'
267
+ goal: KpiGoalSchema.optional()
221
268
  });
222
269
  var CenterValueSchema = z2.object({
223
270
  field: z2.string().optional(),
@@ -237,8 +284,9 @@ var StandardChartConfigSchema = z2.object({
237
284
  legend: LegendSchema.optional(),
238
285
  annotations: z2.array(AnnotationSchema).optional(),
239
286
  interactions: InteractionsSchema.optional(),
240
- centerValue: CenterValueSchema.optional()
287
+ centerValue: CenterValueSchema.optional(),
241
288
  // For donut charts
289
+ goals: z2.array(GoalSchema).optional()
242
290
  });
243
291
  var DualAxesSchema = z2.object({
244
292
  left: AxisSchema.optional(),
@@ -251,7 +299,8 @@ var ComboChartConfigSchema = z2.object({
251
299
  axes: DualAxesSchema,
252
300
  legend: LegendSchema.optional(),
253
301
  interactions: InteractionsSchema.optional(),
254
- gradient: GradientSchema.optional()
302
+ gradient: GradientSchema.optional(),
303
+ goals: z2.array(GoalSchema).optional()
255
304
  });
256
305
  var ScatterSizeSchema = z2.object({
257
306
  field: z2.string().min(1),
@@ -320,9 +369,29 @@ var GaugeChartConfigSchema = z2.object({
320
369
  min: z2.number().optional(),
321
370
  max: z2.number().optional(),
322
371
  thresholds: z2.array(GaugeThresholdSchema).optional(),
323
- format: z2.string().optional()
372
+ format: z2.string().optional(),
373
+ goal: KpiGoalSchema.optional()
324
374
  });
325
375
  var TableColumnSummarySchema = z2.enum(["sum", "avg", "min", "max", "count"]);
376
+ var PivotAggregateSchema = z2.enum(["sum", "avg", "min", "max", "count"]);
377
+ var PivotValueSchema = z2.object({
378
+ field: z2.string().min(1),
379
+ aggregate: PivotAggregateSchema.default("sum"),
380
+ format: z2.string().optional(),
381
+ heatmap: z2.boolean().optional()
382
+ });
383
+ var PivotHeatmapSchema = z2.object({
384
+ color: z2.string().optional(),
385
+ scope: z2.enum(["column", "global"]).optional()
386
+ });
387
+ var PivotConfigSchema = z2.object({
388
+ rows: z2.array(z2.string().min(1)).min(1),
389
+ columns: z2.string().min(1),
390
+ values: z2.array(PivotValueSchema).min(1),
391
+ subtotals: z2.boolean().optional(),
392
+ grandTotals: z2.boolean().optional(),
393
+ heatmap: PivotHeatmapSchema.optional()
394
+ });
326
395
  var TableChartConfigSchema = z2.object({
327
396
  type: z2.literal("table"),
328
397
  columns: z2.array(z2.object({
@@ -338,7 +407,8 @@ var TableChartConfigSchema = z2.object({
338
407
  sort: z2.object({
339
408
  field: z2.string().min(1),
340
409
  direction: z2.enum(["asc", "desc"]).optional()
341
- }).optional()
410
+ }).optional(),
411
+ pivot: PivotConfigSchema.optional()
342
412
  });
343
413
  var ChartConfigSchema = z2.union([
344
414
  ScatterChartConfigSchema,
@@ -399,10 +469,16 @@ var DrillDownColumnSchema = z2.object({
399
469
  var DrillDownConfigSchema = z2.object({
400
470
  chart: z2.string().optional(),
401
471
  // target chart name (source side)
472
+ model: z2.string().optional(),
473
+ // model name for row-level detail data
402
474
  field: z2.string().optional(),
403
- // field to pass as filter, defaults to x-axis field
475
+ // field to pass as filter, defaults to x-axis field (backward compat)
476
+ fields: z2.union([z2.string(), z2.array(z2.string())]).optional(),
477
+ // dimension field(s) for filtering
404
478
  columns: z2.array(DrillDownColumnSchema).optional()
405
479
  // data table columns (target side)
480
+ }).refine((data) => data.chart || data.model || data.columns, {
481
+ message: "drillDown requires 'chart', 'model', or 'columns'"
406
482
  });
407
483
  var ChartSchema = z2.object({
408
484
  // Identity
@@ -426,197 +502,277 @@ var ChartSchema = z2.object({
426
502
  });
427
503
 
428
504
  // ../../packages/schema/dist/project.js
505
+ import { z as z4 } from "zod";
506
+
507
+ // ../../packages/schema/dist/semantic.js
429
508
  import { z as z3 } from "zod";
430
- var DefaultsSchema = z3.object({
431
- connection: z3.string().optional(),
432
- theme: z3.string().optional(),
433
- timezone: z3.string().optional(),
434
- cache_ttl: z3.string().optional(),
435
- base_url: z3.string().url().optional(),
436
- week_start: z3.enum(["sunday", "monday", "tuesday", "wednesday", "thursday", "friday", "saturday"]).optional()
437
- });
438
- var EnvironmentSchema = z3.object({
439
- connection: z3.string().optional(),
440
- base_url: z3.string().url().optional()
441
- });
442
- var GitSchema = z3.object({
443
- provider: z3.enum(["github", "gitlab", "bitbucket"]).optional(),
444
- repo: z3.string().optional(),
445
- branch: z3.string().optional(),
446
- preview_branches: z3.boolean().optional()
447
- });
448
- var SSOProviderSchema = z3.object({
449
- client_id: z3.string(),
450
- client_secret: z3.string(),
451
- tenant: z3.string().optional(),
452
- issuer: z3.string().optional(),
453
- display_name: z3.string().optional()
454
- });
455
- var AuthSchema2 = z3.object({
456
- enabled: z3.boolean(),
457
- db_path: z3.string().optional(),
458
- session_ttl: z3.string().optional(),
459
- providers: z3.object({
509
+ var MeasureTypeSchema = z3.enum(["sum", "count", "avg", "min", "max", "count_distinct"]);
510
+ var DimensionTypeSchema = z3.enum(["string", "number", "time", "boolean"]);
511
+ var MeasureSchema = z3.object({
512
+ name: z3.string(),
513
+ type: MeasureTypeSchema,
514
+ description: z3.string().optional(),
515
+ format: z3.string().optional()
516
+ });
517
+ var DimensionSchema = z3.object({
518
+ name: z3.string(),
519
+ type: DimensionTypeSchema,
520
+ description: z3.string().optional()
521
+ });
522
+ var SemanticEntitySchema = z3.object({
523
+ name: z3.string(),
524
+ description: z3.string().optional(),
525
+ source: z3.enum(["catalog", "model"]),
526
+ source_table: z3.string(),
527
+ measures: z3.array(MeasureSchema),
528
+ dimensions: z3.array(DimensionSchema),
529
+ parameters: z3.array(z3.object({
530
+ name: z3.string(),
531
+ type: z3.string(),
532
+ default: z3.union([z3.string(), z3.number()]).optional(),
533
+ options: z3.array(z3.string()).optional()
534
+ })).optional()
535
+ });
536
+ var RelationshipSchema = z3.object({
537
+ from: z3.object({ entity: z3.string(), field: z3.string() }),
538
+ to: z3.object({ entity: z3.string(), field: z3.string() }),
539
+ type: z3.enum(["many_to_one", "one_to_many", "one_to_one"])
540
+ });
541
+ var SemanticModelSchema = z3.object({
542
+ entities: z3.array(SemanticEntitySchema),
543
+ relationships: z3.array(RelationshipSchema),
544
+ generated_at: z3.string()
545
+ });
546
+ var SemanticFilterOperatorSchema = z3.enum([
547
+ "equals",
548
+ "not_equals",
549
+ "contains",
550
+ "gt",
551
+ "gte",
552
+ "lt",
553
+ "lte",
554
+ "in",
555
+ "not_in"
556
+ ]);
557
+ var SemanticFilterSchema = z3.object({
558
+ dimension: z3.string(),
559
+ operator: SemanticFilterOperatorSchema,
560
+ value: z3.union([z3.string(), z3.number(), z3.boolean(), z3.array(z3.union([z3.string(), z3.number()]))])
561
+ });
562
+ var SemanticQuerySchema = z3.object({
563
+ model: z3.string(),
564
+ measures: z3.array(z3.string()).min(1),
565
+ dimensions: z3.array(z3.string()).optional().default([]),
566
+ parameters: z3.record(z3.union([z3.string(), z3.number()])).optional(),
567
+ filters: z3.array(SemanticFilterSchema).optional().default([]),
568
+ order_by: z3.object({
569
+ field: z3.string(),
570
+ direction: z3.enum(["asc", "desc"]).default("asc")
571
+ }).optional(),
572
+ limit: z3.number().int().positive().max(1e4).optional().default(1e3)
573
+ });
574
+ var SemanticConfigSchema = z3.object({
575
+ include: z3.object({
576
+ paths: z3.array(z3.string()).default(["gold/", "marts/", "core/"]),
577
+ prefixes: z3.array(z3.string()).default(["dim_", "fct_", "fact_"])
578
+ }).optional().default({
579
+ paths: ["gold/", "marts/", "core/"],
580
+ prefixes: ["dim_", "fct_", "fact_"]
581
+ })
582
+ }).optional();
583
+
584
+ // ../../packages/schema/dist/project.js
585
+ var DefaultsSchema = z4.object({
586
+ connection: z4.string().optional(),
587
+ theme: z4.string().optional(),
588
+ timezone: z4.string().optional(),
589
+ cache_ttl: z4.string().optional(),
590
+ base_url: z4.string().url().optional(),
591
+ week_start: z4.enum(["sunday", "monday", "tuesday", "wednesday", "thursday", "friday", "saturday"]).optional()
592
+ });
593
+ var EnvironmentSchema = z4.object({
594
+ connection: z4.string().optional(),
595
+ base_url: z4.string().url().optional()
596
+ });
597
+ var GitSchema = z4.object({
598
+ provider: z4.enum(["github", "gitlab", "bitbucket"]).optional(),
599
+ repo: z4.string().optional(),
600
+ branch: z4.string().optional(),
601
+ preview_branches: z4.boolean().optional()
602
+ });
603
+ var SSOProviderSchema = z4.object({
604
+ client_id: z4.string(),
605
+ client_secret: z4.string(),
606
+ tenant: z4.string().optional(),
607
+ issuer: z4.string().optional(),
608
+ display_name: z4.string().optional()
609
+ });
610
+ var AuthSchema2 = z4.object({
611
+ enabled: z4.boolean(),
612
+ db_path: z4.string().optional(),
613
+ session_ttl: z4.string().optional(),
614
+ providers: z4.object({
460
615
  google: SSOProviderSchema.optional(),
461
616
  microsoft: SSOProviderSchema.optional(),
462
617
  oidc: SSOProviderSchema.optional()
463
618
  }).optional()
464
619
  });
465
- var FeaturesSchema = z3.object({
466
- enable_sql_editor: z3.boolean().optional(),
467
- enable_csv_export: z3.boolean().optional(),
468
- enable_scheduling: z3.boolean().optional()
469
- });
470
- var SidebarLinkSchema = z3.object({
471
- label: z3.string(),
472
- url: z3.string(),
473
- icon: z3.string().optional()
474
- });
475
- var SidebarConfigSchema = z3.object({
476
- show: z3.boolean().optional(),
477
- collapsed: z3.boolean().optional(),
478
- links: z3.array(SidebarLinkSchema).optional(),
479
- sections: z3.object({
480
- dashboards: z3.boolean().optional(),
481
- charts: z3.boolean().optional()
620
+ var FeaturesSchema = z4.object({
621
+ enable_sql_editor: z4.boolean().optional(),
622
+ enable_csv_export: z4.boolean().optional(),
623
+ enable_scheduling: z4.boolean().optional()
624
+ });
625
+ var SidebarLinkSchema = z4.object({
626
+ label: z4.string(),
627
+ url: z4.string(),
628
+ icon: z4.string().optional()
629
+ });
630
+ var SidebarConfigSchema = z4.object({
631
+ show: z4.boolean().optional(),
632
+ collapsed: z4.boolean().optional(),
633
+ links: z4.array(SidebarLinkSchema).optional(),
634
+ sections: z4.object({
635
+ dashboards: z4.boolean().optional(),
636
+ charts: z4.boolean().optional()
482
637
  }).optional()
483
638
  });
484
- var ColorsSchema = z3.object({
485
- primary: z3.string().optional(),
486
- background: z3.string().optional(),
487
- surface: z3.string().optional(),
488
- sidebar: z3.string().optional(),
489
- text: z3.string().optional()
490
- });
491
- var FontsSchema = z3.object({
492
- heading: z3.string().optional(),
493
- body: z3.string().optional(),
494
- mono: z3.string().optional(),
495
- size: z3.enum(["compact", "default", "comfortable"]).optional()
496
- });
497
- var LogoSchema = z3.union([
498
- z3.string(),
499
- z3.object({
500
- light: z3.string(),
501
- dark: z3.string()
639
+ var ColorsSchema = z4.object({
640
+ primary: z4.string().optional(),
641
+ background: z4.string().optional(),
642
+ surface: z4.string().optional(),
643
+ sidebar: z4.string().optional(),
644
+ text: z4.string().optional()
645
+ });
646
+ var FontsSchema = z4.object({
647
+ heading: z4.string().optional(),
648
+ body: z4.string().optional(),
649
+ mono: z4.string().optional(),
650
+ size: z4.enum(["compact", "default", "comfortable"]).optional()
651
+ });
652
+ var LogoSchema = z4.union([
653
+ z4.string(),
654
+ z4.object({
655
+ light: z4.string(),
656
+ dark: z4.string()
502
657
  })
503
658
  ]);
504
- var ThemeSchema = z3.object({
505
- mode: z3.enum(["light", "dark", "auto"]).optional(),
506
- base: z3.enum(["modern", "executive", "minimal"]).optional(),
659
+ var ThemeSchema = z4.object({
660
+ mode: z4.enum(["light", "dark", "auto"]).optional(),
661
+ base: z4.enum(["modern", "executive", "minimal"]).optional(),
507
662
  logo: LogoSchema.optional(),
508
- favicon: z3.string().optional(),
509
- title: z3.string().optional(),
663
+ favicon: z4.string().optional(),
664
+ title: z4.string().optional(),
510
665
  colors: ColorsSchema.optional(),
511
- palette: z3.array(z3.string()).optional(),
512
- gradient: z3.boolean().default(false),
513
- opacity: z3.number().min(0).max(1).default(1),
666
+ palette: z4.array(z4.string()).optional(),
667
+ gradient: z4.boolean().default(false),
668
+ opacity: z4.number().min(0).max(1).default(1),
514
669
  fonts: FontsSchema.optional(),
515
670
  sidebar: SidebarConfigSchema.optional(),
516
- customCss: z3.string().optional()
671
+ customCss: z4.string().optional()
517
672
  });
518
- var ProjectSchema = z3.object({
519
- version: z3.string().min(1),
520
- name: z3.string().min(1),
521
- description: z3.string().optional(),
673
+ var ProjectSchema = z4.object({
674
+ version: z4.string().min(1),
675
+ name: z4.string().min(1),
676
+ description: z4.string().optional(),
522
677
  defaults: DefaultsSchema.optional(),
523
- environments: z3.record(z3.string(), EnvironmentSchema).optional(),
678
+ environments: z4.record(z4.string(), EnvironmentSchema).optional(),
524
679
  git: GitSchema.optional(),
525
680
  auth: AuthSchema2.optional(),
526
681
  features: FeaturesSchema.optional(),
527
- theme: ThemeSchema.optional()
682
+ theme: ThemeSchema.optional(),
683
+ semantic: SemanticConfigSchema
528
684
  });
529
685
 
530
686
  // ../../packages/schema/dist/model.js
531
- import { z as z4 } from "zod";
532
- var ParamTypeSchema = z4.enum(["string", "number", "date", "boolean", "string[]", "number[]"]);
533
- var ModelParamSchema = z4.object({
534
- name: z4.string().min(1),
687
+ import { z as z5 } from "zod";
688
+ var ParamTypeSchema = z5.enum(["string", "number", "date", "boolean", "string[]", "number[]"]);
689
+ var ModelParamSchema = z5.object({
690
+ name: z5.string().min(1),
535
691
  type: ParamTypeSchema,
536
- default: z4.string().optional(),
537
- options: z4.array(z4.string()).optional(),
692
+ default: z5.string().optional(),
693
+ options: z5.array(z5.string()).optional(),
538
694
  // For enum-like params
539
- description: z4.string().optional()
695
+ description: z5.string().optional()
540
696
  });
541
- var ReturnColumnSchema = z4.object({
542
- name: z4.string().min(1),
543
- type: z4.string(),
544
- description: z4.string().optional()
697
+ var ReturnColumnSchema = z5.object({
698
+ name: z5.string().min(1),
699
+ type: z5.string(),
700
+ description: z5.string().optional()
545
701
  });
546
- var ModelMetadataSchema = z4.object({
547
- name: z4.string().min(1),
548
- description: z4.string().optional(),
549
- owner: z4.string().optional(),
550
- tags: z4.array(z4.string()).optional(),
551
- params: z4.array(ModelParamSchema).optional(),
552
- returns: z4.array(ReturnColumnSchema).optional(),
553
- tests: z4.array(z4.string()).optional()
702
+ var ModelMetadataSchema = z5.object({
703
+ name: z5.string().min(1),
704
+ description: z5.string().optional(),
705
+ owner: z5.string().optional(),
706
+ tags: z5.array(z5.string()).optional(),
707
+ params: z5.array(ModelParamSchema).optional(),
708
+ returns: z5.array(ReturnColumnSchema).optional(),
709
+ tests: z5.array(z5.string()).optional()
554
710
  // SQL assertions
555
711
  });
556
- var ModelSchema = z4.object({
712
+ var ModelSchema = z5.object({
557
713
  metadata: ModelMetadataSchema,
558
- sql: z4.string().min(1),
559
- filePath: z4.string().optional()
714
+ sql: z5.string().min(1),
715
+ filePath: z5.string().optional()
560
716
  });
561
717
 
562
718
  // ../../packages/schema/dist/dashboard.js
563
- import { z as z5 } from "zod";
564
- var ChartWidgetSchema = z5.object({
565
- type: z5.literal("chart"),
566
- ref: z5.string().min(1),
567
- cols: z5.number().min(1).max(12),
568
- height: z5.number().min(38).optional(),
569
- x: z5.number().min(0).max(11).optional(),
570
- y: z5.number().min(0).optional()
571
- });
572
- var TextWidgetSchema = z5.object({
573
- type: z5.literal("text"),
574
- content: z5.string(),
575
- cols: z5.number().min(1).max(12),
576
- height: z5.number().min(38).optional(),
577
- x: z5.number().min(0).max(11).optional(),
578
- y: z5.number().min(0).optional()
579
- });
580
- var WidgetSchema = z5.discriminatedUnion("type", [
719
+ import { z as z6 } from "zod";
720
+ var ChartWidgetSchema = z6.object({
721
+ type: z6.literal("chart"),
722
+ ref: z6.string().min(1),
723
+ cols: z6.number().min(1).max(12),
724
+ height: z6.number().min(38).optional(),
725
+ x: z6.number().min(0).max(11).optional(),
726
+ y: z6.number().min(0).optional()
727
+ });
728
+ var TextWidgetSchema = z6.object({
729
+ type: z6.literal("text"),
730
+ content: z6.string(),
731
+ cols: z6.number().min(1).max(12),
732
+ height: z6.number().min(38).optional(),
733
+ x: z6.number().min(0).max(11).optional(),
734
+ y: z6.number().min(0).optional()
735
+ });
736
+ var WidgetSchema = z6.discriminatedUnion("type", [
581
737
  ChartWidgetSchema,
582
738
  TextWidgetSchema
583
739
  ]);
584
- var RowSchema = z5.object({
585
- height: z5.number().min(38),
586
- widgets: z5.array(WidgetSchema).min(1)
740
+ var RowSchema = z6.object({
741
+ height: z6.number().min(38),
742
+ widgets: z6.array(WidgetSchema).min(1)
587
743
  });
588
- var LayoutSchema = z5.object({
589
- gap: z5.number().min(0).default(16),
590
- rows: z5.array(RowSchema).min(1)
744
+ var LayoutSchema = z6.object({
745
+ gap: z6.number().min(0).default(16),
746
+ rows: z6.array(RowSchema).min(1)
591
747
  });
592
- var TabSchema = z5.object({
593
- name: z5.string().min(1),
594
- label: z5.string().min(1),
595
- filters: z5.array(ParameterSchema).optional(),
748
+ var TabSchema = z6.object({
749
+ name: z6.string().min(1),
750
+ label: z6.string().min(1),
751
+ filters: z6.array(ParameterSchema).optional(),
596
752
  layout: LayoutSchema
597
753
  });
598
- var DashboardSchema = z5.object({
754
+ var DashboardSchema = z6.object({
599
755
  // Identity
600
- name: z5.string().min(1),
601
- title: z5.string().min(1),
602
- description: z5.string().optional(),
756
+ name: z6.string().min(1),
757
+ title: z6.string().min(1),
758
+ description: z6.string().optional(),
603
759
  // Filters inherited by all widgets (shared across tabs)
604
- filters: z5.array(ParameterSchema).optional(),
760
+ filters: z6.array(ParameterSchema).optional(),
605
761
  // Layout definition (mutually exclusive with tabs)
606
762
  layout: LayoutSchema.optional(),
607
763
  // Tabbed layout
608
- tabs: z5.array(TabSchema).min(1).optional()
764
+ tabs: z6.array(TabSchema).min(1).optional()
609
765
  }).superRefine((data, ctx) => {
610
766
  if (data.layout && data.tabs) {
611
767
  ctx.addIssue({
612
- code: z5.ZodIssueCode.custom,
768
+ code: z6.ZodIssueCode.custom,
613
769
  message: 'Dashboard must have either "layout" or "tabs", not both',
614
770
  path: ["tabs"]
615
771
  });
616
772
  }
617
773
  if (!data.layout && !data.tabs) {
618
774
  ctx.addIssue({
619
- code: z5.ZodIssueCode.custom,
775
+ code: z6.ZodIssueCode.custom,
620
776
  message: 'Dashboard must have either "layout" or "tabs"',
621
777
  path: []
622
778
  });
@@ -624,54 +780,71 @@ var DashboardSchema = z5.object({
624
780
  });
625
781
 
626
782
  // ../../packages/schema/dist/schedule.js
627
- import { z as z6 } from "zod";
628
- var SlackChannelSchema = z6.object({
629
- webhook_url: z6.string().min(1),
630
- channel: z6.string().optional()
783
+ import { z as z7 } from "zod";
784
+ var SlackChannelSchema = z7.object({
785
+ webhook_url: z7.string().min(1),
786
+ channel: z7.string().optional()
631
787
  });
632
- var ChannelSchema = z6.object({
788
+ var ChannelSchema = z7.object({
633
789
  slack: SlackChannelSchema
634
790
  });
635
- var ConditionOperatorSchema = z6.enum(["lt", "gt", "lte", "gte", "eq"]);
636
- var ConditionSchema = z6.object({
637
- field: z6.string().min(1),
791
+ var ConditionOperatorSchema = z7.enum(["lt", "gt", "lte", "gte", "eq"]);
792
+ var ConditionSchema = z7.object({
793
+ field: z7.string().min(1),
638
794
  operator: ConditionOperatorSchema,
639
- value: z6.number()
795
+ value: z7.number()
640
796
  });
641
- var ReportScheduleSchema = z6.object({
642
- name: z6.string().min(1),
643
- type: z6.literal("report"),
644
- schedule: z6.string().min(1),
645
- timezone: z6.string().optional(),
797
+ var ReportScheduleSchema = z7.object({
798
+ name: z7.string().min(1),
799
+ type: z7.literal("report"),
800
+ schedule: z7.string().min(1),
801
+ timezone: z7.string().optional(),
646
802
  channel: ChannelSchema,
647
- charts: z6.array(z6.string().min(1)).min(1),
648
- params: z6.record(z6.unknown()).optional(),
649
- message: z6.string().optional(),
650
- notify_on_error: z6.boolean().optional()
651
- });
652
- var AlertScheduleSchema = z6.object({
653
- name: z6.string().min(1),
654
- type: z6.literal("alert"),
655
- schedule: z6.string().min(1),
656
- timezone: z6.string().optional(),
803
+ charts: z7.array(z7.string().min(1)).min(1),
804
+ params: z7.record(z7.unknown()).optional(),
805
+ message: z7.string().optional(),
806
+ notify_on_error: z7.boolean().optional()
807
+ });
808
+ var AlertScheduleSchema = z7.object({
809
+ name: z7.string().min(1),
810
+ type: z7.literal("alert"),
811
+ schedule: z7.string().min(1),
812
+ timezone: z7.string().optional(),
657
813
  channel: ChannelSchema,
658
- chart: z6.string().min(1),
659
- params: z6.record(z6.unknown()).optional(),
814
+ chart: z7.string().min(1),
815
+ params: z7.record(z7.unknown()).optional(),
660
816
  condition: ConditionSchema,
661
- cooldown: z6.string().optional(),
662
- message: z6.string().optional(),
663
- notify_on_error: z6.boolean().optional()
817
+ cooldown: z7.string().optional(),
818
+ message: z7.string().optional(),
819
+ notify_on_error: z7.boolean().optional()
664
820
  });
665
- var ScheduleSchema = z6.discriminatedUnion("type", [
821
+ var ScheduleSchema = z7.discriminatedUnion("type", [
666
822
  ReportScheduleSchema,
667
823
  AlertScheduleSchema
668
824
  ]);
669
825
 
826
+ // ../../packages/schema/dist/events.js
827
+ import { z as z8 } from "zod";
828
+ var EventSchema = z8.object({
829
+ date: z8.string(),
830
+ endDate: z8.string().optional(),
831
+ label: z8.string(),
832
+ description: z8.string().optional(),
833
+ color: z8.string().optional(),
834
+ charts: z8.array(z8.string()).optional()
835
+ });
836
+ var EventsFileSchema = z8.object({
837
+ events: z8.array(EventSchema).default([])
838
+ });
839
+
670
840
  export {
671
841
  ConnectionSchema,
672
842
  ChartSchema,
843
+ SemanticQuerySchema,
673
844
  ProjectSchema,
674
845
  DashboardSchema,
675
- ScheduleSchema
846
+ ScheduleSchema,
847
+ EventSchema,
848
+ EventsFileSchema
676
849
  };
677
- //# sourceMappingURL=chunk-UDRJFEJU.js.map
850
+ //# sourceMappingURL=chunk-X6LQGWUX.js.map