react-semaphor 0.1.514 → 0.1.516

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 (228) hide show
  1. package/dist/analytics-protocol/index.cjs +1 -1
  2. package/dist/analytics-protocol/index.js +226 -225
  3. package/dist/brand-studio/index.cjs +1 -1
  4. package/dist/brand-studio/index.js +4 -4
  5. package/dist/briefings/index.cjs +1 -1
  6. package/dist/briefings/index.js +8 -8
  7. package/dist/chunks/{calculated-field-identity-BiTGmnST.cjs → calculated-field-identity-5bg9oHTw.cjs} +1 -1
  8. package/dist/chunks/{calculated-field-identity-DnRd4YIY.js → calculated-field-identity-DzJBs2J8.js} +4 -4
  9. package/dist/chunks/{card-config-utils-B2cDWQqB.js → card-config-utils-Cxnq2R6z.js} +14 -14
  10. package/dist/chunks/{card-config-utils-CMO4_zVs.cjs → card-config-utils-z86y6tSq.cjs} +1 -1
  11. package/dist/chunks/column-bands-CU0byntA.cjs +1 -0
  12. package/dist/chunks/column-bands-RdM-kjDe.js +47 -0
  13. package/dist/chunks/{dashboard-briefing-launcher-e3s3MuSs.js → dashboard-briefing-launcher-BCEHJ_eD.js} +15 -12
  14. package/dist/chunks/{dashboard-briefing-launcher-BzPD50QD.cjs → dashboard-briefing-launcher-CjZ4aE34.cjs} +2 -2
  15. package/dist/chunks/{dashboard-controls-DAOABnks.js → dashboard-controls-DFfit5KH.js} +12 -12
  16. package/dist/chunks/{dashboard-controls-DQBfOqmC.cjs → dashboard-controls-f9aJ70Zu.cjs} +1 -1
  17. package/dist/chunks/{dashboard-date-comparison-definition-D7Bl-YAl.js → dashboard-date-comparison-definition-BqNhECUr.js} +6 -6
  18. package/dist/chunks/{dashboard-date-comparison-definition-C_w-GO_5.cjs → dashboard-date-comparison-definition-Y6JZwpcr.cjs} +1 -1
  19. package/dist/chunks/{dashboard-json-S5Eq2GAg.js → dashboard-json-DVtcA02f.js} +7 -7
  20. package/dist/chunks/{dashboard-json-1jZycd5h.cjs → dashboard-json-deqQC-UR.cjs} +1 -1
  21. package/dist/chunks/edit-dashboard-visual-DK6lSC_p.cjs +172 -0
  22. package/dist/chunks/{edit-dashboard-visual-Bkm0ciHG.js → edit-dashboard-visual-lJ6rDH3w.js} +4553 -4542
  23. package/dist/chunks/{editor-action-buttons-Bvv16QA-.js → editor-action-buttons-Bnxxa439.js} +7 -7
  24. package/dist/chunks/{editor-action-buttons-B2NCSsDw.cjs → editor-action-buttons-CmDaQbPN.cjs} +1 -1
  25. package/dist/chunks/{field-aggregations-CzuQKtqx.js → field-aggregations-Dl2A3rbV.js} +461 -358
  26. package/dist/chunks/field-aggregations-pH_3kymD.cjs +1 -0
  27. package/dist/chunks/{field-dependencies-DIab72rQ.cjs → field-dependencies-EB485TdB.cjs} +1 -1
  28. package/dist/chunks/{field-dependencies-DXW4jtvJ.js → field-dependencies-v-lJNzC7.js} +1 -1
  29. package/dist/chunks/{index-nhUr9xBz.js → index-BVVl2JDK.js} +57955 -54696
  30. package/dist/chunks/{index-CACdoqu3.js → index-C8w91oj4.js} +61 -51
  31. package/dist/chunks/index-Cw2ypaFl.cjs +1 -0
  32. package/dist/chunks/index-DfqMtR9S.cjs +4 -0
  33. package/dist/chunks/index-UNKSfi7s.cjs +1434 -0
  34. package/dist/chunks/{index-CnGVjyF8.js → index-ylOpKRDu.js} +877 -849
  35. package/dist/chunks/{matrix-analytical-definition-Ct5Tu8np.cjs → matrix-analytical-definition-BWd159lN.cjs} +1 -1
  36. package/dist/chunks/{matrix-analytical-definition-BDAK2aEi.js → matrix-analytical-definition-BimC4XIV.js} +1 -1
  37. package/dist/chunks/{matrix-card-U4c72doZ.cjs → matrix-card-C2RjEYZ8.cjs} +1 -1
  38. package/dist/chunks/{matrix-card-DOIeTmjh.js → matrix-card-CIlz0Dnp.js} +2 -2
  39. package/dist/chunks/{matrix-control-sources-FjxGIbqk.cjs → matrix-control-sources-BvEJF7d3.cjs} +1 -1
  40. package/dist/chunks/{matrix-control-sources-BxKH2yu2.js → matrix-control-sources-KbZe1gj_.js} +51 -51
  41. package/dist/chunks/{matrix-definition-CBJW_4ii.cjs → matrix-definition-DanUT11P.cjs} +1 -1
  42. package/dist/chunks/{matrix-definition-I9rHB9zN.js → matrix-definition-E5gXXSTZ.js} +1 -1
  43. package/dist/chunks/matrix-formatter-BJTO8ky9.cjs +1 -0
  44. package/dist/chunks/matrix-formatter-CCXNRt3s.js +341 -0
  45. package/dist/chunks/{matrix-member-presentation-DO1VSqfh.js → matrix-member-presentation-Bw7-JCrr.js} +64 -64
  46. package/dist/chunks/matrix-member-presentation-DvXDEo0U.cjs +1 -0
  47. package/dist/chunks/{matrix-operation-contract-DoiWTUbT.cjs → matrix-operation-contract-0RxoU_M3.cjs} +1 -1
  48. package/dist/chunks/{matrix-operation-contract-D0HfzwZg.js → matrix-operation-contract-D32U2CSw.js} +19 -19
  49. package/dist/chunks/{metric-comparison-Dqc7_tnW.js → metric-comparison-BphoJ9bq.js} +1 -1
  50. package/dist/chunks/{metric-comparison-DBQ3EJTz.cjs → metric-comparison-CUmltzpz.cjs} +1 -1
  51. package/dist/chunks/pivot-header-presentation-BSZhB1g-.js +661 -0
  52. package/dist/chunks/pivot-header-presentation-EoUS5ze5.cjs +5 -0
  53. package/dist/chunks/{pivot-result-identity-8M-bZrw9.js → pivot-result-identity-BzUQiCEV.js} +4 -4
  54. package/dist/chunks/{pivot-result-identity-uTiylUNr.cjs → pivot-result-identity-gquWljbd.cjs} +1 -1
  55. package/dist/chunks/pivot-result-lifecycle-gl9cBfB-.cjs +1 -0
  56. package/dist/chunks/{pivot-result-lifecycle-BeOpjAhg.js → pivot-result-lifecycle-kRhiJkzg.js} +208 -149
  57. package/dist/chunks/{raw-temporal-DrmCX9Wq.js → raw-temporal-BqOfk-xN.js} +471 -361
  58. package/dist/chunks/{raw-temporal-contract-CFLGwTiI.js → raw-temporal-contract-BQZIJ1fn.js} +1 -1
  59. package/dist/chunks/{raw-temporal-contract-DECbTuzA.cjs → raw-temporal-contract-CklMVG_1.cjs} +1 -1
  60. package/dist/chunks/raw-temporal-eJXecCyJ.cjs +1 -0
  61. package/dist/chunks/{report-preferences-dialog-B2fzQH1T.js → report-preferences-dialog-CHXPEl7v.js} +6 -6
  62. package/dist/chunks/{report-preferences-dialog-DcLkVqni.cjs → report-preferences-dialog-Cto0vDwI.cjs} +1 -1
  63. package/dist/chunks/{report-runtime-context-Cs65Mrxj.js → report-runtime-context-CxIoGyNM.js} +1 -1
  64. package/dist/chunks/{report-runtime-context-DzvHBPxl.cjs → report-runtime-context-CzSrCBsu.cjs} +1 -1
  65. package/dist/chunks/{selection-reducer-BIiQXbGM.js → selection-reducer-CvCBQbl2.js} +1 -1
  66. package/dist/chunks/{selection-reducer-CGKKsaPa.cjs → selection-reducer-Kl22OzIk.cjs} +1 -1
  67. package/dist/chunks/{semantic-format-BZxJLKvw.js → semantic-format-DwqGYx4V.js} +25 -31
  68. package/dist/chunks/semantic-format-mVI32OJH.cjs +1 -0
  69. package/dist/chunks/{source-entity-resolution-D7vnmDwm.js → source-entity-resolution-Bzefiive.js} +7 -7
  70. package/dist/chunks/{source-entity-resolution-CjbgnwyX.cjs → source-entity-resolution-R46X34SE.cjs} +1 -1
  71. package/dist/chunks/switch-DNbWXEOP.cjs +134 -0
  72. package/dist/chunks/{switch-QfKb0Iwe.js → switch-DNv-hVmt.js} +8260 -7659
  73. package/dist/chunks/{temporal-bucket-B9hMwemw.js → temporal-bucket-DlFuhCnT.js} +6 -6
  74. package/dist/chunks/{temporal-bucket-contract-IWDgyTMw.js → temporal-bucket-contract-DTLDRzgV.js} +1 -1
  75. package/dist/chunks/{temporal-bucket-contract-ZctiyXYk.cjs → temporal-bucket-contract-nTv6gvX5.cjs} +1 -1
  76. package/dist/chunks/{token-types-Dl0hcKBX.js → token-types-BC6RcUY8.js} +1 -1
  77. package/dist/chunks/{token-types-Ahh5u4iT.cjs → token-types-aWrzwonf.cjs} +1 -1
  78. package/dist/chunks/{update-policy-COjFudhl.cjs → update-policy-DRDLWe7Y.cjs} +1 -1
  79. package/dist/chunks/{update-policy-BeQqjupC.js → update-policy-DhAUtiC8.js} +2 -2
  80. package/dist/chunks/{validators-CkHsAvwB.js → validators-CsdOtZI6.js} +411 -397
  81. package/dist/chunks/validators-DFeDcdpA.cjs +1 -0
  82. package/dist/dashboard/index.cjs +1 -1
  83. package/dist/dashboard/index.js +1 -1
  84. package/dist/dashboard-authoring/index.cjs +3 -3
  85. package/dist/dashboard-authoring/index.js +233 -227
  86. package/dist/data-app-builder/index.cjs +1 -1
  87. package/dist/data-app-builder/index.js +3 -3
  88. package/dist/data-app-codegen/index.cjs +1 -1
  89. package/dist/data-app-codegen/index.js +2 -2
  90. package/dist/data-app-codegen-node/index.cjs +1 -1
  91. package/dist/data-app-codegen-node/index.js +3 -3
  92. package/dist/data-app-sdk/index.cjs +1 -1
  93. package/dist/data-app-sdk/index.js +5 -5
  94. package/dist/data-app-sdk-adapters/index.cjs +1 -1
  95. package/dist/data-app-sdk-adapters/index.js +2 -2
  96. package/dist/data-app-sdk-validation/index.cjs +1 -1
  97. package/dist/data-app-sdk-validation/index.js +5 -5
  98. package/dist/format-utils/index.cjs +3 -3
  99. package/dist/format-utils/index.js +291 -397
  100. package/dist/index.cjs +1 -1
  101. package/dist/index.js +15 -15
  102. package/dist/pdf-table-layout/index.cjs +1 -0
  103. package/dist/pdf-table-layout/index.js +993 -0
  104. package/dist/report-runtime-context/index.cjs +1 -1
  105. package/dist/report-runtime-context/index.js +2 -2
  106. package/dist/style.css +1 -1
  107. package/dist/surfboard/index.cjs +1 -1
  108. package/dist/surfboard/index.js +2 -2
  109. package/dist/types/briefings/index.d.ts +1 -1
  110. package/dist/types/components/document-sheet/document-input-bar.d.ts +1 -3
  111. package/dist/types/components/document-sheet/document-insert-picker.d.ts +37 -0
  112. package/dist/types/components/document-sheet/document-kpi-section.d.ts +17 -0
  113. package/dist/types/components/document-sheet/document-matrix-layout-context.d.ts +10 -0
  114. package/dist/types/components/document-sheet/document-matrix-section.d.ts +27 -0
  115. package/dist/types/components/document-sheet/document-measure-layer.d.ts +45 -0
  116. package/dist/types/components/document-sheet/document-outline.d.ts +7 -1
  117. package/dist/types/components/document-sheet/document-page-navigation.d.ts +22 -0
  118. package/dist/types/components/document-sheet/document-page.d.ts +9 -5
  119. package/dist/types/components/document-sheet/document-panel/document-side-panel.d.ts +36 -0
  120. package/dist/types/components/document-sheet/document-panel/inputs-panel.d.ts +9 -0
  121. package/dist/types/components/document-sheet/document-panel/page-panel.d.ts +5 -0
  122. package/dist/types/components/document-sheet/document-panel/panel-controls.d.ts +14 -0
  123. package/dist/types/components/document-sheet/document-panel/region-panels.d.ts +11 -0
  124. package/dist/types/components/document-sheet/document-panel/section-panel.d.ts +25 -0
  125. package/dist/types/components/document-sheet/document-section-print-boundary.d.ts +9 -0
  126. package/dist/types/components/document-sheet/document-table-chrome.d.ts +22 -0
  127. package/dist/types/components/document-sheet/document-table-section.d.ts +3 -7
  128. package/dist/types/components/document-sheet/document-text-preview-context.d.ts +8 -0
  129. package/dist/types/components/document-sheet/use-first-fitting-variant.d.ts +18 -0
  130. package/dist/types/components/editor/editor-main/dashboard-variable-node.d.ts +12 -2
  131. package/dist/types/components/explorer/chart-configuration/matrix-authoring-controls.d.ts +7 -2
  132. package/dist/types/components/text-variables/variable-chip-plugin.d.ts +23 -0
  133. package/dist/types/components/text-variables/variable-chip.d.ts +18 -0
  134. package/dist/types/components/text-variables/variable-picker.d.ts +27 -0
  135. package/dist/types/components/visual/aggregated-table/utils/metric-format-resolver.d.ts +3 -3
  136. package/dist/types/components/visual/data-table/types/data-table.d.ts +4 -1
  137. package/dist/types/components/visual/pivot-table/utils/pivot-metric-formatting.d.ts +2 -2
  138. package/dist/types/components/visual/settings/table-presentation-settings.d.ts +27 -1
  139. package/dist/types/index.cjs +1 -1
  140. package/dist/types/index.js +5 -5
  141. package/dist/types/lib/dashboard-inputs/text-variable-options.d.ts +15 -0
  142. package/dist/types/lib/document/document-canvas-actions.d.ts +22 -0
  143. package/dist/types/lib/document/document-edits.d.ts +119 -0
  144. package/dist/types/lib/document/document-kpi-figure.d.ts +27 -0
  145. package/dist/types/lib/document/document-kpi-layout.d.ts +29 -0
  146. package/dist/types/lib/document/document-kpi-section-edits.d.ts +15 -0
  147. package/dist/types/lib/document/document-matrix-bands.d.ts +66 -0
  148. package/dist/types/lib/document/document-matrix-print.d.ts +11 -0
  149. package/dist/types/lib/document/document-pagination.d.ts +56 -3
  150. package/dist/types/lib/document/document-panel-target.d.ts +19 -0
  151. package/dist/types/lib/document/document-section-editor.d.ts +8 -7
  152. package/dist/types/lib/document/document-section-kinds.d.ts +49 -0
  153. package/dist/types/lib/document/document-section-query-options.d.ts +25 -0
  154. package/dist/types/lib/document/document-section-render-state.d.ts +26 -0
  155. package/dist/types/lib/document/document-section-utils.d.ts +11 -4
  156. package/dist/types/lib/document/document-table-dom.d.ts +4 -6
  157. package/dist/types/lib/document/document-table-pagination-model.d.ts +0 -5
  158. package/dist/types/lib/document/document-table-print-model.d.ts +4 -3
  159. package/dist/types/lib/document/document-table-style.d.ts +15 -4
  160. package/dist/types/lib/document/document-table-surface.d.ts +15 -0
  161. package/dist/types/lib/document/document-variables.d.ts +40 -6
  162. package/dist/types/lib/document/use-document-section-data.d.ts +39 -0
  163. package/dist/types/lib/document/use-measured-document-table-layout.d.ts +50 -0
  164. package/dist/types/lib/formatters/kpi-result-values.d.ts +20 -0
  165. package/dist/types/lib/formatters/metric-formatting.d.ts +3 -3
  166. package/dist/types/lib/hooks/query-context/use-dashboard-card-execution-snapshot.d.ts +8 -2
  167. package/dist/types/lib/hooks/use-dashboard-frame-query.d.ts +6 -0
  168. package/dist/types/lib/hooks/use-dashboard-kpi-actions.d.ts +1 -1
  169. package/dist/types/lib/hooks/use-document-section-editor.d.ts +2 -2
  170. package/dist/types/lib/hooks/use-document-section-session.d.ts +36 -0
  171. package/dist/types/lib/hooks/use-editor-preview.d.ts +17 -0
  172. package/dist/types/lib/hooks/use-is-editing-card.d.ts +7 -0
  173. package/dist/types/lib/matrix-table/matrix-card-adapter.d.ts +2 -0
  174. package/dist/types/lib/matrix-table/matrix-card-draft.d.ts +2 -0
  175. package/dist/types/lib/matrix-table/matrix-delivery.d.ts +4 -0
  176. package/dist/types/lib/matrix-table/matrix-layout-read.d.ts +68 -0
  177. package/dist/types/lib/query-context/build-dashboard-execution-snapshot.d.ts +8 -1
  178. package/dist/types/lib/query-context/build-dashboard-frame-base-query-contexts.d.ts +4 -2
  179. package/dist/types/lib/query-context/card-execution.d.ts +30 -0
  180. package/dist/types/lib/query-context/document-section-card-query.d.ts +37 -0
  181. package/dist/types/lib/stores/dashboard-store.d.ts +12 -8
  182. package/dist/types/lib/stores/editor-store.d.ts +2 -0
  183. package/dist/types/lib/table-formatting/table-presentation-fields.d.ts +1 -0
  184. package/dist/types/lib/text-variables/text-variable-types.d.ts +39 -0
  185. package/dist/types/lib/types/common-types.d.ts +34 -1
  186. package/dist/types/lib/utils/card-definition.d.ts +2 -0
  187. package/dist/types/lib/utils/card-utils.d.ts +13 -6
  188. package/dist/types/lib/utils/date-timezone-utils.d.ts +26 -4
  189. package/dist/types/pdf-table-layout.d.ts +2 -0
  190. package/dist/types/shared/analytics-protocol/index.d.ts +1 -1
  191. package/dist/types/shared/analytics-protocol/matrix-definition-contract.d.ts +45 -0
  192. package/dist/types/shared/analytics-protocol/matrix-member-presentation.d.ts +4 -0
  193. package/dist/types/shared/dashboard-authoring/document-section-cards.d.ts +56 -0
  194. package/dist/types/shared/dashboard-authoring/index.d.ts +1 -0
  195. package/dist/types/shared/dashboard-authoring/matrix-delivery.d.ts +36 -1
  196. package/dist/types/shared/format-utils/formatters/duration-formatter.d.ts +4 -1
  197. package/dist/types/shared/format-utils/formatters/index.d.ts +2 -2
  198. package/dist/types/shared/format-utils/formatters/matrix-formatter.d.ts +5 -0
  199. package/dist/types/shared/format-utils/formatters/number-formatter.d.ts +8 -2
  200. package/dist/types/shared/format-utils/index.d.ts +1 -0
  201. package/dist/types/shared/format-utils/matrix-export-presentation.d.ts +690 -1
  202. package/dist/types/shared/format-utils/matrix-print.d.ts +38 -0
  203. package/dist/types/shared/format-utils/pdf-table-layout/column-bands.d.ts +55 -0
  204. package/dist/types/shared/format-utils/pdf-table-layout/index.d.ts +6 -0
  205. package/dist/types/shared/format-utils/pdf-table-layout/page-size.d.ts +7 -0
  206. package/dist/types/shared/format-utils/pdf-table-layout/table-column-semantics.d.ts +106 -0
  207. package/dist/types/shared/format-utils/pdf-table-layout/table-column-widths.d.ts +13 -0
  208. package/dist/types/shared/format-utils/pdf-table-layout/table-page-geometry.d.ts +19 -0
  209. package/dist/types/shared/format-utils/pdf-table-layout/wide-table-layout.d.ts +46 -0
  210. package/dist/types/shared/format-utils/presentation-execution.d.ts +17 -2
  211. package/dist/types/shared/format-utils/table-structure.d.ts +9 -0
  212. package/dist/types/shared/format-utils/types/format-types.d.ts +16 -1
  213. package/package.json +6 -1
  214. package/dist/chunks/edit-dashboard-visual-BwJ2Eljw.cjs +0 -172
  215. package/dist/chunks/field-aggregations-jSi77h9Z.cjs +0 -1
  216. package/dist/chunks/index-DhlVxvyI.cjs +0 -4
  217. package/dist/chunks/index-DrOFJOCq.cjs +0 -1424
  218. package/dist/chunks/index-F25jnH0p.cjs +0 -1
  219. package/dist/chunks/matrix-formatter-BLunke3R.js +0 -424
  220. package/dist/chunks/matrix-formatter-CveLJo6S.cjs +0 -1
  221. package/dist/chunks/matrix-member-presentation-CFHjdrxT.cjs +0 -1
  222. package/dist/chunks/pivot-header-presentation-Cxz8-06f.cjs +0 -5
  223. package/dist/chunks/pivot-header-presentation-Dm9dUQsl.js +0 -415
  224. package/dist/chunks/pivot-result-lifecycle-BiERyXnS.cjs +0 -1
  225. package/dist/chunks/raw-temporal-BUeTpG76.cjs +0 -1
  226. package/dist/chunks/semantic-format-BzH69TRq.cjs +0 -1
  227. package/dist/chunks/switch--Re1K566.cjs +0 -134
  228. package/dist/chunks/validators-DVYAnnX0.cjs +0 -1
