react-semaphor 0.1.544 → 0.1.546

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 (179) hide show
  1. package/dist/analytics-protocol/index.js +405 -441
  2. package/dist/assistant-context/index.js +1 -1
  3. package/dist/assistant-protocol/index.js +100 -76
  4. package/dist/brand-studio/index.js +5 -5
  5. package/dist/briefings/index.js +55 -52
  6. package/dist/chunks/{class-utils-Df1OVOT1.js → _commonjsHelpers-DimLPMtv.js} +124 -98
  7. package/dist/chunks/{add-to-dashboard-BuAqfA2Y.js → add-to-dashboard-BQRAAnc3.js} +55 -33
  8. package/dist/chunks/{analytics-base-schemas-BFAoRlkU.js → analytics-base-schemas-BKs3flFS.js} +2 -2
  9. package/dist/chunks/{assistant-chat-BNLkCDml.js → assistant-chat-BPXhulAx.js} +2792 -2562
  10. package/dist/chunks/{bookmark-state-CXw7lZ50.js → bookmark-state-C4vetoa0.js} +7 -8
  11. package/dist/chunks/column-catalog-BYnochWQ.js +3363 -0
  12. package/dist/chunks/comparison-window-caption-C2xF-eWw.js +1433 -0
  13. package/dist/chunks/{context-ClREvqCZ.js → context-BerEBuFR.js} +11 -6
  14. package/dist/chunks/custom-visual-inputs-CkJW9pBS.js +295 -0
  15. package/dist/chunks/{dashboard-g5a4DKWq.js → dashboard-C3CoKbGY.js} +1 -1
  16. package/dist/chunks/dashboard-briefing-launcher-Be4h-7My.js +3734 -0
  17. package/dist/chunks/dashboard-controls-bxPrlSyp.js +2307 -0
  18. package/dist/chunks/{dashboard-json-7qT9jmfL.js → dashboard-json-BrjxIiRt.js} +6 -6
  19. package/dist/chunks/document-dashboard-inputs-CRVHpIHp.js +3010 -0
  20. package/dist/chunks/{edit-dashboard-visual-BfJwnRIZ.js → edit-dashboard-visual-DYYYDjY6.js} +5986 -6063
  21. package/dist/chunks/{filter-value-text-CYsVYPuD.js → filter-value-text-Ddf55Ku1.js} +8 -8
  22. package/dist/chunks/global-date-filter-utils-9d6m9-FE.js +11859 -0
  23. package/dist/chunks/index-CtoK1Lgu.js +586 -0
  24. package/dist/chunks/{index-DkAyQvC6.js → index-DkQkMKa1.js} +385 -339
  25. package/dist/chunks/list-filter-DsaTbM3J.js +15 -0
  26. package/dist/chunks/matrix-analytical-definition-B9vW-osb.js +717 -0
  27. package/dist/chunks/{matrix-card-DjwWcCo8.js → matrix-card-LiMEipvq.js} +3 -3
  28. package/dist/chunks/{matrix-formatter-CxJLkztA.js → matrix-formatter-DWEeC0_c.js} +55 -55
  29. package/dist/chunks/{matrix-member-presentation-CQGdVks6.js → matrix-member-presentation-DqzG-UhQ.js} +1 -1
  30. package/dist/chunks/{matrix-operation-contract-8OIO4gob.js → matrix-operation-contract-D6vYkZK4.js} +72 -72
  31. package/dist/chunks/{metric-comparison-DEwi9uc2.js → metric-comparison-zpGw4lD6.js} +2 -2
  32. package/dist/chunks/normalize-dashboard-for-dirty-check-XKgH3GFX.js +119 -0
  33. package/dist/chunks/{pivot-header-presentation-DHcx1XGQ.js → pivot-header-presentation-CQnIDtUv.js} +1 -1
  34. package/dist/chunks/{pivot-result-identity-DJhXXcns.js → pivot-result-identity-C-Q1j1Wb.js} +1 -1
  35. package/dist/chunks/{pivot-result-lifecycle-DM4CyGKs.js → pivot-result-lifecycle-pwq3b7LC.js} +571 -380
  36. package/dist/chunks/{raw-temporal-contract-C51YG48G.js → raw-temporal-contract-WuXA8jBP.js} +1 -1
  37. package/dist/chunks/{raw-temporal-presentation-CLiVi90c.js → raw-temporal-presentation-CBzrDOjM.js} +8 -8
  38. package/dist/chunks/rendered-file-D8xEuVVx.js +108 -0
  39. package/dist/chunks/{report-preferences-dialog-Df7VpRVW.js → report-preferences-dialog-4QEZWe5U.js} +637 -610
  40. package/dist/chunks/{report-runtime-context-Dq8XyODK.js → report-runtime-context-hWiTCzFV.js} +2 -2
  41. package/dist/chunks/resolve-dashboard-input-context-UpK_LBpL.js +5677 -0
  42. package/dist/chunks/{saved-dashboard-context-B-mQ--nV.js → saved-dashboard-context-D_I3Lxk0.js} +184 -212
  43. package/dist/chunks/selection-filter-compiler-BKXmyLrS.js +79 -0
  44. package/dist/chunks/{selection-reducer-Dj_8xD69.js → selection-reducer-CJzkTZio.js} +15 -15
  45. package/dist/chunks/{semaphor-ready-indicator-DDAxk8us.js → semaphor-ready-indicator-4zpRHE-X.js} +56832 -59068
  46. package/dist/chunks/{shelf-drop-preview-context-BSRPwaED.js → shelf-drop-preview-context-Cfw7TRAx.js} +890 -871
  47. package/dist/chunks/{source-entity-resolution-BYn9giz3.js → source-entity-resolution-BIGRvtbG.js} +13 -13
  48. package/dist/chunks/{switch-C3jLxlG0.js → switch-CEBOR4n7.js} +47 -48
  49. package/dist/chunks/{table-export-sheet-CPfGAQ9X.js → table-export-sheet-4X9mAG3V.js} +1 -1
  50. package/dist/chunks/table-settings-CunhoDUi.js +605 -0
  51. package/dist/chunks/{temporal-bucket-D7NBrrtL.js → temporal-bucket-CQOSbv9-.js} +26 -26
  52. package/dist/chunks/{token-types-DBbZVQsm.js → token-types-BMqRmT-C.js} +1 -1
  53. package/dist/chunks/{use-create-flow-overlay-state-BxzFviM-.js → use-create-flow-overlay-state-DZBZiiD-.js} +83 -83
  54. package/dist/chunks/{validators-DMHTpf7a.js → validators-C-aOQlTB.js} +713 -658
  55. package/dist/dashboard/index.js +2 -2
  56. package/dist/dashboard-authoring/index.js +1800 -1135
  57. package/dist/data-app-sdk/index.js +6 -6
  58. package/dist/data-app-sdk-adapters/index.js +3 -3
  59. package/dist/data-app-sdk-validation/index.js +14 -14
  60. package/dist/format-utils/index.js +198 -187
  61. package/dist/index.js +359 -325
  62. package/dist/layouts/index.js +5 -242
  63. package/dist/report-runtime-context/index.js +2 -2
  64. package/dist/shared/index.js +4 -5
  65. package/dist/style.css +1 -1
  66. package/dist/surfboard/index.js +2 -2
  67. package/dist/types/briefings/attachment-outcomes.d.ts +1 -1
  68. package/dist/types/briefings/attachments.d.ts +33 -6
  69. package/dist/types/briefings/index.d.ts +6 -5
  70. package/dist/types/components/index.d.ts +2 -0
  71. package/dist/types/components/surfboard/arrange-layout-button.d.ts +8 -0
  72. package/dist/types/components/surfboard/filter/types.d.ts +0 -14
  73. package/dist/types/components/surfboard/screen-size-preview-button.d.ts +7 -0
  74. package/dist/types/index.js +6 -6
  75. package/dist/types/lib/charts/table-chart-types.d.ts +4 -0
  76. package/dist/types/lib/charts/types.d.ts +2 -2
  77. package/dist/types/lib/dashboard-inputs/dashboard-filter-mapping-authoring.d.ts +68 -82
  78. package/dist/types/lib/dashboard-inputs/dashboard-input-target-context.d.ts +0 -8
  79. package/dist/types/lib/dashboard-inputs/dashboard-input-values.d.ts +41 -1
  80. package/dist/types/lib/dashboard-inputs/filter-settings.d.ts +201 -0
  81. package/dist/types/lib/dashboard-inputs/prepare-loaded-dashboard.d.ts +15 -0
  82. package/dist/types/lib/dashboard-inputs/resolve-dashboard-input-context.d.ts +7 -2
  83. package/dist/types/lib/dashboard-inputs/resolve-selection-input.d.ts +1 -1
  84. package/dist/types/lib/dashboard-viewer/captured-runtime-values.d.ts +40 -0
  85. package/dist/types/lib/dashboard-viewer/compatibility-input-storage.d.ts +16 -16
  86. package/dist/types/lib/dashboard-viewer/viewer-state.d.ts +11 -9
  87. package/dist/types/lib/download-pdf.d.ts +75 -1
  88. package/dist/types/lib/hooks/use-date-filter.d.ts +5 -0
  89. package/dist/types/lib/hooks/use-text-filter.d.ts +5 -0
  90. package/dist/types/lib/matrix-table/matrix-delivery-policy.d.ts +5 -4
  91. package/dist/types/lib/matrix-table/matrix-editor.d.ts +52 -0
  92. package/dist/types/lib/query-context/assemble-card-query.d.ts +158 -0
  93. package/dist/types/lib/query-context/build-card-query-context.d.ts +3 -3
  94. package/dist/types/lib/query-context/build-dashboard-card-query-contract.d.ts +15 -6
  95. package/dist/types/lib/query-context/build-dashboard-execution-snapshot.d.ts +11 -13
  96. package/dist/types/lib/query-context/compile-dashboard-card-filters.d.ts +22 -12
  97. package/dist/types/lib/query-context/dashboard-filter-mapping-resolution.d.ts +69 -0
  98. package/dist/types/lib/stores/dashboard-store.d.ts +159 -56
  99. package/dist/types/lib/stores/editor-store.d.ts +0 -3
  100. package/dist/types/lib/types/common-types.d.ts +29 -6
  101. package/dist/types/lib/types/explorer-types.d.ts +10 -0
  102. package/dist/types/lib/types/semantic-types.d.ts +84 -0
  103. package/dist/types/lib/utils/build-saved-editor-card.d.ts +20 -0
  104. package/dist/types/lib/utils/card-type-change.d.ts +16 -0
  105. package/dist/types/lib/utils/field-availability-context.d.ts +25 -0
  106. package/dist/types/lib/utils/field-placement.d.ts +96 -0
  107. package/dist/types/lib/utils/field-state-calculator.d.ts +161 -0
  108. package/dist/types/lib/utils/qualified-entity-name.d.ts +2 -0
  109. package/dist/types/shared/analytics-protocol/field-provenance.d.ts +89 -0
  110. package/dist/types/shared/analytics-protocol/index.d.ts +2 -0
  111. package/dist/types/shared/analytics-protocol/query-policies.d.ts +52 -0
  112. package/dist/types/shared/analytics-protocol/time-window-schema.d.ts +1 -1
  113. package/dist/types/shared/analytics-protocol/time-window.d.ts +40 -1
  114. package/dist/types/shared/assistant-context/saved-dashboard-context.d.ts +8 -12
  115. package/dist/types/shared/assistant-protocol/answer-text.d.ts +20 -0
  116. package/dist/types/shared/assistant-protocol/context.d.ts +21 -21
  117. package/dist/types/shared/assistant-protocol/index.d.ts +1 -0
  118. package/dist/types/shared/assistant-protocol/limits.d.ts +6 -1
  119. package/dist/types/shared/assistant-protocol/parts.d.ts +43 -3
  120. package/dist/types/shared/assistant-protocol/request.d.ts +14 -2
  121. package/dist/types/shared/dashboard-authoring/calculated-field-identity.d.ts +3 -0
  122. package/dist/types/shared/dashboard-authoring/changes/card-query-part.d.ts +487 -0
  123. package/dist/types/shared/dashboard-authoring/changes/card-types.d.ts +34 -0
  124. package/dist/types/shared/dashboard-authoring/changes/dashboard-change.d.ts +7886 -0
  125. package/dist/types/shared/dashboard-authoring/changes/diagnostics.d.ts +43 -0
  126. package/dist/types/shared/dashboard-authoring/changes/read-card-query.d.ts +54 -0
  127. package/dist/types/shared/dashboard-authoring/changes/resolve-dashboard-changes.d.ts +89 -0
  128. package/dist/types/shared/dashboard-authoring/column-catalog.d.ts +32 -0
  129. package/dist/types/shared/dashboard-authoring/contracts.d.ts +0 -55
  130. package/dist/types/shared/dashboard-authoring/control-execution-contract.d.ts +16 -6
  131. package/dist/types/shared/dashboard-authoring/dashboard-card-source-index.d.ts +9 -1
  132. package/dist/types/shared/dashboard-authoring/dashboard-filter-mapping-contract.d.ts +7 -0
  133. package/dist/types/shared/dashboard-authoring/dashboard-input-scope.d.ts +118 -0
  134. package/dist/types/shared/dashboard-authoring/filter-applicability.d.ts +75 -0
  135. package/dist/types/shared/dashboard-authoring/filter-model/ad-hoc-filter-values.d.ts +10 -0
  136. package/dist/types/shared/dashboard-authoring/filter-model/filter-definitions.d.ts +29 -0
  137. package/dist/types/shared/dashboard-authoring/filter-model/filter-values.d.ts +58 -0
  138. package/dist/types/shared/dashboard-authoring/filter-model/index.d.ts +7 -0
  139. package/dist/types/shared/dashboard-authoring/filter-model/prototype-document-inputs.d.ts +15 -0
  140. package/dist/types/shared/dashboard-authoring/filter-model/read-dashboard-filter-model.d.ts +78 -0
  141. package/dist/types/shared/dashboard-authoring/filter-model/stored-dashboard.d.ts +18 -0
  142. package/dist/types/shared/dashboard-authoring/filter-model/toolbar-filter-reach.d.ts +23 -0
  143. package/dist/types/shared/dashboard-authoring/index.d.ts +20 -2
  144. package/dist/types/shared/dashboard-authoring/operations/apply-dashboard-operations.d.ts +10 -37
  145. package/dist/types/shared/dashboard-authoring/operations/operation-types.d.ts +189 -0
  146. package/dist/types/shared/dashboard-authoring/outline/outline-dashboard.d.ts +94 -0
  147. package/dist/types/shared/dashboard-authoring/outline/outline-filters.d.ts +78 -0
  148. package/dist/types/shared/dashboard-authoring/validators.d.ts +1 -2
  149. package/dist/types/shared/format-utils/exporters/index.d.ts +2 -0
  150. package/dist/types/shared/format-utils/exporters/rendered-file.d.ts +106 -0
  151. package/dist/types/shared/layouts/engine/grid.d.ts +25 -0
  152. package/dist/types/shared/layouts/engine/index.d.ts +4 -0
  153. package/dist/types/shared/layouts/engine/sheet-layout.d.ts +7 -0
  154. package/dist/types/shared/layouts/engine/types.d.ts +125 -0
  155. package/dist/types/shared/layouts/index.d.ts +1 -2
  156. package/package.json +2 -2
  157. package/dist/chunks/_commonjsHelpers-BkfeUUK-.js +0 -28
  158. package/dist/chunks/apply-dashboard-operations-Bz4n1Lq6.js +0 -2260
  159. package/dist/chunks/calendar-day-equality-BmJAWduY.js +0 -460
  160. package/dist/chunks/comparison-window-caption-BTkrN3W4.js +0 -1623
  161. package/dist/chunks/custom-visual-inputs-DUtpYZOk.js +0 -323
  162. package/dist/chunks/dashboard-briefing-launcher-DQ_8O_e2.js +0 -3725
  163. package/dist/chunks/dashboard-controls-8RyBTQUO.js +0 -2315
  164. package/dist/chunks/dashboard-filter-value-compatibility-CwQ_iSNb.js +0 -108
  165. package/dist/chunks/document-dashboard-inputs-BC6p-ESg.js +0 -8087
  166. package/dist/chunks/document-sheet-utils-Duo9uLoH.js +0 -3619
  167. package/dist/chunks/matrix-analytical-definition-C7Gb0e12.js +0 -117
  168. package/dist/chunks/normalize-dashboard-for-dirty-check-Bk3VYv_q.js +0 -67
  169. package/dist/chunks/numeric-presentation-DESvLiu9.js +0 -5227
  170. package/dist/chunks/sort-target-MT1WK1vX.js +0 -29
  171. package/dist/chunks/stable-serialize-CfqXeiBP.js +0 -6
  172. package/dist/chunks/table-settings-CLZocegs.js +0 -501
  173. package/dist/chunks/use-debounced-dirty-check-BwAbnX_5.js +0 -59
  174. package/dist/types/lib/dashboard-inputs/dashboard-filter-mapping-storage-transition.d.ts +0 -88
  175. package/dist/types/lib/dashboard-inputs/dashboard-input-scope.d.ts +0 -10
  176. package/dist/types/shared/dashboard-authoring/change-compiler.d.ts +0 -7
  177. package/dist/types/shared/dashboard-authoring/layout-compiler.d.ts +0 -2
  178. package/dist/types/shared/layouts/create-frame-layouts.d.ts +0 -27
  179. package/dist/types/shared/layouts/frame-layouts.d.ts +0 -23
