@quillsql/react 2.16.38 → 2.16.40

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.
package/dist/index.d.cts CHANGED
@@ -73,6 +73,8 @@ interface SelectComponentProps {
73
73
  isLoading?: boolean;
74
74
  hideEmptyOption?: boolean;
75
75
  disabled?: boolean;
76
+ /** Compact trigger (e.g. chat toolbar). */
77
+ size?: 'default' | 'sm';
76
78
  }
77
79
  interface MultiSelectComponentProps {
78
80
  label?: string;
@@ -516,12 +518,12 @@ type ColorMapType = {
516
518
  /**
517
519
  * A set of valid format values for the x and y axes of dashboard items.
518
520
  */
519
- type AxisFormat = 'percent' | 'dollar_amount' | 'dollar_cents' | 'whole_number' | 'one_decimal_place' | 'two_decimal_places' | 'percentage' | 'string' | 'yyyy' | 'MMM_dd' | 'MMM_yyyy' | 'MMM_dd_yyyy' | 'hh_ap_pm' | 'MMM_dd-MMM_dd' | 'MMM_dd_hh:mm_ap_pm' | 'wo, yyyy';
521
+ type AxisFormat$1 = 'percent' | 'dollar_amount' | 'dollar_cents' | 'whole_number' | 'one_decimal_place' | 'two_decimal_places' | 'percentage' | 'string' | 'yyyy' | 'MMM_dd' | 'MMM_yyyy' | 'MMM_dd_yyyy' | 'hh_ap_pm' | 'MMM_dd-MMM_dd' | 'MMM_dd_hh:mm_ap_pm' | 'wo, yyyy';
520
522
 
521
523
  interface Column$1 {
522
524
  field: string;
523
525
  label: string;
524
- format: AxisFormat;
526
+ format: AxisFormat$1;
525
527
  inferFormat?: boolean;
526
528
  }
527
529
  interface ColumnInternal extends Column$1 {
@@ -546,6 +548,10 @@ interface BasePivot {
546
548
  rowFieldType?: string;
547
549
  columnField?: string;
548
550
  columnFieldType?: string;
551
+ /** Source table for rowField (multi-table / disambiguation). */
552
+ rowFieldTable?: string;
553
+ /** Source table for columnField (multi-table / disambiguation). */
554
+ columnFieldTable?: string;
549
555
  sort?: boolean;
550
556
  sortDirection?: 'ASC' | 'DESC';
551
557
  sortField?: string;
@@ -554,7 +560,16 @@ interface BasePivot {
554
560
  triggerButtonText?: string;
555
561
  rowLimit?: number;
556
562
  columnValues?: string[];
563
+ dateBucket?: 'day' | 'week' | 'month' | 'year';
557
564
  }
565
+ type PivotAggregation = {
566
+ aggregationType: AggregationType;
567
+ valueField?: string;
568
+ valueFieldType?: string;
569
+ valueField2?: string;
570
+ valueField2Type?: string;
571
+ valueFieldTable?: string;
572
+ };
558
573
  interface SingleAggregationPivot extends BasePivot {
559
574
  aggregationType: AggregationType;
560
575
  valueField?: string;
@@ -569,13 +584,7 @@ interface MultiAggregationPivot extends BasePivot {
569
584
  valueField2?: never;
570
585
  valueField2Type?: never;
571
586
  valueFieldType?: never;
572
- aggregations: {
573
- valueField?: string;
574
- valueFieldType?: string;
575
- valueField2?: string;
576
- valueField2Type?: string;
577
- aggregationType: AggregationType;
578
- }[];
587
+ aggregations: PivotAggregation[];
579
588
  }
580
589
  type AggregationType = 'sum' | 'average' | 'min' | 'max' | 'count' | 'avg' | 'percentage';
581
590
  type PivotData = {
@@ -629,6 +638,29 @@ type ReportBuilderState = {
629
638
  limit: ReportBuilderLimit | null;
630
639
  };
631
640
 
641
+ /**
642
+ * Represents a table object returned from /schema2/:id
643
+ */
644
+ type Table$1 = {
645
+ _id: string;
646
+ isSelectStar: boolean;
647
+ displayName: string;
648
+ name: string;
649
+ description?: string;
650
+ columns: ColumnInternal[];
651
+ viewQuery: string;
652
+ customFieldInfo: any;
653
+ broken?: boolean;
654
+ error?: string;
655
+ ownerTenantFields?: string[];
656
+ };
657
+ interface UniqueValuesByTable {
658
+ [table: string]: UniqueValuesByColumn;
659
+ }
660
+ interface UniqueValuesByColumn {
661
+ [column: string]: string[];
662
+ }
663
+
632
664
  /**
633
665
  * ## QuillReport
634
666
  * Represents an individual item on a dashboard.
@@ -669,7 +701,7 @@ interface QuillReport {
669
701
  /** The field to use for this report's xAxis. */
670
702
  xAxisField: string;
671
703
  /** The format for this report's xAxis. */
672
- xAxisFormat: AxisFormat;
704
+ xAxisFormat: AxisFormat$1;
673
705
  /** The template flag for a report */
674
706
  template?: boolean;
675
707
  /**
@@ -681,7 +713,7 @@ interface QuillReport {
681
713
  /** The label to use for this yAxis. */
682
714
  label: string;
683
715
  /** The format of the data in this yAxis. */
684
- format: AxisFormat;
716
+ format: AxisFormat$1;
685
717
  }[];
686
718
  /**
687
719
  * The relative ordering of this report in relation to its siblings. Ordering
@@ -775,6 +807,14 @@ interface QuillReportInternal extends QuillReport {
775
807
  * When present, backend will generate SQL from this state instead of using queryString.
776
808
  */
777
809
  reportBuilderState?: ReportBuilderState;
810
+ /** String unique values grouped by table/column, used by filter builders. */
811
+ uniqueStringsByTable?: UniqueValuesByTable;
812
+ /** String unique values keyed by column name, used by filter builders. */
813
+ uniqueStringsByColumn?: UniqueValuesByColumn;
814
+ /** Legacy alias for unique string values keyed by column name. */
815
+ columnUniqueValues?: UniqueValuesByColumn;
816
+ /** Backward-compatible alias for unique string values keyed by column name. */
817
+ uniqueValues?: UniqueValuesByColumn;
778
818
  }
779
819
 
780
820
  /**
@@ -1315,6 +1355,43 @@ type QuillProviderProps = QuillCloudProviderProps | SelfHostedProviderProps;
1315
1355
  */
1316
1356
  declare const QuillProvider: ({ tenants, flags, publicKey, queryEndpoint, streamEndpoint, queryHeaders, children, theme, withCredentials, isAdmin, getAuthorizationToken, eventTracking, onChangelogs, }: QuillProviderProps) => react_jsx_runtime.JSX.Element;
1317
1357
 
1358
+ interface TableComponentProps {
1359
+ rows: object[];
1360
+ rowCount?: number;
1361
+ rowCountIsLoading?: boolean;
1362
+ columns: {
1363
+ label: string;
1364
+ field: string;
1365
+ format?: string;
1366
+ }[];
1367
+ currentPage: number;
1368
+ sort?: {
1369
+ field: string;
1370
+ direction: string;
1371
+ };
1372
+ className?: string;
1373
+ containerStyle?: React$1.CSSProperties;
1374
+ isLoading?: boolean;
1375
+ hideCSVDownloadButton?: boolean;
1376
+ downloadCSV?: () => void;
1377
+ LoadingComponent?: () => React$1.JSX.Element;
1378
+ DownloadCSVButtonComponent?: (props: ButtonComponentProps) => React$1.JSX.Element;
1379
+ rowsPerPage?: number;
1380
+ emptyStateLabel?: string;
1381
+ onPageChange?: (page: number) => void;
1382
+ onSortChange?: (sort: {
1383
+ field: string;
1384
+ direction: string;
1385
+ }) => void;
1386
+ headerBackgroundColor?: string;
1387
+ footerBackgroundColor?: string;
1388
+ borderRadius?: string | number;
1389
+ borderLeft?: string;
1390
+ borderRight?: string;
1391
+ borderTop?: string;
1392
+ borderBottom?: string;
1393
+ }
1394
+
1318
1395
  interface BaseChartProps {
1319
1396
  colors?: string[];
1320
1397
  containerStyle?: React.CSSProperties;
@@ -1512,7 +1589,7 @@ interface ChartProps {
1512
1589
  declare function Chart({ colors, reportId, className, containerStyle, isAnimationActive, hideXAxis, hideYAxis, hideCartesianGrid, hideHorizontalCartesianGrid, hideVerticalCartesianGrid, hideSubsequentXAxisTicks, cartesianGridLineStyle, cartesianGridLineColor, comparisonLineStyle, hideDateRangeFilter, hideFilters, mapColorsToFields, LoadingComponent, SelectComponent, MultiSelectComponent, DateRangePickerComponent, FilterContainerComponent, TableComponent, MetricComponent, filters, onClickChartElement, dateBucket, propagateChanges, isAdmin, }: ChartProps): react_jsx_runtime.JSX.Element;
1513
1590
  interface ChartDisplayProps extends WithConfig {
1514
1591
  loading: boolean;
1515
- ErrorComponent?: ({ errorMessage }: {
1592
+ ErrorComponent?: ({ errorMessage, }: {
1516
1593
  errorMessage: string;
1517
1594
  }) => React.JSX.Element;
1518
1595
  colorMap?: ColorMapType;
@@ -1532,8 +1609,10 @@ interface ChartDisplayProps extends WithConfig {
1532
1609
  showLegend?: boolean;
1533
1610
  tableRowsLoading?: boolean;
1534
1611
  disableTableSort?: boolean;
1612
+ /** When `chartType` is `table`, applied to QuillTable's outer frame only (not cell lines). */
1613
+ tableChartWrapperBorders?: Pick<TableComponentProps, 'borderRadius' | 'borderLeft' | 'borderRight' | 'borderTop' | 'borderBottom'>;
1535
1614
  }
1536
- declare const ChartDisplay: ({ reportId, config, colors, className, containerStyle, hideXAxis, hideYAxis, hideCartesianGrid, hideDateRangeFilter, hideHorizontalCartesianGrid, hideVerticalCartesianGrid, hideSubsequentXAxisTicks, cartesianGridLineStyle, cartesianGridLineColor, comparisonLineStyle, isAnimationActive, scrollable, loading, ErrorComponent, colorMap, LoadingComponent, onPageChange, onSortChange, onClickChartElement, overrideTheme, referenceLines, showLegend, tableRowsLoading, }: ChartDisplayProps) => react_jsx_runtime.JSX.Element;
1615
+ declare const ChartDisplay: ({ reportId, config, colors, className, containerStyle, hideXAxis, hideYAxis, hideCartesianGrid, hideDateRangeFilter, hideHorizontalCartesianGrid, hideVerticalCartesianGrid, hideSubsequentXAxisTicks, cartesianGridLineStyle, cartesianGridLineColor, comparisonLineStyle, isAnimationActive, scrollable, loading, ErrorComponent, colorMap, LoadingComponent, onPageChange, onSortChange, onClickChartElement, overrideTheme, referenceLines, showLegend, tableRowsLoading, tableChartWrapperBorders, }: ChartDisplayProps) => react_jsx_runtime.JSX.Element;
1537
1616
 
1538
1617
  /**
1539
1618
  * Props for the Quill Table component.
@@ -1601,6 +1680,7 @@ interface TableProps {
1601
1680
  columns?: {
1602
1681
  label: string;
1603
1682
  field: string;
1683
+ format?: string;
1604
1684
  }[];
1605
1685
  /**
1606
1686
  * The placeholder filename to use when downloading this table as a csv file.
@@ -1676,6 +1756,12 @@ interface TableProps {
1676
1756
  * Styles the top-level container of the Table.
1677
1757
  */
1678
1758
  containerStyle?: React$1.CSSProperties;
1759
+ /** Passed through to QuillTable when rendering with `rows` / `columns`. */
1760
+ borderRadius?: string | number;
1761
+ borderLeft?: string;
1762
+ borderRight?: string;
1763
+ borderTop?: string;
1764
+ borderBottom?: string;
1679
1765
  /** An array of dashboard filters that are indicated by the frontend dev. */
1680
1766
  filters?: Filter[];
1681
1767
  }
@@ -1710,7 +1796,7 @@ interface TableProps {
1710
1796
  * ### Table API
1711
1797
  * @see https://docs.quillsql.com/components/table
1712
1798
  */
1713
- declare const Table$1: ({ TableComponent, ...props }: TableProps) => react_jsx_runtime.JSX.Element | null;
1799
+ declare const Table: ({ TableComponent, ...props }: TableProps) => react_jsx_runtime.JSX.Element | null;
1714
1800
 
1715
1801
  /**
1716
1802
  * Props for the Quill SQLEditor component.
@@ -2611,26 +2697,303 @@ interface ChatProps {
2611
2697
  agentEndpoint?: string;
2612
2698
  suggestions?: string[];
2613
2699
  }
2700
+ type ChatModelId = 'gemini-2-flash' | 'gemini-2.5-flash' | 'gemini-3-flash-preview' | 'gpt-5.1' | 'opus-4.5' | 'kimi-k2.5';
2614
2701
  declare function Chat({ selectedDashboard, ChartViewComponent, agentEndpoint, suggestions, }: ChatProps): react_jsx_runtime.JSX.Element;
2615
2702
 
2703
+ type QueryBuilderCombinator = 'and' | 'or';
2704
+ type QueryBuilderRule = {
2705
+ field: string;
2706
+ operator: string;
2707
+ value: unknown;
2708
+ };
2709
+ type QueryBuilderRuleGroupEntry = QueryBuilderRule | QueryBuilderRuleGroup | QueryBuilderCombinator;
2710
+ type QueryBuilderRuleGroup = {
2711
+ combinator?: QueryBuilderCombinator;
2712
+ rules: QueryBuilderRuleGroupEntry[];
2713
+ };
2714
+ type QueryBuilderFieldType = 'string' | 'number' | 'date' | 'boolean' | 'null';
2715
+ type QueryBuilderOperatorOption = {
2716
+ name: string;
2717
+ value: string;
2718
+ label: string;
2719
+ arity?: 'unary' | 'binary' | number;
2720
+ };
2721
+
2722
+ /**
2723
+ * Default `value` for a new react-querybuilder rule given a Quill operator.
2724
+ * List operators (`in` / `notIn`) need `[]` so the multiselect editor works
2725
+ * with `listsAsArrays`; everything else starts as an empty string.
2726
+ */
2727
+ declare const defaultFilterRuleValueForOperator: (operator: unknown) => unknown;
2728
+ /**
2729
+ * One-rule react-querybuilder tree seeded from the first field in the catalog,
2730
+ * using that field's first operator and a matching default value. Used for the
2731
+ * "Add filter" empty state, where react-querybuilder's own "+ Rule" button is
2732
+ * not rendered yet.
2733
+ */
2734
+ declare const buildSeededFilterQuery: (queryBuilderProps: Pick<UseFormQueryBuilderProps, "fields" | "getOperators"> | null | undefined) => QueryBuilderRuleGroup;
2735
+ type FilterDraftQueryBuilderProps = UseFormQueryBuilderProps & {
2736
+ /** Committed-or-draft tree react-querybuilder hydrates from on mount (uncontrolled mode). */
2737
+ defaultQuery: QueryBuilderRuleGroup;
2738
+ onQueryChange: (next: unknown) => void;
2739
+ addRuleToNewGroups: true;
2740
+ getDefaultValue: (rule: {
2741
+ operator?: unknown;
2742
+ }) => unknown;
2743
+ };
2744
+ type UseReportFilterDraft = {
2745
+ /**
2746
+ * Pass as `key` on `QueryBuilder` (not inside the spread — React warns on
2747
+ * spread `key`). Changes whenever react-querybuilder must rehydrate from
2748
+ * `defaultQuery`: report switch, committed filters change, field catalog
2749
+ * change, or `resetFilterDraft`.
2750
+ */
2751
+ filterDraftKey: string;
2752
+ /** Spread onto `react-querybuilder`'s `QueryBuilder`: `<QueryBuilder key={filterDraftKey} {...filterDraftQueryBuilderProps} />`. */
2753
+ filterDraftQueryBuilderProps: FilterDraftQueryBuilderProps;
2754
+ /** Draft differs from committed filters (commit would change the report). */
2755
+ isFilterDraftDirty: boolean;
2756
+ /** Draft tree has no rules at all; show an "Add filter" affordance instead of the builder. */
2757
+ isFilterDraftEmpty: boolean;
2758
+ /** Commit the draft via `setFilters` (report/chart refresh follows). */
2759
+ commitFilterDraft: () => void;
2760
+ /** Drop the draft and rehydrate the builder from committed filters. */
2761
+ resetFilterDraft: () => void;
2762
+ /** Seed a first rule (field + operator + default value) and leave the empty state. */
2763
+ seedFilterDraft: () => void;
2764
+ };
2765
+
2616
2766
  type SelectOption = {
2617
2767
  label: string;
2618
2768
  value: string;
2619
2769
  };
2770
+ type UseFormTableRow = Record<string, unknown>;
2771
+ type UseFormTableColumn = {
2772
+ label: string;
2773
+ field: string;
2774
+ format: string;
2775
+ };
2776
+ type UseFormTable = {
2777
+ rows: UseFormTableRow[];
2778
+ columns: UseFormTableColumn[];
2779
+ getColumnFormat: (field: string) => string;
2780
+ formatCellValue: (field: string, value: unknown) => string;
2781
+ getFormattedCellValue: (row: UseFormTableRow, field: string) => string;
2782
+ };
2783
+ type ColumnSelectionOption = {
2784
+ value: string;
2785
+ label: string;
2786
+ field: string;
2787
+ tableName: string;
2788
+ type: string;
2789
+ };
2790
+ type UseFormDisplayColumn = ReportBuilderColumn & {
2791
+ format?: string;
2792
+ };
2793
+ type SetReportBuilderColumnInput = Partial<UseFormDisplayColumn> & {
2794
+ field: string;
2795
+ label?: string;
2796
+ };
2797
+ type TableColumnsControllerItem = {
2798
+ id: string;
2799
+ label: string;
2800
+ defaultLabel: string;
2801
+ customLabel: string;
2802
+ /** Persisted axis format value (e.g. `whole_number`). */
2803
+ format: string;
2804
+ /** Format preset label (same strings as chart axis / `tableFormatOptions`). */
2805
+ formatLabel: string;
2806
+ field: string;
2807
+ tableName: string;
2808
+ };
2809
+ type TableColumnListItem = {
2810
+ id: string;
2811
+ label: string;
2812
+ visible: true;
2813
+ /** Axis format preset label (matches `tableFormatOptions` / chart axis). */
2814
+ format: string;
2815
+ /**
2816
+ * When set, overrides the shared `formatOptions` for this row (e.g. pivot date bucket).
2817
+ */
2818
+ formatOptions?: string[];
2819
+ };
2820
+ /** Selected columns + mutation methods. Pair with `columnOptions` from `useReport` (like `datasources` / `datasourceOptions`). */
2821
+ type TableColumnsController = {
2822
+ items: TableColumnsControllerItem[];
2823
+ /** Schema option per column id (`value` === id) — includes `field`, `tableName`, etc. */
2824
+ optionById: ReadonlyMap<string, ColumnSelectionOption>;
2825
+ byId: ReadonlyMap<string, TableColumnsControllerItem>;
2826
+ /** Ready-made rows for table/column-picker UIs (`id`, `label`, `format` display string). */
2827
+ columnList: TableColumnListItem[];
2828
+ /** Build the `columns` array for `setReport({ columns })` from ordered ids. */
2829
+ getSetReportColumns: (ids: string[]) => SetReportBuilderColumnInput[];
2830
+ reorder: (oldIndex: number, newIndex: number) => void;
2831
+ /** Reorder to match a full id list (e.g. after drag-and-drop column list UIs). */
2832
+ reorderFromOrder: (nextIds: string[]) => void;
2833
+ remove: (id: string) => void;
2834
+ toggle: (id: string) => void;
2835
+ update: (id: string, updates: Partial<{
2836
+ fieldId: string;
2837
+ label: string;
2838
+ format: string;
2839
+ }>) => void;
2840
+ /**
2841
+ * Build `setReport({ columns: { patch } })` for a table column sidebar edit;
2842
+ * `setReport` expands it to a full `columns` list and/or `chartAxes`. Returns
2843
+ * null only when `id` is empty.
2844
+ */
2845
+ getColumnSidebarSetReportInput: (id: string, updates: Partial<{
2846
+ fieldId: string;
2847
+ label: string;
2848
+ format: string;
2849
+ }>) => SetReportBuilderInput | null;
2850
+ /**
2851
+ * When true (pivot + chartType table), the list mirrors `chart.columns`; reorder,
2852
+ * add, remove, and field swap are disabled — only label/format apply via chart axes.
2853
+ */
2854
+ structureEditsLocked: boolean;
2855
+ };
2856
+ type ChartAxisFieldOption = {
2857
+ value: string;
2858
+ label: string;
2859
+ format: AxisFormat;
2860
+ };
2861
+ type ChartYAxisControllerItem = {
2862
+ id: string;
2863
+ field: string;
2864
+ label: string;
2865
+ format: AxisFormat;
2866
+ };
2867
+ type ChartAxesController = {
2868
+ xAxis: {
2869
+ field: string;
2870
+ format: AxisFormat;
2871
+ options: ChartAxisFieldOption[];
2872
+ formatOptions: SelectOption[];
2873
+ update: (updates: Partial<{
2874
+ field: string;
2875
+ format: AxisFormat;
2876
+ }>) => void;
2877
+ };
2878
+ yAxis: {
2879
+ items: ChartYAxisControllerItem[];
2880
+ options: ChartAxisFieldOption[];
2881
+ formatOptions: SelectOption[];
2882
+ add: (field?: string) => void;
2883
+ remove: (id: string) => void;
2884
+ reorder: (oldIndex: number, newIndex: number) => void;
2885
+ update: (id: string, updates: Partial<{
2886
+ field: string;
2887
+ label: string;
2888
+ format: AxisFormat;
2889
+ }>) => void;
2890
+ };
2891
+ };
2620
2892
  type ColumnSelectorChangeValue = string[];
2893
+ /**
2894
+ * Table column sidebar edit under {@link SetReportBuilderInput.columns}: expands
2895
+ * inside `setReport` to a full `columns` array and/or `chartAxes` (pivot table chart).
2896
+ */
2897
+ type SetReportTableColumnSidebarPatch = {
2898
+ patch: {
2899
+ id: string;
2900
+ label?: string;
2901
+ format?: string;
2902
+ fieldId?: string;
2903
+ };
2904
+ };
2621
2905
  type AggregationStateItem = Partial<{
2622
2906
  valueField: string;
2623
2907
  valueField2?: string;
2624
2908
  aggregationType: AggregationType;
2909
+ /** Resolved datasource table for `valueField` (mirrors `aggregationTablesByIndex`). */
2910
+ valueFieldTable?: string;
2625
2911
  }>;
2626
2912
  type AggregationOption = {
2627
2913
  key: string;
2628
2914
  label: string;
2629
- value?: string;
2915
+ value: string;
2630
2916
  options: SelectOption[];
2631
2917
  };
2918
+ type AxisFormat = QuillReportInternal['yAxisFields'][number]['format'];
2919
+ type QueryBuilderFieldValueOption = {
2920
+ name: string;
2921
+ label: string;
2922
+ value: string;
2923
+ };
2924
+ type UseFormQueryBuilderField = {
2925
+ name: string;
2926
+ label: string;
2927
+ inputType: string;
2928
+ quillFieldType: QueryBuilderFieldType;
2929
+ values?: QueryBuilderFieldValueOption[];
2930
+ };
2931
+ type UseFormQueryBuilderProps = {
2932
+ fields: UseFormQueryBuilderField[];
2933
+ listsAsArrays: true;
2934
+ getOperators: (field: string, misc?: {
2935
+ fieldData?: Partial<UseFormQueryBuilderField>;
2936
+ }) => QueryBuilderOperatorOption[];
2937
+ getInputType: (field: string, operator: string, misc?: {
2938
+ fieldData?: Partial<UseFormQueryBuilderField>;
2939
+ }) => 'text' | 'number' | 'date' | 'checkbox';
2940
+ getValueEditorType: (field: string, operator: string, misc?: {
2941
+ fieldData?: Partial<UseFormQueryBuilderField>;
2942
+ }) => 'multiselect' | undefined;
2943
+ getValues: (field: string, operator: string, misc?: {
2944
+ fieldData?: Partial<UseFormQueryBuilderField>;
2945
+ }) => QueryBuilderFieldValueOption[];
2946
+ };
2947
+ /** Maps table column format dropdown values to persisted report column `format` (matches `setReport({ columns })` / `update`). */
2948
+ declare function tableColumnFormatFromUiSelection(raw: string): string;
2949
+ /** Shape expected by chart config sidebars that mirror `AxisConfig` (e.g. Quill Chat ConfigForm). */
2950
+ type UseFormAxisConfig = {
2951
+ xAxis: {
2952
+ field: string;
2953
+ label: string;
2954
+ format: string;
2955
+ show: boolean;
2956
+ rotation: number;
2957
+ fontSize: number;
2958
+ };
2959
+ yAxis: {
2960
+ fields: Array<{
2961
+ field: string;
2962
+ label: string;
2963
+ format: string;
2964
+ color: string;
2965
+ }>;
2966
+ label: string;
2967
+ show: boolean;
2968
+ min: string;
2969
+ max: string;
2970
+ fontSize: number;
2971
+ };
2972
+ legend: {
2973
+ show: boolean;
2974
+ };
2975
+ };
2976
+ type SetReportChartAxesInput = {
2977
+ xAxis?: Partial<{
2978
+ field: string;
2979
+ /** Custom X-axis title; empty string clears the override and restores the report/field default. */
2980
+ label: string;
2981
+ format: AxisFormat | string;
2982
+ }>;
2983
+ yAxis?: {
2984
+ fields: Array<{
2985
+ field: string;
2986
+ label?: string;
2987
+ format?: AxisFormat | string;
2988
+ }>;
2989
+ };
2990
+ };
2632
2991
  interface SetReportBuilderInput {
2633
- columns?: ColumnSelectorChangeValue | ReportBuilderColumn[];
2992
+ /**
2993
+ * Column picker ids, a full column list, or `{ patch: { id, … } }` for sidebar
2994
+ * edits (expanded inside `setReport` into a full list and/or `chartAxes`).
2995
+ */
2996
+ columns?: ColumnSelectorChangeValue | SetReportBuilderColumnInput[] | SetReportTableColumnSidebarPatch;
2634
2997
  filters?: Filter[];
2635
2998
  groupRowsBy?: string;
2636
2999
  groupColumnsBy?: string;
@@ -2638,25 +3001,171 @@ interface SetReportBuilderInput {
2638
3001
  index: number;
2639
3002
  value: string;
2640
3003
  };
2641
- sort?: ReportBuilderSort[];
3004
+ sort?: ReportBuilderSort[] | string;
2642
3005
  limit?: ReportBuilderLimit | null;
2643
3006
  chartType?: string;
3007
+ /** When set, updates chart legend visibility (same source as `showLegend` from `useReport`). */
3008
+ showLegend?: boolean;
3009
+ /** When set, merges into chart axis edits (use with returned `xAxis` / `yAxis` / options). */
3010
+ chartAxes?: SetReportChartAxesInput;
3011
+ /**
3012
+ * Schema table names for datasource / multi-table picker UIs.
3013
+ * Empty array clears the override (report base tables apply again).
3014
+ */
3015
+ datasources?: string[];
2644
3016
  }
2645
- interface UseFormOptions {
3017
+ interface UseReportOptions {
2646
3018
  useInMemoryEngines?: boolean;
3019
+ reportOverride?: QuillReportInternal | null;
3020
+ initialReportBuilderState?: ReportBuilderState | null;
3021
+ /**
3022
+ * When the report payload has no `dashboardName` and the client has no
3023
+ * `defaultDashboard`, use this for engine tasks that require a dashboard
3024
+ * (e.g. filter unique values).
3025
+ */
3026
+ destinationDashboardName?: string;
3027
+ /**
3028
+ * When true (default), filter pickers, pivot row/column group-by options,
3029
+ * aggregation field dropdowns, and filter-builder field lists only include
3030
+ * columns from the selected datasource
3031
+ * tables (`setReport({ datasources })` / report base tables)—not other tables that
3032
+ * happen to be FK-joinable but were not selected. When false, behaviour matches
3033
+ * the prior schema-wide option lists when no table scope applies.
3034
+ */
3035
+ restrictFieldOptionsToSelectedDatasources?: boolean;
2647
3036
  }
2648
- declare function useForm(reportId: string, options?: UseFormOptions): {
2649
- columns: ColumnSelectorChangeValue;
2650
- columnsOptions: {
3037
+ /**
3038
+ * `saveChanges` from `useReport`. Always returns a Promise so UIs can `await`
3039
+ * before navigation or feedback. Resolves to `undefined` when persist is skipped
3040
+ * (e.g. missing client, dashboard name, or report state).
3041
+ */
3042
+ type UseReportSaveChangesFn = () => Promise<unknown>;
3043
+ /**
3044
+ * @param reportIdArg When omitted, the hook can bootstrap a report via `saveReport`
3045
+ * (`create-report`) on the first `setReport({ datasources })`, after schema is available.
3046
+ * Use `destinationDashboardName` so the server can resolve a dashboard for create-report.
3047
+ */
3048
+ declare function useReport(reportIdArg?: string, options?: UseReportOptions): {
3049
+ /** True while `report-builder-unique-values` runs for filter value options (not chart/table load). */
3050
+ filterUniqueValuesLoading: boolean;
3051
+ limit: ReportBuilderLimit | null;
3052
+ chartTypes: {
3053
+ label: string;
3054
+ value: string;
3055
+ }[];
3056
+ columnsOptions: ColumnSelectionOption[];
3057
+ tableColumnOptions: ColumnSelectionOption[];
3058
+ tableColumns: TableColumnsController;
3059
+ setReport: (nextState: SetReportBuilderInput) => void;
3060
+ saveChanges: UseReportSaveChangesFn;
3061
+ setFilters: (nextFilters: QueryBuilderRuleGroup) => void;
3062
+ setReportBuilder: (nextState: SetReportBuilderInput) => void;
3063
+ /** Current report-builder slice (tables, columns, filters, pivot, sort); pass to e.g. `Chat` as `reportBuilderState`. */
3064
+ reportBuilderState: ReportBuilderState | undefined;
3065
+ filterDraftKey: string;
3066
+ filterDraftQueryBuilderProps: FilterDraftQueryBuilderProps;
3067
+ isFilterDraftDirty: boolean;
3068
+ isFilterDraftEmpty: boolean;
3069
+ commitFilterDraft: () => void;
3070
+ resetFilterDraft: () => void;
3071
+ seedFilterDraft: () => void;
3072
+ chart: {
3073
+ xAxisField: string;
3074
+ xAxisFormat: AxisFormat$1;
3075
+ xAxisLabel: string;
3076
+ yAxisFields: {
3077
+ field: string;
3078
+ label: string;
3079
+ format: AxisFormat$1;
3080
+ }[];
3081
+ columns: Column$1[];
3082
+ pivotQuery?: string;
3083
+ comparisonPivotQuery?: string;
3084
+ itemQuery?: string[];
3085
+ referencedTables?: string[];
3086
+ referencedColumns?: {
3087
+ [table: string]: string[];
3088
+ };
3089
+ error?: string;
3090
+ adminError?: string;
3091
+ triggerReload?: boolean;
3092
+ columnInternal: ColumnInternal[];
3093
+ loadingRows?: boolean;
3094
+ flags?: {
3095
+ [tenantField: string]: string[] | "QUILL_ALL_TENANTS";
3096
+ };
3097
+ reportBuilderState?: ReportBuilderState;
3098
+ uniqueStringsByTable?: UniqueValuesByTable;
3099
+ uniqueStringsByColumn?: UniqueValuesByColumn;
3100
+ columnUniqueValues?: UniqueValuesByColumn;
3101
+ uniqueValues?: UniqueValuesByColumn;
2651
3102
  id: string;
2652
3103
  name: string;
2653
- columns: {
2654
- id: string;
2655
- name: string;
2656
- type: string;
3104
+ dashboardName: string;
3105
+ rows: {
3106
+ [key: string]: string;
3107
+ }[];
3108
+ chartType: string;
3109
+ showLegend?: boolean;
3110
+ dateField?: {
3111
+ table: string;
3112
+ field: string;
3113
+ };
3114
+ pivot: Pivot | null;
3115
+ template?: boolean;
3116
+ order: number;
3117
+ compareRows: {
3118
+ [key: string]: string;
3119
+ }[];
3120
+ filtersApplied?: InternalFilter[];
3121
+ pagination?: Pagination;
3122
+ sort?: {
3123
+ field: string;
3124
+ direction: string;
3125
+ };
3126
+ rowCount: number;
3127
+ queryString: string;
3128
+ filterMap?: {
3129
+ [key: string]: {
3130
+ table: string;
3131
+ field: string;
3132
+ };
3133
+ };
3134
+ referenceLines?: {
3135
+ label: string;
3136
+ query: [number, number] | string;
2657
3137
  }[];
3138
+ referenceLineYValues?: {
3139
+ label: string;
3140
+ query: [number, number];
3141
+ }[];
3142
+ includeCustomFields?: boolean;
3143
+ columnsWithCustomFields?: Column$1[];
3144
+ pivotRows?: {
3145
+ [key: string]: string;
3146
+ }[];
3147
+ pivotColumns?: ColumnInternal[];
3148
+ pivotRowCount?: number;
3149
+ } | undefined;
3150
+ chartLoading: boolean;
3151
+ table: UseFormTable;
3152
+ tableLoading: boolean;
3153
+ loading: boolean;
3154
+ /** Report title: matching `sourceReport.name`, else `report-name` task, else empty. */
3155
+ name: string;
3156
+ /**
3157
+ * Resolved report id: the `reportId` argument when provided, otherwise the id
3158
+ * returned from `create-report` after the first datasource selection.
3159
+ */
3160
+ reportId: string | undefined;
3161
+ datasources: {
3162
+ id: string;
3163
+ label: string;
3164
+ }[];
3165
+ datasourceOptions: {
3166
+ id: string;
3167
+ label: string;
2658
3168
  }[];
2659
- filters: Filter[];
2660
3169
  groupRowsBy: string | undefined;
2661
3170
  groupRowsByOptions: SelectOption[];
2662
3171
  groupColumnsBy: string | undefined;
@@ -2665,53 +3174,162 @@ declare function useForm(reportId: string, options?: UseFormOptions): {
2665
3174
  valueField: string;
2666
3175
  valueField2?: string;
2667
3176
  aggregationType: AggregationType;
3177
+ /** Resolved datasource table for `valueField` (mirrors `aggregationTablesByIndex`). */
3178
+ valueFieldTable?: string;
2668
3179
  }>[];
3180
+ aggregationOptions: AggregationOption[];
2669
3181
  aggregationDescriptionOptions: {
2670
3182
  label: string;
2671
3183
  value: string;
2672
3184
  }[];
2673
- aggregationOptions: AggregationOption[];
2674
- sort: {
3185
+ sort: string;
3186
+ sortOptions: {
2675
3187
  label: string;
2676
3188
  value: string;
2677
3189
  }[];
2678
- sortOptions: SelectOption[];
2679
- chartTypes: {
3190
+ chartType: string | undefined;
3191
+ chartTypeOptions: {
2680
3192
  label: string;
2681
3193
  value: string;
2682
3194
  }[];
2683
- chartTypeOptions: {
3195
+ /** Encoded field keys for the current column selection (for `setReport({ columns })`, etc.). */
3196
+ columnIds: ColumnSelectorChangeValue;
3197
+ /** Selected columns + `reorder` / `toggle` / `update` / `remove`. */
3198
+ columns: TableColumnsController;
3199
+ /** Schema columns for current datasources — pool for the table column picker. */
3200
+ columnOptions: ColumnSelectionOption[];
3201
+ xAxis: {
3202
+ field: string;
3203
+ format: AxisFormat;
3204
+ options: ChartAxisFieldOption[];
3205
+ formatOptions: SelectOption[];
3206
+ update: (updates: Partial<{
3207
+ field: string;
3208
+ format: AxisFormat;
3209
+ }>) => void;
3210
+ };
3211
+ xAxisOptions: {
3212
+ value: string;
2684
3213
  label: string;
3214
+ format: string;
3215
+ }[];
3216
+ yAxis: {
3217
+ items: ChartYAxisControllerItem[];
3218
+ options: ChartAxisFieldOption[];
3219
+ formatOptions: SelectOption[];
3220
+ add: (field?: string) => void;
3221
+ remove: (id: string) => void;
3222
+ reorder: (oldIndex: number, newIndex: number) => void;
3223
+ update: (id: string, updates: Partial<{
3224
+ field: string;
3225
+ label: string;
3226
+ format: AxisFormat;
3227
+ }>) => void;
3228
+ };
3229
+ yAxisOptions: {
2685
3230
  value: string;
3231
+ label: string;
3232
+ format: string;
2686
3233
  }[];
2687
- chartType: string | undefined;
2688
- chart: QuillReportInternal | undefined;
2689
- limit: ReportBuilderLimit | null;
2690
- setReport: (nextState: SetReportBuilderInput) => void;
3234
+ /** Same strings as `axisSelectFormatLabels` (X/Y share chart format presets). */
3235
+ xAxisFormatOptions: string[];
3236
+ yAxisFormatOptions: string[];
3237
+ /** Table column format dropdown labels (same set as chart axis formats). */
3238
+ tableFormatOptions: string[];
3239
+ showLegend: boolean;
3240
+ axisConfig: UseFormAxisConfig;
3241
+ availableFields: {
3242
+ id: string;
3243
+ label: string;
3244
+ type: string;
3245
+ }[];
3246
+ axisSelectFormatLabels: string[];
3247
+ /** @deprecated Prefer top-level `xAxis`, `yAxis`, and `showLegend`. */
3248
+ chartAxes: ChartAxesController;
3249
+ /** @deprecated Prefer top-level `xAxisOptions` / `yAxisOptions`. */
3250
+ chartAxisOptions: {
3251
+ xAxis: {
3252
+ value: string;
3253
+ label: string;
3254
+ format: string;
3255
+ }[];
3256
+ yAxis: {
3257
+ value: string;
3258
+ label: string;
3259
+ format: string;
3260
+ }[];
3261
+ };
3262
+ hasTableDrivenColumnOrder: boolean;
3263
+ filters: QueryBuilderRuleGroup;
3264
+ filterQueryBuilderProps: UseFormQueryBuilderProps;
2691
3265
  };
2692
3266
 
3267
+ /** Normalize react-querybuilder filter trees before stack conversion / persistence. */
3268
+ type QueryBuilderDisplayRule = {
3269
+ id?: unknown;
3270
+ field?: unknown;
3271
+ operator?: unknown;
3272
+ value?: unknown;
3273
+ };
3274
+ type QueryBuilderDisplayGroup = {
3275
+ combinator?: unknown;
3276
+ rules: unknown[];
3277
+ };
3278
+ declare const isQueryBuilderDisplayGroup: (value: unknown) => value is QueryBuilderDisplayGroup;
3279
+ declare const isQueryBuilderDisplayRule: (value: unknown) => value is QueryBuilderDisplayRule;
3280
+ declare const stripQueryBuilderTransientFields: (value: unknown, seen?: WeakMap<object, unknown>) => unknown;
3281
+ /** Merge relative-date rule values against a prior tree (typically last committed filters). */
3282
+ declare const normalizeRelativeDateRules: (nextQuery: unknown, previousQuery: unknown) => unknown;
3283
+ /** Strip + relative-date normalization used by `useReport` `setFilters` and draft-vs-committed UI. */
3284
+ declare function prepareQueryBuilderFiltersForSet(next: unknown, previousCommitted: unknown): unknown;
3285
+ /**
3286
+ * Whether a react-querybuilder draft differs from committed filters in a way that matters
3287
+ * for Apply (ignores transient `id` / `path`, etc.).
3288
+ */
3289
+ declare function areQueryBuilderFilterDraftsDirty(draft: unknown, committed: unknown): boolean;
3290
+ /** Number of leaf filter rules (excludes empty groups). */
3291
+ declare function countFilterRules(value: unknown): number;
3292
+
3293
+ type ReportDetailProps = {
3294
+ /** Display name from the loaded report (e.g. `useReport` `name`). Rendered above the chart when non-empty. */
3295
+ reportTitle?: string;
3296
+ chart?: any;
3297
+ chartLoading: boolean;
3298
+ table?: {
3299
+ columns?: unknown[];
3300
+ rows?: unknown[];
3301
+ };
3302
+ tableLoading: boolean;
3303
+ showLegend?: boolean;
3304
+ /** Strip QuillTable's outer frame when chart type is `table` (cell borders unchanged). */
3305
+ hideTableChartOuterBorder?: boolean;
3306
+ };
3307
+ declare function ReportDetail({ reportTitle, chart, chartLoading, table, tableLoading, showLegend, hideTableChartOuterBorder, }: ReportDetailProps): react_jsx_runtime.JSX.Element;
3308
+
2693
3309
  declare const quillFormat: ({ value, format, }: {
2694
3310
  value: any;
2695
3311
  format: string;
2696
3312
  }) => string;
2697
3313
 
3314
+ /** Refetch dashboard config and filters; optional report upsert/delete and filter overrides. */
3315
+ type UseDashboardReload = (overrideDashboardName?: string, fetchFromServer?: boolean, reportAction?: {
3316
+ report: QuillReport | {
3317
+ id: string;
3318
+ };
3319
+ action: 'upsert' | 'delete';
3320
+ }, overrideFilters?: {
3321
+ filters: InternalDashboardFilter[];
3322
+ editedFilterLabel?: string;
3323
+ refetchReports?: boolean;
3324
+ }, options?: {
3325
+ preserveExistingDateFilter?: boolean;
3326
+ }) => Promise<void>;
2698
3327
  declare const useDashboardInternal: (dashboardName: string | null, customFilters?: InternalFilter[]) => {
2699
3328
  data: DashboardConfig | null;
2700
3329
  dashboardFilters: InternalDashboardFilter[] | null;
2701
3330
  isLoading: boolean | undefined;
2702
3331
  isDashboardFilterLoading: (filterName: string) => boolean | undefined;
2703
- reload: (overrideDashboardName?: string, fetchFromServer?: boolean, reportAction?: {
2704
- report: QuillReport | {
2705
- id: string;
2706
- };
2707
- action: "upsert" | "delete";
2708
- }, overrideFilters?: {
2709
- filters: InternalDashboardFilter[];
2710
- editedFilterLabel?: string;
2711
- refetchReports?: boolean;
2712
- }, options?: {
2713
- preserveExistingDateFilter?: boolean;
2714
- }) => Promise<void>;
3332
+ reload: UseDashboardReload;
2715
3333
  setSectionOrder: (sectionOrder: {
2716
3334
  section: string;
2717
3335
  _id?: string;
@@ -2767,6 +3385,12 @@ declare const useDashboards: () => {
2767
3385
  }) => Promise<void>;
2768
3386
  deleteDashboard: (name: string) => Promise<void>;
2769
3387
  };
3388
+ /**
3389
+ * `reload` is the same reference as `useDashboardInternal(dashboardName).reload`.
3390
+ * Use after structural changes or report upsert/delete; use `applyFilters` for
3391
+ * filter-value updates; use `forceCacheRefresh` to bypass cached report payloads
3392
+ * when cache is on. Calling `reload` every render adds network load.
3393
+ */
2770
3394
  declare const useDashboard: (dashboardName: string, config?: {
2771
3395
  pageSize?: number;
2772
3396
  cacheEnabled?: boolean;
@@ -2791,6 +3415,7 @@ declare const useDashboard: (dashboardName: string, config?: {
2791
3415
  } | Filter>) => void;
2792
3416
  lastUpdated: number;
2793
3417
  forceCacheRefresh: () => void;
3418
+ reload: UseDashboardReload;
2794
3419
  };
2795
3420
  declare const useDashboardReport: (reportId: string, config?: {
2796
3421
  initialFilters?: Filter[];
@@ -2803,29 +3428,6 @@ declare const useDashboardReport: (reportId: string, config?: {
2803
3428
  fetchNextPage: () => Promise<void>;
2804
3429
  };
2805
3430
 
2806
- /**
2807
- * Represents a table object returned from /schema2/:id
2808
- */
2809
- type Table = {
2810
- _id: string;
2811
- isSelectStar: boolean;
2812
- displayName: string;
2813
- name: string;
2814
- description?: string;
2815
- columns: ColumnInternal[];
2816
- viewQuery: string;
2817
- customFieldInfo: any;
2818
- broken?: boolean;
2819
- error?: string;
2820
- ownerTenantFields?: string[];
2821
- };
2822
- interface UniqueValuesByTable {
2823
- [table: string]: UniqueValuesByColumn;
2824
- }
2825
- interface UniqueValuesByColumn {
2826
- [column: string]: string[];
2827
- }
2828
-
2829
3431
  type ForeignKeyMap = {
2830
3432
  [table: string]: {
2831
3433
  foreignTable: string;
@@ -2878,6 +3480,7 @@ type ReportBuilder = {
2878
3480
  sortField: string;
2879
3481
  sortDirection: 'ASC' | 'DESC';
2880
3482
  } | undefined;
3483
+ pivotDateBucket: 'day' | 'week' | 'month' | 'year' | undefined;
2881
3484
  pivotHint: string;
2882
3485
  pivotError: string;
2883
3486
  createdPivots: Pivot[];
@@ -2905,6 +3508,7 @@ type ReportBuilder = {
2905
3508
  sortField: string;
2906
3509
  sortDirection: 'ASC' | 'DESC';
2907
3510
  } | undefined>>;
3511
+ setPivotDateBucket: React.Dispatch<React.SetStateAction<'day' | 'week' | 'month' | 'year' | undefined>>;
2908
3512
  setPivotError: React.Dispatch<React.SetStateAction<string>>;
2909
3513
  handlePivotChange: (newPivot: Pivot | null, fetchData?: boolean, updateStateStack?: boolean) => void;
2910
3514
  updatePivot: (changeField: string | Partial<{
@@ -2915,7 +3519,7 @@ type ReportBuilder = {
2915
3519
  sortField: string;
2916
3520
  sortDirection: 'ASC' | 'DESC';
2917
3521
  } | undefined, fieldKey: 'rowField' | 'columnField' | 'aggregations' | 'rowLimit' | 'sort') => Promise<void>;
2918
- filteredSchema: Table[];
3522
+ filteredSchema: Table$1[];
2919
3523
  foreignKeyMap: ForeignKeyMap;
2920
3524
  schemaData: any;
2921
3525
  client: any;
@@ -3104,27 +3708,27 @@ type CustomField = {
3104
3708
  };
3105
3709
 
3106
3710
  declare const useVirtualTables: () => {
3107
- data: Table[];
3711
+ data: Table$1[];
3108
3712
  isLoading: boolean;
3109
3713
  loadingTables: {
3110
3714
  [key: string]: boolean;
3111
3715
  };
3112
3716
  reloadAll: (client: any, caller?: string) => Promise<{
3113
- schema: Table[];
3717
+ schema: Table$1[];
3114
3718
  customFields: {
3115
3719
  [tableName: string]: CustomField[];
3116
3720
  } | null;
3117
3721
  isSchemaLoading: boolean;
3118
3722
  }>;
3119
3723
  reloadSome: (client: any, tableIds: string[], caller?: string) => Promise<{
3120
- schema: Table[];
3724
+ schema: Table$1[];
3121
3725
  customFields: {
3122
3726
  [tableName: string]: CustomField[];
3123
3727
  } | null;
3124
3728
  isSchemaLoading: boolean;
3125
3729
  }>;
3126
- refreshSome: (client: any, tables: Table[]) => Promise<{
3127
- schema: Table[];
3730
+ refreshSome: (client: any, tables: Table$1[]) => Promise<{
3731
+ schema: Table$1[];
3128
3732
  customFields: {
3129
3733
  [tableName: string]: CustomField[];
3130
3734
  } | null;
@@ -3258,42 +3862,6 @@ interface LimitPopoverComponentProps {
3258
3862
  disabled?: boolean;
3259
3863
  }
3260
3864
 
3261
- interface TableComponentProps {
3262
- rows: object[];
3263
- rowCount?: number;
3264
- rowCountIsLoading?: boolean;
3265
- columns: {
3266
- label: string;
3267
- field: string;
3268
- }[];
3269
- currentPage: number;
3270
- sort?: {
3271
- field: string;
3272
- direction: string;
3273
- };
3274
- className?: string;
3275
- containerStyle?: React$1.CSSProperties;
3276
- isLoading?: boolean;
3277
- hideCSVDownloadButton?: boolean;
3278
- downloadCSV?: () => void;
3279
- LoadingComponent?: () => React$1.JSX.Element;
3280
- DownloadCSVButtonComponent?: (props: ButtonComponentProps) => React$1.JSX.Element;
3281
- rowsPerPage?: number;
3282
- emptyStateLabel?: string;
3283
- onPageChange?: (page: number) => void;
3284
- onSortChange?: (sort: {
3285
- field: string;
3286
- direction: string;
3287
- }) => void;
3288
- headerBackgroundColor?: string;
3289
- footerBackgroundColor?: string;
3290
- borderRadius?: string | number;
3291
- borderLeft?: string;
3292
- borderRight?: string;
3293
- borderTop?: string;
3294
- borderBottom?: string;
3295
- }
3296
-
3297
3865
  interface DateRangePickerComponentProps {
3298
3866
  preset: string;
3299
3867
  label?: string;
@@ -3766,4 +4334,4 @@ interface ReportTableProps {
3766
4334
  }
3767
4335
  declare const ReportTable: ({ reportBuilder, TableComponent, }: ReportTableProps) => react_jsx_runtime.JSX.Element;
3768
4336
 
3769
- export { ALL_TENANTS, AddColumns, AddFilters, AddLimit, AddPivot, AddSort, type AxisFormat, type ButtonComponentProps, Calculation, type ChangelogEntry, Chart, ChartDisplay, ChartEditor, type ChartEditorProps, type ChartProps, Chat, type ChatProps, type CheckboxComponentProps, type ColorMapType, type Column$1 as Column, type ContainerComponentProps, Dashboard, type DashboardDateFilter, type DashboardFilter, DashboardFilterType, DashboardLegacy, type DashboardLegacyProps, type DashboardMultiFilter, type DashboardProps, type DashboardSectionComponentProps, type DashboardSingleFilter, type DashboardTenantFilter, DateOperator, type DateRange, type DateRangePickerComponentProps, type DateRangePickerOption, type DeleteButtonComponentProps, type DraggableColumnComponentProps, type EventBreadcrumb, type EventContext, type EventError, type EventMetadata, type EventTracking, type EventUser, type Filter, type FilterPopoverComponentProps, FilterType, type HeaderComponentProps, type HeaderProps, type InternalDashboardDateFilter, type InternalDashboardTenantFilter, type InternalFilter, type LabelComponentProps, type LimitPopoverComponentProps, type ModalComponentProps, NullOperator, NumberOperator, type Option, type Pivot, type PopoverComponentProps, type QuillCustomInterval, type QuillCustomRelativeInterval, type QuillCustomRepeatingInterval, type QuillCustomStaticInterval, type QuillFetchOptions, type QuillPreviousMonthInterval, type QuillPreviousQuarterInterval, QuillProvider, type QuillProviderProps, type QuillReport, type QuillReportProps, type QuillResults, type QuillTheme, type QuillWeekInterval, ReportBuilder$1 as ReportBuilder, type ReportBuilderColumn, type ReportBuilderLimit, type ReportBuilderProps, type ReportBuilderSort, type ReportBuilderState, ReportTable, SINGLE_TENANT, SQLEditor, type SQLEditorProps, SaveReport, SchemaListComponent, type SelectColumnComponentProps, type SelectComponentProps, type SidebarComponentProps, type SidebarHeadingComponentProps, type SortPopoverComponentProps, StaticChart, type StaticChartProps, StringOperator, Table$1 as Table, type TableComponentProps, type TableProps, type TabsComponentProps, type TextComponentProps, type TextInputComponentProps, ThemeContext, downloadCSV, quillFormat as format, quillFetch, useAllReports, useAskQuill, useChangelogRefresh, useDashboard, useDashboardInternal, useDashboardReport, useDashboardReports, useDashboards, useExport, useForm, useMemoizedRows, useQuill, useReportBuilder, useReports, useTenants, useVirtualTables };
4337
+ export { ALL_TENANTS, AddColumns, AddFilters, AddLimit, AddPivot, AddSort, type AxisFormat$1 as AxisFormat, type ButtonComponentProps, Calculation, type ChangelogEntry, Chart, ChartDisplay, ChartEditor, type ChartEditorProps, type ChartProps, Chat, type ChatModelId, type ChatProps, type CheckboxComponentProps, type ColorMapType, type Column$1 as Column, type ColumnSelectionOption, type ContainerComponentProps, Dashboard, type DashboardDateFilter, type DashboardFilter, DashboardFilterType, DashboardLegacy, type DashboardLegacyProps, type DashboardMultiFilter, type DashboardProps, type DashboardSectionComponentProps, type DashboardSingleFilter, type DashboardTenantFilter, DateOperator, type DateRange, type DateRangePickerComponentProps, type DateRangePickerOption, type DeleteButtonComponentProps, type DraggableColumnComponentProps, type EventBreadcrumb, type EventContext, type EventError, type EventMetadata, type EventTracking, type EventUser, type Filter, type FilterDraftQueryBuilderProps, type FilterPopoverComponentProps, FilterType, type HeaderComponentProps, type HeaderProps, type InternalDashboardDateFilter, type InternalDashboardTenantFilter, type InternalFilter, type LabelComponentProps, type LimitPopoverComponentProps, type ModalComponentProps, NullOperator, NumberOperator, type Option, type Pivot, type PivotAggregation, type PopoverComponentProps, type QueryBuilderDisplayGroup, type QueryBuilderDisplayRule, type QuillCustomInterval, type QuillCustomRelativeInterval, type QuillCustomRepeatingInterval, type QuillCustomStaticInterval, type QuillFetchOptions, type QuillPreviousMonthInterval, type QuillPreviousQuarterInterval, QuillProvider, type QuillProviderProps, type QuillReport, type QuillReportProps, type QuillResults, type QuillTheme, type QuillWeekInterval, ReportBuilder$1 as ReportBuilder, type ReportBuilderColumn, type ReportBuilderLimit, type ReportBuilderProps, type ReportBuilderSort, type ReportBuilderState, ReportDetail, type ReportDetailProps, ReportTable, SINGLE_TENANT, SQLEditor, type SQLEditorProps, SaveReport, SchemaListComponent, type SelectColumnComponentProps, type SelectComponentProps, type SetReportBuilderInput, type SetReportChartAxesInput, type SetReportTableColumnSidebarPatch, type SidebarComponentProps, type SidebarHeadingComponentProps, type SortPopoverComponentProps, StaticChart, type StaticChartProps, StringOperator, Table, type TableColumnListItem, type TableColumnsController, type TableColumnsControllerItem, type TableComponentProps, type TableProps, type TabsComponentProps, type TextComponentProps, type TextInputComponentProps, ThemeContext, type UseDashboardReload, type UseFormAxisConfig, type UseFormQueryBuilderField, type UseFormQueryBuilderProps, type UseReportFilterDraft, areQueryBuilderFilterDraftsDirty, buildSeededFilterQuery, countFilterRules, defaultFilterRuleValueForOperator, downloadCSV, quillFormat as format, isQueryBuilderDisplayGroup, isQueryBuilderDisplayRule, normalizeRelativeDateRules, prepareQueryBuilderFiltersForSet, quillFetch, stripQueryBuilderTransientFields, tableColumnFormatFromUiSelection, useAllReports, useAskQuill, useChangelogRefresh, useDashboard, useDashboardInternal, useDashboardReport, useDashboardReports, useDashboards, useExport, useMemoizedRows, useQuill, useReport, useReportBuilder, useReports, useTenants, useVirtualTables };