@@ -1 +1 @@
1
- "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("../chunks/index-DrOFJOCq.cjs"),r=require("../chunks/common-types-nBuCd3u2.cjs"),o=require("../chunks/report-preferences-dialog-DcLkVqni.cjs");exports.DisplayFormatPreferencesFields=e.DisplayFormatPreferencesFields;exports.Surfboard=e.DashboardPlus;exports.CONTROL_CARD_DEFAULT_VALUE=r.CONTROL_CARD_DEFAULT_VALUE;exports.EMPTY_SELECTION=r.EMPTY_SELECTION;exports.ReportPreferencesDialog=o.ReportPreferencesDialog;
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("../chunks/index-UNKSfi7s.cjs"),r=require("../chunks/common-types-nBuCd3u2.cjs"),o=require("../chunks/report-preferences-dialog-Cto0vDwI.cjs");exports.DisplayFormatPreferencesFields=e.DisplayFormatPreferencesFields;exports.Surfboard=e.DashboardPlus;exports.CONTROL_CARD_DEFAULT_VALUE=r.CONTROL_CARD_DEFAULT_VALUE;exports.EMPTY_SELECTION=r.EMPTY_SELECTION;exports.ReportPreferencesDialog=o.ReportPreferencesDialog;
@@ -1,6 +1,6 @@
1
- import { b as a, a as o } from "../chunks/index-nhUr9xBz.js";
1
+ import { b as a, a as o } from "../chunks/index-BVVl2JDK.js";
2
2
  import { C as f, E } from "../chunks/common-types-C6cAQgyh.js";