@@ -1,5 +1,5 @@
1
- import { a, R as s, D as o } from "../chunks/report-preferences-dialog-Df7VpRVW.js";
2
- import { C as f, E as D } from "../chunks/table-settings-CLZocegs.js";
1
+ import { a, R as s, D as o } from "../chunks/report-preferences-dialog-4QEZWe5U.js";
2
+ import { C as f, E as D } from "../chunks/table-settings-CunhoDUi.js";
3
3
  export {
4
4
  f as CONTROL_CARD_DEFAULT_VALUE,
5
5
  a as DisplayFormatPreferencesFields,
@@ -4,7 +4,7 @@ import { BriefingAttachmentFormat } from './index.js';
4
4
  * RA-D14). The app decides the code and writes the customer line; the run
5
5
  * card reads both back from the run.
6
6
  */
7
- export declare const BRIEFING_ATTACHMENT_OMISSION_CODES: readonly ["PDF_ROW_LIMIT_EXCEEDED", "PDF_SIZE_LIMIT_EXCEEDED", "TABLE_COMPLETENESS_UNVERIFIED", "CARD_QUERY_FAILED", "RENDER_NOT_READY", "RENDER_TIMED_OUT", "EXPORT_JOB_FAILED", "ATTACHMENT_UNAVAILABLE", "EXCEL_LIMIT_EXCEEDED", "EXPORT_ROW_LIMIT_EXCEEDED", "EXPORT_COUNT_UNAVAILABLE", "EXPORT_NO_ROWS"];
7
+ export declare const BRIEFING_ATTACHMENT_OMISSION_CODES: readonly ["PDF_ROW_LIMIT_EXCEEDED", "PDF_SIZE_LIMIT_EXCEEDED", "TABLE_COMPLETENESS_UNVERIFIED", "CARD_QUERY_FAILED", "RENDER_NOT_READY", "RENDER_TIMED_OUT", "EXPORT_JOB_FAILED", "ATTACHMENT_UNAVAILABLE", "EXCEL_LIMIT_EXCEEDED", "EXPORT_ROW_LIMIT_EXCEEDED", "EXPORT_COUNT_UNAVAILABLE", "EXPORT_NO_ROWS", "IMAGE_TOO_LARGE"];
8
8
  export type BriefingAttachmentOmissionCode = (typeof BRIEFING_ATTACHMENT_OMISSION_CODES)[number];
