react-semaphor 0.1.295 → 0.1.296

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 (40) hide show
  1. package/dist/chunks/{braces-BdoTYzuj.js → braces-BNXseceK.js} +1 -1
  2. package/dist/chunks/{braces-DWldEFn5.js → braces-DVrX_3Q_.js} +1 -1
  3. package/dist/chunks/dashboard-controls-CKKZcVA5.js +2219 -0
  4. package/dist/chunks/dashboard-controls-DS2xJxHU.js +47 -0
  5. package/dist/chunks/dashboard-filter-controls-button-nqfmscB7.js +11 -0
  6. package/dist/chunks/{dashboard-filter-controls-button-XwenlcXw.js → dashboard-filter-controls-button-xPaIlNHP.js} +501 -495
  7. package/dist/chunks/{dashboard-json-CU55qPXj.js → dashboard-json-cuj9vYY9.js} +1 -1
  8. package/dist/chunks/{dashboard-json-V6m6lJ_c.js → dashboard-json-ovQyHWw6.js} +1 -1
  9. package/dist/chunks/{dashboard-summary-settings-dialog-DRLPzp1P.js → dashboard-summary-settings-dialog-BUg3Qyhh.js} +1 -1
  10. package/dist/chunks/{dashboard-summary-settings-dialog-0CIiWsKc.js → dashboard-summary-settings-dialog-DF076HeJ.js} +1 -1
  11. package/dist/chunks/{edit-dashboard-visual-8ha6EM_g.js → edit-dashboard-visual-32TAM00c.js} +5331 -5303
  12. package/dist/chunks/edit-dashboard-visual-BtiMcO-L.js +183 -0
  13. package/dist/chunks/{index-14M0TnH6.js → index-BDeJH9hO.js} +103265 -88338
  14. package/dist/chunks/index-Dbrs96G8.js +1533 -0
  15. package/dist/chunks/{resource-management-panel-CcDAn86l.js → resource-management-panel-2qcXsKwg.js} +2 -2
  16. package/dist/chunks/{resource-management-panel-BL5-5ouC.js → resource-management-panel-C4qoxy_g.js} +31 -30
  17. package/dist/chunks/use-create-flow-overlay-state-BMD3YRzU.js +21 -0
  18. package/dist/chunks/{use-create-flow-overlay-state-D3PxfjYv.js → use-create-flow-overlay-state-CHeppRNE.js} +572 -568
  19. package/dist/chunks/{use-visual-utils-CdIOq4nt.js → use-visual-utils-BIHLaVwh.js} +70 -68
  20. package/dist/chunks/use-visual-utils-dOYWf6nM.js +1 -0
  21. package/dist/dashboard/index.cjs +1 -1
  22. package/dist/dashboard/index.js +1 -1
  23. package/dist/index.cjs +1 -1
  24. package/dist/index.js +113 -112
  25. package/dist/style.css +1 -1
  26. package/dist/surfboard/index.cjs +1 -1
  27. package/dist/surfboard/index.js +2 -2
  28. package/dist/types/dashboard.d.ts +235 -1
  29. package/dist/types/main.d.ts +288 -1
  30. package/dist/types/shared.d.ts +204 -1
  31. package/dist/types/surfboard.d.ts +235 -1
  32. package/dist/types/types.d.ts +235 -1
  33. package/package.json +7 -1
  34. package/dist/chunks/dashboard-controls-B3lrnI_r.js +0 -47
  35. package/dist/chunks/dashboard-controls-D7U6E1sB.js +0 -2014
  36. package/dist/chunks/dashboard-filter-controls-button-D0AsV28-.js +0 -11
  37. package/dist/chunks/edit-dashboard-visual-sSLAkmgf.js +0 -183
  38. package/dist/chunks/index-Ze8VskG1.js +0 -1435
  39. package/dist/chunks/use-create-flow-overlay-state-BbQVNDCj.js +0 -21
  40. package/dist/chunks/use-visual-utils-kh8p2QFm.js +0 -1
