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
@@ -794,9 +794,12 @@ declare const analyticalIntentShape: z.ZodObject<{
794
794
  type MatrixAnalyticalIntentSchema = z.ZodEffects<typeof analyticalIntentShape>;
795
795
  /** Analytical definition only; acquisition windows are sibling operation inputs. */
796
796
  export declare const matrixAnalyticalIntentSchema: MatrixAnalyticalIntentSchema;
797
+ /** The placeholder a subtotal label uses for its member's name. */
798
+ export declare const MATRIX_TOTAL_MEMBER_PLACEHOLDER = "{member}";
797
799
  export declare const matrixTotalPresentationSchema: z.ZodObject<{
798
800
  visible: z.ZodBoolean;
799
801
  position: z.ZodEnum<["before", "after"]>;
802
+ /** As written; a subtotal's `{member}` becomes its member's name. */
800
803
  label: z.ZodOptional<z.ZodString>;
801
804
  }, "strict", z.ZodTypeAny, {
802
805
  visible: boolean;
@@ -2255,6 +2258,7 @@ declare const presentationFields: {
2255
2258
  grand: z.ZodObject<{
2256
2259
  visible: z.ZodBoolean;
2257
2260
  position: z.ZodEnum<["before", "after"]>;
2261
+ /** As written; a subtotal's `{member}` becomes its member's name. */
2258
2262
  label: z.ZodOptional<z.ZodString>;
2259
2263
  }, "strict", z.ZodTypeAny, {
2260
2264
  visible: boolean;
@@ -2268,6 +2272,7 @@ declare const presentationFields: {
2268
2272
  levels: z.ZodReadonly<z.ZodRecord<z.ZodString, z.ZodObject<{
2269
2273
  visible: z.ZodBoolean;
2270
2274
  position: z.ZodEnum<["before", "after"]>;
2275
+ /** As written; a subtotal's `{member}` becomes its member's name. */
2271
2276
  label: z.ZodOptional<z.ZodString>;
2272
2277
  }, "strict", z.ZodTypeAny, {
2273
2278
  visible: boolean;
@@ -2278,6 +2283,11 @@ declare const presentationFields: {
2278
2283
  position: "before" | "after";
2279
2284
  label?: string | undefined;
2280
2285
  }>>>;
2286
+ /**
2287
+ * Skip a subtotal that only repeats one row: an expanded group with
2288
+ * exactly one child shows no subtotal. Off when absent.
2289
+ */
2290
+ skipRedundant: z.ZodOptional<z.ZodBoolean>;
2281
2291
  }, "strict", z.ZodTypeAny, {
2282
2292
  grand: {
2283
2293
  visible: boolean;
@@ -2289,6 +2299,7 @@ declare const presentationFields: {
2289
2299
  position: "before" | "after";
2290
2300
  label?: string | undefined;
2291
2301
  }>>;
2302
+ skipRedundant?: boolean | undefined;
2292
2303
  }, {
2293
2304
  grand: {
2294
2305
  visible: boolean;
@@ -2300,11 +2311,13 @@ declare const presentationFields: {
2300
2311
  position: "before" | "after";
2301
2312
  label?: string | undefined;
2302
2313
  }>>;
2314
+ skipRedundant?: boolean | undefined;
2303
2315
  }>;
2304
2316
  columns: z.ZodObject<{
2305
2317
  grand: z.ZodObject<{
2306
2318
  visible: z.ZodBoolean;
2307
2319
  position: z.ZodEnum<["before", "after"]>;
2320
+ /** As written; a subtotal's `{member}` becomes its member's name. */
2308
2321
  label: z.ZodOptional<z.ZodString>;
2309
2322
  }, "strict", z.ZodTypeAny, {
2310
2323
  visible: boolean;
@@ -2318,6 +2331,7 @@ declare const presentationFields: {
2318
2331
  levels: z.ZodReadonly<z.ZodRecord<z.ZodString, z.ZodObject<{
2319
2332
  visible: z.ZodBoolean;
2320
2333
  position: z.ZodEnum<["before", "after"]>;
2334
+ /** As written; a subtotal's `{member}` becomes its member's name. */
2321
2335
  label: z.ZodOptional<z.ZodString>;
2322
2336
  }, "strict", z.ZodTypeAny, {
2323
2337
  visible: boolean;
@@ -2328,6 +2342,11 @@ declare const presentationFields: {
2328
2342
  position: "before" | "after";
2329
2343
  label?: string | undefined;
2330
2344
  }>>>;
2345
+ /**
2346
+ * Skip a subtotal that only repeats one row: an expanded group with
2347
+ * exactly one child shows no subtotal. Off when absent.
2348
+ */
2349
+ skipRedundant: z.ZodOptional<z.ZodBoolean>;
2331
2350
  }, "strict", z.ZodTypeAny, {
2332
2351
  grand: {
2333
2352
  visible: boolean;
@@ -2339,6 +2358,7 @@ declare const presentationFields: {
2339
2358
  position: "before" | "after";
2340
2359
  label?: string | undefined;
2341
2360
  }>>;
2361
+ skipRedundant?: boolean | undefined;
2342
2362
  }, {
2343
2363
  grand: {
2344
2364
  visible: boolean;
@@ -2350,6 +2370,7 @@ declare const presentationFields: {
2350
2370
  position: "before" | "after";
2351
2371
  label?: string | undefined;
2352
2372
  }>>;
2373
+ skipRedundant?: boolean | undefined;
2353
2374
  }>;
2354
2375
  }, "strict", z.ZodTypeAny, {
2355
2376
  columns: {
@@ -2363,6 +2384,7 @@ declare const presentationFields: {
2363
2384
  position: "before" | "after";
2364
2385
  label?: string | undefined;
2365
2386
  }>>;
2387
+ skipRedundant?: boolean | undefined;
2366
2388
  };
2367
2389
  rows: {
2368
2390
  grand: {
@@ -2375,6 +2397,7 @@ declare const presentationFields: {
2375
2397
  position: "before" | "after";
2376
2398
  label?: string | undefined;
2377
2399
  }>>;
2400
+ skipRedundant?: boolean | undefined;
2378
2401
  };
2379
2402
  }, {
2380
2403
  columns: {
@@ -2388,6 +2411,7 @@ declare const presentationFields: {
2388
2411
  position: "before" | "after";
2389
2412
  label?: string | undefined;
2390
2413
  }>>;
2414
+ skipRedundant?: boolean | undefined;
2391
2415
  };
2392
2416
  rows: {
2393
2417
  grand: {
@@ -2400,6 +2424,7 @@ declare const presentationFields: {
2400
2424
  position: "before" | "after";
2401
2425
  label?: string | undefined;
2402
2426
  }>>;
2427
+ skipRedundant?: boolean | undefined;
2403
2428
  };
2404
2429
  }>;
2405
2430
  conditionalFormatting: z.ZodOptional<z.ZodEffects<z.ZodObject<{
@@ -3907,6 +3932,7 @@ declare const definitionInputShape: z.ZodObject<{
3907
3932
  position: "before" | "after";
3908
3933
  label?: string | undefined;
3909
3934
  }>>;
3935
+ skipRedundant?: boolean | undefined;
3910
3936
  };
3911
3937
  rows: {
3912
3938
  grand: {
@@ -3919,6 +3945,7 @@ declare const definitionInputShape: z.ZodObject<{
3919
3945
  position: "before" | "after";
3920
3946
  label?: string | undefined;
3921
3947
  }>>;
3948
+ skipRedundant?: boolean | undefined;
3922
3949
  };
3923
3950
  };
3924
3951
  layout: {
@@ -4306,6 +4333,7 @@ declare const definitionInputShape: z.ZodObject<{
4306
4333
  position: "before" | "after";
4307
4334
  label?: string | undefined;
4308
4335
  }>>;
4336
+ skipRedundant?: boolean | undefined;
4309
4337
  };
4310
4338
  rows: {
4311
4339
  grand: {
@@ -4318,6 +4346,7 @@ declare const definitionInputShape: z.ZodObject<{
4318
4346
  position: "before" | "after";
4319
4347
  label?: string | undefined;
4320
4348
  }>>;
4349
+ skipRedundant?: boolean | undefined;
4321
4350
  };
4322
4351
  };
4323
4352
  layout: {
@@ -4714,6 +4743,7 @@ declare const configShape: z.ZodObject<{
4714
4743
  position: "before" | "after";
4715
4744
  label?: string | undefined;
4716
4745
  }>>;
4746
+ skipRedundant?: boolean | undefined;
4717
4747
  };
4718
4748
  rows: {
4719
4749
  grand: {
@@ -4726,6 +4756,7 @@ declare const configShape: z.ZodObject<{
4726
4756
  position: "before" | "after";
4727
4757
  label?: string | undefined;
4728
4758
  }>>;
4759
+ skipRedundant?: boolean | undefined;
4729
4760
  };
4730
4761
  };
4731
4762
  layout: {
@@ -5046,6 +5077,7 @@ declare const configShape: z.ZodObject<{
5046
5077
  position: "before" | "after";
5047
5078
  label?: string | undefined;
5048
5079
  }>>;
5080
+ skipRedundant?: boolean | undefined;
5049
5081
  };
5050
5082
  rows: {
5051
5083
  grand: {
@@ -5058,6 +5090,7 @@ declare const configShape: z.ZodObject<{
5058
5090
  position: "before" | "after";
5059
5091
  label?: string | undefined;
5060
5092
  }>>;
5093
+ skipRedundant?: boolean | undefined;
5061
5094
  };
5062
5095
  };
5063
5096
  layout: {
@@ -5388,6 +5421,7 @@ declare const authoringConfigShape: z.ZodObject<{
5388
5421
  position: "before" | "after";
5389
5422
  label?: string | undefined;
5390
5423
  }>>;
5424
+ skipRedundant?: boolean | undefined;
5391
5425
  };
5392
5426
  rows: {
5393
5427
  grand: {
@@ -5400,6 +5434,7 @@ declare const authoringConfigShape: z.ZodObject<{
5400
5434
  position: "before" | "after";
5401
5435
  label?: string | undefined;
5402
5436
  }>>;
5437
+ skipRedundant?: boolean | undefined;
5403
5438
  };
5404
5439
  };
5405
5440
  layout: {
@@ -5720,6 +5755,7 @@ declare const authoringConfigShape: z.ZodObject<{
5720
5755
  position: "before" | "after";
5721
5756
  label?: string | undefined;
5722
5757
  }>>;
5758
+ skipRedundant?: boolean | undefined;
5723
5759
  };
5724
5760
  rows: {
5725
5761
  grand: {
@@ -5732,6 +5768,7 @@ declare const authoringConfigShape: z.ZodObject<{
5732
5768
  position: "before" | "after";
5733
5769
  label?: string | undefined;
5734
5770
  }>>;
5771
+ skipRedundant?: boolean | undefined;
5735
5772
  };
5736
5773
  };
5737
5774
  layout: {
@@ -6158,6 +6195,7 @@ declare const exportRequestShape: z.ZodUnion<[z.ZodObject<{
6158
6195
  position: "before" | "after";
6159
6196
  label?: string | undefined;
6160
6197
  }>>;
6198
+ skipRedundant?: boolean | undefined;
6161
6199
  };
6162
6200
  rows: {
6163
6201
  grand: {
@@ -6170,6 +6208,7 @@ declare const exportRequestShape: z.ZodUnion<[z.ZodObject<{
6170
6208
  position: "before" | "after";
6171
6209
  label?: string | undefined;
6172
6210
  }>>;
6211
+ skipRedundant?: boolean | undefined;
6173
6212
  };
6174
6213
  };
6175
6214
  layout: {
@@ -6494,6 +6533,7 @@ declare const exportRequestShape: z.ZodUnion<[z.ZodObject<{
6494
6533
  position: "before" | "after";
6495
6534
  label?: string | undefined;
6496
6535
  }>>;
6536
+ skipRedundant?: boolean | undefined;
6497
6537
  };
6498
6538
  rows: {
6499
6539
  grand: {
@@ -6506,6 +6546,7 @@ declare const exportRequestShape: z.ZodUnion<[z.ZodObject<{
6506
6546
  position: "before" | "after";
6507
6547
  label?: string | undefined;
6508
6548
  }>>;
6549
+ skipRedundant?: boolean | undefined;
6509
6550
  };
6510
6551
  };
6511
6552
  layout: {
@@ -6836,6 +6877,7 @@ declare const exportRequestShape: z.ZodUnion<[z.ZodObject<{
6836
6877
  position: "before" | "after";
6837
6878
  label?: string | undefined;
6838
6879
  }>>;
6880
+ skipRedundant?: boolean | undefined;
6839
6881
  };
6840
6882
  rows: {
6841
6883
  grand: {
@@ -6848,6 +6890,7 @@ declare const exportRequestShape: z.ZodUnion<[z.ZodObject<{
6848
6890
  position: "before" | "after";
6849
6891
  label?: string | undefined;
6850
6892
  }>>;
6893
+ skipRedundant?: boolean | undefined;
6851
6894
  };
6852
6895
  };
6853
6896
  layout: {
@@ -7127,6 +7170,7 @@ declare const exportRequestShape: z.ZodUnion<[z.ZodObject<{
7127
7170
  position: "before" | "after";
7128
7171
  label?: string | undefined;
7129
7172
  }>>;
7173
+ skipRedundant?: boolean | undefined;
7130
7174
  };
7131
7175
  rows: {
7132
7176
  grand: {
@@ -7139,6 +7183,7 @@ declare const exportRequestShape: z.ZodUnion<[z.ZodObject<{
7139
7183
  position: "before" | "after";
7140
7184
  label?: string | undefined;
7141
7185
  }>>;
7186
+ skipRedundant?: boolean | undefined;
7142
7187
  };
7143
7188
  };
7144
7189
  layout: {
@@ -10,6 +10,10 @@ export declare function resolveMatrixMemberPresentation(input: {
10
10
  total?: MatrixTotalPresentation;
11
11
  childrenEmpty?: boolean;
12
12
  rowLayout?: 'compact' | 'tabular';
13
+ /** The axis's `totals.skipRedundant`. */
14
+ skipRedundant?: boolean;
15
+ /** The group has exactly one child: its first child page holds one member and no cursor after it. */
16
+ singleChild?: boolean;
13
17
  }): {
14
18
  expandable: boolean;
15
19
  expanded: boolean;
@@ -0,0 +1,56 @@
1
+ import { DocumentSection, TCard, TDashboard } from '../../lib/types/common-types.js';
2
+ /**
3
+ * The one traversal of cards inside Document sections, shared by the package
4
+ * and the app. Read with `getDocumentSectionCards`, rewrite with
5
+ * `mapDocumentSectionCards`, and list every executable card with
6
+ * `listDashboardCardLocations`.
7
+ *
8
+ * These accept the V1 document shape (`document.sections`) only. Raw stored
9
+ * templates, including the V2 `document.body.sections` fallback, are checked
10
+ * by the app's structural validator before they reach these helpers.
11
+ */
12
+ /** Most cards a KPI section holds. */
13
+ export declare const DOCUMENT_KPI_SECTION_MAX_CARDS = 8;
14
+ /** Most cards a KPI section in the `tiles` layout may hold. More need `lines`. */
15
+ export declare const DOCUMENT_KPI_SECTION_MAX_TILES = 6;
16
+ /** Every card a section owns, in display order: `[card]` for table and chart, `cards` for KPI. */
17
+ export declare function getDocumentSectionCards(section: DocumentSection): readonly TCard[];
18
+ /**
19
+ * The same section with each card mapped. Returns the input section when no
20
+ * card changed, so callers can compare by reference.
21
+ */
22
+ export declare function mapDocumentSectionCards(section: DocumentSection, map: (card: TCard) => TCard): DocumentSection;
23
+ /** Where an executable card lives in a dashboard. */
24
+ export type DashboardCardLocation = {
25
+ kind: 'sheetCard';
26
+ sheetId: string;
27
+ cardId: string;
28
+ card: TCard;
29
+ } | {
30
+ kind: 'frameCard';
31
+ sheetId: string;
32
+ frameId: string;
33
+ cardId: string;
34
+ card: TCard;
35
+ } | {
36
+ kind: 'documentSectionCard';
37
+ sheetId: string;
38
+ sectionId: string;
39
+ cardId: string;
40
+ card: TCard;
41
+ };
42
+ /**
43
+ * Every executable card location in a dashboard, sheet by sheet: sheet cards,
44
+ * then frame cards, then document section cards (every KPI card included).
45
+ */
46
+ export declare function listDashboardCardLocations(dashboard: Pick<TDashboard, 'sheets'>): readonly DashboardCardLocation[];
47
+ export type DocumentSectionShapeIssue = {
48
+ /** Path relative to the section, for example `cards[2].type`. Empty for the section itself. */
49
+ path: string;
50
+ message: string;
51
+ };
52
+ /**
53
+ * Structural rules for a stored KPI section, for persistence boundaries that
54
+ * receive untrusted JSON. Returns no issues for a valid section.
55
+ */
56
+ export declare function getDocumentKpiSectionShapeIssues(section: unknown): DocumentSectionShapeIssue[];
@@ -10,6 +10,7 @@ export * from './temporal-result-owner.js';
10
10
  export * from './temporal-bucket-authoring.js';
11
11
  export * from './canonical-result-keys.js';
12
12
  export * from './dashboard-card-source-index.js';
13
+ export * from './document-section-cards.js';
13
14
  export * from './dashboard-filter-mapping-types.js';
14
15
  export * from './dashboard-filter-automatic-target.js';
15
16
  export * from './dashboard-filter-sql-subscription.js';
@@ -1,5 +1,5 @@
1
1
  import { z } from 'zod';
2
- import { MatrixConfig, MatrixViewState, MatrixExportRequest } from '../analytics-protocol/index.js';
2
+ import { MatrixConfig, MatrixExportLayout, MatrixExportRequest, MatrixExportRow, MatrixFailure, MatrixViewState } from '../analytics-protocol/index.js';
3
3
  import { ReportRuntimeContext } from '../report-runtime-context/index.js';
4
4
  export type MatrixExportContent = 'current' | 'all' | 'flat';
5
5
  export declare function captureMatrixExport(input: {
@@ -23,6 +23,7 @@ export declare function captureMatrixExport(input: {
23
23
  position: "before" | "after";
24
24
  label?: string | undefined;
25
25
  }>>;
26
+ skipRedundant?: boolean | undefined;
26
27
  };
27
28
  rows: {
28
29
  grand: {
@@ -35,6 +36,7 @@ export declare function captureMatrixExport(input: {
35
36
  position: "before" | "after";
36
37
  label?: string | undefined;
37
38
  }>>;
39
+ skipRedundant?: boolean | undefined;
38
40
  };
39
41
  };
40
42
  layout: {
@@ -373,6 +375,7 @@ export declare function captureMatrixExport(input: {
373
375
  position: "before" | "after";
374
376
  label?: string | undefined;
375
377
  }>>;
378
+ skipRedundant?: boolean | undefined;
376
379
  };
377
380
  rows: {
378
381
  grand: {
@@ -385,6 +388,7 @@ export declare function captureMatrixExport(input: {
385
388
  position: "before" | "after";
386
389
  label?: string | undefined;
387
390
  }>>;
391
+ skipRedundant?: boolean | undefined;
388
392
  };
389
393
  };
390
394
  layout: {
@@ -803,6 +807,7 @@ export declare function buildMatrixDeliveryEnvelope<TSource extends {
803
807
  position: "before" | "after";
804
808
  label?: string | undefined;
805
809
  }>>;
810
+ skipRedundant?: boolean | undefined;
806
811
  };
807
812
  rows: {
808
813
  grand: {
@@ -815,6 +820,7 @@ export declare function buildMatrixDeliveryEnvelope<TSource extends {
815
820
  position: "before" | "after";
816
821
  label?: string | undefined;
817
822
  }>>;
823
+ skipRedundant?: boolean | undefined;
818
824
  };
819
825
  };
820
826
  layout: {
@@ -1153,6 +1159,7 @@ export declare function buildMatrixDeliveryEnvelope<TSource extends {
1153
1159
  position: "before" | "after";
1154
1160
  label?: string | undefined;
1155
1161
  }>>;
1162
+ skipRedundant?: boolean | undefined;
1156
1163
  };
1157
1164
  rows: {
1158
1165
  grand: {
@@ -1165,6 +1172,7 @@ export declare function buildMatrixDeliveryEnvelope<TSource extends {
1165
1172
  position: "before" | "after";
1166
1173
  label?: string | undefined;
1167
1174
  }>>;
1175
+ skipRedundant?: boolean | undefined;
1168
1176
  };
1169
1177
  };
1170
1178
  layout: {
@@ -1451,3 +1459,30 @@ export declare function buildMatrixDeliveryEnvelope<TSource extends {
1451
1459
  acquisition?: "continuation" | undefined;
1452
1460
  };
1453
1461
  };
1462
+ /**
1463
+ * The full Matrix result a Document prints (tech spec D-M1), read from the
1464
+ * delivery-authorized layout route. `request` is the effective definition that
1465
+ * ran (after control resolution), so rows are formatted exactly as the PDF path
1466
+ * formats them. A failure never carries rows.
1467
+ */
1468
+ export type MatrixLayoutReadResult = {
1469
+ status: 'ok';
1470
+ request: MatrixExportRequest;
1471
+ layout: MatrixExportLayout;
1472
+ rows: readonly MatrixExportRow[];
1473
+ usage: {
1474
+ rows: number;
1475
+ cells: number;
1476
+ bytes: number;
1477
+ };
1478
+ } | {
1479
+ status: 'failed';
1480
+ failure: {
1481
+ code: MatrixFailure['code'];
1482
+ /** Set when a retained-result budget tripped. */
1483
+ limit?: 'rows' | 'bytes';
1484
+ message: string;
1485
+ retryable: boolean;
1486
+ };
1487
+ };
1488
+ export declare const matrixLayoutReadResultSchema: z.ZodType<MatrixLayoutReadResult, z.ZodTypeDef, unknown>;
@@ -1,2 +1,5 @@
1
- import { DurationFormatOptions } from '../types/index.js';
1
+ import { DurationCanonicalFormat, DurationFormatOptions } from '../types/index.js';
2
+ import { ExactNumericValue } from '../../analytics-protocol/scalar-value.js';
2
3
  export declare function formatDuration(value: number | string | null | undefined, options?: DurationFormatOptions): string;
4
+ /** Formats a value with a canonical duration format. */
5
+ export declare function formatDurationCanonical(value: number | ExactNumericValue | string | null | undefined, format: DurationCanonicalFormat): string;
@@ -1,5 +1,5 @@
1
- export { formatNumber, formatCurrency, formatPercent, formatScientific, formatNumericCanonical, formatNumberWithColumnSettings, formatNumberCustom, } from './number-formatter.js';
2
- export { formatDuration } from './duration-formatter.js';
1
+ export { formatNumber, formatCurrency, formatPercent, formatScientific, formatNumericCanonical, formatMeasureCanonical, formatNumberWithColumnSettings, formatNumberCustom, } from './number-formatter.js';
2
+ export { formatDuration, formatDurationCanonical } from './duration-formatter.js';
3
3
  export { formatMetricComparison, type FormattedMetricComparison, type FormattedMetricComparisonPart, type FormatMetricComparisonOptions, type MetricComparisonDisplayMode, } from './metric-comparison-formatter.js';
4
4
  export { formatDate, formatRelativeTime, resolveTimezone, getTimezoneAbbreviation, getTimezoneName, parseWithSourceTimezone, } from './date-formatter.js';
5
5
  export { formatCellValue, formatRowForExport } from './cell-formatter.js';
@@ -2,6 +2,11 @@ import { MatrixPath, MatrixPresentation, MatrixWindow, SemaphorScalarValue, Sema
2
2
  import { ReportRuntimeContext } from '../../report-runtime-context/index.js';
3
3
  /** Null hierarchy members stay identifiable even when null cells render blank. */
4
4
  export declare function matrixMemberLabel(path: MatrixPath, levels?: ReadonlyMap<string, (value: SemaphorScalarValue) => string>): string;
5
+ /**
6
+ * The one label every surface gives a total row or column. An authored
7
+ * subtotal label is used as written, with each `{member}` replaced by the
8
+ * member's label ("Total for {member}").
9
+ */
5
10
  export declare function matrixTotalLabel(role: 'member' | 'subtotal' | 'grand_total', text: string, authored?: string): string;
6
11
  export declare function matrixAxisLabel(path: MatrixPath, role: 'member' | 'subtotal' | 'grand_total', totals: MatrixPresentation['totals']['rows'], levels?: ReadonlyMap<string, (value: SemaphorScalarValue) => string>): string;
7
12
  /** Acquired absence is presentation; pending/error states remain the caller's UI. */
@@ -1,4 +1,4 @@
1
- import { FormatOptions, NumberFormatOptions, NumericCanonicalFormat } from '../types/index.js';
1
+ import { ColumnDurationFormat, ColumnNumberStyle, FormatOptions, MeasureCanonicalFormat, NumberFormatOptions, NumericCanonicalFormat } from '../types/index.js';
2
2
  import { ExactNumericValue } from '../../analytics-protocol/scalar-value.js';
3
3
  type NumericValue = number | ExactNumericValue;
4
4
  /**
@@ -21,12 +21,17 @@ export declare function formatPercent(value: NumericValue | null | undefined, op
21
21
  */
22
22
  export declare function formatScientific(value: NumericValue | null | undefined, options?: NumberFormatOptions): string;
23
23
  export declare function formatNumericCanonical(value: number | ExactNumericValue | null | undefined, format: NumericCanonicalFormat): string;
24
+ /**
25
+ * Formats a table measure value with its resolved format: numeric styles go
26
+ * through `formatNumericCanonical`, durations through the duration formatter.
27
+ */
28
+ export declare function formatMeasureCanonical(value: number | ExactNumericValue | null | undefined, format: MeasureCanonicalFormat): string;
24
29
  /**
25
30
  * Format a number value based on ColumnSettings.numberFormat
26
31
  * Used for export formatting
27
32
  */
28
33
  export declare function formatNumberWithColumnSettings(value: number | ExactNumericValue | null | undefined, numberFormat: {
29
- style?: 'decimal' | 'currency' | 'percent' | 'scientific';
34
+ style?: ColumnNumberStyle;
30
35
  currency?: string;
31
36
  locale?: string;
32
37
  minimumFractionDigits?: number;
@@ -38,6 +43,7 @@ export declare function formatNumberWithColumnSettings(value: number | ExactNume
38
43
  negativeStyle?: 'minus' | 'parentheses';
39
44
  prefix?: string;
40
45
  suffix?: string;
46
+ duration?: ColumnDurationFormat;
41
47
  } | undefined, defaultLocale?: string): string;
42
48
  /**
43
49
  * Legacy wrapper for backward compatibility with existing code
@@ -18,6 +18,7 @@ export * from './exporters/index.js';
18
18
  export * from './export-policy.js';
19
19
  export * from './matrix-continuation.js';
20
20
  export * from './matrix-export-presentation.js';
21
+ export * from './matrix-print.js';
21
22
  export { fromSemanticFormat } from './semantic-format.js';
22
23
  export type * from './table-structure.js';
23
24
  export * from './pdf-export-policy.js';