3
- import { R as t } from "../chunks/report-preferences-dialog-B2fzQH1T.js";
3
+ import { R as t } from "../chunks/report-preferences-dialog-CHXPEl7v.js";
4
4
  export {
5
5
  f as CONTROL_CARD_DEFAULT_VALUE,
6
6
  a as DisplayFormatPreferencesFields,
@@ -1,7 +1,7 @@
1
1
  import { NumericCanonicalFormat, NumericPresentationTarget, PresentationExecutionSnapshot } from '../shared/format-utils/index.js';
2
2
  import { BriefingAppearanceSpec, BriefingFragments, BriefingThemeOverrides } from './presentation-contract.js';
3
3
  import { MatrixConfig } from '../shared/analytics-protocol/index.js';
4
- export { captureMatrixExport, buildMatrixDeliveryEnvelope, matrixDeliveryPayloadSchema, matrixDeliveryQuerySchema } from '../shared/dashboard-authoring/matrix-delivery.js';
4
+ export { captureMatrixExport, buildMatrixDeliveryEnvelope, matrixDeliveryPayloadSchema, matrixDeliveryQuerySchema, type MatrixLayoutReadResult } from '../shared/dashboard-authoring/matrix-delivery.js';
5
5
  export declare const BRIEFING_KIND: "BRIEFING";
6
6
  export { DEFAULT_BRIEFING_SCHEDULE, buildBriefingScheduleExpr, describeBriefingSchedule, isValidBriefingTimezone, parseBriefingScheduleExpr, type BriefingScheduleCadence, type BriefingScheduleViewModel, } from './schedule.js';
7
7
  export { getBriefingCardAttachmentCapability, getBriefingCardAttachmentFormats, getDefaultBriefingCardAttachmentFormat, type BriefingCardAttachmentCapability, } from './attachments.js';
@@ -1,9 +1,8 @@
1
- import { ReactNode } from 'react';
2
1
  import { FilterAuthoringAcceptance, FilterAuthoringInputMetadata } from '../surfboard/filter/custom-filter-popover.js';
3
2
  import { TFilter, TFilterValue } from '../surfboard/filter/types.js';
4
3
  import { DocumentFilterMode } from '../../lib/document/document-input-runtime.js';
5
4
  import { ControlDefinition, DocumentInputDefinition, NormalizedDashboardInput } from '../../lib/types/common-types.js';
6
- export declare function DocumentInputBar({ className, sheetId, inputs, dashboardInputsById, filterValuesByInputId, filterModesByInputId, documentFilterValues, documentControlValues, onSetFilterValue, onSetFilterMode, onUpdateFilterInput, onUpdateControlInput, onRemoveFilterValue, onRemoveInput, onReorderInputs, controlValuesByInputId, onSetControlValue, actions, isEditing, }: {
5
+ export declare function DocumentInputBar({ className, sheetId, inputs, dashboardInputsById, filterValuesByInputId, filterModesByInputId, documentFilterValues, documentControlValues, onSetFilterValue, onSetFilterMode, onUpdateFilterInput, onUpdateControlInput, onRemoveFilterValue, onRemoveInput, onReorderInputs, controlValuesByInputId, onSetControlValue, isEditing, }: {
7
6
  className?: string;
8
7
  /** The document sheet these inputs belong to; the target scope for options. */
9
8
  sheetId: string;
@@ -27,6 +26,5 @@ export declare function DocumentInputBar({ className, sheetId, inputs, dashboard
27
26
  onReorderInputs?: (orderedInputIds: string[]) => void;
28
27
  controlValuesByInputId: Record<string, unknown>;
29
28
  onSetControlValue: (inputId: string, value: unknown) => void;
30
- actions?: ReactNode;
31
29
  isEditing?: boolean;
32
30
  }): import("react/jsx-runtime").JSX.Element;
@@ -0,0 +1,37 @@
1
+ import { ReactNode } from 'react';
2
+ import { AddableDocumentSectionType } from '../../lib/document/document-section-utils.js';
3
+ import { DashboardCardLocation } from '../../shared/dashboard-authoring/document-section-cards.js';
4
+ export type DocumentInsertChoice = {
5
+ kind: 'section';
6
+ type: AddableDocumentSectionType;
7
+ } | {
8
+ kind: 'copy';
9
+ source: DashboardCardLocation;
10
+ };
11
+ /**
12
+ * The one way to add a section: kind first (Data, Content, Layout), then
13
+ * "Copy from this dashboard". It opens from the outline's Add button, the
14
+ * gutters between sections, and the empty page. Section kinds come from the
15
+ * registry, and copyable cards from `listCopyableDocumentCardLocations`, so
16
+ * the picker never offers what an edit would refuse.
17
+ */
18
+ export declare function DocumentInsertPicker({ onChoose, className, }: {
19
+ onChoose: (choice: DocumentInsertChoice) => void;
20
+ className?: string;
21
+ }): import("react/jsx-runtime").JSX.Element;
22
+ /**
23
+ * The picker in a popover on any trigger. A choice runs only after the
24
+ * popover has closed and unmounted (`onCloseAutoFocus`). Adding a data section
25
+ * opens the full-screen editor, which hides the document in a React
26
+ * <Activity>; this portaled content sits outside that tree, and an unmount
27
+ * scheduled while the document is hidden would be deferred, leaving the
28
+ * picker stuck on screen.
29
+ */
30
+ export declare function DocumentInsertPickerPopover({ open, onOpenChange, trigger, onChoose, align, side, }: {
31
+ open: boolean;
32
+ onOpenChange: (open: boolean) => void;
33
+ trigger: ReactNode;
34
+ onChoose: (choice: DocumentInsertChoice) => void;
35
+ align?: 'start' | 'center' | 'end';
36
+ side?: 'top' | 'bottom' | 'left' | 'right';
37
+ }): import("react/jsx-runtime").JSX.Element;
@@ -0,0 +1,17 @@
1
+ import { DocumentSectionRuntime } from '../../lib/document/document-section-query-options.js';
2
+ import { DocumentKpiSection } from '../../lib/types/common-types.js';
3
+ export type EditDocumentKpiCard = (section: DocumentKpiSection, cardId: string) => void;
4
+ type DocumentKpiSectionProps = {
5
+ section: DocumentKpiSection;
6
+ runtime: DocumentSectionRuntime;
7
+ isEditing: boolean;
8
+ onEditKpiCard?: EditDocumentKpiCard;
9
+ };
10
+ /**
11
+ * A KPI section on a Document page: one query per KPI card, printed as a row
12
+ * of tiles or as label and value lines. The section's height is fixed by
13
+ * `document-kpi-layout`, so pagination places it exactly and never splits it.
14
+ */
15
+ declare function DocumentKpiSectionRendererImpl({ section, runtime, isEditing, onEditKpiCard, }: DocumentKpiSectionProps): import("react/jsx-runtime").JSX.Element;
16
+ export declare const DocumentKpiSectionRenderer: import('react').MemoExoticComponent<typeof DocumentKpiSectionRendererImpl>;
17
+ export {};
@@ -0,0 +1,10 @@
1
+ import { DocumentMatrixFit } from '../../lib/document/document-matrix-bands.js';
2
+ /** What the measuring layer found for a Matrix section (Plan 2, N1 and B2). */
3
+ export type DocumentMatrixLayout = {
4
+ /** Each column's width over the whole result. */
5
+ columnWidthsPx?: readonly number[];
6
+ /** How the Matrix fits the page body: one table, bands, or too wide. */
7
+ matrixFit?: DocumentMatrixFit;
8
+ };
9
+ /** The measuring layer's Matrix layouts by section id; page slices draw them. */
10
+ export declare const DocumentMatrixLayoutContext: import('react').Context<Readonly<Record<string, DocumentMatrixLayout | undefined>>>;
@@ -0,0 +1,27 @@
1
+ import { DocumentTableRowCountChange, DocumentTableSlice } from '../../lib/document/document-pagination.js';
2
+ import { DocumentTableLayoutMeasurement } from '../../lib/document/document-table-print-model.js';
3
+ import { ControlDefinition, DashboardInputValues, DocumentTableSection } from '../../lib/types/common-types.js';
4
+ import { TFilterValue } from '../surfboard/filter/types.js';
5
+ type DocumentMatrixSectionProps = {
6
+ section: DocumentTableSection;
7
+ documentFilterValues: TFilterValue[];
8
+ documentControlDefinitions: ControlDefinition[];
9
+ documentControlValues: Record<string, unknown>;
10
+ documentDashboardInputValues?: DashboardInputValues;
11
+ tableSlice?: DocumentTableSlice;
12
+ initialRowsPerPageLimit?: number;
13
+ surfaceMode: 'preview' | 'print';
14
+ onTableRowCountChange?: DocumentTableRowCountChange;
15
+ onTableLayoutMeasure?: (sectionId: string, measurement: DocumentTableLayoutMeasurement) => void;
16
+ onTableLayoutInvalidate?: (sectionId: string) => void;
17
+ measurementScale: number;
18
+ };
19
+ /**
20
+ * A Matrix section: the full result from one delivery-authorized layout read
21
+ * (tech spec D-M1), drawn as a static table in the document table surface and
22
+ * paginated like any table section. It never mounts the windowed Matrix
23
+ * viewer, and it never prints part of a result: a failed read fails the
24
+ * section, and a scheduled PDF with it.
25
+ */
26
+ export declare function DocumentMatrixSection(props: DocumentMatrixSectionProps): import("react/jsx-runtime").JSX.Element;
27
+ export {};
@@ -0,0 +1,45 @@
1
+ import { ReactNode } from 'react';
2
+ import { DocumentTableRowCountChange } from '../../lib/document/document-pagination.js';
3
+ import { DocumentTableLayoutMeasurement } from '../../lib/document/document-table-print-model.js';
4
+ import { ControlDefinition, DashboardInputValues, DocumentTableSection } from '../../lib/types/common-types.js';
5
+ import { TFilterValue } from '../surfboard/filter/types.js';
6
+ /** Rows a flat table draws per measuring pass; its column widths are fixed. */
7
+ export declare const DOCUMENT_TABLE_MEASURE_CHUNK_ROWS = 500;
8
+ export type DocumentRegionHeights = {
9
+ header?: number;
10
+ footer?: number;
11
+ };
12
+ type DocumentMeasureLayerProps = {
13
+ /** The paginated Table and Matrix sections. */
14
+ sections: readonly DocumentTableSection[];
15
+ /** The page body width, in page pixels. */
16
+ bodyWidthPx: number;
17
+ /** The zoom the page is drawn at; the layer cancels it. */
18
+ measurementScale: number;
19
+ surfaceMode: 'preview' | 'print';
20
+ /** Holds the PDF (print) until every section is measured (N3). */
21
+ isMeasuring: boolean;
22
+ header: ReactNode;
23
+ footer: ReactNode;
24
+ documentFilterValues: TFilterValue[];
25
+ documentControlDefinitions: ControlDefinition[];
26
+ documentControlValues: Record<string, unknown>;
27
+ documentDashboardInputValues?: DashboardInputValues;
28
+ previewRowLimitsBySectionId: Record<string, number>;
29
+ defaultPreviewRowLimit: number;
30
+ onTableRowCountChange: DocumentTableRowCountChange;
31
+ onTableLayoutMeasure: (sectionId: string, measurement: DocumentTableLayoutMeasurement) => void;
32
+ onTableLayoutInvalidate: (sectionId: string) => void;
33
+ onRegionHeightsChange: (heights: DocumentRegionHeights) => void;
34
+ };
35
+ /**
36
+ * The Document's single source of layout measurements (Plan 2, N1). It draws
37
+ * every paginated Table and Matrix section once, off the page, at page body
38
+ * width and without the canvas zoom, on the canvas and in print alike, so
39
+ * both paginate from the same numbers. Visible pages only draw.
40
+ *
41
+ * The layer is a zero-size, clipped, hidden box: it takes no space, never
42
+ * prints and is never announced, but its content is still laid out.
43
+ */
44
+ export declare function DocumentMeasureLayer({ sections, bodyWidthPx, measurementScale, surfaceMode, isMeasuring, header, footer, onRegionHeightsChange, ...sectionProps }: DocumentMeasureLayerProps): import("react/jsx-runtime").JSX.Element;
45
+ export {};
@@ -1,7 +1,8 @@
1
+ import { DashboardCardLocation } from '../../shared/dashboard-authoring/document-section-cards.js';
1
2
  import { AddableDocumentSectionType } from '../../lib/document/document-section-utils.js';
2
3
  import { DocumentInputDefinition, DocumentSection } from '../../lib/types/common-types.js';
3
4
  export type DocumentSectionDropPlacement = 'before' | 'after';
4
- export declare function DocumentOutline({ sections, inputs, selectedSectionId, onSelectSection, onDeleteSection, onReorderSection, onInsertSection, }: {
5
+ export declare function DocumentOutline({ sections, inputs, selectedSectionId, onSelectSection, onDeleteSection, onReorderSection, onInsertSection, onCopyCard, startPageBySectionId, }: {
5
6
  sections: DocumentSection[];
6
7
  inputs: DocumentInputDefinition[];
7
8
  selectedSectionId: string | null;
@@ -12,4 +13,9 @@ export declare function DocumentOutline({ sections, inputs, selectedSectionId, o
12
13
  * "+ Add" entry replaces the inline + Add buttons that used to sit
13
14
  * between every section on the canvas. */
14
15
  onInsertSection?: (type: AddableDocumentSectionType) => void;
16
+ /** Append a copy of a dashboard card as a new section. */
17
+ onCopyCard?: (source: DashboardCardLocation) => void;
18
+ /** The page each section starts on. Every page is measured, whichever
19
+ * page is shown, so these are the printed pages. */
20
+ startPageBySectionId?: Record<string, number>;
15
21
  }): import("react/jsx-runtime").JSX.Element;
@@ -0,0 +1,22 @@
1
+ /**
2
+ * The Document pager, floating at the bottom of the canvas in the editor and
3
+ * the viewer. It sits on the app canvas, not the paper, so it follows the
4
+ * theme: a 28px (h-7) shell like every Document toolbar control, with a
5
+ * hairline and the floating-menu shadow; the buttons and the page field sit
6
+ * inside it with the chip radius (BRAND.md, TOKENS.md).
7
+ */
8
+ export declare function DocumentPageNavigation({ pageNumber, pageCount, onGoToPage, }: {
9
+ pageNumber: number;
10
+ pageCount: number;
11
+ /** Any page; the caller clamps it to the Document's pages. */
12
+ onGoToPage: (pageNumber: number) => void;
13
+ }): import("react/jsx-runtime").JSX.Element | null;
14
+ /**
15
+ * The pager's "n / N": the page number is a field, so a reader can type a
16
+ * page and press Enter to go to it. Escape or an empty field keeps the page.
17
+ */
18
+ export declare function DocumentPageNumberInput({ pageNumber, pageCount, onGoToPage, }: {
19
+ pageNumber: number;
20
+ pageCount: number;
21
+ onGoToPage: (pageNumber: number) => void;
22
+ }): import("react/jsx-runtime").JSX.Element;
@@ -1,12 +1,13 @@
1
- import { ReactNode } from 'react';
1
+ import { DocumentMatrixFit } from '../../lib/document/document-matrix-bands.js';
2
2
  import { AddableDocumentSectionType } from '../../lib/document/document-section-utils.js';
3
3
  import { DocumentTextRenderContext } from '../../lib/document/document-variables.js';
4
4
  import { DocumentTableResultColumnsChange } from '../../lib/document/document-table-result-columns.js';
5
5
  import { DocumentFilterMode } from '../../lib/document/document-input-runtime.js';
6
+ import { EditDocumentKpiCard } from './document-kpi-section.js';
6
7
  import { TFilterValue } from '../surfboard/filter/types.js';
7
8
  import { DashboardInputValues, DocumentControlInputDefinition, DocumentDefinition, DocumentInputDefinition, NormalizedDashboardInput, DocumentTableSection } from '../../lib/types/common-types.js';
8
9
  type UpdateDocumentTableSection = (sectionId: string, updater: (section: DocumentTableSection) => DocumentTableSection) => void;
9
- export declare function DocumentViewerSurface({ sheetId, document, inputs, dashboardInputsById, textRenderContext, filterValuesByInputId, filterModesByInputId, documentFilterValues, documentControlDefinitions, documentControlValues, documentDashboardInputValues, missingRequiredInputLabels, onSetFilterValue, onSetFilterMode, onRemoveFilterValue, controlValuesByInputId, onSetControlValue, actions, }: {
10
+ export declare function DocumentViewerSurface({ sheetId, document, inputs, dashboardInputsById, textRenderContext, filterValuesByInputId, filterModesByInputId, documentFilterValues, documentControlDefinitions, documentControlValues, documentDashboardInputValues, missingRequiredInputLabels, onSetFilterValue, onSetFilterMode, onRemoveFilterValue, controlValuesByInputId, onSetControlValue, }: {
10
11
  /** The document sheet being viewed; the target scope for its inputs. */
11
12
  sheetId: string;
12
13
  document: DocumentDefinition;
@@ -25,7 +26,6 @@ export declare function DocumentViewerSurface({ sheetId, document, inputs, dashb
25
26
  onRemoveFilterValue: (inputId: string) => void;
26
27
  controlValuesByInputId: Record<string, unknown>;
27
28
  onSetControlValue: (inputId: string, value: unknown) => void;
28
- actions?: ReactNode;
29
29
  }): import("react/jsx-runtime").JSX.Element;
30
30
  export declare function DocumentPrintSurface({ document, inputs, textRenderContext, documentFilterValues, documentControlDefinitions, documentControlValues, documentDashboardInputValues, missingRequiredInputLabels, }: {
31
31
  document: DocumentDefinition;
@@ -37,7 +37,7 @@ export declare function DocumentPrintSurface({ document, inputs, textRenderConte
37
37
  documentDashboardInputValues?: DashboardInputValues;
38
38
  missingRequiredInputLabels: string[];
39
39
  }): import("react/jsx-runtime").JSX.Element;
40
- export declare function DocumentPage({ document, inputs, textRenderContext, documentFilterValues, documentControlDefinitions, documentControlValues, documentDashboardInputValues, missingRequiredInputLabels, isEditing, selectedSectionId, activeAddIndex, onSelectSection, onToggleAddIndex, onInsertSection, onEditTableSection, onUpdateTableSection, onTableResultColumnsChange, onReorderSection, pageNumber, onPageCountChange, surfaceMode, measurementScale, }: {
40
+ export declare function DocumentPage({ document, inputs, textRenderContext, documentFilterValues, documentControlDefinitions, documentControlValues, documentDashboardInputValues, missingRequiredInputLabels, isEditing, selectedSectionId, activeAddIndex, onSelectSection, onToggleAddIndex, onInsertSection, onEditKpiCard, onUpdateTableSection, onTableResultColumnsChange, onReorderSection, pageNumber, onPageCountChange, onSectionStartPagesChange, onMatrixFitsChange, surfaceMode, measurementScale, }: {
41
41
  document: DocumentDefinition;
42
42
  inputs: DocumentInputDefinition[];
43
43
  textRenderContext: DocumentTextRenderContext;
@@ -52,12 +52,16 @@ export declare function DocumentPage({ document, inputs, textRenderContext, docu
52
52
  onSelectSection?: (sectionId: string | null) => void;
53
53
  onToggleAddIndex?: (index: number | null) => void;
54
54
  onInsertSection?: (type: AddableDocumentSectionType, insertIndex: number) => void;
55
- onEditTableSection?: (section: DocumentTableSection) => void;
55
+ onEditKpiCard?: EditDocumentKpiCard;
56
56
  onUpdateTableSection?: UpdateDocumentTableSection;
57
57
  onTableResultColumnsChange?: DocumentTableResultColumnsChange;
58
58
  onReorderSection?: (draggedSectionId: string, targetSectionId: string, placement: 'before' | 'after') => void;
59
59
  pageNumber?: number;
60
60
  onPageCountChange?: (pageCount: number) => void;
61
+ /** The page each section starts on (1-based), for the outline. */
62
+ onSectionStartPagesChange?: (startPageBySectionId: Record<string, number>) => void;
63
+ /** How each Matrix section fits the page, for the section panel (2c). */
64
+ onMatrixFitsChange?: (fitBySectionId: Record<string, DocumentMatrixFit>) => void;
61
65
  surfaceMode?: 'preview' | 'print';
62
66
  measurementScale?: number;
63
67
  }): import("react/jsx-runtime").JSX.Element;
@@ -0,0 +1,36 @@
1
+ import { ReactNode } from 'react';
2
+ import { DocumentEdit } from '../../../lib/document/document-edits.js';
3
+ import { DocumentPanelTarget } from '../../../lib/document/document-panel-target.js';
4
+ import { DocumentTableResultColumnCacheEntry } from '../../../lib/document/document-table-result-columns.js';
5
+ import { DocumentDefinition, DocumentFooterRegion, DocumentHeaderRegion, DocumentKpiSection, DocumentPageSetup, DocumentSection, DocumentTableSection } from '../../../lib/types/common-types.js';
6
+ import { DocumentMatrixFit } from '../../../lib/document/document-matrix-bands.js';
7
+ /**
8
+ * The Document side panel. It follows the panel target:
9
+ * - `document`: Page, Header and footer, and Inputs, as stacked groups;
10
+ * - `header` and `footer`: the region's settings;
11
+ * - `section`: the selected section's settings.
12
+ * The header and footer are selected by clicking them on the page.
13
+ */
14
+ export declare function DocumentSidePanel({ sheetId, target, onTargetChange, document, selectedSection, inputSourceSection, tableResultColumnCacheBySectionId, onSelectInputSourceSection, onUpdatePage, matrixFits, onUpdateSelectedSection, onUpdateHeader, onUpdateFooter, onEditTableSection, onEditKpiCard, onAddKpiCard, onEditSection, actions, }: {
15
+ sheetId: string;
16
+ target: DocumentPanelTarget;
17
+ onTargetChange: (target: DocumentPanelTarget) => void;
18
+ document: DocumentDefinition;
19
+ selectedSection: DocumentSection | null;
20
+ inputSourceSection: DocumentSection | null;
21
+ tableResultColumnCacheBySectionId: Record<string, DocumentTableResultColumnCacheEntry>;
22
+ /** Choose the table whose fields the Inputs group offers, without leaving it. */
23
+ onSelectInputSourceSection: (sectionId: string | null) => void;
24
+ onUpdatePage: (page: DocumentPageSetup) => void;
25
+ /** How each Matrix section fits the page (2c), by section id. */
26
+ matrixFits?: Record<string, DocumentMatrixFit>;
27
+ onUpdateSelectedSection: (updater: (section: DocumentSection) => DocumentSection) => void;
28
+ onUpdateHeader: (updater: (header: DocumentHeaderRegion | undefined) => DocumentHeaderRegion | undefined) => void;
29
+ onUpdateFooter: (updater: (footer: DocumentFooterRegion | undefined) => DocumentFooterRegion | undefined) => void;
30
+ onEditTableSection: (section: DocumentTableSection) => void;
31
+ onEditKpiCard: (section: DocumentKpiSection, cardId: string) => void;
32
+ onAddKpiCard: (section: DocumentKpiSection) => void;
33
+ onEditSection: (edit: DocumentEdit) => void;
34
+ /** Document-level actions (Edit/Preview toggle and Export), in the panel header. */
35
+ actions?: ReactNode;
36
+ }): import("react/jsx-runtime").JSX.Element;
@@ -0,0 +1,9 @@
1
+ import { DocumentDefinition, DocumentSection, DocumentTableSection } from '../../../lib/types/common-types.js';
2
+ export declare function InputsInspector({ sheetId, document, selectedSection, inputCount, onSelectSection, onEditTableSection, }: {
3
+ sheetId: string;
4
+ document: DocumentDefinition;
5
+ selectedSection: DocumentSection | null;
6
+ inputCount: number;
7
+ onSelectSection: (sectionId: string | null) => void;
8
+ onEditTableSection: (section: DocumentTableSection) => void;
9
+ }): import("react/jsx-runtime").JSX.Element;
@@ -0,0 +1,5 @@
1
+ import { DocumentPageSetup } from '../../../lib/types/common-types.js';
2
+ export declare function PageInspector({ page, onUpdatePage, }: {
3
+ page: DocumentPageSetup;
4
+ onUpdatePage: (page: DocumentPageSetup) => void;
5
+ }): import("react/jsx-runtime").JSX.Element;
@@ -0,0 +1,14 @@
1
+ export declare function DraftNumberInput({ value, onValueChange, min, max, step, disabled, 'aria-label': ariaLabel, }: {
2
+ 'value': number;
3
+ 'onValueChange': (value: number) => void;
4
+ 'min'?: number;
5
+ 'max'?: number;
6
+ 'step'?: number;
7
+ 'disabled'?: boolean;
8
+ 'aria-label'?: string;
9
+ }): import("react/jsx-runtime").JSX.Element;
10
+ export declare function DraftColorInput({ value, onValueChange, 'aria-label': ariaLabel, }: {
11
+ 'value': string;
12
+ 'onValueChange': (value: string) => void;
13
+ 'aria-label'?: string;
14
+ }): import("react/jsx-runtime").JSX.Element;
@@ -0,0 +1,11 @@
1
+ import { DocumentFooterRegion, DocumentHeaderRegion, DocumentInputDefinition } from '../../../lib/types/common-types.js';
2
+ export declare function HeaderInspector({ header, inputs, onUpdateHeader, }: {
3
+ header?: DocumentHeaderRegion;
4
+ inputs: DocumentInputDefinition[];
5
+ onUpdateHeader: (updater: (header: DocumentHeaderRegion | undefined) => DocumentHeaderRegion | undefined) => void;
6
+ }): import("react/jsx-runtime").JSX.Element;
7
+ export declare function FooterInspector({ footer, inputs, onUpdateFooter, }: {
8
+ footer?: DocumentFooterRegion;
9
+ inputs: DocumentInputDefinition[];
10
+ onUpdateFooter: (updater: (footer: DocumentFooterRegion | undefined) => DocumentFooterRegion | undefined) => void;
11
+ }): import("react/jsx-runtime").JSX.Element;
@@ -0,0 +1,25 @@
1
+ import { ReactNode } from 'react';
2
+ import { DocumentEdit } from '../../../lib/document/document-edits.js';
3
+ import { QueryColumnKeyMap } from '../../../lib/types/explorer-types.js';
4
+ import { DocumentInputDefinition, DocumentPageSetup, DocumentSection, DocumentKpiSection, DocumentTableSection } from '../../../lib/types/common-types.js';
5
+ import { DocumentMatrixFit } from '../../../lib/document/document-matrix-bands.js';
6
+ export declare function SectionModeHeader({ section, onBack, actions, }: {
7
+ section: DocumentSection;
8
+ onBack: () => void;
9
+ actions?: ReactNode;
10
+ }): import("react/jsx-runtime").JSX.Element;
11
+ export declare function SectionInspector({ section, inputs, tableResultColumns, tableColumnKeyMap, onUpdateSection, matrixFit, page, onUpdatePage, onEditTableSection, onEditKpiCard, onAddKpiCard, onEditSection, }: {
12
+ section: DocumentSection | null;
13
+ /** How this Matrix section fits the page, from the canvas (2c). */
14
+ matrixFit?: DocumentMatrixFit;
15
+ page?: DocumentPageSetup;
16
+ onUpdatePage?: (page: DocumentPageSetup) => void;
17
+ inputs: DocumentInputDefinition[];
18
+ tableResultColumns?: string[];
19
+ tableColumnKeyMap?: QueryColumnKeyMap;
20
+ onUpdateSection: (updater: (section: DocumentSection) => DocumentSection) => void;
21
+ onEditTableSection: (section: DocumentTableSection) => void;
22
+ onEditKpiCard: (section: DocumentKpiSection, cardId: string) => void;
23
+ onAddKpiCard: (section: DocumentKpiSection) => void;
24
+ onEditSection: (edit: DocumentEdit) => void;
25
+ }): import("react/jsx-runtime").JSX.Element;
@@ -0,0 +1,9 @@
1
+ import { HTMLAttributes, ReactNode } from 'react';
2
+ import { DocumentSectionRenderState } from '../../lib/document/document-section-render-state.js';
3
+ /** Wraps a section's content with the markers for its state. */
4
+ export declare function DocumentSectionPrintBoundary({ sectionId, state, error, children, ...rest }: {
5
+ sectionId: string;
6
+ state: DocumentSectionRenderState;
7
+ error?: unknown;
8
+ children: ReactNode;
9
+ } & Omit<HTMLAttributes<HTMLDivElement>, 'children'>): import("react/jsx-runtime").JSX.Element;
@@ -0,0 +1,22 @@
1
+ import { ReactNode } from 'react';
2
+ import { DocumentSectionRenderState } from '../../lib/document/document-section-render-state.js';
3
+ import { DocumentTableSection } from '../../lib/types/common-types.js';
4
+ export declare function DocumentTablePlaceholder({ section, reason, }: {
5
+ section: DocumentTableSection;
6
+ reason?: string;
7
+ }): import("react/jsx-runtime").JSX.Element;
8
+ export declare function DocumentTableLoading(): import("react/jsx-runtime").JSX.Element;
9
+ export declare function DocumentTableState({ icon, title, message, exportState, }: {
10
+ icon: ReactNode;
11
+ title: string;
12
+ message: string;
13
+ exportState?: Exclude<DocumentSectionRenderState, 'ready'>;
14
+ }): import("react/jsx-runtime").JSX.Element;
15
+ export declare function DocumentTableHeader({ section, }: {
16
+ section: DocumentTableSection;
17
+ }): import("react/jsx-runtime").JSX.Element | null;
18
+ /** "Edit Matrix" for a Matrix section, "Edit table" for Table and Pivot. */
19
+ export declare function DocumentTableEditLabel({ section, className, }: {
20
+ section: DocumentTableSection;
21
+ className: string;
22
+ }): import("react/jsx-runtime").JSX.Element;
@@ -1,10 +1,8 @@
1
- import { DocumentTableSlice } from '../../lib/document/document-pagination.js';
1
+ import { DocumentTableRowCountChange, DocumentTableSlice } from '../../lib/document/document-pagination.js';
2
2
  import { DocumentTableLayoutMeasurement } from '../../lib/document/document-table-print-model.js';
3
3
  import { DocumentTableResultColumnsChange } from '../../lib/document/document-table-result-columns.js';
4
- import { ResolvedDocumentTableStyle } from '../../lib/document/document-table-style.js';
5
4
  import { ControlDefinition, DashboardInputValues, DocumentTableSection } from '../../lib/types/common-types.js';
6
5
  import { TFilterValue } from '../surfboard/filter/types.js';
7
- export declare function getDocumentTableSurfaceClassName(style: ResolvedDocumentTableStyle): string;
8
6
  type DocumentTableSectionRendererProps = {
9
7
  section: DocumentTableSection;
10
8
  documentFilterValues?: TFilterValue[];
@@ -17,9 +15,7 @@ type DocumentTableSectionRendererProps = {
17
15
  tableSlice?: DocumentTableSlice;
18
16
  initialRowsPerPageLimit?: number;
19
17
  previewRowLimit?: number;
20
- showInlineEditAction?: boolean;
21
- onEditTableSection?: (section: DocumentTableSection) => void;
22
- onTableRowCountChange?: (sectionId: string, rowCount: number) => void;
18
+ onTableRowCountChange?: DocumentTableRowCountChange;
23
19
  onTableResultColumnsChange?: DocumentTableResultColumnsChange;
24
20
  onTableLayoutMeasure?: (sectionId: string, measurement: DocumentTableLayoutMeasurement) => void;
25
21
  onTableLayoutInvalidate?: (sectionId: string) => void;
@@ -27,6 +23,6 @@ type DocumentTableSectionRendererProps = {
27
23
  onPreviewRowLimitChange?: (nextRowLimit: number) => void;
28
24
  measurementScale?: number;
29
25
  };
30
- declare function DocumentTableSectionRendererImpl({ section, documentFilterValues, documentControlDefinitions, documentControlValues, documentDashboardInputValues, missingRequiredInputLabels, isEditing, surfaceMode, tableSlice, initialRowsPerPageLimit, previewRowLimit, showInlineEditAction, onEditTableSection, onTableRowCountChange, onTableResultColumnsChange, onTableLayoutMeasure, onTableLayoutInvalidate, onUpdateTableSection, onPreviewRowLimitChange, measurementScale, }: DocumentTableSectionRendererProps): import("react/jsx-runtime").JSX.Element;
26
+ declare function DocumentTableSectionRendererImpl({ section, documentFilterValues, documentControlDefinitions, documentControlValues, documentDashboardInputValues, missingRequiredInputLabels, isEditing, surfaceMode, tableSlice, initialRowsPerPageLimit, previewRowLimit, onTableRowCountChange, onTableResultColumnsChange, onTableLayoutMeasure, onTableLayoutInvalidate, onUpdateTableSection, onPreviewRowLimitChange, measurementScale, }: DocumentTableSectionRendererProps): import("react/jsx-runtime").JSX.Element;
31
27
  export declare const DocumentTableSectionRenderer: import('react').MemoExoticComponent<typeof DocumentTableSectionRendererImpl>;
32
28
  export {};
@@ -0,0 +1,8 @@
1
+ import { DocumentTextRenderContext } from '../../lib/document/document-variables.js';
2
+ /**
3
+ * What the Document's inputs and report values hold now, for the text
4
+ * editors' variable pickers ("Label: California"). The sheet provides it
5
+ * around its side panel; without it the pickers show no values.
6
+ */
7
+ export declare const DocumentTextPreviewContext: import('react').Context<DocumentTextRenderContext | null>;
8
+ export declare function useDocumentTextPreview(): DocumentTextRenderContext | null;
@@ -0,0 +1,18 @@
1
+ import { RefObject } from 'react';
2
+ /**
3
+ * Picks the first of `variantCount` renderings whose text fits its element
4
+ * without overflowing (for example the same number at smaller type sizes).
5
+ * The caller renders variant `index`; after each layout the element is
6
+ * measured and, if it overflows, the next variant is tried. `overflowed`
7
+ * means no variant fits, so the caller must fail closed rather than print a
8
+ * clipped number.
9
+ *
10
+ * `contentKey` identifies the content (text and sizes); a change restarts the
11
+ * search. The parent's width is observed, so a wider or narrower box (zoom,
12
+ * orientation, a layout change) restarts it too.
13
+ */
14
+ export declare function useFirstFittingVariant<T extends HTMLElement>(variantCount: number, contentKey: string): {
15
+ ref: RefObject<T | null>;
16
+ index: number;
17
+ overflowed: boolean;
18
+ };
@@ -1,18 +1,28 @@
1
1
  import { TextNode, DOMConversionMap, DOMExportOutput, EditorConfig, LexicalNode, NodeKey, SerializedTextNode } from 'lexical';
2
2
  import { DashboardInputVariableRef } from '../../../lib/types/common-types.js';
3
+ import { TextVariableChipFace } from '../../../lib/text-variables/text-variable-types.js';
3
4
  export type SerializedDashboardVariableNode = SerializedTextNode & {
4
5
  ref: DashboardInputVariableRef;
6
+ face?: TextVariableChipFace;
7
+ token?: string;
5
8
  type: 'dashboard-variable';
6
9
  version: 1;
7
10
  };
8
11
  export declare class DashboardVariableNode extends TextNode {
9
12
  __ref: DashboardInputVariableRef;
13
+ __face: TextVariableChipFace;
14
+ /** `name.part`, for copying the variable as a typed token. */
15
+ __token: string;
10
16
  static getType(): string;
11
17
  static clone(node: DashboardVariableNode): DashboardVariableNode;
12
18
  static importJSON(serializedNode: SerializedDashboardVariableNode): DashboardVariableNode;
13
19
  static importDOM(): DOMConversionMap | null;
14
- constructor(ref: DashboardInputVariableRef, text: string, key?: NodeKey);
20
+ constructor(ref: DashboardInputVariableRef, face: TextVariableChipFace, token: string, key?: NodeKey);
15
21
  getRef(): DashboardInputVariableRef;
22
+ getFace(): TextVariableChipFace;
23
+ getToken(): string;
24
+ /** Renames the chip when its input changes (its reference stays). */
25
+ setFace(face: TextVariableChipFace, token: string): this;
16
26
  createDOM(_config: EditorConfig): HTMLElement;
17
27
  updateDOM(prevNode: this, dom: HTMLElement): boolean;
18
28
  exportDOM(): DOMExportOutput;
@@ -21,5 +31,5 @@ export declare class DashboardVariableNode extends TextNode {
21
31
  canInsertTextBefore(): false;
22
32
  canInsertTextAfter(): false;
23
33
  }
24
- export declare function $createDashboardVariableNode(ref: DashboardInputVariableRef, label: string): DashboardVariableNode;
34
+ export declare function $createDashboardVariableNode(ref: DashboardInputVariableRef, face: TextVariableChipFace, token: string): DashboardVariableNode;
25
35
  export declare function $isDashboardVariableNode(node: LexicalNode | null | undefined): node is DashboardVariableNode;
@@ -10,13 +10,16 @@ export declare function Choice({ label, value, options, onChange, disabled, }: {
10
10
  onChange: (value: string) => void;
11
11
  disabled?: boolean;
12
12
  }): import("react/jsx-runtime").JSX.Element;
13
- export declare function TextSetting({ label, value, onChange, type, min, max, }: {
13
+ export declare function TextSetting({ label, value, onChange, type, min, max, placeholder, hint, }: {
14
14
  label: string;
15
15
  value: string | number;
16
16
  onChange: (value: string) => void;
17
17
  type?: 'text' | 'number';
18
18
  min?: number;
19
19
  max?: number;
20
+ placeholder?: string;
21
+ /** One line under the field. */
22
+ hint?: string;
20
23
  }): import("react/jsx-runtime").JSX.Element;
21
24
  export declare function Toggle({ label, checked, onChange, }: {
22
25
  label: string;
@@ -29,8 +32,10 @@ export declare function IconAction({ label, disabled, onClick, children, }: {
29
32
  onClick: () => void;
30
33
  children: ReactNode;
31
34
  }): import("react/jsx-runtime").JSX.Element;
32
- export declare function TotalSettings({ label, value, onChange, }: {
35
+ export declare function TotalSettings({ label, value, onChange, role, }: {
33
36
  label: string;
34
37
  value: MatrixTotalPresentation;
35
38
  onChange: (value: MatrixTotalPresentation) => void;
39
+ /** A subtotal's label can name its member; the grand total has none. */
40
+ role?: 'subtotal' | 'grand_total';
36
41
  }): import("react/jsx-runtime").JSX.Element;
@@ -0,0 +1,23 @@
1
+ import { LexicalNode, TextNode } from 'lexical';
2
+ import { TextVariableOption, TextVariableSelection } from '../../lib/text-variables/text-variable-types.js';
3
+ export type VariableChipAdapter = {
4
+ options: readonly TextVariableOption[];
5
+ /**
6
+ * For a variable node: what it shows, or `missing` when its input no longer
7
+ * exists. `null` for any other node.
8
+ */
9
+ readNode: (node: LexicalNode) => {
10
+ selection?: TextVariableSelection;
11
+ missing?: boolean;
12
+ } | null;
13
+ /** A new variable node showing `selection`. */
14
+ createNode: (selection: TextVariableSelection) => TextNode;
15
+ };
16
+ export declare function VariableChipPlugin({ adapter, }: {
17
+ adapter: VariableChipAdapter;
18
+ }): import("react/jsx-runtime").JSX.Element;
19
+ /** The toolbar's Input button: the same picker, with its own search. */
20
+ export declare function VariableInsertButton({ adapter, className, }: {
21
+ adapter: VariableChipAdapter;
22
+ className?: string;
23
+ }): import("react/jsx-runtime").JSX.Element | null;
@@ -0,0 +1,18 @@
1
+ import { TextVariableChipFace } from '../../lib/text-variables/text-variable-types.js';
2
+ export declare const VARIABLE_CHIP_CLASS_NAME = "semaphor-variable-chip";
3
+ type ChipOptions = {
4
+ bold?: boolean;
5
+ /** The Document paper: white in both themes, so the colors stay light. */
6
+ surface?: 'paper';
7
+ /** Clicking the chip opens its picker (in an editor). */
8
+ interactive?: boolean;
9
+ };
10
+ /** Attributes for a chip rendered by React. */
11
+ export declare function variableChipAttributes(face: TextVariableChipFace, options?: ChipOptions): Record<string, string | undefined>;
12
+ /** Applies a chip's face to an element a Lexical node created. */
13
+ export declare function applyVariableChipToElement(element: HTMLElement, face: TextVariableChipFace, options?: ChipOptions & {
14
+ extraClassName?: string;
15
+ /** `name.part`: what copying the chip writes, as a typed token. */
16
+ token?: string;
17
+ }): void;
18
+ export {};