@@ -1 +1 @@
1
- "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const a=require("../chunks/index-Ze8VskG1.js"),e=require("../types/index.cjs"),r=require("../chunks/dashboard-summary-settings-dialog-DRLPzp1P.js");exports.Surfboard=a.DashboardPlus;exports.CONTROL_CARD_DEFAULT_VALUE=e.CONTROL_CARD_DEFAULT_VALUE;exports.EMPTY_SELECTION=e.EMPTY_SELECTION;exports.CalendarPreferencesDialog=r.CalendarPreferencesDialog;exports.DashboardSummarySettingsDialog=r.DashboardSummarySettingsDialog;
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const a=require("../chunks/index-Dbrs96G8.js"),e=require("../types/index.cjs"),r=require("../chunks/dashboard-summary-settings-dialog-BUg3Qyhh.js");exports.Surfboard=a.DashboardPlus;exports.CONTROL_CARD_DEFAULT_VALUE=e.CONTROL_CARD_DEFAULT_VALUE;exports.EMPTY_SELECTION=e.EMPTY_SELECTION;exports.CalendarPreferencesDialog=r.CalendarPreferencesDialog;exports.DashboardSummarySettingsDialog=r.DashboardSummarySettingsDialog;
@@ -1,6 +1,6 @@
1
- import { a as o } from "../chunks/index-14M0TnH6.js";
1
+ import { a as o } from "../chunks/index-BDeJH9hO.js";
2
2
  import { CONTROL_CARD_DEFAULT_VALUE as s, EMPTY_SELECTION as D } from "../types/index.js";