9
9
  /** One left-out attachment, as recorded on the run and read by every channel. */
10
10
  export type BriefingOmittedAttachment = {
@@ -1,4 +1,5 @@
1
1
  import { BriefingAttachment, BriefingAttachmentFormat } from './index.js';
2
+ import { ExportFileFormat } from '../shared/format-utils/exporters/export-file-format.js';
2
3
  import { TCard } from '../lib/types/common-types.js';
3
4
  export type BriefingCardAttachmentCapability = {
4
5
  formats: BriefingAttachmentFormat[];
@@ -11,19 +12,45 @@ export declare function getBriefingCardAttachmentCapability(card: TCard): Briefi
11
12
  * every row up to the export cap.
12
13
  */
13
14
  export declare function isBriefingTableExportCardType(cardType: string | undefined): boolean;
15
+ /** How a run makes an attachment (PNG exports SPEC §2.7). */
16
+ export type BriefingAttachmentProduction =
17
+ /** Drawn by the renderer from the print view (PDF, PNG, and CSV of a card that is not a table or Matrix). */
18
+ {
19
+ kind: 'rendered';
20
+ format: 'pdf' | 'png' | 'csv';
21
+ }
22
+ /** A Matrix card's PDF, built from the Matrix capture. */
23
+ | {
24
+ kind: 'matrix_pdf';
25
+ }
26
+ /** A background export job: CSV and Excel of Table, Detail Table and Matrix cards. */
27
+ | {
28
+ kind: 'export_job';
29
+ format: ExportFileFormat;
30
+ };
14
31
  /**
15
- * Attachments a background export job makes before a run is finalized
16
- * (Excel exports SPEC §3.4, §3.5): a card's data file (CSV or Excel) of a
17
- * Matrix with its capture, a Table or a Detail Table. Every other attachment
18
- * renders. Read by preparation, release, delivery access and the page route
19
- * alike, so they always agree on which attachments a job makes.
32
+ * How the run makes this attachment. The only place that decides it: a PNG
33
+ * is always rendered (a Matrix PNG too), a Matrix PDF comes from the Matrix
34
+ * capture, and a data file (CSV or Excel) of a Matrix with its capture, a
35
+ * Table or a Detail Table is a background export job (Excel exports SPEC
36
+ * §3.4, §3.5). Read by preparation, release, delivery access, the page route
37
+ * and the renderer adapter alike, so they always agree.
20
38
  */
39
+ export declare function briefingAttachmentProduction(attachment: BriefingAttachment): BriefingAttachmentProduction;
40
+ /** Attachments a background export job makes before a run is finalized. */
21
41
  export declare function briefingAttachmentNeedsExportJob(attachment: BriefingAttachment): boolean;
42
+ export type BriefingAttachmentFileTraits = {
43
+ label: string;
44
+ extension: string;
45
+ contentType: string;
46
+ };
47
+ /** An attachment file's name, extension and content type: rendered files and data files have one owner each. */
48
+ export declare function briefingAttachmentFileTraits(format: BriefingAttachmentFormat): BriefingAttachmentFileTraits;
22
49
  export declare function getBriefingCardAttachmentFormats(input: {
23
50
  cardType: string;
24
51
  allowDownload?: boolean;
25
52
  }): BriefingAttachmentFormat[];
26
- /** The name customers read for an attachment format: PDF, CSV or Excel. */
53
+ /** The name customers read for an attachment format: PDF, PNG image, CSV or Excel. */
27
54
  export declare function briefingAttachmentFormatLabel(format: BriefingAttachmentFormat): string;
28
55
  export declare function getDefaultBriefingCardAttachmentFormat(input: {
29
56
  cardType: string;
@@ -2,11 +2,10 @@ import { NumericCanonicalFormat, NumericPresentationTarget, PresentationExecutio
2
2
  import { BriefingAppearanceSpec, BriefingFragments, BriefingThemeOverrides } from './presentation-contract.js';
3
3
  import { MatrixConfig } from '../shared/analytics-protocol/index.js';
4
4
  import { CsvEncoding } from '../shared/format-utils/exporters/csv-utils.js';
5
- import { ExportFileFormat } from '../shared/format-utils/exporters/export-file-format.js';
6
5
  export { captureMatrixExport, buildMatrixDeliveryEnvelope, matrixDeliveryPayloadSchema, matrixDeliveryQuerySchema, type MatrixLayoutReadResult } from '../shared/dashboard-authoring/matrix-delivery.js';
7
6
  export declare const BRIEFING_KIND: "BRIEFING";
8
7
  export { DEFAULT_BRIEFING_SCHEDULE, briefingScheduleMonths, briefingScheduleDayOccurs, briefingScheduleShortMonths, buildBriefingScheduleExpr, canonicalBriefingMonthDays, describeBriefingSchedule, isValidBriefingTimezone, nextBriefingScheduleDates, parseBriefingScheduleExpr, type BriefingScheduleFrequency, type BriefingScheduleMonthDay, type BriefingScheduleMonthInterval, type BriefingScheduleMonthlyOn, type BriefingScheduleOrdinal, type BriefingScheduleViewModel, } from './schedule.js';
9
- export { briefingAttachmentFormatLabel, briefingAttachmentNeedsExportJob, getBriefingCardAttachmentCapability, getBriefingCardAttachmentFormats, getDefaultBriefingCardAttachmentFormat, isBriefingTableExportCardType, type BriefingCardAttachmentCapability, } from './attachments.js';
8
+ export { briefingAttachmentFileTraits, briefingAttachmentFormatLabel, briefingAttachmentNeedsExportJob, briefingAttachmentProduction, type BriefingAttachmentFileTraits, type BriefingAttachmentProduction, getBriefingCardAttachmentCapability, getBriefingCardAttachmentFormats, getDefaultBriefingCardAttachmentFormat, isBriefingTableExportCardType, type BriefingCardAttachmentCapability, } from './attachments.js';
10
9
  export { BRIEFING_ATTACHMENT_OMISSION_CODES, isBriefingAttachmentOmissionCode, readBriefingOmittedAttachments, type BriefingAttachmentOmissionCode, type BriefingOmittedAttachment, } from './attachment-outcomes.js';
11
10
  export { canCreateBriefingForUser, type BriefingUiUser } from './capabilities.js';
12
11
  export { getBriefingCreationIntents, type BriefingAuthorIntent, } from './creation.js';
@@ -167,8 +166,9 @@ export type BriefingContentDocument = {
167
166
  summary?: string;
168
167
  blocks: BriefingContentBlock[];
169
168
  };
170
- /** A rendered PDF, or a data file (CSV or Excel) made by an export. */
171
- export type BriefingAttachmentFormat = 'pdf' | ExportFileFormat;
169
+ /** A rendered PDF or PNG image, or a data file (CSV or Excel, `ExportFileFormat`). */
170
+ export declare const BRIEFING_ATTACHMENT_FORMATS: readonly ["pdf", "png", "csv", "xlsx"];
171
+ export type BriefingAttachmentFormat = (typeof BRIEFING_ATTACHMENT_FORMATS)[number];
172
172
  export type BriefingPdfPageSize = 'letter' | 'legal' | 'a4' | 'a3' | 'tabloid';
173
173
  export type BriefingPdfOrientation = 'portrait' | 'landscape';
174
174
  export type BriefingCsvDelimiter = ',' | ';' | '\t';
@@ -222,7 +222,8 @@ export type BriefingAttachment = (BriefingAttachmentBase & {
222
222
  type: 'dashboard_sheet';
223
223
  dashboardId: string;
224
224
  sheetId: string;
225
- format: 'pdf';
225
+ /** A sheet prints as a PDF or a PNG image of the whole sheet. */
226
+ format: 'pdf' | 'png';
226
227
  }) | (BriefingAttachmentBase & {
227
228
  type: 'document_sheet';
228
229
  dashboardId: string;
@@ -35,6 +35,8 @@ export { VisualEditingControls } from './editor/editor-main/visual-editing-contr
35
35
  export { AdvancedModeToggle } from './editor/editor-main/advanced-mode-toggle.js';
36
36
  export { AssistantProvider } from './assistant/assistant-provider.js';
37
37
  export { AssistantPanel, AssistantToolbarButton } from './assistant/assistant-entry-points.js';
38
+ export { ArrangeLayoutButton } from './surfboard/arrange-layout-button.js';
39
+ export { ScreenSizePreviewButton } from './surfboard/screen-size-preview-button.js';
38
40
  export type { AssistantPanelSurface } from './assistant/assistant-entry-points.js';
39
41
  export { useAssistant } from './assistant/use-assistant.js';
40
42
  export * from '../lib/types/common-types.js';
@@ -0,0 +1,8 @@
1
+ /**
2
+ * Arrange in the dashboard toolbar (responsive layouts RL-D13): lays the
3
+ * selected grid sheet out by kind on every screen size, or tidies it in its
4
+ * current order, with Undo on the toast (RL-INV-7). Shown while editing a
5
+ * grid sheet. Reads only the dashboard store, so semaphor-app mounts it in
6
+ * its own toolbar as well as the package's.
7
+ */
8
+ export declare function ArrangeLayoutButton(): import("react").JSX.Element | null;
@@ -45,13 +45,6 @@ export type FixedDayDefaultDateFilter = {
45
45
  date: string;
46
46
  };
47
47
  export type DefaultDateFilter = RelativeDateFilter | FixedMonthDefaultDateFilter | FixedDayDefaultDateFilter;
48
- /**
49
- * Display mode for individual filters
50
- * - 'canvas': Filter displayed as a draggable card on the dashboard canvas
51
- * - 'toolbar': Filter displayed in the compact toolbar
52
- * - 'inherit': Use the dashboard's filterLayout.displayMode setting (default)
53
- */
54
- export type FilterDisplayMode = 'canvas' | 'toolbar' | 'inherit';
55
48
  export type FilterKind = 'field' | 'global-date';
56
49
  /**
57
50
  * Target column configuration for multi-field filters.
@@ -133,13 +126,6 @@ export type TFilter = {
133
126
  * Defaults vary by filter type (160px for dropdowns, 220px for date ranges, etc.)
134
127
  */
135
128
  toolbarWidth?: number;
136
- /**
137
- * Display mode for this filter
138
- * - 'canvas': Always show as draggable card on canvas
139
- * - 'toolbar': Always show in toolbar
140
- * - 'inherit': Use dashboard's filterLayout.displayMode setting (default)
141
- */
142
- displayMode?: FilterDisplayMode;
143
129
  };
144
130
  export type Operation = '=' | '>' | '<' | '>=' | '<=' | '!=' | 'in' | 'not in' | 'like' | 'not like' | 'between' | 'not between' | 'is null' | 'is not null';
145
131
  type BaseFilter = {
@@ -0,0 +1,7 @@
1
+ /**
2
+ * Preview screen sizes without editing (responsive layouts RL-D19): opens the
3
+ * sheet's floating size control, look-only, at the size the grid shows now.
4
+ * The host places it beside the Activity bell for people who can edit the dashboard. Reads
5
+ * only the dashboard store, so semaphor-app mounts it in its own toolbar too.
6
+ */
7
+ export declare function ScreenSizePreviewButton(): import("react").JSX.Element | null;
@@ -1,9 +1,9 @@
1
- import { C as s, E as r, V as l, i as o, c as i, g as n, f as d, b as m, e as u, d as E, a as c, u as p, s as C, h as T, j as D, q as A, o as I, m as _, n as F, p as S, k as b, l as L, r as f, t as N } from "../chunks/table-settings-CLZocegs.js";
2
- import { C as y, D as M, L as g, P as h, e as x, g as O, j as V, h as k, k as w, d as U, b as B, i as K, c as z, n as v, f as P } from "../chunks/validators-DMHTpf7a.js";
3
- import { D as q } from "../chunks/token-types-DBbZVQsm.js";
4
- import { B as Q, a as j, p as W, r as J } from "../chunks/bookmark-state-CXw7lZ50.js";
5
- import { r as H, a as Z } from "../chunks/pivot-result-identity-DJhXXcns.js";
6
- import { D as ee } from "../chunks/report-runtime-context-Dq8XyODK.js";
1
+ import { C as s, E as r, V as l, i as o, c as i, g as n, f as d, b as m, e as u, d as E, a as c, u as p, s as C, h as T, j as D, q as A, o as I, m as _, n as F, p as S, k as b, l as L, r as f, t as N } from "../chunks/table-settings-CunhoDUi.js";
2
+ import { C as y, D as M, L as g, P as h, e as x, g as O, j as V, h as k, k as w, d as U, b as B, i as K, c as z, n as v, f as P } from "../chunks/validators-C-aOQlTB.js";
3
+ import { D as q } from "../chunks/token-types-BMqRmT-C.js";
4
+ import { B as Q, a as j, p as W, r as J } from "../chunks/bookmark-state-C4vetoa0.js";
5
+ import { r as H, a as Z } from "../chunks/pivot-result-identity-C-Q1j1Wb.js";
6
+ import { D as ee } from "../chunks/report-runtime-context-hWiTCzFV.js";
7
7
  const e = [
8
8
  "concatenate",
9
9
  "conditional-category",
@@ -0,0 +1,4 @@
1
+ import { TChartType } from './types.js';
2
+ /** The chart types that render as tables. No runtime imports: server-safe code reads these. */
3
+ export declare const TABLE_CHART_TYPES: readonly ["table", "pivotTable", "aggregateTable", "matrixTable", "detailTable"];
4
+ export declare function isTableChartType(chartType: TChartType | string | undefined | null): boolean;
@@ -7,6 +7,7 @@ import { SemaphorResultColumn } from '../../shared/analytics-protocol/index.js';
7
7
  import { PresentationExecutionSnapshot } from '../../shared/format-utils/index.js';
8
8
  import { CartesianTemporalPresentation } from '../formatters/cartesian-temporal-presentation.js';
9
9
  import { CartesianFieldRoles } from './cartesian-fields.js';
10
+ import { TABLE_CHART_TYPES, isTableChartType } from './table-chart-types.js';
10
11
  export type ChartConfigParams = {
11
12
  card: TCard;
12
13
  data: any[];
@@ -49,8 +50,7 @@ export type BlurEffectProps = {
49
50
  blurColor?: string;
50
51
  };
51
52
  export type TChartType = 'bar' | 'horizontalBar' | 'line' | 'area' | 'stackedArea' | 'combo' | 'pie' | 'doughnut' | 'radar' | 'polarArea' | 'bubble' | 'scatter' | 'stackedBar' | 'stackedLine' | 'table' | 'pivotTable' | 'aggregateTable' | 'matrixTable' | 'detailTable' | 'kpi' | 'pyramid' | 'tornado' | 'range' | 'text' | 'map' | 'funnel' | 'bullet' | 'heatmap' | 'treemap' | 'custom';
52
- export declare const TABLE_CHART_TYPES: readonly ["table", "pivotTable", "aggregateTable", "matrixTable", "detailTable"];
53
- export declare function isTableChartType(chartType: TChartType | string | undefined | null): boolean;
53
+ export { TABLE_CHART_TYPES, isTableChartType };
54
54
  export declare function isChartJsVisualType(chartType: TChartType | string | undefined | null): boolean;
55
55
  export declare const REGULAR_TABLE_SETTINGS_CHART_TYPES: readonly ["table", "matrixTable", "pivotTable", "aggregateTable", "detailTable"];
56
56
  export declare function supportsRegularTableSettings(chartType: TChartType | string | undefined | null): boolean;
@@ -1,7 +1,12 @@
1
1
  import { TFilter } from '../../components/surfboard/filter/types.js';
2
- import { DashboardInputScope, ReferencedFilterDashboardInput, TDashboard } from '../types/common-types.js';
3
- import { buildDashboardCardSourceIndex, DashboardFilterCardApplication, DashboardFilterOptionSource, DashboardFilterTarget, DashboardFilterTargetField } from '../../shared/dashboard-authoring/index.js';
4
- import { DashboardFilterOptionPolicy } from './dashboard-filter-mapping-storage-transition.js';
2
+ import { DashboardInputScope, TCard, TDashboard } from '../types/common-types.js';
3
+ import { DashboardFilterApplication, DashboardFilterCardApplication, DashboardFilterTarget, DashboardFilterTargetField } from '../../shared/dashboard-authoring/index.js';
4
+ import { FilterRef, ReachedCard } from '../../shared/dashboard-authoring/filter-model/index.js';
5
+ /**
6
+ * Filter mapping (one filter model M3, SPEC 4.4): the Cards tab of any filter
7
+ * input. `draftDashboardFilterMapping` builds the rows from the cards the
8
+ * input reaches and, with them, exactly what Accept would save. Pure.
9
+ */
5
10
  export type DashboardFilterMappingCandidateCatalog = {
6
11
  status: 'ready';
7
12
  targets: DashboardFilterTarget[];
@@ -18,7 +23,13 @@ export type DashboardFilterMappingDraftDecision = {
18
23
  export type DashboardFilterMappingDraftStatus = 'pendingSource' | 'automatic' | 'suggested' | 'needsMapping' | 'mapped' | 'notApplicable' | 'excluded' | 'invalidMapping' | 'metadataUnavailable';
19
24
  export type DashboardFilterMappingDraftRow = {
20
25
  cardId: string;
26
+ /** The panel reads the title and meta line from it. */
27
+ card: TCard;
21
28
  sheetId: string;
29
+ sheetKind: 'dashboard' | 'document';
30
+ sectionId?: string;
31
+ /** The section's title, for a card in a Document section. */
32
+ sectionTitle?: string;
22
33
  executionKind: 'config' | 'sql' | 'unconfigured';
23
34
  status: DashboardFilterMappingDraftStatus;
24
35
  candidates: DashboardFilterTarget[];
@@ -28,27 +39,28 @@ export type DashboardFilterMappingDraftRow = {
28
39
  guidanceMessage?: string;
29
40
  automaticFieldName?: string;
30
41
  };
31
- export type DashboardFilterMappingDraft = {
32
- filterId: string;
33
- existingInputId?: string;
34
- outerScope: Extract<DashboardInputScope, {
35
- kind: 'allSheets' | 'sheets';
36
- }>;
42
+ export type DashboardFilterMappingGroup = {
43
+ sheetId: string;
44
+ sheetTitle: string;
45
+ sheetKind: 'dashboard' | 'document';
37
46
  rows: DashboardFilterMappingDraftRow[];
38
47
  };
39
- export type DashboardFilterMappingAuthoringIssueCode = 'filterNotFound' | 'mappingNotFound' | 'globalDateUnsupported' | 'conflictingDashboardInput' | 'unsupportedOuterScope' | 'unsupportedRuntimeScope' | 'missingDecision' | 'invalidTarget' | 'metadataUnavailable';
40
- export type DashboardFilterMappingAuthoringIssue = {
41
- code: DashboardFilterMappingAuthoringIssueCode;
48
+ export type DashboardFilterMappingIssueCode = 'inputNotFound' | 'globalDateUnsupported' | 'unsupportedOuterScope' | 'unsupportedRuntimeScope' | 'missingDecision' | 'invalidTarget' | 'metadataUnavailable';
49
+ export type DashboardFilterMappingIssue = {
50
+ code: DashboardFilterMappingIssueCode;
42
51
  message: string;
43
- filterId: string;
52
+ ref: FilterRef;
53
+ /** Set once the ref resolved. */
54
+ inputId?: string;
44
55
  cardId?: string;
45
56
  };
46
- export type DashboardFilterMappingDraftResult = {
57
+ /** What Accept would save, computed with the rows. */
58
+ export type DashboardFilterMappingAcceptance = {
47
59
  ok: true;
48
- draft: DashboardFilterMappingDraft;
60
+ application: DashboardFilterApplication;
49
61
  } | {
50
62
  ok: false;
51
- issues: DashboardFilterMappingAuthoringIssue[];
63
+ issues: DashboardFilterMappingIssue[];
52
64
  };
53
65
  export type DashboardFilterMappingStatusSummary = {
54
66
  coveredCount: number;
@@ -57,65 +69,58 @@ export type DashboardFilterMappingStatusSummary = {
57
69
  invalidCount: number;
58
70
  attentionCount: number;
59
71
  };
60
- /**
61
- * One presentation-neutral projection of authoritative Cards-tab rows.
62
- * Consumers must not independently reinterpret draft statuses when deciding
63
- * whether an author needs to act.
64
- */
65
- export declare function summarizeDashboardFilterMappingRows(rows: DashboardFilterMappingDraftRow[]): DashboardFilterMappingStatusSummary;
66
- export type DashboardFilterMappingAcceptanceResult = {
67
- ok: true;
68
- draft: DashboardFilterMappingDraft;
69
- input: ReferencedFilterDashboardInput;
70
- } | {
71
- ok: false;
72
- draft?: DashboardFilterMappingDraft;
73
- issues: DashboardFilterMappingAuthoringIssue[];
74
- };
75
- export type DashboardFilterMappingDisableResult = {
76
- ok: true;
72
+ export type DashboardFilterMappingDraft = {
77
73
  inputId: string;
78
- } | {
79
- ok: false;
80
- issues: DashboardFilterMappingAuthoringIssue[];
74
+ filterId: string;
75
+ /** The scope the rows were computed with: the staged scope, else the saved one. Accept never changes it (S-5). */
76
+ scope: Exclude<DashboardInputScope, {
77
+ kind: 'documentSections';
78
+ }>;
79
+ /** The cards the rows were built for; the catalogs hook fetches metadata for exactly these. */
80
+ cards: readonly ReachedCard[];
81
+ /** One group per reached tab, in dashboard tab order; rows in `cards` order. */
82
+ groups: DashboardFilterMappingGroup[];
83
+ summary: DashboardFilterMappingStatusSummary;
84
+ acceptance: DashboardFilterMappingAcceptance;
81
85
  };
82
- export type DashboardFilterInputAcceptanceResult = {
86
+ export type DashboardFilterMappingDraftResult = {
83
87
  ok: true;
84
- input: ReferencedFilterDashboardInput;
85
- created: boolean;
88
+ draft: DashboardFilterMappingDraft;
86
89
  } | {
87
90
  ok: false;
88
- issues: DashboardFilterMappingAuthoringIssue[];
91
+ issues: DashboardFilterMappingIssue[];
89
92
  };
90
- export type DashboardFilterMappingAuthoringRequest = {
91
- filterId: string;
93
+ export type DashboardFilterMappingRequest = {
94
+ /** The filter. Chips pass `{ inputId }`, a toolbar filter's compatibility id included. */
95
+ ref: FilterRef;
96
+ /** The dashboard as saved. */
97
+ dashboard: TDashboard;
98
+ /** The definition being edited, if changed. */
99
+ stagedDefinition?: TFilter;
100
+ /** The scope being edited, if changed; otherwise the saved scope, unnarrowed (OF-D8). */
101
+ stagedScope?: DashboardInputScope;
92
102
  candidatesByCardId: Record<string, DashboardFilterMappingCandidateCatalog | undefined>;
93
103
  /** Grounded field that supplies the current filter value. */
94
104
  selectionField?: Pick<DashboardFilterTargetField, 'name' | 'sourceField'> & Partial<Pick<DashboardFilterTargetField, 'source'>>;
95
105
  /**
96
- * Strictly proven identities eligible for Auto. Physical datasets in a
97
- * semantic domain may expose both physical and semantic identities. An
98
- * explicit empty array is authoritative and must not fall back to a
99
- * candidate-only selectionField source.
106
+ * Strictly proven identities eligible for Auto. An explicit empty array is
107
+ * authoritative and must not fall back to a candidate-only selectionField source.
100
108
  */
101
109
  automaticSelectionSources?: DashboardFilterTargetField['source'][];
102
110
  /** Datatype of the raw selection value, which may differ from the label. */
103
111
  selectionDataType?: string;
104
- /**
105
- * Re-check saved targets against selectionField after the author changes
106
- * the raw Option Value identity. Explicit draft decisions still win.
107
- */
112
+ /** Re-check saved targets after the option value field changed. */
108
113
  revalidatePersistedTargets?: boolean;
109
114
  decisionsByCardId?: Record<string, DashboardFilterMappingDraftDecision | undefined>;
110
- /** Staged outer sheet scope. Omit when the author did not edit Scope. */
111
- outerScope?: DashboardFilterMappingDraft['outerScope'];
112
- /** Test seam; production callers use opaque random UUIDs. */
115
+ /** Test seam for new binding ids; production uses opaque random UUIDs. */
113
116
  createId?: () => string;
114
117
  };
115
- export declare function buildDashboardFilterMappingOuterScope(params: {
116
- filter: Pick<TFilter, 'sheetId' | 'applyToSheetIds' | 'excludeSheetIds'>;
117
- dashboard: Pick<TDashboard, 'sheets'>;
118
- }): DashboardFilterMappingDraft['outerScope'];
118
+ /**
119
+ * One presentation-neutral projection of authoritative Cards-tab rows.
120
+ * Consumers must not independently reinterpret draft statuses when deciding
121
+ * whether an author needs to act.
122
+ */
123
+ export declare function summarizeDashboardFilterMappingRows(rows: DashboardFilterMappingDraftRow[]): DashboardFilterMappingStatusSummary;
119
124
  /**
120
125
  * One Cards row for a source-qualified value field that is not a toolbar
121
126
  * filter, such as a field a click carries. It is the same decision chain the
@@ -124,8 +129,11 @@ export declare function buildDashboardFilterMappingOuterScope(params: {
124
129
  * authoring surface. Equality is the only operation a click applies.
125
130
  */
126
131
  export declare function buildDashboardFilterMappingDraftRowForValueField(params: {
127
- card: Parameters<typeof buildDashboardCardSourceIndex>[0];
132
+ card: TCard;
128
133
  sheetId: string;
134
+ sheetKind: 'dashboard' | 'document';
135
+ sectionId?: string;
136
+ sectionTitle?: string;
129
137
  valueField: DashboardFilterTargetField;
130
138
  catalog: DashboardFilterMappingCandidateCatalog | undefined;
131
139
  decision?: DashboardFilterMappingDraftDecision;
@@ -133,27 +141,5 @@ export declare function buildDashboardFilterMappingDraftRowForValueField(params:
133
141
  /** Bindings already accepted elsewhere for this value field, offered as inherited matches. */
134
142
  acceptedTargets?: DashboardFilterTarget[];
135
143
  }): DashboardFilterMappingDraftRow;
136
- /** The reference-backed Input for a dashboard filter, mapped or not. */
137
- export declare function findReferencedDashboardFilterInput(dashboard: Pick<TDashboard, 'inputs'>, filterId: string): ReferencedFilterDashboardInput | undefined;
138
- export declare function acceptDashboardFilterInputDraft(params: {
139
- dashboard: Pick<TDashboard, 'filters' | 'sheets' | 'inputs'>;
140
- updatedFilter: TFilter;
141
- optionSource?: DashboardFilterOptionSource;
142
- /** Option dependency policy to persist; omitted keeps the existing one. */
143
- optionPolicy?: DashboardFilterOptionPolicy;
144
- inputMetadata?: {
145
- variableName?: string;
146
- forceSelection?: boolean;
147
- };
148
- createId?: () => string;
149
- }): DashboardFilterInputAcceptanceResult;
150
- export declare function buildDashboardFilterMappingDraft(params: {
151
- dashboard: Pick<TDashboard, 'filters' | 'sheets' | 'inputs'>;
152
- request: DashboardFilterMappingAuthoringRequest;
153
- }): DashboardFilterMappingDraftResult;
154
- export declare function acceptDashboardFilterMappingDraft(params: {
155
- dashboard: Pick<TDashboard, 'filters' | 'sheets' | 'inputs'>;
156
- request: DashboardFilterMappingAuthoringRequest;
157
- updatedFilter?: TFilter;
158
- }): DashboardFilterMappingAcceptanceResult;
159
- export declare function findMappedDashboardFilterInput(dashboard: Pick<TDashboard, 'inputs'>, filterId: string): ReferencedFilterDashboardInput | undefined;
144
+ /** The one entry point of M3 (SPEC 4.4). Pure. */
145
+ export declare function draftDashboardFilterMapping(request: DashboardFilterMappingRequest): DashboardFilterMappingDraftResult;
@@ -108,12 +108,4 @@ export declare function createExplicitDashboardInputTargetContext(params: {
108
108
  controls?: DashboardInputTargetContext['controls'];
109
109
  target?: NormalizedFilterDashboardInput;
110
110
  }): DashboardInputTargetContext;
111
- /**
112
- * Applicability for option peers. A card-local or section-local target sees
113
- * exactly what applies to it. A sheet-level target additionally sees the
114
- * Inputs local to cards or sections on that sheet, the same rule the toolbar
115
- * uses to decide what a sheet presents, so option narrowing and presentation
116
- * agree on what "on this sheet" means.
117
- */
118
- export declare function doesDashboardInputApplyToTargetScope(input: Pick<NormalizedDashboardInput, 'scope' | 'compatibility'>, scope: DashboardInputTargetScope, sheetLocalCardIds: ReadonlySet<string>): boolean;
119
111
  export declare function describeInput(input: Pick<NormalizedDashboardInput, 'id' | 'label'> & Partial<Pick<NormalizedFilterDashboardInput, 'filter'>>): string;
@@ -18,8 +18,27 @@ export declare function setDashboardInputRuntimeSlot(values: DashboardInputValue
18
18
  */
19
19
  export declare function materializeDashboardInputRuntimeSlot(input: NormalizedDashboardInput, slot: DashboardInputSlot | undefined): DashboardInputSlot | undefined;
20
20
  export declare function removeDashboardInputRuntimeSlot(values: DashboardInputValues, input: Pick<DashboardInput, 'id' | 'runtimeScope'>, target: DashboardInputRuntimeTarget): DashboardInputValues;
21
+ /**
22
+ * Whether a filter input holds an active value on a tab, as its chip shows
23
+ * it: its slot for the tab, the saved default included. The one rule both
24
+ * filter bars (the toolbar and a Document's input bar) count and clear by
25
+ * for Clear all. It reads the slot directly, so a filter scoped to specific
26
+ * cards on the tab counts although it applies to no tab-level target.
27
+ */
28
+ export declare function hasActiveFilterInputValueOnTab(params: {
29
+ dashboard: Pick<TDashboard, 'defaultInputValues' | 'defaultFilterValues'>;
30
+ input: NormalizedDashboardInput;
31
+ runtimeValues?: DashboardInputValues;
32
+ sheetId: string | null | undefined;
33
+ calendar: CalendarContext | null;
34
+ }): boolean;
21
35
  export declare function hydrateAuthoredDashboardInputSlot(params: {
22
- dashboard: Pick<TDashboard, 'defaultInputValues'>;
36
+ /**
37
+ * Saved defaults come from the filter model (SPEC 5.2), so a toolbar
38
+ * filter's `defaultFilterValues` entry counts. A caller with only stored
39
+ * slot defaults may pass just those.
40
+ */
41
+ dashboard: Pick<TDashboard, 'defaultInputValues' | 'defaultFilterValues'>;
23
42
  input: NormalizedDashboardInput;
24
43
  runtimeValues?: DashboardInputValues;
25
44
  target: DashboardInputRuntimeTarget;
@@ -46,3 +65,24 @@ export declare function createFilterDashboardInputSlot(filterValue: TFilterValue
46
65
  export declare function createControlDashboardInputSlot(value: unknown): DashboardInputSlot | undefined;
47
66
  export declare function cloneDashboardInputValues(values: DashboardInputValues | undefined): DashboardInputValues;
48
67
  export declare function compactDashboardInputValues(values: DashboardInputValues): DashboardInputValues;
68
+ /**
69
+ * `over`'s slots win; a slot it does not have keeps `base`'s. A slot of `over`
70
+ * that holds only a comparison choice keeps `base`'s value under it, as the
71
+ * old filter value list and the comparison slot stayed apart. `base` itself
72
+ * when `over` is empty.
73
+ */
74
+ export declare function overlayDashboardInputValues(base: DashboardInputValues, over: DashboardInputValues): DashboardInputValues;
75
+ /** The values without any slot of these inputs, on every target. `values` itself when none is held. */
76
+ export declare function removeDashboardInputSlotsById(values: DashboardInputValues, inputIds: ReadonlySet<string>): DashboardInputValues;
77
+ /**
78
+ * The saved defaults the runtime reads (SPEC 5.2): the filter model's, which
79
+ * hold owned `defaultFilterValues` entries as slots. With no such entry they
80
+ * are the stored slots, read without building the model.
81
+ */
82
+ export declare function savedDefaultInputValues(dashboard: Pick<TDashboard, 'defaultInputValues' | 'defaultFilterValues'>): DashboardInputValues | undefined;
83
+ /**
84
+ * Every value an input holds, saved or live, removed: its shared slot and its
85
+ * slot on every sheet, card and Document section. Shared by the store's
86
+ * input removal and the dashboard reducer's `filter.remove`.
87
+ */
88
+ export declare function removeDashboardInputFromValues(values: DashboardInputValues | undefined, inputId: string): DashboardInputValues;