3
- import { C as m, D as t } from "../chunks/dashboard-summary-settings-dialog-0CIiWsKc.js";
3
+ import { C as m, D as t } from "../chunks/dashboard-summary-settings-dialog-DF076HeJ.js";
4
4
  export {
5
5
  s as CONTROL_CARD_DEFAULT_VALUE,
6
6
  m as CalendarPreferencesDialog,
@@ -460,6 +460,18 @@ export declare type DashboardProps = {
460
460
  cardControlDefinitions?: ControlDefinition[];
461
461
  controlBindings?: ControlBinding[];
462
462
  };
463
+ /**
464
+ * Document-local runtime values for print/render entry points. Values are
465
+ * keyed by document input id and are intentionally separate from dashboard
466
+ * filters/controls.
467
+ */
468
+ documentInputValues?: DocumentInputRuntimeValues;
469
+ /**
470
+ * Render target for print entry points. Generic dashboard PDF exports also
471
+ * use cardDisplay.mode="print"; document-specific print handling must only
472
+ * run when this is explicitly "document".
473
+ */
474
+ renderMode?: 'dashboard' | 'document';
463
475
  customStyle?: TStyle;
464
476
  currentTheme?: Theme;
465
477
  version?: string;
@@ -588,6 +600,215 @@ declare type Dialect = 'mysql' | 'postgres' | 'bigquery' | 'redshift' | 'snowfla
588
600
 
589
601
  export declare type DisplayDataType = 'string' | 'date' | 'number' | 'html' | 'none';
590
602
 
603
+ export declare type DocumentChartSection = {
604
+ id: string;
605
+ type: 'chart';
606
+ title?: string;
607
+ card: TCard;
608
+ heightPx: number;
609
+ };
610
+
611
+ export declare type DocumentControlInputDefinition = DocumentInputBase & {
612
+ kind: 'control';
613
+ control: ControlDefinition;
614
+ exports?: DocumentInputExportKey[];
615
+ };
616
+
617
+ export declare type DocumentDefinition = {
618
+ version: 1;
619
+ page: DocumentPageSetup;
620
+ runtime?: DocumentRuntimeSettings;
621
+ inputs?: DocumentInputDefinition[];
622
+ defaultInputValues?: Record<string, unknown>;
623
+ header?: DocumentHeaderRegion;
624
+ footer?: DocumentFooterRegion;
625
+ sections: DocumentSection[];
626
+ theme?: DocumentTheme;
627
+ };
628
+
629
+ export declare type DocumentFilterInputDefinition = DocumentInputBase & {
630
+ kind: 'filter';
631
+ filter: TFilter;
632
+ exports?: DocumentInputExportKey[];
633
+ };
634
+
635
+ export declare type DocumentFooterRegion = DocumentRegionBase & {
636
+ region: 'footer';
637
+ layout: {
638
+ type: 'preset';
639
+ preset: 'mvp_footer';
640
+ };
641
+ };
642
+
643
+ export declare type DocumentHeaderRegion = DocumentRegionBase & {
644
+ region: 'header';
645
+ layout: {
646
+ type: 'preset';
647
+ preset: 'mvp_header';
648
+ };
649
+ };
650
+
651
+ export declare type DocumentImageRegionBlock = DocumentRegionBlockBase & {
652
+ type: 'image';
653
+ role?: 'logo';
654
+ src: string;
655
+ alt?: string;
656
+ widthPx?: number;
657
+ };
658
+
659
+ export declare type DocumentInputBase = {
660
+ id: string;
661
+ label: string;
662
+ variableName: string;
663
+ requiredAtExecution: boolean;
664
+ documentPlacement?: 'input_bar';
665
+ description?: string;
666
+ };
667
+
668
+ export declare type DocumentInputDefinition = DocumentFilterInputDefinition | DocumentControlInputDefinition;
669
+
670
+ export declare type DocumentInputExportKey = 'label' | 'value' | 'start' | 'end' | 'range';
671
+
672
+ export declare type DocumentInputRuntimeValues = {
673
+ sheetId?: string;
674
+ filterValuesByInputId?: Record<string, TFilterValue | undefined>;
675
+ controlValuesByInputId?: Record<string, unknown>;
676
+ generatedAt?: string;
677
+ };
678
+
679
+ export declare type DocumentPageBreakSection = {
680
+ id: string;
681
+ type: 'page_break';
682
+ };
683
+
684
+ export declare type DocumentPageSetup = {
685
+ size: 'letter' | 'a4';
686
+ orientation: 'portrait' | 'landscape';
687
+ margins: {
688
+ top: number;
689
+ right: number;
690
+ bottom: number;
691
+ left: number;
692
+ unit: 'in' | 'mm';
693
+ };
694
+ };
695
+
696
+ export declare type DocumentRegion = DocumentHeaderRegion | DocumentFooterRegion;
697
+
698
+ export declare type DocumentRegionBase = {
699
+ enabled: boolean;
700
+ heightPx?: number;
701
+ layout: DocumentRegionLayout;
702
+ blocks: DocumentRegionBlock[];
703
+ };
704
+
705
+ export declare type DocumentRegionBlock = DocumentTextRegionBlock | DocumentImageRegionBlock;
706
+
707
+ export declare type DocumentRegionBlockBase = {
708
+ id: string;
709
+ area?: 'left' | 'center' | 'right' | 'title' | 'metadata' | 'note' | 'pageInfo';
710
+ };
711
+
712
+ export declare type DocumentRegionLayout = {
713
+ type: 'preset';
714
+ preset: 'mvp_header' | 'mvp_footer';
715
+ };
716
+
717
+ export declare type DocumentRuntimeSettings = {
718
+ generatedAtFormat?: string;
719
+ };
720
+
721
+ export declare type DocumentSection = DocumentTextSection | DocumentTableSection | DocumentChartSection | DocumentSpacerSection | DocumentPageBreakSection;
722
+
723
+ export declare type DocumentSpacerSection = {
724
+ id: string;
725
+ type: 'spacer';
726
+ heightPx: number;
727
+ };
728
+
729
+ export declare type DocumentTableDensity = 'comfortable' | 'standard' | 'compact' | 'dense';
730
+
731
+ export declare type DocumentTableGridLines = 'none' | 'outer' | 'inner' | 'horizontal' | 'vertical' | 'top' | 'right' | 'bottom' | 'left' | 'full';
732
+
733
+ export declare type DocumentTableHeaderStyle = 'plain' | 'filled' | 'accent';
734
+
735
+ export declare type DocumentTableSection = {
736
+ id: string;
737
+ type: 'table';
738
+ title?: string;
739
+ card: TCard;
740
+ table: {
741
+ totalsRow?: boolean;
742
+ columnFormatting?: Record<string, unknown>;
743
+ repeatHeaderOnPageBreak?: boolean;
744
+ rowHeightPx?: number;
745
+ style?: DocumentTableStyle;
746
+ };
747
+ };
748
+
749
+ export declare type DocumentTableStyle = {
750
+ density?: DocumentTableDensity;
751
+ headerStyle?: DocumentTableHeaderStyle;
752
+ headerBackgroundColor?: string;
753
+ headerTextColor?: string;
754
+ stripedRows?: boolean;
755
+ gridLines?: DocumentTableGridLines;
756
+ wrapText?: boolean;
757
+ };
758
+
759
+ export declare type DocumentTextContent = DocumentTextNode[];
760
+
761
+ export declare type DocumentTextInlineFormat = {
762
+ bold?: boolean;
763
+ italic?: boolean;
764
+ underline?: boolean;
765
+ };
766
+
767
+ export declare type DocumentTextNode = {
768
+ type: 'text';
769
+ value: string;
770
+ format?: DocumentTextInlineFormat;
771
+ } | {
772
+ type: 'variable';
773
+ ref: DocumentVariableRef;
774
+ format?: DocumentTextInlineFormat;
775
+ };
776
+
777
+ export declare type DocumentTextRegionBlock = DocumentRegionBlockBase & {
778
+ type: 'text';
779
+ role?: 'title' | 'metadata' | 'note' | 'pageInfo';
780
+ content: DocumentTextContent;
781
+ style?: DocumentTextStyle;
782
+ };
783
+
784
+ export declare type DocumentTextSection = {
785
+ id: string;
786
+ type: 'text';
787
+ content: DocumentTextContent;
788
+ style?: DocumentTextStyle;
789
+ };
790
+
791
+ export declare type DocumentTextStyle = {
792
+ fontSize?: number;
793
+ fontWeight?: 'normal' | 'medium' | 'semibold' | 'bold';
794
+ color?: string;
795
+ align?: 'left' | 'center' | 'right';
796
+ };
797
+
798
+ export declare type DocumentTheme = {
799
+ fontFamily?: string;
800
+ primaryColor?: string;
801
+ };
802
+
803
+ export declare type DocumentVariableRef = {
804
+ source: 'input';
805
+ inputId: string;
806
+ export: DocumentInputExportKey;
807
+ } | {
808
+ source: 'documentMeta';
809
+ key: 'generatedAt' | 'pageNumber' | 'pageCount';
810
+ };
811
+
591
812
  declare interface DrillDownInteraction {
592
813
  mode: 'drillDown';
593
814
  /**
@@ -1303,6 +1524,16 @@ declare type RelativeDateFilter = {
1303
1524
  to: number;
1304
1525
  };
1305
1526
 
1527
+ export declare type ResolvedDocumentInput = {
1528
+ inputId: string;
1529
+ variableName: string;
1530
+ rawValue: unknown;
1531
+ displayValue: string;
1532
+ filterValues?: TFilterValue[];
1533
+ controlValue?: unknown;
1534
+ exports: Record<string, string | number | boolean | null>;
1535
+ };
1536
+
1306
1537
  declare type ResolvedPrimaryDateField = {
1307
1538
  sourceDataset: string;
1308
1539
  sourceField: string;
@@ -1407,7 +1638,7 @@ export declare type StyleProps = {
1407
1638
  * the Linear-style spec). Drives row padding, cell font size, and header
1408
1639
  * font size via a shared density spec in DataTable.
1409
1640
  */
1410
- declare type TableDensity = 'compact' | 'comfortable' | 'spacious';
1641
+ declare type TableDensity = 'dense' | 'compact' | 'standard' | 'comfortable' | 'spacious';
1411
1642
 
1412
1643
  declare type TablePreferences = {
1413
1644
  columnSettingsMap?: ColumnSettingsMap;
@@ -1418,6 +1649,7 @@ declare type TablePreferences = {
1418
1649
  enableDevModePagination?: boolean;
1419
1650
  forceClientPagination?: boolean;
1420
1651
  density?: TableDensity;
1652
+ documentWrapText?: boolean;
1421
1653
  };
1422
1654
 
1423
1655
  /**
@@ -2161,6 +2393,7 @@ export declare type TPointStyle = 'circle' | 'cross' | 'crossRot' | 'dash' | 'li
2161
2393
 
2162
2394
  export declare type TSheet = {
2163
2395
  id: string;
2396
+ kind?: 'dashboard' | 'document';
2164
2397
  title?: string;
2165
2398
  description?: string;
2166
2399
  layout?: ReactGridLayout.Layout[];
@@ -2168,6 +2401,7 @@ export declare type TSheet = {
2168
2401
  cards?: TCard[];
2169
2402
  frames?: TFrame[];
2170
2403
  calculatedFields?: Field[];
2404
+ document?: DocumentDefinition;
2171
2405
  };
2172
2406
 
2173
2407
  /**
@@ -76,6 +76,20 @@ declare type Actions_2 = {
76
76
  addSheet: (sheet: TSheet) => void;
77
77
  deleteSheet: (sheetId: string) => void;
78
78
  setSheetTitle: (sheetId: string, title: string) => void;
79
+ updateSheetDocument: (sheetId: string, updater: (document: DocumentDefinition) => DocumentDefinition) => void;
80
+ updateDocumentSectionCard: (sheetId: string, sectionId: string, card: TCard, options?: {
81
+ calculatedFields?: Field[];
82
+ }) => void;
83
+ setSelectedDocumentSectionId: (sheetId: string, sectionId: string | null) => void;
84
+ setDocumentInspectorTab: (sheetId: string, tab: DocumentInspectorTab) => void;
85
+ setDocumentInputFilterValues: (sheetId: string, valuesByInputId: Record<string, TFilterValue | undefined>) => void;
86
+ setDocumentInputFilterValue: (sheetId: string, inputId: string, filterValue: TFilterValue) => void;
87
+ removeDocumentInputFilterValue: (sheetId: string, inputId: string) => void;
88
+ setDocumentInputFilterModes: (sheetId: string, modesByInputId: Record<string, DocumentFilterMode>) => void;
89
+ setDocumentInputFilterMode: (sheetId: string, inputId: string, filterMode: DocumentFilterMode) => void;
90
+ setDocumentInputControlValues: (sheetId: string, valuesByInputId: Record<string, unknown>) => void;
91
+ setDocumentInputControlValue: (sheetId: string, inputId: string, value: unknown) => void;
92
+ clearDocumentInputRuntime: (sheetId?: string) => void;
79
93
  setSelectedSheetId: (sheetId: string | null) => void;
80
94
  setSheetLayout: (sheetId: string, layout: default_2.Layout[]) => void;
81
95
  setSheetLayouts: (sheetId: string, layouts: default_2.Layouts) => void;
@@ -284,6 +298,8 @@ declare type Actions_3 = TableActions & ExplorerActions & DrillActions & {
284
298
  setOnTableChange: (onTableChange: (tableNmae: string) => void) => void;
285
299
  setOnSave: (onSave: (card: TFrame) => void) => void;
286
300
  setOnClose: (onClose: () => void) => void;
301
+ setEditorContext: (context: EditorContext) => void;
302
+ clearEditorContext: () => void;
287
303
  };
288
304
 
289
305
  /**
@@ -1448,6 +1464,18 @@ export declare type DashboardProps = {
1448
1464
  cardControlDefinitions?: ControlDefinition[];
1449
1465
  controlBindings?: ControlBinding[];
1450
1466
  };
1467
+ /**
1468
+ * Document-local runtime values for print/render entry points. Values are
1469
+ * keyed by document input id and are intentionally separate from dashboard
1470
+ * filters/controls.
1471
+ */
1472
+ documentInputValues?: DocumentInputRuntimeValues;
1473
+ /**
1474
+ * Render target for print entry points. Generic dashboard PDF exports also
1475
+ * use cardDisplay.mode="print"; document-specific print handling must only
1476
+ * run when this is explicitly "document".
1477
+ */
1478
+ renderMode?: 'dashboard' | 'document';
1451
1479
  customStyle?: TStyle;
1452
1480
  currentTheme?: Theme;
1453
1481
  version?: string;
@@ -1493,6 +1521,9 @@ export declare type DashboardStore = {
1493
1521
  selectedFrameId?: string | null;
1494
1522
  selectedCardId?: string | null;
1495
1523
  selectedCard?: TCard | null;
1524
+ selectedDocumentSectionIdsBySheetId: Record<string, string | null>;
1525
+ documentInspectorTabsBySheetId: Record<string, DocumentInspectorTab>;
1526
+ documentInputRuntimeBySheetId: Record<string, DocumentInputRuntimeState>;
1496
1527
  /**
1497
1528
  * Pending sheet-wide frame rewrites produced while visual editing. These stay
1498
1529
  * draft-only until the editor Save path applies the current frame.
@@ -1705,6 +1736,225 @@ export declare type DimensionInputReference = {
1705
1736
 
1706
1737
  export declare type DisplayDataType = 'string' | 'date' | 'number' | 'html' | 'none';
1707
1738
 
1739
+ export declare type DocumentChartSection = {
1740
+ id: string;
1741
+ type: 'chart';
1742
+ title?: string;
1743
+ card: TCard;
1744
+ heightPx: number;
1745
+ };
1746
+
1747
+ export declare type DocumentControlInputDefinition = DocumentInputBase & {
1748
+ kind: 'control';
1749
+ control: ControlDefinition;
1750
+ exports?: DocumentInputExportKey[];
1751
+ };
1752
+
1753
+ export declare type DocumentDefinition = {
1754
+ version: 1;
1755
+ page: DocumentPageSetup;
1756
+ runtime?: DocumentRuntimeSettings;
1757
+ inputs?: DocumentInputDefinition[];
1758
+ defaultInputValues?: Record<string, unknown>;
1759
+ header?: DocumentHeaderRegion;
1760
+ footer?: DocumentFooterRegion;
1761
+ sections: DocumentSection[];
1762
+ theme?: DocumentTheme;
1763
+ };
1764
+
1765
+ export declare type DocumentFilterInputDefinition = DocumentInputBase & {
1766
+ kind: 'filter';
1767
+ filter: TFilter;
1768
+ exports?: DocumentInputExportKey[];
1769
+ };
1770
+
1771
+ declare type DocumentFilterMode = 'include' | 'exclude';
1772
+
1773
+ export declare type DocumentFooterRegion = DocumentRegionBase & {
1774
+ region: 'footer';
1775
+ layout: {
1776
+ type: 'preset';
1777
+ preset: 'mvp_footer';
1778
+ };
1779
+ };
1780
+
1781
+ export declare type DocumentHeaderRegion = DocumentRegionBase & {
1782
+ region: 'header';
1783
+ layout: {
1784
+ type: 'preset';
1785
+ preset: 'mvp_header';
1786
+ };
1787
+ };
1788
+
1789
+ export declare type DocumentImageRegionBlock = DocumentRegionBlockBase & {
1790
+ type: 'image';
1791
+ role?: 'logo';
1792
+ src: string;
1793
+ alt?: string;
1794
+ widthPx?: number;
1795
+ };
1796
+
1797
+ export declare type DocumentInputBase = {
1798
+ id: string;
1799
+ label: string;
1800
+ variableName: string;
1801
+ requiredAtExecution: boolean;
1802
+ documentPlacement?: 'input_bar';
1803
+ description?: string;
1804
+ };
1805
+
1806
+ export declare type DocumentInputDefinition = DocumentFilterInputDefinition | DocumentControlInputDefinition;
1807
+
1808
+ export declare type DocumentInputExportKey = 'label' | 'value' | 'start' | 'end' | 'range';
1809
+
1810
+ export declare type DocumentInputRuntimeState = {
1811
+ filterValuesByInputId: Record<string, TFilterValue | undefined>;
1812
+ filterModesByInputId: Record<string, DocumentFilterMode>;
1813
+ controlValuesByInputId: Record<string, unknown>;
1814
+ };
1815
+
1816
+ export declare type DocumentInputRuntimeValues = {
1817
+ sheetId?: string;
1818
+ filterValuesByInputId?: Record<string, TFilterValue | undefined>;
1819
+ controlValuesByInputId?: Record<string, unknown>;
1820
+ generatedAt?: string;
1821
+ };
1822
+
1823
+ export declare type DocumentInspectorTab = 'section' | 'page' | 'header' | 'footer' | 'inputs';
1824
+
1825
+ export declare type DocumentPageBreakSection = {
1826
+ id: string;
1827
+ type: 'page_break';
1828
+ };
1829
+
1830
+ export declare type DocumentPageSetup = {
1831
+ size: 'letter' | 'a4';
1832
+ orientation: 'portrait' | 'landscape';
1833
+ margins: {
1834
+ top: number;
1835
+ right: number;
1836
+ bottom: number;
1837
+ left: number;
1838
+ unit: 'in' | 'mm';
1839
+ };
1840
+ };
1841
+
1842
+ export declare type DocumentRegion = DocumentHeaderRegion | DocumentFooterRegion;
1843
+
1844
+ export declare type DocumentRegionBase = {
1845
+ enabled: boolean;
1846
+ heightPx?: number;
1847
+ layout: DocumentRegionLayout;
1848
+ blocks: DocumentRegionBlock[];
1849
+ };
1850
+
1851
+ export declare type DocumentRegionBlock = DocumentTextRegionBlock | DocumentImageRegionBlock;
1852
+
1853
+ export declare type DocumentRegionBlockBase = {
1854
+ id: string;
1855
+ area?: 'left' | 'center' | 'right' | 'title' | 'metadata' | 'note' | 'pageInfo';
1856
+ };
1857
+
1858
+ export declare type DocumentRegionLayout = {
1859
+ type: 'preset';
1860
+ preset: 'mvp_header' | 'mvp_footer';
1861
+ };
1862
+
1863
+ export declare type DocumentRuntimeSettings = {
1864
+ generatedAtFormat?: string;
1865
+ };
1866
+
1867
+ export declare type DocumentSection = DocumentTextSection | DocumentTableSection | DocumentChartSection | DocumentSpacerSection | DocumentPageBreakSection;
1868
+
1869
+ export declare type DocumentSpacerSection = {
1870
+ id: string;
1871
+ type: 'spacer';
1872
+ heightPx: number;
1873
+ };
1874
+
1875
+ export declare type DocumentTableDensity = 'comfortable' | 'standard' | 'compact' | 'dense';
1876
+
1877
+ export declare type DocumentTableGridLines = 'none' | 'outer' | 'inner' | 'horizontal' | 'vertical' | 'top' | 'right' | 'bottom' | 'left' | 'full';
1878
+
1879
+ export declare type DocumentTableHeaderStyle = 'plain' | 'filled' | 'accent';
1880
+
1881
+ export declare type DocumentTableSection = {
1882
+ id: string;
1883
+ type: 'table';
1884
+ title?: string;
1885
+ card: TCard;
1886
+ table: {
1887
+ totalsRow?: boolean;
1888
+ columnFormatting?: Record<string, unknown>;
1889
+ repeatHeaderOnPageBreak?: boolean;
1890
+ rowHeightPx?: number;
1891
+ style?: DocumentTableStyle;
1892
+ };
1893
+ };
1894
+
1895
+ export declare type DocumentTableStyle = {
1896
+ density?: DocumentTableDensity;
1897
+ headerStyle?: DocumentTableHeaderStyle;
1898
+ headerBackgroundColor?: string;
1899
+ headerTextColor?: string;
1900
+ stripedRows?: boolean;
1901
+ gridLines?: DocumentTableGridLines;
1902
+ wrapText?: boolean;
1903
+ };
1904
+
1905
+ export declare type DocumentTextContent = DocumentTextNode[];
1906
+
1907
+ export declare type DocumentTextInlineFormat = {
1908
+ bold?: boolean;
1909
+ italic?: boolean;
1910
+ underline?: boolean;
1911
+ };
1912
+
1913
+ export declare type DocumentTextNode = {
1914
+ type: 'text';
1915
+ value: string;
1916
+ format?: DocumentTextInlineFormat;
1917
+ } | {
1918
+ type: 'variable';
1919
+ ref: DocumentVariableRef;
1920
+ format?: DocumentTextInlineFormat;
1921
+ };
1922
+
1923
+ export declare type DocumentTextRegionBlock = DocumentRegionBlockBase & {
1924
+ type: 'text';
1925
+ role?: 'title' | 'metadata' | 'note' | 'pageInfo';
1926
+ content: DocumentTextContent;
1927
+ style?: DocumentTextStyle;
1928
+ };
1929
+
1930
+ export declare type DocumentTextSection = {
1931
+ id: string;
1932
+ type: 'text';
1933
+ content: DocumentTextContent;
1934
+ style?: DocumentTextStyle;
1935
+ };
1936
+
1937
+ export declare type DocumentTextStyle = {
1938
+ fontSize?: number;
1939
+ fontWeight?: 'normal' | 'medium' | 'semibold' | 'bold';
1940
+ color?: string;
1941
+ align?: 'left' | 'center' | 'right';
1942
+ };
1943
+
1944
+ export declare type DocumentTheme = {
1945
+ fontFamily?: string;
1946
+ primaryColor?: string;
1947
+ };
1948
+
1949
+ export declare type DocumentVariableRef = {
1950
+ source: 'input';
1951
+ inputId: string;
1952
+ export: DocumentInputExportKey;
1953
+ } | {
1954
+ source: 'documentMeta';
1955
+ key: 'generatedAt' | 'pageNumber' | 'pageCount';
1956
+ };
1957
+
1708
1958
  export declare interface DomainCalculatedDimension {
1709
1959
  name: string;
1710
1960
  label: string;
@@ -1728,6 +1978,16 @@ export declare interface DomainCalculatedMetric {
1728
1978
  aggregationStrategy?: AggregationStrategy;
1729
1979
  }
1730
1980
 
1981
+ export declare function downloadDocumentPdf(apiServiceUrl: string, authToken: AuthToken | undefined, options: {
1982
+ sheetId: string;
1983
+ title: string;
1984
+ pageSize: string;
1985
+ orientation: string;
1986
+ inputValues: DocumentInputRuntimeValues;
1987
+ timezone?: string;
1988
+ password?: string;
1989
+ }): Promise<void>;
1990
+
1731
1991
  export declare function downloadPdf(apiServiceUrl: string, authToken: AuthToken | undefined, password?: string, sheetSelection?: 'current' | 'all', expandedState?: Record<string, boolean>): Promise<void>;
1732
1992
 
1733
1993
  declare type DraftDeliveryConfig = {
@@ -2034,6 +2294,19 @@ export declare interface DynamicDrillInteraction {
2034
2294
  /* Excluded from this release type: drillField */
2035
2295
  }
2036
2296
 
2297
+ export declare type EditorContext = {
2298
+ type: 'dashboard';
2299
+ } | {
2300
+ type: 'documentSection';
2301
+ sheetId: string;
2302
+ sectionId: string;
2303
+ cardId: string;
2304
+ documentFilterValues?: TFilterValue[];
2305
+ documentControlDefinitions?: ControlDefinition[];
2306
+ documentControlValues?: Record<string, unknown>;
2307
+ missingRequiredInputLabels?: string[];
2308
+ };
2309
+
2037
2310
  export declare type EditorStore = {
2038
2311
  tempQueryData?: {
2039
2312
  queryKey: string[];
@@ -2071,6 +2344,7 @@ export declare type EditorStore = {
2071
2344
  onSchemaChange?: (schemaName: string) => void;
2072
2345
  onSave?: (card: TFrame) => void | Promise<void>;
2073
2346
  onClose?: () => void;
2347
+ editorContext?: EditorContext;
2074
2348
  /** Draft slots for mode switching - preserves work when toggling between dev/standard */
2075
2349
  modeDrafts: ModeDrafts;
2076
2350
  };
@@ -3216,6 +3490,16 @@ export declare function resolveDatamodelName(datamodelName: string): string;
3216
3490
 
3217
3491
  export declare const resolveDataType: (value: any) => string;
3218
3492
 
3493
+ export declare type ResolvedDocumentInput = {
3494
+ inputId: string;
3495
+ variableName: string;
3496
+ rawValue: unknown;
3497
+ displayValue: string;
3498
+ filterValues?: TFilterValue[];
3499
+ controlValue?: unknown;
3500
+ exports: Record<string, string | number | boolean | null>;
3501
+ };
3502
+
3219
3503
  declare type ResolvedPrimaryDateField = {
3220
3504
  sourceDataset: string;
3221
3505
  sourceField: string;
@@ -3565,7 +3849,7 @@ export declare type TableConfig = {
3565
3849
  * the Linear-style spec). Drives row padding, cell font size, and header
3566
3850
  * font size via a shared density spec in DataTable.
3567
3851
  */
3568
- declare type TableDensity = 'compact' | 'comfortable' | 'spacious';
3852
+ declare type TableDensity = 'dense' | 'compact' | 'standard' | 'comfortable' | 'spacious';
3569
3853
 
3570
3854
  export declare type TableItem = DropdownItem;
3571
3855
 
@@ -3578,6 +3862,7 @@ declare type TablePreferences = {
3578
3862
  enableDevModePagination?: boolean;
3579
3863
  forceClientPagination?: boolean;
3580
3864
  density?: TableDensity;
3865
+ documentWrapText?: boolean;
3581
3866
  };
3582
3867
 
3583
3868
  /**
@@ -4567,6 +4852,7 @@ export declare type TSelectedRecord = ComboBoxOption;
4567
4852
 
4568
4853
  export declare type TSheet = {
4569
4854
  id: string;
4855
+ kind?: 'dashboard' | 'document';
4570
4856
  title?: string;
4571
4857
  description?: string;
4572
4858
  layout?: ReactGridLayout.Layout[];
@@ -4574,6 +4860,7 @@ export declare type TSheet = {
4574
4860
  cards?: TCard[];
4575
4861
  frames?: TFrame[];
4576
4862
  calculatedFields?: Field[];
4863
+ document?: DocumentDefinition;
4577
4864
  };
4578
4865
 
4579
4866
  /**